{"version":3,"file":"javascript/main.js","mappings":"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","sources":["webpack:///./index.js","webpack:///./polyfill.js","webpack:///./jsw/index.js","webpack:///./jsw/namespace.js","webpack:///./jsw/createComponent.js","webpack:///./jsw/component.js","webpack:///./jsw/tooltip.js","webpack:///./jsw/escapeHtml.js","webpack:///./jsw/Locale.js","webpack:///./jsw/api.js","webpack:///../common/user-activity-tracking.js","webpack:///./helpers/isNetworkError.js","webpack:///./jsw/addUrlParams.js","webpack:///./jsw/emptyFn.js","webpack:///./jsw/Observer.js","webpack:///./components/common/Translate.js","webpack:///../common/react-compat.js","webpack:///external var \"window.PleskUiLibrary\"","webpack:///./jsw/render.js","webpack:///./jsw/onReady.js","webpack:///./jsw/addStatusMessage.js","webpack:///./jsw/status-message.js","webpack:///./jsw/prepareUrl.js","webpack:///./jsw/createElement.js","webpack:///./jsw/clearStatusMessages.js","webpack:///./helpers/pageData.js","webpack:///./jsw/showInternalError.js","webpack:///./jsw/escapeAttribute.js","webpack:///./jsw/unescapeHtml.js","webpack:///./jsw/fireCustomEvent.js","webpack:///./jsw/keyCode.js","webpack:///./jsw/hint.js","webpack:///./helpers/createHtmlElement.js","webpack:///./jsw/button.js","webpack:///./jsw/small-button.js","webpack:///./jsw/big-button.js","webpack:///./jsw/split-button.js","webpack:///./jsw/command-button.js","webpack:///./jsw/custom-button.js","webpack:///./jsw/tool-list.js","webpack:///./jsw/container.js","webpack:///./jsw/form-redirect.js","webpack:///./jsw/form.js","webpack:///./jsw/form-ajax.js","webpack:///./jsw/list-container.js","webpack:///./jsw/layout.js","webpack:///../common/cookie.js","webpack:///./jsw/panel.js","webpack:///./jsw/message-box.js","webpack:///./jsw/modal-dialog-box.js","webpack:///./jsw/dropdown-header.js","webpack:///./jsw/dropdown-manager.js","webpack:///./jsw/small-tools.js","webpack:///./jsw/list/Filters.js","webpack:///./images/blank.gif","webpack:///./jsw/collapsible-block.js","webpack:///./jsw/pathbar.js","webpack:///./jsw/bar.js","webpack:///./jsw/dynamic-sub-form.js","webpack:///./jsw/box.js","webpack:///./jsw/gauge.js","webpack:///./jsw/popup-form.js","webpack:///./jsw/ajax-popup-form.js","webpack:///./jsw/Popup.js","webpack:///./jsw/double-list-selector.js","webpack:///./jsw/enhanced-double-list-selector.js","webpack:///./images/search-input.png","webpack:///./images/clear-search.png","webpack:///./jsw/image-selector.js","webpack:///./jsw/dynamic-popup-hint.js","webpack:///./jsw/password-meter.js","webpack:///./helpers/estimatePassword.js","webpack:///./apolloClient.js","webpack:///./jsw/password-generator.js","webpack:///./jsw/upgrade-failure-notification.js","webpack:///./jsw/webserver-configuration-failure.js","webpack:///./jsw/confirmation-popup-manager.js","webpack:///./jsw/lookup.js","webpack:///./jsw/list/index.js","webpack:///./jsw/list/List.js","webpack:///./jsw/list/ListContextMenu.js","webpack:///./jsw/isRtl.js","webpack:///./jsw/list/constants.js","webpack:///./icons/16/plesk/menu.png","webpack:///./helpers/stripTags.js","webpack:///./jsw/list/AdditionalActions.js","webpack:///./jsw/unresolved-domain-warning.js","webpack:///./jsw/task-progress-bar.js","webpack:///./helpers/toasts.js","webpack:///./jsw/pleskWS.js","webpack:///./jsw/task-status-message.js","webpack:///./jsw/active-list.js","webpack:///./views/smb/web/view/DynamicListBanner.js","webpack:///./images/dynamic-list-promotion.png","webpack:///./icons/16/plesk/settings-toolbar.png","webpack:///./icons/16/plesk/order-ascending.png","webpack:///./icons/16/plesk/order-descending.png","webpack:///./icons/16/plesk/list-type-dynamic.png","webpack:///./icons/16/plesk/list-type-active.png","webpack:///./icons/16/plesk/list-type-classic.png","webpack:///./icons/16/plesk/feedback.png","webpack:///./jsw/file-manager/tree.js","webpack:///./helpers/fileManager.js","webpack:///./icons/16/plesk/uplevel.png","webpack:///./icons/16/plesk/file-folder.png","webpack:///./icons/16/plesk/file-txt.png","webpack:///./icons/16/plesk/file-image.png","webpack:///./icons/16/plesk/file-audio.png","webpack:///./icons/16/plesk/file-private.png","webpack:///./icons/16/plesk/file-webscript.png","webpack:///./icons/16/plesk/file-html.png","webpack:///./icons/16/plesk/file-arch.png","webpack:///./icons/16/plesk/file-binary.png","webpack:///./images/tree-open.gif","webpack:///./images/indicator.gif","webpack:///./images/tree-close.gif","webpack:///./jsw/file-manager/upload-adapter-iframe.js","webpack:///./jsw/directory-browser.js","webpack:///./jsw/drop-area.js","webpack:///./jsw/groups-list.js","webpack:///./jsw/issue-reporter.js","webpack:///./jsw/object-switcher.js","webpack:///./jsw/PopupSlider.js","webpack:///./jsw/scrollable-list.js","webpack:///./jsw/uat.js","webpack:///../common/gdpr-storage.js","webpack:///./jsw/getControlPanelLoginHtml.js","webpack:///./plesk.js","webpack:///./components/App.js","webpack:///./routes/index.js","webpack:///./helpers/routesTransformer.js","webpack:///./components/layouts/AppLayout.js","webpack:///./queries/TaskProgressBar.graphql","webpack:///./components/layouts/CpPagesLayout.js","webpack:///./components/layouts/PageLayout/PageLayout.js","webpack:///../common/hooks/useClickOutside.js","webpack:///../common/hooks/useEventListener.js","webpack:///../common/hooks/useLocalStorage.js","webpack:///../common/helpers/readLocalStorageValue.js","webpack:///../common/hooks/useMediaQuery.js","webpack:///../common/hooks/useDebounce.js","webpack:///./components/layouts/CookiePolicy/CookiePolicy.js","webpack:///./hooks/useCreateFormInDrawer.js","webpack:///./components/common/DrawerWithProgress.js","webpack:///./hooks/useNavigate.js","webpack:///./queries/CreateFormInDrawer.graphql","webpack:///./queries/UpdateUserSettings.graphql","webpack:///./hooks/useModal.js","webpack:///./components/layouts/CookiePolicy/Info.js","webpack:///./components/layouts/CookiePolicy/urls.js","webpack:///./components/layouts/CookiePolicy/Preferences/Preferences.js","webpack:///./components/layouts/CookiePolicy/Preferences/DrawerAdapter.js","webpack:///./components/layouts/CookiePolicy/Preferences/OverlayAdapter.js","webpack:///./components/layouts/CookiePolicy/Preferences/Overlay.js","webpack:///./queries/CookiePolicy.graphql","webpack:///./components/jsw/JswComponent.js","webpack:///./components/layouts/StatusMessages.js","webpack:///./components/layouts/PageLayout/LicenseStatus.js","webpack:///./components/common/Link.js","webpack:///./components/layouts/PageLayout/PageHeader/PageHeader.js","webpack:///./components/layouts/PageLayout/PageHeader/MainHeaderSearch/MainHeaderSearch.js","webpack:///./helpers/form.js","webpack:///./queries/MainHeaderSearch.graphql","webpack:///./components/layouts/PageLayout/PageHeader/MainHeaderSearch/RecentSearchHistoryQuery.graphql","webpack:///./components/layouts/PageLayout/PageHeader/MainHeaderSearch/DeleteRecentSearchResultMutation.graphql","webpack:///./components/layouts/PageLayout/PageHeader/MainHeaderNavbar.js","webpack:///./components/layouts/PageLayout/PageHeader/SubscriptionSwitcher.js","webpack:///./components/layouts/PageLayout/PageHeader/NotificationCenter/NotificationCenter.js","webpack:///./components/layouts/PageLayout/PageHeader/NotificationCenter/lib/applyFilter.js","webpack:///./components/layouts/PageLayout/PageHeader/NotificationCenter/lib/utils.js","webpack:///./components/layouts/PageLayout/PageHeader/NotificationCenter/lib/PropTypes.js","webpack:///./components/layouts/PageLayout/PageHeader/NotificationCenter/lib/api.js","webpack:///./components/layouts/PageLayout/PageHeader/NotificationCenter/NotificationCenterView.js","webpack:///./components/layouts/PageLayout/PageHeader/NotificationCenter/NotificationCenterList/index.js","webpack:///./components/layouts/PageLayout/PageHeader/NotificationCenter/NotificationCenterList/SubjectColumn.js","webpack:///./components/layouts/PageLayout/PageHeader/NotificationCenter/NotificationCenterList/DateColumn.js","webpack:///./components/layouts/PageLayout/PageHeader/NotificationCenter/NotificationDate.js","webpack:///./components/layouts/PageLayout/PageHeader/NotificationCenter/NotificationActions.js","webpack:///./components/layouts/PageLayout/PageHeader/NotificationCenter/NotificationCenterList/FilterMenu.js","webpack:///./images/notification-center-empty.svg","webpack:///./components/layouts/PageLayout/PageHeader/NotificationCenter/lib/getIntentByNotification.js","webpack:///./components/layouts/PageLayout/PageHeader/NotificationCenter/lib/getMostIntentByNotifications.js","webpack:///./components/layouts/PageLayout/PageHeader/NotificationCenter/NotificationToast.js","webpack:///./queries/NotificationCenter.graphql","webpack:///./components/layouts/PageLayout/PageHeader/HelpMenu.js","webpack:///./queries/HelpMenu.graphql","webpack:///./queries/AccountMenu.graphql","webpack:///./queries/MainHeaderNavbar.graphql","webpack:///./icons/16/plesk/top-advisor.svg","webpack:///./images/logos/powered-logo.png","webpack:///./components/layouts/PageLayout/PageSidebar.js","webpack:///./components/layouts/PageLayout/ViewSwitcher.js","webpack:///./icons/16/plesk/nav-navigation.svg","webpack:///./components/layouts/Brand/Brand.js","webpack:///./queries/Branding.graphql","webpack:///./components/layouts/PageLayout/PageFooter.js","webpack:///./queries/PageFooter.graphql","webpack:///./components/layouts/PageLayout/PageContentHeader.js","webpack:///./components/layouts/PageLayout/ObjectSwitcher.js","webpack:///./components/layouts/PageLayout/PageContentHeaderNav.js","webpack:///./components/layouts/PageLayout/getTitleForHelpSearchQuery.js","webpack:///./components/layouts/PageLayout/withPageLayout.js","webpack:///./components/layouts/PageLayout/withSimplePageLayout.js","webpack:///./components/layouts/PhpPagesLayout.js","webpack:///./components/AppBoundary.js","webpack:///../common/components/ErrorPage.js","webpack:///../common/components/RepairKitAlert.js","webpack:///../common/components/ExceptionDetails.js","webpack:///../common/components/ErrorPage.module.css?23dd","webpack:///./components/pages/LogsPage.js","webpack:///./routes/odbcServerRoute.js","webpack:///./components/pages/OdbcPage/defaultListInput.js","webpack:///./routes/odbcAddRoute.js","webpack:///./queries/OdbcAddPage.graphql","webpack:///./routes/odbcEditRoute.js","webpack:///./queries/OdbcEditPage.graphql","webpack:///./queries/OdbcEditFragment.graphql","webpack:///./queries/OdbcServerList.graphql","webpack:///./queries/OdbcListFragment.graphql","webpack:///./routes/odbcDomainRoute.js","webpack:///./queries/OdbcDomainList.graphql","webpack:///./queries/OdbcDomainPage.graphql","webpack:///./queries/DomainSubscriptionOdbcLimitFragment.graphql","webpack:///./routes/domainOverviewRoutes.js","webpack:///./queries/HostingSettingsPage.graphql","webpack:///./routes/protectedDirectoryListRoute.js","webpack:///./components/pages/ProtectedDirectoryListPage/listDefaultInput.js","webpack:///./routes/protectedDirectoryAddRoute.js","webpack:///./queries/ProtectedDirectoryAddPage.graphql","webpack:///./routes/protectedDirectoryEditRoute.js","webpack:///./queries/ProtectedDirectoryEditPage.graphql","webpack:///./queries/ProtectedDirectoryEditFragment.graphql","webpack:///./queries/ProtectedDirectoryList.graphql","webpack:///./queries/ProtectedDirectoryListPage.graphql","webpack:///./routes/summaryReportRoutes.js","webpack:///./queries/SummaryReportPage.graphql","webpack:///./queries/SummaryReportFragment.graphql","webpack:///./queries/ClientSummaryReport.graphql","webpack:///./queries/SummaryReportLayoutsPage.graphql","webpack:///./queries/SummaryReportLayoutAddPage.graphql","webpack:///./queries/SummaryReportLayoutEditPage.graphql","webpack:///./queries/TrafficHistoryReportPage.graphql","webpack:///./queries/ClientTrafficHistoryReportPage.graphql","webpack:///./queries/IpAddressDomainsPage.graphql","webpack:///./queries/PrepareChangeSubscriptionsOwner.graphql","webpack:///./queries/LoginPage.graphql","webpack:///./queries/DnsRecordsPage.graphql","webpack:///./components/pages/DnsSettingsPage/Records/DnsRecordFormDrawer/EditDnsRecord.graphql","webpack:///./components/pages/DnsSettingsPage/Records/DnsRecordFormDrawer/AddDnsRecord.graphql","webpack:///./queries/DnsSoaRecordsPage.graphql","webpack:///./queries/BandwidthLimitingPage.graphql","webpack:///./queries/HotlinkProtectionPage.graphql","webpack:///./queries/EditInterfaceViewPage.graphql","webpack:///./queries/NotificationUiSetting.graphql","webpack:///./queries/BrandingPage.graphql","webpack:///./queries/DatabaseServersPage.graphql","webpack:///./queries/DatabaseServerCreatePage.graphql","webpack:///./queries/DatabaseServerPropertiesPage.graphql","webpack:///./queries/DatabaseServerUpgradePage.graphql","webpack:///./queries/DatabaseServerDatabasesPage.graphql","webpack:///./queries/DatabaseServerChangePasswordPage.graphql","webpack:///./queries/WebsitesDiagnosticPage.graphql","webpack:///./queries/SystemTimePage.graphql","webpack:///./queries/ServerMailSettingsPage.graphql","webpack:///./queries/ServerMailTabs.graphql","webpack:///./queries/ServerMailBlackListPage.graphql","webpack:///./queries/ServerMailWhiteListPage.graphql","webpack:///./queries/ServerMailAntivirusPage.graphql","webpack:///./queries/ServerMailSpamFilterPage.graphql","webpack:///./queries/SpamFilterSettingsTabs.graphql","webpack:///./queries/PrimaryKeyInfoPage.graphql","webpack:///./queries/MasterKeyProcessingState.graphql","webpack:///./queries/PrimaryKeyUploadPage.graphql","webpack:///./queries/PrimaryKeyRevertPage.graphql","webpack:///./queries/AdditionalKeysPage.graphql","webpack:///./queries/AdditionalKeyUploadPage.graphql","webpack:///./queries/AdditionalKeyInfoPage.graphql","webpack:///./queries/AdditionalKeyRevertPage.graphql","webpack:///./queries/FirewallGeneralPage.graphql","webpack:///./queries/FirewallIcmpPage.graphql","webpack:///./queries/FirewallRulesPage.graphql","webpack:///./queries/ServerComponentsPage.graphql","webpack:///./queries/IpAddressPage.graphql","webpack:///./components/pages/IpAddressResellersPage/IpAddressResellerList.graphql","webpack:///./components/pages/IpAddressResellersPage/AssignIpAddressToResellerForm/UnassignedIpAddressResellers.graphql","webpack:///./queries/ClientIpAddress.graphql","webpack:///./components/pages/ClientIpAddressPage/ClietnIpAddressProperties.graphql","webpack:///./components/pages/ClientIpAddressPage/AssignClientIpAddress/AssignClientIpAddressDrawer.graphql","webpack:///./queries/PhpExtensionsPage.graphql","webpack:///./queries/TsSessionPage.graphql","webpack:///./queries/TsSessionsPage.graphql","webpack:///./queries/AspDotNetServerSettingsPage.graphql","webpack:///./queries/AspDotNetDomainSettingsPage.graphql","webpack:///./queries/ServerAboutPage.graphql","webpack:///./queries/ActionLogPage.graphql","webpack:///./queries/ServerSettingsPage.graphql","webpack:///./components/pages/LoginPage/LoginPage.js","webpack:///./components/Form.js","webpack:///./components/layouts/LoginLayout.js","webpack:///./components/pages/LoginPage/LoginMobileApplicationPromotion.js","webpack:///./icons/64/plesk/plesk.png","webpack:///./components/pages/LoginPage/SuggestResolvableHostname.js","webpack:///./components/pages/LoginPage/LocaleSwitcher.js","webpack:///./components/pages/GetPasswordPage.js","webpack:///./components/pages/RestorePasswordPage.js","webpack:///./components/LocaleProvider.js","webpack:///./components/common/ErrorBoundary.js","webpack:///./app/index.js","webpack:///../common/sentry.js","webpack:///./legacy/index.js","webpack:///./legacy/admin-panel.js","webpack:///./legacy/smb.js","webpack:///./legacy/common.js","webpack:///./legacy/chk.js","webpack:///./legacy/Tooltip.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/chunk loaded","webpack:///webpack/runtime/load script","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/ensure chunk","webpack:///webpack/runtime/get javascript chunk filename","webpack:///webpack/runtime/get mini-css chunk filename","webpack:///webpack/runtime/global","webpack:///webpack/runtime/harmony module decorator","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///webpack/runtime/node module decorator","webpack:///webpack/runtime/publicPath","webpack:///webpack/runtime/compat","webpack:///webpack/runtime/jsonp chunk loading","webpack:///webpack/startup"],"sourcesContent":["// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport './styles/index.less';\r\nimport './app/index.less';\r\nimport './components/index.less';\r\nimport './views/index.less';\r\nimport './styles/themes.less';\r\n\r\nimport './polyfill';\r\n\r\nimport * as Jsw from './jsw';\r\nimport * as Plesk from './plesk';\r\nimport './legacy';\r\n\r\nwindow.Jsw = Jsw;\r\nwindow.Plesk = Plesk;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport 'core-js/stable';\r\n\r\n/**\r\n * Workaround for Array.from(new Set(['1', '2'])) from prototype.js\r\n */\r\n// eslint-disable-next-line no-extend-native\r\nSet.prototype.toArray = function () {\r\n    const array = [];\r\n    this.forEach(item => array.push(item));\r\n    return array;\r\n};\r\n\r\n/**\r\n * Workaround for Array.from(new Map([['a', 1], ['b', 2]])) from prototype.js\r\n */\r\n// eslint-disable-next-line no-extend-native\r\nMap.prototype.toArray = function () {\r\n    const array = [];\r\n    this.forEach((item, key) => array.push([key, item]));\r\n    return array;\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n/**\r\n * This is part of public Jsw API. Don't modify it!\r\n */\r\n\r\nexport const version = '1.0';\r\n\r\nexport { default as namespace } from './namespace';\r\nexport { default as createComponent } from './createComponent';\r\nexport { default as onReady, priority } from './onReady';\r\nexport { default as addStatusMessage } from './addStatusMessage';\r\nexport { default as clearStatusMessages } from './clearStatusMessages';\r\nexport { default as showInternalError } from './showInternalError';\r\nexport { default as prepareUrl } from './prepareUrl';\r\nexport { default as addUrlParams } from './addUrlParams';\r\nexport { default as render } from './render';\r\nexport { default as createElement } from './createElement';\r\nexport { default as escapeAttribute } from './escapeAttribute';\r\nexport { default as escapeHtml } from './escapeHtml';\r\nexport { default as unescapeHtml } from './unescapeHtml';\r\nexport { default as emptyFn } from './emptyFn';\r\nexport { default as fireCustomEvent } from './fireCustomEvent';\r\nexport { default as keyCode } from './keyCode';\r\n\r\nexport { Component, registerComponent, getComponent } from './component';\r\nexport { default as Locale } from './Locale';\r\nexport { Hint } from './hint';\r\nexport { Button } from './button';\r\nexport { SmallButton } from './small-button';\r\nexport { BigButton } from './big-button';\r\nexport { SplitButton } from './split-button';\r\nexport { CommandButton } from './command-button';\r\nexport { CustomButton } from './custom-button';\r\n\r\nexport { FormRedirect, submit, redirect, redirectPost } from './form-redirect';\r\n\r\nimport { DisplayField, Values } from './form';\r\nexport const form = {\r\n    DisplayField,\r\n    Values,\r\n};\r\n\r\nexport { FormAjax } from './form-ajax';\r\nexport { Container } from './container';\r\nexport { ListContainer } from './list-container';\r\n\r\nimport { TwoColumns } from './layout';\r\nexport const layout = {\r\n    TwoColumns,\r\n};\r\n\r\nexport { default as Cookie } from 'common/cookie';\r\nexport { Panel } from './panel';\r\n\r\nexport { messageBox, MessageBox, AjaxMessageBox, MultiCheckboxMessageWindow, WebspaceFoldersMessageBox } from './message-box';\r\n\r\nexport { DropdownHeader } from './dropdown-header';\r\nexport { DropdownManager } from './dropdown-manager';\r\nexport { SmallTools } from './small-tools';\r\nexport { CollapsibleBlock } from './collapsible-block';\r\nexport { Pathbar } from './pathbar';\r\n\r\nexport { Bar, bar } from './bar';\r\n\r\nexport { DynamicSubForm, AddRemoveDynamicSubForm } from './dynamic-sub-form';\r\n\r\nexport { Box } from './box';\r\nexport { Gauge } from './gauge';\r\nexport { Tooltip } from './tooltip';\r\nexport { ModalDialogBox } from './modal-dialog-box';\r\nexport { PopupForm } from './popup-form';\r\nexport { AjaxPopupForm } from './ajax-popup-form';\r\nexport Popup from './Popup';\r\nexport { DoubleListSelector } from './double-list-selector';\r\nexport { EnhancedDoubleListSelector } from './enhanced-double-list-selector';\r\nexport { ImageSelector } from './image-selector';\r\n\r\nexport { ToolList, toollist } from './tool-list';\r\n\r\nexport { DynamicPopupHint } from './dynamic-popup-hint';\r\nexport { PasswordMeter } from './password-meter';\r\nexport { PasswordGenerator } from './password-generator';\r\nexport { UpgradeFailureNotification } from './upgrade-failure-notification';\r\nexport { WebserverConfigurationFailure } from './webserver-configuration-failure';\r\nexport { ConfirmationPopupManager } from './confirmation-popup-manager';\r\nexport { LookUp } from './lookup';\r\nexport { StatusMessage } from './status-message';\r\nexport { default as Observer } from './Observer';\r\nexport { UnresolvedDomainWarning } from './unresolved-domain-warning';\r\n\r\nimport { ProgressBar } from './task-progress-bar';\r\nimport { StatusMessage, STATUS_DONE, STATUS_ERROR, STATUS_STARTED, STATUS_NOT_STARTED, STATUS_CANCELED } from './task-status-message';\r\nexport const Task = {\r\n    ProgressBar,\r\n    StatusMessage,\r\n    STATUS_DONE,\r\n    STATUS_ERROR,\r\n    STATUS_STARTED,\r\n    STATUS_NOT_STARTED,\r\n    STATUS_CANCELED,\r\n};\r\n\r\nexport { ActiveList } from './active-list';\r\n\r\nimport { Tree } from './file-manager/tree';\r\nimport { UploadAdapterIframe } from './file-manager/upload-adapter-iframe';\r\nexport const FileManager = {\r\n    Tree,\r\n    UploadAdapterIframe,\r\n};\r\n\r\nexport { DirectoryBrowser } from './directory-browser';\r\nexport { DropArea } from './drop-area';\r\nexport { GroupsList } from './groups-list';\r\nexport { ReporterPopup } from './issue-reporter';\r\nexport { ObjectSwitcher } from './object-switcher';\r\nexport PopupSlider from './PopupSlider';\r\nexport { ScrollableList } from './scrollable-list';\r\nexport { UAT } from './uat';\r\n\r\nexport * from './list';\r\n\r\nexport { default as getControlPanelLoginHtml } from './getControlPanelLoginHtml';\r\nexport { default as api } from './api';\r\n\r\nexport { default as pleskWS } from './pleskWS';\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\n/**\r\n * Creates namespaces to be used for scoping variables and classes so that they are not global.\r\n * Specifying the last node of a namespace implicitly creates all other nodes. Usage:\r\n *\r\n *     namespace('Module.SubModule.list');\r\n *\r\n * @param {String} ns\r\n * @param {Boolean} autoCreate=true\r\n * @return {Object} The object that is the namespace or class name.\r\n */\r\nexport default (ns, autoCreate = true) => {\r\n    const nsParts = ns.split('.');\r\n    let root = window;\r\n\r\n    for (let partIndex = 0; partIndex < nsParts.length; partIndex++) {\r\n        if (typeof root[nsParts[partIndex]] === 'undefined') {\r\n            if (autoCreate) {\r\n                root[nsParts[partIndex]] = {};\r\n            } else {\r\n                return undefined;\r\n            }\r\n        }\r\n\r\n        root = root[nsParts[partIndex]];\r\n    }\r\n\r\n    return root;\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Component } from './component';\r\nimport namespace from './namespace';\r\n\r\n/**\r\n * Creates a new Component from the specified config object using the config object's\r\n * `componentType` to determine the class to instantiate.\r\n * @param {Object} config A configuration object for the Component you wish to create.\r\n * @returns {Component} The newly instantiated Component.\r\n */\r\nexport default config => {\r\n    if (!config.componentType || config instanceof Component) {\r\n        return config;\r\n    }\r\n\r\n    const Cls = typeof config.componentType === 'string'\r\n        ? namespace(config.componentType, false)\r\n        : config.componentType;\r\n    if (!Cls) {\r\n        throw new Error(`Unrecognized class name: ${config.componentType}`);\r\n    }\r\n    return new Cls(config);\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Tooltip } from './tooltip';\r\nimport Locale from './Locale';\r\nimport render from './render';\r\n\r\nconst registeredComponents = {};\r\n\r\nexport const registerComponent = (identity, component) => {\r\n    registeredComponents[identity] = component;\r\n};\r\n\r\n/**\r\n * Returns an component by identity.\r\n * @param {String} identity The identity of the component.\r\n * @returns {Object} The component, undefined if not found.\r\n */\r\nexport const getComponent = identity => registeredComponents[identity];\r\n\r\n/**\r\n * The base class for all Jsw components.\r\n */\r\nexport class Component {\r\n    /**\r\n     * @cfg {String} id The unique id of this component instance.\r\n     */\r\n    /**\r\n     * @cfg {String} cls CSS class names to apply for root element.\r\n     */\r\n    /**\r\n     * @cfg {Object} attrs HTML attributes to apply for root element.\r\n     */\r\n    /**\r\n     * @cfg {String} wrapperClass\r\n     */\r\n    /**\r\n     * @cfg {Element|String} renderTo\r\n     */\r\n    /**\r\n     * @cfg {String} renderMode=bottom\r\n     */\r\n    /**\r\n     * @cfg {Element|String} applyTo\r\n     */\r\n    /**\r\n     * @cfg {Object} locale\r\n     */\r\n    /**\r\n     * @cfg {Boolean} hidden=false Hide component. See methods {@link #hide}/{@link #show}\r\n     */\r\n\r\n    static genId = 1;\r\n\r\n    constructor(config = {}) {\r\n        this.initialize(config);\r\n    }\r\n\r\n    // TODO EXTNODEJS-90: EXTDOCKER-50: PMT-4391: Need to move this logic to constructor\r\n    initialize(config) {\r\n        this._initConfiguration(config);\r\n        this._registerComponent();\r\n\r\n        this._initComponentElement();\r\n\r\n        if (this._autoRender && ((null !== this._renderTarget) || (typeof this._applyTargetId === 'string' ? document.getElementById(this._applyTargetId) : this._applyTargetId))) {\r\n            this.render();\r\n        }\r\n\r\n        if (this._getConfigParam('hidden', false)) {\r\n            this.hide();\r\n        }\r\n    }\r\n\r\n    _initConfiguration(config) {\r\n        this.initialConfig = config;\r\n        this._config = this.initialConfig;\r\n\r\n        this._cls = this._getConfigParam('cls', '');\r\n        this._attrs = this._getConfigParam('attrs', {});\r\n        this._wrapperClass = this._getConfigParam('wrapperClass', '');\r\n        this._autoRender = this._getConfigParam('autoRender', true);\r\n        this._renderTarget = (this._getConfigParam('renderTo', null));\r\n        if (typeof this._renderTarget === 'string') {\r\n            this._renderTarget = document.getElementById(this._renderTarget);\r\n        }\r\n        this._renderMode = this._getConfigParam('renderMode', 'bottom');\r\n        this._applyTargetId = this._getConfigParam('applyTo', null);\r\n        this.setLocale(this._getConfigParam('locale', this._locale));\r\n\r\n        this._id = (this._applyTargetId)\r\n            ? this._applyTargetId\r\n            : this._getConfigParam('id', null);\r\n\r\n        if (null === this._id) {\r\n            this._id = `gen-id-${Component.genId++}`;\r\n            this._idIsRandom = true;\r\n        }\r\n\r\n        this._tag = (this._applyTargetId)\r\n            ? (typeof this._applyTargetId === 'string' ? document.getElementById(this._applyTargetId) : this._applyTargetId).tagName\r\n            : this._getConfigParam('tag', this._tag || 'div');\r\n    }\r\n\r\n    _registerComponent() {\r\n        registerComponent(this._id, this);\r\n    }\r\n\r\n    _initComponentElement() {\r\n        if (this._applyTargetId) {\r\n            this._componentElement = typeof this._applyTargetId === 'string' ? document.getElementById(this._applyTargetId) : this._applyTargetId;\r\n            return;\r\n        }\r\n\r\n        this._componentElement = document.createElement(this._tag);\r\n        Object.keys(this._attrs).forEach(name => {\r\n            this._componentElement.setAttribute(name, this._attrs[name]);\r\n        });\r\n        this._componentElement.id = this._id;\r\n        this._componentElement.className = this._cls;\r\n    }\r\n\r\n    _initDisablerOverlay() {\r\n        this._disablerOverlay = document.createElement('div');\r\n\r\n        this._disablerOverlay.style.display = 'none';\r\n        this._disablerOverlay.style.zIndex = this._componentElement.style.zIndex + 1000;\r\n\r\n        this._disablerOverlay.classList.add('content-blocker');\r\n        this._componentElement.appendChild(this._disablerOverlay);\r\n\r\n        this._componentElement.style.position = 'relative';\r\n    }\r\n\r\n    addEventObserver(eventName, handler) {\r\n        if ('undefined' !== typeof handler) {\r\n            this._componentElement.addEventListener(eventName, handler);\r\n        }\r\n    }\r\n\r\n    removeEventObserver(eventName, handler) {\r\n        if ('undefined' !== typeof handler) {\r\n            this._componentElement.removeEventListener(eventName, handler);\r\n        }\r\n    }\r\n\r\n    _hasConfigParam(name) {\r\n        return 'undefined' !== typeof this._config[name];\r\n    }\r\n\r\n    _getConfigParam(name, defaultValue) {\r\n        return this._hasConfigParam(name)\r\n            ? this._config[name]\r\n            : defaultValue;\r\n    }\r\n\r\n    _getRandomNumber() {\r\n        return Math.floor(1000000 * Math.random());\r\n    }\r\n\r\n    _addEvents() {\r\n        // basic empty implementation\r\n    }\r\n\r\n    _addTooltips() {\r\n        const description = this._getConfigParam('description');\r\n        if (description) {\r\n            this._tooltip = Tooltip.init(this._componentElement, { text: description });\r\n        }\r\n    }\r\n\r\n    _updateComponentElement(content) {\r\n        const oldElements = this._componentElement.childNodes;\r\n        if (!oldElements.length) {\r\n            render(this._componentElement, content);\r\n            return;\r\n        }\r\n\r\n        render(this._componentElement, content, 'top');\r\n\r\n        oldElements.forEach(oldElement => {\r\n            if ('undefined' === typeof oldElement.id || '' === oldElement.id) {\r\n                return;\r\n            }\r\n\r\n            const newElement = this._componentElement.querySelector(`#${oldElement.id}`);\r\n\r\n            if (newElement) {\r\n                newElement.parentNode.replaceChild(oldElement, newElement);\r\n            }\r\n        });\r\n    }\r\n\r\n    /**\r\n     * See Component.wrapperClass for details.\r\n     * @returns {String}\r\n     */\r\n    getWrapperClass() {\r\n        return this._wrapperClass;\r\n    }\r\n\r\n    /**\r\n     * Returns id of this component instance.\r\n     * @returns {String}\r\n     */\r\n    getId() {\r\n        return this._id;\r\n    }\r\n\r\n    /**\r\n     * Set render target element.\r\n     * @param {Element} target\r\n     */\r\n    setRenderTarget(target) {\r\n        this._renderTarget = target;\r\n    }\r\n\r\n    /**\r\n     * Get render target element.\r\n     * @returns {Element}\r\n     */\r\n    getRenderTarget() {\r\n        return this._renderTarget;\r\n    }\r\n\r\n    /**\r\n     * Show component.\r\n     */\r\n    show() {\r\n        this._componentElement.style.display = '';\r\n    }\r\n\r\n    /**\r\n     * Hide component.\r\n     */\r\n    hide() {\r\n        this._componentElement.style.display = 'none';\r\n    }\r\n\r\n    /**\r\n     * Render component.\r\n     */\r\n    render() {\r\n        if (this._renderTarget) {\r\n            render(this._renderTarget, this._componentElement, this._renderMode);\r\n        }\r\n\r\n        this._addEvents();\r\n        this._addTooltips();\r\n    }\r\n\r\n    setLocale(locale) {\r\n        if (!(locale instanceof Locale)) {\r\n            locale = new Locale(locale);\r\n        }\r\n        this.lmsg = locale.lmsg.bind(locale);\r\n        this._locale = locale;\r\n    }\r\n\r\n    getLocale() {\r\n        return this._locale;\r\n    }\r\n\r\n    /**\r\n     * Remove this component.\r\n     */\r\n    remove() {\r\n        this._renderTarget?.removeChild(this._componentElement);\r\n        registerComponent(this._id);\r\n    }\r\n\r\n    getAttribute(name) {\r\n        return this._attrs[name];\r\n    }\r\n}\r\n\r\n// TODO EXTDOCKER-50: Cannot open docker extension: Cannot read property 'push' of undefined\r\nComponent.subclasses = [];\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport escapeHtml from './escapeHtml';\r\n\r\nimport './tooltip.less';\r\n\r\n/**\r\n * @class Tooltip\r\n * @singleton\r\n */\r\nexport const Tooltip = {\r\n    // show timeout\r\n    showTimeoutStatus: true,\r\n\r\n    // show timeout\r\n    showTimeout: 0.55,\r\n\r\n    // minimum viewport delta\r\n    minDelta: 5,\r\n\r\n    // horisonatl offset from cursor\r\n    xOffsetLeft: -5,\r\n\r\n    // horisonatl offset from cursor\r\n    xOffsetRight: 5,\r\n\r\n    // vertical offset from cursor\r\n    yOffsetTop: 1,\r\n\r\n    // vertical offset from cursor\r\n    yOffsetBottom: 13,\r\n\r\n    current: null,\r\n\r\n    initData(contentElement) {\r\n        let elements;\r\n\r\n        if ('undefined' !== typeof contentElement) {\r\n            elements = contentElement.querySelectorAll('.tooltipData');\r\n        } else {\r\n            elements = document.querySelectorAll('.tooltipData');\r\n        }\r\n\r\n        elements.forEach(tooltipData => {\r\n            Tooltip.init(tooltipData.parentNode, { element: tooltipData });\r\n        });\r\n    },\r\n\r\n    /**\r\n     * @param {Element} element\r\n     * @param {Object} config Tooltip config.\r\n     * @param {String} config.text Text of tooltip.\r\n     * @returns {Tooltip.Instance}\r\n     */\r\n    init(element, config) {\r\n        return new Tooltip.Instance(element, config);\r\n    },\r\n\r\n    set(tooltip) {\r\n        if (Tooltip.current && Tooltip.current !== tooltip) {\r\n            Tooltip.hide();\r\n        }\r\n        if (Tooltip.current === tooltip) {\r\n            return;\r\n        }\r\n        Tooltip.current = tooltip;\r\n        tooltip.element.addEventListener('mousemove', Tooltip._onMouseMove);\r\n        tooltip.element.addEventListener('mouseout', Tooltip._onMouseOut);\r\n\r\n        Tooltip.show();\r\n    },\r\n\r\n    show() {\r\n        Tooltip.showCancel();\r\n        Tooltip.hideCancel();\r\n        if (Tooltip.showTimeoutStatus) {\r\n            Tooltip.showTask = setTimeout(Tooltip.showFinish, Tooltip.showTimeout * 1000);\r\n        } else {\r\n            Tooltip.showFinish();\r\n        }\r\n    },\r\n\r\n    showCancel() {\r\n        if (Tooltip.showTask) {\r\n            clearTimeout(Tooltip.showTask);\r\n            Tooltip.showTask = null;\r\n        }\r\n    },\r\n\r\n    showFinish() {\r\n        Tooltip.showCancel();\r\n        const tooltipElement = Tooltip._fetchTooltipElement();\r\n        const tooltip = Tooltip.current;\r\n        let { text } = tooltip.config;\r\n        text = typeof text === 'function' ? text() : text;\r\n\r\n        if (text === false) {\r\n            return;\r\n        }\r\n\r\n        if (text) {\r\n            tooltipElement.querySelector('span').innerHTML = escapeHtml(text);\r\n        } else if (tooltip.config.element) {\r\n            tooltipElement.querySelector('span').innerHTML = tooltip.config.element.innerHTML;\r\n        }\r\n        tooltipElement.style.display = '';\r\n        Tooltip.update();\r\n    },\r\n\r\n    hide() {\r\n        Tooltip.showCancel();\r\n        if (!Tooltip.current) {\r\n            return;\r\n        }\r\n        const tooltip = Tooltip.current;\r\n        Tooltip.current = null;\r\n        const tooltipElement = Tooltip._fetchTooltipElement();\r\n        tooltipElement.style.display = 'none';\r\n        tooltip.element.removeEventListener('mousemove', Tooltip._onMouseMove);\r\n        tooltip.element.removeEventListener('mouseout', Tooltip._onMouseOut);\r\n        Tooltip.hideTask = setTimeout(Tooltip.hideFinish, Tooltip.showTimeout * 1000);\r\n    },\r\n\r\n    hideCancel() {\r\n        if (Tooltip.hideTask) {\r\n            clearTimeout(Tooltip.hideTask);\r\n            Tooltip.hideTask = null;\r\n        }\r\n    },\r\n\r\n    hideFinish() {\r\n        Tooltip.showTimeoutStatus = true;\r\n    },\r\n\r\n    update() {\r\n        if (!Tooltip.current) {\r\n            return;\r\n        }\r\n        const tooltipElement = Tooltip._fetchTooltipElement();\r\n        if (tooltipElement.style.display === 'none') {\r\n            return;\r\n        }\r\n        const position = Tooltip._fetchTooltipPosition(tooltipElement);\r\n        tooltipElement.style.top = `${position.y}px`;\r\n        tooltipElement.style.left = `${position.x}px`;\r\n    },\r\n\r\n    _onMouseOut() {\r\n        Tooltip.hide();\r\n    },\r\n\r\n    _onMouseMove(event) {\r\n        Tooltip.tooltipX = event.clientX + (window.scrollX || window.pageXOffset);\r\n        Tooltip.tooltipY = event.clientY + (window.scrollY || window.pageYOffset);\r\n        Tooltip.update();\r\n    },\r\n\r\n    _fetchTooltipElement() {\r\n        if (!Tooltip._tooltipElement) {\r\n            const el = document.createElement('div');\r\n            el.className = 'tooltip';\r\n            el.innerHTML = '<b><i><i><i><span></span></i></i></i></b>';\r\n            el.style.display = 'none';\r\n            document.body.appendChild(el);\r\n            Tooltip._tooltipElement = el;\r\n        }\r\n\r\n        return Tooltip._tooltipElement;\r\n    },\r\n\r\n    _fetchTooltipPosition(tooltipElement) {\r\n        let x;\r\n        let y;\r\n\r\n        const tDim = Element.getDimensions(tooltipElement);\r\n        const vDim = document.viewport.getDimensions();\r\n        const vScr = document.viewport.getScrollOffsets();\r\n\r\n        const freeRight = vDim.width + vScr.left - Tooltip.tooltipX;\r\n        const freeLeft = Tooltip.tooltipX - vScr.left;\r\n        const freeTop = Tooltip.tooltipY - vScr.top;\r\n        const freeBottom = vDim.height + vScr.top - Tooltip.tooltipY;\r\n\r\n        // apply better x\r\n        if (freeRight > tDim.width + Tooltip.minDelta + Tooltip.xOffsetRight) {\r\n            x = Tooltip.tooltipX + Tooltip.xOffsetRight;\r\n        } else if (freeLeft > tDim.width + Tooltip.minDelta + Tooltip.xOffsetLeft) {\r\n            x = Tooltip.tooltipX - tDim.width - Tooltip.xOffsetLeft;\r\n        } else {\r\n            x = Tooltip.tooltipX - ((tDim.width + Tooltip.xOffsetLeft) / 2);\r\n        }\r\n\r\n        // apply better y\r\n        if (freeBottom > tDim.height + Tooltip.minDelta + Tooltip.yOffsetBottom) {\r\n            y = Tooltip.tooltipY + Tooltip.yOffsetBottom;\r\n        } else if (freeTop > tDim.height + Tooltip.minDelta + Tooltip.yOffsetTop) {\r\n            y = Tooltip.tooltipY - tDim.height - Tooltip.yOffsetTop;\r\n        } else {\r\n            y = Tooltip.tooltipY - ((tDim.height + Tooltip.yOffsetTop) / 2);\r\n        }\r\n        if (x < 0) {\r\n            x = Tooltip.minDelta;\r\n        }\r\n\r\n        return { x, y };\r\n    },\r\n};\r\n\r\nwindow.addEventListener('load', () => {\r\n    Tooltip.initData();\r\n});\r\n\r\n/**\r\n * @class Tooltip.Instance\r\n */\r\nTooltip.Instance = class {\r\n    constructor(element, config) {\r\n        this.element = typeof element === 'string' ? document.getElementById(element) : element;\r\n        this.config = config;\r\n\r\n        // observe events\r\n        this.element.removeEventListener('mouseover', this.set);\r\n        this.element.addEventListener('mouseover', this.set);\r\n    }\r\n\r\n    set = () => {\r\n        Tooltip.set(this);\r\n    };\r\n\r\n    setText(text) {\r\n        this.config.text = escapeHtml(text);\r\n    }\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\n/**\r\n * Converts HTML special characters to their entity equivalents.\r\n *\r\n * @param {String} value\r\n * @returns {String}\r\n */\r\nexport default value => String(value)\r\n    .replace(/&/g, '&amp;')\r\n    .replace(/</g, '&lt;')\r\n    .replace(/>/g, '&gt;');\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport IntlMessageFormat from 'intl-messageformat';\r\nimport api from './api';\r\nimport Observer from './Observer';\r\nimport BaseTranslate from 'components/common/Translate';\r\n\r\n/**\r\n * @class Locale\r\n */\r\nclass Locale {\r\n    static sections = {};\r\n\r\n    /**\r\n     * Register new locale section\r\n     * @param {String} name\r\n     * @param {Object} [messages]\r\n     * @returns {Locale}\r\n     */\r\n    static addSection(name, messages) {\r\n        this.sections[name] = new Locale(messages);\r\n        Observer.notify({ name, messages }, 'plesk:addedLocaleSection');\r\n\r\n        return this.sections[name];\r\n    }\r\n\r\n    /**\r\n     * Returns registered locale section or created empty section\r\n     * @param {String} name\r\n     * @returns {Locale}\r\n     */\r\n    static getSection(name) {\r\n        if (!this.sections[name]) {\r\n            return new Locale();\r\n        }\r\n        return this.sections[name];\r\n    }\r\n\r\n    static getTranslate(name) {\r\n        const Translate = props => <BaseTranslate namespace={name} {...props} />;\r\n        return Translate;\r\n    }\r\n\r\n    /**\r\n     * Load, register, and returns locale sections\r\n     * @param {String[]} names\r\n     * @param {String} [locale]\r\n     * @returns {Promise<Locale[]>}\r\n     */\r\n    static async loadSections(names, locale) {\r\n        const namesToLoad = names.filter(name => locale || !this.sections[name]);\r\n\r\n        if (namesToLoad.length) {\r\n            const params = namesToLoad.map(section => `sections[]=${encodeURIComponent(section)}`);\r\n            if (locale) {\r\n                params.push(`locale=${encodeURIComponent(locale)}`);\r\n            }\r\n            try {\r\n                const sections = await api.get(`/cp/locale?${params.join('&')}`);\r\n                Object.keys(sections).forEach(name => {\r\n                    this.addSection(name, sections[name]);\r\n                });\r\n            } catch {}\r\n        }\r\n\r\n        return names.map(name => this.getSection(name));\r\n    }\r\n\r\n    /**\r\n     * Load, register, and returns locale section\r\n     * @param {String} name\r\n     * @returns {Promise<Locale>}\r\n     */\r\n    static async loadSection(name) {\r\n        const [locale] = await this.loadSections([name]);\r\n        return locale;\r\n    }\r\n\r\n    constructor(messages = {}) {\r\n        this.messages = messages;\r\n    }\r\n\r\n    /**\r\n     * Get locale message by key.\r\n     * @param {String} key\r\n     * @param {Object} [params]\r\n     * @returns {String}\r\n     */\r\n    lmsg(key, params) {\r\n        const value = this.messages[key];\r\n        if ('undefined' === typeof value) {\r\n            return `[${key}]`;\r\n        }\r\n\r\n        if ('undefined' === typeof params) {\r\n            return value;\r\n        }\r\n\r\n        return Object.keys(params)\r\n            .reduce((value, paramKey) => value.replace(`%%${paramKey}%%`, params[paramKey]), value);\r\n    }\r\n\r\n    /**\r\n     * Get formatted locale message by key.\r\n     * @param {String} key\r\n     * @param {Object} [params]\r\n     * @returns {String}\r\n     */\r\n    formatMessage(key, params) {\r\n        return new IntlMessageFormat(this.lmsg(key, params), document.documentElement.lang || 'en-US').format(params);\r\n    }\r\n}\r\n\r\nexport default Locale;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport UAT from 'common/user-activity-tracking';\r\nimport { isNetworkError } from 'helpers/isNetworkError';\r\nimport addUrlParams from './addUrlParams';\r\nimport emptyFn from './emptyFn';\r\n\r\nconst RETRY_DELAY = 500;\r\nconst GET_REQUEST_RETRY_COUNT = 3;\r\n\r\nconst request = (url, config = {}, retryCount = 0) => {\r\n    if (window.Ajax) {\r\n        window.Ajax.activeRequestCount++;\r\n    }\r\n\r\n    const headers = {\r\n        'X-Requested-With': 'XMLHttpRequest',\r\n    };\r\n    const tokenEl = document.getElementById('forgery_protection_token');\r\n    if (tokenEl) {\r\n        headers['X-Forgery-Protection-Token'] = tokenEl.content;\r\n    }\r\n\r\n    config = {\r\n        credentials: 'same-origin',\r\n        ...config,\r\n        headers: {\r\n            ...headers,\r\n            ...config.headers,\r\n        },\r\n    };\r\n\r\n    return fetch(url, config)\r\n        .then(response => {\r\n            if (response.status === 400) {\r\n                window.location.reload();\r\n                return new Promise(emptyFn);\r\n            }\r\n            if (!response.ok) {\r\n                if (response.headers.get('Content-Type')?.startsWith('application/json')) {\r\n                    return response.json()\r\n                        .then(data => Promise.reject(new Error(data.message ?? JSON.stringify(data))));\r\n                }\r\n                return response.text()\r\n                    .then(body => Promise.reject(new Error(body)));\r\n            }\r\n            return response.json();\r\n        })\r\n        .catch(error => {\r\n            if (error instanceof TypeError && isNetworkError(error)) {\r\n                if (retryCount > 0) {\r\n                    return new Promise(resolve => setTimeout(() => resolve(), RETRY_DELAY))\r\n                        .then(() => request(url, config, --retryCount));\r\n                }\r\n\r\n                throw error;\r\n            }\r\n            throw error;\r\n        })\r\n        .finally(() => {\r\n            if (window.Ajax) {\r\n                window.Ajax.activeRequestCount--;\r\n            }\r\n        });\r\n};\r\n\r\nexport default {\r\n    get: (url, params = {}) => request(addUrlParams(url, params), { method: 'GET' }, GET_REQUEST_RETRY_COUNT),\r\n    post: (url, params = {}) => {\r\n        UAT.dispatchAction('REQUEST', { url });\r\n        const headers = {};\r\n        let body;\r\n        if (params instanceof FormData) {\r\n            body = params;\r\n        } else {\r\n            body = JSON.stringify(params);\r\n            headers['Content-Type'] = 'application/json; charset=utf-8';\r\n        }\r\n        return request(url, {\r\n            method: 'POST',\r\n            headers,\r\n            body,\r\n        });\r\n    },\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nif (!Element.prototype.matches) {\r\n    Element.prototype.matches = Element.prototype.msMatchesSelector;\r\n}\r\n\r\nimport Firehose from 'aws-sdk/clients/firehose';\r\nimport isURL from 'validator/lib/isURL';\r\n\r\nconst getPageUrl = ({ pathname, search }) => {\r\n    const pageUrlParam = pathname.match(/^\\/smb\\/account\\/switch\\//i) ? 'returnUrl' : 'pageUrl';\r\n    const re = new RegExp(`${pageUrlParam}=([^&]*)`);\r\n    const result = re.exec(search);\r\n    if (result && result[1]) {\r\n        try {\r\n            return decodeURIComponent(result[1]);\r\n        } catch {\r\n        }\r\n    }\r\n    return null;\r\n};\r\n\r\nconst link = document.createElement('a');\r\nconst filterPleskUrl = url => {\r\n    link.href = url;\r\n\r\n    const { pathname, search, hash } = link;\r\n\r\n    const pageUrl = getPageUrl(link);\r\n    if (pageUrl) {\r\n        return filterPleskUrl(pageUrl);\r\n    }\r\n\r\n    const sensitiveUrls = [\r\n        /^\\/smb\\/file-manager\\//i,\r\n        /^\\/(admin|smb)\\/backup\\//i,\r\n        /\\/hosting\\/web-directories\\//i,\r\n    ];\r\n\r\n    if (sensitiveUrls.some(pattern => pathname.match(pattern))) {\r\n        return pathname;\r\n    }\r\n\r\n    const sensitiveParams = [\r\n        /\\[searchText]=[^&]*/g,\r\n        /\\[sql_query]=[^&]*/g,\r\n    ];\r\n    const safeSearch = sensitiveParams.reduce((result, pattern) => result.replace(pattern, ''), search);\r\n\r\n    return pathname + safeSearch + hash;\r\n};\r\n\r\nconst filterExternalUrl = url => {\r\n    const allowedUrls = [\r\n        /^https?:\\/\\/([\\w-]+\\.)*plesk\\.com/i,\r\n        /^https?:\\/\\/(www\\.)?facebook\\.com\\/(groups\\/)?plesk$/i,\r\n        /^https?:\\/\\/(www\\.)?twitter\\.com\\/plesk$/i,\r\n    ];\r\n\r\n    if (allowedUrls.some(pattern => url.match(pattern))) {\r\n        return url.split('?')[0];\r\n    }\r\n    return null;\r\n};\r\n\r\nexport const getUrl = href => {\r\n    // eslint-disable-next-line camelcase\r\n    if (href && !isURL(href, { protocols: ['http', 'https'], require_host: false })) {\r\n        return null;\r\n    }\r\n\r\n    if (href && href.match(/^(?:[a-z]+:)?\\/\\//i)) {\r\n        return filterExternalUrl(href);\r\n    }\r\n\r\n    return filterPleskUrl(href ? href : window.location.href);\r\n};\r\n\r\nconst getElementCSSSelector = el => {\r\n    if (!el || !el.localName) {\r\n        return null;\r\n    }\r\n    let label = el.localName.toLowerCase();\r\n    if (el.id) {\r\n        label += `#${el.id}`;\r\n    }\r\n    if (el.classList) {\r\n        for (let i = 0, len = el.classList.length; i < len; ++i) {\r\n            label += `.${el.classList[i]}`;\r\n        }\r\n    }\r\n    return label;\r\n};\r\n\r\nconst getElementCSSPath = (el, depth) => {\r\n    const paths = [];\r\n    for (let i = 0; el && el.nodeType === Node.ELEMENT_NODE && i < depth; el = el.parentNode, i++) {\r\n        paths.splice(0, 0, getElementCSSSelector(el));\r\n    }\r\n    return paths.length ? paths.join(' ') : null;\r\n};\r\n\r\nconst getElement = event => {\r\n    let { target } = event;\r\n    const { currentTarget, type } = event;\r\n\r\n    if (currentTarget\r\n        && currentTarget.tagName\r\n        && (type === 'load'\r\n            || type === 'error'\r\n            || (type === 'click'\r\n                && currentTarget.tagName.toLowerCase() === 'input'\r\n                && currentTarget.type === 'radio'\r\n            )\r\n        )\r\n    ) {\r\n        target = currentTarget;\r\n    }\r\n\r\n    return target.nodeType === Node.TEXT_NODE ? target.parentNode : target;\r\n};\r\n\r\nconst findElement = (event, selector, matchClasses) => {\r\n    let element = getElement(event);\r\n\r\n    if (!selector && !matchClasses) {\r\n        return element;\r\n    }\r\n\r\n    const isMatches = el => matchClasses && matchClasses.some(cls => (new RegExp(`\\\\b${cls}\\\\b`, 'i')).test(el.getAttribute('class')));\r\n\r\n    while (element) {\r\n        if (element.nodeType === Node.ELEMENT_NODE\r\n            && ((!matchClasses && element.matches(selector)) || isMatches(element))\r\n        ) {\r\n            return element;\r\n        }\r\n        element = element.parentNode;\r\n    }\r\n\r\n    return null;\r\n};\r\n\r\nexport const prepareNodeData = (el, textEl, config) => {\r\n    const data = {};\r\n    const PARENT_DEPTH_LIMIT = 5;\r\n    data.css = getElementCSSPath(el, PARENT_DEPTH_LIMIT);\r\n    if (el.id) {\r\n        data.id = el.id;\r\n    }\r\n    if (config && config.attributes) {\r\n        config.attributes.forEach(attr => {\r\n            if (!el.hasAttribute(attr)) {\r\n                return;\r\n            }\r\n            const value = (attr === 'href') ? getUrl(el.getAttribute(attr)) : el.getAttribute(attr);\r\n            if (value) {\r\n                data[attr] = value;\r\n            }\r\n        });\r\n    }\r\n    ['id', 'type', 'action', ...[config && config.dataset ? config.dataset : []]].forEach(param => {\r\n        if (!(param in el.dataset)) {\r\n            return;\r\n        }\r\n        if (!('dataset' in data)) {\r\n            data.dataset = {};\r\n        }\r\n        data.dataset[param] = el.dataset[param];\r\n    });\r\n    return data;\r\n};\r\n\r\nconst getParents = target => {\r\n    if (!target || !target.parentElement) {\r\n        return [];\r\n    }\r\n\r\n    let parent = target;\r\n    const parents = [];\r\n    while (parent) {\r\n        parents.push(parent.dataset.type);\r\n        parent = parent.parentElement.closest('[data-type]');\r\n    }\r\n\r\n    if (parents.length > 1) {\r\n        return parents.slice(1);\r\n    }\r\n\r\n    return [];\r\n};\r\n\r\nconst preparePostData = (action, target) => {\r\n    const data = {};\r\n\r\n    if (action.post && target) {\r\n        if (action.post.self) {\r\n            action.post.self.forEach(function (attr) {\r\n                if (attr === 'value') {\r\n                    return;\r\n                }\r\n                const value = target.getAttribute(attr);\r\n                if (value) {\r\n                    data[attr] = value;\r\n                }\r\n            });\r\n        }\r\n        if (action.post.selfText) {\r\n            data.text = target.innerText;\r\n        }\r\n    }\r\n\r\n    if (action.data) {\r\n        Object.keys(action.data).forEach(function (key) {\r\n            data[key] = action.data[key];\r\n        });\r\n    }\r\n\r\n    const parents = getParents(target);\r\n    if (parents.length > 0) {\r\n        data.parents = parents;\r\n    }\r\n\r\n    return data;\r\n};\r\n\r\nconst handleAnonymousSession = (action, config, data) => {\r\n    if (!config.sessionId) {\r\n        if (!window.localStorage.getItem('uat-aid')) {\r\n            window.localStorage.setItem('uat-aid', Math.random().toString(36).slice(2));\r\n        }\r\n        data['uat-aid'] = window.localStorage.getItem('uat-aid');\r\n        return;\r\n    }\r\n    if ('LOGIN' === action.name && window.localStorage.getItem('uat-aid')) {\r\n        data['uat-aid'] = window.localStorage.getItem('uat-aid');\r\n        window.localStorage.removeItem('uat-aid');\r\n    }\r\n};\r\n\r\nconst encodeSensitiveChars = list => {\r\n    const preparedChars = {\r\n        '|': encodeURIComponent('|'),\r\n        '\\n': encodeURIComponent('\\n'),\r\n    };\r\n\r\n    const escapeChar = value => {\r\n        if (!value) {\r\n            return '';\r\n        }\r\n\r\n        Object.entries(preparedChars).forEach(([raw, encoded]) => {\r\n            value = value.replace(new RegExp(`\\\\${raw}`, 'g'), encoded);\r\n        });\r\n\r\n        return value;\r\n    };\r\n\r\n    return list.map(escapeChar);\r\n};\r\n\r\n/**\r\n * Firehose instance\r\n */\r\nlet firehose;\r\nlet config;\r\nlet initialized = false;\r\nlet patches = {};\r\n\r\nexport const request = (action, target, result) => {\r\n    const parameters = {\r\n        timestamp: (new Date()).toISOString(),\r\n        instanceId: config.instanceId,\r\n        accountLevel: config.accountLevel,\r\n        accountId: config.accountId,\r\n        sessionId: config.sessionId,\r\n        path: action.url || getUrl(),\r\n        action: action.name || null,\r\n        result: result || null,\r\n    };\r\n\r\n    const data = preparePostData(action, target);\r\n    handleAnonymousSession(action, config, data);\r\n    if (config.parentId) {\r\n        data.parentId = config.parentId;\r\n    }\r\n    if (Object.keys(data).length) {\r\n        parameters.additionalData = JSON.stringify(data);\r\n    }\r\n\r\n    if (typeof config.logger === 'function') {\r\n        config.logger(parameters);\r\n    }\r\n    if (!config.firehose) {\r\n        return;\r\n    }\r\n    if (!firehose) {\r\n        firehose = new Firehose(config.firehose);\r\n    }\r\n\r\n    firehose.putRecord({\r\n        DeliveryStreamName: config.sessionId ? config.firehose.stream : config.firehose.noSessionStream,\r\n        Record: {\r\n            Data: `${encodeSensitiveChars(Object.values(parameters)).join('|')}\\n`,\r\n        },\r\n    }, () => {\r\n        // empty callback\r\n    });\r\n};\r\n\r\nlet watchers = {\r\n    contentLoad(contentConfig, expect, action) {\r\n        if (document.readyState === 'loading') {\r\n            window.addEventListener('load', function (event) {\r\n                action.data = action.data || {};\r\n                if (config.extensions) {\r\n                    action.data.extensions = config.extensions;\r\n                }\r\n\r\n                setTimeout(() => {\r\n                    if (window.performance) {\r\n                        const perfData = window.performance.timing;\r\n                        action.data.pageLoadTime = perfData.loadEventEnd - perfData.navigationStart;\r\n                        action.data.requestTime = perfData.responseEnd - perfData.requestStart;\r\n                        action.data.renderTime = perfData.domComplete - perfData.domLoading;\r\n                    }\r\n\r\n                    request(action, event.target);\r\n                }, 0);\r\n            });\r\n        } else {\r\n            request(action, document);\r\n        }\r\n    },\r\n\r\n    historyReplaceState(contentConfig, expect, action) {\r\n        window.history.replaceState = new Proxy(window.history.replaceState, {\r\n            apply: (target, thisArg, argArray) => {\r\n                action.data = action.data || {};\r\n                if (config.extensions) {\r\n                    action.data.extensions = config.extensions;\r\n                }\r\n\r\n                request(action, document);\r\n\r\n                return target.apply(thisArg, argArray);\r\n            },\r\n        });\r\n    },\r\n\r\n    click: ({ elements }, expect, action, eventName) => {\r\n        document.addEventListener(eventName, function (event) {\r\n            if (event.uatHandled) {\r\n                return;\r\n            }\r\n            for (let i = 0; i < elements.length; i++) {\r\n                let el;\r\n                let { selector } = elements[i];\r\n                const { matchClasses } = elements[i];\r\n                if (selector) {\r\n                    selector = Array.isArray(selector) ? selector : [selector];\r\n                    for (let j = 0; j < selector.length && !el; j++) {\r\n                        el = findElement(event, selector[j], matchClasses);\r\n                    }\r\n                }\r\n                if (el) {\r\n                    event.uatHandled = true;\r\n                    request({\r\n                        ...action,\r\n                        name: (el.dataset.action || action.name).toUpperCase(),\r\n                        data: prepareNodeData(el, event.target, elements[i]),\r\n                    }, el);\r\n                    break;\r\n                }\r\n            }\r\n        }, true);\r\n    },\r\n};\r\n\r\nlet actions = [\r\n    {\r\n        expects: [{\r\n            contentLoad: {},\r\n        }],\r\n    },\r\n    {\r\n        expects: [{\r\n            historyReplaceState: {},\r\n        }],\r\n    },\r\n    {\r\n        name: 'CLICK',\r\n        expects: [{\r\n            click: {\r\n                elements: [\r\n                    {\r\n                        selector: '[data-action]',\r\n                    },\r\n                    {\r\n                        selector: 'a',\r\n                        attributes: ['href'],\r\n                    },\r\n                    {\r\n                        selector: 'button',\r\n                    },\r\n                    {\r\n                        selector: ['span', 'div'],\r\n                        matchClasses: ['commonButton', 'btn', 'link', 'hint', 'button', 'control'],\r\n                    },\r\n                ],\r\n            },\r\n        }],\r\n    },\r\n];\r\n\r\nconst patchUI = () => {\r\n    Object.keys(patches).forEach(name => {\r\n        patches[name]();\r\n    });\r\n};\r\n\r\nconst startTracking = () => {\r\n    actions.forEach(function (action) {\r\n        action.expects.forEach(function (expect) {\r\n            Object.keys(expect).forEach(function (event) {\r\n                watchers[event] && watchers[event](expect[event], expect, action, event);\r\n            });\r\n        });\r\n    });\r\n};\r\n\r\nconst UAT = {\r\n    init(initConfig) {\r\n        if (!initConfig || initialized) {\r\n            return;\r\n        }\r\n\r\n        config = initConfig;\r\n        patchUI();\r\n        startTracking();\r\n        initialized = true;\r\n    },\r\n\r\n    setPatches(fn) {\r\n        patches = fn(patches);\r\n    },\r\n\r\n    setActions(fn) {\r\n        actions = fn(actions);\r\n    },\r\n\r\n    setWatchers(fn) {\r\n        watchers = fn(watchers);\r\n    },\r\n\r\n    setLogger(logger) {\r\n        config.logger = logger;\r\n    },\r\n\r\n    dispatchAction(action, data) {\r\n        if (!initialized) {\r\n            return;\r\n        }\r\n\r\n        request({ name: action, url: getUrl(), data });\r\n    },\r\n\r\n    getConfig() {\r\n        return config;\r\n    },\r\n};\r\n\r\nexport default UAT;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nexport const isNetworkError = error => {\r\n    const errors = [\r\n        // chrome\r\n        'Failed to fetch',\r\n        // firefox\r\n        'NetworkError when attempting to fetch resource.',\r\n        // safari\r\n        'Fetch API cannot load',\r\n        'Network request failed',\r\n    ];\r\n\r\n    return errors.any(e => error.message.startsWith(e));\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nconst toQueryParams = str => {\r\n    if (!str) {\r\n        return {};\r\n    }\r\n\r\n    const match = str.match(/([^?#]*)(#.*)?$/);\r\n    const params = new URLSearchParams(match[1]);\r\n\r\n    return [...params.entries()].reduce((acc, [key, val]) => {\r\n        if (acc.hasOwnProperty(key)) {\r\n            if (Array.isArray(acc[key])) {\r\n                acc[key].push(val);\r\n            } else {\r\n                acc[key] = [acc[key], val];\r\n            }\r\n        } else {\r\n            acc[key] = val;\r\n        }\r\n\r\n        return acc;\r\n    }, {});\r\n};\r\n\r\n\r\nexport default (url, params) => {\r\n    if ('string' === typeof params) {\r\n        const splitUrl = url.split('?', 2);\r\n        params = params.startsWith('/') || params.startsWith('?') ? params : `?${params}`;\r\n        const splitParams = params.split('?', 2);\r\n        url = splitUrl[0].replace(/\\/+$/, '') + splitParams[0];\r\n        params = {\r\n            ...toQueryParams(splitUrl[1] || ''),\r\n            ...toQueryParams(splitParams[1] || ''),\r\n        };\r\n    }\r\n\r\n    if (Object.prototype.toString.call(params) === '[object Object]') {\r\n        params = Object.keys(params).map(function (name) {\r\n            if ('undefined' === typeof params[name]) {\r\n                return name;\r\n            }\r\n            return `${name}=${encodeURIComponent(params[name])}`;\r\n        }).join('&');\r\n    }\r\n\r\n    if (!params) {\r\n        return url;\r\n    }\r\n    return url + (-1 !== url.indexOf('?') ? '&' : '?') + params;\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nexport default () => {};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nconst observers = new Map();\r\nconst getObservers = ns => {\r\n    if (!observers.has(ns)) {\r\n        observers.set(ns, []);\r\n    }\r\n    return observers.get(ns);\r\n};\r\n\r\nclass Observer {\r\n    /**\r\n     * @param {Function} callback\r\n     * @param {String} ns\r\n     */\r\n    static append(callback, ns) {\r\n        getObservers(ns).push(callback);\r\n    }\r\n\r\n    /**\r\n     * @param {String} ns\r\n     * @param {Function} callback\r\n     */\r\n    static addEventListener(ns, callback) {\r\n        this.append(callback, ns);\r\n    }\r\n\r\n    /**\r\n     * @param {Function} callback\r\n     * @param {String} ns\r\n     */\r\n    static appendAndCall(callback, ns) {\r\n        getObservers(ns).push(callback);\r\n        callback();\r\n    }\r\n\r\n    /**\r\n     * @param {Object} event\r\n     * @param {String} ns\r\n     */\r\n    static notify(event, ns) {\r\n        getObservers(ns).forEach(callback => callback(event));\r\n    }\r\n\r\n    /**\r\n     * @param {Function} callback\r\n     * @param {String} ns\r\n     */\r\n    static remove(callback, ns) {\r\n        const pos = getObservers(ns).indexOf(callback);\r\n        if (pos !== -1) {\r\n            getObservers(ns).splice(pos, 1);\r\n        }\r\n    }\r\n\r\n    /**\r\n     * @param {String} ns\r\n     * @param {Function} callback\r\n     */\r\n    static removeEventListener(ns, callback) {\r\n        this.remove(callback, ns);\r\n    }\r\n}\r\n\r\nexport default Observer;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Translate as BaseTranslate } from '@plesk/ui-library';\r\n\r\nconst Translate = ({ component, ...props }) => (\r\n    <BaseTranslate component={component} {...props} />\r\n);\r\n\r\nTranslate.propTypes = {\r\n    component: PropTypes.elementType,\r\n};\r\n\r\nTranslate.defaultProps = {\r\n    component: Fragment,\r\n};\r\n\r\nexport default Translate;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport * as React from '@plesk/ui-library';\r\n\r\nexport default React;\r\nexport * from '@plesk/ui-library';\r\n","module.exports = window.PleskUiLibrary;","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { createRoot } from 'react-dom/client';\r\nimport { isValidElement } from 'react';\r\nimport { captureException } from '@sentry/browser';\r\nimport { Component } from './component';\r\nimport emptyFn from './emptyFn';\r\n\r\nconst addScript = src => new Promise((resolve, reject) => {\r\n    const s = document.createElement('script');\r\n    s.setAttribute('src', src);\r\n    s.onload = resolve;\r\n    s.onerror = reject;\r\n    document.body.appendChild(s);\r\n});\r\n\r\nconst evalScripts = string => {\r\n    const scriptFragment = '<script[^>]*>([\\\\S\\\\s]*?)<\\/script\\\\s*>';\r\n\r\n    const matchAll = new RegExp(scriptFragment, 'img');\r\n    const matchOne = new RegExp(scriptFragment, 'im');\r\n\r\n    const scripts = string.match(matchAll)?.map(scriptTag => (scriptTag.match(matchOne) || ['', ''])[1]);\r\n\r\n    scripts?.forEach(script => {\r\n        try {\r\n            // eslint-disable-next-line no-eval\r\n            eval(script);\r\n        } catch (e) {\r\n            captureException(e, scope => {\r\n                scope.setExtras({ script });\r\n            });\r\n            // eslint-disable-next-line no-console\r\n            console?.error(e);\r\n        }\r\n    });\r\n};\r\n\r\n/**\r\n * Helper for render components/elements/strings\r\n * @experimental Be careful with this method, its implementation is not yet complete.\r\n *\r\n * @param {Element} parentElement\r\n * @param {Component|Function|Element|Object|String} element\r\n * @param {String} [renderMode=bottom\"] above|below|top|bottom|inner|replace\r\n */\r\nconst render = (parentElement, element, renderMode = 'bottom') => {\r\n    if (!element) {\r\n        return;\r\n    }\r\n\r\n    if (renderMode === 'inner') {\r\n        parentElement.innerHTML = '';\r\n        renderMode = 'bottom';\r\n    }\r\n\r\n    if (Array.isArray(element)) {\r\n        element.forEach(element => {\r\n            render(parentElement, element, renderMode);\r\n        });\r\n        return;\r\n    }\r\n\r\n    if (typeof element === 'function') {\r\n        render(parentElement, element(), renderMode);\r\n        return;\r\n    }\r\n\r\n    if (element instanceof Component) {\r\n        element.setRenderTarget(parentElement);\r\n        if (renderMode) {\r\n            element._renderMode = renderMode;\r\n        }\r\n        element.render();\r\n        return;\r\n    }\r\n\r\n    if (isValidElement(element)) {\r\n        (parentElement._jswReactRootContainer ||= createRoot(parentElement)).render(element);\r\n        return;\r\n    }\r\n\r\n    if (Object.prototype.toString.call(element) === '[object Object]' && element.tag) {\r\n        const attrs = { ...element.attrs };\r\n        Object.keys(attrs).forEach(function (attr) {\r\n            if ('undefined' === typeof attrs[attr]) {\r\n                delete attrs[attr];\r\n            }\r\n        });\r\n\r\n        const renderFn = typeof attrs.onrender === 'function' ? attrs.onrender : emptyFn;\r\n        delete attrs.onrender;\r\n\r\n        const events = {};\r\n        Object.keys(attrs).forEach(attr => {\r\n            if (typeof attrs[attr] === 'function' && attr.indexOf('on') === 0) {\r\n                events[attr.slice(2)] = attrs[attr];\r\n                delete attrs[attr];\r\n            }\r\n        });\r\n\r\n        const el = document.createElement(element.tag);\r\n        Object.keys(attrs).forEach(name => {\r\n            if (attrs[name] === true) {\r\n                el.setAttribute(name, name);\r\n            } else if (attrs[name] !== null && attrs[name] !== false) {\r\n                el.setAttribute(name, attrs[name]);\r\n            }\r\n        });\r\n        Object.keys(events).forEach(eventName => {\r\n            el.addEventListener(eventName, events[eventName]);\r\n        });\r\n\r\n        render(el, element.children);\r\n\r\n        element = el;\r\n        renderFn(element);\r\n    }\r\n\r\n    switch (renderMode) {\r\n        case 'bottom':\r\n            if (element instanceof Node) {\r\n                parentElement.insertBefore(element, null);\r\n            } else {\r\n                parentElement.insertAdjacentHTML('beforeend', element);\r\n            }\r\n            break;\r\n\r\n        case 'top':\r\n            if (element instanceof Node) {\r\n                parentElement.insertBefore(element, parentElement.firstChild);\r\n            } else {\r\n                parentElement.insertAdjacentHTML('afterbegin', element);\r\n            }\r\n            break;\r\n\r\n        case 'before':\r\n            if (element instanceof Node) {\r\n                parentElement.parentNode.insertBefore(element, parentElement);\r\n            } else {\r\n                parentElement.insertAdjacentHTML('beforebegin', element);\r\n            }\r\n            break;\r\n\r\n        case 'after':\r\n        case 'replace':\r\n            if (element instanceof Node) {\r\n                parentElement.parentNode.insertBefore(element, parentElement.nextSibling);\r\n            } else {\r\n                parentElement.insertAdjacentHTML('afterend', element);\r\n            }\r\n\r\n            if (renderMode === 'replace') {\r\n                parentElement.parentNode.removeChild(parentElement);\r\n            }\r\n            break;\r\n\r\n        default:\r\n            throw new Error(`Unsupported renderMode for render(): ${renderMode}`);\r\n    }\r\n\r\n    if (typeof element === 'string') {\r\n        setTimeout(async () => {\r\n            const scriptRegex = /<script.*?src=(\"|')(.*?)(\"|').*?><\\/script>/ig;\r\n            let matches;\r\n            while (null !== (matches = scriptRegex.exec(element))) {\r\n                try {\r\n                    await addScript(matches[2]);\r\n                } catch {}\r\n            }\r\n            evalScripts(element);\r\n        }, 10);\r\n    }\r\n};\r\n\r\nexport default render;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { captureException } from '@sentry/browser';\r\n\r\nconst HIGH = 'high';\r\nconst NORMAL = 'normal';\r\nconst LOW = 'low';\r\n\r\nexport const priority = {\r\n    [HIGH]: HIGH,\r\n    [NORMAL]: NORMAL,\r\n    [LOW]: LOW,\r\n};\r\n\r\nconst onReadyEvents = {};\r\nlet firedOnReady = false;\r\n\r\n/**\r\n * Adds a listener to be notified when the document is ready (before onload and before images are loaded).\r\n * @param {String|Function} [priority]\r\n * @param {Function} callback The method to call.\r\n */\r\nexport default (priority, callback) => {\r\n    if ('function' === typeof priority) {\r\n        callback = priority;\r\n        priority = NORMAL;\r\n    }\r\n\r\n    const wrappedCallback = () => {\r\n        try {\r\n            callback();\r\n        } catch (e) {\r\n            captureException(e);\r\n            // eslint-disable-next-line no-console\r\n            console && console.error(e);\r\n        }\r\n    };\r\n\r\n    if (firedOnReady) {\r\n        wrappedCallback();\r\n        return;\r\n    }\r\n\r\n    if (!onReadyEvents[priority]) {\r\n        onReadyEvents[priority] = [];\r\n    }\r\n\r\n    onReadyEvents[priority].push(wrappedCallback);\r\n};\r\n\r\ndocument.onreadystatechange = () => {\r\n    if (document.readyState === 'complete' && !firedOnReady) {\r\n        firedOnReady = true;\r\n        const predefinedPriorities = [LOW, NORMAL, HIGH];\r\n        Object.keys(onReadyEvents)\r\n            .sort((a, b) => predefinedPriorities.indexOf(b) - predefinedPriorities.indexOf(a))\r\n            .forEach(priority => {\r\n                onReadyEvents[priority].forEach(Function.prototype.call, Function.prototype.call);\r\n            });\r\n    }\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { StatusMessage } from './status-message';\r\nimport createComponent from './createComponent';\r\n\r\nexport default (type, message, params = {}) => {\r\n    try {\r\n        createComponent({\r\n            componentType: params.componentType || StatusMessage,\r\n            renderTo: 'main',\r\n            renderMode: 'top',\r\n            type,\r\n            message,\r\n            ...params,\r\n        });\r\n    } catch {\r\n        // eslint-disable-next-line no-alert\r\n        alert(`${type} | ${message}`);\r\n    }\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Component } from './component';\r\nimport prepareUrl from './prepareUrl';\r\nimport render from './render';\r\nimport createElement from './createElement';\r\nimport api from './api';\r\n\r\nimport './status-message.less';\r\n\r\nexport class StatusMessage extends Component {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n        this._type = this._getConfigParam('type', 'error');\r\n        this._cls = this._getConfigParam('cls', `msg-box msg-${this._type}`);\r\n        this._title = this._getConfigParam('title', '');\r\n        this._message = this._getConfigParam('message', '');\r\n        this._source = this._getConfigParam('source', null);\r\n        this._closable = this._getConfigParam('closable', false);\r\n        this._onClose = this._getConfigParam('onClose', null);\r\n        const hideUrl = this._getConfigParam('hideUrl', null);\r\n        if (hideUrl) {\r\n            this._closable = true;\r\n            this._onClose = event => {\r\n                const el = event.target.closest('.msg-box');\r\n                el.parentNode.removeChild(el);\r\n                api.post(prepareUrl(hideUrl));\r\n            };\r\n        }\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n        if (this._source) {\r\n            this._componentElement.dataset.source = this._source;\r\n        }\r\n\r\n        render(this._componentElement,\r\n            createElement('div',\r\n                createElement('div',\r\n                    createElement('div',\r\n                        createElement('div',\r\n                            createElement('div',\r\n                                createElement('div.msg-content',\r\n                                    this._renderCloseButton(),\r\n                                    this._renderMessage(),\r\n                                ),\r\n                            ),\r\n                        ),\r\n                    ),\r\n                ),\r\n            ),\r\n        );\r\n    }\r\n\r\n    _renderMessage() {\r\n        return [this._title ? `<b>${this._title}:</b> ` : null, this._message];\r\n    }\r\n\r\n    _renderCloseButton() {\r\n        if (!this._closable) {\r\n            return null;\r\n        }\r\n        return createElement('span.close', {\r\n            onclick: typeof this._onClose === 'function'\r\n                ? this._onClose.bind(this)\r\n                : this._onClose,\r\n        });\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nexport default url => {\r\n    if (typeof url !== 'string') {\r\n        return null;\r\n    }\r\n\r\n    const baseUrl = (global.Jsw && global.Jsw.baseUrl) || '';\r\n\r\n    if (url.substr(0, 2) === '^/') {\r\n        return url.toString().substr(1);\r\n    }\r\n\r\n    if (\r\n        url.startsWith('/plesk/') ||\r\n        url.startsWith('/services/') ||\r\n        url.startsWith('/modules/') ||\r\n        url.startsWith('/admin/') ||\r\n        url.startsWith('/smb/') ||\r\n        url.startsWith('/cp/') ||\r\n        (baseUrl !== '' && url.startsWith(`${baseUrl}/`)) ||\r\n        !url.startsWith('/') ||\r\n        url.split('?')[0].endsWith('.php')\r\n    ) {\r\n        return url;\r\n    }\r\n\r\n    return baseUrl + url;\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { isValidElement } from 'react';\r\nimport { Component } from './component';\r\n\r\n/**\r\n * Helper for create elements\r\n * @experimental Be careful with this method, its implementation is not yet complete.\r\n *\r\n * @param {String} selector\r\n * @param {Object} [attrs]\r\n * @param {String[]|String...|Object[]|Object...} [children]\r\n * @returns {Object}\r\n */\r\nexport default (selector, ...args) => {\r\n    const hasAttrs = Object.prototype.toString.call(args[0]) === '[object Object]'\r\n        && !('tag' in args[0])\r\n        && !isValidElement(args[0])\r\n        && !(args[0] instanceof Component);\r\n    let tag = 'div';\r\n    const classes = [];\r\n    const selectorRe = /(?:(^|#|\\.)([^#\\.\\[\\]]+))|(\\[.+?\\])/g;\r\n    const attrRe = /\\[(.+?)(?:=(\"|'|)(.*?)\\2)?\\]/;\r\n    let match;\r\n    const attrs = hasAttrs ? args.shift() : {};\r\n\r\n    while ((match = selectorRe.exec(selector))) {\r\n        if (match[1] === '' && match[2]) {\r\n            tag = match[2];\r\n        } else if (match[1] === '#') {\r\n            attrs.id = match[2];\r\n        } else if (match[1] === '.') {\r\n            classes.push(match[2]);\r\n        } else if (match[3][0] === '[') {\r\n            const pair = attrRe.exec(match[3]);\r\n            attrs[pair[1]] = pair[3] || (pair[2] ? '' : true);\r\n        }\r\n    }\r\n\r\n    if (typeof attrs.class === 'string' && attrs.class !== '') {\r\n        classes.push(attrs.class);\r\n    }\r\n    if (classes.length) {\r\n        attrs.class = classes.join(' ');\r\n    }\r\n\r\n    const children = args.length === 1 && Array.isArray(args[0]) ? args[0] : args;\r\n\r\n    return {\r\n        tag,\r\n        attrs,\r\n        children,\r\n    };\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport pageData from '../helpers/pageData';\r\n\r\nexport default () => {\r\n    pageData({ ...pageData(), status: [] });\r\n\r\n    const contentElement = document.getElementById('main');\r\n    if (!contentElement) {\r\n        return;\r\n    }\r\n    ['.msg-error', '.msg-info', '.msg-warning'].forEach(msgClass => {\r\n        contentElement.querySelectorAll(`${msgClass}:not([data-rendered-by-react])`).forEach(messageElement => {\r\n            messageElement.parentNode.removeChild(messageElement);\r\n        });\r\n    });\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { makeVar, useReactiveVar } from '@apollo/client';\r\n\r\nconst pageData = makeVar({});\r\n\r\nexport const usePageData = () => useReactiveVar(pageData);\r\n\r\nexport default pageData;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport addStatusMessage from './addStatusMessage';\r\nimport clearStatusMessages from './clearStatusMessages';\r\nimport escapeHtml from './escapeHtml';\r\n\r\nexport default message => {\r\n    clearStatusMessages();\r\n    let statusMessage = `Internal error<pre>${escapeHtml(message)}</pre>`;\r\n    try {\r\n        const jsonMessage = JSON.parse(message);\r\n        if ('message' in jsonMessage && 'kbArticleUrl' in jsonMessage) {\r\n            statusMessage = `<pre>${escapeHtml(jsonMessage.message)}</pre>`;\r\n            statusMessage += `<a href=\"${jsonMessage.kbArticleUrl}\" target=\"_blank\">Search for related Knowledge Base articles</a>`;\r\n        }\r\n    } catch {\r\n        // Show as plaintext\r\n    }\r\n\r\n    addStatusMessage('error', statusMessage);\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport escapeHtml from './escapeHtml';\r\n\r\n/**\r\n * Escape element attributes for html concatenation\r\n *\r\n * @param {String} value\r\n * @returns {String}\r\n */\r\nexport default value => escapeHtml(value)\r\n    .replace(/\"/g, '&quot;');\r\n\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\n/**\r\n * Converts the entity forms of special HTML characters to their normal form.\r\n *\r\n * @param {String} value\r\n * @returns {String}\r\n */\r\nexport default value => String(value)\r\n    .replace(/&amp;/g, '&')\r\n    .replace(/&nbsp;/g, ' ')\r\n    .replace(/&quot;/g, '\"')\r\n    .replace(/&apos;/g, '\\'')\r\n    .replace(/&lt;/g, '<')\r\n    .replace(/&gt;/g, '>');\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\n/**\r\n * Temporary solution for fire custom events\r\n */\r\nexport default (element, eventName) => {\r\n    if (document.createEvent) {\r\n        const event = document.createEvent('HTMLEvents');\r\n        event.initEvent('dataavailable', true, true);\r\n        event.eventName = eventName;\r\n\r\n        element.dispatchEvent(event);\r\n        return;\r\n    }\r\n\r\n    const event = document.createEventObject();\r\n    event.eventType = 'ondataavailable';\r\n    event.eventName = eventName;\r\n\r\n    element.fireEvent(event.eventType, event);\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nexport const ESC = 27;\r\nexport const ENTER = 13;\r\nexport const LEFT_ARROW = 37;\r\nexport const UP_ARROW = 38;\r\nexport const RIGHT_ARROW = 39;\r\nexport const DOWN_ARROW = 40;\r\n\r\nexport default {\r\n    ESC,\r\n    ENTER,\r\n    LEFT_ARROW,\r\n    UP_ARROW,\r\n    RIGHT_ARROW,\r\n    DOWN_ARROW,\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Component } from './component';\r\nimport { createHtmlElement } from 'helpers/createHtmlElement';\r\nimport render from './render';\r\n\r\nimport './hint.less';\r\n\r\n/**\r\n * @class Hint\r\n * @extends Component\r\n *\r\n * Example usage:\r\n *\r\n *     @example\r\n *     new Hint({\r\n *         renderTo: document.body,\r\n *         hint: 'This is where you manage accounts of your hosting service customers: ' +\r\n *             'create accounts along with service subscriptions, manage existing customers, ' +\r\n *             'and remove accounts. To administer websites, mail or any other services provided ' +\r\n *             'to a customer, go to their Customer Panel by clicking the link in the right column of the list.',\r\n *         expandable: true\r\n *     });\r\n */\r\nexport class Hint extends Component {\r\n    /**\r\n     * @cfg {String} hint\r\n     */\r\n    /**\r\n     * @cfg {Boolean} [expandable=false]\r\n     */\r\n\r\n    _initConfiguration(config) {\r\n        super._initConfiguration({ tag: 'p', ...config });\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n        this._contentElement = this._componentElement;\r\n\r\n        this.setHint(\r\n            this._getConfigParam('hint', ''),\r\n        );\r\n\r\n        if (this._getConfigParam('expandable', false)) {\r\n            const componentElement = createHtmlElement('div', { class: 'screen-description' });\r\n            const wrapElement = createHtmlElement('div', { class: 'screen-description-wrap' });\r\n            const btnShowMore = createHtmlElement('span', { class: 'screen-description-control' });\r\n            btnShowMore.addEventListener('click', event => {\r\n                event.target.closest('.screen-description').classList.add('expanded');\r\n            });\r\n            render(wrapElement, this._contentElement);\r\n            render(wrapElement, btnShowMore);\r\n            render(componentElement, wrapElement);\r\n            this._componentElement = componentElement;\r\n            this._screenControl = () => {\r\n                if (Element.getWidth(componentElement) > Element.getWidth(wrapElement)) {\r\n                    btnShowMore.classList.add('off');\r\n                } else {\r\n                    btnShowMore.classList.remove('off');\r\n                }\r\n            };\r\n        }\r\n    }\r\n\r\n    _addEvents() {\r\n        super._addEvents();\r\n\r\n        if (this._screenControl) {\r\n            window.addEventListener('resize', this._screenControl);\r\n            this._screenControl();\r\n        }\r\n    }\r\n\r\n    /**\r\n     * Update hint text.\r\n     * @param {String} hint\r\n     */\r\n    setHint(hint) {\r\n        this._contentElement.innerHTML = hint;\r\n        this._screenControl?.();\r\n    }\r\n\r\n    remove() {\r\n        if (this._screenControl) {\r\n            window.removeEventListener('resize', this._screenControl);\r\n        }\r\n\r\n        super.remove();\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nexport const createHtmlElement = (tagName, attrs = {}) => {\r\n    const el = document.createElement(tagName);\r\n\r\n    Object.entries(attrs).forEach(([name, value]) => {\r\n        if (value !== null && value !== false) {\r\n            el.setAttribute(name, value);\r\n        }\r\n    });\r\n\r\n    return el;\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Component } from './component';\r\nimport prepareUrl from './prepareUrl';\r\nimport escapeHtml from './escapeHtml';\r\n\r\n/**\r\n * Example usage:\r\n *\r\n *     @example\r\n *     new Button({\r\n *         renderTo: document.body,\r\n *         title: 'Add a Customer',\r\n *         cls: 's-btn sb-add-new-customer',\r\n *         isNew: true,\r\n *         newTitle: 'New',\r\n *         handler() {\r\n *             alert('You clicked the button!');\r\n *         },\r\n *     });\r\n */\r\nexport class Button extends Component {\r\n    /**\r\n     * @cfg {String} title=\"\"\r\n     */\r\n    /**\r\n     * @cfg {String} rightIcon=\"\"\r\n     */\r\n    /**\r\n     * @cfg {String|Function} handler\r\n     */\r\n    /**\r\n     * @cfg {String} href\r\n     */\r\n    /**\r\n     * @cfg {String} target\r\n     */\r\n    /**\r\n     * @cfg {String} disabledClass=btn-disabled\r\n     */\r\n    /**\r\n     * @cfg {Boolean} isNew=false\r\n     */\r\n    /**\r\n     * @cfg {String} newTitle=\"\"\r\n     */\r\n\r\n    _initConfiguration(config) {\r\n        super._initConfiguration({ tag: 'a', ...config });\r\n\r\n        this._handler = this._getConfigParam('handler', false);\r\n        if (typeof this._handler === 'string') {\r\n            // eslint-disable-next-line no-eval\r\n            eval(`this._handler = ${this._handler}`);\r\n        }\r\n        this._title = this._getConfigParam('title', '');\r\n        this._rightIcon = this._getConfigParam('rightIcon', '');\r\n        this._cls = this._getConfigParam('cls', `b-btn${!this._title ? ' btn-icon-only' : ''}`);\r\n        this._disabledClass = this._getConfigParam('disabledClass', 'btn-disabled');\r\n        this._isNew = this._getConfigParam('isNew', false);\r\n        this._newTitle = this._getConfigParam('newTitle', '');\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        this._componentElement.innerHTML = (\r\n            '<i><i><i>' +\r\n                `<span>${escapeHtml(this._title)}${this._isNew ? ` <span class=\"badge-new\">${this._newTitle}</span>` : ''}${this._rightIcon}</span>` +\r\n            '</i></i></i>'\r\n        );\r\n\r\n        this._initVisibility();\r\n    }\r\n\r\n    _initVisibility() {\r\n        this._disabled = this._getConfigParam('disabled', false);\r\n\r\n        if (this._disabled) {\r\n            this._disabled = false;\r\n            this.disable();\r\n        } else {\r\n            this._disabled = true;\r\n            this.enable();\r\n        }\r\n    }\r\n\r\n    _addAttribute(name, value) {\r\n        if ('undefined' !== typeof value && value !== null) {\r\n            this._componentElement.setAttribute(name, value);\r\n        }\r\n    }\r\n\r\n    enable() {\r\n        if (!this._disabled) {\r\n            return;\r\n        }\r\n        this._disabled = false;\r\n\r\n        let classNames = this._config.addCls || '';\r\n        if (typeof classNames === 'string') {\r\n            classNames = classNames.split(' ').filter(className => className);\r\n        } else {\r\n            classNames = [classNames];\r\n        }\r\n        classNames.each(item => {\r\n            this._componentElement.classList.add(item);\r\n            this._componentElement.classList.remove(`${item}-disabled`);\r\n        });\r\n        this._componentElement.classList.remove(this._disabledClass);\r\n\r\n        this._addAttribute('href', prepareUrl(this._getConfigParam('href', 'javascript:;')));\r\n        this._addAttribute('target', this._getConfigParam('target', null));\r\n\r\n        this._addProgressHandler();\r\n        if (this._handler) {\r\n            this.addEventObserver('click', this._handler);\r\n        }\r\n    }\r\n\r\n    disable() {\r\n        if (this._disabled) {\r\n            return;\r\n        }\r\n        this._disabled = true;\r\n\r\n        this._componentElement.classList.add(this._disabledClass);\r\n\r\n        let classNames = this._config.addCls || '';\r\n        if (typeof classNames === 'string') {\r\n            classNames = classNames.split(' ').filter(className => className);\r\n        } else {\r\n            classNames = [classNames];\r\n        }\r\n        classNames.each(item => {\r\n            this._componentElement.classList.add(`${item}-disabled`);\r\n            this._componentElement.classList.remove(item);\r\n        });\r\n        this._componentElement.removeAttribute('href');\r\n        this._componentElement.removeAttribute('target');\r\n\r\n        if (this._handler) {\r\n            this.removeEventObserver('click', this._handler);\r\n        }\r\n    }\r\n\r\n    _addProgressHandler() {\r\n        // basic empty implementation\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Button } from './button';\r\n\r\nexport class SmallButton extends Button {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._cls = this._getConfigParam('cls', `s-btn${!this._title ? ' btn-icon-only' : ''}`);\r\n    }\r\n}\r\n\r\n// TODO EXTDOCKER-50: Cannot open docker extension: Cannot read property 'push' of undefined\r\nSmallButton.subclasses = [];\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Button } from './button';\r\nimport render from './render';\r\nimport escapeHtml from './escapeHtml';\r\n\r\nexport class BigButton extends Button {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration({\r\n            cls: 'tool-block',\r\n            disabledClass: 'tool-block-disabled',\r\n            ...config,\r\n        });\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        let button = '';\r\n        if (this._getConfigParam('title')) {\r\n            button += `<span class=\"tool-name\">${escapeHtml(this._getConfigParam('title'))}</span>`;\r\n        }\r\n\r\n        let description = '';\r\n        if (Array.isArray(this._getConfigParam('additionalComments'))) {\r\n            this._getConfigParam('additionalComments').forEach(comment => {\r\n                description += `${escapeHtml(comment)}<br/>`;\r\n            });\r\n            description = `<span>${description}</span>`;\r\n        }\r\n        if (this._getConfigParam('comment')) {\r\n            description += escapeHtml(this._getConfigParam('comment'));\r\n        }\r\n        if (description.length) {\r\n            button += `<span class=\"tool-info\">${description}</span>`;\r\n        }\r\n        if (this._getConfigParam('icon')) {\r\n            const icon = (\r\n                '<span class=\"tool-icon\">' +\r\n                    `<img src=\"${this._getConfigParam('icon')}\">` +\r\n                '</span>'\r\n            );\r\n            button = icon + button;\r\n        }\r\n        this._componentElement.innerHTML = button;\r\n    }\r\n\r\n    _addProgressHandler() {\r\n        if (this._getConfigParam('indicateProgress', false)) {\r\n            this.addEventObserver('click', () => {\r\n                this._componentElement.style.display = 'none';\r\n                render(this._componentElement.parentNode, `<div class=\"ajax-loading\">${this._config.waitMessage}</div>`);\r\n            });\r\n        }\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Component } from './component';\r\nimport { Tooltip } from './tooltip';\r\nimport render from './render';\r\nimport createElement from './createElement';\r\nimport escapeHtml from './escapeHtml';\r\nimport emptyFn from './emptyFn';\r\nimport { createHtmlElement } from 'helpers/createHtmlElement';\r\n\r\nexport class SplitButton extends Component {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration({\r\n            cls: 'btn-group',\r\n            ...config,\r\n        });\r\n\r\n        this.title = this._getConfigParam('title', '');\r\n        this.isAction = this._getConfigParam('isAction', false);\r\n        this.isDefault = this._getConfigParam('isDefault', false);\r\n        this.isMenuFlip = this._getConfigParam('isMenuFlip', false);\r\n        this.onclick = this._getConfigParam('onclick', emptyFn);\r\n        this.items = this._getConfigParam('items', []);\r\n        this.isScrollable = this._getConfigParam('isScrollable');\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        render(this._componentElement, [\r\n            createElement(`button.btn${this.isAction ? '.btn-primary' : ''}`,\r\n                {\r\n                    type: this.isDefault ? 'submit' : 'button',\r\n                    onclick: this.onclick,\r\n                },\r\n                escapeHtml(this.title),\r\n            ),\r\n            createElement('button.btn.dropdown-toggle',\r\n                {\r\n                    type: 'button',\r\n                    onclick: this.openDropdown.bind(this),\r\n                },\r\n                createElement('em.caret'),\r\n            ),\r\n            createElement(`ul.dropdown-menu${this.isMenuFlip ? '.dropdown-menu-flip' : ''}${this.isScrollable ? '.dropdown-scrollable' : ''}`),\r\n        ]);\r\n\r\n        if (Array.isArray(this.items)) {\r\n            this._initItems();\r\n        }\r\n    }\r\n\r\n    _initItems() {\r\n        this.items.each(item => {\r\n            const link = createHtmlElement('a', {\r\n                id: item.id || null,\r\n                href: item.href || null,\r\n                target: item.newWindow ? '_blank' : null,\r\n            });\r\n            link.innerHTML = escapeHtml(item.title);\r\n\r\n            const listItem = createHtmlElement('li', {\r\n                class: (item.submenu ? 'dropdown-submenu' : '') + (this.isMenuFlip ? ' to-left' : ''),\r\n            });\r\n            render(listItem, link);\r\n\r\n            if (item.submenu) {\r\n                render(listItem, '<ul class=\"dropdown-menu\"></ul>');\r\n            }\r\n\r\n            render(this._componentElement.querySelector('.dropdown-menu'), listItem);\r\n\r\n            link.addEventListener('click', item.onclick || emptyFn);\r\n\r\n            if (item.tooltip) {\r\n                Tooltip.init(link, { text: item.tooltip });\r\n            }\r\n        });\r\n    }\r\n\r\n    _addTooltips() {\r\n        const description = this._getConfigParam('description');\r\n        if (description) {\r\n            this._tooltip = Tooltip.init(this._componentElement.querySelector('button'), { text: description });\r\n        }\r\n    }\r\n\r\n    openDropdown(event) {\r\n        event.preventDefault();\r\n        event.stopPropagation();\r\n\r\n        if (typeof this.items === 'function') {\r\n            const dropdownMenu = this._componentElement.querySelector('.dropdown-menu');\r\n            dropdownMenu.innerHTML = `<div class=\"ajax-loading\">${this.lmsg('loading')}</div>`;\r\n\r\n            const { items } = this;\r\n            this.items = [];\r\n\r\n            items().then(items => {\r\n                dropdownMenu.innerHTML = '';\r\n                this.items = items;\r\n                this._initItems();\r\n            });\r\n        }\r\n\r\n        if (!this._componentElement.classList.contains('open')) {\r\n            document.querySelectorAll('.btn-group').forEach(item => {\r\n                item.classList.remove('open');\r\n            });\r\n        }\r\n        this._componentElement.classList.toggle('open');\r\n    }\r\n\r\n    _addEvents() {\r\n        const openSubmenu = menuItem => {\r\n            const submenu = menuItem.querySelector('.dropdown-menu');\r\n            if (!menuItem.classList.contains('open') && 'undefined' !== typeof submenu && !submenu.innerHTML.trim()) {\r\n                this.items[this.items.length - 1].submenu ? this.items[this.items.length - 1].submenu(menuItem.querySelector('a').nextElementSibling) : '';\r\n            }\r\n            closeSubmenu(menuItem);\r\n            menuItem.classList.add('open');\r\n            clearTimeout(menuItem._menuTimeout);\r\n        };\r\n\r\n        const closeSubmenu = menuItem => {\r\n            menuItem.classList.remove('open');\r\n            clearTimeout(menuItem._menuTimeout);\r\n        };\r\n\r\n        this._componentElement.querySelectorAll('.dropdown-menu > li').forEach(element => {\r\n            element.addEventListener('mouseover', () => {\r\n                if (element.classList.contains('dropdown-submenu') && element.classList.contains('open')) {\r\n                    return;\r\n                }\r\n                element.parentNode.querySelectorAll('.dropdown-submenu.open').forEach(menuItem => {\r\n                    closeSubmenu(menuItem);\r\n                });\r\n            });\r\n        });\r\n\r\n        const submenu = this._componentElement.querySelectorAll('.dropdown-submenu');\r\n        submenu.forEach(item => {\r\n            item.addEventListener('mouseover', () => {\r\n                openSubmenu(item);\r\n            });\r\n            const a = item.querySelector('a');\r\n            a.addEventListener('touchend', () => {\r\n                if (item.classList.contains('open')) {\r\n                    closeSubmenu(item);\r\n                } else {\r\n                    openSubmenu(item);\r\n                }\r\n            });\r\n            a.addEventListener('click', event => {\r\n                event.stopPropagation();\r\n                event.preventDefault();\r\n            });\r\n        });\r\n\r\n        this._componentElement.querySelectorAll('.dropdown-submenu').forEach(menuItem => {\r\n            menuItem.addEventListener('mouseleave', () => {\r\n                clearTimeout(menuItem._menuTimeout);\r\n                menuItem._menuTimeout = setTimeout(() => {\r\n                    closeSubmenu(menuItem);\r\n                }, 500);\r\n            });\r\n        });\r\n\r\n        document.body.addEventListener('click', () => {\r\n            this._componentElement.classList.remove('open');\r\n        });\r\n    }\r\n\r\n    disable() {\r\n        const button = this._componentElement.querySelector('button');\r\n        button.disabled = true;\r\n        button.classList.add('disabled');\r\n\r\n        const toggle = this._componentElement.querySelector('.dropdown-toggle');\r\n        toggle.disabled = true;\r\n        toggle.classList.add('disabled');\r\n\r\n        if (Tooltip.current === this._tooltip) {\r\n            Tooltip.hide();\r\n        }\r\n    }\r\n\r\n    enable() {\r\n        const button = this._componentElement.querySelector('button');\r\n        button.disabled = false;\r\n        button.classList.remove('disabled');\r\n\r\n        const toggle = this._componentElement.querySelector('.dropdown-toggle');\r\n        toggle.disabled = false;\r\n        toggle.classList.remove('disabled');\r\n    }\r\n\r\n    setText(text) {\r\n        this._componentElement.querySelector('button').innerHTML = text;\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Component } from './component';\r\n\r\nexport class CommandButton extends Component {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration({ tag: 'button', ...config });\r\n\r\n        this._handler = this._getConfigParam('handler', false);\r\n        if (typeof this._handler === 'string') {\r\n            // eslint-disable-next-line no-eval\r\n            eval(`this._handler = ${this._handler}`);\r\n        }\r\n\r\n        this._value = this._config.value || '';\r\n        this._tabIndex = this._getConfigParam('tabIndex', null);\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        this._componentElement.type = 'button';\r\n        this._componentElement.value = this._value;\r\n        this._componentElement.name = this._config.name;\r\n        this._componentElement.innerHTML = this._config.title;\r\n\r\n        if (null !== this._tabIndex) {\r\n            this._componentElement.setAttribute('tabindex', this._tabIndex);\r\n        }\r\n\r\n        this._initVisibility();\r\n    }\r\n\r\n    _initVisibility() {\r\n        this._disabled = this._getConfigParam('disabled', false);\r\n\r\n        if (this._disabled) {\r\n            this._disabled = false;\r\n            this.disable();\r\n        } else {\r\n            this._disabled = true;\r\n            this.enable();\r\n        }\r\n    }\r\n\r\n    setHandler(handler) {\r\n        if (this._handler && !this._disabled) {\r\n            this.removeEventObserver('click', this._handler);\r\n        }\r\n\r\n        this._handler = handler;\r\n        if (!this._disabled) {\r\n            this.addEventObserver('click', this._handler);\r\n        }\r\n    }\r\n\r\n    enable() {\r\n        if (!this._disabled) {\r\n            return;\r\n        }\r\n\r\n        this._disabled = false;\r\n        if ('send' === this._config.name || 'apply' === this._config.name) {\r\n            this._componentElement.classList.add('action');\r\n        }\r\n        this._componentElement.classList.remove('disabled');\r\n        this._componentElement.disabled = false;\r\n        if (this._handler) {\r\n            this.addEventObserver('click', this._handler);\r\n        }\r\n    }\r\n\r\n    disable() {\r\n        if (this._disabled) {\r\n            return;\r\n        }\r\n\r\n        this._disabled = true;\r\n        this._componentElement.disabled = true;\r\n        if ('send' === this._config.name || 'apply' === this._config.name) {\r\n            this._componentElement.classList.remove('action');\r\n        }\r\n        this._componentElement.classList.add('disabled');\r\n        if (this._handler) {\r\n            this.removeEventObserver('click', this._handler);\r\n        }\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { toollist } from './tool-list';\r\n\r\nconst { Button } = toollist;\r\n\r\nexport class CustomButton extends Button {\r\n    /**\r\n     * @param {String} path\r\n     * @returns {String}\r\n     */\r\n    getImagePath(path) {\r\n        return path;\r\n    }\r\n}\r\n\r\nif (window.Form) {\r\n    Form.Element.Methods.disable = element => {\r\n        element.disabled = 'disabled';\r\n        element.classList.add('disabled');\r\n        return element;\r\n    };\r\n\r\n    Form.Element.Methods.enable = element => {\r\n        element.disabled = false;\r\n        element.classList.remove('disabled');\r\n        return element;\r\n    };\r\n\r\n    Element.addMethods();\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\n/* eslint-disable react/no-multi-comp */\r\n\r\nimport { Container } from './container';\r\nimport { Component } from './component';\r\nimport { Tooltip } from './tooltip';\r\nimport render from './render';\r\nimport createElement from './createElement';\r\nimport escapeAttribute from './escapeAttribute';\r\nimport escapeHtml from './escapeHtml';\r\nimport { createHtmlElement } from 'helpers/createHtmlElement';\r\n\r\nimport './tool-list.less';\r\n\r\n/**\r\n * Example usage:\r\n *\r\n *     @example\r\n *     new ToolList({\r\n *         renderTo: document.body,\r\n *         items: [{\r\n *             componentType: toollist.Panel,\r\n *             title: 'Components',\r\n *             image: 'class-icons/component-large.png',\r\n *             items: [{\r\n *                 componentType: toollist.Item,\r\n *                 title: Box,\r\n *                 href: './Box',\r\n *                 target: '_parent'\r\n *             }, {\r\n *                 componentType: toollist.Item,\r\n *                 title: Button,\r\n *                 href: './Button',\r\n *                 target: '_parent',\r\n *                 attention: true\r\n *             }]\r\n *         }, {\r\n *             componentType: toollist.Panel,\r\n *             title: 'Classes',\r\n *             image: 'class-icons/class-large.png',\r\n *             items: [{\r\n *                 componentType: toollist.Item,\r\n *                 title: Locale,\r\n *                 href: './Locale',\r\n *                 target: '_parent'\r\n *             }]\r\n *         }, {\r\n *             componentType: toollist.Panel,\r\n *             title: 'Singletons',\r\n *             image: 'class-icons/singleton-large.png',\r\n *             items: [{\r\n *                 componentType: toollist.Item,\r\n *                 title: Cookie,\r\n *                 href: './Cookie',\r\n *                 target: '_parent'\r\n *             }]\r\n *         }]\r\n *     });\r\n */\r\nexport class ToolList extends Container {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n        this._tools = this._getConfigParam('tools', null);\r\n        this._cls = this._getConfigParam('cls', 'tools-list-box');\r\n        this._contentAreaId = `${this._id}-tools-list`;\r\n\r\n        if (Array.isArray(this._tools) && !this._operations.length) {\r\n            this._operations = null;\r\n        }\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n        this._updateComponentElement((\r\n            `<div id=\"${this._id}-box-area\" class=\"box-area\">` +\r\n                `<div id=\"${this._id}-content\" class=\"content\">` +\r\n                        `<div id=\"${this._id}-content-area\" class=\"content-area\">` +\r\n                            `<ul id=\"${this._id}-tools-list\" class=\"tools-list\"></ul>` +\r\n                        '</div>' +\r\n                '</div>' +\r\n            '</div>'\r\n        ));\r\n    }\r\n\r\n    render() {\r\n        super.render();\r\n        Tooltip.initData(this._componentElement);\r\n    }\r\n}\r\n\r\nclass Panel extends Container {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._contentAreaId = `${this._id}-tools-list`;\r\n        this._image = this._getConfigParam('image', '');\r\n        this._title = this._getConfigParam('title', '');\r\n    }\r\n\r\n    _initComponentElement() {\r\n        const attributes = { class: 'tools-item' };\r\n        const forcedId = this._getConfigParam('id', null);\r\n        if (forcedId) {\r\n            attributes.id = forcedId;\r\n        }\r\n\r\n        this._componentElement = createHtmlElement('li', attributes);\r\n        render(\r\n            this._componentElement,\r\n            createElement('div', { class: 'tool-block' },\r\n                createElement('span', { class: 'tool-icon' }, createElement('img', { src: this._image })),\r\n                createElement('span', { class: 'tool-name' }, this._title),\r\n                createElement('ul', { id: `${this._id}-tools-list`, class: 'tool-info' }),\r\n            ),\r\n        );\r\n    }\r\n}\r\n\r\nclass Item extends Component {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._handler = this._getConfigParam('handler', false);\r\n        if (typeof this._handler === 'string') {\r\n            // eslint-disable-next-line no-eval\r\n            eval(`this._handler = ${this._handler}`);\r\n        }\r\n        this._href = this._getConfigParam('href', '#');\r\n        this._target = this._getConfigParam('target', null);\r\n        this._title = this._getConfigParam('title', '');\r\n        this._disabled = this._getConfigParam('disabled', false);\r\n        this._attention = this._getConfigParam('attention', false);\r\n    }\r\n\r\n    _initComponentElement() {\r\n        const href = this._disabled ? '#' : this._href;\r\n\r\n        let title = escapeHtml(this._title);\r\n        if (this._attention) {\r\n            title = createHtmlElement('span', {\r\n                class: 'hint-attention',\r\n            });\r\n            title.innerHTML = title;\r\n        }\r\n\r\n        this._componentElement = createHtmlElement('li', {\r\n            id: this._getConfigParam('id', null),\r\n        })\r\n            .update(createHtmlElement('a', {\r\n                href,\r\n                target: this._target,\r\n            }).update(title));\r\n\r\n        if (this._handler && !this._disabled) {\r\n            const handler = this._handler;\r\n            this._componentElement.querySelector('a').addEventListener('click', e => {\r\n                e.preventDefault();\r\n                handler.call(this, e);\r\n            });\r\n        }\r\n    }\r\n\r\n    _addTooltips() {\r\n        const description = this._getConfigParam('description');\r\n        if (description) {\r\n            this._tooltip = Tooltip.init(this._componentElement.querySelector('a'), { text: description });\r\n        }\r\n    }\r\n}\r\n\r\nclass Button extends Component {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._handler = this._getConfigParam('handler', false);\r\n        if (typeof this._handler === 'string') {\r\n            // eslint-disable-next-line no-eval\r\n            eval(`this._handler = ${this._handler}`);\r\n        }\r\n        this._href = this._getConfigParam('href', '#');\r\n        this._target = this._getConfigParam('target', null);\r\n        this._image = this._getConfigParam('image', '');\r\n        this._disabledImage = this._getConfigParam('disabledImage', this._image);\r\n        this._title = this._getConfigParam('title', '');\r\n        this._description = this._getConfigParam('description', '');\r\n        this._disabled = this._getConfigParam('disabled', false);\r\n    }\r\n\r\n    _initComponentElement() {\r\n        const attributes = { class: 'tools-item' };\r\n        const forcedId = this._getConfigParam('id', null);\r\n        if (forcedId) {\r\n            attributes.id = forcedId;\r\n        }\r\n\r\n        this._componentElement = createHtmlElement('li', attributes);\r\n\r\n        let href;\r\n        let image;\r\n        let cls = 'tool-block';\r\n\r\n        if (this._disabled) {\r\n            cls += ' tool-block-disabled';\r\n            href = '#';\r\n            image = this.getImagePath(this._disabledImage);\r\n        } else {\r\n            href = this._href;\r\n            image = this.getImagePath(this._image);\r\n        }\r\n        render(this._componentElement,\r\n            createElement(\r\n                'a',\r\n                {\r\n                    class: cls,\r\n                    target: this._target,\r\n                    href,\r\n                },\r\n                (\r\n                    '<span class=\"tool-icon\">' +\r\n                        `<img src=\"${escapeAttribute(image)}\"/>` +\r\n                    '</span>' +\r\n                    `<span class=\"tool-name\">${escapeHtml(this._title)}</span>` +\r\n                    `<span class=\"tool-info\">${escapeHtml(this._description)}</span>`\r\n                ),\r\n            ),\r\n        );\r\n\r\n        if (this._handler && !this._disabled) {\r\n            this._componentElement.addEventListener('click', this._handler);\r\n        }\r\n    }\r\n\r\n    _addTooltips() {\r\n        // don't show tooltips, 'cause we've inline descriptions\r\n    }\r\n\r\n    getImagePath(path) {\r\n        return `${Jsw.skinUrl}/${path}`;\r\n    }\r\n}\r\n\r\nexport const toollist = { Panel, Item, Button };\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\n/* eslint-disable react/require-render-return */\r\n\r\nimport { Component } from './component';\r\nimport createComponent from './createComponent';\r\nimport render from './render';\r\n\r\nexport class Container extends Component {\r\n    /**\r\n     * @cfg {Array} items\r\n     */\r\n\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._contentAreaId = this._id;\r\n\r\n        this._initItems();\r\n    }\r\n\r\n    _initItems(items) {\r\n        items = items || this._getConfigParam('items') || [];\r\n\r\n        this._items = items.filter(function (item) {\r\n            return !!item;\r\n        }).map(createComponent);\r\n    }\r\n\r\n    _renderItems() {\r\n        this._items.forEach(this._renderItem, this);\r\n    }\r\n\r\n    _renderItem(item) {\r\n        render(document.getElementById(this._contentAreaId), item);\r\n    }\r\n\r\n    getItems() {\r\n        return this._items;\r\n    }\r\n\r\n    getItem(id) {\r\n        return this.getItems().find(item => item.getId() === id);\r\n    }\r\n\r\n    render() {\r\n        super.render();\r\n\r\n        this._renderItems();\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport prepareUrl from './prepareUrl';\r\nimport addUrlParams from './addUrlParams';\r\nimport render from './render';\r\nimport createElement from './createElement';\r\nimport { createHtmlElement } from 'helpers/createHtmlElement';\r\n/**\r\n * Submit form.\r\n * @param {Element|String} element Form element or form child element or it id.\r\n * @param {Boolean} [noRedirect]\r\n * @member Jsw\r\n */\r\nexport const submit = (element, noRedirect) => {\r\n    const form = (typeof element === 'string' ? document.getElementById(element) : element).closest('form');\r\n    form.noRedirect = noRedirect;\r\n    form.submit();\r\n};\r\n\r\nconst isJavascriptProtocol = url => {\r\n    try {\r\n        return new URL(url).protocol === 'javascript:';\r\n    } catch {\r\n        // seems like a relative url;\r\n        return false;\r\n    }\r\n};\r\n\r\n/**\r\n * Go to url with get method.\r\n * @param {String|Object} action\r\n * @param {Object} [data]\r\n * @param {String} [target]\r\n * @member Jsw\r\n */\r\nexport const redirect = (action, data, target) => {\r\n    let url = action;\r\n    let method = 'get';\r\n    if (Object.prototype.toString.call(action) === '[object Object]') {\r\n        /* eslint-disable prefer-destructuring */\r\n        method = action.method || method;\r\n        data = action.data;\r\n        target = action.target;\r\n        url = action.url;\r\n        /* eslint-enable prefer-destructuring */\r\n    }\r\n    if (isJavascriptProtocol(url)) {\r\n        throw new Error(`The redirect to this url can not be performed: ${url}`);\r\n    }\r\n    url = prepareUrl(url);\r\n    method = method.toLowerCase();\r\n    if ('post' === method || (data && Object.keys(data).length) || target) {\r\n        FormRedirect.redirect(url, method, data, target);\r\n    } else {\r\n        window.location.assign(url);\r\n    }\r\n};\r\n\r\n/**\r\n * Go to url with post method.\r\n * @param {String} action\r\n * @param {Object} [data]\r\n * @param {String} [target]\r\n * @member Jsw\r\n */\r\nexport const redirectPost = (action, data, target) => {\r\n    FormRedirect.redirect(prepareUrl(action), 'post', data, target);\r\n};\r\n\r\n/**\r\n * @class FormRedirect\r\n * @singleton\r\n */\r\nexport const FormRedirect = {\r\n    /**\r\n     * @param {String} action\r\n     * @param {String} method\r\n     * @param {Object} [data]\r\n     * @param {String} [target]\r\n     */\r\n    redirect(action, method, data, target) {\r\n        render(\r\n            document.body,\r\n            createElement(\r\n                'form',\r\n                {\r\n                    method,\r\n                    target,\r\n                    // workaround for http://code.google.com/p/chromium/issues/detail?id=10671\r\n                    action: addUrlParams(action, `_randomId=${Math.floor(1000000 * Math.random())}`),\r\n                    onrender(form) {\r\n                        setTimeout(() => {\r\n                            form.submit();\r\n                        }, 0);\r\n                    },\r\n                },\r\n                data ? FormRedirect.subToElements(data) : null,\r\n                document.getElementById('forgery_protection_token') ? createElement('input', {\r\n                    type: 'hidden',\r\n                    name: 'forgery_protection_token',\r\n                    value: document.getElementById('forgery_protection_token').content,\r\n                }) : null,\r\n            ),\r\n        );\r\n    },\r\n\r\n    /**\r\n     * @param {String} value\r\n     * @param {String} prefix\r\n     * @returns {Element[]}\r\n     */\r\n    stringToElements(value, prefix) {\r\n        return [createHtmlElement('input', {\r\n            type: 'hidden',\r\n            name: prefix,\r\n            value,\r\n        })];\r\n    },\r\n\r\n    /**\r\n     * @param {Boolean} value\r\n     * @param {String} prefix\r\n     * @returns {Element[]}\r\n     */\r\n    booleanToElements(value, prefix) {\r\n        return [createHtmlElement('input', {\r\n            type: 'hidden',\r\n            name: prefix,\r\n            value: value ? 1 : 0,\r\n        })];\r\n    },\r\n\r\n    /**\r\n     * @param {Array} data\r\n     * @param {String} prefix\r\n     * @returns {Element[]}\r\n     */\r\n    arrayToElements(data, prefix) {\r\n        let elements = [];\r\n        $A(data).each(function (item) {\r\n            elements = elements.concat(FormRedirect.subToElements(item, '', prefix));\r\n        });\r\n        return elements;\r\n    },\r\n\r\n    /**\r\n     * @param {Object} data\r\n     * @param {String} prefix\r\n     * @returns {Element[]}\r\n     */\r\n    hashToElements(data, prefix) {\r\n        let elements = [];\r\n        $H(data).each(function (pair) {\r\n            elements = elements.concat(FormRedirect.subToElements(pair.value, pair.key, prefix));\r\n        });\r\n        return elements;\r\n    },\r\n\r\n    /**\r\n     * @param {String} value\r\n     * @param {String} key\r\n     * @param {String} prefix\r\n     * @returns {Element[]}\r\n     */\r\n    subToElements(value, key, prefix) {\r\n        let elements = [];\r\n        const name = prefix\r\n            ? `${prefix}[${key}]`\r\n            : key;\r\n        if (typeof value === 'string' || typeof value === 'number') {\r\n            elements = elements.concat(FormRedirect.stringToElements(value, name));\r\n        } else if ('boolean' === typeof value) {\r\n            elements = elements.concat(FormRedirect.booleanToElements(value, name));\r\n        } else if (Array.isArray(value)) {\r\n            elements = elements.concat(FormRedirect.arrayToElements(value, name));\r\n        } else if ('function' !== typeof value) {\r\n            elements = elements.concat(FormRedirect.hashToElements(value, name));\r\n        }\r\n        return elements;\r\n    },\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Component } from './component';\r\n\r\nexport class DisplayField extends Component {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration({\r\n            cls: 'form-row',\r\n            ...config,\r\n        });\r\n        this._valueRenderer = this._getConfigParam('valueRenderer', null);\r\n    }\r\n\r\n    renderHint() {\r\n        const hint = this._getConfigParam('hint');\r\n\r\n        if (!hint) {\r\n            return '';\r\n        }\r\n\r\n        return `<span class=\"hint\">${hint}</span>`;\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        let values = ('function' === typeof this._valueRenderer)\r\n            ? this._valueRenderer()\r\n            : this._getConfigParam('value', '');\r\n\r\n        values = (typeof values === 'string') ? [values] : values;\r\n\r\n        let valuesElements = '';\r\n        values.each(value => {\r\n            valuesElements += `<div class=\"text-value\">${value}</div>`;\r\n        });\r\n\r\n        if (this._getConfigParam('singleRow', false)) {\r\n            if (1 === values.length) {\r\n                valuesElements = values.valueOf();\r\n            }\r\n            this._componentElement.innerHTML = `<div class=\"single-row\">${valuesElements}</div>`;\r\n        } else {\r\n            this._componentElement.innerHTML = (\r\n                `<div class=\"field-name\">${this._getConfigParam('fieldLabel', '')}${this.renderHint()}</div>` +\r\n                `<div class=\"field-value\">${valuesElements}</div>`\r\n            );\r\n        }\r\n    }\r\n}\r\n\r\nexport class Values {\r\n    /**\r\n     * @cfg {String} selector CSS selector\r\n     */\r\n\r\n    constructor(config) {\r\n        this.selector = config.selector;\r\n        this.formValues = {};\r\n        document.querySelectorAll(this.selector).forEach(input => {\r\n            this.formValues[this.getStorageName(input)] = input.value;\r\n        });\r\n    }\r\n\r\n    /**\r\n     * @returns {Boolean}\r\n     */\r\n    isChanged() {\r\n        let changed = false;\r\n        document.querySelectorAll(this.selector).forEach(input => {\r\n            if (this.formValues[this.getStorageName(input)] != input.value) {\r\n                changed = true;\r\n            }\r\n        });\r\n        return changed;\r\n    }\r\n\r\n    getStorageName(input) {\r\n        return `${input.getAttribute('type')}/${input.getAttribute('name')}`;\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Component, getComponent } from './component';\r\nimport { redirect, redirectPost } from './form-redirect';\r\nimport Observer from './Observer';\r\nimport addStatusMessage from './addStatusMessage';\r\nimport clearStatusMessages from './clearStatusMessages';\r\nimport showInternalError from './showInternalError';\r\nimport render from './render';\r\nimport escapeHtml from './escapeHtml';\r\n\r\nexport class FormAjax extends Component {\r\n    _initConfiguration(config) {\r\n        this._actionButtonTitle = '';\r\n\r\n        super._initConfiguration(config);\r\n        this._sendButtonId = this._getConfigParam('sendButtonId', 'btn-send');\r\n        this._applyButtonId = this._getConfigParam('applyButtonId', 'btn-apply');\r\n        this._cancelButtonId = this._getConfigParam('cancelButtonId', 'btn-cancel');\r\n        this._confirmationCheckboxId = this._getConfigParam('confirmationCheckboxId', 'formNeedAttention-attentionConfirmed');\r\n        this._submitHandler = this._getConfigParam('submitHandler', () => true);\r\n    }\r\n\r\n    disable() {\r\n        [this._sendButtonId, this._applyButtonId, this._cancelButtonId].forEach(buttonId => {\r\n            this._toggleButton(buttonId, true);\r\n        });\r\n\r\n        this._toggleCheckbox(this._confirmationCheckboxId, true);\r\n\r\n        const actionButton = this._getActionButton();\r\n        if (actionButton) {\r\n            this._actionButtonTitle = actionButton.innerHTML;\r\n            actionButton.innerHTML = `<span class=\"wait\">${this._config.waitButtonTitle}</span>`;\r\n        }\r\n    }\r\n\r\n    enable() {\r\n        [this._sendButtonId, this._applyButtonId, this._cancelButtonId].forEach(buttonId => {\r\n            this._toggleButton(buttonId, false);\r\n        });\r\n\r\n        this._toggleCheckbox(this._confirmationCheckboxId, false);\r\n\r\n        const actionButton = this._getActionButton();\r\n        if (actionButton) {\r\n            actionButton.innerHTML = this._actionButtonTitle;\r\n        }\r\n    }\r\n\r\n    _toggleButton(buttonId, disable) {\r\n        const button = getComponent(buttonId);\r\n        if (button) {\r\n            button[disable ? 'disable' : 'enable']();\r\n        }\r\n    }\r\n\r\n    _toggleCheckbox(checkboxId, disable) {\r\n        const checkbox = document.getElementById(checkboxId);\r\n        if (checkbox) {\r\n            checkbox.disabled = disable;\r\n        }\r\n    }\r\n\r\n    _getActionButton() {\r\n        return document.getElementById(this._componentElement.noRedirect ? this._applyButtonId : this._sendButtonId);\r\n    }\r\n\r\n    _initComponentElement() {\r\n        this._componentElement = document.getElementById(this._id);\r\n        this._initDisablerOverlay();\r\n\r\n        if (!this._componentElement.dataset?.noInitFocus) {\r\n            const firstElement = this._componentElement.querySelector('input, select, textarea');\r\n\r\n            if (firstElement) {\r\n                try {\r\n                    firstElement.focus();\r\n                } catch {}\r\n            }\r\n        }\r\n\r\n        this._submitInProgress = false;\r\n\r\n        const toggleButtons = disable => {\r\n            [this._sendButtonId, this._applyButtonId].forEach(id => this._toggleButton(id, disable));\r\n        };\r\n\r\n        const confirmationCheckbox = document.getElementById(this._confirmationCheckboxId);\r\n        if (confirmationCheckbox) {\r\n            toggleButtons(!confirmationCheckbox.checked);\r\n            confirmationCheckbox.addEventListener('click', e => {\r\n                toggleButtons(!e.currentTarget.checked);\r\n            });\r\n        }\r\n    }\r\n\r\n    _addEvents() {\r\n        this._componentElement._formSubmit = this._componentElement.submit;\r\n        this._componentElement.submit = this._onSubmit.bind(this);\r\n        this._componentElement.addEventListener('submit', this._onSubmitEvent.bind(this));\r\n        this._addChoiceRadioButtonsOnClickEvent();\r\n    }\r\n\r\n    _addChoiceRadioButtonsOnClickEvent() {\r\n        document.querySelectorAll('input[type=\"radio\"]').forEach(element => {\r\n            if (!element.closest('div.choice-block')) {\r\n                return;\r\n            }\r\n            element.addEventListener('click', function () {\r\n                element.closest('div.choice-block').querySelectorAll('span').forEach(element => {\r\n                    element.classList.remove('selected');\r\n\r\n                    if ('0' === element.value) {\r\n                        element.classList.remove('no');\r\n                    }\r\n                });\r\n\r\n                element.closest('span').classList.add('selected');\r\n\r\n                if ('0' === element.value) {\r\n                    element.closest('span').classList.add('no');\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    _onSubmitEvent(event) {\r\n        this._onSubmit();\r\n        event.preventDefault();\r\n        return false;\r\n    }\r\n\r\n    async _onSubmit() {\r\n        if (!await this._submitHandler()) {\r\n            return false;\r\n        }\r\n\r\n        if (this._submitInProgress) {\r\n            return false;\r\n        }\r\n        this._submitInProgress = true;\r\n\r\n        this._clearMessages();\r\n        this.disable();\r\n\r\n        if (this._componentElement.enctype === 'multipart/form-data') {\r\n            this._componentElement._formSubmit();\r\n            return true;\r\n        }\r\n\r\n        let actionUrl = this._componentElement.getAttribute('action');\r\n\r\n        if (!actionUrl) {\r\n            actionUrl = document.location.href;\r\n        }\r\n\r\n        // remove hash symbol (and the following) cause this will encoded and lead to problems\r\n        actionUrl = actionUrl.replace(/#.*$/, '');\r\n\r\n        const params = Form.serialize(this._componentElement);\r\n        new Ajax.Request(actionUrl, {\r\n            method: 'post',\r\n            parameters: params,\r\n            onSuccess: this._onSuccess.bind(this),\r\n            onFailure: this._onFailure.bind(this),\r\n        });\r\n        return true;\r\n    }\r\n\r\n    _onFailure(req) {\r\n        this._submitInProgress = false;\r\n        this._clearMessages();\r\n\r\n        if (504 === req.status) {\r\n            addStatusMessage('error', this._config.timeoutMessage);\r\n        } else {\r\n            showInternalError(req.responseText);\r\n        }\r\n\r\n        this.enable();\r\n    }\r\n\r\n    _onSuccess(req) {\r\n        this._submitInProgress = false;\r\n        clearStatusMessages();\r\n\r\n        try {\r\n            const response = JSON.parse(req.responseText);\r\n            this._processForm(response);\r\n        } catch {\r\n            this._clearMessages();\r\n            this.enable();\r\n\r\n            // show error, if request wasn't aborted by user\r\n            if (0 != req.status) {\r\n                showInternalError(req.responseText);\r\n            }\r\n        }\r\n    }\r\n\r\n    _processForm(response) {\r\n        if (response.componentType === 'Jsw.Task.ProgressBar.Item') {\r\n            getComponent('asyncProgressBarWrapper').progressDialog(response);\r\n            Observer.append(task => {\r\n                if (task.id === response.id) {\r\n                    this.enable();\r\n                }\r\n            }, 'plesk:taskComplete');\r\n            return;\r\n        }\r\n\r\n        if (response.redirect) {\r\n            this._processResponseRedirect(response);\r\n            return;\r\n        }\r\n\r\n        this._clearMessages();\r\n        this._processResponseStatus(response.status);\r\n        this._processResponseStatusMessages(response.statusMessages);\r\n        this._processResponseFormMessages(response.formMessages);\r\n\r\n        if (this._hasFieldErrors) {\r\n            this._showFieldErrorArea();\r\n        }\r\n        this.enable();\r\n    }\r\n\r\n    _showFieldErrorArea() {\r\n        const errorsElements = this._componentElement.querySelectorAll('.field-errors');\r\n        let firstError = null;\r\n\r\n        errorsElements.forEach(errorElement => {\r\n            if (errorElement.style.display !== 'none') {\r\n                firstError = errorElement;\r\n            }\r\n        });\r\n\r\n        let hiddenContainerId = null;\r\n\r\n        let element = firstError;\r\n        while ((element = element.parentNode) && element.nodeType === Node.ELEMENT_NODE) {\r\n            if (element.style.display === 'none') {\r\n                hiddenContainerId = element.id;\r\n            }\r\n        }\r\n\r\n        if (!hiddenContainerId) {\r\n            return;\r\n        }\r\n\r\n        // in case of tabbed form we must switch to corresponding tab\r\n        const tabsBar = getComponent('form-tab-buttons');\r\n\r\n        if (tabsBar) {\r\n            tabsBar.switchTab(hiddenContainerId);\r\n        }\r\n    }\r\n\r\n    _processResponseStatus(status) {\r\n        if ('success' !== status) {\r\n            this._hasErrors = true;\r\n        }\r\n    }\r\n\r\n    _clearMessages() {\r\n        // clear field messages\r\n        try {\r\n            this._componentElement.querySelectorAll('.field-errors').forEach(errors => {\r\n                errors.style.display = 'none';\r\n                const rowElement = errors.closest('.form-row');\r\n                if (rowElement) {\r\n                    rowElement.classList.remove('error');\r\n                }\r\n                errors.querySelectorAll('.error-hint').forEach(error => {\r\n                    error.parentNode.removeChild(error);\r\n                });\r\n            });\r\n        } catch {\r\n        }\r\n\r\n        this._hasErrors = false;\r\n        this._hasFieldErrors = false;\r\n    }\r\n\r\n    _processResponseStatusMessages(messages) {\r\n        $A(messages).each(({ status, content, title }) => {\r\n            this._addFormMessage(status, content, title);\r\n        });\r\n    }\r\n\r\n    _processResponseFormMessages(messages) {\r\n        this._processFieldMessages(messages, []);\r\n    }\r\n\r\n    _addFieldMessage(errors, message) {\r\n        errors.closest('.form-row').classList.add('error');\r\n        render(errors, `<span class=\"error-hint\">${escapeHtml(message)}</span>`);\r\n        errors.style.display = '';\r\n    }\r\n\r\n    _processFieldMessage(prefix, name, message) {\r\n        let fieldErrors;\r\n        const formElement = this._componentElement.querySelector(`#${prefix.join('-')}`);\r\n        fieldErrors = formElement ? formElement.parentNode.querySelector('.field-errors') : null;\r\n        if (!fieldErrors) {\r\n            fieldErrors = formElement ? formElement.closest('.form-row').querySelector('.field-errors') : null;\r\n        }\r\n        if (!fieldErrors) {\r\n            fieldErrors = this._componentElement.querySelector(`#${prefix.join('-')}-form-row`).querySelectorAll('.field-errors');\r\n            fieldErrors = fieldErrors[fieldErrors.length - 1];\r\n        }\r\n        this._addFieldMessage(fieldErrors, message);\r\n        this._hasFieldErrors = true;\r\n    }\r\n\r\n    _processFieldMessages(messages, prefix) {\r\n        if (Array.isArray(messages)) {\r\n            messages.forEach(message => {\r\n                if (typeof message === 'string') {\r\n                    this._processFieldMessage(prefix, 'error', message);\r\n                } else {\r\n                    prefix.push(name);\r\n                    this._processFieldMessages(message, prefix);\r\n                    prefix.pop();\r\n                }\r\n            });\r\n        } else {\r\n            $H(messages).each(({ key, value }) => {\r\n                if (typeof value === 'string') {\r\n                    this._processFieldMessage(prefix, key, value);\r\n                } else {\r\n                    prefix.push(key);\r\n                    this._processFieldMessages(value, prefix);\r\n                    prefix.pop();\r\n                }\r\n            });\r\n        }\r\n    }\r\n\r\n    _addFormMessage(type, message, title) {\r\n        addStatusMessage(type, message, { title });\r\n    }\r\n\r\n    _processResponseRedirect(response) {\r\n        if (this._componentElement.noRedirect) {\r\n            document.location.reload();\r\n        } else if (response.postData) {\r\n            redirectPost(response.redirect, response.postData, response.target);\r\n        } else {\r\n            redirect(response.redirect, null, response.target);\r\n        }\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Container } from './container';\r\nimport render from './render';\r\n\r\nexport class ListContainer extends Container {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration({\r\n            tag: 'ul',\r\n            ...config,\r\n        });\r\n    }\r\n\r\n    _renderItem(item) {\r\n        let renderTargetId = null;\r\n        const isEmptyItem = Array.isArray(item) && !item.length;\r\n\r\n        if (!isEmptyItem) {\r\n            renderTargetId = `${this._id}-item-${item.getId()}`;\r\n        }\r\n\r\n        let cls = this._getConfigParam('itemClass', '');\r\n\r\n        if (this._getConfigParam('renderLastItemClass', '') && this._items[this._items.length - 1] === item) {\r\n            cls = 'last';\r\n        }\r\n\r\n        if (isEmptyItem) {\r\n            cls += ` ${this._getConfigParam('emptyItemClass', '')}`;\r\n        }\r\n\r\n        if (cls) {\r\n            cls = ` class=\"${cls}\"`;\r\n        }\r\n\r\n        render(document.getElementById(this._contentAreaId), `<li ${renderTargetId ? `id=\"${renderTargetId}\"` : ''}${cls}></li>`);\r\n\r\n        if (!isEmptyItem) {\r\n            render(document.getElementById(renderTargetId), item);\r\n        }\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Container } from './container';\r\nimport render from './render';\r\n\r\nexport class TwoColumns extends Container {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration({\r\n            cls: 'two-cols-block clearfix',\r\n            ...config,\r\n        });\r\n        this._columnCls = 'first-col';\r\n    }\r\n\r\n    _initComponentElement() {\r\n        this._componentElement = document.createElement('div');\r\n        this._componentElement.className = this._cls;\r\n        this._componentElement.innerHTML = (\r\n            `<div id=\"${this._contentAreaId}\" class=\"columns-wrapper\"></div>`\r\n        );\r\n    }\r\n\r\n    _renderItem(item) {\r\n        const renderTargetId = `${this._id}-item-${item.getId()}`;\r\n        render(\r\n            document.getElementById(this._contentAreaId),\r\n            `<div class=\"${this._columnCls}\"><div class=\"column-box\" id=\"${renderTargetId}\"></div></div>`,\r\n        );\r\n        render(document.getElementById(renderTargetId), item);\r\n\r\n        this._columnCls = 'second-col';\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\n/**\r\n * Utility class for setting/reading values from browser cookies.\r\n * Values can be written using the {@link #set} or {@link #setPermanent} method.\r\n * Values can be read using the {@link #get} method.\r\n * A cookie can be invalidated on the client machine using the {@link #remove} method.\r\n */\r\nexport default {\r\n    /**\r\n     * Retrieves cookies that are accessible by the current page. If a cookie does not exist, `get()` returns null.\r\n     * @param {String} name The name of the cookie to get\r\n     * @returns {String|null}  Returns the cookie value for the specified name; null if the cookie name does not exist.\r\n     */\r\n    get(name) {\r\n        const cookies = document.cookie.split('; ');\r\n        for (let i = 0; i < cookies.length; i++) {\r\n            const crumbs = cookies[i].split('=');\r\n            if (name === crumbs[0]) {\r\n                return unescape(crumbs[1]);\r\n            }\r\n        }\r\n        return null;\r\n    },\r\n\r\n    /**\r\n     * Creates a cookie with the specified name and value.\r\n     * @param {String} name The name of the cookie to set.\r\n     * @param {String} value The value to set for the cookie.\r\n     * @param {String} [expires] Specify an expiration date the cookie is to persist until.\r\n     * @param {String} [path] Setting a path on the cookie restricts access to pages that match that path.\r\n     */\r\n    set(name, value, expires, path) {\r\n        let cookie = `${name}=${escape(value)}; `;\r\n\r\n        if (expires) {\r\n            cookie += `expires=${expires}; `;\r\n        }\r\n\r\n        if (path) {\r\n            cookie += `path=${path}; `;\r\n        }\r\n\r\n        if (window.location.protocol === 'https:') {\r\n            cookie += 'secure; ';\r\n        }\r\n\r\n        document.cookie = cookie;\r\n    },\r\n\r\n    /**\r\n     * Creates a permanent cookie with the specified name and value.\r\n     * @param {String} name The name of the cookie to set.\r\n     * @param {String} value The value to set for the cookie.\r\n     * @param {String} [path] Setting a path on the cookie restricts access to pages that match that path.\r\n     */\r\n    setPermanent(name, value, path) {\r\n        const date = new Date();\r\n        date.setTime(date.getTime() + (365 * 24 * 60 * 60 * 1000));\r\n        const expires = date.toGMTString();\r\n        this.set(name, value, expires, path);\r\n    },\r\n\r\n    /**\r\n     * Removes a cookie with the provided name from the browser by setting its expiration date to sometime in the past.\r\n     * @param {String} name\r\n     * @param {String} [path]\r\n     */\r\n    remove(name, path) {\r\n        this.set(name, '', 'Fri, 31 Dec 1999 23:59:59 GMT', path);\r\n    },\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Container } from './container';\r\nimport Cookie from 'common/cookie';\r\nimport createComponent from './createComponent';\r\nimport render from './render';\r\n\r\n/**\r\n * Example usage:\r\n *\r\n *     @example\r\n *     new Panel({\r\n *         renderTo: document.body,\r\n *         title: 'Panel title',\r\n *         items: [\r\n *             new Box({\r\n *                 html: 'Panel content'\r\n *             }),\r\n *         ],\r\n *     });\r\n */\r\nexport class Panel extends Container {\r\n    /**\r\n     * @cfg {String} title\r\n     */\r\n    /**\r\n     * @cfg {String} titleClass\r\n     */\r\n    /**\r\n     * @cfg {Boolean} hideContentTitle\r\n     */\r\n\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._title = this._getConfigParam('title', '');\r\n        this._titleClass = this._getConfigParam('titleClass', '');\r\n        this._hideContentTitle = this._getConfigParam('hideContentTitle', this._title);\r\n        this._titleAreaId = `${this._id}-title-area`;\r\n        this._contentAreaId = `${this._id}-content-area`;\r\n        this._boxItemsAreaId = `${this._id}-box-area`;\r\n        this._initBoxItems();\r\n    }\r\n\r\n    _initBoxItems() {\r\n        this._boxItems = this._getConfigParam('boxItems', null);\r\n\r\n        if (null !== this._boxItems) {\r\n            this._boxItems = this._boxItems.map(createComponent);\r\n        }\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        this._updateComponentElement((\r\n            `<div class=\"box-area\">${this._getTitleHtml()}${this._getSubTitleHtml()}` +\r\n                `<div id=\"${this._boxItemsAreaId}\"></div>` +\r\n                '<div class=\"content\">' +\r\n                    '<div class=\"content-area\">' +\r\n                        `<div class=\"content-wrapper\" id=\"${this._contentAreaId}\">${this._getConfigParam('html', '')}</div>` +\r\n                    '</div>' +\r\n                '</div>' +\r\n            '</div>'\r\n        ));\r\n    }\r\n\r\n    _getTitleHtml() {\r\n        return this._title\r\n            ? `<div class=\"title ${this._titleClass ? this._titleClass : ''}\">` +\r\n                    `<div class=\"title-area\" id=\"${this._titleAreaId}\">${\r\n                        ('-' === this._title) ? '' : `<h3><span>${this._title}</span></h3>`\r\n                    }</div>` +\r\n                '</div>'\r\n            : '';\r\n    }\r\n\r\n    _getSubTitleHtml() {\r\n        return '';\r\n    }\r\n\r\n    render() {\r\n        super.render();\r\n\r\n        this._renderBoxItems();\r\n    }\r\n\r\n    _renderBoxItems() {\r\n        if (null !== this._boxItems) {\r\n            this._boxItems.each(function (item) {\r\n                this._renderBoxItem(item);\r\n            }, this);\r\n        }\r\n    }\r\n\r\n    _renderBoxItem(item) {\r\n        render(document.getElementById(this._boxItemsAreaId), item);\r\n    }\r\n\r\n    _isHidden() {\r\n        const rememberedStatus = Cookie.get(`${this._id}-hidden`);\r\n        if (this._idIsRandom || null === rememberedStatus) {\r\n            return this._getConfigParam('collapsed', false);\r\n        }\r\n        return 1 == rememberedStatus;\r\n    }\r\n\r\n    _setHidden(hidden) {\r\n        if (this._getConfigParam('collapsed', false) == hidden) {\r\n            Cookie.remove(`${this._id}-hidden`);\r\n        } else {\r\n            Cookie.set(`${this._id}-hidden`, hidden ? 1 : 0);\r\n        }\r\n    }\r\n\r\n    _addEvents() {\r\n        super._addEvents();\r\n        if (this._isHidden()) {\r\n            this.hideContent();\r\n        } else {\r\n            this.showContent();\r\n        }\r\n        this._componentElement.querySelectorAll(`#${this._titleAreaId}`).forEach(titleAreaElement => {\r\n            titleAreaElement.addEventListener('click', () => {\r\n                this.toggleContent();\r\n            });\r\n        });\r\n    }\r\n\r\n    _updateTitle(title) {\r\n        if (title && ('-' !== title)) {\r\n            this._componentElement.querySelector('div.title-area > h3 > span').innerHTML = title;\r\n        }\r\n    }\r\n\r\n    showContent() {\r\n        this._componentElement.classList.remove('hide');\r\n        this._updateTitle(this._hideContentTitle);\r\n        if (!this._idIsRandom) {\r\n            this._setHidden(false);\r\n        }\r\n    }\r\n\r\n    hideContent() {\r\n        this._componentElement.classList.add('hide');\r\n        this._updateTitle(this._title);\r\n        if (!this._idIsRandom) {\r\n            this._setHidden(true);\r\n        }\r\n    }\r\n\r\n    toggleContent() {\r\n        this._componentElement.classList.contains('hide')\r\n            ? this.showContent()\r\n            : this.hideContent();\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { ModalDialogBox } from './modal-dialog-box';\r\nimport showInternalError from './showInternalError';\r\nimport ce from './createElement';\r\nimport prepareUrl from './prepareUrl';\r\nimport escapeHtml from './escapeHtml';\r\nimport Locale from './Locale';\r\n\r\nimport './message-box.less';\r\n\r\nconst factory = (config = {}) => {\r\n    if (config.isWebspace) {\r\n        return new WebspaceFoldersMessageBox(config);\r\n    }\r\n\r\n    if (config.isAjax) {\r\n        return new MultiCheckboxMessageWindow(config);\r\n    }\r\n\r\n    return new MessageBox(config);\r\n};\r\n\r\nconst TYPE_OK = 'TYPE_OK';\r\nconst TYPE_YESNO = 'TYPE_YESNO';\r\nconst SUBTYPE_DELETE = 'delete';\r\nconst SUBTYPE_TOGGLE = 'toggle';\r\nconst SUBTYPE_CONFIRM = 'confirm';\r\n\r\n/**\r\n * @class messageBox\r\n * @singleton\r\n */\r\nexport const messageBox = {\r\n    TYPE_OK,\r\n    TYPE_YESNO,\r\n    SUBTYPE_DELETE,\r\n    SUBTYPE_TOGGLE,\r\n    SUBTYPE_CONFIRM,\r\n\r\n    /**\r\n     * Show message box.\r\n     * @param {Object} config\r\n     */\r\n    show(config) {\r\n        const messageBox = factory(config);\r\n        messageBox.show();\r\n        return messageBox;\r\n    },\r\n};\r\n\r\nexport class MessageBox extends ModalDialogBox {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._cls = 'popup-panel popup-panel-sm popup-panel-centered confirmation-box';\r\n        this._type = this._getConfigParam('type', TYPE_YESNO);\r\n        this._text = this._getConfigParam('text', '');\r\n        this._subtype = this._getConfigParam('subtype', null);\r\n        this._description = this._getConfigParam('description', '');\r\n        this._descriptionWrapperTag = this._getConfigParam('descriptionWrapperTag', 'p');\r\n        this._descriptionDecorator = this._getConfigParam('descriptionDecorator', content => content);\r\n        this._buttonDefault = this._getConfigParam('buttonDefault', this._type === TYPE_YESNO ? 'no' : 'yes');\r\n\r\n        const buttonsLocale = Locale.getSection('components.buttons');\r\n        this._buttonTitles = {\r\n            ok: buttonsLocale.lmsg('ok'),\r\n            yes: buttonsLocale.lmsg(this._subtype === SUBTYPE_DELETE ? 'yesRemove' : 'yes'),\r\n            no: buttonsLocale.lmsg('no'),\r\n            wait: buttonsLocale.lmsg('wait'),\r\n            ...this._getConfigParam('buttonTitles'),\r\n        };\r\n\r\n        this._onYesClick = this._getConfigParam('onYesClick', null);\r\n        this._onNoClick = this._getConfigParam('onNoClick', null);\r\n        this._onOkClick = this._getConfigParam('onOkClick', null);\r\n        this._needAttention = this._getConfigParam('needAttention', false);\r\n        this._needAttentionText = this._getConfigParam('needAttentionText', '');\r\n        this._needAttentionBlockSubmit = this._getConfigParam('needAttentionBlockSubmit', false);\r\n        this._needAttentionOnChange = this._getConfigParam('needAttentionOnChange', null);\r\n\r\n        if (TYPE_YESNO === this._type) {\r\n            if (this._onYesClick) {\r\n                this._onYesClickHandler = this._onYesClick.bind(this);\r\n            } else {\r\n                this._onYesClickHandler = this._defaultOnButtonClick.bind(this);\r\n            }\r\n        }\r\n    }\r\n\r\n    _getDescriptionCode() {\r\n        const wrapDescription = description => `<${this._descriptionWrapperTag}>${description}</${this._descriptionWrapperTag}>`;\r\n\r\n        if (Array.isArray(this._description)) {\r\n            return this._description.map(wrapDescription).join('');\r\n        }\r\n\r\n        return this._descriptionDecorator(wrapDescription(this._description));\r\n    }\r\n\r\n    _getNeedAttentionCode() {\r\n        if (!this._needAttention) {\r\n            return '';\r\n        }\r\n\r\n        let needAttentionCode = '<hr>';\r\n        if (this._needAttentionBlockSubmit || this._needAttentionOnChange) {\r\n            needAttentionCode += (\r\n                '<p>' +\r\n                    '<span class=\"b-indent\">' +\r\n                        '<span class=\"b-indent-icon\">' +\r\n                            '<input type=\"checkbox\" class=\"checkbox\" id=\"needAttentionConfirmationCheckbox\">' +\r\n                        '</span>' +\r\n                        `<label for=\"needAttentionConfirmationCheckbox\">${this._needAttentionText}</label>` +\r\n                    '</span>' +\r\n                '</p>'\r\n            );\r\n        } else {\r\n            needAttentionCode += `<p class=\"hint-warning\">${this._needAttentionText}</p>`;\r\n        }\r\n        needAttentionCode += '<hr>';\r\n\r\n        return needAttentionCode;\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        this._updateComponentElement(\r\n            ce('div.popup-wrapper',\r\n                ce('div.popup-container',\r\n                    ce('div.popup-content',\r\n                        ce('div.popup-content-area',\r\n                            ce(`div.confirmation-msg${this._subtype ? `.mw-${this._subtype}` : ''}`,\r\n                                this._text ? ce('p', this._text) : null,\r\n                                this._getDescriptionCode(),\r\n                                this._getNeedAttentionCode(),\r\n                                ce('div.btns-container',\r\n                                    this._type === TYPE_YESNO ? [\r\n                                        ce(`button.btn${this._subtype === SUBTYPE_DELETE ? '.btn-danger' : this._buttonDefault === 'yes' ? '.action' : ''}`, {\r\n                                            type: 'button',\r\n                                            'data-action': 'yes',\r\n                                        }, this._buttonTitles.yes),\r\n                                        ce(`button.btn${this._subtype === SUBTYPE_DELETE ? '' : this._buttonDefault === 'no' ? '.action' : ''}`, {\r\n                                            type: 'button',\r\n                                            'data-action': 'no',\r\n                                        }, this._buttonTitles.no),\r\n                                    ] : this._type === TYPE_OK ? [\r\n                                        ce('button.btn.action', {\r\n                                            type: 'button',\r\n                                            'data-action': 'yes',\r\n                                        }, this._buttonTitles.ok),\r\n                                    ] : null,\r\n                                ),\r\n                            ),\r\n                        ),\r\n                    ),\r\n                ),\r\n            ),\r\n        );\r\n\r\n        this._componentElement.style.display = 'none';\r\n    }\r\n\r\n    _disableYesButton() {\r\n        if (TYPE_YESNO === this._type) {\r\n            const buttonYes = this._componentElement.querySelector('.btns-container .btn');\r\n            buttonYes.classList.add('disabled');\r\n            buttonYes.disabled = true;\r\n            buttonYes.removeEventListener('click', this._onYesClickHandler);\r\n        }\r\n    }\r\n\r\n    _enableYesButton() {\r\n        if (TYPE_YESNO === this._type) {\r\n            const buttonYes = this._componentElement.querySelector('.btns-container .btn');\r\n            buttonYes.classList.remove('disabled');\r\n            buttonYes.disabled = false;\r\n            buttonYes.addEventListener('click', this._onYesClickHandler);\r\n        }\r\n    }\r\n\r\n    _addEvents() {\r\n        super._addEvents();\r\n\r\n        const buttons = this._componentElement.querySelectorAll('button');\r\n\r\n        // add default behavior - hide dialog\r\n        buttons.forEach(button => {\r\n            button.addEventListener('click', this._defaultOnButtonClick.bind(this));\r\n        });\r\n\r\n        if (TYPE_YESNO === this._type) {\r\n            if (this._onYesClick) {\r\n                const buttonYes = buttons[0];\r\n                buttonYes.addEventListener('click', this._onYesClickHandler);\r\n            }\r\n\r\n            if (this._onNoClick) {\r\n                const buttonNo = buttons[buttons.length - 1];\r\n                buttonNo.addEventListener('click', event => {\r\n                    this._onNoClick(event);\r\n                });\r\n            }\r\n\r\n            if (this._needAttention && this._needAttentionBlockSubmit) {\r\n                const inputs = this._componentElement.querySelectorAll('input');\r\n                const confirmationCheckbox = inputs[inputs.length - 1];\r\n                confirmationCheckbox.addEventListener('click', () => {\r\n                    if (confirmationCheckbox.checked) {\r\n                        this._enableYesButton();\r\n                    } else {\r\n                        this._disableYesButton();\r\n                    }\r\n                });\r\n            }\r\n\r\n            if (this._needAttention && this._needAttentionOnChange) {\r\n                const inputs = this._componentElement.querySelectorAll('input');\r\n                const confirmationCheckbox = inputs[inputs.length - 1];\r\n                confirmationCheckbox.addEventListener('click', () => {\r\n                    this._needAttentionOnChange(confirmationCheckbox.checked);\r\n                });\r\n            }\r\n        }\r\n\r\n        if (TYPE_OK === this._type) {\r\n            if (this._onOkClick) {\r\n                const buttonOk = buttons[0];\r\n                buttonOk.addEventListener('click', event => {\r\n                    this._onOkClick(event);\r\n                });\r\n            }\r\n        }\r\n    }\r\n\r\n    _addTooltips() {\r\n        // disable parent implementation\r\n    }\r\n\r\n    _defaultOnButtonClick() {\r\n        this.hide();\r\n    }\r\n\r\n    show() {\r\n        super.show();\r\n        setTimeout(() => {\r\n            this._componentElement.querySelector(`[data-action=\"${this._buttonDefault}\"]`)?.focus();\r\n        });\r\n        if (this._needAttention && this._needAttentionBlockSubmit) {\r\n            this._disableYesButton();\r\n        }\r\n    }\r\n}\r\n\r\n// TODO PMT-4391: Plesk migrator is broken in Plesk 17.9.1 after cutting core's classes\r\nMessageBox.subclasses = [];\r\n\r\nexport class AjaxMessageBox extends MessageBox {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n        this._requestUrl = this._getConfigParam('requestUrl', '');\r\n        this._requestMethod = this._getConfigParam('requestMethod', 'post');\r\n        this._requestParams = this._getConfigParam('requestParams', '');\r\n        this._contentContainerId = this._getConfigParam('contentContainerId', `${this._id}contentContainer`);\r\n        this._confirmationCheckboxId = this._getConfigParam('confirmationCheckboxId', `${this._id}confirmationCheckbox`);\r\n        this._loadingTitle = this._getConfigParam('loadingTitle', '');\r\n        this._progress = false;\r\n    }\r\n\r\n    _getNeedAttentionCode() {\r\n        return `<div id=\"${this._contentContainerId}\"></div>${super._getNeedAttentionCode()}`;\r\n    }\r\n\r\n    _showSpinner() {\r\n        if (TYPE_YESNO === this._type) {\r\n            this._progress = true;\r\n            this._componentElement.querySelector('button').innerHTML = `<span class=\"wait\">${this._buttonTitles.wait}</span>`;\r\n        }\r\n    }\r\n\r\n    _hideSpinner() {\r\n        if (TYPE_YESNO === this._type) {\r\n            this._progress = false;\r\n            this._componentElement.querySelector('button').innerHTML = this._buttonTitles.yes;\r\n        }\r\n    }\r\n\r\n    show() {\r\n        super.show();\r\n        if (!this._requestUrl || this._progress) {\r\n            return;\r\n        }\r\n\r\n        new Ajax.Request(prepareUrl(this._requestUrl), {\r\n            method: this._requestMethod,\r\n            parameters: this._requestParams,\r\n            onCreate: this._onCreate.bind(this),\r\n            onSuccess: this._onSuccess.bind(this),\r\n            onFailure: this._onFailure.bind(this),\r\n        });\r\n    }\r\n\r\n    _onCreate() {\r\n        this._disableYesButton();\r\n        this._showSpinner();\r\n    }\r\n\r\n    _onSuccess() {\r\n        this._hideSpinner();\r\n        this._enableYesButton();\r\n    }\r\n\r\n    _onFailure() {\r\n        this._hideSpinner();\r\n        this._enableYesButton();\r\n    }\r\n}\r\n\r\n// TODO PMT-4391: Plesk migrator is broken in Plesk 17.9.1 after cutting core's classes\r\nAjaxMessageBox.superclass = MessageBox;\r\n\r\nexport class MultiCheckboxMessageWindow extends AjaxMessageBox {\r\n    _onSuccess(transport) {\r\n        this._hideSpinner();\r\n\r\n        const result = JSON.parse(transport.responseText);\r\n\r\n        const { content } = result;\r\n        let contentCode = '';\r\n        if (Array.isArray(content)) {\r\n            if (content.length > 0) {\r\n                contentCode = '<ul class=\"ul\">';\r\n                content.forEach(item => {\r\n                    contentCode += `<li>${item}</li>`;\r\n                });\r\n                contentCode += '</ul>';\r\n            }\r\n        } else {\r\n            contentCode = content;\r\n        }\r\n\r\n        let descriptionCode = '';\r\n        if (result.description) {\r\n            descriptionCode = `<p><span class=\"hint-warning\">${result.description}</span></p>`;\r\n        }\r\n\r\n        let confirmationCode = '';\r\n        if (result.confirmation) {\r\n            confirmationCode = (\r\n                '<p><span class=\"b-indent\">' +\r\n                    '<span class=\"b-indent-icon\">' +\r\n                        `<input type=\"checkbox\" class=\"checkbox\" id=\"${this._confirmationCheckboxId}\"/>` +\r\n                    '</span>' +\r\n                    `<label for=\"${this._confirmationCheckboxId}\">${result.confirmation}</label>` +\r\n                '</span></p>'\r\n            );\r\n        }\r\n\r\n        document.getElementById(this._contentContainerId).innerHTML = contentCode + descriptionCode + confirmationCode;\r\n\r\n        const checkboxes = this._componentElement.querySelectorAll('input[type=\"checkbox\"]');\r\n        checkboxes.forEach(checkbox => {\r\n            checkbox.addEventListener('click', () => {\r\n                let enableYesButton = true;\r\n                this._componentElement.querySelectorAll('input[type=\"checkbox\"]').forEach(confirmationCheckbox => {\r\n                    if (!confirmationCheckbox.checked) {\r\n                        enableYesButton = false;\r\n                    }\r\n                });\r\n                if (enableYesButton) {\r\n                    this._enableYesButton();\r\n                } else {\r\n                    this._disableYesButton();\r\n                }\r\n            });\r\n        });\r\n\r\n        if (!checkboxes.length) {\r\n            this._enableYesButton();\r\n        }\r\n    }\r\n}\r\n\r\nexport class WebspaceFoldersMessageBox extends AjaxMessageBox {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n        this._successDescription = this._getConfigParam('successDescription', '');\r\n        this._failureDescription = this._getConfigParam('failureDescription', '');\r\n    }\r\n\r\n    show() {\r\n        if (!this._progress) {\r\n            this._setDescription([]);\r\n        }\r\n        super.show();\r\n    }\r\n\r\n    _setDescription(folders) {\r\n        const list = folders.map(({ name }) => `<li>${escapeHtml(name)}</li>`);\r\n        const message = folders.length\r\n            ? this._description.concat(' ').concat(this._successDescription).concat(`<ul>${list.join('')}</ul>`)\r\n            : this._description;\r\n        document.getElementById(this._contentContainerId).innerHTML = message;\r\n    }\r\n\r\n    _onSuccess(transport) {\r\n        this._hideSpinner();\r\n        this._enableYesButton();\r\n        try {\r\n            this._setDescription(JSON.parse(transport.responseText).data);\r\n        } catch {\r\n            showInternalError(transport.responseText);\r\n        }\r\n    }\r\n\r\n    _onFailure() {\r\n        super._onFailure();\r\n        document.getElementById(this._contentContainerId).innerHTML = `${this._description} ${this._failureDescription}`;\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Component } from './component';\r\nimport render from './render';\r\nimport emptyFn from './emptyFn';\r\nimport { ESC } from './keyCode';\r\n\r\nimport './modal-dialog-box.less';\r\n\r\nexport class ModalDialogBox extends Component {\r\n    constructor(config) {\r\n        super(config);\r\n        this._componentElement.querySelectorAll('[autofocus]').forEach(el => el.focus());\r\n    }\r\n\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._screenDisablerId = this._getConfigParam('screenDisablerId', 'screenDisabler');\r\n        this._hideOnEscape = this._getConfigParam('hideOnEscape', false);\r\n        this._hideOnBgClick = this._getConfigParam('hideOnBgClick', true);\r\n        this._onShow = this._getConfigParam('onShow', emptyFn);\r\n        this._onHide = this._getConfigParam('onHide', emptyFn);\r\n\r\n        if (!document.getElementById(this._screenDisablerId)) {\r\n            ModalDialogBox.initScrollbarSpacer();\r\n            render(\r\n                document.body,\r\n                `<div id=\"${this._screenDisablerId}\" class=\"main-disabled-block\"></div>`,\r\n                'top',\r\n            );\r\n        }\r\n\r\n        this._screenDisabler = document.getElementById(this._screenDisablerId);\r\n\r\n        const renderTo = this._getConfigParam('renderTo', 'modalDialogBox');\r\n        this._renderTarget = typeof renderTo === 'string' ? document.getElementById(renderTo) : renderTo;\r\n        if (!this._renderTarget) {\r\n            this._renderTarget = document.createElement('div');\r\n            this._renderTarget.id = renderTo;\r\n        }\r\n\r\n        this._renderTarget.innerHTML = '';\r\n        render(this._screenDisabler, this._renderTarget, 'after');\r\n        this._onKeyDownhandler = this._onKeyDown.bind(this);\r\n    }\r\n\r\n    _addEvents() {\r\n        super._addEvents();\r\n\r\n        if (this._hideOnBgClick) {\r\n            this._componentElement.addEventListener('click', () => {\r\n                this.hide();\r\n            });\r\n        }\r\n\r\n        const popupContainer = this._componentElement.querySelector('.popup-container');\r\n        if (popupContainer) {\r\n            popupContainer.addEventListener('click', event => {\r\n                event.stopPropagation();\r\n            });\r\n        }\r\n\r\n        this._onKeyDownhandler = this._onKeyDown.bind(this);\r\n    }\r\n\r\n    show() {\r\n        super.show();\r\n        document.querySelector('html').classList.add('modal-open');\r\n        document.addEventListener('keydown', this._onKeyDownhandler);\r\n        this._onShow();\r\n    }\r\n\r\n    hide() {\r\n        super.hide();\r\n        document.querySelector('html').classList.remove('modal-open');\r\n        document.removeEventListener('keydown', this._onKeyDownhandler);\r\n        this._onHide();\r\n    }\r\n\r\n    _onKeyDown(e) {\r\n        switch (e.keyCode) {\r\n            case (this._hideOnEscape && ESC):\r\n                this.hide();\r\n                break;\r\n        }\r\n    }\r\n}\r\n\r\nModalDialogBox.initScrollbarSpacer = () => {\r\n    const scrollDiv = document.createElement('div');\r\n    scrollDiv.style.width = '50px';\r\n    scrollDiv.style.height = '50px';\r\n    scrollDiv.style.overflow = 'scroll';\r\n    scrollDiv.style.position = 'absolute';\r\n    scrollDiv.style.top = '-9999px';\r\n    document.body.appendChild(scrollDiv);\r\n\r\n    const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\r\n    document.body.removeChild(scrollDiv);\r\n\r\n    const styleEl = document.createElement('style');\r\n    document.head.appendChild(styleEl);\r\n    styleEl.sheet.insertRule(`.modal-open {margin-right: ${scrollbarWidth}px}`, 0);\r\n    styleEl.sheet.insertRule(`.modal-open .js-scrollbar-spacer {margin-right: ${scrollbarWidth}px}`, 1);\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport render from './render';\r\nimport { Component } from './component';\r\n\r\nexport class DropdownHeader extends Component {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration({\r\n            cls: 'dropdown-header',\r\n            ...config,\r\n        });\r\n        this._title = this._getConfigParam('title', '');\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n        render(this._componentElement, this._title);\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nlet dropdowns = [];\r\n\r\nconst closeAllDropdowns = event => {\r\n    dropdowns.forEach(dropdown => {\r\n        if (dropdown.isOpened(event)) {\r\n            dropdown.close(event);\r\n        }\r\n    });\r\n};\r\n\r\n/**\r\n * @class DropdownManager\r\n * @singleton\r\n */\r\nexport const DropdownManager = {\r\n    /**\r\n     * Register dropdown component.\r\n     * @param {Element} toggler\r\n     * @param {Function} isOpened\r\n     * @param {Function} open\r\n     * @param {Function} close\r\n     * @param {Function} [beforeClick]\r\n     * @returns {Object}\r\n     */\r\n    register(toggler, isOpened, open, close, beforeClick) {\r\n        const dropdown = {\r\n            toggler,\r\n            isOpened,\r\n            open,\r\n            close,\r\n            handler(event) {\r\n                if (beforeClick && !beforeClick(event)) {\r\n                    return;\r\n                }\r\n                event.stopPropagation();\r\n                const oldIsOpened = isOpened(event);\r\n                closeAllDropdowns(event);\r\n                if (!oldIsOpened) {\r\n                    open(event);\r\n                }\r\n            },\r\n        };\r\n\r\n        dropdowns.push(dropdown);\r\n        dropdown.toggler.addEventListener('click', dropdown.handler);\r\n\r\n        if (dropdowns.length > 0) {\r\n            document.body.addEventListener('click', closeAllDropdowns);\r\n        }\r\n\r\n        return dropdown;\r\n    },\r\n\r\n    /**\r\n     * Un register dropdown component.\r\n     * @param {Object} dropdown\r\n     */\r\n    unregister(dropdown) {\r\n        dropdown.toggler.removeEventListener('click', dropdown.handler);\r\n        dropdowns = dropdowns.filter(item => item !== dropdown);\r\n\r\n        if (dropdowns.length === 0) {\r\n            document.body.removeEventListener('click', closeAllDropdowns);\r\n        }\r\n    },\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Container } from './container';\r\nimport { Tooltip } from './tooltip';\r\nimport Filters from './list/Filters';\r\nimport createComponent from './createComponent';\r\nimport render from './render';\r\nimport createElement from './createElement';\r\nimport emptyFn from './emptyFn';\r\n\r\nimport './small-tools.less';\r\n\r\n/**\r\n * Example usage:\r\n *\r\n *     @example\r\n *     new SmallTools({\r\n *         renderTo: document.body,\r\n *         operations: [{\r\n *             componentType: SmallButton,\r\n *             title: 'Button 1',\r\n *             handler() {\r\n *                 alert('You clicked the Button 1!');\r\n *             },\r\n *         }, {\r\n *             componentType: bar.Separator,\r\n *         }, {\r\n *             componentType: SmallButton,\r\n *             title: 'Button 2',\r\n *             handler() {\r\n *                 alert('You clicked the Button 2!');\r\n *             },\r\n *         }],\r\n *     });\r\n */\r\nexport class SmallTools extends Container {\r\n    /**\r\n     * @cfg {Object[]} operations\r\n     */\r\n\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._operations = this._getConfigParam('operations', null);\r\n        this._operationsId = this._getConfigParam('operationsId', `${this._id}-operations`);\r\n        this._cls = this._getConfigParam('cls', 'actions-box');\r\n\r\n        if (Array.isArray(this._operations) && !this._operations.length) {\r\n            this._operations = null;\r\n        }\r\n\r\n        this.searchFilters = $H(this._getConfigParam('searchFilters', {}));\r\n        this.searchFiltersState = this._getConfigParam('searchFiltersState', {});\r\n        this.searchHandler = this._getConfigParam('searchHandler', emptyFn);\r\n        this.resetSearchHandler = this._getConfigParam('resetSearchHandler', emptyFn);\r\n        this.listId = this._getConfigParam('listId');\r\n\r\n        this.searchOveral = this._getConfigParam('searchOveral', null);\r\n        if (null === this.searchOveral) {\r\n            this.searchFilters.each(({ key, value }) => {\r\n                if (value.overal) {\r\n                    this.searchOverall = key;\r\n                }\r\n            });\r\n            if (null === this.searchOveral && 1 === this.searchFilters.keys().length) {\r\n                this.searchOveral = this.searchFilters.keys()[0];\r\n            }\r\n            if (null === this.searchOveral) {\r\n                this.searchOveral = false;\r\n            }\r\n        }\r\n\r\n        this.quickSearchWide = this._getConfigParam('quickSearchWide', false);\r\n        this.quickSearchInputId = this._getConfigParam('quickSearchInputId');\r\n        this.searchCollapsed = this._getConfigParam('searchCollapsed', false);\r\n        this.onToggleSearch = this._getConfigParam('onToggleSearch', emptyFn);\r\n    }\r\n\r\n    render() {\r\n        super.render();\r\n\r\n        render(this._componentElement, [\r\n            createElement(`#${this._operationsId}.objects-toolbar.clearfix`,\r\n                this._operations ? this._operations.map(createComponent) : '',\r\n                this.quickSearchBoxView(),\r\n            ),\r\n            this.searchBoxView(),\r\n        ]);\r\n\r\n        this._componentElement.classList[this.searchCollapsed ? 'remove' : 'add']('actions-box-search-show');\r\n\r\n        if (this._operations) {\r\n            this.addResponsiveButton('toolbar');\r\n        }\r\n\r\n        if (this.searchFilters.keys().length) {\r\n            this.addResponsiveButton('search');\r\n        }\r\n\r\n        Tooltip.initData(this._componentElement);\r\n    }\r\n\r\n    quickSearchBoxView() {\r\n        if (!this.searchFilters.keys().length) {\r\n            return '';\r\n        }\r\n\r\n        return createElement(`.quick-search-box${this.quickSearchWide ? '.quick-search-box-wide' : ''}`,\r\n            {\r\n                onclick(event) {\r\n                    event.stopPropagation();\r\n                },\r\n            },\r\n            this.searchOveralView(),\r\n            this.searchFilters.keys().length > 1 ? createElement('span.search-control',\r\n                createElement('a.s-btn.sb-search-show', {\r\n                    onclick: this.toggleSearch.bind(this),\r\n                    'aria-label': this.lmsg('showSearch'),\r\n                }),\r\n                createElement('a.s-btn.sb-search-hide', {\r\n                    onclick: this.toggleSearch.bind(this),\r\n                    'aria-label': this.lmsg('hideSearch'),\r\n                }),\r\n            ) : '',\r\n        );\r\n    }\r\n\r\n    searchOveralView() {\r\n        if (!this.searchOveral) {\r\n            return '';\r\n        }\r\n\r\n        const filterState = this.searchFiltersState[this.searchOveral];\r\n        const currentValue = this.searchFilters.get(this.searchOveral).value || (filterState && filterState.searchText) || '';\r\n\r\n        return createElement('.search-field',\r\n            createElement('form',\r\n                {\r\n                    onsubmit: event => {\r\n                        event.preventDefault();\r\n                        this.searchHandler(event.target);\r\n                    },\r\n                },\r\n                createElement(`input${this.quickSearchInputId ? `#${this.quickSearchInputId}` : ''}`, {\r\n                    type: 'text',\r\n                    value: currentValue,\r\n                    name: `searchFilter[${this.searchOveral}][searchText]`,\r\n                }),\r\n                createElement('em',\r\n                    {\r\n                        onclick: event => {\r\n                            this.searchHandler(event.target.closest('form'));\r\n                        },\r\n                    },\r\n                    createElement('span'),\r\n                ),\r\n            ),\r\n        );\r\n    }\r\n\r\n    searchBoxView() {\r\n        if (this.searchFilters.keys().length < 2) {\r\n            return null;\r\n        }\r\n\r\n        return createElement('.search-box',\r\n            {\r\n                onclick(event) {\r\n                    event.stopPropagation();\r\n                },\r\n            },\r\n            createElement('form',\r\n                {\r\n                    onsubmit: event => {\r\n                        event.preventDefault();\r\n                        this.searchHandler(event.target);\r\n                    },\r\n                },\r\n                createElement('ul',\r\n                    this.searchFiltersView(),\r\n                ),\r\n                createElement('a.s-btn.sb-search',\r\n                    {\r\n                        onclick: event => {\r\n                            this.searchHandler(event.target.closest('form'));\r\n                        },\r\n                    },\r\n                    this.lmsg('buttonSearch'),\r\n                ),\r\n                createElement('a.s-btn.sb-show-all',\r\n                    {\r\n                        onclick: () => {\r\n                            this.resetSearchHandler();\r\n                        },\r\n                    },\r\n                    this.lmsg('buttonResetSearch'),\r\n                ),\r\n                createElement('input', {\r\n                    type: 'image',\r\n                    style: 'border: 0pt none; height: 0pt; width: 0pt; position: absolute; left: -9999px;',\r\n                    src: require('images/blank.gif'),\r\n                }),\r\n            ),\r\n        );\r\n    }\r\n\r\n    searchFiltersView() {\r\n        const filters = [];\r\n\r\n        this.searchFilters.each(({ key: name, value: config }) => {\r\n            filters.push(\r\n                createElement('li',\r\n                    createElement('div',\r\n                        config.title ? createElement('span', config.title) : '',\r\n                        Filters.create({\r\n                            idPrefix: this.listId,\r\n                            name,\r\n                            value: this.searchFiltersState[name] && this.searchFiltersState[name].searchText,\r\n                            ...config,\r\n                        }, event => {\r\n                            this.searchHandler(event.target.closest('form'));\r\n                        }),\r\n                    ),\r\n                ),\r\n            );\r\n        });\r\n\r\n        return filters;\r\n    }\r\n\r\n    toggleSearch() {\r\n        this._componentElement.classList.toggle('actions-box-search-show');\r\n        this.onToggleSearch(!this._componentElement.classList.contains('actions-box-search-show'));\r\n    }\r\n\r\n    _addEvents() {\r\n        super._addEvents();\r\n\r\n        document.addEventListener('click', () => {\r\n            this._hideResponsiveButtonBlocks();\r\n        });\r\n    }\r\n\r\n    addResponsiveButton(name) {\r\n        if (!this._rActionsElement) {\r\n            this._rActionsElement = new Element('div', { class: 'r-actions' });\r\n            this._rActionsElement.innerHTML = '<ul class=\"r-actions-list\"></ul>';\r\n            render(this._componentElement, this._rActionsElement, 'top');\r\n        }\r\n\r\n        if (this._rActionsElement.querySelector(`.r-actions-${name}`)) {\r\n            return;\r\n        }\r\n\r\n        render(this._rActionsElement.querySelector('.r-actions-list'), (\r\n            createElement(`li.r-actions-item.r-actions-${name}`, { onclick: e => this.onResponsiveButtonClick(e, name) }, createElement('span'))\r\n        ));\r\n    }\r\n\r\n    onResponsiveButtonClick(event, name) {\r\n        const button = this._componentElement.querySelector(`.r-actions-${name}`);\r\n        const show = !button.classList.contains('r-actions-item-active');\r\n        this._hideResponsiveButtonBlocks();\r\n        if (show) {\r\n            this._showResponsiveButtonBlocks(name);\r\n        }\r\n        event.stopPropagation();\r\n    }\r\n\r\n    _hideResponsiveButtonBlocks() {\r\n        this._componentElement.className.split(' ').forEach(className => {\r\n            if (className.indexOf('r-actions-active') === 0) {\r\n                this._componentElement.classList.remove(className);\r\n            }\r\n        });\r\n        this._componentElement.querySelectorAll('.r-actions-item-active').forEach(item => {\r\n            if (item.classList.contains('r-actions-select')) {\r\n                return;\r\n            }\r\n            item.classList.remove('r-actions-item-active');\r\n        });\r\n    }\r\n\r\n    _showResponsiveButtonBlocks(name) {\r\n        this._componentElement.querySelector(`.r-actions-${name}`).classList.add('r-actions-item-active');\r\n        this._componentElement.classList.add('r-actions-active');\r\n        this._componentElement.classList.add(`r-actions-active-${name}`);\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport Locale from '../Locale';\r\nimport createElement from '../createElement';\r\nimport escapeHtml from '../escapeHtml';\r\n\r\nconst Filters = {\r\n    create(config, handler) {\r\n        if (config.render) {\r\n            return config.render(config, handler);\r\n        }\r\n\r\n        if (config.type === 'date') {\r\n            return this.createDate(config, handler);\r\n        }\r\n\r\n        if (config.options) {\r\n            if (config.multi) {\r\n                return this.createMultiEnum(config, handler);\r\n            }\r\n            return this.createEnum(config, handler);\r\n        }\r\n\r\n        return this.createText(config, handler);\r\n    },\r\n\r\n    createText(config, handler) {\r\n        const inputDataName = ({ name }) => name ? (name.charAt(0).toUpperCase() + name.split('').slice(1).join('')) : '';\r\n\r\n        return createElement('input[type=\"text\"]', {\r\n            id: config.idPrefix ? `${config.idPrefix}-search-text-${config.name}` : null,\r\n            name: `searchFilter[${config.name}][searchText]`,\r\n            placeholder: config.placeholder || null,\r\n            pattern: config.pattern || null,\r\n            title: (config.pattern && config.placeholder) || null,\r\n            onkeyup: (config.live && handler) || null,\r\n            value: config.value || null,\r\n            class: config.cls || null,\r\n            'data-input-name': `filter${inputDataName(config)}Input`,\r\n        });\r\n    },\r\n\r\n    createEnum(config, handler) {\r\n        return createElement('select',\r\n            {\r\n                id: config.idPrefix ? `${config.idPrefix}-type-filter` : null,\r\n                name: `searchFilter[${config.name}][searchText]`,\r\n                onchange: handler || null,\r\n            },\r\n            this.enumOptionsView(config.options, config.value),\r\n        );\r\n    },\r\n\r\n    createMultiEnum(config, handler) {\r\n        return createElement('.dropdown',\r\n            createElement('.input-group',\r\n                createElement('input.form-control[type=\"text\"][readonly]', {\r\n                    placeholder: config.placeholder || null,\r\n                }),\r\n                createElement('span.input-group-btn',\r\n                    createElement('button.btn.dropdown-toggle[type=\"button\"]',\r\n                        createElement('span.caret'),\r\n                    ),\r\n                ),\r\n            ),\r\n            createElement('ul.dropdown-menu.pull-right',\r\n                {\r\n                    onclick(event) {\r\n                        event.stopPropagation();\r\n                    },\r\n                },\r\n                Array.isArray(config.options) && config.options.length ? createElement('li',\r\n                    createElement('div.dropdown-menu-content.checkbox-group',\r\n                        config.options.map(function (option) {\r\n                            return createElement('label',\r\n                                createElement('input[type=\"checkbox\"]', {\r\n                                    value: option.value,\r\n                                    checked: !config.value || config.value.indexOf(option.value) !== -1 ? true : null,\r\n                                    onclick(event) {\r\n                                        const element = event.target;\r\n                                        const output = element.closest('th').querySelector('input[type=text]');\r\n                                        const input = element.closest('th').querySelectorAll('input[type=checkbox]:checked');\r\n                                        const total = element.closest('th').querySelectorAll('input[type=checkbox]');\r\n                                        if (!input.length) {\r\n                                            output.value = config.locale.lmsg('none');\r\n                                        } else if (input.length === total.length) {\r\n                                            output.value = '';\r\n                                        } else {\r\n                                            const value = [];\r\n                                            input.forEach(el => {\r\n                                                value.push(el.value[0].toUpperCase());\r\n                                            });\r\n                                            output.value = value.join(', ');\r\n                                        }\r\n\r\n                                        if (typeof handler === 'function') {\r\n                                            handler();\r\n                                        }\r\n                                    },\r\n                                }),\r\n                                ` ${option.value}`,\r\n                            );\r\n                        }),\r\n                    ),\r\n                ) : '',\r\n            ),\r\n        );\r\n    },\r\n\r\n    createDate(config, handler) {\r\n        const date = config.date || new Date();\r\n        const locale = config.locale || new Locale();\r\n\r\n        const hour = createElement('select', { 'data-input-name': 'filterDateHourSelect' });\r\n        for (let i = 0; i < 24; i++) {\r\n            hour.children.push(\r\n                createElement('option', { value: i }, (i < 10 ? '0' : '') + i),\r\n            );\r\n        }\r\n\r\n        const minute = createElement('select', { 'data-input-name': 'filterDateMinuteSelect' });\r\n        for (let i = 0; i < 60; i++) {\r\n            minute.children.push(\r\n                createElement('option', { value: i }, (i < 10 ? '0' : '') + i),\r\n            );\r\n        }\r\n\r\n        const day = createElement('select', { 'data-input-name': 'filterDateDaySelect' });\r\n        for (let i = 1; i < 32; i++) {\r\n            day.children.push(\r\n                createElement('option', { value: i }, (i < 10 ? '0' : '') + i),\r\n            );\r\n        }\r\n\r\n        const month = createElement('select', { 'data-input-name': 'filterDateMonthSelect' });\r\n        for (let i = 0; i < 12; i++) {\r\n            month.children.push(\r\n                createElement('option', { value: i }, locale.lmsg(`month${i + 1}`)),\r\n            );\r\n        }\r\n\r\n        const year = createElement('select', { 'data-input-name': 'filterDateYearSelect' });\r\n        for (let i = 2000; i <= date.getFullYear(); i++) {\r\n            year.children.push(\r\n                createElement('option', { value: i }, i),\r\n            );\r\n        }\r\n\r\n        return createElement('.dropdown',\r\n            createElement('.input-group',\r\n                {\r\n                    onclick: event => {\r\n                        this.onDateSearchFilterOpen(event.target.closest('.dropdown'));\r\n                    },\r\n                },\r\n                createElement('input.form-control[type=\"text\"][readonly]', {\r\n                    placeholder: config.placeholder || null,\r\n                }),\r\n                createElement('span.input-group-btn',\r\n                    createElement('button.btn.dropdown-toggle[type=\"button\"]',\r\n                        {\r\n                            'data-action-name': 'filterDateOpenForm',\r\n                        },\r\n                        createElement('span.caret'),\r\n                    ),\r\n                ),\r\n            ),\r\n            createElement('ul.dropdown-menu',\r\n                {\r\n                    onclick(event) {\r\n                        event.preventDefault();\r\n                        event.stopPropagation();\r\n                    },\r\n                },\r\n                createElement('li',\r\n                    createElement('.filter-date-form',\r\n                        createElement('.form-row',\r\n                            createElement('.inline-fields-group',\r\n                                hour, ' : ', minute,\r\n                            ),\r\n                            createElement('.inline-fields-group',\r\n                                day, ' ', month, ' ', year,\r\n                            ),\r\n                            createElement('.inline-fields-group',\r\n                                createElement('button.btn[type=\"button\"]', {\r\n                                    'data-action-name': 'filterDateApply',\r\n                                    onclick: event => {\r\n                                        event.target.closest('.dropdown').classList.toggle('open');\r\n                                        this.onDateSearchFilterOpen(event.target.closest('.dropdown'));\r\n                                        this.onDateSearchFilterChange(event.target.closest('.dropdown'));\r\n                                        if (typeof handler === 'function') {\r\n                                            handler();\r\n                                        }\r\n                                    },\r\n                                }, Locale.getSection('components.buttons').lmsg('apply')),\r\n                                createElement('button.btn[type=\"button\"]', {\r\n                                    'data-action-name': 'filterDateClear',\r\n                                    onclick: event => {\r\n                                        event.target.closest('.dropdown').classList.toggle('open');\r\n                                        event.target.closest('.dropdown').querySelector('input').value = '';\r\n                                        this.onDateSearchFilterOpen(event.target.closest('.dropdown'));\r\n                                        if (typeof handler === 'function') {\r\n                                            handler();\r\n                                        }\r\n                                    },\r\n                                }, locale.lmsg('clear')),\r\n                            ),\r\n                        ),\r\n                        createElement('.form-row.filter-actions-row',\r\n                            createElement('a.toggler', {\r\n                                onclick: event => {\r\n                                    this.onDateSearchFilterModify(event.target.closest('.dropdown'), new Date(date.getTime() - (3600 * 1000)));\r\n                                    if (typeof handler === 'function') {\r\n                                        handler();\r\n                                    }\r\n                                },\r\n                            }, locale.lmsg('hourAgo')),\r\n                            ' ',\r\n                            createElement('a.toggler', {\r\n                                onclick: event => {\r\n                                    this.onDateSearchFilterModify(event.target.closest('.dropdown'), new Date(date.getTime() - (86400 * 1000)));\r\n                                    if (typeof handler === 'function') {\r\n                                        handler();\r\n                                    }\r\n                                },\r\n                            }, locale.lmsg('prevDay')),\r\n                        ),\r\n                    ),\r\n                ),\r\n            ),\r\n        );\r\n    },\r\n\r\n    enumOptionsView(options, value) {\r\n        return options.map(function (option) {\r\n            if ('value' === option.type) {\r\n                return this.enumValueView(option, value);\r\n            }\r\n            return this.enumGroupValue(option, value);\r\n        }.bind(this));\r\n    },\r\n\r\n    enumValueView(option, value) {\r\n        return createElement('option', {\r\n            value: option.value,\r\n            selected: option.value === value,\r\n        }, escapeHtml(option.label));\r\n    },\r\n\r\n    enumGroupValue(option, value) {\r\n        return createElement('optgroup',\r\n            {\r\n                label: option.label,\r\n            },\r\n            this.enumOptionsView(option.options, value),\r\n        );\r\n    },\r\n\r\n    // eslint-disable-next-line no-unused-vars\r\n    onMultiEnumSearchFilterChange(element) {\r\n        // for custom onChange handler\r\n    },\r\n\r\n    onDateSearchFilterOpen(element) {\r\n        if (!element.classList.contains('open')) {\r\n            return;\r\n        }\r\n\r\n        let date = new Date(element.querySelector('input').value);\r\n        if (isNaN(date.getTime())) {\r\n            date = new Date();\r\n        }\r\n\r\n        this._dateSearchFieldFromDate(element, date);\r\n    },\r\n\r\n    onDateSearchFilterChange(element) {\r\n        const date = this._dateSearchFieldToDate(element);\r\n\r\n        const yyyy = date.getFullYear();\r\n        const mm = (date.getMonth() + 1 < 10 ? '0' : '') + (date.getMonth() + 1);\r\n        const dd = (date.getDate() < 10 ? '0' : '') + date.getDate();\r\n        const h = (date.getHours() < 10 ? '0' : '') + date.getHours();\r\n        const m = (date.getMinutes() < 10 ? '0' : '') + date.getMinutes();\r\n\r\n        element.querySelector('input').value = `${yyyy}-${mm}-${dd} ${h}:${m}`;\r\n    },\r\n\r\n    onDateSearchFilterModify(element, date) {\r\n        this._dateSearchFieldFromDate(element, date);\r\n    },\r\n\r\n    _dateSearchFieldFromDate(element, date) {\r\n        const elements = element.querySelectorAll('select');\r\n        elements[0].value = date.getHours();\r\n        elements[1].value = date.getMinutes();\r\n        elements[2].value = date.getDate();\r\n        elements[3].value = date.getMonth();\r\n        elements[4].value = date.getFullYear();\r\n    },\r\n\r\n    _dateSearchFieldToDate(element) {\r\n        const elements = element.querySelectorAll('select');\r\n        return new Date(elements[4].value, elements[3].value, elements[2].value, elements[0].value, elements[1].value);\r\n    },\r\n};\r\n\r\nexport default Filters;\r\n","module.exports = Jsw.skinUrl + \"/images/blank.gif?56398e76be6355ad5999b262208a17c9\";","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Container } from './container';\r\n\r\nimport './collapsible-block.less';\r\n/**\r\n * Example usage:\r\n *\r\n *     @example\r\n *     new CollapsibleBlock({\r\n *         renderTo: document.body,\r\n *         cls: 'example',\r\n *         title: 'Collapsible block',\r\n *         items: [\r\n *             new Box({\r\n *                 html: 'Content of collapsible block.'\r\n *             }),\r\n *         ],\r\n *     });\r\n */\r\nexport class CollapsibleBlock extends Container {\r\n    /**\r\n     * @cfg {Boolean} collapsed=true\r\n     */\r\n    /**\r\n     * @cfg {String} title\r\n     */\r\n\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._blockAreaId = `${this._id}-block`;\r\n        this._titleAreaId = `${this._id}-title-area`;\r\n        this._contentAreaId = `${this._id}-content-area`;\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        this._updateComponentElement((\r\n            `<div class=\"${this._cls}-block${this._getConfigParam('collapsed', true) ? ' hide' : ''}\" id=\"${this._blockAreaId}\">` +\r\n                `<div class=\"${this._cls}-title\" id=\"${this._titleAreaId}\">` +\r\n                    `<span>${this._getConfigParam('title', '')}</span>` +\r\n                '</div>' +\r\n                `<div class=\"${this._cls}-content\" id=\"${this._contentAreaId}\"></div>` +\r\n            '</div>'\r\n        ));\r\n    }\r\n\r\n    _addEvents() {\r\n        super._addEvents();\r\n        document.getElementById(this._titleAreaId).querySelector('span').addEventListener('click', this._onTitleClickEvent.bind(this));\r\n    }\r\n\r\n    _onTitleClickEvent(event) {\r\n        event.stopPropagation();\r\n        document.getElementById(this._blockAreaId).classList.toggle('hide');\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\n/* eslint-disable react/no-multi-comp */\r\n\r\nimport { Container } from './container';\r\nimport { Component } from './component';\r\nimport render from './render';\r\n\r\nimport './pathbar.less';\r\n\r\n/**\r\n * Example usage:\r\n *\r\n *     @example\r\n *     new Pathbar({\r\n *         renderTo: document.body,\r\n *         cls: 'pathbar',\r\n *         items: [{\r\n *             componentType: Pathbar.Item,\r\n *             title: 'Home',\r\n *         }, {\r\n *             componentType: Pathbar.Item,\r\n *             title: 'Domains',\r\n *         }, {\r\n *             componentType: Pathbar.Item,\r\n *             title: 'plesk.com',\r\n *         }, {\r\n *             componentType: Pathbar.Item,\r\n *             title: 'PHP Settings',\r\n *         }],\r\n *     });\r\n */\r\nexport class Pathbar extends Container {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._contentAreaId = `${this._id}-content-area`;\r\n    }\r\n\r\n    _initComponentElement() {\r\n        if (document.getElementById(this._id)) {\r\n            this._applyTargetId = this._id;\r\n            super._initComponentElement();\r\n\r\n            return;\r\n        }\r\n\r\n        super._initComponentElement();\r\n\r\n        this._updateComponentElement(\r\n            `<ul id=\"${this._contentAreaId}\"></ul>`,\r\n        );\r\n    }\r\n\r\n    _renderItem(item) {\r\n        const renderTargetId = `${this._id}-item-${item.getId()}`;\r\n        render(document.getElementById(this._contentAreaId), `<li id=\"${renderTargetId}\"></li>`);\r\n        render(document.getElementById(renderTargetId), item);\r\n        this._renderItemSuffix(item);\r\n    }\r\n\r\n    _renderItemSuffix(item) {\r\n        const renderTargetId = `${this._id}-item-${item.getId()}`;\r\n        render(document.getElementById(renderTargetId), '<b>&gt;</b>');\r\n    }\r\n}\r\n\r\nPathbar.Item = class Item extends Component {\r\n    /**\r\n     * @cfg {String} title\r\n     */\r\n    /**\r\n     * @cfg {String} href\r\n     */\r\n\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._title = this._getConfigParam('title', '');\r\n        this._href = this._getConfigParam('href', '');\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        this._componentElement = document.createElement('a');\r\n        this._componentElement.href = this._href;\r\n        this._componentElement.innerHTML = `<span>${this._title}</span>`;\r\n    }\r\n\r\n    getHref() {\r\n        return this._href;\r\n    }\r\n};\r\n\r\nPathbar.SimpleItem = class SimpleItem extends Component {\r\n    /**\r\n     * @cfg {String} title\r\n     */\r\n\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._title = this._getConfigParam('title', '');\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        this._componentElement = document.createElement('span');\r\n        this._componentElement.innerHTML = this._title;\r\n    }\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\n/* eslint-disable react/no-multi-comp */\r\n\r\nimport { Container } from './container';\r\nimport { Component, getComponent } from './component';\r\nimport { Button } from './button';\r\nimport render from './render';\r\nimport escapeHtml from './escapeHtml';\r\nimport { createHtmlElement } from '../helpers/createHtmlElement';\r\n\r\nimport './bar.less';\r\n\r\nexport class Bar extends Container {\r\n    /**\r\n     * @cfg {String} type=static Type of tabs (static or dynamic)\r\n     */\r\n\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._contentAreaId = `${this._id}-content-area`;\r\n        this._type = this._getConfigParam('type', 'static');\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        let content = `<ul id=\"${this._contentAreaId}\"></ul>`;\r\n        if ('navbar' !== this._id) {\r\n            content = `<div class=\"tabs-area\">${content}</div>`;\r\n        }\r\n\r\n        this._updateComponentElement(content);\r\n    }\r\n\r\n    _renderItem(item) {\r\n        const renderTargetId = `${this._id}-item-${item.getId()}`;\r\n        const containerCls = item.getContainerClass();\r\n\r\n        render(document.getElementById(this._contentAreaId), `<li class=\"${containerCls}\" id=\"${renderTargetId}\"></li>`);\r\n        render(document.getElementById(renderTargetId), item);\r\n\r\n        if ('dynamic' === this._type) {\r\n            item.addEventObserver('click', event => item.switchTab(event));\r\n        }\r\n\r\n        if (document.getElementById('main')) {\r\n            if (!document.getElementById('main').classList.contains('tabed') && 'navbar' !== this._id) {\r\n                document.getElementById('main').classList.add('tabed');\r\n            }\r\n        }\r\n    }\r\n}\r\n\r\n/**\r\n * The following example demonstrates how to use static tabs:\r\n *\r\n *     @example\r\n *     new bar.Tabs({\r\n *         renderTo: document.body,\r\n *         cls: 'tabs',\r\n *         items: [{\r\n *             componentType: bar.Button,\r\n *             title: 'Tab 1',\r\n *             active: true,\r\n *             href: 'http://example1.com'\r\n *         }, {\r\n *             componentType: bar.Button,\r\n *             title: 'Tab 2',\r\n *             href: 'http://example2.com'\r\n *         }],\r\n *     });\r\n *\r\n * The following example demonstrates how to use dynamic tabs:\r\n *\r\n *     @example\r\n *     new bar.Tabs({\r\n *         renderTo: document.body,\r\n *         cls: 'tabs',\r\n *         type: 'dynamic',\r\n *         items: [{\r\n *             componentType: bar.Button,\r\n *             tabId: 'tab-1',\r\n *             title: 'Tab 1',\r\n *             active: true,\r\n *             content: 'Content of Tab 1'\r\n *         }, {\r\n *             componentType: bar.Button,\r\n *             tabId: 'tab-2',\r\n *             title: 'Tab 2',\r\n *             content: new Box({\r\n *                 html: 'Content of Tab 2'\r\n *             }),\r\n *         }],\r\n *     });\r\n *\r\n */\r\nexport const bar = {};\r\nbar.Tabs = class extends Bar {\r\n    /**\r\n     * @cfg {Boolean} responsive=true\r\n     */\r\n\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n        this._isResponsive = this._getConfigParam('responsive', true);\r\n    }\r\n\r\n    _renderItems() {\r\n        super._renderItems();\r\n\r\n        if (this._isResponsive) {\r\n            this._addResponsiveTabs();\r\n        }\r\n    }\r\n\r\n    _addResponsiveTabs() {\r\n        const element = document.getElementById(this._id);\r\n        element.querySelectorAll('li a').forEach(el => {\r\n            el.addEventListener('click', event => {\r\n                const listItem = el.closest('li');\r\n                if (listItem.classList.contains('active') || listItem.id === 'current') {\r\n                    event.preventDefault();\r\n                }\r\n                element.classList.toggle('responsive-tabs-visible');\r\n            });\r\n        });\r\n    }\r\n\r\n    switchTab(tabId) {\r\n        let activeTab = null;\r\n\r\n        this.getItems().each(function (item) {\r\n            if (tabId === item.getTabId()) {\r\n                activeTab = item;\r\n            }\r\n\r\n            document.getElementById(item.getTabId()).style.display = 'none';\r\n            item.getRenderTarget().classList.remove('active');\r\n        });\r\n\r\n        document.getElementById(tabId).style.display = '';\r\n        activeTab.getRenderTarget().classList.add('active');\r\n    }\r\n\r\n    _renderItem(item, i, size) {\r\n        super._renderItem(item, i, size);\r\n\r\n        const content = item.getTabContent();\r\n\r\n        if (content) {\r\n            const tabContentElement = createHtmlElement('div', {\r\n                id: item.getTabId(),\r\n                style: !item.isActive() ? 'display: none' : '',\r\n            });\r\n\r\n            render(this._componentElement.parentNode, tabContentElement);\r\n            render(tabContentElement, content, typeof content === 'string' && 'inner');\r\n        }\r\n    }\r\n};\r\n\r\nbar.Button = class extends Button {\r\n    /**\r\n     * @cfg {Boolean} active=false\r\n     */\r\n    /**\r\n     * @cfg {String} containerCls\r\n     */\r\n    /**\r\n     * @cfg {String} tabId\r\n     */\r\n\r\n    /**\r\n     * @cfg {Boolean} navigationTab=false\r\n     */\r\n    /**\r\n     * @cfg {String|Component} content\r\n     */\r\n\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._isActive = this._getConfigParam('active', false);\r\n        this._cls = this._getConfigParam('cls', '');\r\n        this._containerCls = this._getConfigParam('containerCls', this._isActive ? 'active' : '');\r\n        this._tabId = this._getConfigParam('tabId', null);\r\n        if (this._tabId) {\r\n            this._id = `${this._tabId}-button`;\r\n        }\r\n        this.navigationTab = this._getConfigParam('navigationTab', false);\r\n        this._content = this._getConfigParam('content', null);\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        this._componentElement.innerHTML = `<span>${escapeHtml(this._title)}</span>`;\r\n    }\r\n\r\n    getContainerClass() {\r\n        return this._containerCls;\r\n    }\r\n\r\n    getTabId() {\r\n        return this._tabId;\r\n    }\r\n\r\n    switchTab(event) {\r\n        const bar = getComponent(event.target.closest('ul').parentNode\r\n            .parentNode.id);\r\n        bar.switchTab(this._tabId);\r\n        event.preventDefault();\r\n    }\r\n\r\n    getTabContent() {\r\n        return this._content;\r\n    }\r\n\r\n    isActive() {\r\n        return this._isActive;\r\n    }\r\n};\r\n\r\nbar.Separator = class Separator extends Component {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration({\r\n            tag: 'span',\r\n            cls: 'separator',\r\n            ...config,\r\n        });\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n        this._componentElement.innerHTML = '<span></span>';\r\n    }\r\n};\r\n\r\nbar.HorizontalSeparator = class HorizontalSeparator extends Component {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration({\r\n            tag: 'span',\r\n            wrapperClass: 'separator',\r\n            ...config,\r\n        });\r\n    }\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Component } from './component';\r\nimport { SmallButton } from './small-button';\r\nimport render from './render';\r\n\r\nexport class DynamicSubForm extends Component {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n        const getDynamicContent = this._getConfigParam('getDynamicContent', null);\r\n        if (getDynamicContent) {\r\n            this._getDynamicContent = getDynamicContent.bind(this);\r\n        }\r\n        const prepareDynamicContent = this._getConfigParam('prepareDynamicContent', null);\r\n        if (prepareDynamicContent) {\r\n            this._prepareDynamicContent = prepareDynamicContent.bind(this);\r\n        }\r\n        const bindDynamicContent = this._getConfigParam('bindDynamicContent', null);\r\n        if (bindDynamicContent) {\r\n            this._bindDynamicContent = bindDynamicContent.bind(this);\r\n        }\r\n        const insertDynamicContent = this._getConfigParam('insertDynamicContent', null);\r\n        if (insertDynamicContent) {\r\n            this._insertDynamicContent = insertDynamicContent.bind(this);\r\n        }\r\n        const onUpdateDynamic = this._getConfigParam('onUpdateDynamic', null);\r\n        if (onUpdateDynamic) {\r\n            this._onUpdateDynamic = onUpdateDynamic.bind(this);\r\n        }\r\n        const onInitDynamic = this._getConfigParam('onInitDynamic', null);\r\n        if (onInitDynamic) {\r\n            this._onInitDynamic = onInitDynamic.bind(this);\r\n        }\r\n\r\n        this._allowRemoveFirstElement = !!this._getConfigParam('allowRemoveFirstElement', false);\r\n    }\r\n\r\n    _addEvents() {\r\n        super._addEvents();\r\n        const dynamicElements = this.getElements();\r\n        if (!dynamicElements.length) {\r\n            this._addEmptyContent();\r\n        } else {\r\n            dynamicElements.forEach((element, index) => {\r\n                this._bindDynamicContent(element, !index);\r\n            });\r\n        }\r\n        this._onInitDynamic();\r\n        this._onUpdateDynamic();\r\n    }\r\n\r\n    _addEmptyContent() {\r\n        const element = this._prepareDynamicContent(this._getDynamicContent());\r\n        this._insertDynamicContent(element);\r\n        this._bindDynamicContent(element, true);\r\n    }\r\n\r\n    _getDynamicContent() {\r\n        const dynamicElement = this._componentElement.querySelector('.dynamicSubFormTemplate').cloneNode(true);\r\n        dynamicElement.classList.remove('dynamicSubFormTemplate');\r\n        dynamicElement.classList.add('dynamicSubFormContent');\r\n        dynamicElement.style.display = '';\r\n        return dynamicElement;\r\n    }\r\n\r\n    _prepareDynamicContent(content) {\r\n        return content;\r\n    }\r\n\r\n    _insertDynamicContent(content) {\r\n        const dynamicElements = this.getElements();\r\n        if (!dynamicElements.length) {\r\n            render(this._componentElement, content, 'top');\r\n        } else {\r\n            render(dynamicElements[dynamicElements.length - 1], content, 'after');\r\n        }\r\n    }\r\n\r\n    _bindDynamicContent() {\r\n        // basic empty implementation\r\n    }\r\n\r\n    _onInitDynamic() {\r\n        // basic empty implementation\r\n    }\r\n\r\n    _onUpdateDynamic() {\r\n        // basic empty implementation\r\n    }\r\n\r\n    deleteContent(content) {\r\n        content.parentNode.removeChild(content);\r\n        this._onUpdateDynamic();\r\n    }\r\n\r\n    addContent(value) {\r\n        const content = this._prepareDynamicContent(this._getDynamicContent(), value);\r\n        this._insertDynamicContent(content);\r\n        this._bindDynamicContent(content, false);\r\n        this._onUpdateDynamic();\r\n    }\r\n\r\n    reset() {\r\n        const dynamicElements = this.getElements();\r\n        if (dynamicElements.length) {\r\n            dynamicElements.forEach(element => {\r\n                element.parentNode.removeChild(element);\r\n            });\r\n            this._onUpdateDynamic();\r\n        }\r\n    }\r\n\r\n    getElements() {\r\n        return this._componentElement.querySelectorAll('.dynamicSubFormContent');\r\n    }\r\n}\r\n\r\nexport class AddRemoveDynamicSubForm extends DynamicSubForm {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n        this._addButtonId = this._getConfigParam('addButtonId', '');\r\n        this._addButtonTitle = this._getConfigParam('addButtonTitle', '');\r\n        this._removeButtonId = this._getConfigParam('removeButtonId', '');\r\n        this._removeButtonTitle = this._getConfigParam('removeButtonTitle', '');\r\n    }\r\n\r\n    _onInitDynamic() {\r\n        const addButton = document.getElementById(this._addButtonId);\r\n        render(addButton, `<div id=\"${this._addButtonId}\" class=\"text-value\"></div>`, 'after');\r\n        addButton.parentNode.removeChild(addButton);\r\n\r\n        new SmallButton({\r\n            id: `dynamicSubFormContentAddButton-${this._id}`,\r\n            title: this._addButtonTitle,\r\n            addCls: 'sb-item-add dynamicSubFormContentAddButton',\r\n            handler: this.addContent.bind(this),\r\n            disabled: this._isAddButtonDisabled(),\r\n            renderTo: this._addButtonId,\r\n        });\r\n    }\r\n\r\n    _isAddButtonDisabled() {\r\n        return false;\r\n    }\r\n\r\n    _bindDynamicContent(content, isFirstElement) {\r\n        if (!isFirstElement || this._allowRemoveFirstElement) {\r\n            const wrapperId = this._initRemoveButtonWrapper(content);\r\n            new SmallButton({\r\n                id: wrapperId,\r\n                title: this._removeButtonTitle,\r\n                addCls: 'sb-item-remove dynamicSubFormContentRemoveButton',\r\n                handler: this.deleteContent.bind(this, content),\r\n                renderTo: wrapperId,\r\n            });\r\n        }\r\n        return content;\r\n    }\r\n\r\n    _initRemoveButtonWrapper(content) {\r\n        const wrapperId = `${this._removeButtonId}-${this._getRandomNumber()}`;\r\n        const inputEls = content.querySelectorAll('.field-value input, .field-value select');\r\n        render(inputEls[inputEls.length - 1], `<span id=\"${wrapperId}\" class=\"${this._removeButtonId}\"></span>`, 'after');\r\n\r\n        return wrapperId;\r\n    }\r\n\r\n    _prepareDynamicContent(content) {\r\n        const newId = Math.floor(1000000 * Math.random());\r\n\r\n        const nameRegExp = new RegExp(`(name=.*?\\\\[?${this._id}\\\\]?\\\\[)dynamicSubFormTemplate(\\\\])`, 'g');\r\n        const idRegExp = new RegExp(`(id=.*?\\\\-?${this._id}-)dynamicSubFormTemplate(-)`, 'g');\r\n\r\n        content.innerHTML = content.innerHTML\r\n            .replace(nameRegExp, `\\$1c${newId}\\$2`)\r\n            .replace(idRegExp, `\\$1c${newId}\\$2`);\r\n\r\n        return content;\r\n    }\r\n\r\n    _onUpdateDynamic() {\r\n        const children = this.getElements();\r\n        document.querySelector(`label[for=\"${this._addButtonId}\"]`).style.display = children.length ? 'none' : '';\r\n        if (children.length) {\r\n            children.forEach((child, index) => {\r\n                const labels = child.querySelectorAll('label');\r\n                labels[labels.length - 1].style.display = index ? 'none' : '';\r\n            });\r\n        }\r\n    }\r\n\r\n    addContent(event) {\r\n        super.addContent();\r\n        event.stopPropagation();\r\n        event.preventDefault();\r\n    }\r\n\r\n    deleteContent(content, event) {\r\n        super.deleteContent(content);\r\n        event.stopPropagation();\r\n        event.preventDefault();\r\n    }\r\n}\r\n\r\n// TODO EXTDOCKER-50: Cannot open docker extension: Cannot read property 'push' of undefined\r\nDynamicSubForm.subclasses = [];\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Component } from './component';\r\n\r\n/**\r\n * Component with custom inner html.\r\n *\r\n * Example usage:\r\n *\r\n *     @example\r\n *     new Box({\r\n *         renderTo: document.body,\r\n *         html: '<h1>Heading 1</h1><p>Paragraph</p>'\r\n *     });\r\n */\r\nexport class Box extends Component {\r\n    /**\r\n     * @cfg {String} html Inner html of the box.\r\n     */\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        this._componentElement.innerHTML = this._getConfigParam('html', '');\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Component } from './component';\r\n\r\n/**\r\n * Example usage:\r\n *\r\n *     @example\r\n *     new Gauge({\r\n *         renderTo: document.body,\r\n *         value: 75\r\n *     });\r\n */\r\nexport class Gauge extends Component {\r\n    /**\r\n     * @cfg {Number} value\r\n     */\r\n\r\n    _initConfiguration(config) {\r\n        super._initConfiguration({\r\n            cls: 'progress progress-sm',\r\n            ...config,\r\n        });\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        this.setProgress(this._getConfigParam('value', ''));\r\n    }\r\n\r\n    setProgress(value) {\r\n        this._componentElement.innerHTML = `<div class=\"progress-bar\" style=\"width: ${value}%\"></div>`;\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { ModalDialogBox } from './modal-dialog-box';\r\nimport addStatusMessage from './addStatusMessage';\r\nimport clearStatusMessages from './clearStatusMessages';\r\nimport render from './render';\r\nimport ce from './createElement';\r\n\r\nexport class PopupForm extends ModalDialogBox {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration({\r\n            cls: 'popup-panel',\r\n            ...config,\r\n        });\r\n\r\n        this._popupContentAreaId = `${this._id}-popup-content-area`;\r\n        this._titleAreaId = `${this._id}-title-area`;\r\n        this._hintAreaId = `${this._id}-hint-area`;\r\n        this._hint1AreaId = `${this._id}-hint1-area`;\r\n        this._boxAreaId = `${this._id}-box-area`;\r\n        this._contentAreaId = `${this._id}-content-area`;\r\n\r\n        this._actionButtonsId = `${this._id}-action-buttons`;\r\n        this._leftActionButtonsAreaId = `${this._id}-left-action-buttons-area`;\r\n        this._rightActionButtonsAreaId = `${this._id}-right-action-buttons-area`;\r\n\r\n        this._titleCls = this._getConfigParam('titleCls', '');\r\n        this._scrollable = this._getConfigParam('scrollable');\r\n        this._fullHeight = this._getConfigParam('fullHeight');\r\n        this._isRemoved = false;\r\n\r\n        if (this._scrollable) {\r\n            this._cls += ' popup-panel-scrollable';\r\n        }\r\n\r\n        if (this._fullHeight) {\r\n            this._cls += ' popup-panel-full-height';\r\n        }\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n        render(this._componentElement, this.view());\r\n        this.show();\r\n    }\r\n\r\n    view() {\r\n        return ce('.popup-wrapper', ce('.popup-container', [\r\n            ce('.popup-heading', ce('.popup-heading-area', [\r\n                ce('span.popup-heading-actions', this._getHeadingActions()),\r\n                ce(`h2.${this._titleCls}`,\r\n                    ce(`span#${this._titleAreaId}`, {\r\n                        title: this._getConfigParam('title'),\r\n                    }, this._getConfigParam('title')),\r\n                ),\r\n            ])),\r\n            ce('.popup-content', ce(`#${this._popupContentAreaId}.popup-content-area`,\r\n                this._getContentArea(),\r\n            )),\r\n        ]));\r\n    }\r\n\r\n    _getHeadingActions() {\r\n        return '';\r\n    }\r\n\r\n    _getContentArea() {\r\n        return [\r\n            ce(`p#${this._hint1AreaId}`),\r\n            ce(`span#${this._hintAreaId}`),\r\n            this._getBoxArea(),\r\n            this._getButtonsArea(),\r\n        ];\r\n    }\r\n\r\n    _getBoxArea() {\r\n        return ce(`#${this._boxAreaId}.form-box`, ce('.box-area', ce('.content',\r\n            ce(`#${this._contentAreaId}.content-area`),\r\n        )));\r\n    }\r\n\r\n    _getButtonsArea() {\r\n        let buttonsRow = ce(`#${this._rightActionButtonsAreaId}.field-value`, ' ');\r\n        if (this._getConfigParam('singleRowButtons')) {\r\n            buttonsRow = ce('.single-row', buttonsRow);\r\n        } else {\r\n            buttonsRow = [\r\n                ce(`#${this._leftActionButtonsAreaId}.field-name`, ' '),\r\n                buttonsRow,\r\n            ];\r\n        }\r\n        return ce(`#${this._actionButtonsId}.btns-box`, ce('.box-area', ce('.form-row', buttonsRow)));\r\n    }\r\n\r\n    toggleButtonsArea(bool) {\r\n        if (this._scrollable) {\r\n            this._componentElement.classList[bool ? 'add' : 'remove']('popup-panel-scrollable');\r\n        }\r\n        document.getElementById(this._actionButtonsId).style.display = bool ? '' : 'none';\r\n    }\r\n\r\n    setBoxType(type) {\r\n        document.getElementById(this._boxAreaId).className = type;\r\n        if ('list-box' === type) {\r\n            document.getElementById(this._actionButtonsId).classList.add('no-separator');\r\n            document.getElementById(this._actionButtonsId).classList.add('simple-box');\r\n        }\r\n        if ('form-box' === type) {\r\n            document.getElementById(this._actionButtonsId).classList.remove('no-separator');\r\n            document.getElementById(this._actionButtonsId).classList.remove('simple-box');\r\n        }\r\n        if ('fm-box' === type) {\r\n            document.getElementById(this._boxAreaId).className = 'list-box';\r\n            document.getElementById(this._actionButtonsId).classList.add('no-separator');\r\n        }\r\n    }\r\n\r\n    /**\r\n     * @param {String} cls\r\n     */\r\n    setTitleType(cls) {\r\n        document.getElementById(this._titleAreaId).parentNode.className = cls;\r\n    }\r\n\r\n    /**\r\n     * @param {String} text\r\n     */\r\n    setTitle(text) {\r\n        document.getElementById(this._titleAreaId).innerHTML = text;\r\n        document.getElementById(this._titleAreaId).setAttribute('title', text);\r\n    }\r\n\r\n    /**\r\n     * @param {String} text\r\n     */\r\n    setHint(text) {\r\n        if (text) {\r\n            document.getElementById(this._hintAreaId).innerHTML = text;\r\n            document.getElementById(this._hintAreaId).style.display = '';\r\n        } else {\r\n            document.getElementById(this._hintAreaId).style.display = 'none';\r\n        }\r\n    }\r\n\r\n    /**\r\n     * @param {String} text\r\n     */\r\n    setHint1(text) {\r\n        if (text) {\r\n            document.getElementById(this._hint1AreaId).innerHTML = text;\r\n            document.getElementById(this._hint1AreaId).style.display = '';\r\n        } else {\r\n            document.getElementById(this._hint1AreaId).style.display = 'none';\r\n        }\r\n    }\r\n\r\n    /**\r\n     * Remove this component.\r\n     */\r\n    remove() {\r\n        this._isRemoved = true;\r\n        this._renderTarget.parentNode.removeChild(this._renderTarget);\r\n    }\r\n\r\n    /**\r\n     * @param {String} title\r\n     * @param {Function} handler\r\n     * @param {Boolean} [isDefault]\r\n     * @param {Boolean} [isAction]\r\n     * @param {Object} [params]\r\n     * @returns {Element}\r\n     */\r\n    addRightButton(title, handler, isDefault, isAction, params) {\r\n        const button = this._createButton(title, handler, isDefault, isAction, params);\r\n        render(document.getElementById(this._rightActionButtonsAreaId), button);\r\n        return button;\r\n    }\r\n\r\n    /**\r\n     * @param {String} title\r\n     * @param {Function} handler\r\n     * @param {Boolean} [isDefault]\r\n     * @param {Boolean} [isAction]\r\n     * @param {Object} [params]\r\n     * @returns {Element}\r\n     */\r\n    addLeftButton(title, handler, isDefault, isAction, params) {\r\n        const button = this._createButton(title, handler, isDefault, isAction, params);\r\n        render(document.getElementById(this._leftActionButtonsAreaId), button);\r\n        return button;\r\n    }\r\n\r\n    /**\r\n     * Clear right buttons area.\r\n     */\r\n    removeRightButtons() {\r\n        document.getElementById(this._rightActionButtonsAreaId).innerHTML = ' ';\r\n    }\r\n\r\n    /**\r\n     * Clear left buttons area.\r\n     */\r\n    removeLeftButtons() {\r\n        document.getElementById(this._leftActionButtonsAreaId).innerHTML = ' ';\r\n    }\r\n\r\n    /**\r\n     * Update list size.\r\n     */\r\n    resizeList() {\r\n        if (this._isRemoved || !document.getElementById(this._contentAreaId)) {\r\n            return;\r\n        }\r\n\r\n        const list = document.getElementById(this._contentAreaId).querySelector('table');\r\n        if (!list) {\r\n            return;\r\n        }\r\n\r\n        const listContainer = document.getElementById(this._contentAreaId).querySelector('.list');\r\n        const buttonsHeight = Element.getHeight(document.getElementById(this._actionButtonsId));\r\n        const top = Element.cumulativeOffset(list)[1];\r\n        const height = Element.getHeight(list);\r\n        // 100px below dialog\r\n        let newHeight = document.body.clientHeight - top - buttonsHeight - 100;\r\n\r\n        if (newHeight > height) {\r\n            listContainer.style.height = '';\r\n            listContainer.classList.remove('with-scroll');\r\n            return;\r\n        }\r\n\r\n        const minHeigh = 150;\r\n        if (newHeight < minHeigh) {\r\n            newHeight = minHeigh;\r\n        }\r\n\r\n        listContainer.style.height = `${newHeight}px`;\r\n        listContainer.style.overflowY = 'auto';\r\n        listContainer.style.overflowX = 'hidden';\r\n        listContainer.classList.add('with-scroll');\r\n    }\r\n\r\n    /**\r\n     * @param {String} title\r\n     * @param {Function} handler\r\n     * @param {Boolean} [isDefault]\r\n     * @param {Boolean} [isAction]\r\n     * @param {Object} [params]\r\n     * @returns {Element}\r\n     * @private\r\n     */\r\n    _createButton(title, handler, isDefault, isAction, params = {}) {\r\n        // eslint-disable-next-line react/button-has-type\r\n        const button = document.createElement('button');\r\n        Object.keys(params).forEach(name => {\r\n            if (params[name] === true) {\r\n                button.setAttribute(name, name);\r\n            } else if (params[name] !== null && params[name] !== false) {\r\n                button.setAttribute(name, params[name]);\r\n            }\r\n        });\r\n        button.classList.add('btn');\r\n        if (isAction) {\r\n            button.classList.add('action');\r\n        }\r\n\r\n        button.type = isDefault ? 'submit' : 'button';\r\n        button.value = '';\r\n        button.innerHTML = title;\r\n\r\n        button.addEventListener(\r\n            'click',\r\n            event => {\r\n                this._onClick(event, handler.bind(this));\r\n            },\r\n        );\r\n\r\n        return button;\r\n    }\r\n\r\n    _updateButton(button, config) {\r\n        $H(config).each(({ key, value }) => {\r\n            switch (key) {\r\n                case 'title':\r\n                    button.innerHTML = value;\r\n                    break;\r\n                case 'disabled':\r\n                    button.disabled = !!value;\r\n                    if (value) {\r\n                        button.classList.add('disabled');\r\n                    } else {\r\n                        button.classList.remove('disabled');\r\n                    }\r\n                    break;\r\n            }\r\n        });\r\n    }\r\n\r\n    _onClick(event, handler) {\r\n        event.preventDefault();\r\n        event.stopPropagation();\r\n        handler(event);\r\n    }\r\n\r\n    _addEvents() {\r\n        super._addEvents();\r\n\r\n        if (document.getElementById(this._hintAreaId)) {\r\n            document.getElementById(this._hintAreaId).style.display = 'none';\r\n        }\r\n        if (document.getElementById(this._hint1AreaId)) {\r\n            document.getElementById(this._hint1AreaId).style.display = 'none';\r\n        }\r\n    }\r\n\r\n    _clearMessages() {\r\n        const contentElement = document.getElementById(this._popupContentAreaId);\r\n\r\n        ['.msg-error', '.msg-info', '.msg-warning'].forEach(msgClass => {\r\n            contentElement.querySelectorAll(msgClass).forEach(messageElement => {\r\n                messageElement.parentNode.removeChild(messageElement);\r\n            });\r\n        });\r\n    }\r\n\r\n    _addErrorMessage(message) {\r\n        this._addStatusMessage('error', message);\r\n    }\r\n\r\n    _addStatusMessage(status, message) {\r\n        render(document.getElementById(this._popupContentAreaId), (\r\n            `<div class=\"msg-box msg-${status}\">` +\r\n                '<div>' +\r\n                    '<div>' +\r\n                        '<div>' +\r\n                            '<div>' +\r\n                                '<div>' +\r\n                                    `<div class=\"msg-content\">${message}</div>` +\r\n                                '</div>' +\r\n                            '</div>' +\r\n                        '</div>' +\r\n                    '</div>' +\r\n                '</div>' +\r\n            '</div>'\r\n        ), 'top');\r\n    }\r\n\r\n    _userError(error) {\r\n        clearStatusMessages();\r\n        addStatusMessage('error', error);\r\n        this._close();\r\n    }\r\n\r\n    _internalError(error) {\r\n        clearStatusMessages();\r\n        addStatusMessage('error', `Internal error: ${error}`);\r\n        this._close();\r\n    }\r\n}\r\n\r\n// TODO EXTDOCKER-50: Cannot open docker extension: Cannot read property 'push' of undefined\r\nPopupForm.subclasses = [];\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { PopupForm } from './popup-form';\r\nimport { getComponent } from './component';\r\nimport prepareUrl from './prepareUrl';\r\nimport render from './render';\r\n\r\nexport class AjaxPopupForm extends PopupForm {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._url = this._getConfigParam('url');\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        this._componentElement.querySelector('.popup-content-area').innerHTML = `<div class=\"ajax-loading\">${this.lmsg('waitMsg')}</div>`;\r\n        new Ajax.Request(prepareUrl(this._url), {\r\n            method: 'get',\r\n            onSuccess: this._onSuccess.bind(this),\r\n        });\r\n    }\r\n\r\n    _onSuccess(transport) {\r\n        render(this._componentElement.querySelector('.popup-content-area'), transport.responseText, 'inner');\r\n        setTimeout(() => {\r\n            this._componentElement.querySelector('form').setAttribute('action', prepareUrl(this._url));\r\n            const cancelBtn = getComponent('btn-cancel');\r\n            cancelBtn.removeEventObserver('click', cancelBtn._handler);\r\n            cancelBtn._handler = () => {\r\n                this.hide();\r\n            };\r\n            cancelBtn.addEventObserver('click', cancelBtn._handler);\r\n        }, 10);\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { ModalDialogBox } from './modal-dialog-box';\r\nimport render from './render';\r\nimport ce from './createElement';\r\n\r\nimport './Popup.less';\r\n\r\nclass Popup extends ModalDialogBox {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._popupContentAreaId = `${this._id}-popup-content-area`;\r\n        this._titleAreaId = `${this._id}-title-area`;\r\n        this._actionButtonsId = `${this._id}-action-buttons`;\r\n        this._rightActionButtonsAreaId = `${this._id}-right-action-buttons-area`;\r\n\r\n        this._contentHeight = this._getConfigParam('contentHeight', null);\r\n        this._closeButtonEnabled = this._getConfigParam('closeButtonEnabled', false);\r\n        this._cls = this._getConfigParam('popupCls', 'popup-panel');\r\n        this._titleCls = this._getConfigParam('titleCls', '');\r\n        this._buttons = this._getConfigParam('buttons', []);\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        const title = this._getConfigParam('title', '');\r\n\r\n        this._updateComponentElement(\r\n            ce('.popup-wrapper',\r\n                ce('.popup-container',\r\n                    ce('.popup-heading',\r\n                        ce('.popup-heading-area',\r\n                            this._closeButtonEnabled ? ce('span.close', {\r\n                                id: `${this._id}-close`,\r\n                                onrender: el => {\r\n                                    el.addEventListener('click', event => {\r\n                                        this._onCloseClick(event);\r\n                                    });\r\n                                },\r\n                            }) : null,\r\n                            ce(`h2.${this._titleCls}`,\r\n                                ce('span', { id: this._titleAreaId, title }, title),\r\n                            ),\r\n                        ),\r\n                    ),\r\n                    ce('.popup-content',\r\n                        ce('.popup-content-area', {\r\n                            id: this._popupContentAreaId,\r\n                            style: this._contentHeight ? `height:${this._contentHeight}px;` : null,\r\n                        }, this._getContentArea()),\r\n                    ),\r\n                ),\r\n            ),\r\n        );\r\n    }\r\n\r\n    _getContentArea() {\r\n        let buttonsArea = '';\r\n        if (this._buttons.length > 0) {\r\n            buttonsArea = this._getButtonsArea();\r\n        }\r\n        const formId = `${this.getId()}-form`;\r\n        const content = this._getConfigParam('content', '');\r\n\r\n        if (typeof content === 'object') {\r\n            return ce('form', { id: formId }, content, buttonsArea);\r\n        }\r\n\r\n        return `<form id=\"${formId}\">${content}${buttonsArea}</form>`;\r\n    }\r\n\r\n    _getButtonsArea() {\r\n        return (\r\n            `<div class=\"btns-box\" id=\"${this._actionButtonsId}\">` +\r\n                '<div class=\"box-area\">' +\r\n                    '<div class=\"form-row\">' +\r\n                        '<div class=\"single-row\">' +\r\n                            `<div class=\"field-value\" id=\"${this._rightActionButtonsAreaId}\"> </div>` +\r\n                        '</div>' +\r\n                    '</div>' +\r\n                '</div>' +\r\n            '</div>'\r\n        );\r\n    }\r\n\r\n    _addEvents() {\r\n        super._addEvents();\r\n\r\n        this._buttons.each(buttonDesc => {\r\n            let buttonId = '';\r\n            if ('undefined' !== typeof buttonDesc.id) {\r\n                buttonId = ` id=\"${buttonDesc.id}\" `;\r\n            }\r\n            if ('undefined' === typeof buttonDesc.class) {\r\n                buttonDesc.class = '';\r\n            }\r\n            let buttonDisabled = '';\r\n            if ('undefined' !== typeof buttonDesc.disabled && buttonDesc.disabled) {\r\n                buttonDisabled = 'disabled=\"disabled\"';\r\n            }\r\n            const buttonContainer = document.createElement('span');\r\n            buttonContainer.className = `btn ${buttonDesc.class}`;\r\n            buttonContainer.innerHTML = `<button ${buttonId} value=\"\" type=\"button\" ${buttonDisabled}>${buttonDesc.title}</button>`;\r\n            buttonContainer.querySelector('button').addEventListener('click', event => {\r\n                buttonDesc.handler(event, this);\r\n            });\r\n            render(document.getElementById(this._rightActionButtonsAreaId), buttonContainer);\r\n        });\r\n\r\n        this.show();\r\n    }\r\n\r\n    _onCloseClick() {\r\n        this.hide();\r\n    }\r\n}\r\n\r\n// TODO EXTNODEJS-90: Eliminate Class.create() usage for Jsw classes\r\n// TODO EXTDOCKER-50: Cannot open docker extension: Cannot read property 'push' of undefined\r\nPopup.subclasses = [];\r\n\r\nexport default Popup;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport ce from './createElement';\r\nimport { Component } from './component';\r\nimport addStatusMessage from './addStatusMessage';\r\nimport clearStatusMessages from './clearStatusMessages';\r\nimport showInternalError from './showInternalError';\r\nimport prepareUrl from './prepareUrl';\r\nimport addUrlParams from './addUrlParams';\r\nimport render from './render';\r\nimport escapeHtml from './escapeHtml';\r\n\r\nimport './double-list-selector.less';\r\n\r\nexport class DoubleListSelector extends Component {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n        this._cls = 'doubleListSelect';\r\n        this._name = this._getConfigParam('name', '');\r\n        this._list = this._getConfigParam('list', $A());\r\n        this._dataUrl = this._getConfigParam('dataUrl', null);\r\n        this._selectedMarked = 0;\r\n        this._unselectedMarked = 0;\r\n        this._prevSelectedItem = -1;\r\n        this._isSearchable = this._getConfigParam('isSearchable', false);\r\n        this._isLarge = this._getConfigParam('isLarge', false);\r\n    }\r\n\r\n    _initList() {\r\n        const elements = {};\r\n        this._list.each((element, index) => {\r\n            element.marked = false;\r\n            if ('undefined' === typeof element.selected) {\r\n                element.selected = false;\r\n            }\r\n\r\n            this._initListItem(element, index, true);\r\n            this._initListItem(element, index, false);\r\n            elements[element.id] = element.selected;\r\n        });\r\n        this._originalSelection = elements;\r\n        this._initInputElement(elements);\r\n    }\r\n\r\n    _initComponentElement() {\r\n        this._componentElement = document.getElementById(this._applyTargetId);\r\n        this._componentElement.classList.add('double-list-select');\r\n        this._componentElement.classList.add('dls-icons-1');\r\n        if (this._isLarge) {\r\n            this._componentElement.classList.add('dls-large');\r\n        }\r\n\r\n        const ajaxLoading = null === this._dataUrl ? ''\r\n            : `<div class=\"ajax-loading\" style=\"display: none;\">${this.lmsg('loadingTitle')}</div>`;\r\n\r\n        this._updateComponentElement([\r\n            ce('div.dls-first-box',\r\n                this._isSearchable ? this._getSearchControl('unselected') : null,\r\n                ce('h4', ce('span', this.lmsg('unselectedTitle'))),\r\n                ce('div.dls-box-area', { id: `${this._id}-container-unselected` }, ajaxLoading, ce('ul', { id: `${this._id}-unselected` })),\r\n            ),\r\n            ce('div.dls-second-box',\r\n                this._isSearchable ? this._getSearchControl('selected') : null,\r\n                ce('h4', ce('span', this.lmsg('selectedTitle'))),\r\n                ce('div.dls-box-area', { id: `${this._id}-container-selected` }, ajaxLoading, ce('ul', { id: `${this._id}-selected` })),\r\n            ),\r\n            ce('div.dls-controls', { id: `${this._id}-controls` },\r\n                ce('button.btn.disabled', { type: 'button', id: `${this._id}-submitSelect` }, ce('span.dls-add', '&gt;&gt;')),\r\n                ce('button.btn.disabled', { type: 'button', id: `${this._id}-submitUnselect` }, ce('span.dls-remove', '&lt;&lt;')),\r\n            ),\r\n        ]);\r\n        this._initList();\r\n    }\r\n\r\n    _initListItem(element, index, isSelected) {\r\n        let container = null;\r\n        let isHidden = false;\r\n        if (isSelected) {\r\n            container = document.getElementById(`${this._id}-selected`);\r\n            isHidden = !element.selected;\r\n        } else {\r\n            container = document.getElementById(`${this._id}-unselected`);\r\n            isHidden = element.selected;\r\n        }\r\n\r\n        const item = ce(\r\n            'div.dls-item-block',\r\n            ce('b', escapeHtml(element.title)),\r\n            element.description ? ce('span', element.description) : null,\r\n            element.icons?.length ?\r\n                ce(\r\n                    'span.dls-icons',\r\n                    element.icons.map(({ src, title }) => ce(\r\n                        'i.icon',\r\n                        ce('img', { src: `${Jsw.skinUrl}${src}`, title }),\r\n                    )),\r\n                ) :\r\n                null,\r\n        );\r\n\r\n        const listItem = ce('li', {\r\n            id: `${this._id}-${index}-${isSelected ? 'selected' : 'unselected'}-item`,\r\n            style: isHidden ? 'display: none;' : undefined,\r\n            onclick: event => {\r\n                this._toggleItem(index, isSelected, event);\r\n            },\r\n        }, item);\r\n        render(container, listItem);\r\n    }\r\n\r\n    _initInputElement(elements) {\r\n        let inputElement = document.getElementById(`${this._id}-elements`);\r\n        if (!inputElement) {\r\n            inputElement = document.createElement('input');\r\n            inputElement.id = `${this._id}-elements`;\r\n            inputElement.name = this._name;\r\n            inputElement.type = 'hidden';\r\n            this._componentElement.appendChild(inputElement);\r\n        }\r\n        inputElement.value = JSON.stringify(elements);\r\n    }\r\n\r\n    _getSearchControl(columnId) {\r\n        return ce('.dls-search',\r\n            ce('input.search-input.search-empty', {\r\n                id: `${this._id}-search-${columnId}`,\r\n                type: 'text',\r\n                autocomplete: 'off',\r\n                value: this.lmsg('searchTitle'),\r\n                onfocus: e => this.onFocus(e.target),\r\n                onblur: e => this.onBlur(e.target),\r\n                onkeyup: e => this.onToggleSearch(columnId, e.target.value),\r\n            }),\r\n            ce('span.search-button.icon-search', {\r\n                id: `${this._id}-search-button-${columnId}`,\r\n                onmousedown: () => this.onResetSearch(columnId),\r\n            }),\r\n        );\r\n    }\r\n\r\n    _addEvents() {\r\n        document.getElementById(`${this._id}-submitSelect`).addEventListener('click', this._onSubmitSelect.bind(this));\r\n        document.getElementById(`${this._id}-submitUnselect`).addEventListener('click', this._onSubmitUnselect.bind(this));\r\n    }\r\n\r\n    _toggleItem(index, isSelected, event) {\r\n        if (this._list[index].marked) {\r\n            this._unmarkItem(index, isSelected, event);\r\n        } else {\r\n            this._markItem(index, isSelected, event);\r\n        }\r\n    }\r\n\r\n    _markItem(index, isSelected, event) {\r\n        if (('undefined' !== typeof event) && event.shiftKey && (-1 !== this._prevSelectedItem)) {\r\n            const startIndex = Math.min(index, this._prevSelectedItem);\r\n            const finishIndex = Math.max(index, this._prevSelectedItem);\r\n            for (let i = startIndex; i < finishIndex; i++) {\r\n                this._markItem(i, isSelected);\r\n            }\r\n        }\r\n\r\n        this._prevSelectedItem = index;\r\n\r\n        this._list[index].marked = true;\r\n        document.getElementById(`${this._id}-${index}-${isSelected ? 'selected' : 'unselected'}-item`).classList.add('marked');\r\n        this._updateSelectControls(isSelected, true);\r\n    }\r\n\r\n    _unmarkItem(index, isSelected) {\r\n        this._list[index].marked = false;\r\n        document.getElementById(`${this._id}-${index}-${isSelected ? 'selected' : 'unselected'}-item`).classList.remove('marked');\r\n        this._updateSelectControls(isSelected, false);\r\n    }\r\n\r\n    _onSubmitSelect() {\r\n        this._list.each((element, index) => {\r\n            if (element.marked && !element.selected && document.getElementById(`${this._id}-${index}-unselected-item`).style.display !== 'none') {\r\n                this._unmarkItem(index, false);\r\n                element.selected = true;\r\n                this._updateElement(element);\r\n                document.getElementById(`${this._id}-${index}-unselected-item`).style.display = 'none';\r\n                document.getElementById(`${this._id}-${index}-selected-item`).style.display = '';\r\n            }\r\n        });\r\n\r\n        this.onChange();\r\n    }\r\n\r\n    _onSubmitUnselect() {\r\n        this._list.each((element, index) => {\r\n            if (element.marked && element.selected && document.getElementById(`${this._id}-${index}-selected-item`).style.display !== 'none') {\r\n                this._unmarkItem(index, true);\r\n                element.selected = false;\r\n                this._updateElement(element);\r\n                document.getElementById(`${this._id}-${index}-selected-item`).style.display = 'none';\r\n                document.getElementById(`${this._id}-${index}-unselected-item`).style.display = '';\r\n            }\r\n        });\r\n\r\n        this.onChange();\r\n    }\r\n\r\n    _updateElement(element) {\r\n        const elements = JSON.parse(document.getElementById(`${this._id}-elements`).value);\r\n        elements[element.id] = element.selected;\r\n        document.getElementById(`${this._id}-elements`).value = JSON.stringify(elements);\r\n    }\r\n\r\n    onChange() {\r\n        // basic empty implementation\r\n    }\r\n\r\n    onToggleSearch(columnId, searchString) {\r\n        const isSelected = (columnId === 'selected');\r\n        searchString = searchString.trim().toLowerCase();\r\n\r\n        if (searchString.length) {\r\n            this._toggleSearchButtonIcon(columnId, true);\r\n            this._list.each(function (element, index) {\r\n                if (isSelected !== element.selected) {\r\n                    return;\r\n                }\r\n                const item = document.getElementById(`${this._id}-${index}-${columnId}-item`);\r\n                if (this._isSearchMatched(element, searchString)) {\r\n                    if (item.style.display === 'none' && element.marked) {\r\n                        this._updateSelectControls(isSelected, true);\r\n                    }\r\n                    item.style.display = '';\r\n                } else {\r\n                    if (item.style.display !== 'none' && element.marked) {\r\n                        this._updateSelectControls(isSelected, false);\r\n                    }\r\n                    item.style.display = 'none';\r\n                }\r\n            }, this);\r\n        } else {\r\n            this._toggleSearchButtonIcon(columnId, false);\r\n            this._showAllItems(columnId);\r\n        }\r\n    }\r\n\r\n    _isSearchMatched(element, searchString) {\r\n        const searchIndex = 'undefined' === typeof element.searchIndex\r\n            ? element.title\r\n            : element.searchIndex;\r\n\r\n        return -1 !== searchIndex.toLowerCase().indexOf(searchString);\r\n    }\r\n\r\n    onFocus(element) {\r\n        if (this.lmsg('searchTitle') === element.value) {\r\n            element.value = '';\r\n            element.classList.remove('search-empty');\r\n        }\r\n    }\r\n\r\n    onBlur(element) {\r\n        if ('' === element.value) {\r\n            this._resetSearchControl(element);\r\n        }\r\n    }\r\n\r\n    onResetSearch(columnId) {\r\n        this._showAllItems(columnId);\r\n        const element = document.getElementById(`${this._id}-search-${columnId}`);\r\n        this._resetSearchControl(element);\r\n        this._toggleSearchButtonIcon(columnId, false);\r\n    }\r\n\r\n    _showAllItems(columnId) {\r\n        const isSelected = (columnId === 'selected');\r\n        this._list.each((element, index) => {\r\n            if (isSelected === element.selected) {\r\n                const item = document.getElementById(`${this._id}-${index}-${columnId}-item`);\r\n                if (item.style.display === 'none' && element.marked) {\r\n                    this._updateSelectControls(isSelected, true);\r\n                }\r\n                item.style.display = '';\r\n            }\r\n        });\r\n    }\r\n\r\n    _resetSearchControl(element) {\r\n        element.value = this.lmsg('searchTitle');\r\n        element.classList.add('search-empty');\r\n    }\r\n\r\n    _toggleSearchButtonIcon(columnId, isActive) {\r\n        document.getElementById(`${this._id}-search-button-${columnId}`).classList[isActive ? 'add' : 'remove']('search-button-clear');\r\n    }\r\n\r\n    _updateSelectControls(isSelected, setMarked) {\r\n        let counter = isSelected ? this._selectedMarked : this._unselectedMarked;\r\n        const controlId = isSelected ? 'submitUnselect' : 'submitSelect';\r\n\r\n        if (setMarked) {\r\n            counter++;\r\n        } else {\r\n            counter--;\r\n        }\r\n\r\n        document.getElementById(`${this._id}-${controlId}`).classList[counter ? 'remove' : 'add']('disabled');\r\n\r\n        if (isSelected) {\r\n            this._selectedMarked = counter;\r\n        } else {\r\n            this._unselectedMarked = counter;\r\n        }\r\n    }\r\n\r\n    isEmpty() {\r\n        return !this._list.any(function (element) {\r\n            return element.selected;\r\n        });\r\n    }\r\n\r\n    reload(params) {\r\n        if (!this._dataUrl) {\r\n            return;\r\n        }\r\n\r\n        const reloadUrl = addUrlParams(this._dataUrl, params);\r\n        new Ajax.Request(prepareUrl(reloadUrl), {\r\n            method: 'get',\r\n            onSuccess: this._onReloadSuccess.bind(this),\r\n            onFailure: this._onReloadFailure.bind(this),\r\n            onException: this._onReloadException.bind(this),\r\n            onCreate: this._onReloadCreate.bind(this),\r\n            onComplete: this._onReloadComplete.bind(this),\r\n        });\r\n    }\r\n\r\n    _onReloadSuccess(transport) {\r\n        if (!transport.responseText) {\r\n            // :INFO: sometimes happens in FF if you are go to other page during request\r\n            return;\r\n        }\r\n\r\n        let data = {};\r\n        try {\r\n            data = JSON.parse(transport.responseText);\r\n        } catch {\r\n            showInternalError(transport.responseText);\r\n            return;\r\n        }\r\n\r\n        if (data.list) {\r\n            this._list = $A(data.list);\r\n        } else if (data.status) {\r\n            clearStatusMessages();\r\n            $A(data.statusMessages).each(function (message) {\r\n                addStatusMessage(message.status, message.content);\r\n            });\r\n        } else {\r\n            showInternalError('Unable to load list data.');\r\n        }\r\n\r\n        this._initList();\r\n    }\r\n\r\n    _onReloadFailure(transport) {\r\n        showInternalError(transport.responseText);\r\n    }\r\n\r\n    _onReloadException(transport, exception) {\r\n        showInternalError(`${exception}\\n${transport.responseText}`);\r\n    }\r\n\r\n    _onReloadCreate() {\r\n        this._list = $A();\r\n        this._componentElement.querySelectorAll('.dls-box-area').forEach(listArea => {\r\n            listArea.querySelector('ul').innerHTML = '';\r\n            listArea.querySelector('.ajax-loading').style.display = '';\r\n        });\r\n    }\r\n\r\n    _onReloadComplete() {\r\n        this._componentElement.querySelectorAll('.dls-box-area').forEach(listArea => {\r\n            listArea.querySelector('.ajax-loading').style.display = 'none';\r\n        });\r\n    }\r\n\r\n    reset() {\r\n        this._list.forEach(item => {\r\n            item.selected = this._originalSelection[item.id];\r\n        });\r\n\r\n        const list = this._list;\r\n        this._onReloadCreate();\r\n        this._onReloadComplete();\r\n        this._list = list;\r\n\r\n        this._initList();\r\n    }\r\n}\r\n\r\n// TODO PMT-4391: Plesk migrator is broken in Plesk 17.9.1 after cutting core's classes\r\nDoubleListSelector.subclasses = [];\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport ce from './createElement';\r\nimport { DoubleListSelector } from './double-list-selector';\r\nimport render from './render';\r\nimport escapeHtml from './escapeHtml';\r\n\r\nimport './enhanced-double-list-selector.less';\r\n\r\nexport class EnhancedDoubleListSelector extends DoubleListSelector {\r\n    _initComponentElement() {\r\n        this._componentElement = document.getElementById(this._applyTargetId);\r\n        this._componentElement.classList.add('edls');\r\n\r\n        this._updateComponentElement(\r\n            ce('.edls-wrap',\r\n                ce('.edls-box.edls-box-first',\r\n                    ce('.edls-header',\r\n                        ce('.edls-header-title', this.lmsg('unselectedTitle')),\r\n                    ),\r\n                    ce('.edls-box-wrap',\r\n                        this._isSearchable ? this._getSearchControl('unselected') : null,\r\n                        ce('.edls-box-body',\r\n                            ce('ul.edls-list', { id: `${this._id}-unselected` }),\r\n                            ce('.edls-list-empty', { style: 'display: none;' }, ce('span', this.lmsg('unselectedEmpty'))),\r\n                            ce('.edls-ajax-loading', { style: 'display: none;' }, ce('span.ajax-loading', this.lmsg('loadingTitle'))),\r\n                        ),\r\n                    ),\r\n                ),\r\n                ce('.edls-control',\r\n                    ce('.edls-control-wrap',\r\n                        ce('.edls-control-body',\r\n                            ce('.edls-control-text',\r\n                                ce('.edls-control-text-none', this.lmsg('controlText-none')),\r\n                                ce('.edls-control-text-first'),\r\n                                ce('.edls-control-text-second'),\r\n                            ),\r\n                            ce('.edls-control-indicator', ce('i')),\r\n                        ),\r\n                    ),\r\n                ),\r\n                ce('.edls-box.edls-box-second',\r\n                    ce('.edls-header',\r\n                        ce('.edls-header-title', this.lmsg('selectedTitle')),\r\n                    ),\r\n                    ce('.edls-box-wrap',\r\n                        this._isSearchable ? this._getSearchControl('selected') : null,\r\n                        ce('.edls-box-body',\r\n                            ce('ul.edls-list', { id: `${this._id}-selected` }),\r\n                            ce('.edls-list-empty', { style: 'display: none;' }, ce('span', this.lmsg('selectedEmpty'))),\r\n                            ce('.edls-ajax-loading', { style: 'display: none' }, ce('span.ajax-loading', this.lmsg('loadingTitle'))),\r\n                        ),\r\n                    ),\r\n                ),\r\n            ),\r\n        );\r\n        this._initList();\r\n    }\r\n\r\n    _initList() {\r\n        super._initList();\r\n\r\n        this._fixListZebra();\r\n    }\r\n\r\n    _fixListZebra() {\r\n        [document.getElementById(`${this._id}-unselected`), document.getElementById(`${this._id}-selected`)].forEach(list => {\r\n            let count = 0;\r\n            list.querySelectorAll('.edls-item').forEach(el => {\r\n                if (el.style.display !== 'none') {\r\n                    el.classList.add(count % 2 ? 'odd' : 'even');\r\n                    el.classList.remove(count % 2 ? 'even' : 'odd');\r\n                    count++;\r\n                }\r\n            });\r\n            list.parentNode.querySelector('.edls-list-empty').style.display = count ? 'none' : '';\r\n        });\r\n    }\r\n\r\n    _getSearchControl(columnId) {\r\n        return (\r\n            ce('.edls-search',\r\n                ce('span.edls-check', ce('input.checkbox', { type: 'checkbox', value: '' })),\r\n                ce('span.edls-search-control',\r\n                    ce('input.search-input.search-empty', {\r\n                        type: 'text',\r\n                        value: '',\r\n                        autocomplete: 'off',\r\n                        id: `${this._id}-search-${columnId}`,\r\n                        onfocus: e => this.onFocus(e.target),\r\n                        onblur: e => this.onBlur(e.target),\r\n                        onkeyup: e => this.onToggleSearch(columnId, e.target.value),\r\n                    }),\r\n                    ce('input.search-button', {\r\n                        type: 'image',\r\n                        src: require('images/search-input.png'),\r\n                        id: `${this._id}-search-button-${columnId}`,\r\n                        onmousedown: () => this.onResetSearch(columnId),\r\n                        onclick: e => e.preventDefault(),\r\n                    }),\r\n                ),\r\n            )\r\n        );\r\n    }\r\n\r\n    _toggleSearchButtonIcon(columnId, isActive) {\r\n        const inputIcon = document.getElementById(`${this._id}-search-button-${columnId}`);\r\n        inputIcon.classList[isActive ? 'add' : 'remove']('search-button-clear');\r\n        inputIcon.src = isActive\r\n            ? require('images/clear-search.png')\r\n            : require('images/search-input.png');\r\n    }\r\n\r\n    onFocus(element) {\r\n        element.classList.remove('search-empty');\r\n    }\r\n\r\n    _resetSearchControl(element) {\r\n        element.value = '';\r\n        element.classList.add('search-empty');\r\n    }\r\n\r\n    _initListItem(element, index, isSelected) {\r\n        let container = null;\r\n        let isHidden = false;\r\n        if (isSelected) {\r\n            container = document.getElementById(`${this._id}-selected`);\r\n            isHidden = !element.selected;\r\n        } else {\r\n            container = document.getElementById(`${this._id}-unselected`);\r\n            isHidden = element.selected;\r\n        }\r\n\r\n        render(\r\n            container,\r\n            ce(\r\n                'li',\r\n                {\r\n                    id: `${this._id}-${index}-${isSelected ? 'selected' : 'unselected'}-item`,\r\n                    class: 'edls-item',\r\n                    style: isHidden ? 'display: none;' : null,\r\n                    onclick: event => {\r\n                        this._toggleItemSelection(index, isSelected, event);\r\n                    },\r\n                },\r\n                ce(\r\n                    'div',\r\n                    { class: 'edls-item-wrap' },\r\n                    ce(\r\n                        'span',\r\n                        { class: 'edls-check' },\r\n                        ce('input', {\r\n                            type: 'checkbox',\r\n                            class: 'checkbox',\r\n                            value: '',\r\n                            onclick: event => {\r\n                                event.stopPropagation();\r\n                                this._toggleItemCheckbox(event.target, event.target.checked);\r\n                            },\r\n                        }),\r\n                    ),\r\n                    ce('span', { class: 'edls-text' }, this._getItemText(element)),\r\n                ),\r\n            ),\r\n        );\r\n    }\r\n\r\n    _getItemText(element, highlight) {\r\n        let itemIcons = '';\r\n        if (element.icons && element.icons.length) {\r\n            element.icons.each(({ src, title }) => {\r\n                itemIcons += `<i class=\"icon\"><img src=\"${Jsw.skinUrl}${src}\" title=\"${title}\"></i>`;\r\n            });\r\n            itemIcons += ' ';\r\n        }\r\n        let itemText = escapeHtml(element.title);\r\n        if (highlight) {\r\n            itemText = itemText.replace(highlight, `<b class=\"search-result-label\">${highlight}</b>`);\r\n        }\r\n\r\n        return itemIcons + itemText;\r\n    }\r\n\r\n    onToggleSearch(columnId, searchString) {\r\n        const isSelected = (columnId === 'selected');\r\n        searchString = searchString.trim().toLowerCase();\r\n\r\n        if (searchString.length) {\r\n            this._toggleSearchButtonIcon(columnId, true);\r\n            this._list.forEach((element, index) => {\r\n                const item = document.getElementById(`${this._id}-${index}-${columnId}-item`);\r\n                if (this._isSearchMatched(element, searchString)) {\r\n                    item.querySelector('.edls-text').innerHTML = this._getItemText(element, searchString);\r\n                    if (isSelected === element.selected) {\r\n                        item.style.display = '';\r\n                    }\r\n                } else {\r\n                    item.querySelector('.edls-text').innerHTML = this._getItemText(element);\r\n                    const checkbox = item.querySelector('.edls-check input');\r\n                    if (item.style.display !== 'none' && checkbox.checked) {\r\n                        this._toggleItemCheckbox(checkbox, false);\r\n                    }\r\n                    item.style.display = 'none';\r\n                }\r\n            });\r\n        } else {\r\n            this._toggleSearchButtonIcon(columnId, false);\r\n            this._showAllItems(columnId);\r\n        }\r\n    }\r\n\r\n    _showAllItems(columnId) {\r\n        const isSelected = (columnId === 'selected');\r\n        this._list.forEach((element, index) => {\r\n            const item = document.getElementById(`${this._id}-${index}-${columnId}-item`);\r\n            item.querySelector('.edls-text').innerHTML = this._getItemText(element);\r\n            if (isSelected === element.selected) {\r\n                item.style.display = '';\r\n            }\r\n        });\r\n    }\r\n\r\n    _toggleItemSelection(index, isSelected, event, batchMode) {\r\n        event.preventDefault();\r\n        this._list[index].selected = !isSelected;\r\n        this._updateElement(this._list[index]);\r\n        document.getElementById(`${this._id}-${index}-${isSelected ? 'selected' : 'unselected'}-item`).style.display = 'none';\r\n        document.getElementById(`${this._id}-${index}-${isSelected ? 'unselected' : 'selected'}-item`).style.display = '';\r\n        this._toggleItemCheckbox(document.getElementById(`${this._id}-${index}-${isSelected ? 'selected' : 'unselected'}-item`).querySelector('.edls-check input'), false);\r\n        if (!batchMode) {\r\n            this._fixListZebra();\r\n            this.onChange();\r\n        }\r\n    }\r\n\r\n    _toggleItemCheckbox(checkbox, value) {\r\n        checkbox.checked = value;\r\n\r\n        const side = checkbox.closest('.edls-box-first') ? 'first' : 'second';\r\n        const count = checkbox.closest(`.edls-box-${side}`).querySelectorAll('.edls-list .edls-check input:checked').length;\r\n        if (value) {\r\n            checkbox.closest('.edls-item').classList.add('selected');\r\n        } else {\r\n            checkbox.closest('.edls-item').classList.remove('selected');\r\n            checkbox.closest('.edls-box').querySelector('.edls-search .checkbox').checked = false;\r\n        }\r\n        checkbox.closest('.edls').classList[count ? 'add' : 'remove'](`edls-selected-${side}`);\r\n        checkbox.closest('.edls').querySelector(`.edls-control-text-${side}`).innerHTML =\r\n            this.getLocale().formatMessage(`controlText-${side}`, { count });\r\n    }\r\n\r\n    _updateSelectControls() {\r\n        // disable parent implementation\r\n    }\r\n\r\n    _addEvents() {\r\n        const componentElement = this._componentElement;\r\n\r\n        this._componentElement.querySelectorAll('.edls-box-wrap').forEach(el => {\r\n            el.addEventListener('mouseover', event => {\r\n                componentElement.classList.add('edls-over');\r\n                componentElement.classList.add(event.target.closest('.edls-box-first') ? 'edls-over-first' : 'edls-over-second');\r\n                componentElement.classList.remove(event.target.closest('.edls-box-first') ? 'edls-over-second' : 'edls-over-first');\r\n            });\r\n            el.addEventListener('mouseleave', () => {\r\n                if (!componentElement.classList.contains('edls-selected-first') && !componentElement.classList.contains('edls-selected-second')) {\r\n                    componentElement.classList.remove('edls-over');\r\n                    componentElement.classList.remove('edls-over-first');\r\n                    componentElement.classList.remove('edls-over-second');\r\n                }\r\n            });\r\n        });\r\n\r\n        this._componentElement.addEventListener('mouseleave', event => {\r\n            event.target.classList.remove('edls-over');\r\n            event.target.classList.remove('edls-over-first');\r\n            event.target.classList.remove('edls-over-second');\r\n        });\r\n\r\n        this._componentElement.querySelectorAll('.edls-box .edls-search .edls-check input').forEach(element => {\r\n            element.addEventListener('click', () => {\r\n                const value = element.checked;\r\n                element.closest('.edls-box').querySelectorAll('.edls-list .edls-check input').forEach(checkbox => {\r\n                    if (value && checkbox.closest('.edls-item').style.display !== 'none') {\r\n                        this._toggleItemCheckbox(checkbox, true);\r\n                    } else {\r\n                        this._toggleItemCheckbox(checkbox, false);\r\n                    }\r\n                });\r\n            });\r\n        });\r\n\r\n        this._componentElement.querySelector('.edls-control-wrap').addEventListener('click', event => {\r\n            let isSelected;\r\n            if (componentElement.classList.contains('edls-over-first')) {\r\n                isSelected = false;\r\n            } else if (componentElement.classList.contains('edls-over-second')) {\r\n                isSelected = true;\r\n            } else {\r\n                return;\r\n            }\r\n\r\n            this._list.each((element, index) => {\r\n                if (element.selected === isSelected) {\r\n                    const item = document.getElementById(`${this._id}-${index}-${isSelected ? 'selected' : 'unselected'}-item`);\r\n                    if (item.classList.contains('selected')) {\r\n                        this._toggleItemSelection(index, isSelected, event, true);\r\n                    }\r\n                }\r\n            });\r\n            this._fixListZebra();\r\n            this.onChange();\r\n        });\r\n    }\r\n\r\n    _onReloadCreate() {\r\n        this._list = [];\r\n        this._componentElement.querySelectorAll('.edls-box').forEach(listArea => {\r\n            listArea.querySelector('ul').innerHTML = '';\r\n            listArea.querySelector('.edls-ajax-loading').style.display = '';\r\n            listArea.querySelector('.edls-list-empty').style.display = 'none';\r\n        });\r\n    }\r\n\r\n    _onReloadComplete() {\r\n        this._componentElement.querySelectorAll('.edls-box').forEach(listArea => {\r\n            listArea.querySelector('.edls-ajax-loading').style.display = 'none';\r\n        });\r\n    }\r\n}\r\n","module.exports = Jsw.skinUrl + \"/images/search-input.png?9fd99cb66354e116893e88b4f234ca6d\";","module.exports = Jsw.skinUrl + \"/images/clear-search.png?c022c431eedbe669278180412386b137\";","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Component } from './component';\r\nimport render from './render';\r\nimport createElement from './createElement';\r\nimport escapeHtml from './escapeHtml';\r\n\r\nexport class ImageSelector extends Component {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n        const list = this._getConfigParam('list', {});\r\n        this._list = Array.isArray(list) ? $H() : $H(list);\r\n        const captions = this._getConfigParam('captions', {});\r\n        this._captions = Array.isArray(captions) ? $H() : $H(captions);\r\n        this._name = this._getConfigParam('name', '');\r\n        this._value = this._getConfigParam('value', null);\r\n\r\n        this._currentId = `${this._id}-current`;\r\n        this._listId = `${this._id}-list`;\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        this._updateComponentElement((\r\n            `<div class=\"${this._cls}-area\">` +\r\n                `<div id=\"${this._currentId}\" class=\"${this._cls}-current\">` +\r\n                    '<img/>' +\r\n                    `<p>${escapeHtml(this._captions.get('selectedImage'))}</p>` +\r\n                '</div>' +\r\n                `<div id=\"${this._listId}\" class=\"${this._cls}-select clearfix\"></div>` +\r\n            '</div>'\r\n        ));\r\n\r\n        render(this._componentElement, createElement('input', {\r\n            id: `${this._id}-value`,\r\n            name: this._name,\r\n            type: 'hidden',\r\n            value: null,\r\n            onrender: el => {\r\n                this._valueElement = el;\r\n            },\r\n        }));\r\n    }\r\n\r\n    _addEvents() {\r\n        this._list.each(({ key, value }) => {\r\n            this._addImage(key, value);\r\n        });\r\n\r\n        this.set(this._value);\r\n    }\r\n\r\n    _addImage(value, { url, title }) {\r\n        this._componentElement.querySelectorAll(`#${this._listId}`).forEach(target => {\r\n            render(target, createElement('img', {\r\n                src: url,\r\n                alt: title,\r\n                onclick: event => {\r\n                    this._onImageClick(event, value);\r\n                },\r\n            }));\r\n        });\r\n    }\r\n\r\n    _onImageClick(event, value) {\r\n        this.set(value);\r\n    }\r\n\r\n    /**\r\n     * Update component value.\r\n     * @param {String} value\r\n     */\r\n    set(value) {\r\n        this._valueElement.value = value;\r\n        const image = this._list.get(value);\r\n        this._componentElement.querySelectorAll(`#${this._currentId} img`).forEach(target => {\r\n            if (image) {\r\n                target.src = image.url;\r\n                target.alt = image.title;\r\n                target.style.display = '';\r\n            } else {\r\n                target.style.display = 'none';\r\n            }\r\n        });\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Component } from './component';\r\nimport prepareUrl from './prepareUrl';\r\nimport render from './render';\r\n\r\nimport './dynamic-popup-hint.less';\r\n\r\n/**\r\n * @class DynamicPopupHint\r\n * @singleton\r\n */\r\nexport const DynamicPopupHint = {\r\n    windowId: 'ajaxTooltipWindow',\r\n    delay: 0.55,\r\n    _isInitialized: false,\r\n    _currentTooltip: null,\r\n\r\n    _init(cls) {\r\n        if (this._isInitialized) {\r\n            return;\r\n        }\r\n\r\n        this._cls = cls;\r\n        this._initWindowElement();\r\n        this._initWindowEvents();\r\n        this._isInitialized = true;\r\n    },\r\n\r\n    _initWindowElement() {\r\n        render(document.body, `<div id=\"${this.windowId}\" class=\"${this._cls}\" style=\"display: none; z-index: 10000\"></div>`, 'top');\r\n\r\n        const element = document.getElementById(this.windowId);\r\n        element.innerHTML = (\r\n            '<table cellspacing=\"0\" class=\"popup-wrapper\"><tbody><tr><td class=\"popup-container\">' +\r\n                '<div class=\"c1\"><div class=\"c2\"><div class=\"c3\"><div class=\"c4\"><div class=\"c5\">' +\r\n                    '<div class=\"popup-heading\">' +\r\n                        '<div class=\"heading-area\">' +\r\n                            '<span class=\"arrow\"></span>' +\r\n                            `<span class=\"close\" id=\"${this.windowId}-close\"></span>` +\r\n                            `<h4><span id=\"${this.windowId}-title\"></span></h4>` +\r\n                        '</div>' +\r\n                    '</div>' +\r\n                    '<div class=\"popup-content\">' +\r\n                        `<div id=\"${this.windowId}-content\" class=\"popup-content-area\"></div>` +\r\n                    '</div>' +\r\n                '</div></div></div></div></div>' +\r\n            '</td></tr></tbody></table>'\r\n        );\r\n        // TODO Need remove this hack when all popup boxes will use DynamicPopupHint component and hardcoded offset will be removed in css\r\n        element.style.marginTop = 0;\r\n    },\r\n\r\n    _initWindowEvents() {\r\n        document.getElementById(this.windowId).addEventListener('mouseover', this._onWindowMouseOver.bind(this));\r\n        document.getElementById(this.windowId).addEventListener('mouseout', this._onWindowMouseOut.bind(this));\r\n        document.getElementById(`${this.windowId}-close`).addEventListener('click', this._onCloseClick.bind(this));\r\n        document.body.addEventListener('click', this._onCloseClick.bind(this));\r\n        document.getElementById(this.windowId).addEventListener('click', event => {\r\n            event.stopPropagation();\r\n        });\r\n    },\r\n\r\n    _onWindowMouseOver() {\r\n        this._showWindow();\r\n    },\r\n\r\n    _onWindowMouseOut() {\r\n        if (this._currentTooltip.getPlacement() === '') {\r\n            document.getElementById(this.windowId).style.display = 'none';\r\n        }\r\n    },\r\n\r\n    _onCloseClick() {\r\n        document.getElementById(this.windowId).style.display = 'none';\r\n    },\r\n\r\n    set(tooltip) {\r\n        this._init(tooltip.getCls());\r\n        const title = tooltip.getTitle();\r\n        const titleElement = document.getElementById(`${this.windowId}-title`);\r\n        if (false === title) {\r\n            document.getElementById(`${this.windowId}-title`).innerHTML = '';\r\n            titleElement.closest('.popup-heading').style.display = 'none';\r\n        } else {\r\n            document.getElementById(`${this.windowId}-title`).innerHTML = title;\r\n            titleElement.closest('.popup-heading').style.display = '';\r\n        }\r\n        ['left', 'right', 'top', 'bottom'].forEach(className => {\r\n            document.getElementById(this.windowId).classList.remove(className);\r\n        });\r\n        document.getElementById(this.windowId).classList.add(tooltip.getPlacement());\r\n        document.getElementById(this.windowId)\r\n            .querySelector('.heading-area .arrow').style.display = ['left', 'right', 'bottom'].indexOf(tooltip.getPlacement()) !== -1 ? '' : 'none';\r\n        document.getElementById(this.windowId).classList[tooltip.getScrollable() ? 'add' : 'remove']('popup-box-scrollable');\r\n        this._currentTooltip = tooltip;\r\n        this.updateContent(tooltip);\r\n        this._showWindow(tooltip);\r\n    },\r\n\r\n    isSet(tooltip) {\r\n        const element = document.getElementById(this.windowId);\r\n        return element && element.style.display !== 'none' && this._currentTooltip === tooltip;\r\n    },\r\n\r\n    unset() {\r\n        const element = document.getElementById(this.windowId);\r\n        if (element) {\r\n            element.style.display = 'none';\r\n        }\r\n    },\r\n\r\n    updateContent(tooltip) {\r\n        if (this._currentTooltip === tooltip) {\r\n            render(document.getElementById(`${this.windowId}-content`), [\r\n                tooltip.getPlacement() === 'top' ? '<span class=\"arrow\"></span>' : '',\r\n                tooltip.getContent(),\r\n            ], 'inner');\r\n        }\r\n        this._updatePosition();\r\n    },\r\n\r\n    _showWindow() {\r\n        document.getElementById(this.windowId).style.display = '';\r\n        this._updatePosition();\r\n    },\r\n\r\n    _updatePosition() {\r\n        const element = document.getElementById(this.windowId);\r\n        const elementWidth = Element.getWidth(element);\r\n        const elementHeight = Element.getHeight(element);\r\n        const headingElementHeight = Element.getHeight(element.querySelector('.popup-heading'));\r\n        const tooltipElement = this._currentTooltip.getTargetElement();\r\n        const tooltipElementHeight = Element.getHeight(tooltipElement);\r\n        const tooltipElementWidth = Element.getWidth(tooltipElement);\r\n        let offsetLeft = 0;\r\n        let offsetTop = 0;\r\n        const elementRight = Element.cumulativeOffset(tooltipElement).left + elementWidth;\r\n        const viewportRight = document.viewport.getWidth() + document.viewport.getScrollOffsets().left;\r\n\r\n        switch (this._currentTooltip.getPlacement()) {\r\n            case 'top':\r\n                offsetTop -= elementHeight;\r\n                offsetLeft -= (elementWidth - tooltipElementWidth) / 2;\r\n                break;\r\n            case 'bottom':\r\n                offsetTop += tooltipElementHeight;\r\n                offsetLeft -= (elementWidth - tooltipElementWidth) / 2;\r\n                break;\r\n            case 'left':\r\n                offsetTop -= (headingElementHeight - tooltipElementHeight) / 2;\r\n                offsetLeft -= elementWidth;\r\n                break;\r\n            case 'right':\r\n                offsetTop -= (headingElementHeight - tooltipElementHeight) / 2;\r\n                offsetLeft += tooltipElementWidth;\r\n                break;\r\n        }\r\n        if (elementRight + offsetLeft > viewportRight) {\r\n            offsetLeft -= elementRight + offsetLeft - viewportRight + 10;\r\n        }\r\n\r\n        Element.clonePosition(element, tooltipElement, {\r\n            offsetLeft,\r\n            offsetTop,\r\n            setWidth: false,\r\n            setHeight: false,\r\n        });\r\n    },\r\n};\r\n\r\nDynamicPopupHint.Instance = class Instance extends Component {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._targetElement = this._getConfigParam('target', '');\r\n        if (typeof this._targetElement === 'string') {\r\n            this._targetElement = document.getElementById(this._targetElement);\r\n        }\r\n        this._title = this._getConfigParam('title', '');\r\n        this._waitMsg = this._getConfigParam('waitMsg', '');\r\n        this._url = this._getConfigParam('url', '');\r\n        this._cls = this._getConfigParam('cls', 'popup-box');\r\n        this._scrollable = this._getConfigParam('scrollable', true);\r\n        this._placement = this._getConfigParam('placement', '');\r\n\r\n        this._content = this._getConfigParam('content', `<div class=\"ajax-loading\">${this._waitMsg}</div>`);\r\n        this._contentLoaded = false;\r\n        this._delayedExecuter = null;\r\n    }\r\n\r\n    _initComponentElement() {\r\n        this._initTargetEvents();\r\n    }\r\n\r\n    _initTargetEvents() {\r\n        if (this._placement !== '') {\r\n            this._targetElement.addEventListener('click', event => {\r\n                event.stopPropagation();\r\n                event.preventDefault();\r\n                if (DynamicPopupHint.isSet(this)) {\r\n                    DynamicPopupHint.unset();\r\n                } else {\r\n                    DynamicPopupHint.set(this);\r\n                }\r\n            });\r\n        } else {\r\n            this._targetElement.addEventListener('mouseover', this.set.bind(this));\r\n            this._targetElement.addEventListener('mouseout', this.unset.bind(this));\r\n        }\r\n    }\r\n\r\n    _loadContent() {\r\n        new Ajax.Request(prepareUrl(this._url), {\r\n            method: 'get',\r\n            onSuccess: transport => {\r\n                if ('' === transport.responseText) {\r\n                    return;\r\n                }\r\n\r\n                this._content = transport.responseText;\r\n                DynamicPopupHint.updateContent(this);\r\n            },\r\n        });\r\n\r\n        this._contentLoaded = true;\r\n    }\r\n\r\n    setContent(content) {\r\n        this._contentLoaded = true;\r\n        this._content = content;\r\n    }\r\n\r\n    set() {\r\n        this._delayedExecuter = new PeriodicalExecuter(pe => {\r\n            DynamicPopupHint.set(this);\r\n            pe.stop();\r\n            this._delayedExecuter = null;\r\n        }, DynamicPopupHint.delay);\r\n    }\r\n\r\n    unset() {\r\n        if (this._delayedExecuter) {\r\n            this._delayedExecuter.stop();\r\n            this._delayedExecuter = null;\r\n        }\r\n    }\r\n\r\n    getTitle() {\r\n        return this._title;\r\n    }\r\n\r\n    getContent() {\r\n        if (!this._contentLoaded && this._url) {\r\n            this._loadContent();\r\n        }\r\n\r\n        return this._content;\r\n    }\r\n\r\n    getTargetElement() {\r\n        return this._targetElement;\r\n    }\r\n\r\n    getCls() {\r\n        return this._cls;\r\n    }\r\n\r\n    getScrollable() {\r\n        return this._scrollable;\r\n    }\r\n\r\n    getPlacement() {\r\n        return this._placement;\r\n    }\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\n/* eslint-disable react/require-render-return */\r\n\r\nimport { Component } from './component';\r\nimport { DynamicPopupHint } from './dynamic-popup-hint';\r\nimport Locale from './Locale';\r\nimport render from './render';\r\nimport ce from './createElement';\r\nimport estimatePassword from '../helpers/estimatePassword';\r\n\r\nimport './password-meter.less';\r\n\r\nexport class PasswordMeter extends Component {\r\n    _initConfiguration({ observe, ...config }) {\r\n        this._passwordElement = document.getElementById(observe);\r\n        this._passwordElement.addEventListener('keyup', this._onChange.bind(this));\r\n        // Temporary workaround for custom prototype's event 'plesk:passwordGenerated'\r\n        this._passwordElement.addEventListener('dataavailable', this._onChange.bind(this));\r\n\r\n        super._initConfiguration({\r\n            id: `${this._passwordElement.id}-meter`,\r\n            tag: 'span',\r\n            cls: 'password-strength',\r\n            locale: Locale.getSection('components.password.meter'),\r\n            ...config,\r\n        });\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        render(this._componentElement, [\r\n            ce('i', {\r\n                onrender: el => {\r\n                    this._progress = el;\r\n                },\r\n            }),\r\n            ce('b', {\r\n                onrender: el => {\r\n                    this._verdict = el;\r\n                },\r\n            }),\r\n        ]);\r\n    }\r\n\r\n    setProgress(strength) {\r\n        const level = ['VeryWeak', 'Weak', 'Medium', 'Strong', 'VeryStrong'].indexOf(strength);\r\n        this._progress.setAttribute('style', `width: ${(level + 1) * 20}%`);\r\n    }\r\n\r\n    async _onChange() {\r\n        const { password, strength, suggestions } = await estimatePassword(this._passwordElement.value);\r\n        if (password !== this._passwordElement.value) {\r\n            return;\r\n        }\r\n\r\n        this._updateVisibility();\r\n        this.setProgress(strength);\r\n        this._updateHint(suggestions);\r\n        this._updateVerdict(strength);\r\n        this._updateColor(strength);\r\n    }\r\n\r\n    _updateVisibility() {\r\n        if (this._passwordElement.value === '') {\r\n            this._componentElement.style.display = 'none';\r\n            this._hintContainer.style.display = 'none';\r\n        } else {\r\n            this._componentElement.style.display = '';\r\n            this._hintContainer.style.display = '';\r\n        }\r\n    }\r\n\r\n    _updateColor(strength) {\r\n        const newClass = `password-strength${strength.replace(/[A-Z]/g, c => `-${c.toLowerCase()}`)}`;\r\n        if (this._oldClass === newClass) {\r\n            return;\r\n        }\r\n        if (this._oldClass) {\r\n            this._componentElement.classList.remove(this._oldClass);\r\n        }\r\n        this._componentElement.classList.add(newClass);\r\n        this._oldClass = newClass;\r\n    }\r\n\r\n    _updateHint(suggestions) {\r\n        this._tooltip.setContent(suggestions.length ? [\r\n            this.lmsg('description'),\r\n            ce('br'),\r\n            ce('ul', suggestions.map(suggestion => ce('li.asd', suggestion))),\r\n        ] : this.lmsg('yourPasswordIsStrong'));\r\n    }\r\n\r\n    _updateVerdict(strength) {\r\n        this._verdict.innerHTML = this.lmsg(`verdict${strength}`);\r\n    }\r\n\r\n    render() {\r\n        super.render();\r\n\r\n        render(this._componentElement, ce('span.hint-inline.hint-info', {\r\n            onrender: el => {\r\n                this._hintContainer = el;\r\n            },\r\n        }, ce('span', {\r\n            onrender: el => {\r\n                this._tooltip = new DynamicPopupHint.Instance({\r\n                    title: this.lmsg('title'),\r\n                    waitMsg: '',\r\n                    url: '',\r\n                    placement: 'right',\r\n                    target: el,\r\n                });\r\n            },\r\n        }, '(?)')), 'after');\r\n        this._updateVisibility();\r\n\r\n        if (this._passwordElement.value) {\r\n            this._onChange();\r\n        }\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { gql } from '@apollo/client';\r\nimport { Locale } from 'jsw';\r\nimport apolloClient from '../apolloClient';\r\n\r\nconst PASSWORD_ESTIMATION_QUERY = gql`\r\n    query PasswordEstimation($password: String!) {\r\n        passwordEstimation(password: $password) {\r\n            level\r\n            suggestions\r\n        }\r\n    }\r\n`;\r\n\r\nconst defaultEstimateFn = async password => {\r\n    const { data: { passwordEstimation } } = await apolloClient.query({\r\n        query: PASSWORD_ESTIMATION_QUERY,\r\n        variables: { password },\r\n    });\r\n    return passwordEstimation;\r\n};\r\n\r\nexport default async (password, estimateFn = defaultEstimateFn) => {\r\n    const [{ level, suggestions }, locale] = await Promise.all([\r\n        estimateFn(password),\r\n        Locale.loadSection('components.password.suggestions'),\r\n    ]);\r\n\r\n    return {\r\n        password,\r\n        strength: ['VeryWeak', 'Weak', 'Medium', 'Strong'][level] ?? 'VeryStrong',\r\n        suggestions: suggestions.map(suggestion => locale.lmsg(suggestion)),\r\n    };\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { ApolloClient, InMemoryCache, defaultDataIdFromObject, from } from '@apollo/client';\r\nimport { onError } from '@apollo/client/link/error';\r\nimport { createUploadLink } from 'apollo-upload-client';\r\nimport { SentryLink } from 'apollo-link-sentry';\r\n\r\nconst sentryLink = new SentryLink({\r\n    setTransaction: false,\r\n});\r\n\r\nconst errorLink = onError(error => {\r\n    if (error.networkError?.statusCode === 400) {\r\n        window.location.reload();\r\n    }\r\n});\r\n\r\nconst headers = {\r\n    'X-Requested-With': 'XMLHttpRequest',\r\n};\r\n\r\nconst tokenEl = document.getElementById('forgery_protection_token');\r\nif (tokenEl) {\r\n    headers['X-Forgery-Protection-Token'] = tokenEl.content;\r\n}\r\n\r\nconst uploadLink = createUploadLink({\r\n    uri: '/cp/graphql',\r\n    headers,\r\n});\r\n\r\nconst apolloClient = new ApolloClient({\r\n    link: from([errorLink, sentryLink, uploadLink]),\r\n    cache: new InMemoryCache({\r\n        typePolicies: {\r\n            AdditionalKey: {\r\n                keyFields: ['keyNumber'],\r\n            },\r\n            Domain: {\r\n                fields: {\r\n                    hosting: {\r\n                        merge: true,\r\n                    },\r\n                },\r\n            },\r\n            ExtensionTab: {\r\n                keyFields: false,\r\n            },\r\n            SiteButton: {\r\n                keyFields: false,\r\n            },\r\n            Site: {\r\n                keyFields: ['id'],\r\n            },\r\n            ConfigSectionGdprCookie: {\r\n                keyFields: ['name'],\r\n            },\r\n            User: {\r\n                keyFields: ['login'],\r\n            },\r\n            UserLogo: {\r\n                merge: true,\r\n            },\r\n            UserPermissions: {\r\n                merge: true,\r\n            },\r\n            Mode: {\r\n                merge: true,\r\n            },\r\n            Notification: {\r\n                keyFields: [],\r\n            },\r\n            PrimaryKey: {\r\n                keyFields: ['pleskKeyId'],\r\n            },\r\n            WebsitesDiagnostic: {\r\n                keyFields: [],\r\n                fields: {\r\n                    settings: {\r\n                        merge: true,\r\n                    },\r\n                },\r\n            },\r\n            ServerMail: {\r\n                keyFields: [],\r\n            },\r\n            Capability: {\r\n                keyFields: [],\r\n                fields: {\r\n                    mailServer: {\r\n                        merge: true,\r\n                    },\r\n                    packages: {\r\n                        merge: true,\r\n                    },\r\n                },\r\n            },\r\n            Dns: {\r\n                keyFields: [],\r\n            },\r\n            Query: {\r\n                fields: {\r\n                    additionalKeys: {\r\n                        merge: false,\r\n                    },\r\n                    recentSearch: {\r\n                        merge: false,\r\n                    },\r\n                },\r\n            },\r\n            Server: {\r\n                keyFields: [],\r\n                fields: {\r\n                    firewall: {\r\n                        merge: true,\r\n                    },\r\n                    components: {\r\n                        merge: false,\r\n                    },\r\n                },\r\n            },\r\n            DnsTemplate: {\r\n                keyFields: [],\r\n            },\r\n            DnsSoaRecordTemplate: {\r\n                keyFields: [],\r\n            },\r\n            TaskList: {\r\n                keyFields: [],\r\n            },\r\n            IpAddress: {\r\n                fields: {\r\n                    clients: {\r\n                        merge: false,\r\n                    },\r\n                },\r\n            },\r\n            IpAddressList: {\r\n                keyFields: [],\r\n                fields: {\r\n                    list: {\r\n                        merge: false,\r\n                    },\r\n                },\r\n            },\r\n        },\r\n        dataIdFromObject: object => {\r\n            switch (true) {\r\n                case object.__typename?.startsWith('Config'):\r\n                    return object.__typename;\r\n                default:\r\n                    return defaultDataIdFromObject(object);\r\n            }\r\n        },\r\n    }),\r\n});\r\n\r\nexport default apolloClient;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Component } from './component';\r\nimport fireCustomEvent from './fireCustomEvent';\r\n\r\nconst symbolClasses = {\r\n    upper: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',\r\n    lower: 'abcdefghijklmnopqrstuvwxyz',\r\n    number: '0123456789',\r\n    special: '!@#$%^&*?_~',\r\n};\r\n\r\nexport class PasswordGenerator extends Component {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration({ tag: 'span', ...config });\r\n        this._passwordElement = document.getElementById(this._getConfigParam('password', null));\r\n        this._generateButtonElement = document.getElementById(this._getConfigParam('generateButton', null));\r\n        this._generateButtonElement.addEventListener('click', this._onGeneratePasswordClick.bind(this));\r\n        this._showButtonElement = document.getElementById(this._getConfigParam('showButton', null));\r\n        this._showButtonElement.addEventListener('click', this._onShowPasswordClick.bind(this));\r\n        this._showPasswordVisible = true;\r\n        this._showPasswordTitle = this._getConfigParam('showPasswordTitle', '');\r\n        this._hidePasswordTitle = this._getConfigParam('hidePasswordTitle', '');\r\n        this._passwordStrength = this._getConfigParam('passwordStrength', '');\r\n    }\r\n\r\n    _onGeneratePasswordClick() {\r\n        const password = this._generatePassword();\r\n        this._passwordElement.value = password;\r\n\r\n        const passwordConfirmationElement = document.getElementById(this._getConfigParam('passwordConfirmation'));\r\n\r\n        if (passwordConfirmationElement) {\r\n            passwordConfirmationElement.value = password;\r\n        }\r\n\r\n        fireCustomEvent(this._passwordElement, 'plesk:passwordGenerated');\r\n    }\r\n\r\n    _onShowPasswordClick() {\r\n        if (this._showPasswordVisible) {\r\n            this._passwordElement.setAttribute('type', 'text');\r\n            this._showButtonElement.innerHTML = this._hidePasswordTitle;\r\n        } else {\r\n            this._passwordElement.setAttribute('type', 'password');\r\n            this._showButtonElement.innerHTML = this._showPasswordTitle;\r\n        }\r\n        this._showPasswordVisible = !this._showPasswordVisible;\r\n    }\r\n\r\n    _generatePassword() {\r\n        let password = '';\r\n        const requiredClasses = ['upper', 'lower', 'lower', 'lower', 'number', 'number', 'special', 'number', 'number'];\r\n\r\n        if ('Stronger' === this._passwordStrength) {\r\n            requiredClasses.push('upper', 'upper', 'lower', 'lower', 'lower', 'lower', 'lower', 'lower');\r\n        }\r\n\r\n        requiredClasses.sort((a, b) => Math.floor(b.length * Math.random()) - Math.floor(a.length * Math.random()));\r\n        requiredClasses.forEach(i => {\r\n            password += this._generateSymbol(i);\r\n        });\r\n        return password;\r\n    }\r\n\r\n    _generateSymbol(symbolClass) {\r\n        const index = Math.floor(symbolClasses[symbolClass].length * Math.random());\r\n        return symbolClasses[symbolClass][index];\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { StatusMessage } from './status-message';\r\nimport api from './api';\r\nimport prepareUrl from './prepareUrl';\r\nimport render from './render';\r\nimport createElement from './createElement';\r\n\r\nexport class UpgradeFailureNotification extends StatusMessage {\r\n    _initConfiguration(config) {\r\n        this.updateInterval = 5000;\r\n\r\n        super._initConfiguration(config);\r\n        this._isBootstrapRunning = this._getConfigParam('isBootstrapRunning');\r\n        this._bootstrapExecutionUrl = this._getConfigParam('bootstrapExecutionUrl');\r\n        this._bootstrapStatusUrl = this._getConfigParam('bootstrapStatusUrl');\r\n        this._bootstrapInProgressMessage = this._getConfigParam('bootstrapInProgressMessage');\r\n        this._bootstrapLinkTitle = this._getConfigParam('bootstrapLinkTitle');\r\n    }\r\n\r\n    _addEvents() {\r\n        super._addEvents();\r\n        if (this._isBootstrapRunning) {\r\n            this._scheduleUpdateStatus();\r\n        }\r\n    }\r\n\r\n    _executeBootstrapper() {\r\n        this._isBootstrapRunning = true;\r\n        render(this._componentElement.querySelector('.msg-content'), this._renderMessage(), 'inner');\r\n        api.post(prepareUrl(this._bootstrapExecutionUrl))\r\n            .finally(() => {\r\n                this._scheduleUpdateStatus();\r\n            });\r\n    }\r\n\r\n    _renderMessage() {\r\n        if (this._isBootstrapRunning) {\r\n            return createElement('span.ajax-loading', this._bootstrapInProgressMessage);\r\n        }\r\n        return [this._message, ' ', createElement('a', { onclick: this._executeBootstrapper.bind(this) }, this._bootstrapLinkTitle)];\r\n    }\r\n\r\n    _scheduleUpdateStatus() {\r\n        setTimeout(() => {\r\n            this._statusUpdate();\r\n        }, this.updateInterval);\r\n    }\r\n\r\n    _statusUpdate() {\r\n        api.get(prepareUrl(this._bootstrapStatusUrl))\r\n            .finally(() => {\r\n                this._scheduleUpdateStatus();\r\n            });\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { StatusMessage } from './status-message';\r\nimport api from './api';\r\nimport { redirectPost } from './form-redirect';\r\nimport addStatusMessage from './addStatusMessage';\r\nimport clearStatusMessages from './clearStatusMessages';\r\nimport prepareUrl from './prepareUrl';\r\nimport escapeHtml from './escapeHtml';\r\n\r\nexport class WebserverConfigurationFailure extends StatusMessage {\r\n    _initConfiguration(config) {\r\n        this._rebuildFailedUrl = '^/admin/subscription/webserver-configuration-rebuild/?returnUrl=/';\r\n        this._rebuildAllUrl = '^/admin/subscription/webserver-configuration-rebuild-all/';\r\n\r\n        super._initConfiguration(config);\r\n        this._moduleInstalled = this._getConfigParam('moduleInstalled');\r\n        this._kbArticle = this._getConfigParam('kbArticle');\r\n    }\r\n\r\n    _renderMessage() {\r\n        return this.lmsg('message', {\r\n            error: escapeHtml(this._message.trim()),\r\n            link: `<a id=\"webserver-configuration-failure-rebuild-failed\">${this.lmsg('link')}</a>`,\r\n            'link-all': `<a id=\"webserver-configuration-failure-rebuild-all\">${this.lmsg('link-all')}</a>`,\r\n            'module-link': this._moduleInstalled ? `<a href=\"/modules/configurations-troubleshooter/\">${this.lmsg('moduleLink')}</a>` : '',\r\n            'how-to-fix': this._kbArticle ? ` ${this.lmsg('knownIssue', {\r\n                'kb-article': `<a href=\"${this._kbArticle}\" target=\"_blank\">${this._kbArticle}</a>`,\r\n            })}` : '',\r\n        });\r\n    }\r\n\r\n    _addEvents() {\r\n        super._addEvents();\r\n        document.getElementById('webserver-configuration-failure-rebuild-failed').addEventListener('click', this._rebuildFailed.bind(this));\r\n        document.getElementById('webserver-configuration-failure-rebuild-all').addEventListener('click', this._rebuildAll.bind(this));\r\n    }\r\n\r\n    _rebuildFailed() {\r\n        redirectPost(this._rebuildFailedUrl);\r\n    }\r\n\r\n    _rebuildAll() {\r\n        this._onCreateExecute();\r\n        api.post(prepareUrl(this._rebuildAllUrl))\r\n            .then(this._onSuccess.bind(this))\r\n            .catch(this._onException.bind(this));\r\n    }\r\n\r\n    _onCreateExecute() {\r\n        clearStatusMessages();\r\n        addStatusMessage('warning', `<span class=\"ajax-loading\">${this.lmsg('messageInProgress')}</span>`);\r\n    }\r\n\r\n    _onSuccess(response) {\r\n        clearStatusMessages();\r\n        if ('success' === response.status) {\r\n            addStatusMessage('info', this.lmsg('messageSuccess'));\r\n        } else {\r\n            addStatusMessage('error', this.lmsg('messageFailure') + response.message);\r\n        }\r\n    }\r\n\r\n    _onException(exception) {\r\n        clearStatusMessages();\r\n\r\n        if (window.location.port === '') {\r\n            // Configuration Troubleshooter restarts main web server, therefore the connection is always interrupted.\r\n            addStatusMessage('info', this.lmsg('messageSuccess'));\r\n        } else {\r\n            addStatusMessage('error', `Internal error: ${exception}`);\r\n        }\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { PopupForm } from './popup-form';\r\nimport { getComponent } from './component';\r\nimport { redirect } from './form-redirect';\r\nimport Locale from './Locale';\r\nimport prepareUrl from './prepareUrl';\r\nimport render from './render';\r\nimport api from './api';\r\n\r\nexport const ConfirmationPopupManager = {};\r\nConfirmationPopupManager.PopupForm = class extends PopupForm {\r\n    _initConfiguration(config) {\r\n        this._sendButtonTitle = '';\r\n\r\n        super._initConfiguration({\r\n            singleRowButtons: true,\r\n            ...config,\r\n        });\r\n\r\n        this._prepareUrl = this._getConfigParam('prepareUrl', '');\r\n        this._handlerUrl = this._getConfigParam('handlerUrl', '');\r\n        this._ids = this._getConfigParam('ids', '');\r\n        this._formListItemsAreaId = `${this._id}-form-list-items`;\r\n        this._formListAreaId = `${this._id}-form-list`;\r\n        this._formBoxAreaId = `${this._id}-form-box`;\r\n        this._sendButtonId = this._getConfigParam('sendButtonId', 'btn-send');\r\n        this._cancelButtonId = this._getConfigParam('cancelButtonId', 'btn-cancel');\r\n        this._formDescriptionId = `${this._id}-form-desc`;\r\n        this._longtask = this._getConfigParam('longtask', false);\r\n        this._autoload = this._getConfigParam('autoload', true);\r\n    }\r\n\r\n    render() {\r\n        super.render();\r\n\r\n        this.setBoxType('form-box');\r\n        this._setTitle();\r\n\r\n        const formHtml = (\r\n            `<form method=\"post\" action=\"\" enctype=\"application/x-www-form-urlencoded\" id=\"${this._id}-form\">` +\r\n                `<div class=\"box\" id=\"${this._formBoxAreaId}\"></div>` +\r\n                `<div class=\"list\" id=\"${this._formListAreaId}\"></div>` +\r\n            '</form>'\r\n        );\r\n\r\n        document.getElementById(this._contentAreaId).innerHTML = (\r\n            this._getHeadDescription() +\r\n            formHtml +\r\n            this._getBottomDescription()\r\n        );\r\n\r\n        const form = document.getElementById(`${this._id}-form`);\r\n        form._formSubmit = form.submit;\r\n        form.submit = this._onSubmit.bind(this);\r\n        form.addEventListener('submit', this._onSubmitEvent.bind(this));\r\n\r\n        render(document.getElementById(this._formBoxAreaId), `<div class=\"ajax-loading\">${this.lmsg('loading')}</div>`);\r\n\r\n        this._addButtons();\r\n\r\n        if (this._autoload) {\r\n            this._renderPreparePopup();\r\n        }\r\n    }\r\n\r\n    reload() {\r\n        document.getElementById(this._formListAreaId).innerHTML = '';\r\n        document.getElementById(this._formBoxAreaId).innerHTML = `<div class=\"ajax-loading\">${this.lmsg('loading')}</div>`;\r\n        this._preparePopup();\r\n    }\r\n\r\n    _addButtons() {\r\n        this.addRightButton(Locale.getSection('components.buttons').lmsg('ok'), this._onOkClick, true, true, { id: this._sendButtonId });\r\n        this.addRightButton(Locale.getSection('components.buttons').lmsg('cancel'), this._onCancelClick, false, false, { id: this._cancelButtonId });\r\n    }\r\n\r\n    _setTitle() {\r\n        this.setTitle(this.lmsg('title'));\r\n    }\r\n\r\n    _getHeadDescription() {\r\n        return '';\r\n    }\r\n\r\n    _getBottomDescription() {\r\n        return `<p id=\"${this._formDescriptionId}\">${this.lmsg('description')}</p>`;\r\n    }\r\n\r\n    _onException(exception) {\r\n        this._addErrorMessage(`Internal error: ${exception}`);\r\n        this.enable();\r\n    }\r\n\r\n    _onOkClick(e) {\r\n        this._onSubmit(e);\r\n    }\r\n\r\n    _onCancelClick() {\r\n        this.hide();\r\n    }\r\n\r\n    _preparePopup() {\r\n        api.post(prepareUrl(this._prepareUrl), { ids: this._ids })\r\n            .then(this._onSuccessPreparePopup.bind(this))\r\n            .catch(this._onException.bind(this));\r\n    }\r\n\r\n    _renderPreparePopup() {\r\n        this._preparePopup();\r\n    }\r\n\r\n    _onSubmitEvent(event) {\r\n        this._onSubmit();\r\n        event.preventDefault();\r\n        return false;\r\n    }\r\n\r\n    _onSuccessResponse(response) {\r\n        this.hide();\r\n        redirect(response.redirect);\r\n    }\r\n\r\n    _onSuccess(transport) {\r\n        this._clearMessages();\r\n        try {\r\n            const response = JSON.parse(transport.responseText);\r\n            if ('success' === response.status) {\r\n                this._onSuccessResponse(response);\r\n            } else {\r\n                if (response.redirect) {\r\n                    redirect(response.redirect);\r\n                    return;\r\n                }\r\n                this._addErrorMessage(response.message);\r\n                this.enable();\r\n            }\r\n        } catch (e) {\r\n            this._addErrorMessage(e.message);\r\n            this._addErrorMessage(\r\n                `Internal error: ${transport.responseText}`,\r\n            );\r\n            this.enable();\r\n        }\r\n    }\r\n\r\n    disable() {\r\n        const sendButton = document.getElementById(this._sendButtonId);\r\n        if (sendButton) {\r\n            sendButton.disabled = true;\r\n            sendButton.classList.add('disabled');\r\n            if (!this._sendButtonTitle) {\r\n                this._sendButtonTitle = sendButton.innerHTML;\r\n            }\r\n            sendButton.innerHTML = `<span class=\"wait\">${this.lmsg('loading')}</span>`;\r\n        }\r\n\r\n        const cancelButton = document.getElementById(this._cancelButtonId);\r\n        if (cancelButton) {\r\n            cancelButton.disabled = true;\r\n            cancelButton.classList.add('disabled');\r\n        }\r\n    }\r\n\r\n    enable() {\r\n        const sendButton = document.getElementById(this._sendButtonId);\r\n        if (sendButton) {\r\n            sendButton.disabled = false;\r\n            sendButton.innerHTML = this._sendButtonTitle;\r\n            sendButton.classList.remove('disabled');\r\n        }\r\n\r\n        const cancelButton = document.getElementById(this._cancelButtonId);\r\n        if (cancelButton) {\r\n            cancelButton.disabled = false;\r\n            cancelButton.classList.remove('disabled');\r\n        }\r\n    }\r\n\r\n    _onSuccessPreparePopup() {\r\n        // should be implemented in child classes\r\n        return true;\r\n    }\r\n\r\n    _getLoadingIndicatorItems() {\r\n        return [];\r\n    }\r\n\r\n    _addLoadingIndicator() {\r\n        // should be implemented in child classes\r\n    }\r\n\r\n    _getAdditionalParams(params) {\r\n        // should be implemented in child classes if it necessary\r\n        return params;\r\n    }\r\n\r\n    _isValid() {\r\n        return true;\r\n    }\r\n\r\n    _onSubmit(e) {\r\n        this._clearMessages();\r\n\r\n        if (!this._isValid()) {\r\n            return;\r\n        }\r\n\r\n        let params = $H();\r\n        let count = 0;\r\n        this._ids.each(id => {\r\n            params.set(`ids[${count}]`, id);\r\n            count++;\r\n        });\r\n        params = this._getAdditionalParams(params);\r\n\r\n        this.disable();\r\n        this._addLoadingIndicator(this._getLoadingIndicatorItems());\r\n\r\n        if (this._needFlyEffect()) {\r\n            const beginOffset = Element.cumulativeOffset(e.target);\r\n            getComponent('asyncProgressBarWrapper')\r\n                .fly(\r\n                    beginOffset,\r\n                    this._longtask,\r\n                    () => {\r\n                        this._sendRequest(params);\r\n                    },\r\n                );\r\n        } else {\r\n            this._sendRequest(params);\r\n        }\r\n    }\r\n\r\n    _needFlyEffect() {\r\n        return (false !== this._longtask);\r\n    }\r\n\r\n    _sendRequest(params) {\r\n        new Ajax.Request(\r\n            this._handlerUrl,\r\n            {\r\n                method: 'post',\r\n                parameters: params,\r\n                onSuccess: this._onSuccess.bind(this),\r\n                onException: this._onException.bind(this),\r\n            },\r\n        );\r\n    }\r\n};\r\n\r\n// TODO WPT use Class.create()\r\nConfirmationPopupManager.PopupForm.subclasses = [];\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Component } from './component';\r\nimport { list } from './list';\r\nimport { Tooltip } from './tooltip';\r\nimport isRtl from './isRtl';\r\nimport prepareUrl from './prepareUrl';\r\nimport render from './render';\r\nimport createElement from './createElement';\r\nimport escapeHtml from './escapeHtml';\r\nimport fireCustomEvent from './fireCustomEvent';\r\nimport { ESC, ENTER, LEFT_ARROW, UP_ARROW, RIGHT_ARROW, DOWN_ARROW } from './keyCode';\r\nimport api from './api';\r\nimport stripTags from 'helpers/stripTags';\r\nimport { createHtmlElement } from 'helpers/createHtmlElement';\r\n\r\nexport class LookUp extends Component {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._name = this._getConfigParam('name', null);\r\n        this._cls = this._getConfigParam('cls', 'lookup');\r\n        this._data = this._getConfigParam('data', []);\r\n        this._currentValue = this._getConfigParam('value', null);\r\n        this._newItemValue = this._getConfigParam('newItemValue', null);\r\n        this._dataUrl = this._getConfigParam('dataUrl', null);\r\n        this._copyTitleValue = this._getConfigParam('copyTitleValue', false);\r\n        this._limit = this._getConfigParam('limit', this._dataUrl ? 10 : list.ITEMS_UNLIMITED);\r\n        this._lookUpParams = this._getConfigParam('lookUpParams', {});\r\n        this._disabled = this._getConfigParam('disabled', false);\r\n        this._placeholder = this._getConfigParam('placeholder', null);\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        this._valueField = createHtmlElement('input', {\r\n            type: 'hidden',\r\n            name: this._name,\r\n        });\r\n\r\n        render(this._componentElement, this._valueField);\r\n\r\n        const inputFieldConfig = {\r\n            type: 'text',\r\n            class: 'form-control',\r\n        };\r\n        if (this._disabled) {\r\n            inputFieldConfig.disabled = 'disabled';\r\n        }\r\n        if (null !== this._placeholder) {\r\n            inputFieldConfig.placeholder = this._placeholder;\r\n        }\r\n        this._inputField = createHtmlElement('input', inputFieldConfig);\r\n\r\n        this._lookUpButton = createHtmlElement('span', { class: 'form-control-icon form-control-icon-action' });\r\n        render(this._lookUpButton, createHtmlElement('i', { class: 'icon-form-control-search' }));\r\n\r\n        this._lookUpControl = createHtmlElement('div', { class: 'form-control-group' });\r\n        render(this._lookUpControl, this._inputField);\r\n        render(this._lookUpControl, this._lookUpButton);\r\n\r\n        this._dropdownList = createHtmlElement('ul', { class: 'dropdown-menu lookup-dropdown-menu' });\r\n\r\n        this._initCustomLookUpComponent();\r\n        if (this._customLookUpComponent) {\r\n            render(this._dropdownList,\r\n                createElement('li', { class: 'dropdown-header' }, this.lmsg('label')),\r\n            );\r\n            render(this._dropdownList,\r\n                createElement('li',\r\n                    createElement('div', { class: 'dropdown-menu-content' },\r\n                        this._lookUpControl,\r\n                    ),\r\n                ),\r\n            );\r\n        } else {\r\n            this._lookUpControl.classList.add('f-large-size');\r\n            render(this._componentElement, this._lookUpControl);\r\n        }\r\n\r\n        this._emptyElement = createHtmlElement('li');\r\n        render(this._emptyElement, createElement('div.dropdown-menu-content', this.lmsg('nothingFound')));\r\n        render(this._dropdownList, this._emptyElement);\r\n\r\n        render(this._componentElement, this._dropdownList);\r\n\r\n        if (!this._currentValue && this._newItemValue) {\r\n            this._currentValue = this._newItemValue;\r\n            this.handleChange();\r\n        }\r\n\r\n        this._updateValue();\r\n\r\n        if (0 < this._data.length) {\r\n            this._updateData(this._data);\r\n        }\r\n        if (this._dataUrl && this._limit === list.ITEMS_UNLIMITED) {\r\n            this._getDataByUrl();\r\n        }\r\n    }\r\n\r\n    _initCustomLookUpComponent() {\r\n        if (!this._newItemValue) {\r\n            return;\r\n        }\r\n\r\n        this._customLookUpComponent = createHtmlElement('div', { class: 'input-group' });\r\n        this._customLookUpComponent.innerHTML = (\r\n            '<input type=\"text\" readonly=\"\" class=\"form-control f-large-size\" value=\"\">' +\r\n            '<span class=\"input-group-btn\">' +\r\n                '<button type=\"button\" class=\"btn dropdown-toggle\">' +\r\n                    '<span class=\"caret\"></span>' +\r\n                '</button>' +\r\n            '</span>'\r\n        );\r\n        render(this._componentElement, this._customLookUpComponent);\r\n\r\n        render(this._dropdownList, this._createItem(this._newItemValue));\r\n        render(this._dropdownList, createHtmlElement('li', { class: 'divider' }));\r\n\r\n        this._setDisabled(this._disabled);\r\n    }\r\n\r\n    _setDisabled(disabled) {\r\n        this._disabled = disabled;\r\n\r\n        if (this._customLookUpComponent) {\r\n            this._customLookUpComponent.style['pointer-events'] = disabled ? 'none' : null;\r\n            this._customLookUpComponent.querySelector('.input-group input').disabled = disabled;\r\n            this._customLookUpComponent.querySelector('.input-group .btn.dropdown-toggle').disabled = disabled;\r\n        }\r\n    }\r\n\r\n    disable() {\r\n        this._setDisabled(true);\r\n    }\r\n\r\n    enable() {\r\n        this._setDisabled(false);\r\n    }\r\n\r\n    _getDataByUrl(filter) {\r\n        this._emptyElement.querySelector('div').innerHTML = this.lmsg('loading');\r\n        this._filter = filter;\r\n        api.get(prepareUrl(this._dataUrl), {\r\n            filter,\r\n            limit: this._limit,\r\n            ...this._lookUpParams,\r\n        })\r\n            .then(response => {\r\n                if (filter !== this._filter) {\r\n                    return;\r\n                }\r\n\r\n                this._emptyElement.querySelector('div').innerHTML = this.lmsg('nothingFound');\r\n                if ('error' === response.status) {\r\n                    return;\r\n                }\r\n\r\n                this._data = response.data;\r\n                this._updateData(this._data);\r\n                this._selectResults(filter, response.itemsCount - this._data.length);\r\n            });\r\n    }\r\n\r\n    isEmpty() {\r\n        return null === this._currentValue;\r\n    }\r\n\r\n    getValue() {\r\n        return this._currentValue ? this._currentValue.id : null;\r\n    }\r\n\r\n    getItemValue() {\r\n        return this._currentValue ? this._currentValue : null;\r\n    }\r\n\r\n    getDisplayValue() {\r\n        return this._currentValue ? this._currentValue.title : '';\r\n    }\r\n\r\n    _openList(showAll) {\r\n        this._componentElement.classList.add('open');\r\n        this._lookUpButton.querySelector('i').classList.remove('icon-form-control-search');\r\n        this._lookUpButton.querySelector('i').classList.add('icon-form-control-clear');\r\n        this._fixDropdownPosition();\r\n\r\n        const filter = showAll ? '' : this._inputField.value.toLocaleLowerCase();\r\n        if (this._dataUrl && this._limit !== list.ITEMS_UNLIMITED) {\r\n            this._emptyElement.querySelector('div').innerHTML = this.lmsg('loading');\r\n            if (this._getDataTask) {\r\n                clearTimeout(this._getDataTask);\r\n            }\r\n            this._getDataTask = setTimeout(function () {\r\n                this._getDataByUrl(filter);\r\n            }.bind(this), 250);\r\n        } else {\r\n            this._selectResults(filter);\r\n        }\r\n    }\r\n\r\n    _closeList() {\r\n        this._updateValue();\r\n        this._componentElement.classList.remove('open');\r\n        this._lookUpButton.querySelector('i').classList.add('icon-form-control-search');\r\n        this._lookUpButton.querySelector('i').classList.remove('icon-form-control-clear');\r\n    }\r\n\r\n    _updateValue() {\r\n        this._valueField.value = this._currentValue ? (this._copyTitleValue ? this._currentValue.title : this._currentValue.id) : '';\r\n        this._inputField.value = this._currentValue && !(this._newItemValue && this._currentValue.id === this._newItemValue.id) ? this._currentValue.title : '';\r\n        if (this._newItemValue) {\r\n            this._componentElement.querySelector('.input-group input').value = this._currentValue ? this._currentValue.title : '';\r\n        }\r\n    }\r\n\r\n    _selectResults(filter, itemsCount) {\r\n        let itemsFound = 0;\r\n        this._dropdownList.querySelectorAll('li').forEach(item => {\r\n            if (!item._item) {\r\n                return;\r\n            }\r\n            if (this._newItemValue && this._newItemValue.id === item._item.id) {\r\n                if (this._currentValue && this._currentValue.id === this._newItemValue.id) {\r\n                    item.style.display = 'none';\r\n                    item.nextElementSibling.style.display = 'none';\r\n                } else {\r\n                    item.style.display = '';\r\n                    item.nextElementSibling.style.display = '';\r\n                }\r\n                return;\r\n            }\r\n            item.classList.remove('active');\r\n            const itemLink = item.querySelector('a');\r\n            let itemData = stripTags(itemLink.innerHTML);\r\n            const pos = itemData.toLowerCase().indexOf(filter);\r\n            if (-1 !== pos) {\r\n                itemsFound++;\r\n                if (itemsFound <= this._limit) {\r\n                    item.style.display = '';\r\n                    itemData = `${\r\n                        itemData.substr(0, pos)\r\n                    }<b class=\"search-result-label\">${\r\n                        itemData.substr(pos, filter.length)\r\n                    }</b>${\r\n                        itemData.substr(pos + filter.length)\r\n                    }`;\r\n                } else {\r\n                    item.style.display = 'none';\r\n                }\r\n            } else {\r\n                item.style.display = 'none';\r\n            }\r\n            itemLink.innerHTML = itemData;\r\n        });\r\n\r\n        this._emptyElement.style.display = itemsFound ? 'none' : '';\r\n        if (itemsFound) {\r\n            const visibleItems = [...this._dropdownList.querySelectorAll('li')].filter(el => el.style.display !== 'none');\r\n            if (visibleItems.length) {\r\n                visibleItems[0].classList.add('active');\r\n            }\r\n        }\r\n\r\n        itemsFound += itemsCount || 0;\r\n\r\n        if (this._searchMoreElement) {\r\n            if (itemsFound > this._limit) {\r\n                this._searchMoreElement.querySelector('div').innerHTML = this._getSearchMoreText(itemsFound - this._limit);\r\n                this._searchMoreElement.style.display = '';\r\n                this._searchMoreElement.previousElementSibling.style.display = '';\r\n            } else {\r\n                this._searchMoreElement.style.display = 'none';\r\n                this._searchMoreElement.previousElementSibling.style.display = 'none';\r\n            }\r\n        }\r\n\r\n        this._fixDropdownPosition();\r\n    }\r\n\r\n    _addEvents() {\r\n        if (this._disabled) {\r\n            return;\r\n        }\r\n\r\n        super._addEvents();\r\n\r\n        if (this._customLookUpComponent) {\r\n            this._customLookUpComponent.addEventListener('click', event => {\r\n                event.preventDefault();\r\n                Tooltip.hide();\r\n                if (this._componentElement.classList.contains('open')) {\r\n                    this._inputField.blur();\r\n                } else {\r\n                    this._openList(true);\r\n                    this._inputField.focus();\r\n                }\r\n            });\r\n        } else {\r\n            this._inputField.addEventListener('focus', this._inputOnFocus.bind(this));\r\n        }\r\n        this._inputField.addEventListener('paste', this._inputOnPaste.bind(this));\r\n        this._inputField.addEventListener('blur', this._inputOnBlur.bind(this));\r\n        this._inputField.addEventListener('keyup', this._inputOnKeyUp.bind(this));\r\n        this._inputField.addEventListener('keydown', this._inputOnKeyDown.bind(this));\r\n        this._lookUpButton.addEventListener('click', this._lookUpButtonOnClick.bind(this));\r\n    }\r\n\r\n    _inputOnFocus() {\r\n        this._openList(true);\r\n    }\r\n\r\n    _inputOnBlur() {\r\n        // workaround for Google Chrome\r\n        setTimeout(() => {\r\n            this._closeList();\r\n        }, 300);\r\n    }\r\n\r\n    _inputOnPaste() {\r\n        setTimeout(() => {\r\n            this._openList();\r\n            const activeItem = this._dropdownList.querySelector('li.active');\r\n            if (activeItem) {\r\n                this._currentValue = activeItem._item;\r\n                this._updateValue();\r\n            }\r\n        }, 300);\r\n    }\r\n\r\n    _inputOnKeyUp(event) {\r\n        if ([UP_ARROW, DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, ENTER, ESC].indexOf(event.keyCode) !== -1) {\r\n            return;\r\n        }\r\n\r\n        this._openList();\r\n    }\r\n\r\n    _inputOnKeyDown(event) {\r\n        if ([UP_ARROW, DOWN_ARROW].indexOf(event.keyCode) !== -1) {\r\n            this._onArrowKeyPressed(event.keyCode);\r\n        }\r\n\r\n        if (ESC === event.keyCode) {\r\n            this._closeList();\r\n        }\r\n\r\n        if (ENTER === event.keyCode) {\r\n            const activeItem = this._dropdownList.querySelector('li.active');\r\n            if (activeItem) {\r\n                this._currentValue = activeItem._item;\r\n                this._closeList();\r\n                this.handleChange();\r\n            } else {\r\n                this._closeList();\r\n                this._openList();\r\n            }\r\n        }\r\n    }\r\n\r\n    _onArrowKeyPressed(keyCode) {\r\n        let nextItem = null;\r\n        const activeItem = this._dropdownList.querySelector('li.active');\r\n        if (!activeItem) {\r\n            nextItem = this._dropdownList.querySelector('li');\r\n            while (nextItem && !(nextItem.style.display !== 'none' && nextItem._item)) {\r\n                nextItem = nextItem.nextElementSibling;\r\n            }\r\n        } else if (DOWN_ARROW === keyCode) {\r\n            nextItem = activeItem.nextElementSibling;\r\n            while (nextItem && !(nextItem.style.display !== 'none' && nextItem._item)) {\r\n                nextItem = nextItem.nextElementSibling;\r\n            }\r\n        } else if (UP_ARROW === keyCode) {\r\n            nextItem = activeItem.previousElementSibling;\r\n            while (nextItem && !(nextItem.style.display !== 'none' && nextItem._item)) {\r\n                nextItem = nextItem.previousElementSibling;\r\n            }\r\n        }\r\n        if (nextItem && nextItem.style.display !== 'none' && nextItem._item) {\r\n            nextItem.classList.add('active');\r\n            if (activeItem) {\r\n                activeItem.classList.remove('active');\r\n            }\r\n            this._scrollDropdownList();\r\n        }\r\n    }\r\n\r\n    _scrollDropdownList() {\r\n        const firstItem = this._dropdownList.querySelector('li.dropdown-menu-list-item');\r\n        const activeItem = this._dropdownList.querySelector('li.active');\r\n\r\n        if (!firstItem || !activeItem) {\r\n            return;\r\n        }\r\n\r\n        const position = Math.round(activeItem.offsetTop / firstItem.offsetHeight) + 1;\r\n        const itemsInFrame = Math.round(this._dropdownList.clientHeight / firstItem.offsetHeight);\r\n\r\n        this.frameStart = this.frameStart || 1;\r\n\r\n        if (position >= this.frameStart + itemsInFrame) {\r\n            this._dropdownList.scrollTop += firstItem.offsetHeight;\r\n            this.frameStart++;\r\n        } else if (position <= this.frameStart) {\r\n            this._dropdownList.scrollTop -= firstItem.offsetHeight;\r\n            this.frameStart--;\r\n        }\r\n    }\r\n\r\n    _lookUpButtonOnClick(event) {\r\n        event.preventDefault();\r\n\r\n        if (this._componentElement.classList.contains('open')) {\r\n            this._closeList();\r\n        } else {\r\n            this._openList(true);\r\n        }\r\n    }\r\n\r\n    _itemOnClick(event) {\r\n        event.preventDefault();\r\n        this._currentValue = event.target.closest('li')._item;\r\n        this._closeList();\r\n        this.handleChange();\r\n    }\r\n\r\n    _itemOnOver() {\r\n        this._dropdownList.querySelectorAll('li.active').forEach(element => {\r\n            element.classList.remove('active');\r\n        });\r\n    }\r\n\r\n    _createItem(item) {\r\n        const listItem = createHtmlElement('li', { class: 'dropdown-menu-list-item' });\r\n        listItem.innerHTML = `<a href=\"#\">${escapeHtml(item.title)}</a>`;\r\n        listItem._item = item;\r\n        listItem.addEventListener('click', this._itemOnClick.bind(this));\r\n        listItem.addEventListener('mouseover', this._itemOnOver.bind(this));\r\n\r\n        return listItem;\r\n    }\r\n\r\n    _getSearchMoreText(count) {\r\n        return this.lmsg('moreObjectsAvailable', { count });\r\n    }\r\n\r\n    _updateData(data) {\r\n        this._clearData();\r\n\r\n        data.each(item => {\r\n            render(this._dropdownList, this._createItem(item));\r\n        });\r\n\r\n        this._addSearchMoreElement();\r\n    }\r\n\r\n    _clearData() {\r\n        let el;\r\n        while ((el = this._emptyElement.nextSibling)) {\r\n            el.parentNode.removeChild(el);\r\n        }\r\n    }\r\n\r\n    _addSearchMoreElement() {\r\n        this._searchMoreElement = document.createElement('li');\r\n        this._searchMoreElement.innerHTML = '<div class=\"dropdown-menu-content\"></div>';\r\n        this._searchMoreElement.style.display = 'none';\r\n\r\n        render(this._dropdownList, '<li class=\"divider\" style=\"display: none;\"></li>');\r\n        render(this._dropdownList, this._searchMoreElement);\r\n    }\r\n\r\n    _fixDropdownPosition() {\r\n        this._dropdownList.style[isRtl() ? 'right' : 'left'] = null;\r\n\r\n        const windowWidth = document.documentElement.clientWidth;\r\n        const offsets = this._dropdownList.getBoundingClientRect();\r\n\r\n        const delta = (isRtl() ? offsets.left : (windowWidth - offsets.width - offsets.left))\r\n            - parseInt(window.getComputedStyle(document.querySelector('.pul-layout__main-inner')).paddingLeft || 0);\r\n\r\n        if (delta < 0) {\r\n            this._dropdownList.style[isRtl() ? 'right' : 'left'] = `${delta}px`;\r\n        }\r\n    }\r\n\r\n    handleChange() {\r\n        fireCustomEvent(this._componentElement, 'component:change');\r\n\r\n        const onChange = this._getConfigParam('onChange');\r\n        if (typeof onChange === 'function') {\r\n            onChange(this._currentValue);\r\n        }\r\n    }\r\n}\r\n\r\n// TODO PMT-4391: Plesk migrator is broken in Plesk 17.9.1 after cutting core's classes\r\nLookUp.subclasses = [];\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n/**\r\n * This is part of public Jsw API. Don't modify it!\r\n */\r\n\r\nexport { default as List } from './List';\r\nexport { default as ListContextMenu } from './ListContextMenu';\r\n\r\nimport AdditionalActions from './AdditionalActions';\r\nimport { COLUMN_SELECTION, COLUMN_ACTIONS, ITEMS_UNLIMITED } from './constants';\r\n\r\nexport const list = {\r\n    COLUMN_SELECTION,\r\n    COLUMN_ACTIONS,\r\n    ITEMS_UNLIMITED,\r\n    AdditionalActions,\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport Cookie from 'common/cookie';\r\nimport { Component, getComponent } from '../component';\r\nimport { Tooltip } from '../tooltip';\r\nimport { bar } from '../bar';\r\nimport { SmallTools } from '../small-tools';\r\nimport { messageBox } from '../message-box';\r\nimport { DropdownManager } from '../dropdown-manager';\r\nimport createComponent from '../createComponent';\r\nimport addStatusMessage from '../addStatusMessage';\r\nimport clearStatusMessages from '../clearStatusMessages';\r\nimport showInternalError from '../showInternalError';\r\nimport prepareUrl from '../prepareUrl';\r\nimport addUrlParams from '../addUrlParams';\r\nimport render from '../render';\r\nimport createElement from '../createElement';\r\nimport escapeHtml from '../escapeHtml';\r\nimport emptyFn from '../emptyFn';\r\nimport { redirect } from '../form-redirect';\r\nimport Filters from './Filters';\r\nimport ListContextMenu from './ListContextMenu';\r\nimport { COLUMN_ACTIONS, COLUMN_SELECTION, ITEMS_UNLIMITED } from './constants';\r\nimport stripTags from 'helpers/stripTags';\r\nimport api from '../api';\r\n\r\nimport './List.less';\r\n\r\n/**\r\n * The class for the implementation of the widget \"List\". In addition to displaying the data,\r\n * it is possible to change the sorting, search, perform group operations.\r\n */\r\nclass List extends Component {\r\n    /**\r\n     * @cfg {String} listCls=list\r\n     */\r\n    /**\r\n     * @cfg {String} dataUrl=\"\"\r\n     */\r\n    /**\r\n     * @cfg {Object[]} operations List operations.\r\n     * See SmallTools.operations  for details.\r\n     */\r\n    /**\r\n     * @cfg {Object[]} columns\r\n     */\r\n    /**\r\n     * @cfg {Object[]} itemActions\r\n     */\r\n\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._cls += ' js-list';\r\n        this._listCls = this._getConfigParam('listCls', 'list');\r\n        this._tableId = `${this._id}-table`;\r\n        this._dataUrl = this._getConfigParam('dataUrl', '');\r\n        this._operations = this._getConfigParam('operations', null);\r\n        this._itemActions = this._getConfigParam('itemActions', {});\r\n        this._columns = this._getConfigParam('columns', []).filter(Boolean);\r\n        this._limitValues = this._getConfigParam('limitValues', [10, 25, 100, ITEMS_UNLIMITED]);\r\n        this._splitListData(this._getConfigParam('data', { data: null, pathbar: null, state: null, pager: null, locale: null, additional: null }));\r\n        this._searchFilters = $H(this._getConfigParam('searchFilters', {}));\r\n        this._searchOveral = this._getConfigParam('searchOveral', null);\r\n        this._pageable = this._getConfigParam('pageable', true);\r\n        this._disabledSelectHint = this._getConfigParam('disabledSelectHint', '');\r\n        this._clearStatusOnReload = this._getConfigParam('clearStatusOnReload', true);\r\n        this.isDisabledItem = this._getConfigParam('isDisabledItem', () => false);\r\n        this._onRedraw = this._getConfigParam('onRedraw', emptyFn);\r\n        this._emptyViewMode = this._getConfigParam('emptyViewMode', 'items');\r\n        this._getTotalInfo = this._getConfigParam('getTotalInfo', function () {\r\n            return this.getLocale().formatMessage('recordsTotal', { total: this._pager.totalItemCount });\r\n        });\r\n        this._getRowClass = this._getConfigParam('getRowClass', function () {\r\n            return '';\r\n        });\r\n\r\n        if (Array.isArray(this._operations)) {\r\n            this._operations = this._operations.filter(value => value !== null);\r\n            if (!this._operations.length) {\r\n                this._operations = null;\r\n            }\r\n        }\r\n    }\r\n\r\n    _getSearchOveralField() {\r\n        if (null === this._searchOveral) {\r\n            this._searchFilters.each(function (pair) {\r\n                if (pair.value.overal) {\r\n                    this._searchOveral = pair.key;\r\n                }\r\n            }, this);\r\n            if (null === this._searchOveral && 1 === this._searchFilters.keys().length) {\r\n                this._searchOveral = this._searchFilters.keys()[0];\r\n            }\r\n            if (null === this._searchOveral) {\r\n                this._searchOveral = false;\r\n            }\r\n        }\r\n\r\n        return this._searchOveral;\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        this._updateComponentElement(`<div id=\"${this._id}-container\"></div>`);\r\n        this._initDisablerOverlay();\r\n    }\r\n\r\n    _splitListData(listData, place) {\r\n        if (!listData || !listData.data) {\r\n            return false;\r\n        }\r\n\r\n        const dataLen = listData.data.length;\r\n        if ('before' === place) {\r\n            this._data = listData.data.concat(this._data);\r\n        } else if ('after' === place) {\r\n            this._data = this._data.concat(listData.data);\r\n        } else {\r\n            this._data = listData.data;\r\n        }\r\n        this._state = listData.state || {};\r\n        this._pager = listData.pager || {};\r\n        if (listData.locale) {\r\n            this._locale.messages = { ...this._locale.messages, ...listData.locale };\r\n        }\r\n        if (listData.pathbar) {\r\n            this._pathbar = listData.pathbar;\r\n        }\r\n        if (listData.additional) {\r\n            this._additionalData = { ...this._additionalData, ...listData.additional };\r\n        }\r\n        return dataLen;\r\n    }\r\n\r\n    _isColumnSelectionPresent() {\r\n        return this._getColumns().includes(COLUMN_SELECTION);\r\n    }\r\n\r\n    /**\r\n     * @param {String} dataIndex\r\n     */\r\n    onHeaderClick(dataIndex) {\r\n        this._state.sortField = dataIndex;\r\n        this._state.sortDirection = ('down' === this._state.sortDirection)\r\n            ? 'up'\r\n            : 'down';\r\n\r\n        this.reload(`/sort-field/${dataIndex}/sort-dir/${this._state.sortDirection}`);\r\n    }\r\n\r\n    /**\r\n     * @param {Boolean} [force]\r\n     */\r\n    updateFilter(force) {\r\n        if (!document.getElementById(this._tableId)) {\r\n            this.checkEmptyList();\r\n            return;\r\n        }\r\n        let filterChanged = false;\r\n        let hasFilter = false;\r\n        this._getColumns()\r\n            .filter(({ isVisible }) => 'function' !== typeof isVisible || isVisible())\r\n            .forEach(column => {\r\n                if (!column.filter || !column.filter.type) {\r\n                    return;\r\n                }\r\n\r\n                let input;\r\n                if (column.filter.options) {\r\n                    if (column.filter.multi) {\r\n                        input = this._componentElement.querySelector(`th[data-index=\"${column.dataIndex}\"]`).querySelectorAll('input[type=checkbox]:checked');\r\n                    } else {\r\n                        input = this._componentElement.querySelector(`th[data-index=\"${column.dataIndex}\"] select`);\r\n                    }\r\n                } else {\r\n                    input = this._componentElement.querySelector(`th[data-index=\"${column.dataIndex}\"] input`);\r\n                }\r\n                if (!input) {\r\n                    column.filter.value = '';\r\n                    return;\r\n                }\r\n\r\n                hasFilter = true;\r\n\r\n                let value;\r\n                if (column.filter.multi) {\r\n                    value = [];\r\n                    input.forEach(function (el) {\r\n                        value.push(el.value.toLowerCase());\r\n                    });\r\n                    if (value.length === column.filter.options.length) {\r\n                        value = [];\r\n                    }\r\n                } else {\r\n                    value = input.value.toLowerCase();\r\n                }\r\n                if (value === column.filter.value) {\r\n                    return;\r\n                }\r\n\r\n                column.filter.value = value;\r\n                filterChanged = true;\r\n            });\r\n\r\n        if (!hasFilter || (!force && !filterChanged)) {\r\n            this.checkEmptyList();\r\n            return;\r\n        }\r\n        let oddEvenRowClass = 'even';\r\n        document.getElementById(this._tableId).querySelectorAll('tr.odd, tr.even').forEach((row, rowIndex) => {\r\n            const cells = row.childNodes;\r\n            let match = true;\r\n\r\n            this._getColumns()\r\n                .filter(({ isVisible }) => 'function' !== typeof isVisible || isVisible())\r\n                .forEach((column, columnIndex) => {\r\n                    const value = this._data[rowIndex][column.dataIndex];\r\n                    if (cells[columnIndex]._filtered) {\r\n                        if (column.noEscape) {\r\n                            cells[columnIndex].innerHTML = value;\r\n                        } else {\r\n                            cells[columnIndex].innerHTML = escapeHtml(value);\r\n                        }\r\n                        delete cells[columnIndex]._filtered;\r\n                    }\r\n\r\n                    if (!match || !column.filter || !column.filter.type || 0 === column.filter.value.length) {\r\n                        return;\r\n                    }\r\n\r\n                    if (column.filter.type === 'date') {\r\n                        if (new Date(value.replace(/ /g, 'T')) < new Date(column.filter.value.replace(/ /g, 'T'))) {\r\n                            match = false;\r\n                        }\r\n                        return;\r\n                    }\r\n\r\n                    if (column.filter.options) {\r\n                        if (column.filter.multi) {\r\n                            if (column.filter.value.indexOf(value.toLowerCase()) === -1) {\r\n                                match = false;\r\n                            }\r\n                        } else if (value.toLowerCase() !== column.filter.value) {\r\n                            match = false;\r\n                        }\r\n                        return;\r\n                    }\r\n\r\n                    const pos = value.toLowerCase().indexOf(column.filter.value);\r\n\r\n                    if (pos === -1 || (column.filter.startsWith && pos !== 0)) {\r\n                        match = false;\r\n                        return;\r\n                    }\r\n\r\n                    if (column.noEscape) {\r\n                        cells[columnIndex].innerHTML = `${value.substr(0, pos)\r\n                        }<b class=\"search-result-label\">${\r\n                            value.substr(pos, column.filter.value.length)\r\n                        }</b>${\r\n                            value.substr(pos + column.filter.value.length)}`;\r\n                    } else {\r\n                        cells[columnIndex].innerHTML = `${escapeHtml(value.substr(0, pos))\r\n                        }<b class=\"search-result-label\">${\r\n                            escapeHtml(value.substr(pos, column.filter.value.length))\r\n                        }</b>${\r\n                            escapeHtml(value.substr(pos + column.filter.value.length))}`;\r\n                    }\r\n                    cells[columnIndex]._filtered = true;\r\n                });\r\n\r\n            if (match) {\r\n                row.classList.remove(oddEvenRowClass);\r\n                oddEvenRowClass = oddEvenRowClass === 'odd' ? 'even' : 'odd';\r\n                row.classList.add(oddEvenRowClass);\r\n                row.style.display = '';\r\n            } else {\r\n                row.style.display = 'none';\r\n            }\r\n        });\r\n        this.checkEmptyList();\r\n    }\r\n\r\n    /**\r\n     * @param {String} value\r\n     */\r\n    onLimitClick(value) {\r\n        this.reload({ 'items-per-page': value });\r\n    }\r\n\r\n    /**\r\n     * @param {String} page\r\n     */\r\n    onPagerClick(page) {\r\n        this.reload({ page });\r\n    }\r\n\r\n    handleSelectButtonClick = () => {\r\n        const globalCheckbox = this._componentElement.querySelector('input[name=\"listGlobalCheckbox\"]');\r\n        globalCheckbox.checked = !globalCheckbox.checked;\r\n        this.onListGlobalCheckboxClick();\r\n    };\r\n\r\n    onListGlobalCheckboxClick() {\r\n        const actionsBox = this._getActionBoxElement();\r\n        const globalCheckbox = this._componentElement.querySelector('input[name=\"listGlobalCheckbox\"]');\r\n\r\n        if (actionsBox) {\r\n            const selectButton = actionsBox.querySelector('.r-actions-select');\r\n            if (selectButton) {\r\n                if (globalCheckbox.checked) {\r\n                    selectButton.classList.add('r-actions-item-active');\r\n                } else {\r\n                    selectButton.classList.remove('r-actions-item-active');\r\n                }\r\n            }\r\n        }\r\n\r\n        this._componentElement.querySelectorAll('input[name=\"listCheckbox[]\"]').forEach(checkbox => {\r\n            if (globalCheckbox.checked) {\r\n                checkbox.closest('tr').classList.add('selected');\r\n            } else {\r\n                checkbox.closest('tr').classList.remove('selected');\r\n            }\r\n            checkbox.checked = globalCheckbox.checked;\r\n        });\r\n    }\r\n\r\n    onPagerButtonClick(event) {\r\n        const paging = this._componentElement.querySelector('.paging');\r\n        const show = !paging.classList.contains('r-paging-visible');\r\n        if (this._actionBox) {\r\n            this._actionBox._hideResponsiveButtonBlocks();\r\n        }\r\n        if (show) {\r\n            paging.classList.add('r-paging-visible');\r\n        }\r\n        event.stopPropagation();\r\n    }\r\n\r\n    listHeadersView() {\r\n        const headers = [];\r\n        const filters = [];\r\n        let hasFilter = false;\r\n        let colspan = 0;\r\n\r\n        this._getColumns().forEach(column => {\r\n            if (colspan) {\r\n                colspan--;\r\n                return;\r\n            }\r\n\r\n            if ('function' === typeof column.isVisible) {\r\n                if (!column.isVisible()) {\r\n                    return;\r\n                }\r\n            }\r\n\r\n            if (column.headerColspan) {\r\n                colspan = column.headerColspan;\r\n            }\r\n\r\n            let { header } = column;\r\n\r\n            let headerCls = column.headerCls ? `.${column.headerCls}` : '';\r\n\r\n            if ('undefined' !== typeof column.headerRenderer) {\r\n                header = column.headerRenderer(column);\r\n            } else {\r\n                let sortCssClass = '';\r\n                if (this._state.sortField === column.dataIndex) {\r\n                    sortCssClass = 'down' === this._state.sortDirection ? '' : '.sort-up';\r\n                    headerCls += '.sort';\r\n                }\r\n\r\n                if (column.sortable) {\r\n                    header = createElement(`a${sortCssClass}`, { onclick: this.onHeaderClick.bind(this, column.dataIndex) }, header);\r\n                }\r\n            }\r\n            headers.push(createElement(`th${headerCls}${colspan ? `[colspan=\"${colspan}\"]` : ''}`, column.headerParams, header));\r\n\r\n            let filter = '';\r\n            if (column.filter) {\r\n                hasFilter = true;\r\n                filter = Filters.create({\r\n                    name: column.dataIndex,\r\n                    locale: this.getLocale(),\r\n                    ...column.filter,\r\n                }, this.updateFilter.bind(this, false));\r\n            }\r\n            filters.push(createElement('th', { 'data-index': column.dataIndex }, filter));\r\n        });\r\n\r\n        return createElement('thead',\r\n            hasFilter ? createElement('tr.list-search-filter', filters) : '',\r\n            createElement('tr', headers),\r\n        );\r\n    }\r\n\r\n    listDataView(listData = this._data, indexOffset = 0) {\r\n        if (!listData) {\r\n            return null;\r\n        }\r\n\r\n        return createElement('tbody',\r\n            Object.keys(listData).map(index => this.rowView(listData[index], index, indexOffset)),\r\n        );\r\n    }\r\n\r\n    rowView(item, index, indexOffset) {\r\n        const columns = this._getColumns()\r\n            .filter(column => 'function' !== typeof column.isVisible || column.isVisible())\r\n            .map(column => {\r\n                let cell = null;\r\n\r\n                if (typeof column.renderer === 'function') {\r\n                    const isDisabled = this.isDisabledItem(item);\r\n\r\n                    if (!isDisabled || !column.hideDisabled) {\r\n                        cell = column.renderer.call(this, item, isDisabled);\r\n                    }\r\n                } else if ('undefined' !== typeof column.dataIndex && 'undefined' !== typeof item[column.dataIndex]) {\r\n                    if (column.noEscape) {\r\n                        cell = item[column.dataIndex];\r\n                    } else {\r\n                        cell = escapeHtml(item[column.dataIndex]);\r\n                    }\r\n                }\r\n\r\n                return createElement('td', {\r\n                    class: column.cls,\r\n                }, cell);\r\n            });\r\n\r\n        return createElement(`tr.${this._getRowClass(item)}.${(index + indexOffset) % 2 ? 'even' : 'odd'}`, {\r\n            'data-row-id': item.id,\r\n        }, columns);\r\n    }\r\n\r\n    listView() {\r\n        return createElement(`.${this._listCls}`,\r\n            createElement(`table#${this._tableId}[width=\"100%\"][cellspacing=\"0\"]`,\r\n                this.listHeadersView(),\r\n                this.listDataView(),\r\n            ),\r\n        );\r\n    }\r\n\r\n    containerView() {\r\n        return createElement(`#${this._id}-container`,\r\n            this._getActionBox(),\r\n            this._getPathbarHtml(),\r\n            this._getPagerHtml(),\r\n            this.listView(),\r\n            this._getPagerHtml(),\r\n            this.emptyViewContainer(),\r\n        );\r\n    }\r\n\r\n    checkEmptyList() {\r\n        const isEmpty = this.isListEmpty();\r\n        this._componentElement.querySelectorAll('.js-empty-list').forEach(element => {\r\n            element.style.display = isEmpty ? '' : 'none';\r\n        });\r\n        this._componentElement.querySelectorAll('.paging').forEach(element => {\r\n            element.style.display = isEmpty ? 'none' : '';\r\n        });\r\n        const listSelector = this._listCls.split(' ').reduce((previousValue, currentValue) => {\r\n            if (currentValue !== '') {\r\n                previousValue += `.${currentValue}`;\r\n            }\r\n            return previousValue;\r\n        }, '');\r\n        this._componentElement.querySelectorAll(listSelector).forEach(element => {\r\n            element.style.display = isEmpty ? 'none' : '';\r\n        });\r\n    }\r\n\r\n    isFiltered() {\r\n        return Object.values(this._state?.searchFilters || {}).some(({ searchText }) => searchText);\r\n    }\r\n\r\n    isListEmpty() {\r\n        if (!document.getElementById(this._tableId)) {\r\n            return !this._data.length;\r\n        }\r\n        return ![...document.getElementById(this._tableId).querySelectorAll('tr.odd, tr.even')].filter(element => element.style.display !== 'none').length;\r\n    }\r\n\r\n    _getActionBox() {\r\n        if (!this._operations && !this._searchFilters.keys().length) {\r\n            return null;\r\n        }\r\n\r\n        if (!this.isFiltered() && this.isListEmpty() && this._emptyViewMode === 'all') {\r\n            return null;\r\n        }\r\n\r\n        if (this._state.forceShowSearch) {\r\n            Cookie.set(`${this._id}-search-show`, 'true');\r\n        }\r\n\r\n        this._actionBox = new SmallTools({\r\n            locale: this.getLocale(),\r\n            operationsId: `${this._id}-operations`,\r\n            operations: this._getOperations(),\r\n            listId: this._id,\r\n            searchFilters: this._searchFilters,\r\n            searchFiltersState: this._state.searchFilters,\r\n            searchOveral: this._searchOveral,\r\n            searchHandler: this._onSearchClick.bind(this),\r\n            resetSearchHandler: this._onResetSearchClick.bind(this),\r\n            searchCollapsed: 'true' !== Cookie.get(`${this._id}-search-show`),\r\n            onToggleSearch: collapsed => {\r\n                Cookie.set(`${this._id}-search-show`, !collapsed);\r\n                this._hideItemsNotSelectedWarning();\r\n            },\r\n            quickSearchInputId: `${this._id}-search-text-${this._getSearchOveralField()}`,\r\n        });\r\n\r\n        return this._actionBox;\r\n    }\r\n\r\n    _getActionBoxElement() {\r\n        return this._componentElement.querySelector('.actions-box');\r\n    }\r\n\r\n    _getPathbarHtml() {\r\n        if (!this._pathbar) {\r\n            return '';\r\n        }\r\n\r\n        return `<div id=\"${this._id}-pathbar\"></div>`;\r\n    }\r\n\r\n    _getPagerHtml() {\r\n        return this._pageable ? (\r\n            createElement('.paging',\r\n                createElement('.paging-area',\r\n                    createElement('span.paging-info', { onclick: e => this.onPagerButtonClick(e) }, this._getTotalInfo()),\r\n                    createElement('span.paging-view', this.lmsg('numberOfItemPerPage'), ': ', this._getLimitValuesHtml()),\r\n                    this._pager.pageCount > 1 ? createElement('span.paging-nav', this.lmsg('pages'), ': ', this._getPagesItemsHtml()) : null,\r\n                ),\r\n            )\r\n        ) : null;\r\n    }\r\n\r\n    _getLimitValuesHtml() {\r\n        const result = [];\r\n        this._limitValues.forEach((limitValue, index) => {\r\n            const limitValueTitle = (ITEMS_UNLIMITED === limitValue)\r\n                ? this.lmsg('allItems')\r\n                : limitValue;\r\n\r\n            if (index > 0) {\r\n                result.push(' ');\r\n            }\r\n            result.push(this._pager.itemCountPerPage !== limitValue ? (\r\n                createElement('a', { onclick: () => this.onLimitClick(limitValue) }, limitValueTitle)\r\n            ) : (\r\n                createElement('span', limitValueTitle)\r\n            ));\r\n        });\r\n        return result;\r\n    }\r\n\r\n    _getPagesItemsHtml() {\r\n        const result = [];\r\n\r\n        if (this._pager.first !== this._pager.current) {\r\n            result.push(createElement('a', { onclick: () => this.onPagerClick(this._pager.first) }, this.lmsg('firstPage')));\r\n        } else {\r\n            result.push(createElement('span', this.lmsg('firstPage')));\r\n        }\r\n        result.push(' ');\r\n\r\n        if (this._pager.previous) {\r\n            result.push(createElement('a', { onclick: () => this.onPagerClick(this._pager.previous) }, '&lt;&lt;'));\r\n        } else {\r\n            result.push(createElement('span', '&lt;&lt;'));\r\n        }\r\n        result.push(' ');\r\n\r\n        $H(this._pager.pagesInRange).values().each(page => {\r\n            if (page !== this._pager.current) {\r\n                result.push(createElement('a', { onclick: () => this.onPagerClick(page) }, page));\r\n            } else {\r\n                result.push(page);\r\n            }\r\n            result.push(' ');\r\n        });\r\n\r\n        if (this._pager.next) {\r\n            result.push(createElement('a', { onclick: () => this.onPagerClick(this._pager.next) }, '&gt;&gt;'));\r\n        } else {\r\n            result.push(createElement('span', '&gt;&gt;'));\r\n        }\r\n        result.push(' ');\r\n\r\n        if (this._pager.last !== this._pager.current) {\r\n            result.push(createElement('a', { onclick: () => this.onPagerClick(this._pager.last) }, this.lmsg('lastPage')));\r\n        } else {\r\n            result.push(createElement('span', this.lmsg('lastPage')));\r\n        }\r\n\r\n        return result;\r\n    }\r\n\r\n    emptyViewContainer() {\r\n        return createElement('.js-empty-list.empty-list',\r\n            this.isFiltered() ? createElement('p.text-muted', this.lmsg('noEntriesFound')) : this.emptyView(),\r\n        );\r\n    }\r\n\r\n    emptyView() {\r\n        return this._getConfigParam('emptyView', createElement('p.text-muted', this.lmsg('noEntries')));\r\n    }\r\n\r\n    _onSearchClick(form) {\r\n        this.reload(`?${Form.serialize(form)}`);\r\n    }\r\n\r\n    _onResetSearchClick() {\r\n        this.reload('/reset-search/true/');\r\n    }\r\n\r\n    _addSelectionHandlers() {\r\n        let selectButton;\r\n\r\n        const rActionsList = this._componentElement.querySelector('.actions-box .r-actions-list');\r\n        if (rActionsList) {\r\n            selectButton = new Element('li', { class: 'r-actions-item r-actions-select' });\r\n            selectButton.innerHTML = '<span></span>';\r\n            selectButton.addEventListener('click', event => {\r\n                event.stopPropagation();\r\n                this.handleSelectButtonClick();\r\n            });\r\n            render(rActionsList, selectButton, 'top');\r\n        }\r\n\r\n        const globalCheckbox = this._componentElement.querySelector('input[name=\"listGlobalCheckbox\"]');\r\n        globalCheckbox.addEventListener('click', this.onListGlobalCheckboxClick.bind(this));\r\n\r\n        this._componentElement.querySelectorAll('input[name=\"listCheckbox[]\"]').forEach(checkbox => {\r\n            checkbox.addEventListener('click', () => {\r\n                if (checkbox.checked) {\r\n                    checkbox.closest('tr').classList.add('selected');\r\n                } else {\r\n                    checkbox.closest('tr').classList.remove('selected');\r\n                    globalCheckbox.checked = false;\r\n                    if (selectButton) {\r\n                        selectButton.classList.remove('r-actions-item-active');\r\n                    }\r\n                }\r\n            });\r\n        });\r\n\r\n        document.body.addEventListener('click', event => {\r\n            if (event.target.closest('.actions-box')) {\r\n                return;\r\n            }\r\n\r\n            this._hideItemsNotSelectedWarning();\r\n        });\r\n        document.body.addEventListener('touchstart', () => {\r\n            this._hideItemsNotSelectedWarning();\r\n        });\r\n    }\r\n\r\n    _addPathbar() {\r\n        if (!this._pathbar) {\r\n            return;\r\n        }\r\n\r\n        render(document.getElementById(`${this._id}-pathbar`), createComponent(this._pathbar));\r\n    }\r\n\r\n    disable() {\r\n        this._disablerOverlay.style.display = '';\r\n    }\r\n\r\n    enable() {\r\n        this._disablerOverlay.style.display = 'none';\r\n    }\r\n\r\n    getSelectedItemsIds() {\r\n        return [...this._componentElement.querySelectorAll('input[name=\"listCheckbox[]\"]')]\r\n            .filter(({ checked }) => checked)\r\n            .map(({ value }) => value);\r\n    }\r\n\r\n    getSelectedItems() {\r\n        const ids = [];\r\n        const selectedItems = [];\r\n\r\n        this.getSelectedItemsIds().each(function (id) {\r\n            ids.push(id);\r\n        });\r\n\r\n        this._data.each(function (dataItem) {\r\n            const itemIndex = ids.indexOf(dataItem.id.toString());\r\n            if (itemIndex < 0) {\r\n                return;\r\n            }\r\n\r\n            selectedItems.push(dataItem);\r\n        });\r\n\r\n        return selectedItems;\r\n    }\r\n\r\n    checkNonEmptySelection() {\r\n        if (!this.getSelectedItemsIds().length) {\r\n            this._showItemsNotSelectedWarning();\r\n            return false;\r\n        }\r\n        this._hideItemsNotSelectedWarning();\r\n        return true;\r\n    }\r\n\r\n    execLongGroupOperation(params, event) {\r\n        let itemId;\r\n        params.onSuccess = function () {\r\n            const progressBar = getComponent('asyncProgressBarWrapper');\r\n            progressBar.removePreparingItem(itemId);\r\n            progressBar.update();\r\n        };\r\n\r\n        params.beforeSendRequest = function (sendRequest) {\r\n            const beginOffset = Element.cumulativeOffset(event.target);\r\n            itemId = getComponent('asyncProgressBarWrapper').fly(beginOffset,\r\n                params.taskName,\r\n                function () {\r\n                    sendRequest();\r\n                });\r\n        };\r\n\r\n        this.execGroupOperation(params);\r\n    }\r\n\r\n    execGroupOperation(params) {\r\n        const payload = params.payload || {};\r\n        // workaround for $A(payload) called in extensions\r\n        Object.defineProperty(payload, 'toArray', {\r\n            value() {\r\n                return Object.entries(this).map(([key, value]) => ({ key, value }));\r\n            },\r\n        });\r\n\r\n        const idsParamName = params.submitVarName\r\n            ? params.submitVarName\r\n            : 'ids';\r\n\r\n        const { toJsonPayload } = params;\r\n        const selectedItems = params.selectedItems ? params.selectedItems : this.getSelectedItemsIds();\r\n        selectedItems.forEach((id, index) => {\r\n            if (toJsonPayload) {\r\n                payload[idsParamName] ||= [];\r\n                payload[idsParamName].push(id);\r\n            } else {\r\n                payload[`${idsParamName}[${index}]`] = id;\r\n            }\r\n        });\r\n\r\n        if (params.checkSelection) {\r\n            if (!params.checkSelection()) {\r\n                return;\r\n            }\r\n        } else if (!selectedItems.length) {\r\n            this._showItemsNotSelectedWarning();\r\n            return;\r\n        } else {\r\n            this._hideItemsNotSelectedWarning();\r\n        }\r\n\r\n        const submit = this._submit;\r\n        const sendRequestHandler = params.submitHandler\r\n            ? params.submitHandler\r\n            : (url, payload) => {\r\n                const parameters = {\r\n                    method: 'post',\r\n                    parameters: payload,\r\n                    reloading: false,\r\n                    context: this,\r\n\r\n                    onSuccess: transport => {\r\n                        let response;\r\n                        try {\r\n                            response = JSON.parse(transport.responseText);\r\n                        } catch {\r\n                            showInternalError(transport.responseText);\r\n                            return;\r\n                        }\r\n                        if (response.redirect) {\r\n                            redirect(response.redirect);\r\n                        } else if (!response.noReload) {\r\n                            parameters.reloading = true;\r\n                            this.reload();\r\n                        }\r\n\r\n                        if (this._clearStatusOnReload) {\r\n                            clearStatusMessages();\r\n                        }\r\n                        response.statusMessages?.forEach(({ status, content }) => {\r\n                            addStatusMessage(status, content);\r\n                        });\r\n\r\n                        if (params.onSuccess) {\r\n                            params.onSuccess(response);\r\n                        }\r\n                    },\r\n\r\n                    onCreate: () => {\r\n                        this.disable();\r\n                    },\r\n\r\n                    onComplete: () => {\r\n                        if (!parameters.reloading) {\r\n                            this.enable();\r\n                        }\r\n                    },\r\n\r\n                    onFailure: req => {\r\n                        if (504 === req.status) {\r\n                            addStatusMessage('error', this.lmsg('timeoutMessage'));\r\n                        } else {\r\n                            showInternalError(req.responseText);\r\n                        }\r\n\r\n                        this.enable();\r\n                    },\r\n                };\r\n\r\n                submit(prepareUrl(url), parameters);\r\n            };\r\n\r\n        const sendRequest = function () {\r\n            if (params.beforeSendRequest) {\r\n                params.beforeSendRequest(() => {\r\n                    sendRequestHandler(params.url, payload);\r\n                }, payload);\r\n            } else {\r\n                sendRequestHandler(params.url, payload);\r\n            }\r\n        };\r\n\r\n        let { skipConfirmation } = params;\r\n        const { mouseEvent } = params;\r\n\r\n        if (mouseEvent && !skipConfirmation) {\r\n            mouseEvent.preventDefault();\r\n            skipConfirmation = mouseEvent.shiftKey;\r\n        }\r\n\r\n        if (skipConfirmation) {\r\n            sendRequest();\r\n        } else {\r\n            params.confirmationPopup = params.confirmationPopup || this._confirmationPopup.bind(this, params, sendRequest);\r\n            params.confirmationPopup(payload);\r\n        }\r\n    }\r\n\r\n    _submit(url, params) {\r\n        new Ajax.Request(url, params);\r\n    }\r\n\r\n    _confirmationPopup({\r\n        getConfirmOnGroupOperation,\r\n        text,\r\n        description,\r\n        subtype,\r\n        needAttention = false,\r\n        needAttentionText = '',\r\n        needAttentionBlockSubmit = false,\r\n        needAttentionOnChange = null,\r\n        requestUrl,\r\n        isAjax,\r\n        loadingTitle,\r\n        locale = {},\r\n    }, onYesClick, requestParams) {\r\n        messageBox.show({\r\n            type: messageBox.TYPE_YESNO,\r\n            buttonTitles: ['Yes', 'No', 'Wait'].reduce((titles, key) => {\r\n                const buttonKey = `button${key}`;\r\n                if (locale[buttonKey]) {\r\n                    titles[key.toLowerCase()] = locale[buttonKey];\r\n                }\r\n                return titles;\r\n            }, {}),\r\n            text: getConfirmOnGroupOperation ? getConfirmOnGroupOperation() : text || locale.confirmOnGroupOperation,\r\n            description,\r\n            subtype,\r\n            needAttention,\r\n            needAttentionText,\r\n            needAttentionBlockSubmit,\r\n            needAttentionOnChange,\r\n            onYesClick,\r\n\r\n            isAjax,\r\n            requestUrl,\r\n            requestParams,\r\n            loadingTitle,\r\n        });\r\n    }\r\n\r\n    _showItemsNotSelectedWarning() {\r\n        this._hideItemsNotSelectedWarning();\r\n        const element = this._getActionBoxElement()?.querySelector('.actions-msg-container');\r\n        if (element) {\r\n            element.style.display = '';\r\n        } else {\r\n            render(this._getActionBoxElement(), (\r\n                '<div class=\"actions-msg-container\">' +\r\n                     `<span class=\"list-actions-msg\"><span>${this.lmsg('itemsNotSelected')}</span></span>` +\r\n                '</div>'\r\n            ), 'top');\r\n        }\r\n        this._itemsNotSelectedTimerId = setTimeout(() => {\r\n            this._hideItemsNotSelectedWarning();\r\n        }, 3000);\r\n    }\r\n\r\n    _hideItemsNotSelectedWarning() {\r\n        clearTimeout(this._itemsNotSelectedTimerId);\r\n        const element = this._getActionBoxElement()?.querySelector('.actions-msg-container');\r\n        if (element) {\r\n            element.style.display = 'none';\r\n        }\r\n    }\r\n\r\n    _addEvents() {\r\n        super._addEvents();\r\n\r\n        document.body.addEventListener('click', () => {\r\n            const paging = this._componentElement.querySelector('.paging');\r\n            if (paging) {\r\n                paging.classList.remove('r-paging-visible');\r\n            }\r\n        });\r\n    }\r\n\r\n    reload(urlParams, place) {\r\n        urlParams = urlParams || '';\r\n\r\n        if (!this._dataUrl) {\r\n            return null;\r\n        }\r\n\r\n        let reloadUrl = addUrlParams(this._dataUrl, urlParams);\r\n\r\n        if (this._additionalData && this._additionalData.controllerName) {\r\n            reloadUrl = addUrlParams(reloadUrl, { controllerName: this._additionalData.controllerName });\r\n        }\r\n        if (this._additionalData && this._additionalData.actionName) {\r\n            reloadUrl = addUrlParams(reloadUrl, { actionName: this._additionalData.actionName });\r\n        }\r\n\r\n        if (this._request) {\r\n            this._request.abort();\r\n        }\r\n\r\n        this._request = new Ajax.Request(prepareUrl(reloadUrl), {\r\n            method: 'get',\r\n            onSuccess: this._onReloadSuccess.bind(this, place),\r\n            onFailure: this._onReloadFailure.bind(this),\r\n            onException: this._onReloadException.bind(this),\r\n            onCreate: this._onReloadCreate.bind(this),\r\n            onComplete: this._onReloadComplete.bind(this),\r\n        });\r\n        return this._request;\r\n    }\r\n\r\n    _onReloadSuccess(place, transport) {\r\n        if (!transport.responseText) {\r\n            // :INFO: sometimes happens in FF if you are go to other page during request\r\n            return;\r\n        }\r\n\r\n        let data = {};\r\n        try {\r\n            data = JSON.parse(transport.responseText);\r\n        } catch {\r\n            showInternalError(transport.responseText);\r\n            return;\r\n        }\r\n        if (data.redirect) {\r\n            redirect(data.redirect);\r\n        }\r\n        const dataLen = this._splitListData(data, place);\r\n        if (false === dataLen) {\r\n            this.processReloadError(data);\r\n        } else {\r\n            this.redraw(place, dataLen);\r\n        }\r\n    }\r\n\r\n    _onReloadFailure(transport) {\r\n        showInternalError(transport.responseText);\r\n    }\r\n\r\n    _onReloadException(transport, exception) {\r\n        showInternalError(`${exception}\\n${transport.responseText}`);\r\n    }\r\n\r\n    _onReloadCreate() {\r\n        if (this._clearStatusOnReload) {\r\n            clearStatusMessages();\r\n        }\r\n        this.disable();\r\n    }\r\n\r\n    _onReloadComplete() {\r\n        this._request = null;\r\n        this.enable();\r\n    }\r\n\r\n    _addDisabledCheckboxesHints() {\r\n        const checkboxes = this._componentElement.querySelectorAll('input[type=\"checkbox\"][disabled]');\r\n\r\n        checkboxes.forEach(checkbox => {\r\n            new Tooltip.Instance(checkbox.previousSibling, { text: this._disabledSelectHint });\r\n        });\r\n    }\r\n\r\n    /**\r\n     * @param {String} [place]\r\n     * @param {Number} [dataLen]\r\n     */\r\n    redrawPartial(place, dataLen) {\r\n        if (!dataLen) {\r\n            return;\r\n        }\r\n\r\n        if ('before' === place) {\r\n            render(\r\n                document.getElementById(this._tableId).querySelector('thead'),\r\n                this.listDataView(this._data.slice(0, dataLen)),\r\n                'after',\r\n            );\r\n        } else if ('after' === place) {\r\n            render(\r\n                document.getElementById(this._tableId),\r\n                this.listDataView(this._data.slice(-dataLen)),\r\n            );\r\n        }\r\n\r\n        Tooltip.initData(this._componentElement);\r\n        this.updateFilter(true);\r\n    }\r\n\r\n    /**\r\n     * @param {String} [place]\r\n     * @param {Number} [dataLen]\r\n     */\r\n    redraw(place, dataLen) {\r\n        if (place && document.getElementById(this._tableId)) {\r\n            this.redrawPartial(place, dataLen);\r\n            this._onRedraw();\r\n            return;\r\n        }\r\n\r\n        this._componentElement.removeChild(this._componentElement.firstChild);\r\n        render(this._componentElement, this.containerView(), 'top');\r\n\r\n        if (this._isColumnSelectionPresent() && this._pager.totalItemCount > 0) {\r\n            this._addSelectionHandlers();\r\n        }\r\n        if (this._contextMenu) {\r\n            this._contextMenu.onRedraw();\r\n        }\r\n\r\n        this._addPathbar();\r\n\r\n        if (this._disabledSelectHint) {\r\n            this._addDisabledCheckboxesHints();\r\n        }\r\n\r\n        this._addResponsiveHtml();\r\n\r\n        this._initDropdowns();\r\n        this._initItemActions();\r\n        Tooltip.initData(this._componentElement);\r\n        this.updateFilter(true);\r\n        this._onRedraw();\r\n    }\r\n\r\n    _initItemActions() {\r\n        this._componentElement.querySelectorAll('a[data-action-name]').forEach(link => {\r\n            link.addEventListener('click', event => {\r\n                event.preventDefault();\r\n                if (!this._itemActions[link.dataset.actionName]) {\r\n                    return;\r\n                }\r\n\r\n                const itemId = link.closest('tr').dataset.rowId;\r\n                const row = this._data.filter(({ id }) => id === itemId)[0];\r\n                this._itemActions[link.dataset.actionName](row, event);\r\n            });\r\n        });\r\n    }\r\n\r\n    _initDropdowns() {\r\n        let dropdown;\r\n        this._dropdowns = this._dropdowns || [];\r\n        while ((dropdown = this._dropdowns.pop())) {\r\n            DropdownManager.unregister(dropdown);\r\n        }\r\n\r\n        this._componentElement.querySelectorAll('.dropdown .input-group').forEach(el => {\r\n            this._dropdowns.push(DropdownManager.register(el,\r\n                function () {\r\n                    return el.parentNode.classList.contains('open');\r\n                },\r\n                function () {\r\n                    el.parentNode.classList.add('open');\r\n                },\r\n                function () {\r\n                    el.parentNode.classList.remove('open');\r\n                },\r\n            ));\r\n        });\r\n    }\r\n\r\n    /**\r\n     * @param {*} data\r\n     */\r\n    processReloadError(data) {\r\n        if (data && data.statusMessages) {\r\n            $A(data.statusMessages).each(({ status, content }) => {\r\n                addStatusMessage(status, content);\r\n            });\r\n        } else {\r\n            showInternalError('Unable to load list data.');\r\n        }\r\n    }\r\n\r\n    /**\r\n     * @param {Function} callback\r\n     * @returns {Boolean}\r\n     */\r\n    hasSelectedItems(callback) {\r\n        const selected = this.getSelectedItemsIds();\r\n\r\n        if (!selected.length) {\r\n            this._showItemsNotSelectedWarning();\r\n            return false;\r\n        }\r\n        this._hideItemsNotSelectedWarning();\r\n\r\n        if (callback) {\r\n            callback.bind(this)();\r\n        }\r\n\r\n        return true;\r\n    }\r\n\r\n    getItemById(itemId) {\r\n        for (let i = 0; i < this._data.length; i++) {\r\n            if (((typeof this._data[i].id) === 'number' && this._data[i].id === Number(itemId)) ||\r\n                this._data[i].id === itemId\r\n            ) {\r\n                return this._data[i];\r\n            }\r\n        }\r\n        return null;\r\n    }\r\n\r\n    getItemByName(itemName) {\r\n        for (let i = 0; i < this._data.length; i++) {\r\n            if (this._data[i].name === itemName) {\r\n                return this._data[i];\r\n            }\r\n        }\r\n        return null;\r\n    }\r\n\r\n    _addResponsiveHtml() {\r\n        const columns = this._componentElement.querySelectorAll('thead th');\r\n        this._componentElement.querySelectorAll(`#${this._tableId} tbody tr`).forEach(row => {\r\n            const cells = row.children;\r\n            for (let i = 0; i < cells.length; i++) {\r\n                const element = cells[i];\r\n                const columnName = stripTags(columns[i].innerHTML.trim());\r\n                const columnNameHtml = `<span class=\"r-visible\">${columnName}</span>`;\r\n\r\n                this._addResponsiveHtmlToButtons(element, columnNameHtml);\r\n\r\n                this._addResponsiveHtmlToImages(element, columnNameHtml);\r\n\r\n                this._addResponsiveHtmlToIcons(element, columnNameHtml);\r\n\r\n                this._addResponsiveHtmlToNumbers(element, columnName);\r\n            }\r\n        });\r\n    }\r\n\r\n    _addResponsiveHtmlToButtons(element, columnNameHtml) {\r\n        const buttons = element.querySelectorAll('a.s-btn');\r\n        buttons.forEach(button => {\r\n            const tooltip = button.parentNode.querySelector('.tooltipData');\r\n            if (!button.querySelector('span').innerHTML && tooltip) {\r\n                button.querySelector('span').innerHTML = `<span class=\"r-visible\">${tooltip.innerHTML}</span>`;\r\n            }\r\n        });\r\n        if (buttons.length === 1 && !buttons[0].querySelector('span').innerHTML) {\r\n            buttons[0].querySelector('span').innerHTML = columnNameHtml;\r\n        }\r\n    }\r\n\r\n    _addResponsiveHtmlToImages(element, columnNameHtml) {\r\n        const images = element.querySelectorAll('a img,a [class^=\"icon-\"],a [class*=\" icon-\"]');\r\n        images.forEach(image => {\r\n            let text = '';\r\n            const tooltip = image.parentNode.parentNode.querySelector('.tooltipData');\r\n            if (!tooltip) {\r\n                if (images.length !== 1) {\r\n                    return;\r\n                }\r\n                text = columnNameHtml;\r\n            } else {\r\n                text = tooltip.innerHTML;\r\n            }\r\n            if (!image.closest('.b-indent-icon') || !image.closest('a').innerHTML.replace(image.closest('.b-indent-icon').outerHTML, '').trim()) {\r\n                let wrapper = image;\r\n                if ('img' === image.tagName.toLowerCase()) {\r\n                    const icon = document.createElement('i');\r\n                    icon.className = 'icon';\r\n                    wrapper.parentNode.replaceChild(icon, wrapper);\r\n                    wrapper = icon;\r\n                    icon.appendChild(image);\r\n                }\r\n                render(wrapper, ` <span class=\"r-visible\">${text}</span>`, 'after');\r\n                image.closest('a').classList.add('i-link');\r\n            }\r\n        });\r\n    }\r\n\r\n    _addResponsiveHtmlToIcons(element, columnNameHtml) {\r\n        const icons = element.querySelectorAll('span.b-indent-icon');\r\n        icons.forEach(icon => {\r\n            const tooltip = icon.querySelector('.tooltipData');\r\n            if (tooltip && !icon.parentNode.innerHTML.replace(icon.outerHTML, '').trim()) {\r\n                render(icon.querySelector('img'), ` <span class=\"r-visible\">${tooltip.innerHTML}</span>`, 'after');\r\n            }\r\n        });\r\n        if (icons.length === 1 && !icons[0].querySelector('span.r-visible') && !icons[0].parentNode.innerHTML.replace(icons[0].outerHTML, '').trim()) {\r\n            render(icons[0].querySelector('img'), columnNameHtml, 'after');\r\n        }\r\n    }\r\n\r\n    _addResponsiveHtmlToNumbers(element, columnName) {\r\n        const number = element.innerHTML;\r\n        const columnNameHtml = `<span class=\"r-visible\">${columnName}: </span>`;\r\n        if ('-' === number || (!isNaN(parseFloat(number)) && isFinite(number))) {\r\n            render(element, columnNameHtml, 'top');\r\n        }\r\n        const links = element.querySelectorAll('a');\r\n        if (\r\n            links.length === 1 &&\r\n            ('-' === links[0].innerHTML || (!isNaN(parseFloat(links[0].innerHTML)) && isFinite(links[0].innerHTML)))\r\n        ) {\r\n            render(element, columnNameHtml, 'top');\r\n        }\r\n    }\r\n\r\n    checkSyncStatus(statusElementId, url, onFinishCallback, randomId, options) {\r\n        // list was reloaded - stop the check of sync status for old list elements\r\n        if (this._randomId !== randomId) {\r\n            return;\r\n        }\r\n\r\n        options = {\r\n            timeout: 5000,\r\n            progressStatus: 'started',\r\n            ...options,\r\n        };\r\n        api.get(url)\r\n            .then(result => {\r\n                const statusElement = document.getElementById(statusElementId);\r\n                if (!statusElement) {\r\n                    return;\r\n                }\r\n                if (options.progressStatus === result.status) {\r\n                    setTimeout(() => {\r\n                        this.checkSyncStatus(statusElementId, url, onFinishCallback, randomId, options);\r\n                    }, options.timeout);\r\n                } else {\r\n                    onFinishCallback(statusElement, result);\r\n                }\r\n            });\r\n    }\r\n\r\n    _getOperations() {\r\n        const operations = this._operations ? this._operations.slice() : [];\r\n        if (!this._additionalData || !this._additionalData.operations || !this._additionalData.operations.length) {\r\n            return operations;\r\n        }\r\n        const deleteButtonIndex = this._getDeleteButtonIndex();\r\n        let args = [deleteButtonIndex, 0];\r\n        if (deleteButtonIndex !== 0 && operations[deleteButtonIndex - 1].componentType !== 'Jsw.bar.Separator') {\r\n            args.push({ componentType: bar.Separator });\r\n        }\r\n        args = args.concat(this._additionalData.operations);\r\n        if (deleteButtonIndex !== operations.length) {\r\n            args.push({ componentType: bar.Separator });\r\n        }\r\n        operations.splice(...args);\r\n        return operations;\r\n    }\r\n\r\n    _getColumns() {\r\n        const columns = this._columns.slice();\r\n\r\n        const extensions = (this._additionalData && this._additionalData.extensions) || {};\r\n        Object.keys(extensions).forEach(id => {\r\n            this._modifyColumnsByExtension(columns, extensions[id]);\r\n        });\r\n\r\n        return columns;\r\n    }\r\n\r\n    _modifyColumnsByExtension(columns, extension) {\r\n        const findColumn = dataIndex => {\r\n            const column = columns.filter(column => column.dataIndex === dataIndex)[0];\r\n\r\n            dataIndex = parseInt(dataIndex);\r\n            return column || columns[dataIndex < 0 ? dataIndex + columns.length : dataIndex - 1];\r\n        };\r\n\r\n        if (extension.columnsOverride) {\r\n            Object.keys(extension.columnsOverride).forEach(dataIndex => {\r\n                const originalColumn = findColumn(dataIndex);\r\n                if (!originalColumn) {\r\n                    return;\r\n                }\r\n\r\n                const column = extension.columnsOverride[dataIndex];\r\n\r\n                if (column.title) {\r\n                    column.header = column.title;\r\n                }\r\n\r\n                if (column.renderer) {\r\n                    // eslint-disable-next-line no-eval\r\n                    column.renderer = eval(`(${column.renderer})`);\r\n                }\r\n\r\n                if ('undefined' !== typeof column.isVisible && !column.isVisible) {\r\n                    column.isVisible = function () {\r\n                        return false;\r\n                    };\r\n                }\r\n\r\n                Object.extend(originalColumn, column);\r\n            });\r\n        }\r\n\r\n        if (extension.columns) {\r\n            Object.keys(extension.columns).forEach(dataIndex => {\r\n                let column = extension.columns[dataIndex];\r\n\r\n                if (column.renderer) {\r\n                    // eslint-disable-next-line no-eval\r\n                    column.renderer = eval(`(${column.renderer})`);\r\n                }\r\n\r\n                column = {\r\n                    header: column.title,\r\n                    dataIndex,\r\n                    ...column,\r\n                };\r\n\r\n                let index;\r\n                let originalColumn;\r\n\r\n                if (column.insertBefore && (originalColumn = findColumn(column.insertBefore))) {\r\n                    index = columns.indexOf(originalColumn);\r\n                } else if (column.insertAfter && (originalColumn = findColumn(column.insertAfter))) {\r\n                    index = columns.indexOf(originalColumn) + 1;\r\n                } else {\r\n                    index = columns.length;\r\n                }\r\n\r\n                columns.splice(index, 0, column);\r\n            });\r\n        }\r\n    }\r\n\r\n    _getDeleteButtonIndex() {\r\n        if (!this._operations) {\r\n            return 0;\r\n        }\r\n        let deleteButtonIndex = this._operations.length;\r\n        this._operations.forEach((el, i) => {\r\n            if (el.addCls === 'sb-remove-selected') {\r\n                deleteButtonIndex = i;\r\n            }\r\n        });\r\n        return deleteButtonIndex;\r\n    }\r\n\r\n    getItemActions({ actions = [] }) {\r\n        actions = actions\r\n            .reduce((actions, actionInfo) => {\r\n                if (actionInfo === 'separator') {\r\n                    if (actions.length && actions[actions.length - 1] !== 'separator') {\r\n                        actions.push(actionInfo);\r\n                    }\r\n                    return actions;\r\n                }\r\n\r\n                if (typeof actionInfo === 'string') {\r\n                    actionInfo = { name: actionInfo };\r\n                }\r\n                if (actionInfo.href || this._itemActions[actionInfo.name]) {\r\n                    actions.push(actionInfo);\r\n                }\r\n                return actions;\r\n            }, []);\r\n\r\n        if (actions[actions.length - 1] === 'separator') {\r\n            actions.pop();\r\n        }\r\n\r\n        return actions;\r\n    }\r\n\r\n    render() {\r\n        super.render();\r\n\r\n        if (this._getColumns().includes(COLUMN_ACTIONS)) {\r\n            this._contextMenu = new ListContextMenu({\r\n                renderTo: document.body,\r\n                list: this,\r\n            });\r\n        }\r\n\r\n        if (!this._data) {\r\n            this.reload();\r\n            return;\r\n        }\r\n\r\n        this.redraw();\r\n    }\r\n}\r\n\r\n// TODO PMT-4391: Plesk migrator is broken in Plesk 17.9.1 after cutting core's classes\r\nList.subclasses = [];\r\n\r\nexport default List;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport ce from '../createElement';\r\nimport { Container } from '../container';\r\nimport { DropdownManager } from '../dropdown-manager';\r\nimport isRtl from '../isRtl';\r\nimport prepareUrl from '../prepareUrl';\r\nimport render from '../render';\r\n\r\nconst TARGET_TYPE_DROP_DOWN = 'dropDown';\r\nconst TARGET_TYPE_TABLE_ROW = 'tableRow';\r\n\r\nclass ListContextMenu extends Container {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._cls = 'popup-box popup-menu collapsed';\r\n        this._list = this._getConfigParam('list');\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        this._componentElement.innerHTML = (\r\n            '<table class=\"popup-wrapper\" cellspacing=\"0\"><tbody><tr><td class=\"popup-container\">' +\r\n                '<div class=\"c1\"><div class=\"c2\"><div class=\"c3\"><div class=\"c4\"><div class=\"c5\">' +\r\n                    '<div class=\"popup-content\">' +\r\n                        '<div class=\"popup-content-area\"></div>' +\r\n                    '</div>' +\r\n                '</div></div></div></div></div>' +\r\n            '</td></tr></tbody></table>'\r\n        );\r\n    }\r\n\r\n    /**\r\n     * Called on list redraw\r\n     */\r\n    onRedraw() {\r\n        this._initRowStyles();\r\n        this._initShowOnClick();\r\n    }\r\n\r\n    /**\r\n     * Get list of actions for popup by row\r\n     */\r\n    _prefillPopup(row) {\r\n        render(this._componentElement.querySelector('.popup-content-area'), (\r\n            ce('ul', this._list.getItemActions(row).map(actionInfo => {\r\n                if (actionInfo === 'separator') {\r\n                    return ce('li.separator', ce('span'));\r\n                }\r\n\r\n                return ce('li',\r\n                    ce('a', {\r\n                        class: `sb-btn ${actionInfo.iconClass ? actionInfo.iconClass : 'sb-no-icon'}`,\r\n                        href: actionInfo.href ? prepareUrl(actionInfo.href) : null,\r\n                        target: actionInfo.newWindow ? '_blank' : null,\r\n                        'data-button-key': actionInfo.name,\r\n                        onclick: this._list._itemActions[actionInfo.name] ? event => {\r\n                            event.preventDefault();\r\n                            this._list._itemActions[actionInfo.name](row, event);\r\n                        } : null,\r\n                    }, ce('i',\r\n                        ce('i',\r\n                            ce('i',\r\n                                ce('span', actionInfo.title || this._list.lmsg(`item-action-${actionInfo.name}`)),\r\n                            ),\r\n                        ),\r\n                    )),\r\n                );\r\n            }))\r\n        ), 'inner');\r\n    }\r\n\r\n    /**\r\n     * Show prefilled popup on context menu button click\r\n     */\r\n    _togglePopupNearButton(button) {\r\n        document.getElementById(this._list._tableId).querySelectorAll('tr.odd,tr.even').forEach(el => {\r\n            el.classList.remove('row-over');\r\n        });\r\n        this._componentElement.classList.add('collapsed');\r\n\r\n        if (!button.closest('.btn-group').classList.contains('btn-group-open')) {\r\n            document.querySelectorAll('.btn-list-menu').forEach(el => {\r\n                el.closest('.btn-group').classList.remove('btn-group-open');\r\n            });\r\n\r\n            this._componentElement.classList.remove('collapsed');\r\n            button.closest('tr').classList.add('row-over');\r\n        }\r\n\r\n        button.closest('.btn-group').classList.toggle('btn-group-open');\r\n\r\n        const scrollOffsets = document.viewport.getScrollOffsets();\r\n        const buttonPosition = Element.viewportOffset(button);\r\n        buttonPosition.left += scrollOffsets.left;\r\n        buttonPosition.top += scrollOffsets.top;\r\n\r\n        const buttonWidth = Element.getWidth(button);\r\n        const buttonHeight = Element.getHeight(button);\r\n\r\n        if (!this._componentElement.classList.contains('collapsed')) {\r\n            this._setPosition(\r\n                buttonPosition.left,\r\n                buttonPosition.top + buttonHeight,\r\n                buttonPosition.left + buttonWidth,\r\n                buttonPosition.top,\r\n            );\r\n        }\r\n    }\r\n\r\n    _initRowStyles() {\r\n        document.getElementById(this._list._tableId).querySelectorAll('tr.odd,tr.even').forEach(el => {\r\n            const button = el.querySelector('.dropdown-toggle');\r\n            if (!button) {\r\n                return;\r\n            }\r\n\r\n            const row = this._list.getItemById(button.dataset.rowId);\r\n            if (!row || !this._list.getItemActions(row).length) {\r\n                return;\r\n            }\r\n\r\n            el.classList.add('list-context-actions');\r\n        });\r\n    }\r\n\r\n    /**\r\n     * Hide popup and remove selection from row\r\n     */\r\n    _hidePopup() {\r\n        this._componentElement.classList.add('collapsed');\r\n        this.targetData.rowEl.querySelector('.btn-group').classList.remove('btn-group-open');\r\n        this.targetData.rowEl.classList.remove('row-over');\r\n    }\r\n\r\n    _openPopup(event) {\r\n        this._prefillPopup(this.targetData.rowData);\r\n        if (this.targetType === TARGET_TYPE_TABLE_ROW) {\r\n            this.targetData.rowEl.classList.add('row-over');\r\n            this._componentElement.classList.remove('collapsed');\r\n            this._setPosition(event.clientX + (window.scrollX || window.pageXOffset), event.clientY + (window.scrollY || window.pageYOffset));\r\n        } else {\r\n            this._togglePopupNearButton(this.targetData.dropDownEl);\r\n        }\r\n    }\r\n\r\n    _isListContextEvent({ target }) {\r\n        return !target.closest('input,a') && (target.closest('.list-menu') || target.closest('[data-row-id]'));\r\n    }\r\n\r\n    _getTargetData(target) {\r\n        const rowEl = target.closest('tr');\r\n        let dropDownEl;\r\n\r\n        if (this.targetType === TARGET_TYPE_DROP_DOWN) {\r\n            dropDownEl = target.closest('.btn-list-menu');\r\n        } else if (this.targetType === TARGET_TYPE_TABLE_ROW) {\r\n            dropDownEl = rowEl.querySelector('.dropdown-toggle');\r\n        }\r\n        if (!dropDownEl) {\r\n            return null;\r\n        }\r\n\r\n        const rowData = this._list.getItemById(dropDownEl.dataset.rowId);\r\n        if (rowData && this._list.getItemActions(rowData).length) {\r\n            return {\r\n                rowData,\r\n                rowEl,\r\n                dropDownEl,\r\n            };\r\n        }\r\n\r\n        return null;\r\n    }\r\n\r\n    _getTargetType(target) {\r\n        if (target.closest('.list-menu')) {\r\n            return TARGET_TYPE_DROP_DOWN;\r\n        }\r\n\r\n        if (target.closest('[data-row-id]')) {\r\n            return TARGET_TYPE_TABLE_ROW;\r\n        }\r\n\r\n        return null;\r\n    }\r\n\r\n    _open(event) {\r\n        this.targetType = this._getTargetType(event.target);\r\n        this.targetData = this._getTargetData(event.target);\r\n\r\n        if (!this.targetData) {\r\n            return;\r\n        }\r\n\r\n        this._openPopup(event);\r\n    }\r\n\r\n    _hide(event) {\r\n        if (!this.targetData) {\r\n            return;\r\n        }\r\n\r\n        this._hidePopup(event);\r\n\r\n        if (this._isListContextEvent(event) && this._isImmediatelyOpening(event)) {\r\n            this._open(event);\r\n        }\r\n    }\r\n\r\n    _isOpened() {\r\n        return (\r\n            (\r\n                this.targetData\r\n                && this.targetData.dropDownEl\r\n                && this.targetData.dropDownEl.closest('.btn-group').classList.contains('btn-group-open')\r\n            )\r\n            || !this._componentElement.classList.contains('collapsed')\r\n        );\r\n    }\r\n\r\n    _isImmediatelyOpening(event) {\r\n        const targetType = this._getTargetType(event.target);\r\n        const targetData = this._getTargetData(event.target);\r\n\r\n        return (targetType && targetData\r\n            && ((targetType === TARGET_TYPE_DROP_DOWN && this.targetType === TARGET_TYPE_TABLE_ROW)\r\n                || (targetType === TARGET_TYPE_DROP_DOWN\r\n                && targetData.rowEl.dataset.rowId !== this.targetData.rowEl.dataset.rowId)\r\n            )\r\n        );\r\n    }\r\n\r\n    /**\r\n     * Show popup on click row or dropdown button\r\n     */\r\n    _initShowOnClick() {\r\n        DropdownManager.register(\r\n            document.getElementById(this._list._tableId),\r\n            this._isOpened.bind(this),\r\n            this._open.bind(this),\r\n            this._hide.bind(this),\r\n            this._isListContextEvent.bind(this),\r\n        );\r\n    }\r\n\r\n    _setPosition(x, y, altX, altY) {\r\n        altX = altX || x;\r\n        altY = altY || y;\r\n\r\n        const scrollOffsets = document.viewport.getScrollOffsets();\r\n\r\n        const windowWidth = Element.getWidth(document.body);\r\n        const popupWidth = Element.getWidth(this._componentElement);\r\n        if (isRtl()) {\r\n            if ((altX - popupWidth - scrollOffsets.left) > 0) {\r\n                x = altX - popupWidth;\r\n            }\r\n        } else if ((x + popupWidth - scrollOffsets.left) > windowWidth) {\r\n            x = altX - popupWidth;\r\n        }\r\n\r\n        const windowHeight = Element.getHeight(document.body);\r\n        const popupHeight = Element.getHeight(this._componentElement);\r\n        const popupMarginTop = parseInt(Element.getStyle(this._componentElement, 'marginTop'));\r\n        if ((y + popupHeight + popupMarginTop - scrollOffsets.top) > windowHeight) {\r\n            y = altY - popupHeight - (2 * popupMarginTop);\r\n        }\r\n\r\n        this._componentElement.style.right = 'auto';\r\n        this._componentElement.style.left = `${x}px`;\r\n        this._componentElement.style.top = `${y}px`;\r\n    }\r\n}\r\n\r\nexport default ListContextMenu;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nexport default () => document.documentElement.dir === 'rtl';\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport escapeAttribute from '../escapeAttribute';\r\n\r\nexport const COLUMN_SELECTION = {\r\n    cls: 'select',\r\n    headerCls: 'select',\r\n    hideDisabled: false,\r\n    headerRenderer() {\r\n        return '<input type=\"checkbox\" class=\"checkbox\" name=\"listGlobalCheckbox\"/>';\r\n    },\r\n    renderer(item, isDisabled) {\r\n        if (!isDisabled) {\r\n            return `<input type=\"checkbox\" class=\"checkbox\" name=\"listCheckbox[]\" value=\"${escapeAttribute(item.id)}\"/>`;\r\n        }\r\n\r\n        return (\r\n            '<div>' +\r\n                '<span class=\"checkbox-disabled-wrapper\"></span>' +\r\n                '<input style=\"z-index: 1;\" disabled=\"disabled\" type=\"checkbox\" class=\"checkbox\"/>' +\r\n            '</div>'\r\n        );\r\n    },\r\n};\r\n\r\nexport const COLUMN_ACTIONS = {\r\n    header: '',\r\n    cls: 'min',\r\n    sortable: false,\r\n    renderer(item) {\r\n        if (!item.actions || !item.actions.length) {\r\n            return '';\r\n        }\r\n        const rowId = item.id ? escapeAttribute(item.id) : '';\r\n        return (\r\n            '<span class=\"btn-group list-menu\">' +\r\n                `<button type=\"button\" class=\"btn btn-list-menu dropdown-toggle\" data-row-id=\"${rowId}\">` +\r\n                    '<i class=\"icon\">' +\r\n                        `<img src=\"${require('icons/16/plesk/menu.png')}\" alt=\"\">` +\r\n                    '</i> ' +\r\n                    '<em class=\"caret\"></em>' +\r\n                '</button>' +\r\n            '</span>'\r\n        );\r\n    },\r\n};\r\n\r\nexport const ITEMS_UNLIMITED = 100000;\r\n","module.exports = Jsw.skinUrl + \"/icons/16/plesk/menu.png?a75a537332528331bb513a94e26d173d\";","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\n/**\r\n * Remove tags from string\r\n * @param {string} str\r\n * @returns {string}\r\n */\r\nconst stripTags = str => str.replace(/<\\/?[^>]+(>|$)/g, '');\r\n\r\nexport default stripTags;\r\n\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Component } from '../component';\r\nimport { SmallButton } from '../small-button';\r\nimport createComponent from '../createComponent';\r\nimport render from '../render';\r\n\r\nclass AdditionalActions extends Component {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration({\r\n            cls: 'actions-menu',\r\n            ...config,\r\n        });\r\n\r\n        this._operations = this._getConfigParam('operations', null);\r\n        this._titleAddCls = this._getConfigParam('titleAddCls', 'sb-more-actions');\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        render(this._componentElement, (\r\n            '<div class=\"popup-box collapsed\">' +\r\n                '<table class=\"popup-wrapper\" cellspacing=\"0\"><tbody><tr>' +\r\n                    '<td class=\"popup-container\">' +\r\n                        '<div class=\"c1\"><div class=\"c2\"><div class=\"c3\"><div class=\"c4\"><div class=\"c5\">' +\r\n                            '<div class=\"popup-heading\">' +\r\n                                '<div class=\"heading-area\">' +\r\n                                    '<span class=\"close\"></span>' +\r\n                                    '<h4>' +\r\n                                        `<span>${this._getConfigParam('title', '')}</span>` +\r\n                                    '</h4>' +\r\n                                '</div>' +\r\n                            '</div>' +\r\n                            '<div class=\"popup-content\">' +\r\n                                '<div class=\"popup-content-area\">' +\r\n                                    `<ul id=\"${this._id}-operations\">` +\r\n                                    '</ul>' +\r\n                                '</div>' +\r\n                            '</div>' +\r\n                        '</div></div></div></div></div>' +\r\n                    '</td>' +\r\n                '</tr></tbody></table>' +\r\n            '</div>'\r\n        ));\r\n    }\r\n\r\n    _addEvents() {\r\n        super._addEvents();\r\n\r\n        document.body.addEventListener('click', () => {\r\n            this.collapse();\r\n        });\r\n    }\r\n\r\n    enable() {\r\n        this._titleButton.enable();\r\n    }\r\n\r\n    disable() {\r\n        this._titleButton.disable();\r\n    }\r\n\r\n    toggle() {\r\n        const popup = this._componentElement.querySelector('.popup-box');\r\n\r\n        if (popup) {\r\n            popup.classList.toggle('collapsed');\r\n        }\r\n\r\n        const button = this._componentElement.querySelector(`.${this._titleAddCls}`);\r\n\r\n        if (button) {\r\n            button.classList.toggle('active');\r\n        }\r\n    }\r\n\r\n    collapse() {\r\n        const popup = this._componentElement.querySelector('.popup-box');\r\n\r\n        if (popup) {\r\n            popup.classList.add('collapsed');\r\n        }\r\n\r\n        const button = this._componentElement.querySelector(`.${this._titleAddCls}`);\r\n\r\n        if (button) {\r\n            button.classList.remove('active');\r\n        }\r\n    }\r\n\r\n    render() {\r\n        super.render();\r\n\r\n        this._titleButton = new SmallButton({\r\n            id: `${this._id}-title-button`,\r\n            title: this._getConfigParam('title', ''),\r\n            cls: 's-btn',\r\n            addCls: this._titleAddCls,\r\n            handler: event => {\r\n                event.preventDefault();\r\n                event.stopPropagation();\r\n                this.toggle();\r\n            },\r\n        });\r\n        render(this._componentElement, this._titleButton);\r\n\r\n        if (!this._operations) {\r\n            return;\r\n        }\r\n\r\n        const operationsArea = this._componentElement.querySelector(`#${this._id}-operations`);\r\n        this._operations.each(config => {\r\n            const liElement = new Element('li');\r\n            render(operationsArea, liElement);\r\n\r\n            const operation = createComponent(config);\r\n            const wrapperClass = operation.getWrapperClass();\r\n            if (wrapperClass) {\r\n                liElement.classList.add(wrapperClass);\r\n            }\r\n\r\n            render(liElement, operation);\r\n        });\r\n\r\n        if (this._getConfigParam('disabled', false)) {\r\n            this.disable();\r\n        } else {\r\n            this.enable();\r\n        }\r\n    }\r\n}\r\n\r\nexport default AdditionalActions;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { StatusMessage } from './status-message';\r\n\r\nexport class UnresolvedDomainWarning extends StatusMessage {\r\n    _addEvents() {\r\n        super._addEvents();\r\n\r\n        this._componentElement.querySelector('a#unresolved-domain-warning')?.addEventListener('click', e => {\r\n            e.preventDefault();\r\n            Plesk.require('app/dns-helper/dns-settings', run => {\r\n                run({\r\n                    id: this._getConfigParam('id'),\r\n                    isAlias: this._getConfigParam('isAlias'),\r\n                });\r\n            });\r\n        });\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\n/* eslint-disable react/require-render-return */\r\nimport { addToast } from 'helpers/toasts';\r\n\r\nimport { Component } from './component';\r\nimport { Container } from './container';\r\nimport { redirect } from './form-redirect';\r\nimport Observer from './Observer';\r\nimport createComponent from './createComponent';\r\nimport prepareUrl from './prepareUrl';\r\nimport escapeHtml from './escapeHtml';\r\nimport api from './api';\r\nimport pleskWS from './pleskWS';\r\nimport Locale from './Locale';\r\n\r\nconst STATUS_DONE = 'done';\r\nconst STATUS_ERROR = 'error';\r\nconst STATUS_STARTED = 'started';\r\nconst STATUS_NOT_STARTED = 'not_started';\r\nconst STATUS_PREPARING = 'preparing';\r\nconst STATUS_FLYING = 'flying';\r\nconst STATUS_CANCELED = 'canceled';\r\n\r\nclass Pool {\r\n    constructor(items) {\r\n        this.items = items;\r\n        this.map = items.reduce((acc, item) => {\r\n            acc[item.getId()] = item;\r\n            return acc;\r\n        }, {});\r\n    }\r\n\r\n    take(id) {\r\n        if (this.map[id]) {\r\n            const item = this.map[id];\r\n            delete this.map[id];\r\n            this.items = this.items.filter(item => item.getId() !== id);\r\n            return item;\r\n        }\r\n    }\r\n\r\n    shift() {\r\n        const item = this.items.shift();\r\n        if (item) {\r\n            delete this.map[item.getId()];\r\n            return item;\r\n        }\r\n    }\r\n\r\n    hasItems() {\r\n        return this.items.length > 0;\r\n    }\r\n}\r\n\r\nconst generateUniq = () => Math.random().toString(36).slice(2);\r\n\r\nexport class ProgressBar extends Container {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration({\r\n            id: 'asyncProgressBarWrapper',\r\n            ...config,\r\n        });\r\n\r\n        this._preparingCounter = 0;\r\n        this._hidden = false;\r\n\r\n        this.intervalUpdateTimer = null;\r\n        this.pleskWS = null;\r\n        if (this._getConfigParam('wsEnabled')) {\r\n            this.pleskWS = pleskWS.bind({\r\n                actions: {\r\n                    // eslint-disable-next-line camelcase\r\n                    task_created: this.onUpdated.bind(this),\r\n                    // eslint-disable-next-line camelcase\r\n                    task_updated: this.onUpdated.bind(this),\r\n                    // eslint-disable-next-line camelcase\r\n                    task_deleted: this.onDeleted.bind(this),\r\n                },\r\n                onOpen: this.loadTasks.bind(this),\r\n                onClose: this.loadTasks.bind(this),\r\n            });\r\n        } else {\r\n            this.loadTasks();\r\n        }\r\n    }\r\n\r\n    addPreparingItem(title) {\r\n        const id = `preparing-${this._preparingCounter}`;\r\n        const item = new ProgressBar.Item({\r\n            errors: [],\r\n            progressTitle: title,\r\n            status: 'flying',\r\n            id,\r\n            uniq: generateUniq(),\r\n        });\r\n        this._preparingCounter++;\r\n        this._items.unshift(item);\r\n        return id;\r\n    }\r\n\r\n    // do not remove due to backward compatibility\r\n    removePreparingItem() {\r\n    }\r\n\r\n    // do not remove due to backward compatibility\r\n    toggle() {\r\n    }\r\n\r\n    async loadTasks() {\r\n        try {\r\n            const { items } = await api.get(prepareUrl('/task/task-progress'));\r\n\r\n            if (Array.isArray(items)) {\r\n                this._loaded = true;\r\n                this.mergeItems(items.map(createComponent));\r\n            }\r\n        } catch {}\r\n    }\r\n\r\n    mergeItems(items) {\r\n        let nextItems = this.getMergedItems(items);\r\n\r\n        // remove completed items\r\n        this.getItems().forEach(item => {\r\n            if (!items.some(newItemData => item.getId() === newItemData.getId())) {\r\n                this.onItemStatusChange(this.completeItem(item.initialConfig));\r\n                nextItems = nextItems.filter(currentItem => currentItem.getId() !== item.getId());\r\n            }\r\n        });\r\n\r\n        this.setItems(nextItems);\r\n    }\r\n\r\n    mergeItem(item) {\r\n        const nextItems = this.getMergedItems([item]);\r\n        this.setItems(nextItems);\r\n    }\r\n\r\n    getMergedItems(items) {\r\n        const pool = new Pool(items);\r\n        let nextItems = this.getItems();\r\n        // update exist items\r\n        nextItems = nextItems.map(item => {\r\n            const nextItem = pool.take(item.getId());\r\n            if (nextItem) {\r\n                if (item.getUpdated() > nextItem.getUpdated()) {\r\n                    return item;\r\n                }\r\n                if (nextItem.getStatus() !== item.getStatus()) {\r\n                    this.onItemStatusChange(nextItem.getData());\r\n                } else if (JSON.stringify(nextItem.getSteps()) !== JSON.stringify(item.getSteps())) {\r\n                    this.onItemStepChange(nextItem.getData());\r\n                }\r\n                nextItem.setRefreshLinkEnabled(STATUS_STARTED !== nextItem.getStatus() && item.isStarted() ? true : item.isRefreshLinkEnabled());\r\n                nextItem.setUniq(item.getUniq());\r\n                return nextItem;\r\n            }\r\n            return item;\r\n        });\r\n\r\n        // replace preparing items by new items\r\n        if (pool.hasItems()) {\r\n            nextItems = nextItems.map(item => {\r\n                if (item.isFlying()) {\r\n                    const nextItem = pool.shift();\r\n                    if (nextItem) {\r\n                        this.onItemStatusChange(nextItem.getData());\r\n                        nextItem.setUniq(item.getUniq());\r\n                        return nextItem;\r\n                    }\r\n                }\r\n                return item;\r\n            });\r\n        }\r\n\r\n        // add new items\r\n        if (pool.hasItems()) {\r\n            let nextItem;\r\n            do {\r\n                nextItem = pool.shift();\r\n                if (nextItem) {\r\n                    this.onItemStatusChange(nextItem.getData());\r\n                    nextItems.unshift(nextItem);\r\n                }\r\n            } while (nextItem);\r\n        }\r\n\r\n        return nextItems;\r\n    }\r\n\r\n    // do not remove due to backward compatibility\r\n    update() {\r\n        if (this.pleskWS && this.pleskWS.isReady()) {\r\n            this.stopPeriodicalExecutor();\r\n            return;\r\n        }\r\n\r\n        this.loadTasks();\r\n    }\r\n\r\n    onUpdated(data) {\r\n        this.mergeItem(createComponent(data));\r\n    }\r\n\r\n    onDeleted(data) {\r\n        this.onItemStatusChange(this.completeItem(data));\r\n        this.removeItemsByIds([data.id]);\r\n    }\r\n\r\n    removeItemsByIds(ids) {\r\n        if (!ids.length) {\r\n            return;\r\n        }\r\n        const items = this.getItems();\r\n        for (let i = 0; i < ids.length; i++) {\r\n            for (let j = 0; j < items.length; j++) {\r\n                if (items[j].getId() === ids[i]) {\r\n                    items.splice(j, 1);\r\n                    break;\r\n                }\r\n            }\r\n        }\r\n        this.setItems(items);\r\n    }\r\n\r\n    onItemStatusChange(newItemData) {\r\n        this.onItemStepChange(newItemData);\r\n        Observer.notify(newItemData, 'plesk:taskUpdate');\r\n        if (this.isCompletedItem(newItemData)) {\r\n            Observer.notify(newItemData, 'plesk:taskComplete');\r\n        }\r\n    }\r\n\r\n    onItemStepChange(newItemData) {\r\n        Observer.notify(newItemData, 'plesk:taskStepUpdate');\r\n    }\r\n\r\n    setItems(items) {\r\n        this._initItems(items);\r\n        this._renderItems();\r\n        this._updateProgressDialog();\r\n    }\r\n\r\n    fly(beginOffset, taskName, action) {\r\n        const progressBarItemId = this.addPreparingItem(taskName);\r\n        this._renderItems();\r\n        // wait toast animation\r\n        setTimeout(action, 300);\r\n        return progressBarItemId;\r\n    }\r\n\r\n    progressDialog(task, { onHide, ...params } = {}) {\r\n        const returnUrl = task && task.returnUrl;\r\n        this._progressBarItem = task instanceof ProgressBar.Item ? task : createComponent(task);\r\n        this.isOpenProgressDialog = true;\r\n\r\n        if (!this._progressDialog) {\r\n            this._progressDialog = document.createElement('div');\r\n        }\r\n\r\n        this.renderProgressDialog = () => {\r\n            Plesk.require('app/progress-dialog', run => {\r\n                if (!this._progressBarItem || !this._progressDialog) {\r\n                    return;\r\n                }\r\n\r\n                run({\r\n                    container: this._progressDialog,\r\n                    isOpen: this.isOpenProgressDialog,\r\n                    title: this._progressBarItem.getProgressTitle(),\r\n                    steps: this._progressBarItem.getSteps(),\r\n                    errors: this._progressBarItem.getVisibleErrors(),\r\n                    onHide: () => {\r\n                        this.isOpenProgressDialog = false;\r\n                        this.renderProgressDialog();\r\n\r\n                        if (onHide) {\r\n                            onHide(this._progressBarItem);\r\n                            return;\r\n                        }\r\n\r\n                        const redirectUrl = this._progressBarItem.isComplete()\r\n                            ? this._progressBarItem._getConfigParam('redirect') || returnUrl\r\n                            : returnUrl;\r\n                        const doRedirect = () => {\r\n                            if (redirectUrl) {\r\n                                redirect(redirectUrl);\r\n                            } else {\r\n                                this.show();\r\n                            }\r\n                        };\r\n\r\n                        if (this._progressBarItem.isCompleteSuccessfully() || this._progressBarItem.isCompleteWithWarning()) {\r\n                            this._progressBarItem.remove().then(() => {\r\n                                doRedirect();\r\n                                this._progressBarItem = null;\r\n                            });\r\n                        } else {\r\n                            doRedirect();\r\n                        }\r\n                    },\r\n                    locale: Locale.getSection('components.tasks.common').messages,\r\n                    ...params,\r\n                });\r\n            });\r\n        };\r\n\r\n        this.renderProgressDialog();\r\n        this.update();\r\n        this.hide();\r\n    }\r\n\r\n    hide() {\r\n        this._hidden = true;\r\n        this._renderItems();\r\n    }\r\n\r\n    show() {\r\n        this._hidden = false;\r\n        this._renderItems();\r\n    }\r\n\r\n    _updateProgressDialog() {\r\n        if (!this._progressBarItem) {\r\n            return;\r\n        }\r\n\r\n        const newItem = this.getItem(this._progressBarItem.getId());\r\n        if (newItem) {\r\n            this._progressBarItem = newItem;\r\n        } else if (this._progressBarItem.getSteps().length) {\r\n            // task was removed, show it as finished\r\n            const finishedItem = createComponent(this.completeItem({\r\n                ...this._progressBarItem.initialConfig,\r\n                steps: this._progressBarItem.getSteps().map(step => this.completeItem(step)),\r\n            }));\r\n            finishedItem.setProgressBarElement(this._progressBarItem.getProgressBarElement());\r\n            this._progressBarItem = finishedItem;\r\n        }\r\n        this.renderProgressDialog();\r\n    }\r\n\r\n    _renderItems() {\r\n        super._renderItems();\r\n\r\n        if (this._items.length) {\r\n            this.setPeriodicalExecutor();\r\n        }\r\n\r\n        if (!this._loaded) {\r\n            return;\r\n        }\r\n\r\n        Plesk.require('app/task-progress-bar', run => {\r\n            run({\r\n                container: this._componentElement,\r\n                items: this._items,\r\n                locale: Locale.getSection('components.tasks.common').messages,\r\n                isOpen: !this._hidden,\r\n            });\r\n        });\r\n    }\r\n\r\n    _renderItem(item) {\r\n        item.setProgressBarElement(this);\r\n    }\r\n\r\n    setPeriodicalExecutor() {\r\n        if (!this.intervalUpdateTimer && this.hasStartedTasks()) {\r\n            this.intervalUpdateTimer = setInterval(() => {\r\n                this.update();\r\n                if (!this.hasStartedTasks()) {\r\n                    this.stopPeriodicalExecutor();\r\n                }\r\n            }, 5000);\r\n        }\r\n    }\r\n\r\n    stopPeriodicalExecutor() {\r\n        if (this.intervalUpdateTimer) {\r\n            clearInterval(this.intervalUpdateTimer);\r\n            this.intervalUpdateTimer = null;\r\n        }\r\n    }\r\n\r\n    hasStartedTasks() {\r\n        return this._items.some(item => item.isStarted());\r\n    }\r\n\r\n    isCompletedItem({ status }) {\r\n        return [STATUS_DONE, STATUS_ERROR, STATUS_CANCELED].indexOf(status) !== -1;\r\n    }\r\n\r\n    completeItem(data) {\r\n        return {\r\n            ...data,\r\n            status: this.isCompletedItem(data) ? data.status : STATUS_DONE,\r\n        };\r\n    }\r\n}\r\n\r\nProgressBar.Item = class Item extends Component {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._id = this._getConfigParam('id', '');\r\n        this._updated = new Date(this._getConfigParam('updated'));\r\n        this._status = this._getConfigParam('status', '');\r\n        this._errors = this._getConfigParam('errors', []);\r\n        this._output = this._getConfigParam('output', []);\r\n        this._isRefreshLinkEnabled = this._getConfigParam('isRefreshLinkEnabled', false)\r\n            && this._getConfigParam('isRefreshAllowed', true);\r\n        this._progressValue = this._getConfigParam('progressValue', 0);\r\n        this._canCancel = this._getConfigParam('canCancel', true);\r\n        this._referrer = this._getConfigParam('referrer', '');\r\n        this._uniq = this._getConfigParam('uniq', undefined);\r\n        this._progressBarElement = {};\r\n    }\r\n\r\n    _initComponentElement() {}\r\n\r\n    getUpdated() {\r\n        return this._updated;\r\n    }\r\n\r\n    getData() {\r\n        return this._config;\r\n    }\r\n\r\n    getSteps() {\r\n        return this._getConfigParam('steps', []);\r\n    }\r\n\r\n    getUniq() {\r\n        return this._uniq;\r\n    }\r\n\r\n    setUniq(uniq) {\r\n        this._uniq = uniq;\r\n    }\r\n\r\n    getKey() {\r\n        return this._uniq || this._id;\r\n    }\r\n\r\n    setProgressBarElement(element) {\r\n        this._progressBarElement = element;\r\n    }\r\n\r\n    getProgressBarElement() {\r\n        return this._progressBarElement;\r\n    }\r\n\r\n    getProgressTitle() {\r\n        return this._getConfigParam('progressTitleHtml', escapeHtml(this._getConfigParam('progressTitle', '')));\r\n    }\r\n\r\n    getProgressValue() {\r\n        return this._progressValue;\r\n    }\r\n\r\n    getStatus() {\r\n        return this._status;\r\n    }\r\n\r\n    setStatus(status) {\r\n        this._status = status;\r\n    }\r\n\r\n    getProgressDialogLinkHandler() {\r\n        if (!this.getSteps().length) {\r\n            return undefined;\r\n        }\r\n        return e => {\r\n            e.preventDefault();\r\n            this.getProgressBarElement().progressDialog(this);\r\n        };\r\n    }\r\n\r\n    isRefreshLinkEnabled() {\r\n        return this._isRefreshLinkEnabled;\r\n    }\r\n\r\n    setRefreshLinkEnabled(flag) {\r\n        this._isRefreshLinkEnabled = flag && this._isRefreshAllowed;\r\n    }\r\n\r\n    getRefreshLinkProps() {\r\n        const _redirect = this._getConfigParam('redirect');\r\n        if (_redirect) {\r\n            const redirectUrl = _redirect.url || _redirect;\r\n            return this.getProgressTitle().includes(redirectUrl) ? null : {\r\n                title: _redirect.title,\r\n                onClick: e => {\r\n                    e.preventDefault();\r\n                    redirect(_redirect);\r\n                },\r\n            };\r\n        }\r\n\r\n        if (this._isRefreshLinkEnabled && window.location.pathname === this._referrer) {\r\n            return {\r\n                onClick: e => {\r\n                    e.preventDefault();\r\n                    redirect(prepareUrl(window.location.pathname));\r\n                },\r\n            };\r\n        }\r\n    }\r\n\r\n    hasErrors() {\r\n        return this._errors.length > 0;\r\n    }\r\n\r\n    getErrors() {\r\n        return this._errors;\r\n    }\r\n\r\n    getVisibleErrors() {\r\n        const hideErrors = this._getConfigParam('hideErrors', false);\r\n\r\n        if (hideErrors || !this.hasErrors()) {\r\n            return [];\r\n        }\r\n\r\n        return this.getErrors();\r\n    }\r\n\r\n    getOutput() {\r\n        return this._output.map(line => String(line).trim()).filter(Boolean);\r\n    }\r\n\r\n    isCompleteSuccessfully() {\r\n        return STATUS_DONE === this._status && !this.hasErrors();\r\n    }\r\n\r\n    isComplete() {\r\n        return [STATUS_DONE, STATUS_ERROR, STATUS_CANCELED].indexOf(this._status) !== -1;\r\n    }\r\n\r\n    isCompleteWithWarning() {\r\n        return STATUS_DONE === this._status && this.hasErrors();\r\n    }\r\n\r\n    isStarted() {\r\n        return STATUS_STARTED === this._status || STATUS_NOT_STARTED === this._status;\r\n    }\r\n\r\n    isPreparing() {\r\n        return STATUS_PREPARING === this._status;\r\n    }\r\n\r\n    isFlying() {\r\n        return STATUS_FLYING === this._status;\r\n    }\r\n\r\n    isProgressUndefined() {\r\n        return this._progressValue === -1;\r\n    }\r\n\r\n    isCompleteWithError() {\r\n        return STATUS_ERROR === this._status;\r\n    }\r\n\r\n    async remove() {\r\n        try {\r\n            await api.post(prepareUrl('/task/task-remove'), { ids: [this.getId()] });\r\n            this.getProgressBarElement().removeItemsByIds([this.getId()]);\r\n        } catch ({ message }) {\r\n            addToast({ intent: 'danger', message });\r\n        }\r\n    }\r\n\r\n    toToast() {\r\n        const props = {\r\n            key: this.getKey(),\r\n        };\r\n        if (this.isCompleteSuccessfully()) {\r\n            return {\r\n                ...props,\r\n                intent: 'success',\r\n                onClose: () => this.remove(),\r\n                title: this.getProgressTitle(),\r\n                output: this.getOutput(),\r\n                refresh: this.getRefreshLinkProps(),\r\n            };\r\n        } else if (this.isCompleteWithWarning() || this.isCompleteWithError()) {\r\n            return {\r\n                ...props,\r\n                intent: this.isCompleteWithWarning() ? 'warning' : 'danger',\r\n                onClose: () => this.remove(),\r\n                title: this.getProgressTitle(),\r\n                errors: this.getVisibleErrors(),\r\n                refresh: this.getRefreshLinkProps(),\r\n            };\r\n        } else if (this.isPreparing() || this.isFlying() || this.isProgressUndefined()) {\r\n            return {\r\n                ...props,\r\n                title: this.isFlying() ? undefined : this.getProgressTitle(),\r\n                progress: {\r\n                    onClick: this.getProgressDialogLinkHandler(),\r\n                },\r\n            };\r\n        }\r\n        return {\r\n            ...props,\r\n            title: this.getProgressTitle(),\r\n            progress: {\r\n                value: this.getProgressValue(),\r\n                onClick: this.getProgressDialogLinkHandler(),\r\n            },\r\n        };\r\n    }\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { makeVar, useReactiveVar } from '@apollo/client';\r\n\r\nconst toasts = makeVar([]);\r\nlet key = 0;\r\n\r\nexport const useToasts = () => useReactiveVar(toasts);\r\n\r\nexport const addToast = ({ intent, ...props }) => {\r\n    toasts([\r\n        ...toasts(),\r\n        {\r\n            key: key++,\r\n            intent,\r\n            autoClosable: ['success', 'info'].includes(intent) ? true : null,\r\n            ...props,\r\n        },\r\n    ]);\r\n};\r\n\r\nexport const removeToast = ({ key }) => toasts(toasts().filter(toast => toast.key !== key));\r\n\r\nexport default toasts;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nlet isOpened = false;\r\nlet ws = null;\r\nconst messageSubscriptions = [];\r\nconst openSubscriptions = [];\r\nconst closeSubscriptions = [];\r\n\r\n// eslint-disable-next-line no-console\r\nconst handleError = error => console.error(error);\r\n\r\nconst wsConnect = (attempt = 0) => {\r\n    const protocol = window.location.protocol === 'https:' ? 'wss' : 'ws';\r\n    ws = new WebSocket(`${protocol}://${window.location.host}/ws`);\r\n    ws.onmessage = message => {\r\n        const messageData = JSON.parse(message.data);\r\n        const { action, data, error } = messageData;\r\n        if (error) {\r\n            if (error === 'Unauthorized') {\r\n                return;\r\n            }\r\n            throw new Error(`Unknown error ${error}`);\r\n        }\r\n\r\n        if (typeof messageSubscriptions[action] === 'undefined') {\r\n            return;\r\n        }\r\n\r\n        messageSubscriptions[action].each(callback => {\r\n            try {\r\n                callback(data);\r\n            } catch (e) {\r\n                handleError(e);\r\n            }\r\n        });\r\n    };\r\n\r\n    ws.onopen = event => {\r\n        isOpened = true;\r\n        openSubscriptions.each(callback => {\r\n            try {\r\n                callback(event);\r\n            } catch (e) {\r\n                handleError(e);\r\n            }\r\n        });\r\n    };\r\n\r\n    ws.onclose = event => {\r\n        isOpened = false;\r\n        ws = null;\r\n        closeSubscriptions.each(callback => {\r\n            try {\r\n                callback(event);\r\n            } catch (e) {\r\n                handleError(e);\r\n            }\r\n        });\r\n        if (1000 !== event.code) {\r\n            setTimeout(() => {\r\n                wsConnect(attempt + 1);\r\n            }, Math.min((2 ** attempt) * 1000, 60000));\r\n        }\r\n    };\r\n};\r\n\r\nconst PleskWSBinding = function ({ actions, onOpen, onClose }) {\r\n    this.actions = actions;\r\n    this.onOpen = onOpen;\r\n    this.onClose = onClose;\r\n\r\n    this.isReady = () => ws && 1 === ws.readyState;\r\n\r\n    this.close = () => {\r\n        if (this.actions) {\r\n            for (const action in actions) {\r\n                if (!actions.hasOwnProperty(action) || typeof messageSubscriptions[action] === 'undefined') {\r\n                    return;\r\n                }\r\n                const messageSubscriptionsIndex = messageSubscriptions[action].indexOf(actions[action]);\r\n                if (messageSubscriptionsIndex >= 0) {\r\n                    messageSubscriptions[action].splice(messageSubscriptionsIndex, 1);\r\n                }\r\n            }\r\n        }\r\n\r\n        if (this.onOpen) {\r\n            const openSubscriptionsIndex = openSubscriptions.indexOf(onOpen);\r\n            if (openSubscriptionsIndex >= 0) {\r\n                openSubscriptions.splice(openSubscriptionsIndex, 1);\r\n            }\r\n        }\r\n\r\n        if (this.onClose) {\r\n            const closeSubscriptionsIndex = closeSubscriptions.indexOf(onClose);\r\n            if (closeSubscriptionsIndex >= 0) {\r\n                closeSubscriptions.splice(closeSubscriptionsIndex, 1);\r\n            }\r\n        }\r\n    };\r\n};\r\n\r\nexport default {\r\n    bind: ({ actions, onOpen, onClose }) => {\r\n        if (!ws) {\r\n            wsConnect();\r\n        }\r\n        if (actions) {\r\n            for (const action in actions) {\r\n                if (!actions.hasOwnProperty(action)) {\r\n                    return;\r\n                }\r\n                if (typeof messageSubscriptions[action] === 'undefined') {\r\n                    messageSubscriptions[action] = [];\r\n                }\r\n                if (messageSubscriptions[action].indexOf(actions[action]) < 0) {\r\n                    messageSubscriptions[action].push(actions[action]);\r\n                }\r\n            }\r\n        }\r\n\r\n        if (onOpen) {\r\n            if (openSubscriptions.indexOf(onOpen) < 0) {\r\n                openSubscriptions.push(onOpen);\r\n            }\r\n            if (isOpened) {\r\n                onOpen();\r\n            }\r\n        }\r\n\r\n        if (onClose && closeSubscriptions.indexOf(onClose) < 0) {\r\n            closeSubscriptions.push(onClose);\r\n        }\r\n\r\n        return new PleskWSBinding({\r\n            actions,\r\n            onOpen,\r\n            onClose,\r\n        });\r\n    },\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Component } from './component';\r\nimport prepareUrl from './prepareUrl';\r\nimport api from './api';\r\n\r\n// see common/php/plib/Db/Table/Row/LongTask.php\r\nexport const STATUS_NOT_STARTED = 'not_started';\r\nexport const STATUS_STARTED = 'started';\r\nexport const STATUS_DONE = 'done';\r\nexport const STATUS_CANCELED = 'canceled';\r\nexport const STATUS_ERROR = 'error';\r\n\r\nexport class StatusMessage extends Component {\r\n    _failedStatusUpdates = 0;\r\n\r\n    _maxFailedStatusUpdates = 10;\r\n\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._id = this._getConfigParam('id');\r\n        this._onStatusUpdate = this._getConfigParam('onStatusUpdate', null);\r\n        this._onTaskDone = this._getConfigParam('onDone', null);\r\n        this._onTaskCancel = this._getConfigParam('onCancel', null);\r\n        this._onTaskError = this._getConfigParam('onError', null);\r\n        this._renderMessage = this._getConfigParam('renderMessage', status => {\r\n            if (!status.message) {\r\n                return 'Internal error.';\r\n            }\r\n            if (status.progressParams.errorMessage) {\r\n                const messages = status.progressParams.errorMessage.split('\\n');\r\n                if (messages.length <= 1) {\r\n                    return status.progressParams.errorMessage;\r\n                }\r\n                let message = `${messages[0]} <a href=\"#\" class=\"js-details-link\">${this.lmsg('details')}</a><br>`;\r\n                message += '<span class=\"js-details hidden\">';\r\n                for (let i = 1; i < messages.length; i++) {\r\n                    message += `${messages[i]}<br>`;\r\n                }\r\n                message += '</span>';\r\n                return message;\r\n            }\r\n            return status.message;\r\n        });\r\n\r\n        this._statusUrl = this._getConfigParam('statusUrl', prepareUrl('/task/status/taskId/'));\r\n        this._updateInterval = this._getConfigParam('updateInterval', 60);\r\n        this._autoRender = true;\r\n    }\r\n\r\n    _showProgress(status) {\r\n        let statusClass = 'msg-progress';\r\n        if (STATUS_DONE === status.status) {\r\n            if (status.progressParams.errorMessage) {\r\n                statusClass = 'msg-warning';\r\n            } else {\r\n                statusClass = 'msg-info';\r\n            }\r\n        } else if (STATUS_CANCELED === status.status) {\r\n            statusClass = 'msg-warning';\r\n        } else if (STATUS_ERROR === status.status) {\r\n            statusClass = 'msg-error';\r\n        }\r\n\r\n        let message = this._renderMessage(status);\r\n\r\n        if (STATUS_DONE !== status.status && status.progress) {\r\n            if (this._getConfigParam('percent', true)) {\r\n                message = `${message}: <span id=\"backupProgress\">${status.progress}</span>%`;\r\n            }\r\n\r\n            if (this._getConfigParam('gauge', true)) {\r\n                message = (\r\n                    '<table class=\"msg-progress-container\" cellspacing=\"0\" width=\"100%\"><tr>' +\r\n                        `<td class=\"msg-progress-info\">${message}</td>` +\r\n                        '<td class=\"msg-progress-indicator\">' +\r\n                            '<div class=\"progress progress-sm\">' +\r\n                                `<div class=\"progress-bar\" id=\"backupProgressGauge\" style=\"width: ${status.progress}%;\"></div>` +\r\n                            '</div>' +\r\n                        '</td>' +\r\n                    '</tr></table>'\r\n                );\r\n            }\r\n        }\r\n\r\n        this._componentElement.className = `msg-box ${statusClass}`;\r\n        this._componentElement.innerHTML = `<div class=\"msg-content\">${message}</div>`;\r\n    }\r\n\r\n    _addEvents() {\r\n        super._addEvents();\r\n        this._processStatus(this._getConfigParam('status', null));\r\n    }\r\n\r\n    _scheduleUpdateStatus() {\r\n        setTimeout(() => {\r\n            this._updateStatus();\r\n        }, this._updateInterval * 1000);\r\n    }\r\n\r\n    _updateStatus() {\r\n        api.get(this._statusUrl + this._id)\r\n            .then(this._onStatusUpdateSuccess.bind(this))\r\n            .catch(this._onStatusUpdateFailure.bind(this));\r\n    }\r\n\r\n    _onStatusUpdateSuccess(status) {\r\n        this._failedStatusUpdates = 0;\r\n        this._processStatus(status);\r\n        if (this._onStatusUpdate) {\r\n            this._onStatusUpdate(status);\r\n        }\r\n    }\r\n\r\n    _onStatusUpdateFailure() {\r\n        this._failedStatusUpdates++;\r\n        if (this._failedStatusUpdates < this._maxFailedStatusUpdates) {\r\n            this._scheduleUpdateStatus();\r\n        }\r\n    }\r\n\r\n    _processStatus(status) {\r\n        if (!status) {\r\n            this._showLoading();\r\n            this._updateStatus();\r\n        } else if (STATUS_DONE === status.status) {\r\n            if (this._onTaskDone) {\r\n                this._onTaskDone(status);\r\n            }\r\n            this._showFinished(status);\r\n        } else if (STATUS_CANCELED === status.status) {\r\n            if (this._onTaskCancel) {\r\n                this._onTaskCancel(status);\r\n            }\r\n            this._showFinished(status);\r\n        } else if (STATUS_ERROR === status.status) {\r\n            if (this._onTaskError) {\r\n                this._onTaskError(status);\r\n            }\r\n            this._showError(status);\r\n        } else if (STATUS_STARTED === status.status || STATUS_NOT_STARTED === status.status) {\r\n            this._showWorking(status);\r\n            this._scheduleUpdateStatus();\r\n        } else {\r\n            this._showNone(status);\r\n        }\r\n    }\r\n\r\n    _addDetailsEvent() {\r\n        const details = this._componentElement.querySelector('.js-details-link');\r\n        if (!details) {\r\n            return;\r\n        }\r\n        details.addEventListener('click', event => {\r\n            event.preventDefault();\r\n            this._componentElement.querySelector('.js-details').classList.toggle('hidden');\r\n            details.classList.toggle('hidden');\r\n        });\r\n    }\r\n\r\n    _showFinished(status) {\r\n        this._showProgress(status);\r\n        setTimeout(() => {\r\n            this._addDetailsEvent();\r\n        }, 0);\r\n    }\r\n\r\n    _showWorking(status) {\r\n        this._showProgress(status);\r\n    }\r\n\r\n    _showError(status) {\r\n        this._showProgress(status);\r\n        setTimeout(() => {\r\n            this._addDetailsEvent();\r\n        }, 0);\r\n    }\r\n\r\n    _showLoading() {\r\n        // empty implementation\r\n    }\r\n\r\n    _showNone() {\r\n        // empty implementation\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Component } from './component';\r\nimport { DropdownManager } from './dropdown-manager';\r\nimport Cookie from 'common/cookie';\r\nimport prepareUrl from './prepareUrl';\r\nimport render from './render';\r\nimport ce from './createElement';\r\nimport escapeHtml from './escapeHtml';\r\nimport api from './api';\r\nimport Locale from './Locale';\r\nimport addStatusMessage from './addStatusMessage';\r\nimport pageData from '../helpers/pageData';\r\nimport emptyFn from './emptyFn';\r\n\r\nimport './active-list.less';\r\nimport { dynamicListBannerFeedbackHandler } from '../views/smb/web/view/DynamicListBanner';\r\n\r\n/**\r\n * Example usage:\r\n *\r\n *     @example\r\n *     new ActiveList({\r\n *         renderTo: document.body,\r\n *         toolbar: {\r\n *             buttons: {\r\n *                 btn1: {\r\n *                     title: 'Add new item',\r\n *                     url: '#!'\r\n *                 }\r\n *             }\r\n *         },\r\n *         layout: 'responsivecolumn',\r\n *         data: [{\r\n *             title: 'Item 1',\r\n *             icon: 'class-icons/component-large.png',\r\n *             buttons: [{\r\n *                 title: 'Action 1',\r\n *                 icon: 'class-icons/class-large.png'\r\n *             }, {\r\n *                 title: 'Action 2',\r\n *                 icon: 'class-icons/singleton-large.png'\r\n *             }]\r\n *         }, {\r\n *             title: 'Item 2',\r\n *             icon: 'class-icons/component-large.png',\r\n *             buttons: [{\r\n *                 title: 'Action 1',\r\n *                 icon: 'class-icons/class-large.png'\r\n *             }, {\r\n *                 title: 'Action 2',\r\n *                 icon: 'class-icons/singleton-large.png'\r\n *             }]\r\n *         }]\r\n *     });\r\n */\r\nexport class ActiveList extends Component {\r\n    static stateCollapsed = (id, defaultValue = false) => {\r\n        const cookieName = `${id}-state-collapsed`;\r\n        let stateCollapsed = Cookie.get(cookieName);\r\n\r\n        try {\r\n            stateCollapsed = JSON.parse(stateCollapsed) || {};\r\n        } catch {\r\n            stateCollapsed = {};\r\n        }\r\n\r\n        return {\r\n            get(item) {\r\n                return stateCollapsed[item.id] === undefined ? defaultValue : Boolean(stateCollapsed[item.id]);\r\n            },\r\n            set(item, value) {\r\n                if (value === defaultValue) {\r\n                    delete stateCollapsed[item.id];\r\n                } else {\r\n                    stateCollapsed[item.id] = value ? 1 : 0;\r\n                }\r\n                Cookie.setPermanent(cookieName, JSON.stringify(stateCollapsed), '/');\r\n            },\r\n        };\r\n    };\r\n\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this.urls = this._getConfigParam('urls', {});\r\n        this.navigate = this._getConfigParam('onNavigate', emptyFn);\r\n        this.pageUrl = this._getConfigParam('pageUrl', location.href);\r\n\r\n        this.isCollapsible = this._getConfigParam('isCollapsible', false);\r\n        this.isNew = this._getConfigParam('isNew', false);\r\n        this.isShowItemTitle = this._getConfigParam('isShowItemTitle', true);\r\n        this.layout = this._getConfigParam('layout', 'auto');\r\n        if (typeof this.layout === 'string') {\r\n            this.layout = {\r\n                type: this.layout,\r\n            };\r\n        }\r\n\r\n        this.stateCollapsed = ActiveList.stateCollapsed(this.getId());\r\n\r\n        this.itemActions = this._getConfigParam('itemActions', {});\r\n        this.data = this._getConfigParam('data', []);\r\n        this.dynamicListBanner = this._getConfigParam('dynamicListBanner', {});\r\n\r\n        this._cls = `active-list${this.isCollapsible ? ' active-list-collapsible' : ''}`;\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n        render(this._componentElement, this.view());\r\n    }\r\n\r\n    view() {\r\n        return ce('.active-list-wrap',\r\n            this.toolbarView(this._getConfigParam('toolbar'), this.dynamicListBanner),\r\n            this.itemsView(),\r\n            this.bottomBarView(this._getConfigParam('countMoreItems', 0)),\r\n        );\r\n    }\r\n\r\n    toolbarView(toolbar, dynamicListBanner) {\r\n        const bannerLocale = new Locale(dynamicListBanner.locale);\r\n\r\n        if (!toolbar) {\r\n            return '';\r\n        }\r\n\r\n        return ce('.a-toolbar.a-toolbar-collapsed',\r\n            ce('.a-toolbar-wrap',\r\n                ce('.a-toolbar-buttons',\r\n                    ce('.a-toolbar-buttons-wrap',\r\n                        ce('table.a-toolbar-buttons-table[cellspacing=0]',\r\n                            ce('tbody',\r\n                                ce('tr',\r\n                                    ce('td.a-toolbar-buttons-table-main',\r\n                                        ce('.a-toolbar-buttons-main',\r\n                                            Object.entries(toolbar.buttons).map(([id, { title, url, intent }]) => ce(\r\n                                                `a.btn${intent ? `.btn-${intent}` : ''}`,\r\n                                                {\r\n                                                    id,\r\n                                                    href: url,\r\n                                                    onclick: this.navigate,\r\n                                                },\r\n                                                ` ${escapeHtml(title)}`,\r\n                                            )),\r\n                                        ),\r\n                                    ),\r\n                                    ce('td.a-toolbar-buttons-table-misc',\r\n                                        ce('.a-toolbar-buttons-misc',\r\n                                            ce('.a-toolbar-buttons-settings.a-toolbar-buttons-settings-inactive',\r\n                                                ce('button.btn.btn-settings[type=button]', { title: this.lmsg('settingsTitle') },\r\n                                                    ce('i.icon', ce('img[alt=\"\"]', {\r\n                                                        src: require('icons/16/plesk/settings-toolbar.png'),\r\n                                                    })),\r\n                                                ),\r\n                                                this.isNew ? ce('span.badge-new', this.lmsg('badgeNew')) : '',\r\n                                                ce('.popup-box.a-toolbar-buttons-settings-popup',\r\n                                                    ce('table.popup-wrapper[cellspacing=0]', ce('tbody', ce('tr', ce('td.popup-container',\r\n                                                        ce('.c1', ce('.c2', ce('.c3', ce('.c4', ce('.c5',\r\n                                                            ce('.popup-content',\r\n                                                                ce('.popup-content-area',\r\n                                                                    ce('.settings-list',\r\n                                                                        ce('.settings-item.settings-item-1',\r\n                                                                            ce('h3.settings-item-title',\r\n                                                                                ce('span', `${this.lmsg('sortTitle')}:`),\r\n                                                                            ),\r\n                                                                            ce(`a.btn${toolbar.sortDir === 'up' ? '.btn-state-selected' : ''}`,\r\n                                                                                { href: this.urls['sort-up'] },\r\n                                                                                ce('i.icon', ce('img[alt=\"\"]', {\r\n                                                                                    src: require('icons/16/plesk/order-ascending.png'),\r\n                                                                                })),\r\n                                                                                this.lmsg('orderAscending'),\r\n                                                                            ),\r\n                                                                            ce(`a.btn${toolbar.sortDir === 'down' ? '.btn-state-selected' : ''}`,\r\n                                                                                { href: this.urls['sort-down'] },\r\n                                                                                ce('i.icon', ce('img[alt=\"\"]', {\r\n                                                                                    src: require('icons/16/plesk/order-descending.png'),\r\n                                                                                })),\r\n                                                                                this.lmsg('orderDescending'),\r\n                                                                            ),\r\n                                                                        ),\r\n                                                                        (toolbar.hasClassicView || toolbar.hasDynamicView) ? ce('.settings-item.settings-item-2',\r\n                                                                            ce('h3.settings-item-title',\r\n                                                                                ce('span', `${this.lmsg('modeTitle')}:`),\r\n                                                                            ),\r\n                                                                            toolbar.hasDynamicView ? ce('a.btn', { href: '?list-type=dynamic' },\r\n                                                                                ce('i.icon', ce('img[alt=\"\"]', {\r\n                                                                                    src: require('icons/16/plesk/list-type-dynamic.png'),\r\n                                                                                })),\r\n                                                                                this.lmsg('typeDynamic'),\r\n                                                                            ) : null,\r\n                                                                            ce('a.btn.btn-state-selected',\r\n                                                                                ce('i.icon', ce('img[alt=\"\"]', {\r\n                                                                                    src: require('icons/16/plesk/list-type-active.png'),\r\n                                                                                })),\r\n                                                                                this.lmsg('typeActive'),\r\n                                                                            ),\r\n                                                                            toolbar.hasClassicView ? ce('a.btn', { href: '?list-type=classic' },\r\n                                                                                ce('i.icon', ce('img[alt=\"\"]', {\r\n                                                                                    src: require('icons/16/plesk/list-type-classic.png'),\r\n                                                                                })),\r\n                                                                                this.lmsg('typeClassic'),\r\n                                                                            ) : null,\r\n                                                                        ) : '',\r\n                                                                        dynamicListBanner.enabled && dynamicListBanner.feedbackUrl ? ce('.settings-item.settings-item-3',\r\n                                                                            ce('h3.settings-item-title',\r\n                                                                                ce('span', bannerLocale.lmsg('feedbackTitle')),\r\n                                                                            ),\r\n                                                                            ce('a.btn', {\r\n                                                                                href: dynamicListBanner.feedbackUrl,\r\n                                                                                target: '_blank',\r\n                                                                                onclick: dynamicListBannerFeedbackHandler,\r\n                                                                            },\r\n                                                                            ce('i.icon', ce('img[alt=\"\"]', {\r\n                                                                                src: require('icons/16/plesk/feedback.png'),\r\n                                                                            })),\r\n                                                                            bannerLocale.lmsg('shareFeedback')),\r\n                                                                        ) : '',\r\n                                                                    ),\r\n                                                                ),\r\n                                                            ),\r\n                                                        ))))),\r\n                                                    )))),\r\n                                                ),\r\n                                            ),\r\n                                        ),\r\n                                    ),\r\n                                ),\r\n                            ),\r\n                        ),\r\n                    ),\r\n                ),\r\n            ),\r\n        );\r\n    }\r\n\r\n    itemsView() {\r\n        if (!this.data.length) {\r\n            return this.emptyView();\r\n        }\r\n\r\n        const items = this.data.map(this.itemView.bind(this));\r\n        if (this.layout.type !== 'responsivecolumn') {\r\n            return items;\r\n        }\r\n\r\n        let cls = ['.grid'];\r\n        if (this.layout.stretched !== false) {\r\n            cls.push('.grid-stretched');\r\n        }\r\n        cls = cls.concat((this.layout.columns || 'xl-2 xxl-3').split(' ').map(cls => `.grid-${cls}`));\r\n\r\n        return ce(cls.join(''),\r\n            items.map(item => ce('.grid-col', item)),\r\n        );\r\n    }\r\n\r\n    emptyView() {\r\n        return ce('p', this.lmsg('noObjects'));\r\n    }\r\n\r\n    itemView(item) {\r\n        const itemClasses = [\r\n            '.active-list-item',\r\n        ];\r\n        const types = [\r\n            'danger',\r\n            'warning',\r\n            'inactive',\r\n            'success',\r\n        ];\r\n\r\n        if (item.type && types.indexOf(item.type) > -1) {\r\n            itemClasses.push(`.active-list-item-${item.type}`);\r\n        }\r\n        if (this.isCollapsible && item.buttons) {\r\n            itemClasses.push('.active-list-item-collapsible');\r\n            itemClasses.push(this.stateCollapsed.get(item) ? '.active-list-item-collapsed' : '.active-list-item-expanded');\r\n        } else {\r\n            itemClasses.push('.active-list-item-expanded');\r\n        }\r\n\r\n        return ce(`#active-list-item-${item.id}${itemClasses.join('')}`, { style: 'position:relative' },\r\n            ce('.content-blocker', { style: 'display:none;' }),\r\n            ce('.active-list-item-wrap',\r\n                this.itemCaptionView(item),\r\n                this.itemDetailsView(item),\r\n            ),\r\n        );\r\n    }\r\n\r\n    itemDetailsView(item) {\r\n        const children = [];\r\n        if (item.settings && item.settings.length) {\r\n            children.push(this.itemSettingsView(item));\r\n        }\r\n        if (item.buttons && item.buttons.length) {\r\n            children.push(this.itemToolsView(item));\r\n        }\r\n\r\n        if (!children.length) {\r\n            return '';\r\n        }\r\n\r\n        return ce('.active-list-details',\r\n            ce('.active-list-details-wrap',\r\n                children,\r\n            ),\r\n        );\r\n    }\r\n\r\n    itemSettingsView(item) {\r\n        return ce('.list',\r\n            ce(`table#active-list-item-settings-table-${item.id}[width=100%][cellspacing=0]`,\r\n                ce('tbody',\r\n                    item.settings.map((settings, index) => ce(`tr${index % 2 ? '.even' : '.odd'}`,\r\n                        ce('td.min',\r\n                            ce('span.tooltipData', escapeHtml(settings.hint)),\r\n                            ce(`a.s-btn.${settings.button}[data-method=post]`, { href: settings.url }, ce('span')),\r\n                        ),\r\n                        ce('td', escapeHtml(settings.name)),\r\n                        ce('td', escapeHtml(settings.description)),\r\n                    )),\r\n                ),\r\n            ),\r\n        );\r\n    }\r\n\r\n    itemToolsView(item) {\r\n        return ce('.tools-list-box',\r\n            ce('.box-area',\r\n                ce('.content',\r\n                    ce('.content-area',\r\n                        ce('ul.tools-list',\r\n                            item.buttons.map(button => {\r\n                                let onClick = null;\r\n                                if (button.name && this.itemActions[button.name]) {\r\n                                    onClick = event => {\r\n                                        event.preventDefault();\r\n                                        this.itemActions[button.name](item, event);\r\n                                    };\r\n                                } else if (button.handler) {\r\n                                    onClick = typeof button.handler === 'function'\r\n                                        ? button.handler\r\n                                        : `(${button.handler}(event)); return false;`;\r\n                                } else {\r\n                                    onClick = this.navigate;\r\n                                }\r\n\r\n                                return ce('li.tools-item',\r\n                                    ce(`a.tool-block${button.disabled ? '.disabled' : ''}`,\r\n                                        {\r\n                                            href: !button.disabled && button.href ? button.href : null,\r\n                                            onclick: button.disabled ? null : onClick,\r\n                                            target: button.target || null,\r\n                                            'data-identity': button.id || null,\r\n                                            'data-action-name': button.name || null,\r\n                                            rel: button.target === '_blank' ? 'noopener noreferrer' : null,\r\n                                        },\r\n                                        ce('span.tool-icon', ce('img[alt=\"\"]', { src: button.icon })),\r\n                                        ce('span.tool-name', button.noEscapeTitle ? button.title : escapeHtml(button.title)),\r\n                                        button.new ? ce('span.badge-new', this.lmsg('badgeNew')) : '',\r\n                                        Array.isArray(button.additionalComments) ? ce('.span.tool-info',\r\n                                            button.additionalComments\r\n                                                .map(comment => button.noEscape ? comment : escapeHtml(comment))\r\n                                                .join('<br>'),\r\n                                        ) : '',\r\n                                    ),\r\n                                    button.comment ? ce('span.tooltipData', escapeHtml(button.comment)) : '',\r\n                                );\r\n                            }),\r\n                        ),\r\n                    ),\r\n                ),\r\n            ),\r\n        );\r\n    }\r\n\r\n    bottomBarView(countMoreItems) {\r\n        if (!countMoreItems) {\r\n            return '';\r\n        }\r\n\r\n        return ce('.active-list-bottom-bar',\r\n            ce('.active-list-bottom-bar-wrap', this.lmsg('showAll', {\r\n                countMoreItems,\r\n                loadAllLink: `<a href=\"?all=\">${this.lmsg('loadAll')}</a>`,\r\n                switchToLink: `<a href=\"?list-type=classic\">${this.lmsg('switchTo', { listType: this.lmsg('typeClassic') })}</a>`,\r\n            })),\r\n        );\r\n    }\r\n\r\n    itemCaptionView(item) {\r\n        return ce('.caption',\r\n            ce('.caption-wrap',\r\n                this.itemCaptionHeaderView(item),\r\n                this.itemCaptionServicesView(item),\r\n                this.itemCaptionDataView(item),\r\n                this.itemCaptionAdditionalHtml(item),\r\n                Array.isArray(item.buttons) && item.buttons.length ? (\r\n                    this.isCollapsible ? ce('.caption-control',\r\n                        {\r\n                            onclick: this.toggleItem.bind(this, item),\r\n                        },\r\n                        ce('span.caption-control-wrap',\r\n                            ce('i'), ' ',\r\n                            ce('span.caption-control-on', this.lmsg('showMore')),\r\n                            ce('span.caption-control-off', this.lmsg('showLess')),\r\n                        ),\r\n                    ) : ''\r\n                ) : '',\r\n            ),\r\n        );\r\n    }\r\n\r\n    itemCaptionHeaderView(item) {\r\n        return ce('.caption-header',\r\n            ce('.caption-widget'),\r\n            ce('.caption-header-wrap',\r\n                ce('.caption-main',\r\n                    item.icon ? ce('.caption-icon',\r\n                        ce('span', ce('img[alt=\"\"]', { src: item.icon })),\r\n                    ) : '',\r\n                    this.itemCaptionHeadView(item),\r\n                ),\r\n            ),\r\n        );\r\n    }\r\n\r\n    itemCaptionHeadView(item) {\r\n        return ce('.caption-head',\r\n            this.isShowItemTitle ? this.itemCaptionHeadWrapView(item) : '',\r\n            this.itemCaptionSummaryView(item),\r\n            this.itemCaptionToolbarView(item),\r\n        );\r\n    }\r\n\r\n    itemCaptionHeadWrapView(item) {\r\n        let labels = [];\r\n        const labelTypes = ['danger', 'warning', 'success', 'info', 'inactive'];\r\n\r\n        if (Array.isArray(item.labels) && item.labels.length) {\r\n            labels = item.labels.map(function (label) {\r\n                const type = label.type && labelTypes.indexOf(label.type) > -1 ? label.type : '';\r\n                const cls = type === '' ? '' : (`.label-${type}`);\r\n\r\n                return ce(`span.label${cls}`, label.value || '');\r\n            });\r\n        }\r\n\r\n        return ce('.caption-head-wrap',\r\n            {\r\n                onclick: this.isCollapsible && item.buttons ? this.onCaptionHeadWrapClick.bind(this, item) : null,\r\n            },\r\n            ce('h2.caption-name',\r\n                ce('span', escapeHtml(item.title)),\r\n            ),\r\n            labels,\r\n            Array.isArray(item.primaryActions) && item.primaryActions.length ? ce('span.caption-head-widget',\r\n                item.primaryActions.map(function (action) {\r\n                    return [ce('a.btn', { href: action.link },\r\n                        action.title,\r\n                    ), ' '];\r\n                }),\r\n            ) : '',\r\n        );\r\n    }\r\n\r\n    itemCaptionSummaryView(item) {\r\n        return Array.isArray(item.summary) && item.summary.length ? ce('.caption-summary',\r\n            ce('.caption-summary-wrap',\r\n                item.summary.map(this.summaryItemView.bind(this)),\r\n            ),\r\n        ) : item.summary || '';\r\n    }\r\n\r\n    summaryItemView(summaryItem) {\r\n        return ce('span.summary-item', `${summaryItem.name}: <b>${summaryItem.value}</b>`);\r\n    }\r\n\r\n    itemCaptionToolbarView(item) {\r\n        return Array.isArray(item.toolbar) && item.toolbar.length ? ce('.caption-toolbar',\r\n            ce('.caption-toolbar-wrap',\r\n                item.toolbar.map(this.toolbarButtonView.bind(this)),\r\n            ),\r\n        ) : '';\r\n    }\r\n\r\n    toolbarButtonView(button) {\r\n        return ce(`a.i-link${button.action ? `[data-item-action=\"${button.action}\"]` : ''}`, { href: button.link || null },\r\n            button.icon || button.iconClass ? [ce(`i${button.iconClass ? `.${button.iconClass}` : 'icon'}`,\r\n                button.icon ? ce('img[alt=\"\"]', { src: button.icon }) : '',\r\n            ), ' '] : '',\r\n            ce('span', escapeHtml(button.title)),\r\n        );\r\n    }\r\n\r\n    itemCaptionServicesView(item) {\r\n        return Array.isArray(item.services) ? item.services.map(this.itemServiceView.bind(this)) : '';\r\n    }\r\n\r\n    itemServiceView(service) {\r\n        return ce(`.caption-services${service.class ? `.${service.class}` : ''}`, { style: service.hidden ? 'display:none' : '' },\r\n            ce('.caption-services-wrap',\r\n                service.header ? ce(service.headerClass ? `.${service.headerClass}` : '',\r\n                    service.closeUrl ? ce('span.close', { 'data-close-url': service.closeUrl }) : '',\r\n                    service.header,\r\n                ) : '',\r\n                this.itemServiceBlockView(service),\r\n            ),\r\n        );\r\n    }\r\n\r\n    renderItemServiceView(service) {\r\n        const type = service.type\r\n            .replace(/(^\\w|-\\w)/g, ch => ch.toUpperCase())\r\n            .replaceAll('-', '');\r\n        return this[`itemService${type}View`](service);\r\n    }\r\n\r\n    itemServiceBlockView(service) {\r\n        if (service.grid) {\r\n            const columns = service.grid.reduce(function (columns, service) {\r\n                return columns + (service.colspan || 1);\r\n            }, 0);\r\n            return ce(`.b-grid${service.grid.length > 1 ? `.b-grid-${columns}` : ''}`,\r\n                ce('ul.b-grid-list',\r\n                    service.grid.map(function (subService) {\r\n                        return ce(`li.b-grid-item${service.grid.length > 1 && subService.colspan ? `.b-grid-item-${subService.colspan}` : ''}`,\r\n                            ce('.b-grid-item-wrap', this.itemServiceBlockView(subService)),\r\n                        );\r\n                    }.bind(this)),\r\n                ),\r\n            );\r\n        }\r\n\r\n        if (service.type) {\r\n            return this.renderItemServiceView(service);\r\n        }\r\n\r\n        let icon = ce('img[alt=\"\"]', { src: service.icon });\r\n        let name = escapeHtml(service.title);\r\n        if (service.href) {\r\n            icon = ce(`a${service.newWindow ? '[target=_blank]' : ''}`, {\r\n                href: service.href,\r\n                onclick: this.navigate,\r\n            }, icon);\r\n            name = ce(`a${service.newWindow ? '[target=_blank]' : ''}`, {\r\n                href: service.href,\r\n                onclick: this.navigate,\r\n            }, name);\r\n        }\r\n\r\n        const description = service.description ? service.description : '';\r\n        return ce('.caption-service-block',\r\n            ce('span.caption-service-title',\r\n                ce('i.caption-service-icon', icon),\r\n                ce('span.caption-service-name', name, description),\r\n            ),\r\n            Array.isArray(service.links) && service.links.length ? ce('.caption-service-toolbar',\r\n                service.links.map(function (link) {\r\n                    let linkView;\r\n                    if (link.childLinks && link.childLinks.length) {\r\n                        linkView = ce('.btn-group',\r\n                            ce('a.btn', {\r\n                                href: link.href,\r\n                                target: link.newWindow ? '_blank' : null,\r\n                            }, escapeHtml(link.title)),\r\n                            ce('button.btn.dropdown-toggle[type=button]', ce('em.caret')),\r\n                            ce('ul.dropdown-menu',\r\n                                link.childLinks.map(function (childLink) {\r\n                                    return ce('li',\r\n                                        ce('a', {\r\n                                            href: childLink.href,\r\n                                            target: childLink.newWindow ? '_blank' : null,\r\n                                        }, escapeHtml(childLink.title)),\r\n                                    );\r\n                                }),\r\n                            ),\r\n                        );\r\n                    } else {\r\n                        const icon = link.icon ? [ce('i.icon', ce('img[alt=\"\"]', { src: link.icon })), ' '] : '';\r\n                        if (link.isSimpleText) {\r\n                            linkView = ce('span',\r\n                                icon,\r\n                                link.noEscape ? link.info : escapeHtml(link.info),\r\n                            );\r\n                        } else if (link.isSimpleLink) {\r\n                            linkView = ce(`span${link.spanClass ? `.${link.spanClass}` : ''}`,\r\n                                icon,\r\n                                `${escapeHtml(link.info)} `,\r\n                                ce('a', {\r\n                                    href: link.href,\r\n                                    class: link.class ? escapeHtml(link.class) : null,\r\n                                    onclick: link.onClick ? escapeHtml(link.onClick) : null,\r\n                                    target: link.newWindow ? '_blank' : null,\r\n                                }, escapeHtml(link.title)),\r\n                            );\r\n                        } else {\r\n                            linkView = ce('a.btn', {\r\n                                href: link.href,\r\n                                class: link.class ? escapeHtml(link.class) : null,\r\n                                onclick: link.onClick ? escapeHtml(link.onClick) : null,\r\n                                target: link.newWindow ? '_blank' : null,\r\n                                id: link.id ? escapeHtml(link.id) : null,\r\n                                name: link.name ? escapeHtml(link.name) : null,\r\n                            }, icon, escapeHtml(link.title));\r\n                        }\r\n                    }\r\n\r\n                    return [\r\n                        link.newLine ? ce('br') : '',\r\n                        linkView,\r\n                        ' ',\r\n                    ];\r\n                }),\r\n            ) : '',\r\n        );\r\n    }\r\n\r\n    itemCaptionDataView(item) {\r\n        if (!item.data || !item.data.length) {\r\n            return '';\r\n        }\r\n\r\n        return ce('.caption-data',\r\n            ce('.caption-data-wrap',\r\n                item.data.map(function (data, index) {\r\n                    return ce('.form-group',\r\n                        ce(`label.control-label[for=active-list-data-${item.id}-${index}]`, data.label),\r\n                        ce(`textarea#active-list-data-${item.id}-${index}.form-control.code[rows=${data.linesNumber}][readonly]`, escapeHtml(data.text)),\r\n                    );\r\n                }),\r\n            ),\r\n        );\r\n    }\r\n\r\n    itemCaptionAdditionalHtml(item) {\r\n        if (!item.additionalHtml) {\r\n            return '';\r\n        }\r\n\r\n        return ce('.caption-data',\r\n            ce('.caption-data-wrap', item.additionalHtml),\r\n        );\r\n    }\r\n\r\n    onCaptionHeadWrapClick(item, event) {\r\n        if (event && event.target.closest('.caption-head-action, .caption-head-status, .caption-head-widget')) {\r\n            return;\r\n        }\r\n\r\n        this.toggleItem(item);\r\n\r\n        const el = this.getItemElement(item);\r\n        if (el.classList.contains('active-list-item-collapsed')) {\r\n            return;\r\n        }\r\n\r\n        const itemBottom = Element.cumulativeOffset(el).top + Element.getHeight(el);\r\n        const viewportBottom = document.viewport.getScrollOffsets().top + document.viewport.getHeight();\r\n        if (itemBottom + 40 > viewportBottom) {\r\n            this.scrollToItem(el, 500);\r\n        }\r\n    }\r\n\r\n    getItemElement(item) {\r\n        return this._componentElement.querySelector(`#active-list-item-${String(item.id).replace(/:/g, '\\\\:')}`);\r\n    }\r\n\r\n    _addEvents() {\r\n        this._componentElement.querySelectorAll('.dropdown-toggle').forEach(element => {\r\n            element.addEventListener('click', event => {\r\n                event.stopPropagation();\r\n                event.preventDefault();\r\n                const hadClassName = event.target.closest('.btn-group').classList.contains('btn-group-open');\r\n                document.querySelectorAll('.active-list .dropdown-toggle').forEach(elem => {\r\n                    elem.closest('.btn-group').classList.remove('btn-group-open');\r\n                });\r\n                if (!hadClassName) {\r\n                    event.target.closest('.btn-group').classList.add('btn-group-open');\r\n                }\r\n            });\r\n            document.body.addEventListener('click', () => {\r\n                element.closest('.btn-group').classList.remove('btn-group-open');\r\n            });\r\n        });\r\n\r\n        this._componentElement.querySelectorAll('.a-toolbar-buttons-misc .btn-search').forEach(element => {\r\n            element.addEventListener('click', () => {\r\n                element.closest('.a-toolbar').classList.toggle('a-toolbar-collapsed');\r\n                element.closest('.a-toolbar').classList.toggle('a-toolbar-expanded');\r\n            });\r\n        });\r\n\r\n        this._componentElement.querySelectorAll('.a-toolbar-buttons-misc .btn-settings').forEach(el => {\r\n            DropdownManager.register(el,\r\n                function () {\r\n                    return el.parentNode.classList.contains('a-toolbar-buttons-settings-active');\r\n                },\r\n                function () {\r\n                    el.parentNode.classList.add('a-toolbar-buttons-settings-active');\r\n                    el.parentNode.classList.remove('a-toolbar-buttons-settings-inactive');\r\n                },\r\n                function () {\r\n                    el.parentNode.classList.add('a-toolbar-buttons-settings-inactive');\r\n                    el.parentNode.classList.remove('a-toolbar-buttons-settings-active');\r\n                },\r\n            );\r\n        });\r\n\r\n        this._componentElement.querySelectorAll('.caption-services .close').forEach(element => {\r\n            element.addEventListener('click', event => {\r\n                event.stopPropagation();\r\n                event.preventDefault();\r\n                const { closeUrl } = event.target.dataset;\r\n                event.target.closest('.caption').querySelectorAll('.caption-services').forEach(element => {\r\n                    element.style.display = '';\r\n                });\r\n                const servicesEl = event.target.closest('.caption-services');\r\n                servicesEl.parentNode.removeChild(servicesEl);\r\n                api.post(prepareUrl(closeUrl));\r\n            });\r\n        });\r\n\r\n        this._initToolbar();\r\n    }\r\n\r\n    disableItem(id) {\r\n        this.getItemElement({ id }).querySelector('.content-blocker').style.display = '';\r\n    }\r\n\r\n    enableItem(id) {\r\n        this.getItemElement({ id }).querySelector('.content-blocker').style.display = 'none';\r\n    }\r\n\r\n    _initToolbar() {\r\n        this._componentElement.querySelectorAll('.a-toolbar-buttons-main').forEach(toolbarEl => {\r\n            const itemEls = [...toolbarEl.children];\r\n\r\n            const menuEl = new Element('span', { class: 'btn-group' });\r\n            menuEl.innerHTML = (\r\n                '<button type=\"button\" class=\"btn dropdown-toggle\">' +\r\n                `<i class=\"icon\"><img src=\"${require('icons/16/plesk/menu.png')}\" alt=\"\"></i>` +\r\n                ' <em class=\"caret\"></em>' +\r\n                '</button>' +\r\n                '<ul class=\"dropdown-menu pull-right\"></ul>'\r\n            );\r\n\r\n            menuEl.addEventListener('click', event => {\r\n                event.stopPropagation();\r\n                menuEl.classList.toggle('btn-group-open');\r\n\r\n                const dropdownMenu = menuEl.querySelector('.dropdown-menu');\r\n                if (Element.getStyle(dropdownMenu, 'display') !== 'none') {\r\n                    dropdownMenu.style.right = 0;\r\n                    const offset = Element.cumulativeOffset(dropdownMenu);\r\n                    const { left } = Element.cumulativeOffset(toolbarEl);\r\n                    if (offset.left < left) {\r\n                        dropdownMenu.style.right = `${offset.left - left}px`;\r\n                    }\r\n                }\r\n            });\r\n            document.body.addEventListener('click', () => {\r\n                menuEl.classList.remove('btn-group-open');\r\n            });\r\n            render(toolbarEl, menuEl);\r\n\r\n            const layout = Element.getLayout(menuEl);\r\n            toolbarEl._menuEl = {\r\n                el: menuEl,\r\n                width: Element.getWidth(menuEl) + layout.get('margin-left') + layout.get('margin-right'),\r\n            };\r\n            menuEl.style.display = 'none';\r\n\r\n            toolbarEl._items = [];\r\n            itemEls.forEach(itemEl => {\r\n                const itemElClone = itemEl.cloneNode(true);\r\n                itemElClone.classList.remove('btn');\r\n\r\n                const liEl = new Element('li');\r\n                render(liEl, itemElClone);\r\n                render(menuEl.querySelector('ul'), liEl);\r\n\r\n                const layout = Element.getLayout(itemEl);\r\n                toolbarEl._items.push({\r\n                    el: itemEl,\r\n                    elInMenu: liEl,\r\n                    width: Element.getWidth(itemEl) + layout.get('margin-left') + layout.get('margin-right'),\r\n                });\r\n            });\r\n        });\r\n\r\n        const onWindowResize = () => {\r\n            document.querySelectorAll('.a-toolbar-buttons-main').forEach(toolbarEl => {\r\n                let width = Element.getWidth(toolbarEl);\r\n                width -= toolbarEl._menuEl.width;\r\n\r\n                toolbarEl._items.each(function (item) {\r\n                    if (width > item.width) {\r\n                        item.el.style.display = '';\r\n                        item.elInMenu.style.display = 'none';\r\n                        width -= item.width;\r\n                    } else {\r\n                        item.el.style.display = 'none';\r\n                        item.elInMenu.style.display = '';\r\n                        width = -1;\r\n                    }\r\n                });\r\n                if (width === -1) {\r\n                    toolbarEl._menuEl.el.style.display = '';\r\n                } else {\r\n                    toolbarEl._menuEl.el.style.display = 'none';\r\n                }\r\n            });\r\n        };\r\n\r\n        onWindowResize();\r\n        window.addEventListener('resize', onWindowResize);\r\n    }\r\n\r\n    toggleItem(item) {\r\n        this.getItemElement(item).classList.toggle('active-list-item-collapsed');\r\n        this.getItemElement(item).classList.toggle('active-list-item-expanded');\r\n        this.stateCollapsed.set(item, !this.stateCollapsed.get(item));\r\n    }\r\n\r\n    scrollToItem(el, duration) {\r\n        const startTime = new Date().getTime();\r\n        const from = document.viewport.getScrollOffsets().top;\r\n        let to = Element.cumulativeOffset(el).top - Element.cumulativeOffset(document.querySelector('.pul-layout__main')).top - 40;\r\n\r\n        if (document.getElementById('classic-mode-navigation')) {\r\n            to -= Element.getHeight(document.getElementById('classic-mode-navigation'));\r\n        }\r\n\r\n        const frame = () => {\r\n            let progress = duration ? ((new Date().getTime() - startTime) / duration) : 1;\r\n            if (progress > 1) {\r\n                progress = 1;\r\n            }\r\n\r\n            window.scrollTo(0, Math.round(from + ((to - from) * progress)));\r\n\r\n            if (progress < 1) {\r\n                setTimeout(frame, 50);\r\n            }\r\n        };\r\n        frame();\r\n    }\r\n\r\n    getItemIdFromUrl(url) {\r\n        const m = url.match('/id/([0-9]+)');\r\n        return m && m[1];\r\n    }\r\n\r\n    render() {\r\n        super.render();\r\n\r\n        const id = this.getItemIdFromUrl(decodeURIComponent(this.pageUrl));\r\n        if (!id) {\r\n            return;\r\n        }\r\n\r\n        const el = this.getItemElement({ id });\r\n        if (el) {\r\n            pageData().status?.forEach(({ status, content, ...props }) => {\r\n                addStatusMessage(status, content, {\r\n                    ...props,\r\n                    title: Locale.getSection('components.status').lmsg(status),\r\n                    renderTo: el.querySelector('.caption-header-wrap'),\r\n                    renderMode: 'top',\r\n                });\r\n            });\r\n            pageData({ ...pageData(), status: [] });\r\n            this.scrollToItem(el, 10);\r\n        }\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\n/* eslint-disable react/jsx-max-depth */\r\n\r\nimport { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport {\r\n    Action,\r\n    Button,\r\n    Column,\r\n    Columns,\r\n    StatusMessage,\r\n    ExtendedStatusMessage,\r\n    ExtendedStatusMessageDescription,\r\n    ExtendedStatusMessageTitle, Link, LocaleProvider, Spot,\r\n    Text, Translate, Icon,\r\n} from '@plesk/ui-library';\r\nimport { api, redirect, UAT } from 'jsw';\r\nimport './DynamicListBanner.less';\r\n\r\nexport const dynamicListBannerFeedbackHandler = () => {\r\n    UAT.dispatchAction('DYNAMICLIST_BANNER_STARTED_FEEDBACK');\r\n    return true;\r\n};\r\n\r\nexport const DynamicListBannerHint = ({ selector }) => {\r\n    const [closed, setClosed] = useState(false);\r\n\r\n    const handleClose = () => {\r\n        setClosed(true);\r\n    };\r\n\r\n    return !closed &&\r\n        <Spot\r\n            selector={selector}\r\n            popup={{\r\n                size: 'md',\r\n                placement: 'bottom',\r\n                onClose: handleClose,\r\n                buttons: [(\r\n                    <Button\r\n                        key=\"finish\"\r\n                        onClick={handleClose}\r\n                        intent=\"primary\"\r\n                        data-type=\"close-banner-hint\"\r\n                    >\r\n                        <Translate content=\"closedBannerButton\" />\r\n                    </Button>\r\n                )],\r\n                children: <Translate content=\"closedBannerHint\" />,\r\n            }}\r\n        />;\r\n};\r\n\r\nDynamicListBannerHint.propTypes = {\r\n    selector: PropTypes.string.isRequired,\r\n};\r\n\r\nconst DynamicListBanner = ({ bannerInfo, onTourStart, listMode, dropdownSelector, canStartTour }) => {\r\n    const [showHint, setShowHint] = useState(false);\r\n    const [discarded, setDiscarded] = useState(bannerInfo.discarded);\r\n\r\n    const { enabled, collapsed, feedbackUrl, locale, initialType } = bannerInfo;\r\n    const [isCollapsed, setIsCollapsed] = useState(collapsed);\r\n\r\n    const handleCloseBanner = () => {\r\n        setDiscarded(true);\r\n        setShowHint(true);\r\n        api.post('/smb/web/dynamic-list-banner-hide');\r\n        UAT.dispatchAction('DYNAMICLIST_BANNER_CLOSED');\r\n    };\r\n\r\n    const handleSwitchView = () => {\r\n        UAT.dispatchAction('DYNAMICLIST_BANNER_SWITCHED_VIEW', {\r\n            listType: 'dynamic',\r\n        });\r\n        redirect('/smb/web/view?list-type=dynamic');\r\n    };\r\n\r\n    const handleToggleBanner = () => {\r\n        api.post('/smb/web/active-list-banner-toggle-collapsed', { collapsed: !isCollapsed });\r\n        setIsCollapsed(!isCollapsed);\r\n    };\r\n\r\n    const handleSwitchBackView = async () => {\r\n        await api.post('/smb/web/dynamic-list-banner-switch');\r\n        UAT.dispatchAction('DYNAMICLIST_BANNER_SWITCHED_VIEW', { listType: initialType });\r\n        redirect(`/smb/web/view?list-type=${initialType}`);\r\n    };\r\n\r\n    const switchBackText = () => bannerInfo.initialType === 'active' ? 'switchBackToActive' : 'switchBackToClassic';\r\n\r\n    const isDynamic = listMode === 'dynamic';\r\n    const intent = isDynamic ? 'success' : 'warning';\r\n    const contentText = canStartTour ? 'switched.Text' : 'switched.TextWithoutTour';\r\n\r\n    const contentTextParams = {\r\n        link: (\r\n            <Link onClick={onTourStart}>\r\n                <Translate component={Text} bold content=\"switched.LinkText\" />\r\n            </Link>\r\n        ),\r\n        listType: <Translate content={listMode === 'active' ? 'activeList' : 'classicList'} />,\r\n    };\r\n\r\n    if (!enabled) {\r\n        return null;\r\n    }\r\n\r\n    if (!isDynamic) {\r\n        return (\r\n            <LocaleProvider messages={locale}>\r\n                <StatusMessage intent=\"warning\" className=\"dynamic-list-banner\">\r\n                    <div className=\"dynamic-list-banner__heading\">\r\n                        <Translate content=\"initial.Header\" />\r\n                        <Button\r\n                            onClick={handleToggleBanner}\r\n                            className=\"dynamic-list-banner__heading-button\"\r\n                            icon={isCollapsed ? 'chevron-down' : 'chevron-up'}\r\n                            ghost\r\n                        />\r\n                    </div>\r\n                    <div\r\n                        className={classNames({\r\n                            'dynamic-list-banner__body': true,\r\n                            'dynamic-list-banner__body--expanded': !isCollapsed,\r\n                        })}\r\n                    >\r\n                        <Translate\r\n                            content=\"initial.Text\"\r\n                            params={{\r\n                                dynamicListLink: (\r\n                                    <a\r\n                                        href=\"https://www.plesk.com/blog/product-technology/dynamic-list-vs-active-list-a-comprehensive-comparison-unveiling-the-ultimate-winner/\"\r\n                                        target=\"_blank\"\r\n                                        rel=\"noreferrer\"\r\n                                    >\r\n                                        <Translate content=\"dynamicListDescLink\" />\r\n                                    </a>\r\n                                ),\r\n                            }}\r\n                        />\r\n                        <div className=\"dynamic-list-banner__actions\">\r\n                            <Action icon=\"projects\" onClick={handleSwitchView}>\r\n                                <Translate content=\"switchToDynamic\" />\r\n                            </Action>\r\n                            {feedbackUrl && (\r\n                                <Action\r\n                                    id=\"feedback\"\r\n                                    icon=\"feedback\"\r\n                                    href={feedbackUrl}\r\n                                    target=\"_blank\"\r\n                                    onClick={dynamicListBannerFeedbackHandler}\r\n                                >\r\n                                    <Translate content=\"shareFeedback\" />\r\n                                </Action>\r\n                            )}\r\n                            <Action\r\n                                id=\"chat\"\r\n                                icon=\"chat\"\r\n                                target=\"_blank\"\r\n                                href=\"https://talk.plesk.com/threads/active-list-will-be-discontinued-and-replaced-by-dynamic-list-starting-march-2024.370757/\"\r\n                            >\r\n                                <Translate content=\"discussOnForum\" />\r\n                            </Action>\r\n                        </div>\r\n                    </div>\r\n                </StatusMessage>\r\n            </LocaleProvider>\r\n        );\r\n    }\r\n\r\n    return (\r\n        <LocaleProvider messages={locale}>\r\n            {!discarded && (\r\n                <ExtendedStatusMessage\r\n                    intent={intent}\r\n                    image={<Icon src={require('images/dynamic-list-promotion.png')} size=\"48\" />}\r\n                    className=\"dynamic-list-banner\"\r\n                >\r\n                    <Columns>\r\n                        <Column fill>\r\n                            <Columns>\r\n                                <Column maxWidth=\"70%\">\r\n                                    <ExtendedStatusMessageTitle>\r\n                                        <Translate content=\"switched.Header\" />\r\n                                    </ExtendedStatusMessageTitle>\r\n                                    <ExtendedStatusMessageDescription>\r\n                                        <Translate content={contentText} params={contentTextParams} />\r\n                                    </ExtendedStatusMessageDescription>\r\n                                    <ExtendedStatusMessageDescription>\r\n                                        <Columns gap=\"md\">\r\n                                            {feedbackUrl && (\r\n                                                <Column>\r\n                                                    <Action\r\n                                                        icon=\"feedback\"\r\n                                                        href={feedbackUrl}\r\n                                                        target={'_blank'}\r\n                                                        onClick={dynamicListBannerFeedbackHandler}\r\n                                                    >\r\n                                                        <Translate\r\n                                                            content=\"shareFeedback\"\r\n                                                        />\r\n                                                    </Action>\r\n                                                </Column>\r\n                                            )}\r\n                                            {bannerInfo.initialType !== 'dynamic' && (\r\n                                                <Column>\r\n                                                    <Action\r\n                                                        icon=\"arrow-back\"\r\n                                                        onClick={handleSwitchBackView}\r\n                                                    >\r\n                                                        <Translate\r\n                                                            content={switchBackText()}\r\n                                                        />\r\n                                                    </Action>\r\n                                                </Column>\r\n                                            )}\r\n                                        </Columns>\r\n                                    </ExtendedStatusMessageDescription>\r\n                                </Column>\r\n                            </Columns>\r\n                        </Column>\r\n                        <Column>\r\n                            <Button ghost icon=\"cross-mark\" onToggle={handleCloseBanner} />\r\n                        </Column>\r\n                    </Columns>\r\n                </ExtendedStatusMessage>\r\n            )}\r\n            {showHint && <DynamicListBannerHint selector={dropdownSelector} />}\r\n        </LocaleProvider>\r\n    );\r\n};\r\n\r\nDynamicListBanner.propTypes = {\r\n    onTourStart: PropTypes.func,\r\n    bannerInfo: PropTypes.shape({\r\n        locale: PropTypes.object.isRequired,\r\n        enabled: PropTypes.bool,\r\n        discarded: PropTypes.bool,\r\n        collapsed: PropTypes.bool,\r\n        feedbackUrl: PropTypes.string,\r\n        switched: PropTypes.bool.isRequired,\r\n        initialType: PropTypes.string.isRequired,\r\n    }).isRequired,\r\n    listMode: PropTypes.string.isRequired,\r\n    dropdownSelector: PropTypes.string.isRequired,\r\n    canStartTour: PropTypes.bool,\r\n};\r\n\r\nDynamicListBanner.defaultProps = {\r\n    onTourStart: () => true,\r\n    canStartTour: false,\r\n};\r\n\r\nexport default DynamicListBanner;\r\n","module.exports = Jsw.skinUrl + \"/images/dynamic-list-promotion.png?7bbebe1fbbb41fda79f07c86b60514b0\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/settings-toolbar.png?6074d526f4dc827dee3280629d2e5130\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/order-ascending.png?3c02863d9b5c4a3cf034bd74e0183fa6\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/order-descending.png?c973774da91e3186ce0b188d9d895ef1\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/list-type-dynamic.png?f55b30089f0aeca5c8fadbd521e63daf\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/list-type-active.png?2bd72c88d60436bb8acc8328ed7f9ed3\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/list-type-classic.png?3eb8621bc8257a9b5f9995433f509a57\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/feedback.png?dd665a70b8326bc7d1ceb0cd2604f67a\";","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Component } from '../component';\r\nimport addStatusMessage from '../addStatusMessage';\r\nimport clearStatusMessages from '../clearStatusMessages';\r\nimport showInternalError from '../showInternalError';\r\nimport prepareUrl from '../prepareUrl';\r\nimport render from '../render';\r\nimport ce from '../createElement';\r\nimport escapeHtml from '../escapeHtml';\r\nimport emptyFn from '../emptyFn';\r\nimport { ESC, ENTER } from '../keyCode';\r\nimport api from '../api';\r\nimport { getTypeIcon } from '../../helpers/fileManager';\r\n\r\nimport './tree.less';\r\n\r\n/**\r\n * The widget displays directories and files in the webspace, allows selection\r\n *\r\n * Example usage:\r\n *\r\n *     @example\r\n *     new FileManager.Tree({\r\n *         renderTo: document.body,\r\n *         rootNodeTitle: 'Root node',\r\n *         data: [{\r\n *             name: 'folder',\r\n *             isDirectory: true,\r\n *             icon: '/icons/16/plesk/file-folder.png'\r\n *         }, {\r\n *             name: 'file.html',\r\n *             isDirectory: false,\r\n *             icon: '/icons/16/plesk/file-html.png'\r\n *         }]\r\n *     });\r\n */\r\nexport class Tree extends Component {\r\n    /**\r\n     * @cfg {Object[]} data=[]\r\n     */\r\n    /**\r\n     * @cfg {String} dataUrl=\"\"\r\n     */\r\n    /**\r\n     * @cfg {Boolean} showFiles=false\r\n     */\r\n\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._data = this._getConfigParam('data', null);\r\n        this._dataUrl = this._getConfigParam('dataUrl', '');\r\n        this._createFolderUrl = this._getConfigParam('createFolderUrl', '');\r\n        this._onNodeClick = this._getConfigParam('onNodeClick', emptyFn);\r\n        this._rootNodeTitle = this._getConfigParam('rootNodeTitle', '');\r\n        this._onReload = this._getConfigParam('onReload', emptyFn);\r\n        this._showFiles = this._getConfigParam('showFiles', false);\r\n        this._filterNodes = this._getConfigParam('filterNodes', () => true);\r\n        this._selectOnlyFiles = this._showFiles && this._getConfigParam('selectOnlyFiles', false);\r\n        if (this._getConfigParam('showMessage')) {\r\n            this._showMessage = this._getConfigParam('showMessage');\r\n        }\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n        if (null === this._data) {\r\n            this.reload();\r\n        } else {\r\n            this._initTreeView();\r\n        }\r\n    }\r\n\r\n    _initTreeView() {\r\n        this._componentElement.innerHTML = '<div class=\"tree-wrap\"></div>';\r\n        const container = this._componentElement.firstChild;\r\n\r\n        this._insertNode(container, {\r\n            name: this._rootNodeTitle,\r\n            path: '/',\r\n            htmlElement: 'div',\r\n            cssClass: 'tree-item-root',\r\n            isRootDirectory: true,\r\n            isDirectory: true,\r\n        });\r\n        render(container, this._getNodes(this._data));\r\n    }\r\n\r\n    _getNodes(items) {\r\n        const ulElement = new Element('ul', { class: 'tree-container' });\r\n\r\n        items.filter(this._filterNodes).forEach(this._insertNode.bind(this, ulElement));\r\n\r\n        return ulElement;\r\n    }\r\n\r\n    _insertNode(container, item, position) {\r\n        const element = document.createElement(item.htmlElement || 'li');\r\n        element.className = `tree-item ${item.cssClass ? item.cssClass : ''}`;\r\n        element.innerHTML = '<div class=\"tree-item-wrap\"></div>';\r\n        const wrapper = element.firstChild;\r\n        element.data = item;\r\n\r\n        const itemSelect = document.createElement('div');\r\n        itemSelect.className = 'tree-item-select';\r\n        render(wrapper, itemSelect);\r\n        this._addCommonEvents(itemSelect, item, element);\r\n        if (item.isDirectory && !item.isRootDirectory) {\r\n            render(wrapper, `<span class=\"tree-item-state\"><img src=\"${require('images/tree-open.gif')}\" height=\"16\" width=\"16\"></span>`);\r\n            wrapper.querySelector('.tree-item-state').addEventListener('click', this._onNodeToggle.bind(this, item.path, element));\r\n            wrapper.addEventListener('dblclick', this._onNodeToggle.bind(this, item.path, element));\r\n            if (!this._selectOnlyFiles) {\r\n                wrapper.querySelector('.tree-item-state').addEventListener('mouseover', this._onNodeMouseover.bind(this, element));\r\n                wrapper.querySelector('.tree-item-state').addEventListener('mouseleave', this._onNodeMouseleave.bind(this, element));\r\n            }\r\n        } else if (!item.isRootDirectory) {\r\n            render(wrapper, `<span class=\"tree-item-state\"><img src=\"${require('images/blank.gif')}\" height=\"16\" width=\"16\"></span>`);\r\n        }\r\n        const linkElement = document.createElement('a');\r\n        linkElement.className = 'tree-item-content';\r\n        linkElement.innerHTML = `<span><img src=\"${getTypeIcon(item)}\" alt=\"\"><b>${escapeHtml(item.name)}</b></span>`;\r\n        this._addCommonEvents(linkElement, item, element);\r\n        render(wrapper, linkElement);\r\n\r\n        render(container, element, position === 'top' ? 'top' : 'bottom');\r\n    }\r\n\r\n    _addCommonEvents(target, item, element) {\r\n        if (item.isDirectory && this._selectOnlyFiles) {\r\n            return;\r\n        }\r\n        target.addEventListener('mouseover', this._onNodeMouseover.bind(this, element));\r\n        target.addEventListener('mouseleave', this._onNodeMouseleave.bind(this, element));\r\n        target.addEventListener('click', event => {\r\n            this._onNodeSelect(event, element);\r\n        });\r\n        target.addEventListener('click', this._onNodeClick.bind(this, item.path, element));\r\n    }\r\n\r\n    _onNodeToggle(directoryPath, containerElement) {\r\n        const subTreeElement = containerElement.querySelector('ul');\r\n        const expandElement = containerElement.querySelector('.tree-item-state');\r\n\r\n        if (subTreeElement) {\r\n            expandElement.innerHTML = `<img src=\"${require('images/tree-open.gif')}\" height=\"16\" width=\"16\">`;\r\n            subTreeElement.parentNode.removeChild(subTreeElement);\r\n            containerElement.data.showNewNode = false;\r\n            return;\r\n        }\r\n\r\n        this._loadNode(directoryPath, containerElement);\r\n    }\r\n\r\n    _loadNode(directoryPath, containerElement) {\r\n        if (containerElement.querySelector('.tree-item-state').querySelector('.js-loader')) {\r\n            return;\r\n        }\r\n        this._onNodeLoadStart(containerElement);\r\n        api.get(prepareUrl(this._dataUrl), { rootDir: directoryPath, showFiles: this._showFiles })\r\n            .then(this._onNodeLoadSuccess.bind(this, containerElement))\r\n            .catch(this._onNodeLoadFailure.bind(this));\r\n    }\r\n\r\n    _isNodeExpanded(nodeElement) {\r\n        return !!nodeElement.querySelector('ul') || nodeElement.classList.contains('tree-item-root');\r\n    }\r\n\r\n    _onNodeLoadStart(containerElement) {\r\n        const expandElement = containerElement.querySelector('.tree-item-state');\r\n        expandElement.innerHTML = `<img src=\"${require('images/indicator.gif')}\" height=\"16\" width=\"16\" class=\"js-loader\">`;\r\n    }\r\n\r\n    _onNodeLoadSuccess(containerElement, items) {\r\n        const expandElement = containerElement.querySelector('.tree-item-state');\r\n        if (items.status) {\r\n            expandElement.innerHTML = `<img src=\"${require('images/tree-open.gif')}\" height=\"16\" width=\"16\">`;\r\n            this._showMessage(items.status, items.message);\r\n            return;\r\n        }\r\n\r\n        clearStatusMessages();\r\n        expandElement.innerHTML = `<img src=\"${require('images/tree-close.gif')}\" height=\"16\" width=\"16\">`;\r\n        render(containerElement, this._getNodes(items));\r\n        if (containerElement.data.showNewNode) {\r\n            this.showNewNode(containerElement);\r\n        }\r\n    }\r\n\r\n    _showMessage(status, message) {\r\n        clearStatusMessages();\r\n        addStatusMessage(status, message);\r\n    }\r\n\r\n    _onNodeSelect(event, containerElement) {\r\n        if (event) {\r\n            event.preventDefault();\r\n        }\r\n        this.resetSelection();\r\n        containerElement.querySelector('.tree-item-wrap').classList.add('tree-item-row-active');\r\n        this.hideNewNode();\r\n    }\r\n\r\n    resetSelection() {\r\n        this._componentElement.querySelectorAll('.tree-item-wrap').forEach(element => {\r\n            element.classList.remove('tree-item-row-active');\r\n        });\r\n    }\r\n\r\n    _onNodeMouseover(containerElement) {\r\n        this.resetHover();\r\n        containerElement.querySelector('.tree-item-select').classList.add('tree-item-hover');\r\n    }\r\n\r\n    _onNodeMouseleave(containerElement) {\r\n        this.resetHover();\r\n        containerElement.querySelector('.tree-item-select').classList.remove('tree-item-hover');\r\n    }\r\n\r\n    resetHover() {\r\n        this._componentElement.querySelectorAll('.tree-item-select').forEach(element => {\r\n            element.classList.remove('tree-item-hover');\r\n        });\r\n    }\r\n\r\n    /**\r\n     * @param {String} directory\r\n     */\r\n    setDirectory(directory) {\r\n        const node = this._getNodeElement(directory);\r\n        if (node) {\r\n            this._onNodeSelect(null, node);\r\n        }\r\n    }\r\n\r\n    reload() {\r\n        this._componentElement.innerHTML = '<div class=\"ajax-loading\">Please wait...</div>';\r\n\r\n        api.get(prepareUrl(this._dataUrl), { rootDir: '/', showFiles: this._showFiles })\r\n            .then(this._onFullReloadSuccess.bind(this))\r\n            .catch(this._onNodeLoadFailure.bind(this));\r\n    }\r\n\r\n    _onFullReloadSuccess(data) {\r\n        this._data = data;\r\n        this._initTreeView();\r\n        this._onReload();\r\n    }\r\n\r\n    _onNodeLoadFailure() {\r\n        showInternalError('Failed to load tree data.');\r\n    }\r\n\r\n    reloadPath(path) {\r\n        if (path === '/') {\r\n            this.reload();\r\n            return;\r\n        }\r\n\r\n        const node = this._getNodeElement(path);\r\n        if (!node) {\r\n            return;\r\n        }\r\n\r\n        if (this._isNodeExpanded(node)) {\r\n            const el = node.querySelector('ul');\r\n            el.parentNode.removeChild(el);\r\n            this._loadNode(path, node);\r\n        }\r\n    }\r\n\r\n    _getNodeElement(path) {\r\n        if (typeof path !== 'string') {\r\n            return null;\r\n        }\r\n        const nodes = this._componentElement.querySelectorAll('.tree-item');\r\n        for (let i = 0; i < nodes.length; i++) {\r\n            if (nodes[i].data.path === path) {\r\n                return nodes[i];\r\n            }\r\n        }\r\n        const lastSlashIndex = path.lastIndexOf('/');\r\n        if (lastSlashIndex > 0) {\r\n            return this._getNodeElement(path.slice(0, lastSlashIndex));\r\n        }\r\n        return null;\r\n    }\r\n\r\n    getSelectedNode() {\r\n        const selectedElement = this._componentElement.querySelector('.tree-item-row-active');\r\n        if (!selectedElement) {\r\n            return null;\r\n        }\r\n\r\n        return selectedElement.closest('.tree-item');\r\n    }\r\n\r\n    getSelectedItemData() {\r\n        const selectedElement = this.getSelectedNode();\r\n        if (!selectedElement) {\r\n            return null;\r\n        }\r\n\r\n        return selectedElement.data;\r\n    }\r\n\r\n    expandNode(node) {\r\n        if (!node) {\r\n            node = this.getSelectedNode();\r\n        }\r\n        if (this._isNodeExpanded(node)) {\r\n            return;\r\n        }\r\n\r\n        this._loadNode(node.data.path, node);\r\n    }\r\n\r\n    showNewNode(parentNode) {\r\n        if (!parentNode) {\r\n            parentNode = this.getSelectedNode();\r\n        }\r\n        if (!parentNode) {\r\n            // Process root node\r\n            parentNode = this._componentElement.querySelector('.tree-item-root');\r\n        }\r\n        parentNode.data.showNewNode = true;\r\n        if (!this._isNodeExpanded(parentNode)) {\r\n            this.expandNode(parentNode);\r\n            return;\r\n        }\r\n        let container = parentNode.querySelector('ul.tree-container');\r\n        if (!container) {\r\n            // Process root node\r\n            container = parentNode.nextElementSibling;\r\n        }\r\n        this._insertNewNode(container, {\r\n            name,\r\n            path: parentNode.data.path,\r\n            icon: '/icons/16/plesk/file-folder.png',\r\n            isDirectory: true,\r\n            type: 'dir',\r\n        }, 'top');\r\n    }\r\n\r\n    hideNewNode() {\r\n        const newNode = this._componentElement.querySelector('.js-tree-item-new');\r\n        if (!newNode) {\r\n            return;\r\n        }\r\n        let parentNode = newNode.closest('.tree-item');\r\n        if (!parentNode) {\r\n            // Process root node\r\n            parentNode = this._componentElement.querySelector('.tree-item-root');\r\n        }\r\n        parentNode.data.showNewNode = false;\r\n        newNode.parentNode.removeChild(newNode);\r\n    }\r\n\r\n    _insertNewNode(container, item, position) {\r\n        if (container.querySelector('.js-tree-item-new')) {\r\n            return;\r\n        }\r\n        const element = ce('li.tree-item js-tree-item-new',\r\n            {\r\n                onrender(el) {\r\n                    el.data = item;\r\n                },\r\n            },\r\n            ce('div.tree-item-wrap',\r\n                ce('span.tree-item-state', ce('img', { src: require('images/blank.gif') })),\r\n                ce('div.tree-item-content',\r\n                    ce('div.input-btn-group',\r\n                        ce('i.icon-folder'),\r\n                        ce('input.form-control', { type: 'text', onkeydown: this._onNewNodeKeyDown.bind(this) }),\r\n                        ce('button.btn btn-icon-only input-btn',\r\n                            { type: 'button', onclick: this._onCreateFolder.bind(this), onrender: el => {\r\n                                this._insertBtn = el;\r\n                            } },\r\n                            ce('i.icon-save')),\r\n                        ce('button.btn btn-icon-only input-btn',\r\n                            { type: 'button', onclick: this._onCancelCreateFolder.bind(this) }, ce('i.icon-cancel')),\r\n                    ),\r\n                ),\r\n            ),\r\n        );\r\n\r\n        render(container, element, position);\r\n        container.querySelector('.js-tree-item-new input').focus();\r\n    }\r\n\r\n    _onCreateFolder(e) {\r\n        const name = e.target.closest('.input-btn-group').querySelector('.form-control').value;\r\n        const newNode = e.target.closest('.js-tree-item-new');\r\n        let parentNode = newNode.parentNode.closest('.tree-item');\r\n        if (!parentNode) {\r\n            // Process root node\r\n            parentNode = newNode.closest('ul.tree-container').previousElementSibling;\r\n        }\r\n\r\n        const row = parentNode.closest('.form-row');\r\n        row.classList.remove('error');\r\n        const errorMessage = row.querySelector('.field-value .field-errors');\r\n        if (errorMessage) {\r\n            errorMessage.parentNode.removeChild(errorMessage);\r\n        }\r\n\r\n        this._insertBtn.disabled = true;\r\n        api.post(prepareUrl(this._createFolderUrl), { currentDir: newNode.data.path, newDirectoryName: name })\r\n            .then(response => this._onFolderCreated(name, parentNode, response))\r\n            .finally(() => {\r\n                this._insertBtn.disabled = false;\r\n            });\r\n    }\r\n\r\n    _onFolderCreated(name, parentNode, { status, message }) {\r\n        if (status === 'success') {\r\n            const path = `${parentNode.data.path}/${name}`;\r\n            let container = parentNode.querySelector('ul.tree-container');\r\n            if (!container) {\r\n                // Process root node\r\n                container = parentNode.nextElementSibling;\r\n            }\r\n            this.hideNewNode();\r\n            this._insertNode(container, {\r\n                name,\r\n                path,\r\n                isDirectory: true,\r\n            }, 'top');\r\n            this._onNodeSelect(null, container);\r\n        } else {\r\n            const row = parentNode.closest('.form-row');\r\n            row.classList.add('error');\r\n            const errorMessage = ce('span.field-errors', ce('span.error-hint', message));\r\n            render(row.querySelector('.field-value'), errorMessage);\r\n        }\r\n    }\r\n\r\n    _onCancelCreateFolder() {\r\n        this.hideNewNode();\r\n    }\r\n\r\n    _onNewNodeKeyDown(e) {\r\n        switch (e.keyCode) {\r\n            case ENTER:\r\n                e.preventDefault();\r\n                this._onCreateFolder(e);\r\n                break;\r\n            case ESC:\r\n                e.preventDefault();\r\n                this._onCancelCreateFolder(e);\r\n                break;\r\n        }\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nexport const FTYPE_TEXT = 'text';\r\nexport const FTYPE_IMAGE = 'image';\r\nexport const FTYPE_VECTOR_IMAGE = 'vector_image';\r\nexport const FTYPE_AUDIO = 'audio';\r\nexport const FTYPE_SECURITY = 'security';\r\nexport const FTYPE_WEBSCRIPT = 'webscript';\r\nexport const FTYPE_WEBPAGE = 'webpage';\r\nexport const FTYPE_WAPPAGE = 'wappage';\r\nexport const FTYPE_COMPRESSED = 'compressed';\r\nexport const FTYPE_UNKNOWN_TEXT = 'unknown_text';\r\nexport const FTYPE_UNKNOWN_BINARY = 'unknown_binary';\r\nexport const FTYPE_ZIP = 'zip';\r\nexport const FTYPE_RAR = 'rar';\r\nexport const FTYPE_TAR = 'tar';\r\nexport const FTYPE_TGZ = 'tgz';\r\n\r\nexport const getTypeIcon = ({ type, isDirectory, name }) => {\r\n    if (isDirectory) {\r\n        return name === '..'\r\n            ? require('icons/16/plesk/uplevel.png')\r\n            : require('icons/16/plesk/file-folder.png');\r\n    }\r\n\r\n    const list = {\r\n        [FTYPE_TEXT]: require('icons/16/plesk/file-txt.png'),\r\n        [FTYPE_IMAGE]: require('icons/16/plesk/file-image.png'),\r\n        [FTYPE_VECTOR_IMAGE]: require('icons/16/plesk/file-image.png'),\r\n        [FTYPE_AUDIO]: require('icons/16/plesk/file-audio.png'),\r\n        [FTYPE_SECURITY]: require('icons/16/plesk/file-private.png'),\r\n        [FTYPE_WEBSCRIPT]: require('icons/16/plesk/file-webscript.png'),\r\n        [FTYPE_WEBPAGE]: require('icons/16/plesk/file-html.png'),\r\n        [FTYPE_WAPPAGE]: require('icons/16/plesk/file-html.png'),\r\n        [FTYPE_COMPRESSED]: require('icons/16/plesk/file-arch.png'),\r\n        [FTYPE_UNKNOWN_TEXT]: require('icons/16/plesk/file-txt.png'),\r\n        [FTYPE_UNKNOWN_BINARY]: require('icons/16/plesk/file-binary.png'),\r\n        [FTYPE_ZIP]: require('icons/16/plesk/file-arch.png'),\r\n        [FTYPE_RAR]: require('icons/16/plesk/file-arch.png'),\r\n        [FTYPE_TAR]: require('icons/16/plesk/file-arch.png'),\r\n        [FTYPE_TGZ]: require('icons/16/plesk/file-arch.png'),\r\n    };\r\n\r\n    return list[type];\r\n};\r\n\r\nexport const toUnixPermissionsString = permissions => [\r\n    'ownerRead',\r\n    'ownerWrite',\r\n    'ownerExecute',\r\n    'groupRead',\r\n    'groupWrite',\r\n    'groupExecute',\r\n    'othersRead',\r\n    'othersWrite',\r\n    'othersExecute',\r\n].reduce((acc, name, index) => {\r\n    const flag = permissions[name];\r\n    acc += flag ? ['r', 'w', 'x'][index % 3] : '-';\r\n    if (index % 3 === 2) {\r\n        acc += ' ';\r\n    }\r\n    return acc;\r\n}, '');\r\n","module.exports = Jsw.skinUrl + \"/icons/16/plesk/uplevel.png?09738742d9a113e283a273f3445a1ba9\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/file-folder.png?377a0415c8e86b629f04f2de969b6dc7\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/file-txt.png?9bfe434b7467e7d61abb4b3ae8adc711\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/file-image.png?1327e17a096bce2f49ad2f66f4abdaf6\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/file-audio.png?72fe25f83d67048d40e6c86149d696bf\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/file-private.png?b3e618929415e17caa82f8d04d2aa689\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/file-webscript.png?b2aff14c14b05cccbb316c37d48fb591\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/file-html.png?a1c021367bd1d987f31cf58c13a2d342\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/file-arch.png?672559f884c624090a3e3687f16148ec\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/file-binary.png?e5e874cc42fb4473aab65dcace6e6664\";","module.exports = Jsw.skinUrl + \"/images/tree-open.gif?56398e76be6355ad5999b262208a17c9\";","module.exports = Jsw.skinUrl + \"/images/indicator.gif?ece6f747d3bfdc48d99f935627535c09\";","module.exports = Jsw.skinUrl + \"/images/tree-close.gif?56398e76be6355ad5999b262208a17c9\";","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport render from '../render';\r\n\r\nexport class UploadAdapterIframe {\r\n    constructor({ contentAreaId, handlerUrl, startUploadHandler, finishUploadHandler }) {\r\n        this._contentAreaId = contentAreaId;\r\n        this._handlerUrl = handlerUrl;\r\n        this._startUploadHandler = startUploadHandler;\r\n        this._finishUploadHandler = finishUploadHandler;\r\n        this._uploadFrameInitialized = false;\r\n        this._getUploadIFrameElement();\r\n    }\r\n\r\n    _getUploadIFrameElement() {\r\n        const contentArea = document.getElementById(this._contentAreaId);\r\n        if (!contentArea.querySelector('iframe')) {\r\n            this._uploadFrameElement = new Element('iframe', {\r\n                id: `${this._contentAreaId}-upload-iframe`,\r\n                name: '_uploadIFrame',\r\n                style: 'display: none;',\r\n                src: this._handlerUrl,\r\n            });\r\n            render(contentArea, this._uploadFrameElement);\r\n            this._uploadFrameElement.addEventListener('load', this._onUploadFrameInitialized.bind(this));\r\n        }\r\n        return this._uploadFrameElement;\r\n    }\r\n\r\n    _onUploadFrameInitialized() {\r\n        if (this._uploadFrameInitialized) {\r\n            return;\r\n        }\r\n        this._uploadFrameInitialized = true;\r\n        this._uploadFrameElement.addEventListener('load', this._finishUploadHandler);\r\n        this._startUploadHandler();\r\n    }\r\n\r\n    isReady() {\r\n        return this._uploadFrameInitialized;\r\n    }\r\n\r\n    getResult() {\r\n        const statusFrame = this._getUploadIFrameElement();\r\n        const statusDocument = statusFrame.contentDocument || statusFrame.contentWindow.document;\r\n        try {\r\n            return JSON.parse(statusDocument.body.innerHTML);\r\n        } catch {\r\n            return {\r\n                status: 'ERROR',\r\n                message: 'No upload response',\r\n            };\r\n        }\r\n    }\r\n\r\n    cancel() {\r\n        if (this._uploadFrameElement) {\r\n            this._uploadFrameElement.setAttribute('src', 'javascript:false;');\r\n        }\r\n        this._finishUploadHandler();\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { PopupForm } from './popup-form';\r\nimport { Tree } from './file-manager/tree';\r\nimport emptyFn from './emptyFn';\r\n\r\nexport class DirectoryBrowser extends PopupForm {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n        this._pathElementId = this._getConfigParam('pathElementId');\r\n        this._subscriptionId = this._getConfigParam('subscriptionId');\r\n        this._showFiles = this._getConfigParam('showFiles', false);\r\n        this._onSubmit = this._getConfigParam('onSubmit', emptyFn);\r\n    }\r\n\r\n    render() {\r\n        super.render();\r\n\r\n        this.setBoxType('form-box');\r\n        this.setTitle(this.lmsg('title'));\r\n\r\n        document.getElementById(this._contentAreaId).innerHTML = (\r\n            `<form method=\"post\" id=\"${this._id}-form\">` +\r\n                '<div class=\"single-row\">' +\r\n                    '<div class=\"scrollable fm-scrollable\" style=\"height: 300px;\">' +\r\n                        '<div class=\"scrollable-wrap\">' +\r\n                            `<div id=\"${this._id}-files-tree\" class=\"tree\"></div>` +\r\n                        '</div>' +\r\n                    '</div>' +\r\n                '</div>' +\r\n            '</form>'\r\n        );\r\n\r\n        this._tree = new Tree({\r\n            applyTo: `${this._id}-files-tree`,\r\n            data: null,\r\n            dataUrl: `^/smb/file-manager/tree-data/subscriptionId/${this._subscriptionId}`,\r\n            showFiles: this._showFiles,\r\n            onNodeClick: this._onTreeNodeClick.bind(this),\r\n            onReload() {\r\n                this.setDirectory('/');\r\n            },\r\n            ...this._getConfigParam('treeConfig', {}),\r\n        });\r\n\r\n        this._buttonOk = this.addRightButton(this.lmsg('buttonOk'), this._onOkClick, true, true);\r\n        this._buttonCancel = this.addRightButton(this.lmsg('buttonCancel'), this._onCancelClick, false, false);\r\n\r\n        if (this._showFiles) {\r\n            this._updateButton(this._buttonOk, { disabled: true });\r\n        }\r\n    }\r\n\r\n    _onTreeNodeClick() {\r\n        this._updateButton(this._buttonOk, { disabled: this._showFiles && this._tree.getSelectedItemData().isDirectory });\r\n    }\r\n\r\n    _onOkClick(event) {\r\n        if (event) {\r\n            event.preventDefault();\r\n        }\r\n\r\n        const selectedPath = this._tree.getSelectedItemData().path;\r\n        const pathValue = this._showFiles ? selectedPath.substr(1) : selectedPath;\r\n        if (this._pathElementId) {\r\n            document.getElementById(this._pathElementId).value = pathValue;\r\n        }\r\n        this._onSubmit(pathValue);\r\n        this.hide();\r\n    }\r\n\r\n    _onCancelClick() {\r\n        this.hide();\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Component } from './component';\r\n\r\n/**\r\n * @param {Entry} entry\r\n * @return {Promise}\r\n */\r\nconst readEntry = entry => new Promise(resolve => {\r\n    if (entry.isDirectory) {\r\n        const entryReader = entry.createReader();\r\n        readAllEntries(entry, entryReader, resolve, []);\r\n    } else {\r\n        resolve(entry);\r\n    }\r\n});\r\n\r\nconst readAllEntries = function (entry, entryReader, resolve, allEntries) {\r\n    entryReader.readEntries(function (results) {\r\n        if (!results.length) {\r\n            if (!allEntries.length) {\r\n                resolve(entry);\r\n            } else {\r\n                resolve(entriesToFiles(allEntries));\r\n            }\r\n        } else {\r\n            allEntries = allEntries.concat(results);\r\n            readAllEntries(entry, entryReader, resolve, allEntries);\r\n        }\r\n    });\r\n};\r\n\r\n/**\r\n * @param {String[]} entries\r\n * @return {Promise}\r\n */\r\nconst entriesToFiles = entries => Promise.all(entries.map(readEntry))\r\n    .then(items => {\r\n        let files = [];\r\n        items.forEach(function (item) {\r\n            if (Array.isArray(item)) {\r\n                files = files.concat(item);\r\n            } else {\r\n                files.push(item);\r\n            }\r\n        });\r\n        return files;\r\n    });\r\n\r\n/**\r\n * @param {File} file\r\n * @return {Promise}\r\n */\r\nconst isFile = file => new Promise(resolve => {\r\n    if (file.size > 4096) {\r\n        resolve(true);\r\n        return;\r\n    }\r\n\r\n    if (!window.FileReader\r\n        || (window.opera && navigator.platform.toLowerCase().indexOf('mac') > -1 && window.opera.version() === '12.00')\r\n    ) {\r\n        resolve(null);\r\n    } else {\r\n        try {\r\n            const reader = new FileReader();\r\n            reader.onerror = () => {\r\n                reader.onloadend = null;\r\n                reader.onprogress = null;\r\n                reader.onerror = null;\r\n                resolve(false);\r\n            };\r\n            reader.onprogress = e => {\r\n                reader.onloadend = null;\r\n                reader.onprogress = null;\r\n                reader.onerror = null;\r\n                if (e.type !== 'loadend') {\r\n                    reader.abort();\r\n                }\r\n                resolve(true);\r\n            };\r\n            reader.onloadend = reader.onprogress;\r\n            reader.readAsDataURL(file);\r\n        } catch {\r\n            resolve(false);\r\n        }\r\n    }\r\n});\r\n\r\n/**\r\n * @param {Event} e\r\n * @return {Boolean}\r\n */\r\nconst isDragFiles = e => {\r\n    if (!e.dataTransfer) {\r\n        return false;\r\n    }\r\n\r\n    if (e.dataTransfer.effectAllowed === 'none') {\r\n        return false;\r\n    }\r\n\r\n    return [].some.call(e.dataTransfer.types, type => type === 'Files');\r\n};\r\n\r\n/**\r\n * @param {Event} e\r\n * @return {Promise}\r\n */\r\nconst getDragFiles = e => {\r\n    if (!e.dataTransfer) {\r\n        return Promise.resolve([]);\r\n    }\r\n\r\n    if (!e.dataTransfer.items) {\r\n        return Promise.all([].map.call(e.dataTransfer.files, isFile))\r\n            .then(isFiles => [].filter.call(e.dataTransfer.files, (file, index) => isFiles[index]));\r\n    }\r\n\r\n    return entriesToFiles(\r\n        [].map.call(e.dataTransfer.items, item => item.webkitGetAsEntry() || item.getAsFile()).filter(Boolean),\r\n    );\r\n};\r\n\r\n/**\r\n * Drop area component\r\n */\r\nexport class DropArea extends Component {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration({\r\n            cls: 'fm-drop-area',\r\n            ...config,\r\n        });\r\n\r\n        this.isButtomUploadDirectory = false;\r\n        this._onDrop = this._getConfigParam('onDrop');\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        this._componentElement.innerHTML = (\r\n            '<div class=\"fm-drop-area-wrap\">' +\r\n                `<span class=\"fm-drop-area-text\">\r\n                    <h2>${this.lmsg('dragAndDropArea')}</h2>\r\n                </span>` +\r\n            '</div>'\r\n        );\r\n\r\n        this.hide();\r\n    }\r\n\r\n    _addEvents() {\r\n        this._addDocumentHandlers();\r\n        this._addDropAreaHandlers();\r\n    }\r\n\r\n    _addDocumentHandlers() {\r\n        document.addEventListener('dragover', e => {\r\n            if (!isDragFiles(e)) {\r\n                return;\r\n            }\r\n\r\n            if (e.dataTransfer) {\r\n                e.preventDefault();\r\n            }\r\n        });\r\n\r\n        document.addEventListener('dragenter', e => {\r\n            if (!isDragFiles(e)) {\r\n                return;\r\n            }\r\n            this.show();\r\n        });\r\n\r\n        document.addEventListener('drop', e => {\r\n            if (!isDragFiles(e)) {\r\n                return;\r\n            }\r\n            this.hide();\r\n            e.preventDefault();\r\n        });\r\n    }\r\n\r\n    _addDropAreaHandlers() {\r\n        this._componentElement.addEventListener('dragover', e => {\r\n            if (!isDragFiles(e)) {\r\n                return;\r\n            }\r\n            e.stopPropagation();\r\n            e.preventDefault();\r\n        });\r\n\r\n        this._componentElement.addEventListener('drop', e => {\r\n            if (!isDragFiles(e)) {\r\n                return;\r\n            }\r\n            e.preventDefault();\r\n\r\n            this.hide();\r\n            if (this._onDrop) {\r\n                getDragFiles(e).then(this._onDrop);\r\n            }\r\n        });\r\n\r\n        this._componentElement.addEventListener('mouseover', () => {\r\n            if (!this.isButtomUploadDirectory) {\r\n                this.hide();\r\n            }\r\n        });\r\n\r\n        this._componentElement.addEventListener('click', () => {\r\n            this.hide();\r\n        });\r\n\r\n        document.onkeydown = event => {\r\n            switch (event.key) {\r\n                case 'Esc':\r\n                case 'Escape':\r\n                    this.hide();\r\n                    break;\r\n                default:\r\n            }\r\n        };\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { List } from './list';\r\nimport createElement from './createElement';\r\n\r\nexport class GroupsList extends List {\r\n    _getGroupRowClass() {\r\n        return '';\r\n    }\r\n\r\n    _initConfiguration(config) {\r\n        this._groupBy = false;\r\n        this._groupsConfig = [];\r\n\r\n        super._initConfiguration(config);\r\n        this._groupBy = this._getConfigParam('groupBy', false);\r\n        this._groupsConfig = this._getConfigParam('groupsConfig', false);\r\n        this._getGroupRowClass = this._getConfigParam('getGroupRowClass', this._getGroupRowClass);\r\n    }\r\n\r\n    listDataView(listData = this._data, indexOffset = 0) {\r\n        if (!listData) {\r\n            return null;\r\n        }\r\n\r\n        if (this._groupBy) {\r\n            listData.sort((a, b) => {\r\n                if (a[this._groupBy] > b[this._groupBy]) {\r\n                    return 1;\r\n                }\r\n                if (a[this._groupBy] < b[this._groupBy]) {\r\n                    return -1;\r\n                }\r\n                return 0;\r\n            });\r\n\r\n            const groupedData = {};\r\n            listData.forEach(item => {\r\n                if (!groupedData[item[this._groupBy]]) {\r\n                    groupedData[item[this._groupBy]] = {\r\n                        id: item[this._groupBy],\r\n                        items: [],\r\n                    };\r\n                }\r\n                groupedData[item[this._groupBy]].items.push(item);\r\n            });\r\n\r\n            return createElement('tbody',\r\n                Object.keys(groupedData).map((groupId, groupIndex) => {\r\n                    const group = groupedData[groupId];\r\n                    return this.groupDataRowView(group, groupIndex, indexOffset);\r\n                }),\r\n            );\r\n        }\r\n\r\n        return createElement('tbody',\r\n            listData.map((item, index) => this.rowView(item, index, indexOffset)),\r\n        );\r\n    }\r\n\r\n    groupDataRowView(group, groupIndex, indexOffset) {\r\n        return [\r\n            createElement(`tr.${this._getGroupRowClass(group)}.${(groupIndex + indexOffset) % 2 ? 'even' : 'odd'}`, {\r\n                colspan: this._columns.length,\r\n                'data-row-id': group.id,\r\n            }, `<b>${this._getGroupName(group)}</b>`),\r\n            ...group.items.map((item, index) => this.rowView(item, index, indexOffset)),\r\n        ];\r\n    }\r\n\r\n    _getGroupName(group) {\r\n        return this._groupsConfig[group.id] || group.id;\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { PopupForm } from './popup-form';\r\nimport { DynamicPopupHint } from './dynamic-popup-hint';\r\nimport { List } from './list';\r\nimport { Panel } from './panel';\r\nimport { getComponent } from './component';\r\nimport { redirect } from './form-redirect';\r\nimport Locale from './Locale';\r\nimport addStatusMessage from './addStatusMessage';\r\nimport prepareUrl from './prepareUrl';\r\nimport escapeHtml from './escapeHtml';\r\n\r\nexport class ReporterPopup extends PopupForm {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration({\r\n            singleRowButtons: true,\r\n            ...config,\r\n        });\r\n\r\n        this._actionCollectId = `${this._id}-action-collect`;\r\n        this._actionToSupportId = `${this._id}-action-to-support`;\r\n        this._sendButtonId = 'btn-send';\r\n        this._cancelButtonId = 'btn-cancel';\r\n        this._supportUrl = this._getConfigParam('supportUrl', '');\r\n    }\r\n\r\n    render() {\r\n        super.render();\r\n\r\n        this.setBoxType('form-box');\r\n        this.setTitle(this.lmsg('title'));\r\n\r\n        this.addRightButton(this.lmsg('buttonCollect'), this._onSendClick, true, true, { id: this._sendButtonId });\r\n        this.addRightButton(Locale.getSection('components.buttons').lmsg('cancel'), this._onCancelClick, false, false, { id: this._cancelButtonId });\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        this._componentElement.querySelector('div.content-area').innerHTML = (\r\n            '<div class=\"form-row\">' +\r\n                '<div class=\"single-row\">' +\r\n                    '<div class=\"field-value\">' +\r\n                        '<label>' +\r\n                            `<input class=\"radio\" type=\"radio\" name=\"action\" id=\"${this._actionCollectId}\" checked=\"checked\"> ` +\r\n                            `${this.lmsg('actionCollect')}${this._getTooltip()}` +\r\n                        '</label>' +\r\n                    '</div>' +\r\n                    '<div class=\"field-value\">' +\r\n                        `<label><input class=\"radio\" type=\"radio\" name=\"action\" id=\"${this._actionToSupportId}\"> ${this.lmsg('actionToSupport')}</label>` +\r\n                    '</div>' +\r\n                '</div>' +\r\n            '</div>' +\r\n            `<a href=\"#\" class=\"toggler js-show-previous-reports\">${this.lmsg('showPreviousReports')}</a>` +\r\n            `<a href=\"#\" class=\"toggler hidden js-hide-previous-reports\">${this.lmsg('hidePreviousReports')}</a>` +\r\n            `<div id=\"js-reports\"><span class=\"ajax-loading hidden\">${this.lmsg('pleaseWait')}</span></div>`\r\n        );\r\n    }\r\n\r\n    _onSupportClick(close) {\r\n        window.open(this._supportUrl, '_blank');\r\n        this._disableSendButton(this.lmsg('buttonWait'));\r\n        new Ajax.Request(\r\n            prepareUrl('/admin/report/report-usage/'), {\r\n                method: 'post',\r\n                onException: this._onException.bind(this),\r\n                onSuccess: () => {\r\n                    close ? this.hide() : this._enableSendButton(this.lmsg('buttonToSupport'));\r\n                },\r\n            },\r\n        );\r\n    }\r\n\r\n    _onCollectClick() {\r\n        this._disableSendButton();\r\n        DynamicPopupHint.unset();\r\n        document.getElementById(this._contentAreaId).innerHTML = `<p class=\"text-center\"><span class=\"ajax-loading\">${this.lmsg('collecting')}${this._getTooltip()}</span></p>`;\r\n        this._addTooltips();\r\n        new Ajax.Request(\r\n            prepareUrl('/admin/report/collect/'), {\r\n                method: 'post',\r\n                onException: this._onException.bind(this),\r\n                onSuccess: response => {\r\n                    const data = JSON.parse(response.responseText);\r\n                    if (this._checkResponseStatus(data)) {\r\n                        DynamicPopupHint.unset();\r\n                        const link = `<a href=\"${prepareUrl(`/admin/report/download/file/${encodeURIComponent(data.file)}`)}\">${this.lmsg('downloadLink')}</a>`;\r\n                        document.getElementById(this._contentAreaId).innerHTML = (\r\n                            `<p>${this.lmsg('collectedDescription')}</p>` +\r\n                            `<p>${this.lmsg('collectedDownload', { link })}</p>` +\r\n                            `<p>${this.lmsg('collectedConsent')}</p>`\r\n                        );\r\n                        this.file = data.file;\r\n                        this._enableSendButton(this.lmsg('buttonSend'));\r\n                    }\r\n                },\r\n            },\r\n        );\r\n    }\r\n\r\n    _onSendClick() {\r\n        const collectRadio = document.getElementById(this._actionCollectId);\r\n        if (collectRadio && collectRadio.checked) {\r\n            this._onCollectClick();\r\n            return;\r\n        }\r\n\r\n        if (collectRadio && !collectRadio.checked) {\r\n            this._onSupportClick(true);\r\n            return;\r\n        }\r\n\r\n        if (!this.file) {\r\n            this._onSupportClick(false);\r\n            return;\r\n        }\r\n\r\n        this._disableSendButton(this.lmsg('buttonSending'));\r\n        new Ajax.Request(\r\n            prepareUrl('/admin/report/send/'), {\r\n                method: 'post',\r\n                parameters: { file: this.file },\r\n                onException: this._onException.bind(this),\r\n                onSuccess: response => {\r\n                    const data = JSON.parse(response.responseText);\r\n                    if (this._checkResponseStatus(data)) {\r\n                        delete this.file;\r\n                        document.getElementById(this._contentAreaId).innerHTML = `<p>${this.lmsg('sentInfo', { id: escapeHtml(data.reportId) })}</p>`;\r\n                        this._enableSendButton(this.lmsg('buttonToSupport'));\r\n                    }\r\n                },\r\n            },\r\n        );\r\n    }\r\n\r\n    _onCancelClick() {\r\n        this.hide();\r\n    }\r\n\r\n    _onShowReportsClick(e) {\r\n        e.preventDefault();\r\n        this._componentElement.querySelector('.js-show-previous-reports').classList.add('hidden');\r\n        if (getComponent('reports-list') && this._componentElement.querySelector('.list-box')) {\r\n            this._componentElement.querySelector('.list-box').classList.remove('hidden');\r\n            this._componentElement.querySelector('.js-hide-previous-reports').classList.remove('hidden');\r\n            return;\r\n        }\r\n        this._componentElement.querySelector('.ajax-loading').classList.remove('hidden');\r\n        const dialogHeight = Element.getHeight(this._componentElement);\r\n        const list = new List({\r\n            id: 'reports-list',\r\n            dataUrl: prepareUrl('/admin/report/list-data'),\r\n            pageable: false,\r\n            columns: [\r\n                {\r\n                    header: this.lmsg('date'),\r\n                    dataIndex: 'date',\r\n                },\r\n                {\r\n                    header: this.lmsg('reportId'),\r\n                    dataIndex: 'id',\r\n                },\r\n            ],\r\n            onRedraw: () => {\r\n                this._componentElement.querySelector('.js-hide-previous-reports').classList.remove('hidden');\r\n                this._componentElement.querySelector('.ajax-loading').classList.add('hidden');\r\n                const maxHeight = Math.max(document.viewport.getScrollOffsets().top + document.viewport.getHeight() -\r\n                    (parseInt(Element.getStyle(this._componentElement, 'top')) * 1.5) - dialogHeight, 100);\r\n                this._componentElement.querySelector('.list').style.maxHeight = `${parseInt(maxHeight)}px`;\r\n            },\r\n        });\r\n        new Panel({\r\n            cls: 'list-box',\r\n            renderTo: 'js-reports',\r\n            items: [\r\n                list,\r\n            ],\r\n        });\r\n    }\r\n\r\n    _onHideReportsClick(e) {\r\n        e.preventDefault();\r\n        this._componentElement.querySelector('.list-box').classList.add('hidden');\r\n        this._componentElement.querySelector('.js-show-previous-reports').classList.remove('hidden');\r\n        this._componentElement.querySelector('.js-hide-previous-reports').classList.add('hidden');\r\n    }\r\n\r\n    _addEvents() {\r\n        super._addEvents();\r\n\r\n        document.getElementById(this._actionCollectId).addEventListener('click', () => {\r\n            this._enableSendButton(this.lmsg('buttonCollect'));\r\n        });\r\n        document.getElementById(this._actionToSupportId).addEventListener('click', () => {\r\n            this._enableSendButton(this.lmsg('buttonToSupport'));\r\n        });\r\n        this._componentElement.querySelector('.js-show-previous-reports').addEventListener('click', this._onShowReportsClick.bind(this));\r\n        this._componentElement.querySelector('.js-hide-previous-reports').addEventListener('click', this._onHideReportsClick.bind(this));\r\n    }\r\n\r\n    _addTooltips() {\r\n        super._addTooltips();\r\n\r\n        new DynamicPopupHint.Instance({\r\n            title: this.lmsg('hintTitle'),\r\n            target: document.getElementById('tooltip'),\r\n            placement: 'right',\r\n            content: this.lmsg('hintText'),\r\n        });\r\n    }\r\n\r\n    _getTooltip() {\r\n        if (!this._tooltip) {\r\n            this._tooltip = `&nbsp;<a class=\"nowrap\" id=\"tooltip\">${this.lmsg('hintLink')}</a>`;\r\n        }\r\n        return this._tooltip;\r\n    }\r\n\r\n    _disableSendButton(title) {\r\n        const el = document.getElementById(this._sendButtonId);\r\n        el.disabled = true;\r\n        el.classList.add('disabled');\r\n        if (title) {\r\n            el.innerHTML = `<span class=\"wait\">${title}</span>`;\r\n        }\r\n    }\r\n\r\n    _enableSendButton(title) {\r\n        const el = document.getElementById(this._sendButtonId);\r\n        el.disabled = false;\r\n        el.classList.remove('disabled');\r\n        if (title) {\r\n            el.innerHTML = title;\r\n        }\r\n    }\r\n\r\n    _checkResponseStatus(response) {\r\n        if (response.redirect) {\r\n            redirect(response.redirect);\r\n        }\r\n\r\n        if (response.status && 'success' !== response.status) {\r\n            $A(response.statusMessages).each(function (message) {\r\n                addStatusMessage(message.status, message.content);\r\n            });\r\n            this.hide();\r\n            return false;\r\n        }\r\n        return true;\r\n    }\r\n\r\n    _onException(transport, exception) {\r\n        addStatusMessage('error', `Internal error: ${exception}`);\r\n        this.hide();\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { LookUp } from './lookup';\r\nimport { Tooltip } from './tooltip';\r\nimport render from './render';\r\nimport createElement from './createElement';\r\n\r\nimport './object-switcher.less';\r\n\r\nexport class ObjectSwitcher extends LookUp {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration({\r\n            tag: 'div',\r\n            cls: 'btn-group object-switcher',\r\n            ...config,\r\n        });\r\n\r\n        this._listUrl = this._getConfigParam('listUrl', '');\r\n        this._itemUrlTemplate = this._getConfigParam('itemUrlTemplate', '');\r\n        this._owner = this._getConfigParam('owner', null);\r\n        this._navigate = this._getConfigParam('navigate');\r\n    }\r\n\r\n    _initCustomLookUpComponent() {\r\n        render(this._componentElement, createElement('button', {\r\n            type: 'button',\r\n            class: 'pul-button pul-button--ghost pul-button--empty dropdown-toggle',\r\n            onrender: el => {\r\n                this._customLookUpComponent = el;\r\n            },\r\n        }, '<span class=\"pul-icon pul-icon--size-16 pul-button__icon\">' +\r\n            '<svg focusable=\"false\"><use href=\"/ui-library/images/symbols.svg?5f00d3c14f85d017780e960ab4a240ed#chevron-down:16\" /></svg>' +\r\n            '</span>'));\r\n    }\r\n\r\n    _getSearchMoreText(count) {\r\n        return super._getSearchMoreText(count)\r\n            + (this._listUrl ? ` ${this.lmsg('refineSearchMessage', { link: `<a href=\"${this._listUrl}\">${this.lmsg('listOfAllObjects')}</a>` })}` : '');\r\n    }\r\n\r\n    _updateData(data) {\r\n        this._clearData();\r\n\r\n        let myData = [];\r\n\r\n        if (null !== this._owner) {\r\n            myData = data.filter(({ isSameParent }) => isSameParent == 1);\r\n\r\n            data = data.filter(({ isSameParent }) => isSameParent != 1);\r\n        }\r\n\r\n        if (myData.length) {\r\n            if (data.length) {\r\n                render(this._dropdownList, createElement('li.dropdown-header', this.lmsg('myObjectsLabel', { name: this._owner })));\r\n            }\r\n\r\n            myData.each(item => {\r\n                render(this._dropdownList, this._createItem(item));\r\n            });\r\n\r\n            if (data.length) {\r\n                render(this._dropdownList, [\r\n                    createElement('li.divider'),\r\n                    createElement('li.dropdown-header', this.lmsg('otherObjectsLabel')),\r\n                ]);\r\n            }\r\n        }\r\n\r\n        data.each(item => {\r\n            render(this._dropdownList, this._createItem(item));\r\n        });\r\n\r\n        this._addSearchMoreElement();\r\n    }\r\n\r\n    _addTooltips() {\r\n        this._tooltip = Tooltip.init(this._customLookUpComponent, { text: this.lmsg('description') });\r\n    }\r\n\r\n    handleChange() {\r\n        super.handleChange();\r\n\r\n        let url = this._itemUrlTemplate;\r\n        Object.entries(this._currentValue).forEach(([key, val]) => {\r\n            url = url.replaceAll(new RegExp(`(%%|%25%25)${key}(%%|%25%25)`, 'g'), val);\r\n        });\r\n\r\n        this._navigate(url);\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport Popup from './Popup';\r\nimport { LEFT_ARROW, RIGHT_ARROW } from './keyCode';\r\nimport ce from './createElement';\r\nimport render from './render';\r\n\r\nimport './PopupSlider.less';\r\n\r\nclass PopupSlider extends Popup {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration({\r\n            popupCls: 'popup-panel popup-panel-slider popup-panel-auto',\r\n            closeButtonEnabled: true,\r\n            hideOnEscape: true,\r\n            ...config,\r\n        });\r\n\r\n        this._slides = this._getConfigParam('slides', []);\r\n        this._current = this._getConfigParam('current', 0);\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n        this.setCurrent(this._current);\r\n    }\r\n\r\n    _getContentArea() {\r\n        return ce('.slider',\r\n            ce('ul.slider__container',\r\n                this._slides.map(() => ce('li.slider__item')),\r\n            ),\r\n            this._slides.length > 1 ? ce('.slider__arrows',\r\n                ce('.slider__arrow.slider__arrow--start',\r\n                    { onclick: () => this.prev() },\r\n                    '<svg class=\"slider__arrow-image\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 40\" width=\"20\" height=\"40\">' +\r\n                          '<polyline points=\"16,4 4,20 16,36\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"4\"' +\r\n                          ' stroke-linejoin=\"round\" stroke-linecap=\"round\" />' +\r\n                     '</svg>',\r\n                ),\r\n                ce('.slider__arrow.slider__arrow--end',\r\n                    { onclick: () => this.next() },\r\n                    '<svg class=\"slider__arrow-image\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 40\" width=\"20\" height=\"40\">' +\r\n                        '<polyline points=\"16,4 4,20 16,36\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"4\"' +\r\n                        ' stroke-linejoin=\"round\" stroke-linecap=\"round\" />' +\r\n                    '</svg>',\r\n                ),\r\n            ) : null,\r\n            ce('.slider__navigation',\r\n                ce('.slider__navigation-inner',\r\n                    this._slides.map((item, index) => ce('span.slider__navigation-dot', { onclick: () => this.setCurrent(index) })),\r\n                ),\r\n            ),\r\n        );\r\n    }\r\n\r\n    _onKeyDown(e) {\r\n        super._onKeyDown(e);\r\n        switch (e.keyCode) {\r\n            case LEFT_ARROW:\r\n                this.prev();\r\n                break;\r\n            case RIGHT_ARROW:\r\n                this.next();\r\n                break;\r\n        }\r\n    }\r\n\r\n    setCurrent(current) {\r\n        this.renderSlide(current);\r\n\r\n        const firstItem = this._componentElement.querySelector('.slider__item');\r\n        const dots = this._componentElement.querySelectorAll('.slider__navigation-dot');\r\n\r\n        dots.item(this._current).classList.remove('slider__navigation-dot--current');\r\n        this._current = current;\r\n        firstItem.style.marginLeft = `${-100 * current}%`;\r\n        dots.item(this._current).classList.add('slider__navigation-dot--current');\r\n    }\r\n\r\n    renderSlide(current) {\r\n        const curItem = this._componentElement.querySelector(`.slider__item:nth-child(${current + 1})`);\r\n        if (curItem.innerHTML.length === 0) {\r\n            render(curItem, this._slides[current]);\r\n        }\r\n    }\r\n\r\n    next() {\r\n        this.setCurrent(this._current === this._slides.length - 1 ? 0 : this._current + 1);\r\n    }\r\n\r\n    prev() {\r\n        this.setCurrent(this._current === 0 ? this._slides.length - 1 : this._current - 1);\r\n    }\r\n}\r\n\r\nexport default PopupSlider;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { List } from './list';\r\nimport createElement from './createElement';\r\n\r\n/**\r\n * The extension of the list widget: fits 100% height of screen.\r\n */\r\nexport class ScrollableList extends List {\r\n    listView() {\r\n        const view = super.listView();\r\n\r\n        view.attrs.class += ' scrollable-list';\r\n        view.children[0].attrs.class = 'scrollable-list-table';\r\n        view.children = [\r\n            createElement('table.fixed-table-head[width=\"100%\"][cellspacing=\"0\"]',\r\n                this.listHeadersView(),\r\n            ),\r\n            createElement('.scrollable-list-wrapper', view.children),\r\n        ];\r\n\r\n        return view;\r\n    }\r\n\r\n    checkEmptyList() {\r\n        super.checkEmptyList();\r\n\r\n        const isEmpty = this.isListEmpty();\r\n        this._componentElement.querySelectorAll(`.${this._listCls}`).forEach(el => {\r\n            el.style.display = '';\r\n        });\r\n        this._componentElement.querySelectorAll('.scrollable-list-wrapper').forEach(el => {\r\n            el.style.display = isEmpty ? 'none' : '';\r\n        });\r\n    }\r\n\r\n    /**\r\n     * @param {String} place\r\n     * @param {Number} dataLen\r\n     */\r\n    redraw(place, dataLen) {\r\n        let bottom = true;\r\n        let scrollTop;\r\n        let tableHeight = 0;\r\n        const wrapper = document.getElementById(this._id).querySelector('.scrollable-list-wrapper');\r\n\r\n        if (wrapper) {\r\n            bottom = (wrapper.offsetHeight + wrapper.scrollTop >= wrapper.scrollHeight);\r\n            // eslint-disable-next-line prefer-destructuring\r\n            scrollTop = wrapper.scrollTop;\r\n            tableHeight = Element.getHeight(document.getElementById(this._tableId));\r\n        }\r\n\r\n        super.redraw(place, dataLen);\r\n        const table = document.getElementById(this._tableId);\r\n        const headerTable = table.closest(`.${this._listCls}`).querySelector('.fixed-table-head');\r\n\r\n        table.style.marginTop = `${-Element.getHeight(headerTable)}px`;\r\n        setTimeout(() => {\r\n            this._resizeList();\r\n            const wrapper = table.closest('.scrollable-list-wrapper');\r\n            if (bottom) {\r\n                this.scrollToBottom();\r\n            } else if ('before' === place) {\r\n                wrapper.scrollTop += Element.getHeight(table) - tableHeight;\r\n            } else if ('after' === place) {\r\n                // empty\r\n            } else {\r\n                wrapper.scrollTop = scrollTop;\r\n            }\r\n        }, 0);\r\n    }\r\n\r\n    updateFilter(force) {\r\n        super.updateFilter(force);\r\n        this._resizeList();\r\n    }\r\n\r\n    scrollToBottom() {\r\n        const table = document.getElementById(this._tableId);\r\n        const wrapper = table.closest('.scrollable-list-wrapper');\r\n        const rows = [...wrapper.querySelectorAll('tr')].filter(el => el.style.display !== 'none');\r\n        wrapper.scrollTop = rows[rows.length - 1].offsetTop;\r\n    }\r\n\r\n    _resizeList = () => {\r\n        const minHeight = 200;\r\n        const table = document.getElementById(this._tableId);\r\n        const wrapper = table.closest('.scrollable-list-wrapper');\r\n\r\n        const headerTable = table.closest(`.${this._listCls}`).querySelector('.fixed-table-head');\r\n        const visibleHeader = headerTable.querySelector('thead');\r\n        if (visibleHeader) {\r\n            const isEmpty = this.isListEmpty();\r\n            visibleHeader.querySelectorAll('tr').forEach(function (tr) {\r\n                if (!tr.classList.contains('list-search-filter')) {\r\n                    tr.style.display = isEmpty ? 'none' : '';\r\n                }\r\n            });\r\n        }\r\n\r\n        let blockHeight = Element.getHeight(document.body) - Element.cumulativeOffset(wrapper).top;\r\n        for (let up = wrapper; up instanceof Element; up = up.parentNode) {\r\n            blockHeight = blockHeight\r\n                - (parseInt(Element.getStyle(up, 'borderBottomWidth')) || 0)\r\n                - (parseInt(Element.getStyle(up, 'marginBottom')) || 0)\r\n                - (parseInt(Element.getStyle(up, 'paddingBottom')) || 0);\r\n            for (let next = up.nextElementSibling; next instanceof Element; next = next.nextElementSibling) {\r\n                if ('none' !== Element.getStyle(next, 'display') && 'fixed' !== Element.getStyle(next, 'position') && 'absolute' !== Element.getStyle(next, 'position')) {\r\n                    blockHeight = blockHeight - Element.getHeight(next);\r\n                }\r\n            }\r\n        }\r\n\r\n        if (blockHeight < minHeight) {\r\n            blockHeight = minHeight;\r\n        }\r\n\r\n        if (blockHeight > Element.getHeight(table) + parseInt(Element.getStyle(table, 'marginTop'))) {\r\n            wrapper.style.height = null;\r\n        } else {\r\n            wrapper.style.height = `${blockHeight}px`;\r\n        }\r\n\r\n        if (!visibleHeader || ![...table.querySelectorAll('tr.odd,tr.even')].filter(el => el.style.display !== 'none').length) {\r\n            return;\r\n        }\r\n\r\n        const invisibleHeader = table.querySelector('thead');\r\n        invisibleHeader.querySelectorAll('th').forEach((th, index) => {\r\n            visibleHeader.querySelectorAll('th')[index].style.width = `${Element.getWidth(th)}px`;\r\n        });\r\n        const headers = visibleHeader.querySelectorAll('th');\r\n        const lastHeader = headers[headers.length - 1];\r\n        lastHeader.style.width = `${(Element.getWidth(headerTable) - Element.getWidth(invisibleHeader.closest('table'))) + parseInt(Element.getStyle(lastHeader, 'width'))}px`;\r\n    };\r\n\r\n    _addResponsiveHtml() {\r\n        // Don't need responsive UI in case of logs list\r\n    }\r\n\r\n    _addEvents() {\r\n        super._addEvents();\r\n        window.addEventListener('resize', this._resizeList, false);\r\n    }\r\n\r\n    remove() {\r\n        window.removeEventListener('resize', this._resizeList, false);\r\n        super.remove();\r\n    }\r\n}\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\n/* global update_oC:true */\r\n\r\nimport Cookie from 'common/cookie';\r\nimport { List } from './list';\r\nimport { ConfirmationPopupManager } from './confirmation-popup-manager';\r\nimport { AjaxPopupForm } from './ajax-popup-form';\r\nimport { FormAjax } from './form-ajax';\r\nimport { MessageBox, AjaxMessageBox, MultiCheckboxMessageWindow, WebspaceFoldersMessageBox } from './message-box';\r\nimport { getComponent } from './component';\r\nimport UAT, { request, getUrl, prepareNodeData } from 'common/user-activity-tracking';\r\nimport { isAnalyticsAllowed } from 'common/gdpr-storage';\r\n\r\nconst { PopupForm } = ConfirmationPopupManager;\r\n\r\nconst patchesFactory = () => {\r\n    const wrap = (handler, fn, after) => {\r\n        fn = fn || function () {\r\n            // default empty handler\r\n        };\r\n        if (typeof fn === 'string') {\r\n            try {\r\n                eval(`fn = ${fn}`); // eslint-disable-line no-eval\r\n            } catch {\r\n                fn = function () {\r\n                    // default empty handler\r\n                };\r\n            }\r\n        }\r\n        return after === true\r\n            ? function (...args) {\r\n                const result = fn.apply(this, args);\r\n                args.push(result);\r\n                try {\r\n                    handler.apply(this, args);\r\n                } catch {\r\n                }\r\n                return result;\r\n            }\r\n            : function (...args) {\r\n                try {\r\n                    handler.apply(this, args);\r\n                } catch {\r\n                }\r\n                return fn.apply(this, args);\r\n            };\r\n    };\r\n\r\n    return {\r\n        ajaxRequest() {\r\n            if (!window.Ajax) {\r\n                return;\r\n            }\r\n            const ajaxRequestsHistory = {};\r\n            const ajaxRequestProto = Ajax.Request.prototype;\r\n\r\n            ajaxRequestProto.request = wrap(function () {\r\n                const { url, options: { ignoreUAT }, method, parameters } = this;\r\n\r\n                if (ignoreUAT || method.toLowerCase() === 'get') {\r\n                    return;\r\n                }\r\n\r\n                const targetUrl = getUrl(url);\r\n                const requestFingerprint = `${targetUrl} ${JSON.stringify(parameters)}`;\r\n\r\n                if (ajaxRequestsHistory[requestFingerprint]) {\r\n                    return;\r\n                }\r\n\r\n                ajaxRequestsHistory[requestFingerprint] = true;\r\n\r\n                request({ name: 'REQUEST', url: getUrl(), data: { url: targetUrl } });\r\n            }, ajaxRequestProto.request, true);\r\n        },\r\n\r\n        uiPointerForm() {\r\n            document.addEventListener('DOMContentLoaded', function () {\r\n                const lastUrl = Cookie.get('uat-data-source');\r\n                if (lastUrl) {\r\n                    document.querySelectorAll('div[data-source]').forEach(msg => {\r\n                        const dataSource = msg.dataset.source;\r\n                        if (dataSource && dataSource.indexOf(lastUrl) !== -1) {\r\n                            let result = null;\r\n                            switch (true) {\r\n                                case msg.classList.contains('msg-warning'):\r\n                                    result = 'WARNING';\r\n                                    break;\r\n                                case msg.classList.contains('msg-error'):\r\n                                    result = 'ERROR';\r\n                                    break;\r\n                            }\r\n                            request({ name: 'POST', url: getUrl(dataSource) }, null, result);\r\n                        }\r\n                    });\r\n                    Cookie.remove('uat-data-source', '/');\r\n                }\r\n                if (typeof update_oC === 'undefined') { // eslint-disable-line camelcase\r\n                    return;\r\n                }\r\n                update_oC = wrap(function (form) { // eslint-disable-line camelcase\r\n                    Cookie.set('uat-data-source', getUrl(form.action), null, '/');\r\n                }, update_oC, true);\r\n            }, true);\r\n        },\r\n\r\n        jswFormAjax() {\r\n            const formAjaxProto = FormAjax.prototype;\r\n\r\n            formAjaxProto._onSubmit = wrap(function () {\r\n                this._componentElement._formSubmit = wrap(function () {\r\n                    const url = getUrl(this._componentElement.action);\r\n                    request({ name: 'POST', post: { self: ['id', 'name'] }, url }, this._componentElement);\r\n                }.bind(this), this._componentElement._formSubmit);\r\n            }, formAjaxProto._onSubmit);\r\n\r\n            formAjaxProto._onFailure = wrap(function (transport) {\r\n                const name = this._componentElement.noRedirect ? 'APPLY' : 'OK';\r\n                const url = getUrl(transport.request.url);\r\n                request({ name, url, post: { self: ['id', 'name'] } }, this._componentElement, 'ERROR');\r\n            }, formAjaxProto._onFailure);\r\n\r\n            formAjaxProto._onSuccess = wrap(function (transport) {\r\n                const name = this._componentElement.noRedirect ? 'APPLY' : 'OK';\r\n                const url = getUrl(transport.request.url);\r\n                const result = transport.responseJSON.formMessages\r\n                    ? 'VALIDATION_ERROR'\r\n                    : transport.responseJSON.status === 'error'\r\n                        ? 'ERROR'\r\n                        : null;\r\n                request({ name, url, post: { self: ['id', 'name'] } }, this._componentElement, result);\r\n            }, formAjaxProto._onSuccess);\r\n        },\r\n\r\n        jswList() {\r\n            const listProto = List.prototype;\r\n\r\n            listProto._submit = wrap(function (url, params) {\r\n                const self = params.context || this;\r\n                params.onSuccess = wrap(function (transport) {\r\n                    const name = self._lastOperation ? self._lastOperation.toUpperCase() : 'POST';\r\n                    const data = { selected: Object.keys(transport.request.parameters).length };\r\n                    const result = transport.responseJSON.status === 'error' ? 'ERROR' : null;\r\n                    request({ url: getUrl(transport.request.url), name, data }, null, result);\r\n                }, params.onSuccess);\r\n\r\n                params.onFailure = wrap(function (transport) {\r\n                    const name = self._lastOperation ? self._lastOperation.toUpperCase() : 'POST';\r\n                    const data = { selected: Object.keys(transport.request.parameters).length };\r\n                    request({ url: getUrl(transport.request.url), name, data }, null, 'ERROR');\r\n                }, params.onFailure);\r\n            }, listProto._submit);\r\n\r\n            listProto._showItemsNotSelectedWarning = wrap(function () {\r\n                const name = this._lastOperation ? this._lastOperation.toUpperCase() : 'POST';\r\n                request({ name, url: getUrl() }, null, 'NOT_SELECTED');\r\n            }, listProto._showItemsNotSelectedWarning);\r\n\r\n            listProto._getOperations = wrap(function (result) {\r\n                const self = this;\r\n                const replaceHandlers = operations => {\r\n                    operations.each(function (operation) {\r\n                        if (operation.handler) {\r\n                            operation.handler = wrap(function () {\r\n                                const o = operation;\r\n                                const last = o.id || o.title || o.description || o.addCls || '';\r\n                                self._lastOperation = last\r\n                                    .replace('button', '')\r\n                                    .replace(' ', '')\r\n                                    .replace('sb-', '')\r\n                                    .replace('-', '');\r\n                            }, operation.handler);\r\n                        }\r\n                        if (operation.operations) {\r\n                            replaceHandlers(operation.operations);\r\n                        }\r\n                    });\r\n                };\r\n                replaceHandlers(result);\r\n            }, listProto._getOperations, true);\r\n        },\r\n\r\n        confirmationPopupManager() {\r\n            const popupFormProto = PopupForm.prototype;\r\n\r\n            popupFormProto._onSuccess = wrap(function () {\r\n                const name = typeof this._id === 'string' ? this._id.toUpperCase() : 'POST';\r\n                request({ name, url: this._handlerUrl });\r\n            }, popupFormProto._onSuccess);\r\n\r\n            popupFormProto._onException = wrap(function () {\r\n                const name = typeof this._id === 'string' ? this._id.toUpperCase() : 'POST';\r\n                request({ name, url: this._handlerUrl }, null, 'ERROR');\r\n            }, popupFormProto._onException);\r\n\r\n            popupFormProto._onCancelClick = wrap(function () {\r\n                request({ name: 'CANCEL', url: getUrl(), data: { popup: this._text } });\r\n            }, popupFormProto._onCancelClick);\r\n        },\r\n\r\n        ajaxPopupForm() {\r\n            AjaxPopupForm.prototype._onSuccess = wrap(function () {\r\n                (function () {\r\n                    const cancelBtn = getComponent('btn-cancel');\r\n                    cancelBtn && cancelBtn.addEventObserver('click', function () {\r\n                        request({ name: 'CANCEL', url: this._url });\r\n                    }.bind(this));\r\n                }).bind(this)\r\n                    .defer();\r\n            }, AjaxPopupForm.prototype._onSuccess, true);\r\n        },\r\n\r\n        messageBox() {\r\n            const msgBoxProto = MessageBox.prototype;\r\n\r\n            msgBoxProto._onNoClick = wrap(function () {\r\n                request({ name: 'CANCEL', url: getUrl(), data: { popup: this._text } });\r\n            }, msgBoxProto._onNoClick);\r\n        },\r\n\r\n        ajaxMessageBox() {\r\n            const ajaxMsgBoxProto = AjaxMessageBox.prototype;\r\n\r\n            ajaxMsgBoxProto._onSuccess = wrap(function () {\r\n                request({ url: this._requestUrl });\r\n            }, ajaxMsgBoxProto._onSuccess);\r\n        },\r\n\r\n        multiCheckboxMessageWindow() {\r\n            const msgWindowProto = MultiCheckboxMessageWindow.prototype;\r\n\r\n            msgWindowProto._onSuccess = wrap(function () {\r\n                request({ url: this._requestUrl });\r\n            }, msgWindowProto._onSuccess);\r\n        },\r\n\r\n        webspaceFoldersMessageBox() {\r\n            const msgBoxProto = WebspaceFoldersMessageBox.prototype;\r\n\r\n            msgBoxProto._onSuccess = wrap(function () {\r\n                request({ url: this._requestUrl });\r\n            }, msgBoxProto._onSuccess);\r\n        },\r\n\r\n        drawersWatcher() {\r\n            const getDrawer = node => {\r\n                if (!node.classList || !node.classList.contains('pul-layer')) {\r\n                    return null;\r\n                }\r\n\r\n                const drawer = node.querySelector('.pul-drawer');\r\n                if (!drawer) {\r\n                    return null;\r\n                }\r\n\r\n                return drawer;\r\n            };\r\n            const reportDrawerAction = name => node => {\r\n                const drawer = getDrawer(node);\r\n                if (!drawer) {\r\n                    return;\r\n                }\r\n\r\n                request({ name, data: prepareNodeData(drawer) });\r\n            };\r\n            document.addEventListener('DOMContentLoaded', () => {\r\n                const callback = mutations => {\r\n                    mutations.forEach(({ addedNodes, removedNodes }) => {\r\n                        addedNodes.forEach(reportDrawerAction('OPEN-DRAWER'));\r\n                        removedNodes.forEach(reportDrawerAction('CLOSE-DRAWER'));\r\n                    });\r\n                };\r\n                const observer = new MutationObserver(callback);\r\n                observer.observe(document.body, {\r\n                    childList: true,\r\n                    subtree: false,\r\n                    attributes: false,\r\n                    characterData: false,\r\n                });\r\n            });\r\n        },\r\n    };\r\n};\r\n\r\nconst pleskActions = [\r\n    {\r\n        name: 'LOGIN',\r\n        expects: [{\r\n            sessionChanged: {},\r\n        }],\r\n    },\r\n    {\r\n        name: 'LOGOUT',\r\n        expects: [{\r\n            unloadByClick: {\r\n                selector: '#account-menu-content-area a[href=\"/logout.php\"]',\r\n            },\r\n        }],\r\n    },\r\n    {\r\n        name: 'HELP',\r\n        expects: [{\r\n            click: {\r\n                elements: [\r\n                    {\r\n                        selector: 'a[data-type=\"link-read-manual\"]',\r\n                    },\r\n                ],\r\n            },\r\n        }],\r\n    },\r\n    {\r\n        name: 'CANCEL',\r\n        expects: [{\r\n            click: {\r\n                elements: [\r\n                    {\r\n                        selector: ['button[name=\"cancel\"]', 'button[name=\"bname_cancel\"]'],\r\n                    },\r\n                ],\r\n            },\r\n        }],\r\n    },\r\n    {\r\n        name: 'SITE_PREVIEW',\r\n        expects: [{\r\n            click: {\r\n                elements: [\r\n                    {\r\n                        selector: 'a[href*=\"/plesk-site-preview/\"]',\r\n                    },\r\n                ],\r\n            },\r\n        }],\r\n    },\r\n];\r\n\r\nconst watchersFactory = () => ({\r\n    sessionChanged() {\r\n        document.addEventListener('DOMContentLoaded', function () {\r\n            const config = UAT.getConfig();\r\n\r\n            if (isAnalyticsAllowed()) {\r\n                if (Cookie.get('uat-iid') !== config.instanceId) {\r\n                    Cookie.remove('uat-iid', '/');\r\n                    Cookie.set('uat-iid', config.instanceId, null, '/');\r\n                }\r\n                if (Cookie.get('uat-sid') !== config.sessionId) {\r\n                    Cookie.remove('uat-sid', '/');\r\n                    Cookie.set('uat-sid', config.sessionId, null, '/');\r\n                }\r\n            }\r\n\r\n            if (config.sessionId && window.localStorage.getItem('uat-sid') !== config.sessionId) {\r\n                window.localStorage.setItem('uat-sid', config.sessionId);\r\n                const data = {\r\n                    userAgent: navigator.userAgent,\r\n                    versionInfo: config.versionInfo,\r\n                    accountCreated: config.accountCreated,\r\n                    width: window.innerWidth,\r\n                    height: window.innerHeight,\r\n                    ratio: window.devicePixelRatio,\r\n                };\r\n                request({ name: 'LOGIN', url: getUrl(), data });\r\n            }\r\n        }, true);\r\n    },\r\n    unloadByClick({ selector }, expect, action) {\r\n        window.addEventListener('beforeunload', () => {\r\n            const el = document.querySelector(selector);\r\n            if (el === document.activeElement) {\r\n                request(action, el);\r\n            }\r\n        }, true);\r\n    },\r\n});\r\n\r\nUAT.setPatches(patches => ({\r\n    ...patches,\r\n    ...patchesFactory(),\r\n}));\r\n\r\nUAT.setActions(actions => [\r\n    ...actions,\r\n    ...pleskActions,\r\n]);\r\n\r\nUAT.setWatchers(watchers => ({\r\n    ...watchers,\r\n    ...watchersFactory(),\r\n}));\r\n\r\nconst { init } = UAT;\r\nUAT.init = initConfig => {\r\n    init(initConfig);\r\n};\r\n\r\nexport { UAT };\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nconst COOKIE_POLICY_LOCAL_STORAGE_KEY = 'cookie-policy';\r\n\r\nexport const hasPreferences = () => !!localStorage.getItem(COOKIE_POLICY_LOCAL_STORAGE_KEY);\r\n\r\nexport const savePreferences = preferences => {\r\n    localStorage.setItem(COOKIE_POLICY_LOCAL_STORAGE_KEY, JSON.stringify(preferences));\r\n};\r\n\r\nexport const loadPreferences = () => {\r\n    let analytics = false;\r\n    let marketing = false;\r\n    try {\r\n        const data = JSON.parse(localStorage.getItem(COOKIE_POLICY_LOCAL_STORAGE_KEY));\r\n        if (typeof data.analytics === 'boolean') {\r\n            ({ analytics } = data);\r\n        }\r\n        if (typeof data.marketing === 'boolean') {\r\n            ({ marketing } = data);\r\n        }\r\n    } catch {}\r\n    return {\r\n        analytics,\r\n        marketing,\r\n    };\r\n};\r\n\r\nexport const isAnalyticsAllowed = () => loadPreferences().analytics;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport prepareUrl from './prepareUrl';\r\n\r\nexport default (id, options = {}) => {\r\n    options = {\r\n        openInNew: false,\r\n        label: '',\r\n        hint: '',\r\n        returnUrl: '',\r\n        isClassicUi: '',\r\n        showAll: false,\r\n        ...options,\r\n    };\r\n\r\n    if (options.isClassicUi) {\r\n        options.returnUrl = `/subscription/overview/id/${id}`;\r\n    }\r\n    let url = prepareUrl(`/subscription/login/id/${id}`);\r\n\r\n    if (options.showAll) {\r\n        url += '/all/true';\r\n    }\r\n\r\n    if (options.returnUrl) {\r\n        url += `/?returnUrl=${prepareUrl(options.returnUrl)}`;\r\n    }\r\n\r\n    return (\r\n        '<span>' +\r\n            `<span class=\"tooltipData\">${options.hint}</span>` +\r\n            `<a class=\"s-btn sb-login\" href=\"${url}\"` +\r\n                `${options.isClassicUi ? '' : ` target=\"${options.openInNew ? '_blank' : '_top'}\"`}>` +\r\n                `<i><i><i><span>${options.label}</span></i></i></i>` +\r\n            '</a>' +\r\n        '</span>'\r\n    );\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { render } from 'react-dom';\r\nimport { createPortal } from 'react';\r\nimport { gql } from '@apollo/client';\r\nimport { LocaleProvider, FormFieldPassword } from '@plesk/ui-library';\r\nimport { Locale } from 'jsw';\r\nimport App from 'components/App';\r\nimport ErrorBoundary from 'components/common/ErrorBoundary';\r\nimport require from 'app';\r\nimport sentry from 'common/sentry';\r\nimport pageData from 'helpers/pageData';\r\nimport apolloClient from 'apolloClient';\r\nimport estimatePassword from 'helpers/estimatePassword';\r\n\r\nexport { require };\r\nexport { default as Form } from 'components/Form';\r\n\r\nconst isInFrame = () => {\r\n    try {\r\n        if (window.self === window.top) {\r\n            return false;\r\n        }\r\n    } catch {\r\n    }\r\n\r\n    return true;\r\n};\r\n\r\nFormFieldPassword.defaultProps.passwordMeterProps.onEstimate = password => estimatePassword(password);\r\n\r\nlet app = null;\r\n\r\nexport const run = ({\r\n    config = {},\r\n    data: { showModal, ...data } = {},\r\n    graphqlQueries = [],\r\n    localeSections = {},\r\n}) => {\r\n    if (config.feedback) {\r\n        sentry(config.feedback);\r\n    }\r\n\r\n    if (isInFrame()) {\r\n        document.body.classList.add('page-content-only');\r\n    }\r\n\r\n    Object.keys(localeSections).forEach(section => {\r\n        Locale.addSection(section, localeSections[section]);\r\n    });\r\n\r\n    pageData(data);\r\n\r\n    graphqlQueries.forEach(({ query, ...options }) => {\r\n        try {\r\n            apolloClient.writeQuery({\r\n                query: gql(query),\r\n                ...options,\r\n            });\r\n        } catch {}\r\n    });\r\n\r\n    if (showModal) {\r\n        const { name, ...props } = showModal;\r\n        Plesk.require(name, run => run(props));\r\n    }\r\n\r\n    app = render(\r\n        <App />,\r\n        document.getElementById('plesk-root'),\r\n    );\r\n};\r\n\r\nexport const addWidget = (Component, { locale, ...props }, container) => {\r\n    let widget = <Component {...props} />;\r\n\r\n    if (locale) {\r\n        widget = <LocaleProvider messages={locale}>{widget}</LocaleProvider>;\r\n    }\r\n\r\n    widget = (\r\n        <ErrorBoundary>\r\n            {widget}\r\n        </ErrorBoundary>\r\n    );\r\n\r\n    if (container) {\r\n        widget = createPortal(widget, container);\r\n    }\r\n\r\n    app.addWidget(widget);\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Component, StrictMode } from 'react';\r\nimport { createBrowserRouter, RouterProvider } from 'react-router-dom';\r\nimport { ApolloProvider } from '@apollo/client';\r\nimport routes from 'routes';\r\nimport apolloClient from '../apolloClient';\r\nimport LocaleProvider from './LocaleProvider';\r\n\r\nclass App extends Component {\r\n    state = {\r\n        widgets: [],\r\n    };\r\n\r\n    router = createBrowserRouter(routes);\r\n\r\n    addWidget(widget) {\r\n        this.setState(({ widgets }) => ({\r\n            widgets: [\r\n                ...widgets,\r\n                widget,\r\n            ],\r\n        }));\r\n    }\r\n\r\n    render() {\r\n        return (\r\n            <StrictMode>\r\n                <ApolloProvider client={apolloClient}>\r\n                    <LocaleProvider>\r\n                        <RouterProvider router={this.router} />\r\n                        {this.state.widgets}\r\n                    </LocaleProvider>\r\n                </ApolloProvider>\r\n            </StrictMode>\r\n        );\r\n    }\r\n}\r\n\r\nexport default App;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { generatePath, parsePath } from 'react-router';\r\nimport { redirect, matchRoutes } from 'react-router-dom';\r\nimport { gql } from '@apollo/client';\r\nimport { api, emptyFn, prepareUrl } from 'jsw';\r\nimport { addToast } from 'helpers/toasts';\r\nimport { isNetworkError } from 'helpers/isNetworkError';\r\nimport pageData from '../helpers/pageData';\r\nimport routesTransformer from '../helpers/routesTransformer';\r\nimport apolloClient from '../apolloClient';\r\nimport AppLayout from '../components/layouts/AppLayout';\r\nimport CpPagesLayout from '../components/layouts/CpPagesLayout';\r\nimport PhpPagesLayout from '../components/layouts/PhpPagesLayout';\r\nimport AppBoundary from '../components/AppBoundary';\r\nimport LogsPage from '../components/pages/LogsPage';\r\nimport { odbcServerRoute } from 'routes/odbcServerRoute';\r\nimport { odbcDomainRoute } from 'routes/odbcDomainRoute';\r\nimport domainOverviewRoutes from 'routes/domainOverviewRoutes';\r\nimport { protectedDirectoryListRoute } from 'routes/protectedDirectoryListRoute';\r\nimport { ServerSummaryReportRoute, ClientSummaryReportRoute } from 'routes/summaryReportRoutes';\r\n\r\nconst initialDataLoader = () => {\r\n    const { isInitial, ...data } = pageData();\r\n    pageData(data);\r\n\r\n    return isInitial ? data : null;\r\n};\r\n\r\nconst createPageDataLoader = dataPath => async ({ request, params }) => {\r\n    const url = new URL(request.url);\r\n    if (dataPath) {\r\n        url.pathname = generatePath(dataPath, params);\r\n    }\r\n\r\n    let result;\r\n    try {\r\n        result = initialDataLoader() ?? await api.get(url.toString());\r\n    } catch (error) {\r\n        if (isNetworkError(error)) {\r\n            addToast({\r\n                intent: 'danger',\r\n                message: `${error.message}: ${url.toString()}`,\r\n            });\r\n            return new Promise(emptyFn);\r\n        }\r\n        throw error;\r\n    }\r\n    const { graphqlQueries = [], ...newData } = result;\r\n\r\n    if (newData.redirect) {\r\n        const url = prepareUrl(newData.redirect);\r\n        if (isClientSideRedirectAllowed(url)) {\r\n            return redirect(url);\r\n        }\r\n\r\n        window.location.replace(url);\r\n        return new Promise(emptyFn);\r\n    }\r\n\r\n    graphqlQueries.forEach(({ query, ...options }) => {\r\n        try {\r\n            apolloClient.writeQuery({\r\n                query: gql(query),\r\n                ...options,\r\n            });\r\n        } catch { }\r\n    });\r\n\r\n    pageData(newData);\r\n\r\n    return newData;\r\n};\r\n\r\nconst ipAddressDomainRoute = {\r\n    path: ':ipAddressId/domains',\r\n    componentLoader: () => import(/* webpackChunkName: \"components/pages/IpAddressDomainsPage\" */'components/pages/IpAddressDomainsPage'),\r\n    loader: async ({ params }) => {\r\n        const clientId = params.clientId ? btoa(`Client:${params.clientId}`) : null;\r\n        const { data } = await apolloClient.query({\r\n            query: require('queries/IpAddressDomainsPage.graphql'),\r\n            variables: { ipAddressId: params.ipAddressId, clientId },\r\n        });\r\n        return data;\r\n    },\r\n};\r\n\r\nconst changeOwnerRoute = {\r\n    path: 'change-owner',\r\n    componentLoader: () => import(/* webpackChunkName: \"components/pages/ChangeOwnerPage\" */'components/pages/ChangeOwnerPage'),\r\n    loader: async ({ request }) => {\r\n        const url = new URL(request.url);\r\n        const ids = [...url.searchParams.entries()].map(([, value]) => btoa(`Domain:${value}`));\r\n\r\n        const { data } = await apolloClient.query({\r\n            query: require('queries/PrepareChangeSubscriptionsOwner.graphql'),\r\n            variables: { ids },\r\n        });\r\n\r\n        return data;\r\n    },\r\n};\r\n\r\nconst isTsSessionsExist = async () => {\r\n    const { data: { viewer: { type, permissions: { manageServerSessions } }, os: { isWindows } } } = await apolloClient.query({\r\n        query: gql`\r\n            query {\r\n                viewer {\r\n                    login\r\n                    type\r\n                    permissions {\r\n                        manageServerSessions\r\n                    }\r\n                }\r\n                os {\r\n                    isWindows\r\n                }\r\n            }\r\n        `,\r\n    });\r\n\r\n    return type === 'ADMIN' && isWindows && manageServerSessions;\r\n};\r\n\r\nconst isAspPageExist = async () => {\r\n    const { data: { viewer: { permissions: { manageAspNetSettings } }, capability: { packages: { isASPdotNetInstalled } } },\r\n    } = await apolloClient.query({\r\n        query: gql`\r\n            query {\r\n                viewer {\r\n                    login\r\n                    permissions {\r\n                        manageAspNetSettings\r\n                    }\r\n                }\r\n                capability {\r\n                    packages {\r\n                        isASPdotNetInstalled\r\n                    }\r\n                }\r\n            }\r\n        `,\r\n    });\r\n\r\n    return isASPdotNetInstalled && manageAspNetSettings;\r\n};\r\n\r\n\r\nconst routes = routesTransformer([{\r\n    element: <AppLayout />,\r\n    errorElement: <AppBoundary />,\r\n    children: [\r\n        {\r\n            path: ['/login_up.php', '/login_up.php3', '/login'],\r\n            componentLoader: () => import(/* webpackMode: \"eager\" */'components/pages/LoginPage'),\r\n            loader: async () => {\r\n                await apolloClient.query({\r\n                    query: require('queries/LoginPage.graphql'),\r\n                });\r\n                return initialDataLoader();\r\n            },\r\n            children: [{\r\n                path: '*',\r\n                loader: () => redirect('..'),\r\n            }],\r\n        },\r\n        {\r\n            path: '/get_password.php',\r\n            componentLoader: () => import(/* webpackMode: \"eager\" */'components/pages/GetPasswordPage'),\r\n            loader: initialDataLoader,\r\n        },\r\n        {\r\n            path: '/ch_pass_by_secret.php',\r\n            componentLoader: () => import(/* webpackMode: \"eager\" */'components/pages/RestorePasswordPage'),\r\n        },\r\n        {\r\n            path: '/admin/force-reset-password',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/force-reset-password\" */'views/admin/force-reset-password'),\r\n            loader: createPageDataLoader('/admin/force-reset-password'),\r\n        },\r\n        {\r\n            path: '/admin/setup/progress',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/setup/progress\" */'views/admin/setup/progress'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/admin/setup/*',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/setup/index\" */'views/admin/setup/index'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/admin/home/*',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/home/admin\" */'views/admin/home/admin'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/admin/app',\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/admin/app/info/id/:id',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/app/info\" */'views/admin/app/info'),\r\n            loader: createPageDataLoader('/admin/app/info/id/:id'),\r\n        },\r\n        {\r\n            path: '/admin/app/usage',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/app/usage\" */'views/admin/app/usage'),\r\n            loader: createPageDataLoader('/admin/app/usage'),\r\n        },\r\n        {\r\n            path: ['/admin/app/uploaded', '/admin/app/uploaded/downloadStatus/:status'],\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/app/uploaded\" */'views/admin/app/uploaded'),\r\n            loader: createPageDataLoader('/admin/app/uploaded'),\r\n        },\r\n        {\r\n            path: '/admin/custom-buttons/list',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/custom-buttons/list\" */'views/admin/custom-buttons/list'),\r\n            loader: createPageDataLoader('/admin/custom-buttons/list'),\r\n        },\r\n        {\r\n            path: '/smb/custom-buttons/list',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/custom-buttons/list\" */'views/admin/custom-buttons/list'),\r\n            loader: createPageDataLoader('/smb/custom-buttons/list'),\r\n        },\r\n        {\r\n            path: '/admin/ftp-sessions/list',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/ftp-sessions/list\" */'views/admin/ftp-sessions/list'),\r\n            loader: createPageDataLoader('/admin/ftp-sessions/list'),\r\n        },\r\n        {\r\n            path: '/admin/php-handler/list',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/php-handler/list\" */'views/admin/php-handler/list'),\r\n            loader: createPageDataLoader('/admin/php-handler/list'),\r\n        },\r\n        {\r\n            path: ['/admin/scheduler', '/smb/scheduler'],\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: ['/admin/backup/schedule', '/smb/backup/schedule', '/smb/backup/schedule/domainId/:domainId'],\r\n            componentLoader: () => import(/* webpackChunkName: \"components/pages/ScheduledBackupPage\" */'components/pages/ScheduledBackupPage'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: ['/admin/backup/schedule-list', '/smb/backup/schedule-list', '/smb/backup/schedule-list/domainId/:domainId'],\r\n            componentLoader: () => import(/* webpackChunkName: \"components/pages/ScheduledBackupListPage\" */'components/pages/ScheduledBackupListPage'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: ['/admin/scheduler/tasks-list', '/smb/scheduler/tasks-list'],\r\n            componentLoader: () => import(/* webpackChunkName: \"views/default/scheduler/list\" */'views/default/scheduler/list'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: ['/admin/domain/list', '/admin/domain/add-domain'],\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/domain/list\" */'components/pages/DomainsPage'),\r\n            loader: createPageDataLoader('/admin/domain/list'),\r\n        },\r\n        {\r\n            path: ['/admin/customer/list', '/admin/customer/create'],\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/customer/list\" */'components/pages/CustomersPage'),\r\n            loader: createPageDataLoader('/admin/customer/list'),\r\n        },\r\n        {\r\n            path: '/admin/customer/overview/id/:id',\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: ['/admin/customer/domains/id/:id', '/admin/customer/add-domain/id/:id'],\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/customer/domains\" */'components/pages/CustomerDomainsPage'),\r\n            loader: createPageDataLoader('/admin/customer/domains/id/:id'),\r\n        },\r\n        {\r\n            path: ['/admin/customer/subscriptions/id/:id', '/admin/customer/new-subscription/id/:id'],\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/customer/subscriptions\" */'components/pages/CustomerSubscriptionsPage'),\r\n            loader: createPageDataLoader('/admin/customer/subscriptions/id/:id'),\r\n            children: [changeOwnerRoute],\r\n        },\r\n        {\r\n            path: '/admin/reseller/list',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/reseller/list\" */'components/pages/ResellersPage'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/admin/reseller/overview/id/:id',\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: ['/admin/reseller/customers/id/:id', '/admin/reseller/new-customer/id/:id'],\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/reseller/customers\" */'components/pages/ResellerCustomersPage'),\r\n            loader: createPageDataLoader('/admin/reseller/customers/id/:id'),\r\n        },\r\n        {\r\n            path: ['/admin/reseller/domains/id/:id', '/admin/reseller/add-domain/id/:id'],\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/reseller/domains\" */'components/pages/ResellerDomainsPage'),\r\n            loader: createPageDataLoader('/admin/reseller/domains/id/:id'),\r\n        },\r\n        {\r\n            path: ['/admin/reseller/subscriptions/id/:id', '/admin/reseller/new-subscription/id/:id'],\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/reseller/subscriptions\" */'components/pages/ResellerSubscriptionsPage'),\r\n            loader: createPageDataLoader('/admin/reseller/subscriptions/id/:id'),\r\n            children: [changeOwnerRoute],\r\n        },\r\n        {\r\n            path: '/admin/server/tools',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/server/tools\" */'views/admin/server/tools'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/admin/server/preview-domain-settings',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/server/preview-domain-settings\"*/'views/admin/server/preview-domain-settings'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/admin/services/list',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/services/list\" */'views/admin/services/list'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/admin/sessions/list',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/sessions/list\" */'views/admin/sessions/list'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: ['/admin/subscription/list', '/admin/subscription/create'],\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/subscription/list\" */'components/pages/SubscriptionsPage'),\r\n            loader: createPageDataLoader('/admin/subscription/list'),\r\n            children: [changeOwnerRoute],\r\n        },\r\n        {\r\n            path: ['/admin/subscription/login/all/:all/id/:id/', '/admin/subscription/login/id/:id/'],\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/admin/subscription/overview/id/:id/',\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: ['/smb/file-manager/list', '/smb/file-manager/list/domainId/:domainId'],\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/file-manager/list\" */'views/smb/file-manager/list'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/smb/file-manager',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/file-manager/index\" */'views/smb/file-manager/index'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/smb/my-service',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/my-service/index\" */'views/smb/my-service/index'),\r\n            loader: createPageDataLoader('/smb/my-service'),\r\n        },\r\n        {\r\n            path: ['/smb/email-address', '/smb/email-address/index', '/smb/email-address/index/domainId/:domainId'],\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/email-address/index\" */'views/smb/email-address/index'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: ['/smb/email-address/list', '/smb/email-address/list/domainId/:domainId'],\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/email-address/list\" */'views/smb/email-address/list'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/smb/mail-settings/list',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/mail-settings/list\" */'views/smb/mail-settings/list'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: ['/smb/account', '/smb/account/index'],\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/account/index\" */'views/smb/account/index'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/smb/account/show/id/:id',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/account/show\" */'views/smb/account/show'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/smb/user/index',\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/smb/user/list',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/user/list\" */'components/pages/UsersPage'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: ['/smb/web/setup', '/smb/web/add-domain/create-webspace/true'],\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/web/setup\" */'views/smb/web/setup'),\r\n            loader: createPageDataLoader('/smb/web/setup'),\r\n        },\r\n        {\r\n            path: ['/smb/web/view', '/smb/web/view/id/:id/type/:type', '/smb/web/add-domain'],\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/web/view\" */'views/smb/web/view'),\r\n            loader: createPageDataLoader('/smb/web/view'),\r\n            children: [\r\n                changeOwnerRoute,\r\n                ...domainOverviewRoutes.map(({ path, ...params }) => ({\r\n                    path: `:id/${path}`,\r\n                    ...params,\r\n                })),\r\n            ],\r\n        },\r\n        {\r\n            path: '/smb/web/overview/id/:id/type/:type',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/web/view\" */'views/smb/web/view'),\r\n            loader: createPageDataLoader(),\r\n            children: domainOverviewRoutes,\r\n        },\r\n        {\r\n            path: '/smb/web/php-settings/id/:id',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/web/php-settings\" */'views/smb/web/php-settings'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/smb/statistics/details',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/statistics/details\" */'views/smb/statistics/details'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/smb/statistics/list',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/statistics/details\" */'views/smb/statistics/list'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/smb/statistics',\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: ['/smb/account/switch/all/:all/id/:id', '/smb/account/switch/id/:id'],\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/smb/database',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/database/index\" */'views/smb/database/index'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: ['/smb/database/list', '/smb/database/list/domainId/:domainId'],\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/database/list\" */'views/smb/database/list'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/smb/database/users-list/domainId/:domainId',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/database/users-list\" */'views/smb/database/users-list'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/admin/task-manager',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/task-manager/index\" */'views/admin/task-manager/index'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/cp/dns',\r\n            children: [\r\n                {\r\n                    index: true,\r\n                    loader: () => redirect('records'),\r\n                },\r\n                {\r\n                    path: 'records',\r\n                    componentLoader: () => import(/* webpackChunkName: \"views/dns/records\" */'components/pages/DnsSettingsPage/Records'),\r\n                    loader: () => apolloClient.query({\r\n                        query: require('queries/DnsRecordsPage.graphql'),\r\n                    }).then(({ data }) => data),\r\n                    isExist: async () => {\r\n                        const { data: { viewer: { type, permissions }, mode: { isDnsServiceSupported } } } = await apolloClient.query({\r\n                            query: gql`\r\n                                query {\r\n                                    viewer {\r\n                                        login\r\n                                        type\r\n                                        permissions {\r\n                                            manageServerDnsTemplate\r\n                                        }\r\n                                    }\r\n                                    mode {\r\n                                        isDnsServiceSupported\r\n                                    }\r\n                                }\r\n                            `,\r\n                        });\r\n\r\n                        return type === 'ADMIN' && permissions.manageServerDnsTemplate && isDnsServiceSupported;\r\n                    },\r\n                    children: [{\r\n                        path: ['dns-soa-zone-sync', 'dns-restore'],\r\n                    }, {\r\n                        path: ':id/edit',\r\n                        componentLoader: () => import(/* webpackChunkName: \"views/dns/records/edit\" */'components/pages/DnsSettingsPage/Records/DnsRecordFormDrawer'),\r\n                        loader: ({ params: { id } }) => apolloClient.query({\r\n                            query: require('components/pages/DnsSettingsPage/Records/DnsRecordFormDrawer/EditDnsRecord.graphql'),\r\n                            variables: { id },\r\n                        }),\r\n                    }, {\r\n                        path: 'add',\r\n                        componentLoader: () => import(/* webpackChunkName: \"views/dns/records/edit\" */'components/pages/DnsSettingsPage/Records/DnsRecordFormDrawer'),\r\n                        loader: () => apolloClient.query({\r\n                            query: require('components/pages/DnsSettingsPage/Records/DnsRecordFormDrawer/AddDnsRecord.graphql'),\r\n                        }),\r\n                    }, {\r\n                        path: 'dns-zone-sync',\r\n                        componentLoader: () => import(/* webpackChunkName: \"views/dns/records/dns-zone-sync\" */'components/pages/DnsSettingsPage/Records/DnsZoneSyncDrawer'),\r\n                    }],\r\n                },\r\n                {\r\n                    path: 'soa-record',\r\n                    componentLoader: () => import(/* webpackChunkName: \"views/dns/soa-record\" */'components/pages/DnsSettingsPage/SoaRecord'),\r\n                    loader: async () => {\r\n                        await apolloClient.query({\r\n                            query: require('queries/DnsSoaRecordsPage.graphql'),\r\n                        });\r\n                    },\r\n                    isExist: async () => {\r\n                        const { data: { viewer: { type, permissions }, mode: { isDnsServiceSupported } } } = await apolloClient.query({\r\n                            query: gql`\r\n                                query {\r\n                                    viewer {\r\n                                        login\r\n                                        type\r\n                                        permissions {\r\n                                            manageServerDnsTemplate\r\n                                        }\r\n                                    }\r\n                                    mode {\r\n                                        isDnsServiceSupported\r\n                                    }\r\n                                }\r\n                            `,\r\n                        });\r\n\r\n                        return type === 'ADMIN' && permissions.manageServerDnsTemplate && isDnsServiceSupported;\r\n                    },\r\n                },\r\n            ],\r\n        },\r\n        {\r\n            path: '/admin/dns/acl-records',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/dns/acl-records\" */'views/admin/dns/acl-records'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/admin/dns/add-acl-record',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/dns/add-acl-record\" */'views/admin/dns/add-acl-record'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/admin/dns/external-dns',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/dns/external-dns\" */'views/admin/dns/external-dns'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/admin/dns/external-dns-edit/extensionId/:extensionId',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/dns/external-dns-edit\" */'views/admin/dns/external-dns-edit'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/smb/dns-zone/index/id/:id/type/:type',\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/smb/dns-zone/records-list/id/:id/type/:type',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/dns-zone/records-list\" */'views/smb/dns-zone/records-list'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/smb/dns-zone/soa-record/id/:id/type/:type',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/dns-zone/soa-record\" */'views/smb/dns-zone/soa-record'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/smb/dns-zone/acl-records/id/:id/type/:type',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/dns-zone/acl-records\" */'views/smb/dns-zone/acl-records'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/smb/dns-zone/add-acl-record/id/:id/type/:type',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/dns-zone/add-acl-record\" */'views/smb/dns-zone/add-acl-record'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/smb/dns-zone/external-dns/id/:id/type/:type',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/dns-zone/external-dns\" */'views/smb/dns-zone/external-dns'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/smb/dns-zone/external-dns-edit/id/:id/type/:type/extensionId/:extensionId',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/dns-zone/external-dns-edit\" */'views/smb/dns-zone/external-dns-edit'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: ['/cp/domains/:domainId/bandwidth-limiting'],\r\n            componentLoader: () => import(/* webpackChunkName: \"components/pages/BandwidthLimitingPage\" */'components/pages/BandwidthLimitingPage'),\r\n            loader: async ({ params }) => {\r\n                const { data } = await apolloClient.query({\r\n                    query: require('queries/BandwidthLimitingPage.graphql'),\r\n                    variables: { id: btoa(`Domain:${params.domainId}`) },\r\n                });\r\n                return data;\r\n            },\r\n        },\r\n        {\r\n            path: ['/cp/domains/:domainId/hotlink-protection'],\r\n            componentLoader: () => import(/* webpackChunkName: \"components/pages/HotlinkProtectionPage\" */'components/pages/HotlinkProtectionPage'),\r\n            loader: async ({ params }) => {\r\n                const { data } = await apolloClient.query({\r\n                    query: require('queries/HotlinkProtectionPage.graphql'),\r\n                    variables: { id: btoa(`Domain:${params.domainId}`) },\r\n                });\r\n                return data;\r\n            },\r\n        },\r\n        {\r\n            path: '/cp/settings-ui/edit-interface-view',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/settings-ui/edit-interface-view\" */'views/admin/settings-ui/edit-interface-view'),\r\n            loader: () => apolloClient.query({\r\n                query: require('queries/EditInterfaceViewPage.graphql'),\r\n            }).then(({ data }) => data),\r\n            isExist: async () => {\r\n                const { data: { viewer: { type }, mode } } = await apolloClient.query({\r\n                    query: gql`\r\n                        query {\r\n                            viewer {\r\n                                login\r\n                                type\r\n                            }\r\n                            mode {\r\n                                isViewSwitcherAllowed\r\n                            }\r\n                        }\r\n                    `,\r\n                });\r\n\r\n                return type === 'ADMIN' && mode.isViewSwitcherAllowed;\r\n            },\r\n        },\r\n        {\r\n            path: '/admin/settings-ui/list-languages',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/settings-ui/list-languages\" */'views/admin/settings-ui/list-languages'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/admin/settings-ui',\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/admin/database/settings',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/database/settings\"*/'views/admin/database/settings'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/smb/web/web-server-settings/id/:id',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/smb/web/web-server-settings\" */'views/smb/web/web-server-settings'),\r\n            loader: createPageDataLoader(),\r\n        },\r\n        {\r\n            path: '/admin/notifications',\r\n            children: [\r\n                {\r\n                    index: true,\r\n                    loader: () => redirect('email-settings'),\r\n                },\r\n                {\r\n                    path: 'email-settings',\r\n                    componentLoader: () => import(/* webpackChunkName: \"views/admin/notifications/index\" */'views/admin/notifications/index'),\r\n                    loader: createPageDataLoader(),\r\n                },\r\n            ],\r\n        },\r\n        {\r\n            path: '/cp/notifications/panel-settings',\r\n            componentLoader: () => import(/* webpackChunkName: \"components/pages/PanelNotificationsSettings\" */'components/pages/Notifications/PanelNotificationsSettings'),\r\n            loader: () => apolloClient.query({\r\n                query: require('queries/NotificationUiSetting.graphql'),\r\n            }).then(({ data }) => data),\r\n            isExist: async () => {\r\n                const { data: { viewer: { type, permissions } } } = await apolloClient.query({\r\n                    query: gql`\r\n                        query {\r\n                            viewer {\r\n                                login\r\n                                type\r\n                                permissions {\r\n                                    manageServerNotifications\r\n                                }\r\n                            }\r\n                        }\r\n                    `,\r\n                });\r\n\r\n                return type === 'ADMIN' && permissions.manageServerNotifications;\r\n            },\r\n        },\r\n        {\r\n            path: '/cp/settings-ui/branding',\r\n            componentLoader: () => import(/* webpackChunkName: \"components/pages/BrandingPage\" */'components/pages/BrandingPage'),\r\n            loader: () => apolloClient.query({\r\n                query: require('queries/BrandingPage.graphql'),\r\n            }).then(({ data }) => data),\r\n            isExist: async () => {\r\n                const { data: { viewer: { type, permissions } } } = await apolloClient.query({\r\n                    query: gql`\r\n                        query {\r\n                            viewer {\r\n                                login\r\n                                type\r\n                                permissions {\r\n                                    manageServerBranding\r\n                                }\r\n                            }\r\n                        }\r\n                    `,\r\n                });\r\n\r\n                return (type === 'ADMIN' && permissions.manageServerBranding) || type === 'RESELLER';\r\n            },\r\n        },\r\n        {\r\n            path: '/cp/server/db',\r\n            children: [\r\n                {\r\n                    index: true,\r\n                    componentLoader: () => import(/* webpackChunkName: \"views/server/db\"*/'components/pages/DatabaseServersPage'),\r\n                    loader: () => apolloClient.query({\r\n                        query: require('queries/DatabaseServersPage.graphql'),\r\n                    }).then(({ data }) => data),\r\n                    isExist: async () => {\r\n                        const { data: { viewer: { type, permissions } } } = await apolloClient.query({\r\n                            query: gql`\r\n                                query {\r\n                                    viewer {\r\n                                        login\r\n                                        type\r\n                                        permissions {\r\n                                            manageServerDb\r\n                                        }\r\n                                    }\r\n                                }\r\n                            `,\r\n                        });\r\n\r\n                        return type === 'ADMIN' && permissions.manageServerDb;\r\n                    },\r\n                },\r\n                {\r\n                    path: 'create',\r\n                    componentLoader: () => import(/* webpackChunkName: \"views/server/db\"*/'components/pages/DatabaseServerCreatePage'),\r\n                    loader: () => apolloClient.query({\r\n                        query: require('queries/DatabaseServerCreatePage.graphql'),\r\n                    }).then(({ data }) => data),\r\n                    isExist: async () => {\r\n                        const { data: { viewer: { type, permissions } } } = await apolloClient.query({\r\n                            query: gql`\r\n                                query {\r\n                                    viewer {\r\n                                        login\r\n                                        type\r\n                                        permissions {\r\n                                            manageServerDb\r\n                                        }\r\n                                    }\r\n                                }\r\n                            `,\r\n                        });\r\n\r\n                        return type === 'ADMIN' && permissions.manageServerDb;\r\n                    },\r\n                },\r\n                {\r\n                    path: ':id',\r\n                    children: [\r\n                        {\r\n                            index: true,\r\n                            loader: () => redirect('properties'),\r\n                        },\r\n                        {\r\n                            path: 'properties',\r\n                            componentLoader: () => import(/* webpackChunkName: \"views/server/db\"*/'components/pages/DatabaseServerPropertiesPage'),\r\n                            loader: ({ params: { id } }) => apolloClient.query({\r\n                                query: require('queries/DatabaseServerPropertiesPage.graphql'),\r\n                                variables: { id: btoa(`DatabaseServer:${id}`) },\r\n                            }).then(({ data }) => data),\r\n                            isExist: async ({ params }) => {\r\n                                const { data: { viewer: { type, permissions }, databaseServer } } = await apolloClient.query({\r\n                                    query: gql`\r\n                                        query ($id: ID!) {\r\n                                            viewer {\r\n                                                login\r\n                                                type\r\n                                                permissions {\r\n                                                    manageServerDb\r\n                                                }\r\n                                            }\r\n                                            databaseServer: node(id: $id) {\r\n                                                id\r\n                                            }\r\n                                        }\r\n                                    `,\r\n                                    variables: {\r\n                                        id: btoa(`DatabaseServer:${params.id}`),\r\n                                    },\r\n                                    errorPolicy: 'ignore',\r\n                                });\r\n\r\n                                return Boolean(type === 'ADMIN' && permissions.manageServerDb && databaseServer);\r\n                            },\r\n                        },\r\n                        {\r\n                            path: 'upgrade',\r\n                            componentLoader: () => import(/* webpackChunkName: \"views/server/db\"*/'components/pages/DatabaseServerUpgradePage'),\r\n                            loader: ({ params: { id } }) => apolloClient.query({\r\n                                query: require('queries/DatabaseServerUpgradePage.graphql'),\r\n                                variables: { id: btoa(`DatabaseServer:${id}`) },\r\n                            }).then(({ data }) => data),\r\n                            isExist: async ({ params }) => {\r\n                                const { data: { viewer: { type, permissions }, databaseServer } } = await apolloClient.query({\r\n                                    query: gql`\r\n                                  query ($id: ID!) {\r\n                                      viewer {\r\n                                          login\r\n                                          type\r\n                                          permissions {\r\n                                              manageServerDb\r\n                                          }\r\n                                      }\r\n                                      databaseServer: node(id: $id) {\r\n                                          id\r\n                                      }\r\n                                  }\r\n                              `,\r\n                                    variables: {\r\n                                        id: btoa(`DatabaseServer:${params.id}`),\r\n                                    },\r\n                                    errorPolicy: 'ignore',\r\n                                });\r\n\r\n                                return Boolean(type === 'ADMIN' && permissions.manageServerDb && databaseServer);\r\n                            },\r\n                        },\r\n                        {\r\n                            path: 'databases',\r\n                            componentLoader: () => import(/* webpackChunkName: \"views/server/db\"*/'components/pages/DatabaseServerDatabasesPage'),\r\n                            loader: ({ params: { id } }) => apolloClient.query({\r\n                                query: require('queries/DatabaseServerDatabasesPage.graphql'),\r\n                                variables: { id: btoa(`DatabaseServer:${id}`) },\r\n                            }).then(({ data }) => data),\r\n                            isExist: async ({ params }) => {\r\n                                const { data: { viewer: { type, permissions }, databaseServer } } = await apolloClient.query({\r\n                                    query: gql`\r\n                                        query ($id: ID!) {\r\n                                            viewer {\r\n                                                login\r\n                                                type\r\n                                                permissions {\r\n                                                    manageServerDb\r\n                                                }\r\n                                            }\r\n                                            databaseServer: node(id: $id) {\r\n                                                id\r\n                                            }\r\n                                        }\r\n                                    `,\r\n                                    variables: {\r\n                                        id: btoa(`DatabaseServer:${params.id}`),\r\n                                    },\r\n                                    errorPolicy: 'ignore',\r\n                                });\r\n\r\n                                return Boolean(type === 'ADMIN' && permissions.manageServerDb && databaseServer);\r\n                            },\r\n                        },\r\n                        {\r\n                            path: 'change-password',\r\n                            componentLoader: () => import(/* webpackChunkName: \"views/server/db\"*/'components/pages/DatabaseServerChangePasswordPage'),\r\n                            loader: ({ params: { id } }) => apolloClient.query({\r\n                                query: require('queries/DatabaseServerChangePasswordPage.graphql'),\r\n                                variables: { id: btoa(`DatabaseServer:${id}`) },\r\n                            }).then(({ data }) => data),\r\n                            isExist: async ({ params }) => {\r\n                                const { data: { viewer: { type, permissions }, os, mode, databaseServer } } = await apolloClient.query({\r\n                                    query: gql`\r\n                                        query ($id: ID!) {\r\n                                            viewer {\r\n                                                login\r\n                                                type\r\n                                                permissions {\r\n                                                    manageServerDb\r\n                                                }\r\n                                            }\r\n                                            os {\r\n                                                isWindows\r\n                                            }\r\n                                            mode {\r\n                                                isDemo\r\n                                            }\r\n                                            databaseServer: node(id: $id) {\r\n                                                id\r\n                                            }\r\n                                        }\r\n                                    `,\r\n                                    variables: {\r\n                                        id: btoa(`DatabaseServer:${params.id}`),\r\n                                    },\r\n                                    errorPolicy: 'ignore',\r\n                                });\r\n\r\n                                return Boolean(type === 'ADMIN' && permissions.manageServerDb && os.isWindows && !mode.isDemo && databaseServer);\r\n                            },\r\n                        },\r\n                    ],\r\n                },\r\n            ],\r\n        },\r\n        {\r\n            path: ['/cp/websites-diagnostic', '/cp/websites-diagnostic/id/:domainId'],\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/websites-diagnostic/index\" */'components/pages/WebsitesDiagnostic'),\r\n            loader: async () => {\r\n                await apolloClient.query({\r\n                    query: require('queries/WebsitesDiagnosticPage.graphql'),\r\n                    fetchPolicy: 'network-only',\r\n                });\r\n            },\r\n            isExist: async () => {\r\n                const { data: { viewer, config } } = await apolloClient.query({\r\n                    query: gql`\r\n                        query {\r\n                            viewer {\r\n                                login\r\n                                type\r\n                            }\r\n                            config {\r\n                                websitesDiagnostic {\r\n                                    enabled\r\n                                }\r\n                            }\r\n                        }\r\n                    `,\r\n                });\r\n\r\n                return viewer.type === 'ADMIN' && config.websitesDiagnostic.enabled;\r\n            },\r\n        },\r\n        {\r\n            path: '/cp/system-time',\r\n            componentLoader: () => import(/* webpackChunkName: \"components/pages/SystemTimePage\" */'components/pages/SystemTimePage'),\r\n            loader: () => apolloClient.query({\r\n                query: require('queries/SystemTimePage.graphql'),\r\n            }).then(({ data }) => data),\r\n        },\r\n        {\r\n            path: '/cp/server/mail',\r\n            children: [\r\n                {\r\n                    index: true,\r\n                    loader: () => redirect('settings'),\r\n                },\r\n                {\r\n                    path: 'settings',\r\n                    componentLoader: () => import(/* webpackChunkName: \"views/server/mail\" */'components/pages/ServerMailSettingsPage'),\r\n                    loader: async () => {\r\n                        await apolloClient.query({\r\n                            query: require('queries/ServerMailSettingsPage.graphql'),\r\n                        });\r\n                        await apolloClient.query({\r\n                            query: require('queries/ServerMailTabs.graphql'),\r\n                        });\r\n                    },\r\n                    isExist: async () => {\r\n                        const { data: { viewer: { type, permissions } } } = await apolloClient.query({\r\n                            query: gql`\r\n                                query {\r\n                                    viewer {\r\n                                        login\r\n                                        type\r\n                                        permissions {\r\n                                            manageServerMail\r\n                                            manageServerMailAutodiscover\r\n                                            manageServerVirusProtection\r\n                                            manageServerSpamFilter\r\n                                        }\r\n                                    }\r\n                                }\r\n                            `,\r\n                        });\r\n\r\n                        return type === 'ADMIN' && (\r\n                            permissions.manageServerMail ||\r\n                            permissions.manageServerMailAutodiscover ||\r\n                            permissions.manageServerVirusProtection ||\r\n                            permissions.manageServerSpamFilter\r\n                        );\r\n                    },\r\n                },\r\n                {\r\n                    path: 'black-list',\r\n                    componentLoader: () => import(/* webpackChunkName: \"views/server/mail\" */'components/pages/ServerMailBlackListPage'),\r\n                    loader: async () => {\r\n                        await apolloClient.query({\r\n                            query: require('queries/ServerMailBlackListPage.graphql'),\r\n                        });\r\n                        await apolloClient.query({\r\n                            query: require('queries/ServerMailTabs.graphql'),\r\n                        });\r\n                    },\r\n                    isExist: async () => {\r\n                        const { data: { viewer: { type, permissions } } } = await apolloClient.query({\r\n                            query: gql`\r\n                                query {\r\n                                    viewer {\r\n                                        login\r\n                                        type\r\n                                        permissions {\r\n                                            manageServerMailBlackWhiteLists\r\n                                        }\r\n                                    }\r\n                                }\r\n                            `,\r\n                        });\r\n\r\n                        return type === 'ADMIN' && permissions.manageServerMailBlackWhiteLists;\r\n                    },\r\n                },\r\n                {\r\n                    path: 'white-list',\r\n                    componentLoader: () => import(/* webpackChunkName: \"views/server/mail\" */'components/pages/ServerMailWhiteListPage'),\r\n                    loader: async () => {\r\n                        await apolloClient.query({\r\n                            query: require('queries/ServerMailWhiteListPage.graphql'),\r\n                        });\r\n                        await apolloClient.query({\r\n                            query: require('queries/ServerMailTabs.graphql'),\r\n                        });\r\n                    },\r\n                    isExist: async () => {\r\n                        const { data: { viewer: { type, permissions } } } = await apolloClient.query({\r\n                            query: gql`\r\n                                query {\r\n                                    viewer {\r\n                                        login\r\n                                        type\r\n                                        permissions {\r\n                                            manageServerMailBlackWhiteLists\r\n                                        }\r\n                                    }\r\n                                }\r\n                            `,\r\n                        });\r\n\r\n                        return type === 'ADMIN' && permissions.manageServerMailBlackWhiteLists;\r\n                    },\r\n                },\r\n                {\r\n                    path: 'antivirus',\r\n                    componentLoader: () => import(/* webpackChunkName: \"views/server/mail\" */'components/pages/ServerMailAntivirusPage'),\r\n                    loader: async () => {\r\n                        await apolloClient.query({\r\n                            query: require('queries/ServerMailAntivirusPage.graphql'),\r\n                        });\r\n                        await apolloClient.query({\r\n                            query: require('queries/ServerMailTabs.graphql'),\r\n                        });\r\n                    },\r\n                    isExist: async () => {\r\n                        const { data: { viewer: { type, permissions } } } = await apolloClient.query({\r\n                            query: gql`\r\n                                query {\r\n                                    viewer {\r\n                                        login\r\n                                        type\r\n                                        permissions {\r\n                                            manageServerVirusProtection\r\n                                        }\r\n                                    }\r\n                                }\r\n                            `,\r\n                        });\r\n\r\n                        return type === 'ADMIN' && permissions.manageServerVirusProtection;\r\n                    },\r\n                },\r\n                {\r\n                    path: 'spam-filter',\r\n                    componentLoader: () => import(/* webpackChunkName: \"views/server/mail\" */'components/pages/ServerMailSpamFilterPage'),\r\n                    loader: async () => {\r\n                        await apolloClient.query({\r\n                            query: require('queries/ServerMailSpamFilterPage.graphql'),\r\n                        });\r\n                        await apolloClient.query({\r\n                            query: require('queries/ServerMailTabs.graphql'),\r\n                        });\r\n                    },\r\n                    isExist: async () => {\r\n                        const { data: { viewer: { type, permissions }, os: { isWindows } } } = await apolloClient.query({\r\n                            query: gql`\r\n                                query {\r\n                                    viewer {\r\n                                        login\r\n                                        type\r\n                                        permissions {\r\n                                            manageServerSpamFilter\r\n                                        }\r\n                                    }\r\n                                    os {\r\n                                        isWindows\r\n                                    }\r\n                                }\r\n                            `,\r\n                        });\r\n\r\n                        return type === 'ADMIN' && permissions.manageServerSpamFilter && isWindows;\r\n                    },\r\n                },\r\n            ],\r\n        },\r\n        {\r\n            path: '/cp/server/spam-filter',\r\n            children: [\r\n                {\r\n                    index: true,\r\n                    loader: () => redirect('settings'),\r\n                },\r\n                {\r\n                    path: 'settings',\r\n                    componentLoader: () => import(/* webpackChunkName: \"views/server/mail\" */'components/pages/SpamFilterSettingsPage'),\r\n                    loader: async () => {\r\n                        await apolloClient.query({\r\n                            query: require('queries/ServerMailSpamFilterPage.graphql'),\r\n                        });\r\n                        await apolloClient.query({\r\n                            query: require('queries/SpamFilterSettingsTabs.graphql'),\r\n                        });\r\n                    },\r\n                    isExist: async () => {\r\n                        const { data: { os: { isUnix } } } = await apolloClient.query({\r\n                            query: gql`\r\n                                query {\r\n                                    os {\r\n                                        isUnix\r\n                                    }\r\n                                }\r\n                            `,\r\n                        });\r\n\r\n                        return isUnix;\r\n                    },\r\n                },\r\n            ],\r\n        },\r\n        ServerSummaryReportRoute,\r\n        {\r\n            path: '/cp/license',\r\n            children: [\r\n                {\r\n                    index: true,\r\n                    loader: () => redirect('primary'),\r\n                },\r\n                {\r\n                    path: 'primary',\r\n                    componentLoader: () => import(/* webpackChunkName: \"views/license\" */'components/pages/PrimaryKeyInfoPage'),\r\n                    loader: async () => {\r\n                        await apolloClient.query({\r\n                            query: require('queries/PrimaryKeyInfoPage.graphql'),\r\n                        });\r\n                        await apolloClient.query({\r\n                            query: require('queries/MasterKeyProcessingState.graphql'),\r\n                        });\r\n                    },\r\n                    isExist: async () => {\r\n                        const { data: { viewer: { type, permissions } } } = await apolloClient.query({\r\n                            query: gql`\r\n                                query {\r\n                                    viewer {\r\n                                        login\r\n                                        type\r\n                                        permissions {\r\n                                            manageServerLicense\r\n                                        }\r\n                                    }\r\n                                }\r\n                            `,\r\n                        });\r\n\r\n                        return type === 'ADMIN' && permissions.manageServerLicense;\r\n                    },\r\n                    children: [\r\n                        {\r\n                            path: 'upload',\r\n                            componentLoader: () => import(/* webpackChunkName: \"views/license\" */'components/pages/PrimaryKeyUploadPage'),\r\n                            loader: async () => {\r\n                                await apolloClient.query({\r\n                                    query: require('queries/PrimaryKeyUploadPage.graphql'),\r\n                                });\r\n                            },\r\n                            isExist: async () => {\r\n                                const { data: { viewer: { type, permissions }, mode: { isDemo } } } = await apolloClient.query({\r\n                                    query: gql`\r\n                                        query {\r\n                                            viewer {\r\n                                                login\r\n                                                type\r\n                                                permissions {\r\n                                                    manageServerLicense\r\n                                                }\r\n                                            }\r\n                                            mode {\r\n                                                isDemo\r\n                                            }\r\n                                        }\r\n                                    `,\r\n                                });\r\n\r\n                                return type === 'ADMIN' && permissions.manageServerLicense && !isDemo;\r\n                            },\r\n                        },\r\n                        {\r\n                            path: 'revert',\r\n                            componentLoader: () => import(/* webpackChunkName: \"views/license\" */'components/pages/PrimaryKeyRevertPage'),\r\n                            loader: async () => {\r\n                                await apolloClient.query({\r\n                                    query: require('queries/PrimaryKeyRevertPage.graphql'),\r\n                                });\r\n                            },\r\n                            isExist: async () => {\r\n                                const { data: { viewer: { type, permissions }, mode: { isDemo } } } = await apolloClient.query({\r\n                                    query: gql`\r\n                                        query {\r\n                                            viewer {\r\n                                                login\r\n                                                type\r\n                                                permissions {\r\n                                                    manageServerLicense\r\n                                                }\r\n                                            }\r\n                                            mode {\r\n                                                isDemo\r\n                                            }\r\n                                        }\r\n                                    `,\r\n                                });\r\n\r\n                                return type === 'ADMIN' && permissions.manageServerLicense && !isDemo;\r\n                            },\r\n                        },\r\n                    ],\r\n                },\r\n                {\r\n                    path: 'additional',\r\n                    componentLoader: () => import(/* webpackChunkName: \"views/license/additional\" */'components/pages/AdditionalKeysPage'),\r\n                    loader: async () => {\r\n                        await apolloClient.query({\r\n                            query: require('queries/AdditionalKeysPage.graphql'),\r\n                        });\r\n                    },\r\n                    isExist: async () => {\r\n                        const { data: { viewer: { type, permissions } } } = await apolloClient.query({\r\n                            query: gql`\r\n                                query {\r\n                                    viewer {\r\n                                        login\r\n                                        type\r\n                                        permissions {\r\n                                            manageServerLicense\r\n                                        }\r\n                                    }\r\n                                }\r\n                            `,\r\n                        });\r\n\r\n                        return type === 'ADMIN' && permissions.manageServerLicense;\r\n                    },\r\n                    children: [\r\n                        {\r\n                            path: 'upload',\r\n                            componentLoader: () => import(/* webpackChunkName: \"views/license/additional\" */'components/pages/AdditionalKeyUploadPage'),\r\n                            loader: async () => {\r\n                                await apolloClient.query({\r\n                                    query: require('queries/AdditionalKeyUploadPage.graphql'),\r\n                                });\r\n                            },\r\n                            isExist: async () => {\r\n                                const { data: { viewer: { type, permissions }, mode: { isDemo } } } = await apolloClient.query({\r\n                                    query: gql`\r\n                                        query {\r\n                                            viewer {\r\n                                                login\r\n                                                type\r\n                                                permissions {\r\n                                                    manageServerLicense\r\n                                                }\r\n                                            }\r\n                                            mode {\r\n                                                isDemo\r\n                                            }\r\n                                        }\r\n                                    `,\r\n                                });\r\n\r\n                                return type === 'ADMIN' && permissions.manageServerLicense && !isDemo;\r\n                            },\r\n                        },\r\n                    ],\r\n                },\r\n                {\r\n                    path: 'additional/:id',\r\n                    componentLoader: () => import(/* webpackChunkName: \"views/license/additional\" */'components/pages/AdditionalKeyInfoPage'),\r\n                    loader: async ({ params: { id } }) => {\r\n                        await apolloClient.query({\r\n                            query: require('queries/AdditionalKeyInfoPage.graphql'),\r\n                            variables: { id },\r\n                        });\r\n                    },\r\n                    isExist: async ({ params }) => {\r\n                        const { data: { viewer: { type, permissions }, additionalKey } } = await apolloClient.query({\r\n                            query: gql`\r\n                                query ($id: ID!) {\r\n                                    viewer {\r\n                                        login\r\n                                        type\r\n                                        permissions {\r\n                                            manageServerLicense\r\n                                        }\r\n                                    }\r\n                                    additionalKey(id: $id) {\r\n                                        keyNumber\r\n                                    }\r\n                                }\r\n                            `,\r\n                            variables: {\r\n                                id: params.id,\r\n                            },\r\n                        });\r\n\r\n                        return additionalKey && type === 'ADMIN' && permissions.manageServerLicense;\r\n                    },\r\n                    children: [\r\n                        {\r\n                            path: 'revert',\r\n                            componentLoader: () => import(/* webpackChunkName: \"views/license/additional\" */'components/pages/AdditionalKeyRevertPage'),\r\n                            loader: async ({ params: { id } }) => {\r\n                                await apolloClient.query({\r\n                                    query: require('queries/AdditionalKeyRevertPage.graphql'),\r\n                                    variables: { id },\r\n                                });\r\n                            },\r\n                            isExist: async ({ params }) => {\r\n                                const { data: { viewer: { type, permissions }, mode: { isDemo }, additionalKey } } = await apolloClient.query({\r\n                                    query: gql`\r\n                                        query ($id: ID!) {\r\n                                            viewer {\r\n                                                login\r\n                                                type\r\n                                                permissions {\r\n                                                    manageServerLicense\r\n                                                }\r\n                                            }\r\n                                            additionalKey(id: $id) {\r\n                                                keyNumber\r\n                                            }\r\n                                            mode {\r\n                                                isDemo\r\n                                            }\r\n                                        }\r\n                                    `,\r\n                                    variables: {\r\n                                        id: params.id,\r\n                                    },\r\n                                });\r\n\r\n                                return additionalKey && type === 'ADMIN' && permissions.manageServerLicense && !isDemo;\r\n                            },\r\n                        },\r\n                    ],\r\n                },\r\n            ],\r\n        },\r\n        {\r\n            path: '/cp/firewall',\r\n            children: [\r\n                {\r\n                    index: true,\r\n                    loader: () => redirect('general'),\r\n                },\r\n                {\r\n                    path: 'general',\r\n                    componentLoader: () => import(/* webpackChunkName: \"components/pages/FirewallGeneralPage\" */'components/pages/FirewallGeneralPage'),\r\n                    loader: async () => {\r\n                        await apolloClient.query({\r\n                            query: require('queries/FirewallGeneralPage.graphql'),\r\n                        });\r\n                    },\r\n                    isExist: async () => {\r\n                        const { data: { viewer: { type, permissions }, os: { isUnix }, mode: { isDemo } } } = await apolloClient.query({\r\n                            query: gql`\r\n                                query {\r\n                                    viewer {\r\n                                        login\r\n                                        type\r\n                                        permissions {\r\n                                            manageServerFirewall\r\n                                        }\r\n                                    }\r\n                                    mode {\r\n                                        isDemo\r\n                                    }\r\n                                    os {\r\n                                        isUnix\r\n                                    }\r\n                                }\r\n                            `,\r\n                        });\r\n\r\n                        return type === 'ADMIN' && !isUnix && !isDemo && permissions.manageServerFirewall;\r\n                    },\r\n                },\r\n                {\r\n                    path: 'icmp',\r\n                    componentLoader: () => import(/* webpackChunkName: \"components/pages/FirewallIcmpPage\" */'components/pages/FirewallIcmpPage'),\r\n                    loader: async () => {\r\n                        await apolloClient.query({\r\n                            query: require('queries/FirewallIcmpPage.graphql'),\r\n                        });\r\n                    },\r\n                    isExist: async () => {\r\n                        const { data: { viewer: { type, permissions }, os: { isUnix }, mode: { isDemo } } } = await apolloClient.query({\r\n                            query: gql`\r\n                                query {\r\n                                    viewer {\r\n                                        login\r\n                                        type\r\n                                        permissions {\r\n                                            manageServerFirewall\r\n                                        }\r\n                                    }\r\n                                    mode {\r\n                                        isDemo\r\n                                    }\r\n                                    os {\r\n                                        isUnix\r\n                                    }\r\n                                }\r\n                            `,\r\n                        });\r\n\r\n                        return type === 'ADMIN' && !isUnix && !isDemo && permissions.manageServerFirewall;\r\n                    },\r\n                },\r\n                {\r\n                    path: 'rules',\r\n                    componentLoader: () => import(/* webpackChunkName: \"components/pages/FirewallRulesPage\" */'components/pages/FirewallRulesPage'),\r\n                    loader: async () => {\r\n                        await apolloClient.query({\r\n                            query: require('queries/FirewallRulesPage.graphql'),\r\n                        });\r\n                    },\r\n                    isExist: async () => {\r\n                        const { data: { viewer: { type, permissions }, os: { isUnix }, mode: { isDemo } } } = await apolloClient.query({\r\n                            query: gql`\r\n                                query {\r\n                                    viewer {\r\n                                        login\r\n                                        type\r\n                                        permissions {\r\n                                            manageServerFirewall\r\n                                        }\r\n                                    }\r\n                                    mode {\r\n                                        isDemo\r\n                                    }\r\n                                    os {\r\n                                        isUnix\r\n                                    }\r\n                                }\r\n                            `,\r\n                        });\r\n\r\n                        return type === 'ADMIN' && !isUnix && !isDemo && permissions.manageServerFirewall;\r\n                    },\r\n                },\r\n            ],\r\n        },\r\n        {\r\n            path: ['/cp/server/components', '/cp/server/components/default/:name', '/cp/server/components/configuration/:name'],\r\n            componentLoader: () => import(/* webpackChunkName: \"components/pages/ServerComponentsPage\" */'components/pages/ServerComponentsPage'),\r\n            loader: async () => {\r\n                await apolloClient.query({\r\n                    query: require('queries/ServerComponentsPage.graphql'),\r\n                });\r\n            },\r\n            isExist: async () => {\r\n                const { data: { viewer: { type, permissions } } } = await apolloClient.query({\r\n                    query: gql`\r\n                        query {\r\n                            viewer {\r\n                                login\r\n                                type\r\n                                permissions {\r\n                                    manageServerComponents\r\n                                }\r\n                            }\r\n                        }\r\n                    `,\r\n                });\r\n\r\n                return type === 'ADMIN' && permissions.manageServerComponents;\r\n            },\r\n        },\r\n        {\r\n            path: '/cp/ip-address/',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/ip-address/list\" */'components/pages/IpAddressPage'),\r\n            loader: () => apolloClient.query({\r\n                query: require('queries/IpAddressPage.graphql'),\r\n                variables: { page: 1, itemsPerPage: 25 },\r\n            }).then(({ data }) => data),\r\n            children: [\r\n                { path: ['add', ':id/edit'] },\r\n                ipAddressDomainRoute,\r\n            ],\r\n        },\r\n        {\r\n            path: '/cp/ip-address/:id/clients',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/ip-address/clients\" */'components/pages/IpAddressResellersPage'),\r\n            loader: ({ params: { id } }) => apolloClient.query({\r\n                query: require('components/pages/IpAddressResellersPage/IpAddressResellerList.graphql'),\r\n                variables: { id },\r\n            }),\r\n            children: [{\r\n                path: 'assign',\r\n                componentLoader: () => import(\r\n                    /* webpackChunkName: \"components/pages/AssignIpAddressToResellerForm\" */\r\n                    'components/pages/IpAddressResellersPage/AssignIpAddressToResellerForm'\r\n                ),\r\n                loader: ({ params: { id } }) => apolloClient.query({\r\n                    query: require('components/pages/IpAddressResellersPage/AssignIpAddressToResellerForm/UnassignedIpAddressResellers.graphql'),\r\n                    variables: { id },\r\n                }),\r\n            }],\r\n        },\r\n        {\r\n            path: '/cp/client/:clientId/ip-address',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/admin/client/ip-address\" */ 'components/pages/ClientIpAddressPage'),\r\n            loader: async ({ params: { clientId } }) => {\r\n                await apolloClient.query({\r\n                    query: require('queries/ClientIpAddress.graphql'),\r\n                    variables: { clientId: btoa(`Client:${clientId}`) },\r\n                });\r\n            },\r\n            children: [ipAddressDomainRoute, {\r\n                path: ':ipAddressId/properties',\r\n                componentLoader: () => import(\r\n                    /* webpackChunkName: \"views/admin/client/ip-address/form\" */ 'components/pages/ClientIpAddressPage/ClientIpAddressProperties'\r\n                ),\r\n                loader: async ({ params: { clientId, ipAddressId } }) => {\r\n                    await apolloClient.query({\r\n                        query: require('components/pages/ClientIpAddressPage/ClietnIpAddressProperties.graphql'),\r\n                        variables: {\r\n                            ipAddressId,\r\n                            clientId: btoa(`Client:${clientId}`),\r\n                        },\r\n                    });\r\n                },\r\n            }, {\r\n                path: 'assign',\r\n                componentLoader: () => import(/* webpackChunkName: \"views/admin/client/ip-address/form\" */ 'components/pages/ClientIpAddressPage/AssignClientIpAddress'),\r\n                loader: async ({ params: { clientId } }) => {\r\n                    await apolloClient.query({\r\n                        query: require('components/pages/ClientIpAddressPage/AssignClientIpAddress/AssignClientIpAddressDrawer.graphql'),\r\n                        variables: {\r\n                            clientId: btoa(`Client:${clientId}`),\r\n                        },\r\n                    });\r\n                },\r\n            }],\r\n        },\r\n        ClientSummaryReportRoute,\r\n        {\r\n            path: '/cp/php/extensions/id/:id',\r\n            componentLoader: () => import(/* webpackChunkName: \"views/php/extensions\" */'components/pages/PhpExtensionsPage'),\r\n            loader: async ({ params: { id } }) => {\r\n                await apolloClient.query({\r\n                    query: require('queries/PhpExtensionsPage.graphql'),\r\n                    variables: { id },\r\n                });\r\n            },\r\n            isExist: async ({ params }) => {\r\n                const { data: { viewer: { type, permissions }, os: { isWindows }, phpHandler: { cliPath } } } = await apolloClient.query({\r\n                    query: gql`\r\n                        query($id: ID!) {\r\n                            viewer {\r\n                                login\r\n                                type\r\n                                permissions {\r\n                                    manageServerPhp\r\n                                }\r\n                            }\r\n                            os {\r\n                                isWindows\r\n                            }\r\n                            phpHandler(id: $id) {\r\n                                id\r\n                                cliPath\r\n                            }\r\n                        }\r\n                    `,\r\n                    variables: {\r\n                        id: params.id,\r\n                    },\r\n                });\r\n\r\n                return type === 'ADMIN' && permissions.manageServerPhp && (isWindows || cliPath !== '');\r\n            },\r\n        },\r\n        {\r\n            path: '/cp/server/ts-sessions/:id',\r\n            componentLoader: () => import(/* webpackChunkName: \"components/pages/TsSessionPage\" */'components/pages/TsSessionPage'),\r\n            loader: ({ params }) => async () => {\r\n                await apolloClient.query({\r\n                    query: require('queries/TsSessionPage.graphql'),\r\n                    variables: { ids: [params.id] },\r\n                });\r\n            },\r\n            isExist: isTsSessionsExist,\r\n        },\r\n        {\r\n            path: '/cp/server/ts-sessions',\r\n            componentLoader: () => import(/* webpackChunkName: \"components/pages/TsSessionsPage\" */'components/pages/TsSessionsPage'),\r\n            loader: async () => {\r\n                await apolloClient.query({\r\n                    query: require('queries/TsSessionsPage.graphql'),\r\n                });\r\n            },\r\n            isExist: isTsSessionsExist,\r\n        },\r\n        odbcDomainRoute,\r\n        odbcServerRoute,\r\n        protectedDirectoryListRoute,\r\n        {\r\n            path: '/cp/server/asp-dot-net-settings',\r\n            componentLoader: () => import(\r\n                /* webpackChunkName: \"components/pages/AspDotNetSettingsPage/AspDotNetServerSettingsPage\" */'components/pages/AspDotNetSettingsPage/AspDotNetServerSettingsPage'),\r\n            loader: async () => {\r\n                const { data } = await apolloClient.query({\r\n                    query: require('queries/AspDotNetServerSettingsPage.graphql'),\r\n                });\r\n                return data;\r\n            },\r\n            isExist: isAspPageExist,\r\n        },\r\n        {\r\n            path: '/cp/domains/:domainId/asp-dot-net-settings',\r\n            componentLoader: () => import(\r\n                /* webpackChunkName: \"components/pages/AspDotNetSettingsPage/AspDotNetDomainSettingsPage\" */'components/pages/AspDotNetSettingsPage/AspDotNetDomainSettingsPage'),\r\n            loader: async ({ request, params }) => {\r\n                const url = new URL(request.url);\r\n                const webPath = url.searchParams.get('webPath') || '';\r\n                const { data } = await apolloClient.query({\r\n                    query: require('queries/AspDotNetDomainSettingsPage.graphql'),\r\n                    variables: { id: btoa(`Domain:${params.domainId}`), webPath },\r\n                });\r\n                return data;\r\n            },\r\n            isExist: async ({ params }) => {\r\n                const { data: { domain: { webScriptingSettings, aspNetSettings } } } = await apolloClient.query({\r\n                    query: gql`\r\n                        query($id: ID!) {\r\n                            domain: node(id: $id) {\r\n                                ... on Domain {\r\n                                    webScriptingSettings {\r\n                                        aspDotNet\r\n                                    }\r\n                                    aspNetSettings {\r\n                                        configs {\r\n                                            version\r\n                                        }\r\n                                    }\r\n                                }\r\n                            }\r\n                        }\r\n                    `,\r\n                    variables: {\r\n                        id: btoa(`Domain:${params.domainId}`),\r\n                    },\r\n                });\r\n\r\n\r\n                return webScriptingSettings !== null && webScriptingSettings.aspDotNet !== null && aspNetSettings.configs.length;\r\n            },\r\n        },\r\n        {\r\n            path: 'cp',\r\n            children: [\r\n                {\r\n                    element: <CpPagesLayout />,\r\n                    loader: () => pageData(),\r\n                    children: [\r\n                        {\r\n                            path: 'server',\r\n                            children: [\r\n                                {\r\n                                    index: true,\r\n                                    loader: () => redirect('/admin/server/tools'),\r\n                                },\r\n                                {\r\n                                    path: 'about',\r\n                                    componentLoader: () => import(/* webpackChunkName: \"components/pages/ServerAboutPage\" */'components/pages/ServerAboutPage'),\r\n                                    loader: async () => {\r\n                                        await apolloClient.query({\r\n                                            query: require('queries/ServerAboutPage.graphql'),\r\n                                        });\r\n                                    },\r\n                                    isExist: async () => {\r\n                                        const { data: { viewer } } = await apolloClient.query({\r\n                                            query: gql`\r\n                                                query {\r\n                                                    viewer {\r\n                                                        login\r\n                                                        type\r\n                                                    }\r\n                                                }\r\n                                            `,\r\n                                        });\r\n\r\n                                        return viewer.type === 'ADMIN';\r\n                                    },\r\n                                },\r\n                                {\r\n                                    path: 'action-log',\r\n                                    componentLoader: () => import(/* webpackChunkName: \"components/pages/ActionLogPage\" */'components/pages/ActionLogPage'),\r\n                                    loader: async () => {\r\n                                        await apolloClient.query({\r\n                                            query: require('queries/ActionLogPage.graphql'),\r\n                                        });\r\n                                    },\r\n                                },\r\n                                {\r\n                                    path: 'settings',\r\n                                    componentLoader: () => import(/* webpackChunkName: \"components/pages/ServerSettingsPage\" */'components/pages/ServerSettingsPage'),\r\n                                    loader: async () => {\r\n                                        await apolloClient.query({\r\n                                            query: require('queries/ServerSettingsPage.graphql'),\r\n                                        });\r\n                                    },\r\n                                },\r\n                            ],\r\n                        },\r\n                    ],\r\n                },\r\n                {\r\n                    path: '*',\r\n                    loader: () => {\r\n                        throw new Response('Not Found', { status: 404 });\r\n                    },\r\n                },\r\n            ],\r\n        },\r\n        {\r\n            id: 'php-pages-layout',\r\n            path: '*',\r\n            element: <PhpPagesLayout />,\r\n            children: [\r\n                {\r\n                    path: 'smb/log-file/browser/id/:id',\r\n                    element: <LogsPage />,\r\n                },\r\n            ],\r\n        },\r\n    ],\r\n}]);\r\n\r\nexport const isClientSideRedirectAllowed = to => {\r\n    if (window.location.pathname.match(/^\\/modules\\/(warden)\\//)) {\r\n        return false;\r\n    }\r\n\r\n    const { pathname, search } = typeof to === 'string' ? parsePath(to) : to;\r\n    if (search?.startsWith('?modals')) {\r\n        return true;\r\n    }\r\n    if (!pathname) {\r\n        return false;\r\n    }\r\n\r\n    let route = pathname;\r\n\r\n    // relative path\r\n    if (/^(?![\\/?])/.test(to)) {\r\n        route = window.location.pathname + route;\r\n    }\r\n\r\n    const matches = matchRoutes(routes, route);\r\n    return matches ? !matches.some(({ route }) => route.id === 'php-pages-layout') : false;\r\n};\r\n\r\nexport default routes;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useLoaderData, useParams, useLocation, useRevalidator } from 'react-router-dom';\r\n\r\nconst LoadableComponent = () => {\r\n    const location = useLocation();\r\n    const revalidator = useRevalidator();\r\n    if (location.state?.reload) {\r\n        delete location.state.reload;\r\n        revalidator.revalidate();\r\n    }\r\n\r\n    const { Component, ...data } = useLoaderData();\r\n    const params = useParams();\r\n\r\n    return <Component {...data} params={params} />;\r\n};\r\n\r\nconst componentLoaderTransformer = route => {\r\n    if (!route.componentLoader) {\r\n        return route;\r\n    }\r\n\r\n    const { element, componentLoader, loader, ...other } = route;\r\n\r\n    if (element) {\r\n        throw new Error('Unable to use options \"componentLoader\" and \"element\" at the same time', { cause: { route } });\r\n    }\r\n\r\n    return {\r\n        ...other,\r\n        element: <LoadableComponent />,\r\n        loader: async ({ request, params }) => {\r\n            const [Component, data] = await Promise.all([\r\n                componentLoader().then(module => module.default || module),\r\n                loader ? loader({ request, params }) : Promise.resolve(),\r\n            ]);\r\n\r\n            if (data instanceof Response) {\r\n                return data;\r\n            }\r\n\r\n            return { ...data, Component };\r\n        },\r\n    };\r\n};\r\n\r\nconst isExistTransformer = route => {\r\n    if (!route.isExist) {\r\n        return route;\r\n    }\r\n\r\n    const { isExist, loader, ...other } = route;\r\n\r\n    return {\r\n        ...other,\r\n        loader: async ({ request, params }) => {\r\n            if (!(await isExist({ request, params }))) {\r\n                throw new Response('Not Found', { status: 404 });\r\n            }\r\n            if (loader) {\r\n                return loader({ request, params });\r\n            }\r\n        },\r\n    };\r\n};\r\n\r\nconst shouldRevalidateTransformer = route => {\r\n    if (!route.loader) {\r\n        return route;\r\n    }\r\n\r\n    const { shouldRevalidate, ...other } = route;\r\n\r\n    return {\r\n        ...other,\r\n        shouldRevalidate: ({ defaultShouldRevalidate, ...args }) => {\r\n            // Skip revalidation due to open/modify/close modals\r\n            defaultShouldRevalidate &&= [...args.currentUrl.searchParams.keys(), ...args.nextUrl.searchParams.keys()]\r\n                .every(param => !param.match(/^modals\\[.+]$/));\r\n\r\n            if (shouldRevalidate) {\r\n                defaultShouldRevalidate = shouldRevalidate({ ...args, defaultShouldRevalidate });\r\n            }\r\n\r\n            return defaultShouldRevalidate;\r\n        },\r\n    };\r\n};\r\n\r\nconst childrenTransformer = route => {\r\n    if (!Array.isArray(route.children)) {\r\n        return route;\r\n    }\r\n\r\n    const { children, ...other } = route;\r\n\r\n    return {\r\n        ...other,\r\n        children: routesTransformer(children),\r\n    };\r\n};\r\n\r\nconst pathTransformer = route => {\r\n    if (!Array.isArray(route.path)) {\r\n        return route;\r\n    }\r\n\r\n    const { path, ...other } = route;\r\n\r\n    return path.map(path => ({\r\n        ...other,\r\n        path,\r\n    }));\r\n};\r\n\r\nconst routeTransformer = route => [\r\n    componentLoaderTransformer,\r\n    isExistTransformer,\r\n    shouldRevalidateTransformer,\r\n    childrenTransformer,\r\n    pathTransformer,\r\n].reduce((route, transformer) => transformer(route), route);\r\n\r\nconst routesTransformer = routes => routes.map(routeTransformer).flat();\r\n\r\nexport {\r\n    componentLoaderTransformer,\r\n    isExistTransformer,\r\n    shouldRevalidateTransformer,\r\n    childrenTransformer,\r\n    pathTransformer,\r\n    routeTransformer,\r\n};\r\nexport default routesTransformer;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useLayoutEffect } from 'react';\r\nimport { Outlet, useNavigation } from 'react-router-dom';\r\nimport { useQuery } from '@apollo/client';\r\nimport { Toaster } from '@plesk/ui-library';\r\nimport TopBarProgress from 'react-topbar-progress-indicator';\r\nimport Cookie from 'common/cookie';\r\nimport { Task, Tooltip } from 'jsw';\r\nimport pageData from 'helpers/pageData';\r\nimport { useToasts, removeToast } from 'helpers/toasts';\r\n\r\nTopBarProgress.config({\r\n    barThickness: 2,\r\n    barColors: {\r\n        0: '#28aade',\r\n        1.0: '#28aade',\r\n    },\r\n    shadowBlur: 0,\r\n    className: 'top-bar-progress',\r\n});\r\n\r\nimport TASK_PROGRESS_BAR_QUERY from 'queries/TaskProgressBar.graphql';\r\n\r\nconst AppLayout = () => {\r\n    const navigation = useNavigation();\r\n    const { data: { viewer, config } } = useQuery(TASK_PROGRESS_BAR_QUERY);\r\n    const toasts = useToasts();\r\n\r\n    useLayoutEffect(() => {\r\n        if (viewer.type === 'UNDEFINED') {\r\n            return;\r\n        }\r\n        new Task.ProgressBar({\r\n            wsEnabled: config.webSocket.enabled,\r\n        });\r\n        // eslint-disable-next-line react-hooks/exhaustive-deps\r\n    }, []);\r\n\r\n    useLayoutEffect(() => {\r\n        switch (navigation.state) {\r\n            case 'loading': {\r\n                const { status, ...data } = pageData();\r\n                pageData({\r\n                    ...data,\r\n                    status: status?.filter(message => message.isNote),\r\n                });\r\n                break;\r\n            }\r\n\r\n            case 'idle': {\r\n                Tooltip.hide();\r\n\r\n                window.history.scrollRestoration = 'manual';\r\n                window.scrollTo(0, 0);\r\n\r\n                const bottomAnchor = document.getElementById('bottomAnchor');\r\n                if (bottomAnchor) {\r\n                    bottomAnchor.innerHTML = Date.now();\r\n                }\r\n                break;\r\n            }\r\n        }\r\n    }, [navigation.state]);\r\n\r\n    return (\r\n        <>\r\n            {navigation.state !== 'idle' ? (\r\n                <TopBarProgress />\r\n            ) : null}\r\n            <Outlet />\r\n            <Toaster toasts={toasts} onToastClose={key => removeToast({ key })} data-type=\"toaster\" />\r\n            {'true' === Cookie.get('debug-testing-mode') ? (\r\n                <>\r\n                    <style type=\"text/css\">\r\n                        {`\r\n                                *, *:before, *:after {\r\n                                    transitions-delay: 0s !important;\r\n                                    transition-duration: 0s !important;\r\n                                    animation-duration: 0s !important;\r\n                                }\r\n                            `}\r\n                    </style>\r\n                    <div id=\"bottomAnchor\" style={{ position: 'fixed', top: 0, zIndex: -1, opacity: 0.001 }} />\r\n                </>\r\n            ) : null}\r\n        </>\r\n    );\r\n};\r\n\r\nexport default AppLayout;\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"TaskProgressBar\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"config\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webSocket\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enabled\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":152}};\n    doc.loc.source = {\"body\":\"query TaskProgressBar {\\r\\n    viewer {\\r\\n        login\\r\\n        type\\r\\n    }\\r\\n    config {\\r\\n        webSocket {\\r\\n            enabled\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"TaskProgressBar\"] = oneQuery(doc, \"TaskProgressBar\");\n        \r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useMemo } from 'react';\r\nimport { Outlet, useLoaderData, useMatches } from 'react-router-dom';\r\nimport { Locale } from 'jsw';\r\nimport PageLayout from './PageLayout';\r\n\r\nconst HELP_CONTEXT_MAP = {\r\n    'server/about': 'about.index',\r\n    'server/action-log': 'actionlog',\r\n    'server/settings': 'preferences',\r\n};\r\n\r\nconst CpPagesLayout = () => {\r\n    const { showFrames, pageHeader, pageSidebar } = useLoaderData();\r\n    const matches = useMatches();\r\n\r\n    const breadcrumbs = useMemo(() => {\r\n        const routesLocale = Locale.getSection('components.routes');\r\n\r\n        return matches.reduce((breadcrumbs, { pathname }) => {\r\n            const pathnameMatch = pathname?.match(/^\\/cp\\/(.+?)\\/?$/);\r\n            if (pathnameMatch) {\r\n                return [...breadcrumbs, {\r\n                    title: routesLocale.lmsg(`${pathnameMatch[1]}.title`),\r\n                    href: pathnameMatch[1] === 'server' ? '/admin/server/tools' : pathname,\r\n                }];\r\n            }\r\n\r\n            return breadcrumbs;\r\n        }, pageSidebar.isPowerUserPanel ? [] : [{\r\n            title: routesLocale.lmsg('home.title'),\r\n            href: '/admin/home',\r\n        }]);\r\n    }, [matches, pageSidebar.isPowerUserPanel]);\r\n\r\n    const helpContext = useMemo(() => {\r\n        const pathnameMath = matches[matches.length - 1]?.pathname?.match(/^\\/cp\\/(.+?)\\/?$/);\r\n        if (pathnameMath) {\r\n            return HELP_CONTEXT_MAP[pathnameMath[1]];\r\n        }\r\n    }, [matches]);\r\n\r\n    const pageTitle = breadcrumbs[breadcrumbs.length - 1]?.title;\r\n\r\n    const data = {\r\n        showFrames,\r\n        pageHeader: {\r\n            ...pageHeader,\r\n            helpMenu: {\r\n                ...pageHeader.helpMenu,\r\n                helpContext,\r\n            },\r\n        },\r\n        pageSidebar,\r\n        pageContentHeader: {\r\n            pageTitle,\r\n            breadcrumbs,\r\n        },\r\n    };\r\n\r\n    return (\r\n        <PageLayout {...data}>\r\n            <Outlet />\r\n        </PageLayout>\r\n    );\r\n};\r\n\r\nexport default CpPagesLayout;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useState, useEffect, useLayoutEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useQuery } from '@apollo/client';\r\nimport Measure from 'react-measure';\r\nimport classNames from 'classnames';\r\nimport { Layout, Columns, Column } from '@plesk/ui-library';\r\nimport { useLocalStorage, useMediaQuery } from 'common/hooks';\r\nimport stripTags from 'helpers/stripTags';\r\nimport CookiePolicy from '../CookiePolicy';\r\nimport JswComponent from '../../jsw/JswComponent';\r\nimport StatusMessages from '../StatusMessages';\r\nimport LicenseStatus from './LicenseStatus';\r\nimport PageHeader from './PageHeader';\r\nimport PageSidebar from './PageSidebar';\r\nimport PageFooter from './PageFooter';\r\nimport PageContentHeader from './PageContentHeader';\r\nimport getTitleForHelpSearchQuery from './getTitleForHelpSearchQuery';\r\n\r\nimport BRANDING_QUERY from 'queries/Branding.graphql';\r\n\r\nconst PageLayout = ({\r\n    baseUrl,\r\n    showFrames,\r\n    returnUrl,\r\n    pageHeader,\r\n    pageSidebar,\r\n    pageContentHeader,\r\n    pageTitle,\r\n    withSecondary,\r\n    secondary,\r\n    width,\r\n    bodyClass,\r\n    integrationClass,\r\n    children,\r\n    isSecondaryCollapsed,\r\n}) => {\r\n    const { data: { viewer: { customTitle } } } = useQuery(BRANDING_QUERY);\r\n    const [isClosedOnDesktop, setClosedOnDesktop] = useLocalStorage('isSidebarClosed');\r\n    const [isClosedInResponsive, setClosedInResponsive] = useState(true);\r\n    const sidebarCollapsed = [isClosedInResponsive && 'responsive', (isClosedOnDesktop === 'true') && 'desktop'].filter(Boolean);\r\n    const isResponsive = useMediaQuery('(max-width: 1022px)');\r\n    const isClosed = sidebarCollapsed.includes(isResponsive ? 'responsive' : 'desktop');\r\n\r\n    pageTitle ??= pageContentHeader?.breadcrumbs?.[pageContentHeader.breadcrumbs.length - 1]?.title;\r\n\r\n    useLayoutEffect(() => {\r\n        const documentTitleEl = document.querySelector('title');\r\n        if (!documentTitleEl) {\r\n            return;\r\n        }\r\n        documentTitleEl.innerHTML = [pageTitle && stripTags(pageTitle), customTitle]\r\n            .filter(Boolean).join(' - ');\r\n    }, [pageTitle, customTitle]);\r\n\r\n    useLayoutEffect(() => {\r\n        const classes = classNames(bodyClass, integrationClass).split(' ').filter(Boolean);\r\n        classes.forEach(className => document.body.classList.add(className));\r\n        return () => {\r\n            classes.forEach(className => document.body.classList.remove(className));\r\n        };\r\n    }, [bodyClass, integrationClass]);\r\n\r\n    if (baseUrl) {\r\n        global.Jsw.baseUrl = baseUrl;\r\n    }\r\n\r\n    const handleToggleSidebar = (collapsed, mode) => {\r\n        switch (mode) {\r\n            case 'responsive':\r\n                setClosedInResponsive(collapsed);\r\n                break;\r\n            case 'desktop':\r\n                setClosedOnDesktop(collapsed ? 'true' : 'false');\r\n                break;\r\n        }\r\n    };\r\n\r\n    const [headerHeight, setHeaderHeight] = useState(0);\r\n    const [headerAddonHeight, setHeaderAddonHeight] = useState(0);\r\n    const [stickyTop, setStickyTop] = useState(0);\r\n\r\n    useEffect(() => {\r\n        const top = headerHeight + headerAddonHeight\r\n            + parseInt(getComputedStyle(document.querySelector('.pul-layout__main-inner')).paddingTop)\r\n            + (document.getElementById('classic-mode-navigation')?.getBoundingClientRect().height || 0);\r\n        setStickyTop(top);\r\n    }, [headerHeight, headerAddonHeight]);\r\n\r\n    if (pageHeader?.helpMenu && pageContentHeader) {\r\n        pageHeader.helpMenu = {\r\n            ...pageHeader.helpMenu,\r\n            searchQuery: getTitleForHelpSearchQuery(pageContentHeader),\r\n        };\r\n    }\r\n\r\n    return (\r\n        <Layout\r\n            id=\"page\"\r\n            width={width}\r\n            header={showFrames && pageHeader ? (\r\n                <Measure bounds onResize={({ bounds }) => setHeaderHeight(bounds.height)}>\r\n                    {({ measureRef }) => (\r\n                        <div ref={measureRef}>\r\n                            <PageHeader\r\n                                returnUrl={returnUrl}\r\n                                {...pageHeader}\r\n                            />\r\n                        </div>\r\n                    )}\r\n                </Measure>\r\n            ) : undefined}\r\n            headerAddon={showFrames && pageHeader ? (\r\n                <Measure bounds onResize={({ bounds }) => setHeaderAddonHeight(bounds.height)}>\r\n                    {({ measureRef }) => (\r\n                        <div ref={measureRef}>\r\n                            <CookiePolicy />\r\n                            {pageHeader.licenseStatus ? <LicenseStatus {...pageHeader.licenseStatus} /> : null}\r\n                        </div>\r\n                    )}\r\n                </Measure>\r\n            ) : undefined}\r\n            onSidebarToggle={handleToggleSidebar}\r\n            sidebar={showFrames && pageSidebar ? (\r\n                <PageSidebar\r\n                    title={customTitle}\r\n                    breadcrumbs={pageContentHeader?.breadcrumbs}\r\n                    isClosed={isClosed}\r\n                    onNodeClick={isResponsive ? () => setClosedInResponsive(true) : undefined}\r\n                    {...pageSidebar}\r\n                />\r\n            ) : undefined}\r\n            sidebarCollapsed={sidebarCollapsed}\r\n            sidebarType=\"folded\"\r\n            footer={showFrames ? (\r\n                <PageFooter />\r\n            ) : undefined}\r\n            contentHeader={pageContentHeader ? (\r\n                <PageContentHeader {...pageContentHeader} />\r\n            ) : null}\r\n        >\r\n            <div className=\"b-content\">\r\n                <Columns gap=\"md\" vertical={740} data-type=\"page-content\" className=\"b-content-wrap\">\r\n                    <Column fill id=\"content-body\" className=\"b-content-main\">\r\n                        <div id=\"main\" style={withSecondary || secondary ? { position: 'sticky', top: `${stickyTop}px` } : undefined}>\r\n                            <StatusMessages />\r\n                            {children}\r\n                        </div>\r\n                    </Column>\r\n                    {withSecondary || secondary ? (\r\n                        <Column\r\n                            width={256}\r\n                            className={classNames('b-content-side', isSecondaryCollapsed && 'b-content-side--collapsed')}\r\n                        >\r\n                            <div style={{ position: 'sticky', top: `${stickyTop}px` }}>\r\n                                {typeof secondary === 'string' ? (\r\n                                    <JswComponent>{secondary}</JswComponent>\r\n                                ) : secondary}\r\n                            </div>\r\n                        </Column>\r\n                    ) : null}\r\n                </Columns>\r\n            </div>\r\n        </Layout>\r\n    );\r\n};\r\n\r\nPageLayout.propTypes = {\r\n    baseUrl: PropTypes.string,\r\n    showFrames: PropTypes.bool,\r\n    returnUrl: PropTypes.string,\r\n    pageHeader: PropTypes.shape(PageHeader.propTypes),\r\n    pageSidebar: PropTypes.object,\r\n    pageContentHeader: PropTypes.shape(PageContentHeader.propTypes),\r\n    withSecondary: PropTypes.bool,\r\n    secondary: PropTypes.any,\r\n    isSecondaryCollapsed: PropTypes.bool,\r\n    width: PropTypes.number,\r\n    bodyClass: PropTypes.string,\r\n    integrationClass: PropTypes.string,\r\n    pageTitle: PropTypes.string,\r\n    children: PropTypes.any,\r\n};\r\n\r\nPageLayout.defaultProps = {\r\n    baseUrl: undefined,\r\n    showFrames: true,\r\n    returnUrl: undefined,\r\n    pageHeader: undefined,\r\n    pageSidebar: undefined,\r\n    pageContentHeader: undefined,\r\n    pageTitle: undefined,\r\n    withSecondary: false,\r\n    secondary: undefined,\r\n    isSecondaryCollapsed: false,\r\n    width: undefined,\r\n    bodyClass: undefined,\r\n    integrationClass: undefined,\r\n    children: undefined,\r\n};\r\n\r\nexport default PageLayout;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useEffect } from 'react';\r\n\r\nconst useClickOutside = (refs, handler) => {\r\n    useEffect(\r\n        () => {\r\n            const listener = event => {\r\n                if (refs.some(({ current }) => !current || current.contains(event.target))) {\r\n                    return;\r\n                }\r\n\r\n                handler(event);\r\n            };\r\n\r\n            document.addEventListener('mousedown', listener);\r\n            document.addEventListener('touchstart', listener);\r\n\r\n            return () => {\r\n                document.removeEventListener('mousedown', listener);\r\n                document.removeEventListener('touchstart', listener);\r\n            };\r\n        },\r\n        [refs, handler],\r\n    );\r\n};\r\n\r\nexport default useClickOutside;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useRef, useEffect } from 'react';\r\n\r\nconst useEventListener = (event, handler, element, addFn = 'addEventListener', removeFn = 'removeEventListener') => {\r\n    const handlerRef = useRef();\r\n\r\n    useEffect(() => {\r\n        handlerRef.current = handler;\r\n    }, [handler]);\r\n\r\n    useEffect(\r\n        () => {\r\n            if (!element || !element[addFn]) {\r\n                return;\r\n            }\r\n\r\n            const listener = event => handlerRef.current(event);\r\n\r\n            element[addFn](event, listener);\r\n\r\n            return () => {\r\n                element[removeFn](event, listener);\r\n            };\r\n        },\r\n        [event, element, addFn, removeFn],\r\n    );\r\n};\r\n\r\nexport default useEventListener;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useCallback, useState } from 'react';\r\n\r\nimport { readLocalStorageValue } from 'common/helpers/readLocalStorageValue';\r\n\r\nexport const useLocalStorage = function (key, initialValue) {\r\n    const [storedValue, setStoredValue] = useState(() => readLocalStorageValue(key, initialValue));\r\n\r\n    const setValue = useCallback(value => {\r\n        setStoredValue(value);\r\n\r\n        window.localStorage.setItem(key, JSON.stringify(value));\r\n    }, [key]);\r\n\r\n    return [storedValue, setValue];\r\n};\r\n\r\nexport default useLocalStorage;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nexport const readLocalStorageValue = (key, defaultValue) => {\r\n    try {\r\n        const item = window.localStorage.getItem(key);\r\n        return item ? JSON.parse(item) : defaultValue;\r\n    } catch {\r\n        return defaultValue;\r\n    }\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useLayoutEffect, useState } from 'react';\r\n\r\nconst useMediaQuery = query => {\r\n    const [value, setValue] = useState(false);\r\n\r\n    useLayoutEffect(() => {\r\n        const mq = window.matchMedia(query);\r\n\r\n        const updateMatch = () => {\r\n            setValue(mq.matches);\r\n        };\r\n        updateMatch();\r\n\r\n        mq.addListener(updateMatch);\r\n        return () => {\r\n            mq.removeListener(updateMatch);\r\n        };\r\n    }, [query]);\r\n\r\n    return value;\r\n};\r\n\r\nexport default useMediaQuery;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useState, useEffect } from 'react';\r\n\r\nconst useDebounce = (value, delay) => {\r\n    const [debouncedValue, setDebouncedValue] = useState(value);\r\n\r\n    useEffect(() => {\r\n        const handler = setTimeout(() => {\r\n            setDebouncedValue(value);\r\n        }, delay);\r\n\r\n        return () => {\r\n            clearTimeout(handler);\r\n        };\r\n    }, [value, delay]);\r\n\r\n    return debouncedValue;\r\n};\r\n\r\nexport default useDebounce;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useQuery } from '@apollo/client';\r\nimport { useModal } from 'hooks';\r\nimport Info from './Info';\r\nimport Preferences, { OverlayAdapter } from './Preferences';\r\nimport { loadPreferences, savePreferences, hasPreferences } from 'common/gdpr-storage';\r\nimport Cookie from 'common/cookie';\r\n\r\nimport COOKIE_POLICY_QUERY from 'queries/CookiePolicy.graphql';\r\n\r\nconst CookiePolicy = ({ layoutType }) => {\r\n    const [isInfoVisible, setInfoVisible] = useState(() => !hasPreferences());\r\n    const [isPreferencesVisible, setPreferencesVisible] = useModal('cookie-policy-preferences');\r\n    const [preferences, setPreferences] = useState(loadPreferences);\r\n\r\n    const { data: { config } = {} } = useQuery(COOKIE_POLICY_QUERY);\r\n\r\n    const handleSave = nextPreferences => {\r\n        setInfoVisible(false);\r\n        setPreferences(nextPreferences);\r\n        savePreferences(nextPreferences);\r\n        config.gdpr.cookies.forEach(({ name, type }) => {\r\n            if (nextPreferences[type] === false) {\r\n                Cookie.remove(name, '/');\r\n            }\r\n        });\r\n    };\r\n\r\n    return (\r\n        <>\r\n            {config?.gdpr?.cookieBox?.enabled && isInfoVisible && (\r\n                <Info\r\n                    onSave={handleSave}\r\n                    onPreferencesToggle={setPreferencesVisible}\r\n                    contentAlignment={layoutType === 'simplified' ? 'center' : undefined}\r\n                />\r\n            )}\r\n            <Preferences\r\n                isOpen={isPreferencesVisible !== null}\r\n                preferences={preferences}\r\n                onSave={handleSave}\r\n                onToggle={setPreferencesVisible}\r\n                adapter={layoutType === 'simplified' ? OverlayAdapter : undefined}\r\n            />\r\n        </>\r\n    );\r\n};\r\n\r\nCookiePolicy.propTypes = {\r\n    layoutType: PropTypes.oneOf(['simplified']),\r\n};\r\n\r\nCookiePolicy.defaultProps = {\r\n    layoutType: undefined,\r\n};\r\n\r\nexport default CookiePolicy;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useEffect, useState } from 'react';\r\nimport { useApolloClient, useMutation } from '@apollo/client';\r\nimport { useNavigate, useMatch } from 'react-router-dom';\r\nimport { ContentLoader } from '@plesk/ui-library';\r\nimport { api, redirect, Tooltip } from 'jsw';\r\nimport DrawerWithProgress from 'components/common/DrawerWithProgress';\r\n\r\nimport CREATE_FORM_IN_DRAWER_QUERY from 'queries/CreateFormInDrawer.graphql';\r\nimport UPDATE_USER_SETTINGS from 'queries/UpdateUserSettings.graphql';\r\n\r\nconst useCreateFormInDrawer = (Form, dataType, pageUrl, drawerUrl) => {\r\n    const apolloClient = useApolloClient();\r\n    const isOpen = !!useMatch(drawerUrl);\r\n    const navigate = useNavigate();\r\n    const [data, setData] = useState(null);\r\n    const [task, setTask] = useState(null);\r\n    const [updateUserSettings] = useMutation(UPDATE_USER_SETTINGS);\r\n\r\n    useEffect(() => {\r\n        if (isOpen) {\r\n            setData(null);\r\n            setTask(null);\r\n            Tooltip.hide();\r\n            Promise.all([\r\n                api.get(drawerUrl),\r\n                apolloClient.query({\r\n                    query: CREATE_FORM_IN_DRAWER_QUERY,\r\n                }),\r\n            ])\r\n                .then(([data, { data: { config } }]) => {\r\n                    if (data.redirect) {\r\n                        redirect(data.redirect);\r\n                        return;\r\n                    }\r\n                    setData({\r\n                        ...data,\r\n                        techDomain: {\r\n                            url: `${config.techDomain.url}/api/subdomain`,\r\n                            vendor: config.techDomain.vendor,\r\n                            maxDomainLength: config.techDomain.maxDomainLength,\r\n                        },\r\n                        settingsEnabled: config.domainManagement.settings.enabled,\r\n                        applicationWizardConfig: config.domainManagement.applicationWizard,\r\n                    });\r\n                });\r\n        }\r\n    }, [isOpen, drawerUrl, apolloClient]);\r\n\r\n    const handleClose = () => {\r\n        navigate(pageUrl);\r\n    };\r\n\r\n    const handleToggle = collapsed => {\r\n        if (data) {\r\n            data.settingsCollapsed = collapsed;\r\n        }\r\n\r\n        updateUserSettings({\r\n            variables: {\r\n                collapsed,\r\n            },\r\n        });\r\n    };\r\n\r\n    const drawer = (\r\n        <DrawerWithProgress\r\n            dataType={dataType}\r\n            title={data ? data.pageTitle : ''}\r\n            size=\"sm\"\r\n            isOpen={isOpen}\r\n            onClose={handleClose}\r\n            form={data ? (\r\n                <Form\r\n                    onCancel={handleClose}\r\n                    onProcess={setTask}\r\n                    onToggleDomainSettings={handleToggle}\r\n                    {...data}\r\n                />\r\n            ) : null}\r\n            task={task}\r\n            pageUrl={pageUrl}\r\n        >\r\n            {data ? null : <ContentLoader />}\r\n        </DrawerWithProgress>\r\n    );\r\n\r\n    return [drawer];\r\n};\r\n\r\nexport default useCreateFormInDrawer;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useEffect, useState } from 'react';\r\nimport { Drawer, ConsoleOutput } from '@plesk/ui-library';\r\nimport { Observer, getComponent, Task, escapeHtml } from 'jsw';\r\nimport PropTypes from 'prop-types';\r\nimport useEventListener from 'common/hooks/useEventListener';\r\nimport useNavigate from 'hooks/useNavigate';\r\nimport { addToast } from 'helpers/toasts';\r\n\r\nconst STATUS_RUNNING = 'running';\r\nconst getTaskProgressBar = () => getComponent('asyncProgressBarWrapper');\r\n\r\n// Workaround for lists that do not support reload\r\nconst sameUrls = (redirectUrl, pageUrl) => {\r\n    if (redirectUrl === pageUrl) {\r\n        return true;\r\n    }\r\n\r\n    try {\r\n        const params = new URLSearchParams(new URL(redirectUrl, window.location.origin).search);\r\n        return params.get('returnUrl') === pageUrl || params.get('pageUrl') === pageUrl;\r\n    } catch {}\r\n\r\n    return true;\r\n};\r\n\r\n// Workaround for three different sets of task statuses\r\nconst getStatus = status => {\r\n    switch (status) {\r\n        case 'STATUS_NOT_STARTED': return Task.STATUS_NOT_STARTED;\r\n        case 'STATUS_STARTED':\r\n        case 'STATUS_RUNNING':\r\n        case Task.STATUS_STARTED: return STATUS_RUNNING;\r\n        case 'STATUS_DONE': return Task.STATUS_DONE;\r\n        case 'STATUS_CANCELED': return Task.STATUS_CANCELED;\r\n        case 'STATUS_ERROR': return Task.STATUS_ERROR;\r\n        default: return status;\r\n    }\r\n};\r\n\r\nconst DrawerWithProgress = ({\r\n    children,\r\n    dataType,\r\n    isOpen,\r\n    onClose,\r\n    task,\r\n    pageUrl,\r\n    onTaskComplete,\r\n    ...props\r\n}) => {\r\n    const navigate = useNavigate();\r\n    const [steps, setSteps] = useState([]);\r\n    const [title, setTitle] = useState(null);\r\n    const [redirectUrl, setRedirectUrl] = useState(null);\r\n    const [status, setStatus] = useState(null);\r\n    const taskId = task ? task.id : null;\r\n\r\n    const handleTaskUpdate = ({ id, steps, status: taskStatus, errors, output, progressValue, progressTitle, progressTitleHtml }) => {\r\n        if (!isOpen || taskId !== id) {\r\n            return;\r\n        }\r\n\r\n        const title = progressTitleHtml || escapeHtml(progressTitle);\r\n        const status = getStatus(taskStatus);\r\n\r\n        const content = (errors = [], output = []) => (\r\n            <>\r\n                {errors.map(error => (<div key={error}>{error}</div>))}\r\n                {output.length > 0 && (<ConsoleOutput data-testid=\"console-output\">{output}</ConsoleOutput>)}\r\n            </>\r\n        );\r\n\r\n        setStatus(status);\r\n        if (steps && steps.length) {\r\n            setTitle(title);\r\n            setSteps(steps.map(({ errors, status, output, ...props }) => ({\r\n                children: content(errors, output),\r\n                status: getStatus(status),\r\n                ...props,\r\n            })));\r\n        } else {\r\n            setSteps([{\r\n                title,\r\n                status,\r\n                progress: Number(progressValue),\r\n                children: content(errors, output),\r\n            }]);\r\n        }\r\n    };\r\n\r\n    const handleTaskComplete = ({ id, redirect: redirectUrl, status }) => {\r\n        if (!isOpen || taskId !== id) {\r\n            return;\r\n        }\r\n\r\n        if (typeof onTaskComplete === 'function') {\r\n            onTaskComplete();\r\n        }\r\n        if (Task.STATUS_DONE === status) {\r\n            setRedirectUrl(redirectUrl?.url || redirectUrl);\r\n        }\r\n    };\r\n\r\n    useEffect(() => {\r\n        const taskProgressBar = getTaskProgressBar();\r\n        const onOpen = () => {\r\n            taskProgressBar?.hide();\r\n            setSteps([]);\r\n            setTitle(null);\r\n            setRedirectUrl(null);\r\n            setStatus(null);\r\n        };\r\n\r\n        const onClose = async () => {\r\n            if (!isInProgress()) {\r\n                await deleteTask();\r\n            }\r\n            taskProgressBar?.show();\r\n        };\r\n\r\n        isOpen ? onOpen() : onClose();\r\n        // eslint-disable-next-line react-hooks/exhaustive-deps\r\n    }, [isOpen]);\r\n\r\n    useEffect(() => {\r\n        if (taskId) {\r\n            getTaskProgressBar()?.update();\r\n            handleTaskUpdate(task);\r\n        }\r\n        // eslint-disable-next-line react-hooks/exhaustive-deps\r\n    }, [taskId, task]);\r\n\r\n    useEventListener('plesk:taskStepUpdate', handleTaskUpdate, Observer);\r\n    useEventListener('plesk:taskComplete', handleTaskComplete, Observer);\r\n\r\n    const isInProgress = () => Task.STATUS_NOT_STARTED === status || STATUS_RUNNING === status;\r\n\r\n    const handleClose = () => {\r\n        if (!redirectUrl) {\r\n            onClose();\r\n            return;\r\n        }\r\n\r\n        if (sameUrls(redirectUrl, pageUrl)) {\r\n            navigate(redirectUrl, { replace: true });\r\n            onClose();\r\n            return;\r\n        }\r\n\r\n        navigate(redirectUrl);\r\n    };\r\n\r\n    const deleteTask = () => taskId && getTaskProgressBar()?.getItems().find(item => item.getId() === taskId)\r\n        ?.remove();\r\n\r\n    const onFinish = () => {\r\n        deleteTask();\r\n        addToast({\r\n            intent: 'success',\r\n            // eslint-disable-next-line react/no-danger\r\n            message: <span dangerouslySetInnerHTML={{ __html: title || steps[0].title }} />,\r\n        });\r\n    };\r\n\r\n    return (\r\n        <Drawer\r\n            data-type={dataType}\r\n            isOpen={isOpen}\r\n            onClose={handleClose}\r\n            progress={steps.length ? {\r\n                cancelable: false,\r\n                // eslint-disable-next-line react/no-danger\r\n                title: <span dangerouslySetInnerHTML={{ __html: title }} />,\r\n                steps,\r\n                onFinish,\r\n                autoCloseTimeout: 1,\r\n            } : null}\r\n            hideButton={isInProgress()}\r\n            {...props}\r\n        >\r\n            {children}\r\n        </Drawer>\r\n    );\r\n};\r\n\r\nDrawerWithProgress.propTypes = {\r\n    children: PropTypes.node,\r\n    dataType: PropTypes.string.isRequired,\r\n    isOpen: PropTypes.bool,\r\n    onClose: PropTypes.func.isRequired,\r\n    task: PropTypes.shape({\r\n        id: PropTypes.string.isRequired,\r\n        steps: PropTypes.array,\r\n        status: PropTypes.string,\r\n        progressTitle: PropTypes.string,\r\n        progressTitleHtml: PropTypes.string,\r\n    }),\r\n    pageUrl: PropTypes.string,\r\n    onTaskComplete: PropTypes.func,\r\n};\r\n\r\nDrawerWithProgress.defaultProps = {\r\n    children: null,\r\n    isOpen: false,\r\n    task: null,\r\n    pageUrl: null,\r\n    onTaskComplete: undefined,\r\n};\r\n\r\nexport default DrawerWithProgress;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useCallback } from 'react';\r\nimport { createPath } from 'react-router';\r\nimport { useNavigate as useNavigateBase } from 'react-router-dom';\r\n\r\nconst useNavigate = () => {\r\n    const navigateBase = useNavigateBase();\r\n\r\n    return useCallback((to, options = {}) => {\r\n        if (!require('routes').isClientSideRedirectAllowed(to)) {\r\n            window.location[options?.replace ? 'replace' : 'assign'](typeof to === 'object' && to !== null ? createPath(to) : to);\r\n        } else {\r\n            navigateBase(to, options);\r\n        }\r\n    }, [navigateBase]);\r\n};\r\n\r\nexport default useNavigate;\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"CreateFormInDrawer\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"config\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domainManagement\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"settings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enabled\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"applicationWizard\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"blankSite\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"uploadFiles\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"techDomain\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"vendor\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"maxDomainLength\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":383}};\n    doc.loc.source = {\"body\":\"query CreateFormInDrawer {\\r\\n    config {\\r\\n        domainManagement {\\r\\n            settings {\\r\\n                enabled\\r\\n            }\\r\\n            applicationWizard {\\r\\n                enabled\\r\\n                blankSite\\r\\n                uploadFiles\\r\\n            }\\r\\n        }\\r\\n        techDomain {\\r\\n            url\\r\\n            vendor\\r\\n            maxDomainLength\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"CreateFormInDrawer\"] = oneQuery(doc, \"CreateFormInDrawer\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateUserSettings\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"collapsed\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updateUserSettings\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"collapsedDomainSettings\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"collapsed\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"result\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":151}};\n    doc.loc.source = {\"body\":\"mutation UpdateUserSettings($collapsed: Boolean!) {\\r\\n    updateUserSettings(input: {collapsedDomainSettings: $collapsed}) {\\r\\n        result\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"UpdateUserSettings\"] = oneQuery(doc, \"UpdateUserSettings\");\n        \r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useCallback } from 'react';\r\nimport { useNavigate, useLocation } from 'react-router-dom';\r\n\r\n/**\r\n * Helper for global modals like Notifications and Cookies\r\n */\r\nconst useModal = (id, search) => {\r\n    const key = `modals[${id}]`;\r\n    const navigate = useNavigate();\r\n    const location = useLocation();\r\n    const value = new URLSearchParams(search ?? location.search).get(key);\r\n\r\n    const setValue = useCallback(next => {\r\n        const params = new URLSearchParams(window.location.search);\r\n        if (next) {\r\n            params.set(key, next);\r\n            navigate(`?${params}`);\r\n        } else if (params.has(key)) {\r\n            params.delete(key);\r\n            navigate(`?${params}`);\r\n        }\r\n    }, [key, navigate]);\r\n\r\n    return [value, setValue];\r\n};\r\n\r\nexport default useModal;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport classNames from 'classnames';\r\nimport { Heading, Paragraph, Button, Link } from '@plesk/ui-library';\r\nimport PropTypes from 'prop-types';\r\nimport { Locale } from 'jsw';\r\nimport { PLESK_COOKIES } from './urls';\r\n\r\nconst Translate = Locale.getTranslate('components.cookie-policy.info');\r\n\r\nconst Info = ({ onSave, onPreferencesToggle, contentAlignment }) => {\r\n    const handleAcceptClick = () => {\r\n        onSave({ analytics: true, marketing: true });\r\n        onPreferencesToggle(false);\r\n    };\r\n\r\n    const handleAcceptNecessaryCookiesClick = () => {\r\n        onSave({ analytics: false, marketing: false });\r\n        onPreferencesToggle(false);\r\n    };\r\n\r\n    const handlePreferencesClick = () => {\r\n        onPreferencesToggle(true);\r\n    };\r\n\r\n    return (\r\n        <div\r\n            className={classNames('cookie-policy-info', {\r\n                [`cookie-policy-info--${contentAlignment}`]: contentAlignment,\r\n            })}\r\n        >\r\n            <div className=\"cookie-policy-info__inner\">\r\n                <Heading level={3} className=\"cookie-policy-info__title\">\r\n                    <Translate content=\"title\" />\r\n                </Heading>\r\n                <Paragraph>\r\n                    <Translate content=\"necessaryCookiesMessage\" />\r\n                </Paragraph>\r\n                <Paragraph>\r\n                    <Translate\r\n                        content=\"message\"\r\n                        params={{\r\n                            cookieInformationLink: (\r\n                                <Link\r\n                                    href={PLESK_COOKIES}\r\n                                    target=\"_blank\"\r\n                                    className=\"cookie-policy-info__link\"\r\n                                >\r\n                                    <Translate\r\n                                        content=\"cookieInformationLink\"\r\n                                    />\r\n                                </Link>\r\n                            ),\r\n                        }}\r\n                    />\r\n                </Paragraph>\r\n                <div className=\"cookie-policy-info__buttons\">\r\n                    <Button\r\n                        className=\"cookie-policy-info__button\"\r\n                        data-type=\"cookie-policy-info-accept-button\"\r\n                        onClick={handleAcceptClick}\r\n                    >\r\n                        <Translate content=\"acceptButton\" />\r\n                    </Button>\r\n                    <Button\r\n                        className=\"cookie-policy-info__button\"\r\n                        data-type=\"cookie-policy-info-accept-necessary-button\"\r\n                        onClick={handleAcceptNecessaryCookiesClick}\r\n                    >\r\n                        <Translate content=\"acceptNecessaryCookiesButton\" />\r\n                    </Button>\r\n                    <Button\r\n                        className=\"cookie-policy-info__button\"\r\n                        data-type=\"cookie-policy-info-preferences-button\"\r\n                        onClick={handlePreferencesClick}\r\n                    >\r\n                        <Translate content=\"preferencesButton\" />\r\n                    </Button>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    );\r\n};\r\n\r\nInfo.propTypes = {\r\n    onSave: PropTypes.func.isRequired,\r\n    onPreferencesToggle: PropTypes.func.isRequired,\r\n    contentAlignment: PropTypes.oneOf(['center']),\r\n};\r\n\r\nInfo.defaultProps = {\r\n    contentAlignment: undefined,\r\n};\r\n\r\nexport default Info;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nexport const PLESK_COOKIES = 'https://docs.plesk.com/en-US/obsidian/cookies';\r\nexport const CONTROL_COOKIES = 'https://docs.plesk.com/en-US/obsidian/cookies/#delete-cookies';\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Heading, Paragraph, Link, FormFieldRadioButtons } from '@plesk/ui-library';\r\nimport { Locale } from 'jsw';\r\nimport DrawerAdapter from './DrawerAdapter';\r\nimport { PLESK_COOKIES, CONTROL_COOKIES } from '../urls';\r\n\r\nconst Translate = Locale.getTranslate('components.cookie-policy.preferences');\r\n\r\nconst toValues = preferences => Object.keys(preferences).reduce((acc, k) => {\r\n    acc[k] = preferences[k] ? 'on' : 'off';\r\n    return acc;\r\n}, {});\r\n\r\nconst toPreferences = values => Object.keys(values).reduce((acc, k) => {\r\n    acc[k] = values[k] === 'on';\r\n    return acc;\r\n}, {});\r\n\r\nconst Preferences = ({ isOpen, onSave, onToggle, preferences, adapter: Adapter = DrawerAdapter }) => {\r\n    const values = useMemo(() => toValues(preferences), [preferences]);\r\n\r\n    const handleSubmit = values => {\r\n        onSave(toPreferences(values));\r\n        onToggle(false);\r\n    };\r\n\r\n    const handleCancel = () => onToggle(false);\r\n\r\n    return (\r\n        <Adapter\r\n            isOpen={isOpen}\r\n            title={<Translate content=\"title\" />}\r\n            submitButton={{\r\n                'data-type': 'cookie-policy-preferences-submit-button',\r\n                'data-testid': 'submitButton',\r\n                children: (\r\n                    <Translate content=\"submitButton\" />\r\n                ),\r\n            }}\r\n            cancelButton={{\r\n                'data-type': 'cookie-policy-preferences-cancel-button',\r\n                'data-testid': 'cancelButton',\r\n                children: (\r\n                    <Translate content=\"cancelButton\" />\r\n                ),\r\n                onClick: handleCancel,\r\n            }}\r\n            values={values}\r\n            onSubmit={handleSubmit}\r\n            onCancel={handleCancel}\r\n        >\r\n            <Paragraph>\r\n                <Translate content=\"description\" />\r\n            </Paragraph>\r\n            <Heading level={2}>\r\n                <Translate content=\"settingsTitle\" />\r\n            </Heading>\r\n            <Paragraph>\r\n                <Translate content=\"settingsDescription\" />\r\n            </Paragraph>\r\n            <Heading level={3}>\r\n                <Translate content=\"analyticsTitle\" />\r\n            </Heading>\r\n            <Paragraph>\r\n                <Translate content=\"analyticsDescription\" />\r\n            </Paragraph>\r\n            <FormFieldRadioButtons\r\n                name=\"analytics\"\r\n                value={values.analytics}\r\n                className=\"cookie-policy-preferences__radio-buttons\"\r\n                data-testid={`analytics${values.analytics}`}\r\n                options={[\r\n                    { value: 'on', label: <Translate content=\"on\" /> },\r\n                    { value: 'off', label: <Translate content=\"off\" /> },\r\n                ]}\r\n            />\r\n            <Heading level={3}>\r\n                <Translate content=\"marketingTitle\" />\r\n            </Heading>\r\n            <Paragraph>\r\n                <Translate content=\"marketingDescription\" />\r\n            </Paragraph>\r\n            <FormFieldRadioButtons\r\n                name=\"marketing\"\r\n                value={values.marketing}\r\n                className=\"cookie-policy-preferences__radio-buttons\"\r\n                options={[\r\n                    { value: 'on', label: <Translate content=\"on\" /> },\r\n                    { value: 'off', label: <Translate content=\"off\" /> },\r\n                ]}\r\n            />\r\n            <Heading level={3}>\r\n                <Translate content=\"necessaryTitle\" />\r\n            </Heading>\r\n            <Paragraph>\r\n                <Translate\r\n                    content=\"necessaryDescription\"\r\n                    params={{\r\n                        browserSettingsLink: (\r\n                            <Link href={CONTROL_COOKIES} target=\"_blank\">\r\n                                <Translate content=\"browserSettingsLink\" />\r\n                            </Link>\r\n                        ),\r\n                    }}\r\n                />\r\n            </Paragraph>\r\n            <Paragraph>\r\n                <Link href={PLESK_COOKIES} target=\"_blank\">\r\n                    <Translate content=\"pleskCookiesLink\" />\r\n                </Link>\r\n            </Paragraph>\r\n        </Adapter>\r\n    );\r\n};\r\n\r\nPreferences.propTypes = {\r\n    isOpen: PropTypes.bool.isRequired,\r\n    onSave: PropTypes.func.isRequired,\r\n    onToggle: PropTypes.func.isRequired,\r\n    preferences: PropTypes.object.isRequired,\r\n    adapter: PropTypes.func,\r\n};\r\n\r\nPreferences.defaultProps = {\r\n    adapter: undefined,\r\n};\r\n\r\nexport default Preferences;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { Drawer } from '@plesk/ui-library';\r\n\r\nconst DrawerAdapter = ({\r\n    isOpen,\r\n    onSubmit,\r\n    onCancel,\r\n    submitButton,\r\n    cancelButton,\r\n    title,\r\n    children,\r\n    values,\r\n}) => (\r\n    <Drawer\r\n        isOpen={isOpen}\r\n        onClose={onCancel}\r\n        data-type=\"cookie-policy-preferences\"\r\n        title={title}\r\n        size=\"sm\"\r\n        form={{\r\n            vertical: true,\r\n            onSubmit,\r\n            onCancel,\r\n            applyButton: false,\r\n            submitButton,\r\n            cancelButton,\r\n            values,\r\n        }}\r\n    >\r\n        {children}\r\n    </Drawer>\r\n);\r\n\r\nDrawerAdapter.propTypes = {\r\n    isOpen: PropTypes.bool.isRequired,\r\n    onSubmit: PropTypes.func.isRequired,\r\n    onCancel: PropTypes.func.isRequired,\r\n    submitButton: PropTypes.shape({\r\n        children: PropTypes.node.isRequired,\r\n    }).isRequired,\r\n    cancelButton: PropTypes.shape({\r\n        children: PropTypes.node.isRequired,\r\n        onClick: PropTypes.func.isRequired,\r\n    }).isRequired,\r\n    title: PropTypes.node.isRequired,\r\n    children: PropTypes.node.isRequired,\r\n    values: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default DrawerAdapter;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { Form, Heading } from '@plesk/ui-library';\r\nimport Overlay from './Overlay';\r\n\r\nconst OverlayAdapter = ({\r\n    isOpen,\r\n    onSubmit,\r\n    onCancel,\r\n    submitButton,\r\n    cancelButton,\r\n    title,\r\n    children,\r\n    values,\r\n}) => (\r\n    <Overlay isOpen={isOpen} onCancel={onCancel}>\r\n        <Form\r\n            vertical\r\n            onSubmit={onSubmit}\r\n            onCancel={onCancel}\r\n            applyButton={false}\r\n            submitButton={submitButton}\r\n            cancelButton={cancelButton}\r\n            values={values}\r\n        >\r\n            <Heading level={1} className=\"cookie-policy-preferences__title\">\r\n                {title}\r\n            </Heading>\r\n            {children}\r\n        </Form>\r\n    </Overlay>\r\n);\r\n\r\nOverlayAdapter.propTypes = {\r\n    isOpen: PropTypes.bool.isRequired,\r\n    onSubmit: PropTypes.func.isRequired,\r\n    onCancel: PropTypes.func.isRequired,\r\n    submitButton: PropTypes.shape({\r\n        children: PropTypes.node.isRequired,\r\n    }).isRequired,\r\n    cancelButton: PropTypes.shape({\r\n        children: PropTypes.node.isRequired,\r\n        onClick: PropTypes.func.isRequired,\r\n    }).isRequired,\r\n    title: PropTypes.node.isRequired,\r\n    children: PropTypes.node.isRequired,\r\n    values: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default OverlayAdapter;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useEffect, useState, useRef } from 'react';\r\nimport { createPortal } from 'react-dom';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { Icon, disableDocumentScroll, enableDocumentScroll } from '@plesk/ui-library';\r\n\r\nconst hasScroll = () => document.documentElement.style.position !== 'fixed';\r\n\r\nconst disableScroll = () => {\r\n    if (hasScroll()) {\r\n        disableDocumentScroll();\r\n    }\r\n};\r\n\r\nconst enableScroll = () => {\r\n    if (!hasScroll()) {\r\n        enableDocumentScroll();\r\n    }\r\n};\r\n\r\nconst Overlay = ({ isOpen, children, onCancel }) => {\r\n    const enterTimeoutRef = useRef(null);\r\n    const exitTimeoutRef = useRef(null);\r\n    const [isReady, setReady] = useState(isOpen);\r\n\r\n    useEffect(() => {\r\n        let listener;\r\n        if (isOpen) {\r\n            setReady(true);\r\n            listener = e => {\r\n                if (e.keyCode === 27) {\r\n                    onCancel();\r\n                }\r\n            };\r\n            document.addEventListener('keydown', listener);\r\n            enterTimeoutRef.current = setTimeout(() => {\r\n                disableScroll();\r\n            }, 500);\r\n        } else {\r\n            exitTimeoutRef.current = setTimeout(() => {\r\n                setReady(false);\r\n                enableScroll();\r\n            }, 500);\r\n        }\r\n        return () => {\r\n            clearTimeout(enterTimeoutRef.current);\r\n            clearTimeout(exitTimeoutRef.current);\r\n            enableScroll();\r\n            document.removeEventListener('keydown', listener);\r\n        };\r\n    }, [isOpen, onCancel]);\r\n\r\n    if (!isOpen && !isReady) {\r\n        return null;\r\n    }\r\n\r\n    return createPortal(\r\n        <div\r\n            className={classNames('cookie-policy-overlay', {\r\n                'cookie-policy-overlay--enter': isOpen && isReady,\r\n                'cookie-policy-overlay--exit': !isOpen && isReady,\r\n            })}\r\n            data-testid=\"overlayContainer\"\r\n        >\r\n            <div className=\"cookie-policy-overlay__modal\">\r\n                <a onClick={onCancel} className=\"cookie-policy-overlay__modal-close\">\r\n                    <Icon name=\"cross-mark\" />\r\n                </a>\r\n                <div className=\"cookie-policy-overlay__modal-content\">\r\n                    <div className=\"cookie-policy-overlay__modal-inner\">{children}</div>\r\n                </div>\r\n            </div>\r\n        </div>,\r\n        document.body,\r\n    );\r\n};\r\n\r\nOverlay.propTypes = {\r\n    isOpen: PropTypes.bool.isRequired,\r\n    children: PropTypes.node.isRequired,\r\n    onCancel: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default Overlay;\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"CookiePolicy\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"config\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"gdpr\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"cookieBox\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enabled\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"cookies\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"value\":{\"kind\":\"ListValue\",\"values\":[{\"kind\":\"StringValue\",\"value\":\"analytics\",\"block\":false},{\"kind\":\"StringValue\",\"value\":\"marketing\",\"block\":false}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":254}};\n    doc.loc.source = {\"body\":\"query CookiePolicy {\\r\\n    config {\\r\\n        gdpr {\\r\\n            cookieBox {\\r\\n                enabled\\r\\n            }\\r\\n            cookies(type: [\\\"analytics\\\", \\\"marketing\\\"]) {\\r\\n                name\\r\\n                type\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"CookiePolicy\"] = oneQuery(doc, \"CookiePolicy\");\n        \r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useRef, useLayoutEffect } from 'react';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { render } from 'jsw';\r\n\r\nconst JswComponent = ({ component: Tag, renderMode, children, ...props }) => {\r\n    const containerRef = useRef();\r\n\r\n    useLayoutEffect(() => {\r\n        render(containerRef.current, children, renderMode);\r\n        // eslint-disable-next-line react-hooks/exhaustive-deps\r\n    }, []);\r\n\r\n    return (\r\n        <Tag ref={containerRef} {...props} />\r\n    );\r\n};\r\n\r\nJswComponent.propTypes = {\r\n    component: PropTypes.string,\r\n    renderMode: PropTypes.string,\r\n    children: PropTypes.oneOfType([\r\n        PropTypes.string,\r\n        PropTypes.func,\r\n        PropTypes.object,\r\n    ]),\r\n};\r\n\r\nJswComponent.defaultProps = {\r\n    component: 'div',\r\n    renderMode: undefined,\r\n    children: undefined,\r\n};\r\n\r\nexport default JswComponent;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n/* eslint-disable react/jsx-max-depth */\r\n\r\nimport classNames from 'classnames';\r\nimport { api, prepareUrl, createComponent, Locale } from 'jsw';\r\nimport JswComponent from '../jsw/JswComponent';\r\nimport pageData, { usePageData } from 'helpers/pageData';\r\n\r\nconst StatusMessages = () => {\r\n    const { status = [] } = usePageData();\r\n\r\n    const handleCloseMessage = message => {\r\n        if (message.hideUrl) {\r\n            api.post(prepareUrl(message.hideUrl));\r\n        }\r\n        pageData({\r\n            ...pageData(),\r\n            status: status.filter((_, key) => message.key !== key),\r\n        });\r\n    };\r\n\r\n    const renderMessage = message => {\r\n        const {\r\n            componentType,\r\n            status,\r\n            content,\r\n            title = Locale.getSection('components.status').lmsg(status),\r\n            class: className,\r\n            ...other\r\n        } = message;\r\n\r\n        if (componentType) {\r\n            return (\r\n                <JswComponent>\r\n                    {() => createComponent({\r\n                        componentType,\r\n                        title,\r\n                        type: status,\r\n                        message: content,\r\n                        attrs: {\r\n                            'data-rendered-by-react': 'true',\r\n                        },\r\n                        ...other,\r\n                    })}\r\n                </JswComponent>\r\n            );\r\n        }\r\n\r\n        const {\r\n            key,\r\n            id,\r\n            source,\r\n            hideUrl,\r\n        } = message;\r\n\r\n        return (\r\n            <div\r\n                key={key}\r\n                id={id}\r\n                className={classNames('msg-box', `msg-${status}`, className)}\r\n                data-source={source}\r\n                data-rendered-by-react\r\n            >\r\n                <div>\r\n                    <div>\r\n                        <div>\r\n                            <div>\r\n                                <div>\r\n                                    <div className=\"msg-content\">\r\n                                        {hideUrl ? <span className=\"close\" onClick={() => handleCloseMessage(message)} /> : null}\r\n                                        {title ? (\r\n                                            <span className=\"title\">\r\n                                                {title}{': '}\r\n                                            </span>\r\n                                        ) : null}\r\n                                        <span\r\n                                            // eslint-disable-next-line react/no-danger\r\n                                            dangerouslySetInnerHTML={{ __html: content }}\r\n                                        />\r\n                                    </div>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        );\r\n    };\r\n\r\n    return status.map((message, key) => renderMessage({ key, ...message }));\r\n};\r\n\r\nexport default StatusMessages;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useState } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { Alert, Button, Popover, Item, Icon } from '@plesk/ui-library';\r\nimport { api, Locale } from 'jsw';\r\nimport Link from 'components/common/Link';\r\n\r\nconst Translate = Locale.getTranslate('components.license-status');\r\n\r\nconst STATUS_DEFAULT = 'default';\r\nconst STATUS_TEST = 'test';\r\nconst STATUS_TRIAL = 'trial';\r\nconst STATUS_EXPIRED = 'expired';\r\n\r\nconst LicenseStatus = ({ status, daysLeft, isAdmin, actionUrl, installUrl, hidePopoverUrl, trialOverIcon, baseClassName }) => {\r\n    const [trialOverPopoverVisible, setTrialOverPopoverVisible] = useState(daysLeft <= 5 && hidePopoverUrl);\r\n\r\n    const handleClosePopover = () => {\r\n        setTrialOverPopoverVisible(false);\r\n        api.post(hidePopoverUrl);\r\n    };\r\n\r\n    const renderActions = () => {\r\n        const alertCls = `${baseClassName}-alert`;\r\n\r\n        return (actionUrl || installUrl) ? (\r\n            <div className={`${alertCls}__actions`}>\r\n                {actionUrl && (\r\n                    <Button\r\n                        intent=\"primary\"\r\n                        component=\"a\"\r\n                        icon=\"shopping-cart\"\r\n                        className={`${alertCls}__actions-button`}\r\n                        href={actionUrl}\r\n                        target=\"_blank\"\r\n                    >\r\n                        <Translate content={status === STATUS_DEFAULT ? 'getTrialButton' : 'buyLicenseButton'} />\r\n                    </Button>\r\n                )}\r\n                {installUrl && (\r\n                    <Link\r\n                        className={`${alertCls}__actions-link`}\r\n                        to={installUrl}\r\n                    >\r\n                        <Translate content=\"installLicenseButton\" />\r\n                    </Link>\r\n                )}\r\n                {status === 'demo' && (\r\n                    <Translate\r\n                        content=\"demoLicenseTryPlesk\"\r\n                        component=\"span\"\r\n                        className={`${alertCls}__additional-action`}\r\n                        params={{\r\n                            link: (\r\n                                <a\r\n                                    href=\"https://docs.plesk.com/try-plesk-now/\"\r\n                                    target=\"_blank\"\r\n                                    rel=\"nofollow noopener noreferrer\"\r\n                                >\r\n                                    <Translate content=\"demoLicenseTryPleskLink\" />\r\n                                </a>\r\n                            ),\r\n                        }}\r\n                    />\r\n                )}\r\n            </div>\r\n        ) : null;\r\n    };\r\n\r\n    const renderTrialPopover = content => {\r\n        const popoverCls = `${baseClassName}-popover`;\r\n\r\n        return trialOverPopoverVisible ? (\r\n            <Popover\r\n                className={popoverCls}\r\n                visible\r\n                onClose={handleClosePopover}\r\n                target={content}\r\n            >\r\n                <Item\r\n                    title={<h4><Translate content=\"trialOverTitle\" /></h4>}\r\n                    icon={<Icon size=\"48\" src={trialOverIcon} />}\r\n                >\r\n                    <Translate content=\"trialOverText\" />\r\n                </Item>\r\n            </Popover>\r\n        ) : content;\r\n    };\r\n\r\n    const alertCls = `${baseClassName}-alert`;\r\n\r\n    let intent = null;\r\n    if (status !== 'demo') {\r\n        intent = daysLeft <= 0 ? 'danger' : (daysLeft <= 5 ? 'warning' : null);\r\n    }\r\n\r\n    const content = (\r\n        <div\r\n            className={classNames(baseClassName, { 'license-status--active': trialOverPopoverVisible })}\r\n            data-type=\"license-status\"\r\n        >\r\n            <Alert\r\n                data-type={`license-status-${status}`}\r\n                className={alertCls}\r\n                intent={intent}\r\n            >\r\n                <div className={`${alertCls}__inner`}>\r\n                    <div className={`${alertCls}__message`}>\r\n                        {STATUS_TRIAL === status ? (\r\n                            <div className={`${alertCls}__message-count`}>{daysLeft}</div>\r\n                        ) : null}\r\n                        <div className={`${alertCls}__message-text`}>\r\n                            <Translate content={isAdmin || status === 'demo' ? `${status}LicenseWarningAdmin` : 'testLicenseWarningClient'} />\r\n                        </div>\r\n                    </div>\r\n                    {renderActions()}\r\n                </div>\r\n            </Alert>\r\n        </div>\r\n    );\r\n\r\n    return renderTrialPopover(content);\r\n};\r\n\r\nLicenseStatus.propTypes = {\r\n    status: PropTypes.oneOf([STATUS_DEFAULT, STATUS_TEST, STATUS_TRIAL, STATUS_EXPIRED]).isRequired,\r\n    daysLeft: PropTypes.number,\r\n    isAdmin: PropTypes.bool,\r\n    actionUrl: PropTypes.string,\r\n    installUrl: PropTypes.string,\r\n    hidePopoverUrl: PropTypes.string,\r\n    trialOverIcon: PropTypes.string,\r\n    baseClassName: PropTypes.string,\r\n};\r\n\r\nLicenseStatus.defaultProps = {\r\n    daysLeft: 0,\r\n    isAdmin: false,\r\n    actionUrl: null,\r\n    installUrl: null,\r\n    hidePopoverUrl: null,\r\n    trialOverIcon: null,\r\n    baseClassName: 'license-status',\r\n};\r\n\r\nexport default LicenseStatus;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Link as RouteLink, useNavigate } from 'react-router-dom';\r\nimport { createPath } from 'react-router';\r\n\r\nconst urlMapping = {\r\n    '/plesk/admin-panel=server.tools/': '/admin/server/tools',\r\n};\r\n\r\nexport const useNavigateCallback = () => {\r\n    const navigate = useNavigate();\r\n\r\n    return useCallback(e => {\r\n        if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) {\r\n            return;\r\n        }\r\n\r\n        const url = e.target.closest('a').getAttribute('href');\r\n        if (!require('routes').isClientSideRedirectAllowed(url)) {\r\n            return;\r\n        }\r\n\r\n        e.preventDefault();\r\n        navigate(url);\r\n    }, [navigate]);\r\n};\r\n\r\nconst Link = ({ to, state, disabled, ...props }) => {\r\n    if (disabled) {\r\n        to = undefined;\r\n        props.onClick = undefined;\r\n    }\r\n\r\n    if (urlMapping[to]) {\r\n        to = urlMapping[to];\r\n    }\r\n\r\n    if (to && require('routes').isClientSideRedirectAllowed(to)) {\r\n        return <RouteLink to={to} state={state} {...props} />;\r\n    }\r\n\r\n    if (typeof to === 'object' && to !== null) {\r\n        to = createPath(to);\r\n    }\r\n\r\n    return <a href={to} {...props} />;\r\n};\r\n\r\nLink.propTypes = {\r\n    to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\r\n    state: PropTypes.any,\r\n    disabled: PropTypes.bool,\r\n};\r\n\r\nLink.defaultProps = {\r\n    to: undefined,\r\n    state: undefined,\r\n    disabled: undefined,\r\n};\r\n\r\nexport default Link;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport PropTypes from 'prop-types';\r\nimport MainHeaderSearch from './MainHeaderSearch';\r\nimport MainHeaderNavbar from './MainHeaderNavbar';\r\n\r\nconst PageHeader = ({ licenseStatus, searchUrl, ...props }) => (\r\n    <div className=\"page-header\">\r\n        {searchUrl ? (\r\n            <MainHeaderSearch url={searchUrl} />\r\n        ) : null}\r\n        <MainHeaderNavbar {...props} />\r\n    </div>\r\n);\r\n\r\nPageHeader.propTypes = {\r\n    licenseStatus: PropTypes.object,\r\n    searchUrl: PropTypes.string,\r\n};\r\n\r\nPageHeader.defaultProps = {\r\n    licenseStatus: null,\r\n    searchUrl: null,\r\n};\r\n\r\nexport default PageHeader;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useRef, useState, useCallback, useEffect, useMemo, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { Input, Menu, MenuItem, MenuDivider, MenuHeader, Icon, Status, Hint, Button } from '@plesk/ui-library';\r\nimport { keyCode, Locale } from 'jsw';\r\nimport { toFormData } from 'helpers/form';\r\nimport { addToast } from 'helpers/toasts';\r\nimport { useQuery, useMutation, useApolloClient } from '@apollo/client';\r\nimport Link from 'components/common/Link';\r\n\r\nimport MAIN_HEADER_SEARCH_QUERY from 'queries/MainHeaderSearch.graphql';\r\nimport RECENT_SEARCH_HISTORY_QUERY from './RecentSearchHistoryQuery.graphql';\r\nimport DELETE_RECENT_SEARCH_RESULT_MUTATION from './DeleteRecentSearchResultMutation.graphql';\r\n\r\nconst Translate = Locale.getTranslate('components.search-bar');\r\n\r\nconst MENU_ITEM_CLASSNAME = 'main-header-search-result__item';\r\n\r\nexport const SEARCH_HISTORY_STORE_URL = '/cp/search/store';\r\n\r\nconst removeTouchEventListeners = ({ onDocumentTouchStart, onDocumentTouchMove, onDocumentTouchEnd }) => {\r\n    document.removeEventListener('touchstart', onDocumentTouchStart);\r\n    document.removeEventListener('touchmove', onDocumentTouchMove);\r\n    document.removeEventListener('touchend', onDocumentTouchEnd);\r\n};\r\n\r\nconst MainHeaderSearch = ({ url }) => {\r\n    const searchActionDelay = 300;\r\n    const searchTermRef = useRef();\r\n    const lastTermRef = useRef('');\r\n    const menuRef = useRef();\r\n    const timer = useRef(null);\r\n    const resetTimeout = useRef(null);\r\n    const enterPressed = useRef(false);\r\n    const pendingRequest = useRef(null);\r\n    const skipKeyUp = useRef(false);\r\n    const touchMoved = useRef(false);\r\n    const { data: { config, viewer } = {} } = useQuery(MAIN_HEADER_SEARCH_QUERY);\r\n    const [history, setHistory] = useState();\r\n    const [deleteRecentSearchResult] = useMutation(DELETE_RECENT_SEARCH_RESULT_MUTATION, {\r\n        onCompleted: ({ deleteRecentSearchResult }) => setHistory(deleteRecentSearchResult.query.recentSearch),\r\n    });\r\n\r\n    const [isSearchFocused, setSearchFocused] = useState(false);\r\n    const [searchInProgress, setSearchInProgress] = useState(false);\r\n    const [results, setResults] = useState(null);\r\n    const [selectedItem, setSelectedItem] = useState(null);\r\n\r\n    const apolloClient = useApolloClient();\r\n    const isAdmin = viewer?.type === 'ADMIN';\r\n\r\n    const fatalError = message => {\r\n        // eslint-disable-next-line no-alert\r\n        alert(message);\r\n    };\r\n\r\n    const handlePaste = () => scheduleSearch();\r\n\r\n    const handleKeyUp = event => {\r\n        if (skipKeyUp.current) {\r\n            return;\r\n        }\r\n        if (event.keyCode === keyCode.ESC) {\r\n            searchTermRef.current.blur();\r\n            return;\r\n        }\r\n        if ([keyCode.UP_ARROW, keyCode.DOWN_ARROW, keyCode.LEFT_ARROW, keyCode.RIGHT_ARROW, keyCode.ENTER].indexOf(event.keyCode) !== -1) {\r\n            return;\r\n        }\r\n\r\n        scheduleSearch();\r\n    };\r\n\r\n    const handleKeyDown = event => {\r\n        skipKeyUp.current = event.ctrlKey || event.metaKey;\r\n\r\n        if ([keyCode.UP_ARROW, keyCode.DOWN_ARROW].indexOf(event.keyCode) !== -1) {\r\n            onArrowKeyPressed(event.keyCode);\r\n            event.preventDefault();\r\n        }\r\n\r\n        enterPressed.current = (keyCode.ENTER === event.keyCode);\r\n        if (enterPressed.current) {\r\n            if (\r\n                (pendingRequest.current && pendingRequest.current._complete)\r\n                || (history && selectedItem !== null)\r\n            ) {\r\n                goToItem();\r\n            } else {\r\n                scheduleSearch();\r\n            }\r\n        }\r\n    };\r\n\r\n    const goToItem = () => {\r\n        if (!menuRef.current) {\r\n            return;\r\n        }\r\n        const elements = menuRef.current.querySelectorAll(`.${MENU_ITEM_CLASSNAME}`);\r\n        const element = elements[selectedItem || 0];\r\n        if (element) {\r\n            element.click();\r\n            searchTermRef.current.blur();\r\n        }\r\n    };\r\n\r\n    const handleFocus = () => {\r\n        if (resetTimeout.current) {\r\n            clearTimeout(resetTimeout.current);\r\n        }\r\n\r\n        resetSearch();\r\n        setSearchFocused(true);\r\n\r\n        apolloClient.query({\r\n            query: RECENT_SEARCH_HISTORY_QUERY,\r\n        }).then(({ data }) => {\r\n            setHistory(data.recentSearch);\r\n        }).catch(({ networkError, message }) => {\r\n            if (!networkError) {\r\n                addToast({ intent: 'danger', message });\r\n            }\r\n        });\r\n\r\n        document.addEventListener('touchstart', onDocumentTouchStart);\r\n        document.addEventListener('touchmove', onDocumentTouchMove);\r\n        document.addEventListener('touchend', onDocumentTouchEnd);\r\n    };\r\n\r\n\r\n    const handleBlur = () => {\r\n        if (resetTimeout.current) {\r\n            clearTimeout(resetTimeout.current);\r\n        }\r\n\r\n        lastTermRef.current = '';\r\n\r\n        resetTimeout.current = setTimeout(() => {\r\n            resetSearch();\r\n            setSearchFocused(false);\r\n        }, 300);\r\n    };\r\n\r\n    const scheduleSearch = () => {\r\n        setSearchInProgress(true);\r\n\r\n        abortPreviousSearch();\r\n        timer.current = setTimeout(findTerm, searchActionDelay);\r\n    };\r\n\r\n    const abortPreviousSearch = () => {\r\n        if (pendingRequest.current) {\r\n            const abort = pendingRequest.current.abort.bind(pendingRequest.current);\r\n            // global state is cleared first due to onSearchComplete callback\r\n            pendingRequest.current = null;\r\n            abort();\r\n        }\r\n\r\n        if (timer.current) {\r\n            clearTimeout(timer.current);\r\n            timer.current = null;\r\n        }\r\n    };\r\n\r\n    const onSearchSuccess = response => {\r\n        if (lastTermRef.current !== response.request.options.parameters.term) {\r\n            return;\r\n        }\r\n\r\n        let data;\r\n        try {\r\n            data = JSON.parse(response.responseText);\r\n        } catch (e) {\r\n            fatalError(`Failed to parse JSON response: ${e.message}`);\r\n            return;\r\n        }\r\n\r\n        if ('error' === data.status) {\r\n            const result = data.statusMessages.reduce((res, message) => `${res}${message.title}: ${message.content}\\n`, '');\r\n            fatalError(result);\r\n            return;\r\n        }\r\n\r\n        setResults(data);\r\n        if (enterPressed.current) {\r\n            goToItem();\r\n        } else if (data.records.length > 0) {\r\n            setSelectedItem(0);\r\n        }\r\n    };\r\n\r\n    const onSearchFailure = response => {\r\n        fatalError(`Search request failed due to following error: ${response.responseText}`);\r\n    };\r\n\r\n    const onSearchComplete = response => {\r\n        if (!response || pendingRequest.current === response.request) {\r\n            setSearchInProgress(false);\r\n        }\r\n    };\r\n\r\n    const handleSaveRecentSearch = item => {\r\n        const storeUrl = SEARCH_HISTORY_STORE_URL;\r\n        const token = document.getElementById('forgery_protection_token').content;\r\n        navigator.sendBeacon(storeUrl, toFormData({ ...item, forgery_protection_token: token }));\r\n        flushRecentSearchCache();\r\n    };\r\n\r\n    const flushRecentSearchCache = () => {\r\n        const { cache } = apolloClient;\r\n        cache.evict({\r\n            id: cache.identify({ __typename: 'Query' }),\r\n            fieldName: 'recentSearch',\r\n        });\r\n        setHistory(null);\r\n    };\r\n\r\n    const renderSearchItems = (items, uatKey) => items.map(({ details, target, icon, link, title, label }, index) => {\r\n        const iconUrl = (\r\n            !icon ||\r\n                icon.startsWith(Jsw.skinUrl) ||\r\n                icon.startsWith('http://') ||\r\n                icon.startsWith('https://') ||\r\n                icon.startsWith('/modules/')\r\n        ) ? icon : `${Jsw.skinUrl}${icon}`;\r\n\r\n        return (\r\n            <MenuItem\r\n                data-action={uatKey}\r\n                component={Link}\r\n                // eslint-disable-next-line react/no-array-index-key\r\n                key={index}\r\n                to={link}\r\n                title={details}\r\n                target={target}\r\n                label={label}\r\n                active={selectedItem === index}\r\n                icon={iconUrl ? <Icon className=\"main-header-search-result__icon\" src={iconUrl} /> : null}\r\n                className={MENU_ITEM_CLASSNAME}\r\n                onClick={e => {\r\n                    e.stopPropagation();\r\n                    handleSaveRecentSearch({ details, target, icon, link, title });\r\n                }}\r\n            >\r\n                {title}\r\n            </MenuItem>\r\n        );\r\n    });\r\n\r\n    const renderSearchResults = results => [\r\n        results.records.length ? renderSearchItems(results.records, 'searchResultRegular') : (\r\n            <div className=\"main-header-search-result__note main-header-search-result__note--empty\">\r\n                <Translate content=\"nothingFound\" />\r\n            </div>\r\n        ),\r\n        results.meta.moreResultsFound ? (\r\n            <>\r\n                <MenuDivider />\r\n                <div className=\"main-header-search-result__note\">\r\n                    <Translate content=\"moreResultsFound\" params={{ limit: config?.search?.limit }} />\r\n                </div>\r\n            </>\r\n        ) : null,\r\n    ];\r\n\r\n    const renderHistory = history => history?.length ? [\r\n        <Fragment key=\"history\">\r\n            <MenuHeader>\r\n                <Translate content=\"recentSearch\" />\r\n            </MenuHeader>\r\n        </Fragment>,\r\n        renderSearchItems(history.map(item => ({\r\n            ...item,\r\n            label: (\r\n                <Button\r\n                    className=\"main-header-search-result__item-remove\"\r\n                    ghost\r\n                    icon=\"cross-mark\"\r\n                    tooltip={<Translate content=\"removeFromRecent\" />}\r\n                    onClick={e => {\r\n                        e.stopPropagation();\r\n                        e.preventDefault();\r\n                        searchTermRef.current.focus();\r\n                        deleteRecentSearchResult({ variables: { input: { link: item.link } } });\r\n                    }}\r\n                />\r\n            ),\r\n        })), 'searchResultRecent'),\r\n    ] : (\r\n        <div className=\"main-header-search-result__note\">\r\n            <Status intent=\"info\">\r\n                <Hint><Translate content=\"recentSearchHint\" /></Hint>\r\n            </Status>\r\n        </div>\r\n    );\r\n\r\n    const renderResults = () => {\r\n        if (!isSearchFocused || (isSearchFocused && !((history) || results))) {\r\n            return null;\r\n        }\r\n\r\n        return (\r\n            <Menu\r\n                id=\"searchResultsBlock\"\r\n                className=\"main-header-search-result\"\r\n                ref={menuRef}\r\n            >\r\n                {results ? renderSearchResults(results) : null}\r\n                {results?.records.length === 0 ? (\r\n                    <MenuDivider />\r\n                ) : null}\r\n                {(!results || results?.records.length === 0) ? renderHistory(history) : null}\r\n            </Menu>\r\n        );\r\n    };\r\n\r\n    const resetSearch = ({ resetValue = true } = {}) => {\r\n        if (resetValue) {\r\n            searchTermRef.current.value = '';\r\n        }\r\n\r\n        setSelectedItem(null);\r\n        setResults(null);\r\n\r\n        abortPreviousSearch();\r\n        onSearchComplete();\r\n    };\r\n\r\n    const onArrowKeyPressed = key => {\r\n        const records = results && results.records.length ? results.records : history;\r\n        if (!records?.length) {\r\n            return;\r\n        }\r\n\r\n        if (selectedItem === null) {\r\n            setSelectedItem(0);\r\n            return;\r\n        }\r\n\r\n        if (keyCode.DOWN_ARROW === key && selectedItem < records.length - 1) {\r\n            setSelectedItem(selectedItem + 1);\r\n        }\r\n\r\n        if (keyCode.UP_ARROW === key && selectedItem > 0) {\r\n            setSelectedItem(selectedItem - 1);\r\n        }\r\n    };\r\n\r\n    const findTerm = () => {\r\n        const term = searchTermRef.current.value.trim();\r\n\r\n        if (lastTermRef.current === term || term.length < 3) {\r\n            onSearchComplete();\r\n            return;\r\n        }\r\n        lastTermRef.current = term;\r\n\r\n        pendingRequest.current = new Ajax.Request(\r\n            url,\r\n            {\r\n                method: 'get',\r\n                parameters: { term: searchTermRef.current.value.trim() },\r\n                onSuccess: onSearchSuccess,\r\n                onFailure: onSearchFailure,\r\n                onComplete: onSearchComplete,\r\n            },\r\n        );\r\n    };\r\n\r\n    const onDocumentTouchStart = useCallback(() => {\r\n        touchMoved.current = false;\r\n    }, [touchMoved]);\r\n    const onDocumentTouchMove = useCallback(() => {\r\n        touchMoved.current = true;\r\n    }, [touchMoved]);\r\n    const onDocumentTouchEnd = useCallback(() => {\r\n        if (touchMoved.current) {\r\n            return;\r\n        }\r\n\r\n        searchTermRef.current.blur();\r\n\r\n        removeTouchEventListeners({ onDocumentTouchStart, onDocumentTouchMove, onDocumentTouchEnd });\r\n    }, [touchMoved, searchTermRef, onDocumentTouchStart, onDocumentTouchMove]);\r\n\r\n    const searchPlaceholder = useMemo(() => {\r\n        if (isSearchFocused) {\r\n            if (isAdmin) {\r\n                return Locale.getSection('components.search-bar').lmsg('fieldStubHint');\r\n            }\r\n            return null;\r\n        }\r\n        return Locale.getSection('components.search-bar').lmsg('fieldStub');\r\n    }, [isAdmin, isSearchFocused]);\r\n\r\n    useEffect(() => () => {\r\n        if (resetTimeout.current) {\r\n            clearTimeout(resetTimeout.current);\r\n        }\r\n\r\n        removeTouchEventListeners({ onDocumentTouchStart, onDocumentTouchMove, onDocumentTouchEnd });\r\n    }, [onDocumentTouchEnd, onDocumentTouchMove, onDocumentTouchStart]);\r\n\r\n    return (\r\n        <div\r\n            className=\"main-header-search\"\r\n            onTouchEnd={e => e.stopPropagation()}\r\n        >\r\n            <div className={classNames('main-header-search__group', isSearchFocused && 'search-focused')}>\r\n                <Input\r\n                    innerRef={searchTermRef}\r\n                    id=\"searchTerm\"\r\n                    type=\"text\"\r\n                    className=\"main-header-search__control\"\r\n                    autoComplete=\"off\"\r\n                    placeholder={searchPlaceholder}\r\n                    onPaste={handlePaste}\r\n                    onKeyUp={handleKeyUp}\r\n                    onKeyDown={handleKeyDown}\r\n                    onFocus={handleFocus}\r\n                    onBlur={handleBlur}\r\n                    prefix={searchInProgress ? (\r\n                        <span className=\"main-header-search__loader\" />\r\n                    ) : <Icon name=\"search\" />}\r\n                    suffix={(\r\n                        <Icon\r\n                            name=\"cross-mark\"\r\n                            onClick={e => e.stopPropagation()}\r\n                        />\r\n                    )}\r\n                    size=\"fill\"\r\n                />\r\n                {renderResults()}\r\n            </div>\r\n        </div>\r\n    );\r\n};\r\n\r\n\r\nMainHeaderSearch.propTypes = {\r\n    url: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default MainHeaderSearch;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nexport const toFormData = values => {\r\n    if (values instanceof FormData) {\r\n        return values;\r\n    }\r\n    const consume = (object, namespace) => {\r\n        Object.keys(object).forEach(k => {\r\n            const name = namespace ? `${namespace}[${k}]` : k;\r\n            const value = object[k];\r\n            switch (true) {\r\n                case value && typeof value === 'object':\r\n                    consume(value, name);\r\n                    break;\r\n\r\n                case value == null:\r\n                    data.append(name, '');\r\n                    break;\r\n\r\n                default:\r\n                    data.append(name, value);\r\n                    break;\r\n            }\r\n        });\r\n    };\r\n    const data = new FormData();\r\n    consume(values);\r\n    return data;\r\n};\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"MainHeaderSearch\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"config\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"limit\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":148}};\n    doc.loc.source = {\"body\":\"query MainHeaderSearch {\\r\\n    viewer {\\r\\n        login\\r\\n        type\\r\\n    }\\r\\n    config {\\r\\n        search {\\r\\n            limit\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"MainHeaderSearch\"] = oneQuery(doc, \"MainHeaderSearch\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"RecentSearchQuery\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"recentSearch\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"link\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"details\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"icon\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"target\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":132}};\n    doc.loc.source = {\"body\":\"query RecentSearchQuery{\\r\\n    recentSearch {\\r\\n        title\\r\\n        link\\r\\n        details\\r\\n        icon\\r\\n        target\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"RecentSearchQuery\"] = oneQuery(doc, \"RecentSearchQuery\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"DeleteRecentSearchResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"DeleteRecentSearchResultInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"deleteRecentSearchResult\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"query\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"recentSearch\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"link\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"details\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"icon\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"target\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":321}};\n    doc.loc.source = {\"body\":\"mutation DeleteRecentSearchResult($input: DeleteRecentSearchResultInput!) {\\r\\n    deleteRecentSearchResult(input: $input) {\\r\\n        query {\\r\\n            recentSearch {\\r\\n                title\\r\\n                link\\r\\n                details\\r\\n                icon\\r\\n                target\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"DeleteRecentSearchResult\"] = oneQuery(doc, \"DeleteRecentSearchResult\");\n        \r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Tooltip, Locale, Cookie } from 'jsw';\r\nimport { useEffect, useState } from 'react';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { Dropdown, Menu, MenuItem, Button, Icon, isRtl, Text } from '@plesk/ui-library';\r\nimport { useQuery } from '@apollo/client';\r\nimport { useMediaQuery } from 'common/hooks';\r\nimport SubscriptionSwitcher from './SubscriptionSwitcher';\r\nimport NotificationCenter from './NotificationCenter';\r\nimport HelpMenu from './HelpMenu';\r\n\r\nimport ACCOUNT_MENU_QUERY from 'queries/AccountMenu.graphql';\r\nimport MAIN_HEADER_NAVBAR_QUERY from 'queries/MainHeaderNavbar.graphql';\r\n\r\nconst Translate = Locale.getTranslate('components.shortcuts');\r\n// eslint-disable-next-line max-len\r\nconst IconSun = <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\"><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M7 .5a.5.5 0 0 1 1 0v1a.5.5 0 0 1-1 0v-1Zm0 13a.5.5 0 0 1 1 0v1a.5.5 0 0 1-1 0v-1Zm-7-6c0 .28.22.5.5.5h1a.5.5 0 0 0 0-1h-1a.5.5 0 0 0-.5.5Zm13.5.5a.5.5 0 0 1 0-1h1a.5.5 0 0 1 0 1h-1ZM2.2 2.2a.5.5 0 0 0 0 .7l.7.71a.5.5 0 0 0 .71-.7l-.7-.71a.5.5 0 0 0-.71 0Zm9.19 9.9a.5.5 0 1 1 .7-.71l.71.7a.5.5 0 0 1-.7.71l-.71-.7Zm-9.2.7c.2.2.52.2.71 0l.71-.7a.5.5 0 1 0-.7-.71l-.71.7a.5.5 0 0 0 0 .71Zm9.9-9.19a.5.5 0 0 1-.7-.7l.7-.71a.5.5 0 1 1 .71.7l-.7.71ZM12 7.5a4.5 4.5 0 1 1-9 0 4.5 4.5 0 0 1 9 0Zm-1 0a3.5 3.5 0 1 1-7 0 3.5 3.5 0 0 1 7 0Z\" clipRule=\"evenodd\" /></svg>;\r\n// eslint-disable-next-line max-len\r\nconst IconMoon = <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\"><mask id=\"a\" fill=\"#fff\"><path fillRule=\"evenodd\" d=\"M5 13A7 7 0 0 0 8.78.1a7.5 7.5 0 1 1-7.2 12.01C2.6 12.68 3.77 13 5 13Z\" clipRule=\"evenodd\" /></mask><path fill=\"currentColor\" d=\"m8.78.1.17-.98-.7 1.83.53-.84Zm-7.2 12.01.5-.87L.8 12.73l.79-.62ZM11 6a6 6 0 0 1-6 6v2a8 8 0 0 0 8-8h-2ZM8.24.95A6 6 0 0 1 11 6h2A8 8 0 0 0 9.32-.73L8.24.95Zm.37.14A6.5 6.5 0 0 1 14 7.5h2A8.5 8.5 0 0 0 8.95-.88L8.61 1.1ZM14 7.5A6.5 6.5 0 0 1 7.5 14v2c4.7 0 8.5-3.8 8.5-8.5h-2ZM7.5 14a6.49 6.49 0 0 1-5.13-2.5L.8 12.73A8.49 8.49 0 0 0 7.5 16v-2ZM5 12a5.97 5.97 0 0 1-2.93-.76l-.97 1.74A7.97 7.97 0 0 0 5 14v-2Z\" mask=\"url(#a)\" /></svg>;\r\n\r\nconst AccountMenu = ({ items }) => {\r\n    const isHideText = useMediaQuery('(max-width: 767px)');\r\n    const { data: { viewer: user } = {} } = useQuery(ACCOUNT_MENU_QUERY);\r\n\r\n    if (!user) {\r\n        return null;\r\n    }\r\n\r\n    return (\r\n        <Dropdown\r\n            menu={(\r\n                <Menu>\r\n                    {items.map(({ title, href, icon, dataType }) => (\r\n                        <MenuItem\r\n                            key={href}\r\n                            component=\"a\"\r\n                            icon={icon}\r\n                            href={href}\r\n                            data-type={dataType}\r\n                        >\r\n                            {title}\r\n                        </MenuItem>\r\n                    ))}\r\n                </Menu>\r\n            )}\r\n            menuPlacement=\"bottom-end\"\r\n        >\r\n            <Button id=\"account-menu\" icon=\"user\" tooltip={<Translate content=\"loggedInAs\" />} ghost caret={!isHideText}>\r\n                {isHideText ? null : <Text truncate>{user.pname || user.login}</Text>}\r\n            </Button>\r\n        </Dropdown>\r\n    );\r\n};\r\n\r\nAccountMenu.propTypes = {\r\n    items: PropTypes.array.isRequired,\r\n};\r\n\r\nconst renderTooltips = () => {\r\n    document.querySelectorAll('.main-header-navbar-nav__item').forEach(item => {\r\n        if (item.dataset.description) {\r\n            Tooltip.init(item, {\r\n                text: item.dataset.description,\r\n            });\r\n        }\r\n    });\r\n};\r\n\r\nconst MainHeaderNavbar = ({\r\n    backToAdminLink,\r\n    returnUrl,\r\n    accountMenu,\r\n    subscriptionSwitcher,\r\n    headerCustomButtons,\r\n    helpMenu,\r\n}) => {\r\n    const isHideBackToAdminText = useMediaQuery('(max-width: 1310px)');\r\n    const isHideLogo = useMediaQuery('(max-width: 1140px)');\r\n    const { data: { viewer: user, config } = {} } = useQuery(MAIN_HEADER_NAVBAR_QUERY);\r\n    const [theme, setTheme] = useState(() => Cookie.get('theme') ?? config?.branding?.theme);\r\n\r\n    const handleToggleTheme = () => {\r\n        const newTheme = theme === 'dark' ? 'default' : 'dark';\r\n        document.documentElement.setAttribute('data-theme', newTheme);\r\n        Cookie.setPermanent('theme', newTheme, '/');\r\n        setTheme(newTheme);\r\n    };\r\n\r\n    useEffect(() => {\r\n        renderTooltips();\r\n        // eslint-disable-next-line react-hooks/exhaustive-deps\r\n    }, []);\r\n\r\n    return (\r\n        <div className=\"main-header-navbar\">\r\n            <ul className=\"main-header-navbar-nav\">\r\n                {backToAdminLink ? (\r\n                    <li className=\"top-back\">\r\n                        <Button\r\n                            component=\"a\"\r\n                            icon={<Icon name=\"chevron-left\" flipHorizontal={isRtl()} />}\r\n                            href={backToAdminLink}\r\n                            ghost\r\n                        >\r\n                            {isHideBackToAdminText ? null : <Translate content=\"backToAdmin\" />}\r\n                        </Button>\r\n                    </li>\r\n                ) : null}\r\n                {accountMenu ? (\r\n                    <li className=\"top-user\">\r\n                        <AccountMenu {...accountMenu} />\r\n                    </li>\r\n                ) : null}\r\n                {accountMenu && subscriptionSwitcher ? (\r\n                    <li className=\"top-webspace\">\r\n                        <SubscriptionSwitcher\r\n                            returnUrl={returnUrl}\r\n                            {...subscriptionSwitcher}\r\n                        />\r\n                    </li>\r\n                ) : null}\r\n                {user?.type === 'ADMIN' && config?.notification?.panel?.enabled ? (\r\n                    <li className=\"top-notification-center\">\r\n                        <NotificationCenter />\r\n                    </li>\r\n                ) : null}\r\n                {headerCustomButtons.map(({ id, link, target, icon, title, description }) => (\r\n                    <li\r\n                        key={id}\r\n                        id={`extNavHeader-${id}`}\r\n                        className={classNames('main-header-navbar-nav__item', `main-header-navbar-nav__item--${id}`)}\r\n                        data-description={description}\r\n                    >\r\n                        <Button\r\n                            component=\"a\"\r\n                            href={link}\r\n                            target={target}\r\n                            rel={target ? 'noopener noreferrer' : null}\r\n                            icon={<Icon src={id === 'advisor-1' ? require('icons/16/plesk/top-advisor.svg') : icon} alt={title} />}\r\n                            ghost\r\n                        />\r\n                    </li>\r\n                ))}\r\n                {helpMenu ? (\r\n                    <li className=\"top-help\">\r\n                        <HelpMenu {...helpMenu} />\r\n                    </li>\r\n                ) : null}\r\n                <li className=\"top-theme-switcher\">\r\n                    <Button\r\n                        className=\"theme-switcher\"\r\n                        ghost\r\n                        icon={theme === 'dark' ? <Icon>{IconSun}</Icon> : <Icon>{IconMoon}</Icon>}\r\n                        onClick={handleToggleTheme}\r\n                        tooltip={theme === 'dark' ? <Translate content=\"darkThemeOff\" /> : <Translate content=\"darkThemeOn\" />}\r\n                        data-type={theme === 'dark' ? 'dark-mode-on' : 'dark-mode-off'}\r\n                    />\r\n                </li>\r\n                {user.logo.isCustom && !isHideLogo ? (\r\n                    <li className=\"top-logo\">\r\n                        <a href=\"http://www.plesk.com\" target=\"_blank\" rel=\"noopener noreferrer\">\r\n                            <img src={require('images/logos/powered-logo.png')} alt=\"\" />\r\n                        </a>\r\n                    </li>\r\n                ) : null}\r\n            </ul>\r\n        </div>\r\n    );\r\n};\r\n\r\nMainHeaderNavbar.propTypes = {\r\n    backToAdminLink: PropTypes.string,\r\n    returnUrl: PropTypes.string,\r\n    accountMenu: PropTypes.shape(AccountMenu.propTypes),\r\n    subscriptionSwitcher: PropTypes.shape(SubscriptionSwitcher.propTypes),\r\n    headerCustomButtons: PropTypes.arrayOf(PropTypes.shape({\r\n        id: PropTypes.string,\r\n        link: PropTypes.string,\r\n        target: PropTypes.string,\r\n        icon: PropTypes.string,\r\n        title: PropTypes.string,\r\n        description: PropTypes.string,\r\n    })).isRequired,\r\n    helpMenu: PropTypes.shape(HelpMenu.propTypes),\r\n};\r\n\r\nMainHeaderNavbar.defaultProps = {\r\n    backToAdminLink: undefined,\r\n    returnUrl: undefined,\r\n    accountMenu: undefined,\r\n    subscriptionSwitcher: undefined,\r\n    helpMenu: undefined,\r\n};\r\n\r\nexport default MainHeaderNavbar;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { Dropdown, Menu, MenuItem, Button, Text } from '@plesk/ui-library';\r\nimport { Locale } from 'jsw';\r\nimport { useMediaQuery } from 'common/hooks';\r\nimport Link from 'components/common/Link';\r\n\r\nconst Translate = Locale.getTranslate('components.subscription-switcher');\r\n\r\nconst changeIdRe = new RegExp(`(${[\r\n    encodeURIComponent('/domain@'),\r\n    '/domainId/',\r\n    '/domains/',\r\n    '/web/[a-z\\-]+/id/(?:d:)?',\r\n    '/ssl-certificate/list/id/',\r\n    '/log-file/browser/id/',\r\n    '/dns-zone/records-list/id/',\r\n    '/mail-settings/edit/id/',\r\n    '/failed-request/list/id/',\r\n    '/asp-dot-net/settings/id/',\r\n    '/iis-app-pool/settings/id/',\r\n].join('|')})(\\\\d+)`);\r\n\r\nconst SubscriptionSwitcher = ({ subscriptions, limit, returnUrl, ...props }) => {\r\n    const location = useLocation();\r\n    const isHideText = useMediaQuery('(max-width: 767px)');\r\n    const [showAll, setShowAll] = useState(props.showAll);\r\n    const [currentSubscriptionId, setCurrentSubscriptionId] = useState(props.currentSubscriptionId);\r\n\r\n    useEffect(() => {\r\n        setShowAll(props.showAll);\r\n        setCurrentSubscriptionId(props.currentSubscriptionId);\r\n    }, [props.showAll, props.currentSubscriptionId]);\r\n\r\n    const title = showAll\r\n        ? <Translate content=\"allSubscriptions\" />\r\n        : subscriptions.find(({ id }) => id === currentSubscriptionId)?.name;\r\n\r\n    const button = (\r\n        <Button\r\n            data-type=\"subscription-switcher\"\r\n            data-state={showAll ? 'all-subscriptions' : 'single-subscription'}\r\n            icon=\"globe\"\r\n            tooltip={<Translate content=\"subscription\" />}\r\n            caret={subscriptions.length > 1 && !isHideText}\r\n            tabIndex={subscriptions.length > 1 ? null : -1}\r\n            style={subscriptions.length > 1 ? null : { pointerEvents: 'none' }}\r\n            ghost\r\n        >\r\n            {isHideText ? null : <Text truncate>{title}</Text>}\r\n        </Button>\r\n    );\r\n\r\n    if (subscriptions.length === 1) {\r\n        return button;\r\n    }\r\n\r\n    return (\r\n        <Dropdown\r\n            data-type=\"subscription-switcher-dropdown\"\r\n            menu={(\r\n                <Menu\r\n                    data-type=\"subscription-switcher-menu\"\r\n                    className=\"page-header-subscription-switcher-menu\"\r\n                >\r\n                    {subscriptions.length > 1 ? (\r\n                        <MenuItem\r\n                            component={Link}\r\n                            to={subscriptions.length > limit ? null : '/smb/account/switch/all/true'}\r\n                            onClick={subscriptions.length > limit ? null : () => {\r\n                                setShowAll(true);\r\n                            }}\r\n                            disabled={subscriptions.length > limit}\r\n                            tooltip={subscriptions.length > limit ? (\r\n                                <Translate\r\n                                    content=\"allSubscriptionsLimitOverusedDescription\"\r\n                                    params={{\r\n                                        value: subscriptions.length,\r\n                                        limit,\r\n                                    }}\r\n                                />\r\n                            ) : null}\r\n                        >\r\n                            <Translate content=\"allSubscriptions\" />\r\n                        </MenuItem>\r\n                    ) : null}\r\n                    {subscriptions.map(({ id, name }) => (\r\n                        <MenuItem\r\n                            key={id}\r\n                            component={Link}\r\n                            to={`/smb/account/switch/all/false/id/${id}?returnUrl=${encodeURIComponent((returnUrl || location.pathname).replace(changeIdRe, `$1${id}`))}`}\r\n                            onClick={() => {\r\n                                setShowAll(false);\r\n                                setCurrentSubscriptionId(id);\r\n                            }}\r\n                        >\r\n                            {name}\r\n                        </MenuItem>\r\n                    ))}\r\n                </Menu>\r\n            )}\r\n            menuPlacement=\"bottom-end\"\r\n        >\r\n            {button}\r\n        </Dropdown>\r\n    );\r\n};\r\n\r\nSubscriptionSwitcher.propTypes = {\r\n    subscriptions: PropTypes.arrayOf(PropTypes.shape({\r\n        id: PropTypes.number.isRequired,\r\n        name: PropTypes.string.isRequired,\r\n    })).isRequired,\r\n    limit: PropTypes.number,\r\n    showAll: PropTypes.bool,\r\n    currentSubscriptionId: PropTypes.number,\r\n    returnUrl: PropTypes.string,\r\n};\r\n\r\nSubscriptionSwitcher.defaultProps = {\r\n    limit: 100,\r\n    showAll: false,\r\n    currentSubscriptionId: undefined,\r\n    returnUrl: undefined,\r\n};\r\n\r\nexport default SubscriptionSwitcher;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useState, useEffect, useRef } from 'react';\r\nimport { pleskWS, UAT, Locale } from 'jsw';\r\nimport { Badge, Button, Popover, Heading, Columns, Column, Label, Action, Link, Icon } from '@plesk/ui-library';\r\nimport { useQuery } from '@apollo/client';\r\nimport { useModal } from 'hooks';\r\nimport applyFilter from './lib/applyFilter';\r\nimport { deleteNotification, listNotifications, updateNotifications } from './lib/api';\r\nimport NotificationCenterView from './NotificationCenterView';\r\nimport NotificationCenterList from './NotificationCenterList';\r\nimport { NOTIFICATION_CATEGORIES } from './lib/PropTypes';\r\nimport getIntentByNotification from './lib/getIntentByNotification';\r\nimport getMostIntentByNotifications from './lib/getMostIntentByNotifications';\r\nimport NotificationToast from './NotificationToast';\r\nimport { isNotificationCritical, isAllowedFeedbackOrPromotionNotification } from './lib/utils';\r\nimport NotificationActions from './NotificationActions';\r\nimport NotificationDate from './NotificationDate';\r\nimport { addToast, removeToast } from 'helpers/toasts';\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\nimport NOTIFICATION_CENTER_QUERY from 'queries/NotificationCenter.graphql';\r\n\r\nconst MAX_SHOW = 3;\r\nconst RELOAD_TIMEOUT = 30000;\r\n\r\nconst Translate = Locale.getTranslate('components.notification-center');\r\n\r\nconst NotificationCenter = () => {\r\n    const [isListOpen, setIsListOpen] = useModal('notification-center-list');\r\n    const [selectedNotificationId, setSelectedNotificationId] = useModal('notification-center-view');\r\n    const [notifications, setNotifications] = useState([]);\r\n    const [filter, setFilter] = useState({});\r\n    const {\r\n        data: {\r\n            config,\r\n            viewer: {\r\n                type: viewerType,\r\n                permissions: { manageServerNotifications },\r\n            },\r\n        },\r\n    } = useQuery(NOTIFICATION_CENTER_QUERY);\r\n    const toastsRef = useRef([]);\r\n    const navigate = useNavigate();\r\n\r\n    let ws;\r\n    let reloadTimeout;\r\n\r\n    useEffect(() => {\r\n        initFilter();\r\n        if (config.webSocket.enabled) {\r\n            initWebSocket();\r\n        } else {\r\n            loadNotifications();\r\n        }\r\n\r\n        return () => {\r\n            if (reloadTimeout) {\r\n                clearTimeout(reloadTimeout);\r\n            }\r\n            if (ws) {\r\n                ws.close();\r\n            }\r\n        };\r\n        // eslint-disable-next-line react-hooks/exhaustive-deps\r\n    }, []);\r\n\r\n    const initFilter = () => {\r\n        const filter = JSON.parse(window.localStorage.getItem('notification-center-filter')) || {};\r\n        setFilter(filter);\r\n    };\r\n\r\n    const handleNewNotificationRef = useRef();\r\n    useEffect(() => {\r\n        handleNewNotificationRef.current = newNotification => {\r\n            setNotifications([newNotification, ...notifications]);\r\n        };\r\n    }, [notifications]);\r\n\r\n    useEffect(() => {\r\n        const allToasts = notifications\r\n            .filter(notification => !notification.isViewed && (\r\n                isNotificationCritical(notification) || isAllowedFeedbackOrPromotionNotification(notification)),\r\n            )\r\n            .map(notification => {\r\n                const key = `notification-${notification.id}`;\r\n\r\n                return {\r\n                    'data-type': 'notification-toast',\r\n                    key,\r\n                    intent: getIntentByNotification(notification),\r\n                    accent: isAllowedFeedbackOrPromotionNotification(notification),\r\n                    icon: notification.contextIconUrl ? <Icon src={notification.contextIconUrl} size=\"64\" /> : undefined,\r\n                    message: (\r\n                        <NotificationToast\r\n                            notification={notification}\r\n                            onSelectNotification={() => {\r\n                                if (isListOpen === null) {\r\n                                    handleOpenNotificationCenter();\r\n                                }\r\n                                handleSelectNotification({\r\n                                    notification,\r\n                                    uatAdditionalData: {\r\n                                        parents: ['notification-toast', 'toaster'],\r\n                                    },\r\n                                });\r\n                                removeToast({ key });\r\n                            }}\r\n                        />\r\n                    ),\r\n                    autoClosable: notification.category !== NOTIFICATION_CATEGORIES.ALERT && !isAllowedFeedbackOrPromotionNotification(notification),\r\n                    onClose: () => {\r\n                        UAT.dispatchAction('NOTIFICATION_TOAST_HIDE', {\r\n                            type: notification.code,\r\n                            messageKey: notification.messageKey,\r\n                        });\r\n                        handleUpdateNotifications([notification.id], { isViewed: true });\r\n                    },\r\n                };\r\n            });\r\n\r\n        const toasts = allToasts.length <= MAX_SHOW\r\n            ? allToasts\r\n            : [\r\n                ...allToasts.slice(0, MAX_SHOW),\r\n                {\r\n                    key: 'notification-all',\r\n                    message: (\r\n                        <div className=\"notification-center-toast__content\">\r\n                            <Icon className=\"notification-center-toast__content-icon\" name=\"list\" />\r\n                            <Link\r\n                                onClick={() => {\r\n                                    handleOpenNotificationCenter();\r\n                                    UAT.dispatchAction('NOTIFICATION_GROUP_TOAST_SHOW_ALL');\r\n                                }}\r\n                            >\r\n                                <Translate\r\n                                    content=\"moreToasts\"\r\n                                    params={{\r\n                                        total: allToasts.length - 3,\r\n                                    }}\r\n                                />\r\n                            </Link>\r\n                        </div>\r\n                    ),\r\n                    autoClosable: false,\r\n                    onClose: () => {\r\n                        UAT.dispatchAction('NOTIFICATION_GROUP_TOAST_HIDE');\r\n                        handleMarkAllAsViewed();\r\n                    },\r\n                },\r\n            ];\r\n\r\n        if (JSON.stringify(toastsRef.current) !== JSON.stringify(toasts)) {\r\n            toastsRef.current.forEach(removeToast);\r\n            toasts.forEach(addToast);\r\n            toastsRef.current = toasts;\r\n        }\r\n\r\n        // eslint-disable-next-line react-hooks/exhaustive-deps\r\n    }, [notifications]);\r\n\r\n    const initWebSocket = () => {\r\n        ws = pleskWS.bind({\r\n            actions: {\r\n                // eslint-disable-next-line camelcase\r\n                panel_notification_created: newNotification => {\r\n                    handleNewNotificationRef.current(newNotification);\r\n                },\r\n            },\r\n            onOpen: () => loadNotifications(),\r\n        });\r\n    };\r\n\r\n    const loadNotifications = (id = 0) => {\r\n        if (reloadTimeout) {\r\n            clearTimeout(reloadTimeout);\r\n        }\r\n        listNotifications(id)\r\n            .then(newNotifications => {\r\n                setNotifications([...newNotifications, ...notifications]);\r\n            })\r\n            .then(() => {\r\n                if (config.webSocket.enabled && ws.isReady()) {\r\n                    return;\r\n                }\r\n                reloadTimeout = window.setTimeout(\r\n                    () => loadNotifications(notifications.length ? notifications[0].id : 0),\r\n                    RELOAD_TIMEOUT,\r\n                );\r\n            })\r\n            .catch(() => {\r\n                reloadTimeout = window.setTimeout(\r\n                    () => loadNotifications(notifications.length ? notifications[0].id : 0),\r\n                    RELOAD_TIMEOUT,\r\n                );\r\n            });\r\n    };\r\n\r\n    const handleOpenSettings = () => {\r\n        handleCloseNotificationCenter();\r\n        navigate('/cp/notifications/panel-settings?context=tools');\r\n    };\r\n\r\n    const handleUpdateFilter = newFilter => {\r\n        window.localStorage.setItem('notification-center-filter', JSON.stringify(newFilter));\r\n        setFilter({ ...filter, ...newFilter });\r\n    };\r\n\r\n    const handleUpdateNotifications = (ids, change) => {\r\n        setNotifications(notifications.map(notification => {\r\n            if (ids.indexOf(notification.id) < 0) {\r\n                return notification;\r\n            }\r\n            return {\r\n                ...notification,\r\n                ...change,\r\n            };\r\n        }));\r\n\r\n        updateNotifications(ids, change);\r\n    };\r\n\r\n    const handleSelectNotification = ({ notification, uatAdditionalData }) => {\r\n        UAT.dispatchAction('NOTIFICATION_DETAILS', {\r\n            type: notification.code,\r\n            messageKey: notification.messageKey,\r\n            ...uatAdditionalData,\r\n        });\r\n        handleUpdateNotifications([notification.id], { isRead: true, isViewed: true });\r\n        setSelectedNotificationId(notification.id);\r\n    };\r\n\r\n    const handleMarkAllAsRead = () => {\r\n        const ids = notifications.filter(notification => !notification.isRead).map(notification => notification.id);\r\n        handleUpdateNotifications(ids, { isRead: true });\r\n    };\r\n\r\n    const handleMarkAllAsViewed = () => {\r\n        const ids = notifications.filter(notification => !notification.isViewed).map(notification => notification.id);\r\n        handleUpdateNotifications(ids, { isViewed: true });\r\n    };\r\n\r\n    const handleRemoveNotification = id => {\r\n        setNotifications(notifications.filter(notification => notification.id !== id));\r\n        if (selectedNotificationId === id) {\r\n            setSelectedNotificationId(null);\r\n        }\r\n\r\n        deleteNotification(id);\r\n    };\r\n\r\n    const handleOpenNotificationCenter = () => {\r\n        handleMarkAllAsViewed();\r\n        setIsListOpen(true);\r\n    };\r\n\r\n    const handleCloseNotificationCenter = () => {\r\n        setSelectedNotificationId(null);\r\n        setIsListOpen(null);\r\n    };\r\n\r\n    const handleCloseNotificationView = () => {\r\n        setSelectedNotificationId(null);\r\n    };\r\n\r\n    const unreadNotifications = applyFilter(notifications, { isUnRead: true });\r\n    const selectedNotification = notifications.find(({ id }) => id === Number(selectedNotificationId));\r\n\r\n    const button = (\r\n        <Badge\r\n            label={String(unreadNotifications.length)}\r\n            intent={getMostIntentByNotifications(unreadNotifications)}\r\n            hidden={unreadNotifications.length === 0}\r\n        >\r\n            <Button\r\n                icon=\"bell\"\r\n                onClick={isListOpen === null ? handleOpenNotificationCenter : handleCloseNotificationCenter}\r\n                ghost\r\n            />\r\n        </Badge>\r\n    );\r\n\r\n    return (\r\n        <Popover\r\n            target={button}\r\n            placement=\"bottom\"\r\n            visible={isListOpen !== null}\r\n            onClose={handleCloseNotificationCenter}\r\n            width=\"sm\"\r\n            height={600}\r\n            extra={selectedNotification ? (\r\n                <NotificationActions\r\n                    notification={selectedNotification}\r\n                    onUpdateNotifications={handleUpdateNotifications}\r\n                    onRemoveNotification={handleRemoveNotification}\r\n                />\r\n            ) : (viewerType === 'ADMIN' && manageServerNotifications ? (\r\n                <Action icon=\"gear\" onClick={handleOpenSettings}>\r\n                    <Translate content=\"settings\" />\r\n                </Action>)\r\n                : null\r\n            )}\r\n            title={selectedNotification ? (\r\n                <div className=\"notification-center-heading\">\r\n                    <div className=\"notification-center-heading__top\">\r\n                        <Button\r\n                            icon=\"arrow-left\"\r\n                            onClick={handleCloseNotificationView}\r\n                            data-action=\"NOTIFICATION_TO_LIST\"\r\n                            data-type={selectedNotification.code}\r\n                            ghost\r\n                            className=\"notification-center-heading__back-button\"\r\n                        />\r\n                        {' '}\r\n                        <Heading level={3}>{selectedNotification.subject}</Heading>\r\n                    </div>\r\n                    <Columns gap=\"md\" className=\"notification-center-heading__bottom\" vertical={false}>\r\n                        <Column>\r\n                            {isNotificationCritical(selectedNotification) ? (\r\n                                <Label intent={getIntentByNotification(selectedNotification)} className=\"notification-center-heading__label\">\r\n                                    <Translate content={`category${selectedNotification.category}`} />\r\n                                </Label>\r\n                            ) : null}\r\n                            {selectedNotification.context}\r\n                        </Column>\r\n                        <Column>\r\n                            <NotificationDate notification={selectedNotification} />\r\n                        </Column>\r\n                    </Columns>\r\n                </div>\r\n            ) : (\r\n                <Heading level={3}>\r\n                    <Translate content=\"title\" />\r\n                </Heading>\r\n            )}\r\n            data-type={selectedNotification ? 'notification-center-view' : 'notification-center-list'}\r\n            data-id={selectedNotification ? selectedNotification.id : null}\r\n        >\r\n            {selectedNotification ? (\r\n                <NotificationCenterView\r\n                    notification={selectedNotification}\r\n                />\r\n            ) : (\r\n                <NotificationCenterList\r\n                    notifications={notifications}\r\n                    filter={filter}\r\n                    onUpdateNotifications={handleUpdateNotifications}\r\n                    onUpdateFilter={handleUpdateFilter}\r\n                    onSelectNotification={({ notification }) => {\r\n                        handleSelectNotification({\r\n                            notification,\r\n                            uatAdditionalData: { parents: ['notification-center-list'] },\r\n                        });\r\n                    }}\r\n                    onRemoveNotification={handleRemoveNotification}\r\n                    onMarkAllAsRead={handleMarkAllAsRead}\r\n                />\r\n            )}\r\n        </Popover>\r\n    );\r\n};\r\n\r\nexport default NotificationCenter;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { isNotificationCritical } from './utils';\r\n\r\nexport default (notifications, filter) => notifications.filter(notification => (\r\n    (!filter.isUnRead || !notification.isRead) &&\r\n    (!filter.isFavorite || notification.isFavorite) &&\r\n    (!filter.isCritical || isNotificationCritical(notification)) &&\r\n    (\r\n        !filter.search ||\r\n        (notification.subject && notification.subject.toLowerCase().indexOf(filter.search.toLowerCase()) >= 0) ||\r\n        (notification.context && notification.context.toLowerCase().indexOf(filter.search.toLowerCase()) >= 0)\r\n    )\r\n));\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { NOTIFICATION_CATEGORIES } from './PropTypes';\r\n\r\nexport const isNotificationCritical = notification => [NOTIFICATION_CATEGORIES.ALERT, NOTIFICATION_CATEGORIES.WARNING].includes(notification.category);\r\n\r\nexport const isAllowedFeedbackOrPromotionNotification = notification => (\r\n    notification.isPromotion\r\n    && [NOTIFICATION_CATEGORIES.PROMOTION, NOTIFICATION_CATEGORIES.FEEDBACK].includes(notification.category)\r\n);\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nexport const CtaPropType = PropTypes.shape({\r\n    text: PropTypes.string.isRequired,\r\n    link: PropTypes.string.isRequired,\r\n});\r\n\r\nexport const NOTIFICATION_INTENTS = {\r\n    DANGER: 'danger',\r\n    WARNING: 'warning',\r\n    INFO: 'info',\r\n    INACTIVE: 'inactive',\r\n};\r\n\r\nexport const NOTIFICATION_CATEGORIES = {\r\n    INFORMATION: 'Information',\r\n    WARNING: 'Warning',\r\n    ALERT: 'Alert',\r\n    PROMOTION: 'Promotion',\r\n    FEEDBACK: 'Feedback',\r\n};\r\n\r\nexport const NotificationPropType = PropTypes.shape({\r\n    id: PropTypes.number.isRequired,\r\n    isRead: PropTypes.bool.isRequired,\r\n    isViewed: PropTypes.bool.isRequired,\r\n    isFavorite: PropTypes.bool.isRequired,\r\n    category: PropTypes.oneOf(Object.values(NOTIFICATION_CATEGORIES)).isRequired,\r\n    context: PropTypes.string.isRequired,\r\n    contextIconUrl: PropTypes.string,\r\n    area: PropTypes.string.isRequired,\r\n    createdAt: PropTypes.number.isRequired,\r\n    displayDate: PropTypes.string.isRequired,\r\n    subject: PropTypes.string.isRequired,\r\n    message: PropTypes.string.isRequired,\r\n    actionLink: PropTypes.string,\r\n    actionText: PropTypes.string,\r\n    openInNewTab: PropTypes.bool,\r\n    isPromotion: PropTypes.bool,\r\n});\r\n\r\nexport const NotificationFilterPropType = PropTypes.shape({\r\n    search: PropTypes.string,\r\n    isUnRead: PropTypes.bool,\r\n    isCritical: PropTypes.bool,\r\n    isFavorite: PropTypes.bool,\r\n});\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { api } from 'jsw';\r\n\r\nexport const listNotifications = id => api.get('/admin/notifications/list', { 'filter[older]': id });\r\n\r\nexport const updateNotifications = (ids, change) => api.post('/admin/notifications/update', { ids, ...change });\r\n\r\nexport const deleteNotification = id => api.post('/admin/notifications/delete', { id });\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Button } from '@plesk/ui-library';\r\nimport { NotificationPropType } from './lib/PropTypes';\r\nimport { UAT } from 'jsw';\r\n\r\nconst handleClickButton = (code, messageKey) => {\r\n    UAT.dispatchAction('NOTIFICATION_CTA', {\r\n        type: code,\r\n        messageKey,\r\n    });\r\n};\r\n\r\nconst NotificationCenterView = ({\r\n    notification: { code, message, actionLink, actionText, openInNewTab, messageKey },\r\n}) => (\r\n    <>\r\n        <div\r\n            // eslint-disable-next-line react/no-danger\r\n            dangerouslySetInnerHTML={{ __html: message }}\r\n        />\r\n        {actionLink ? (\r\n            <div className=\"notification-center-view__actions\">\r\n                <Button\r\n                    data-type={code}\r\n                    component=\"a\"\r\n                    intent=\"primary\"\r\n                    size=\"lg\"\r\n                    href={actionLink}\r\n                    target={openInNewTab ? '_blank' : null}\r\n                    rel={openInNewTab ? 'noopener noreferrer' : null}\r\n                    onClick={() => handleClickButton(code, messageKey)}\r\n                >\r\n                    {actionText}\r\n                </Button>\r\n            </div>\r\n        ) : null}\r\n    </>\r\n);\r\n\r\nNotificationCenterView.propTypes = {\r\n    notification: NotificationPropType.isRequired,\r\n};\r\n\r\nexport default NotificationCenterView;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport {\r\n    Button,\r\n    List,\r\n    ListEmptyView,\r\n    SearchBar,\r\n    Toolbar,\r\n    ToolbarExpander,\r\n    ToolbarGroup,\r\n} from '@plesk/ui-library';\r\nimport PropTypes from 'prop-types';\r\nimport { Locale } from 'jsw';\r\nimport applyFilter from '../lib/applyFilter';\r\nimport { NotificationFilterPropType, NotificationPropType } from '../lib/PropTypes';\r\nimport SubjectColumn from './SubjectColumn';\r\nimport DateColumn from './DateColumn';\r\nimport NotificationActions from '../NotificationActions';\r\nimport FilterMenu from './FilterMenu';\r\n\r\nconst Translate = Locale.getTranslate('components.notification-center');\r\n\r\nconst NotificationCenterList = ({\r\n    notifications,\r\n    filter,\r\n    onUpdateFilter,\r\n    onSelectNotification,\r\n    onUpdateNotifications,\r\n    onRemoveNotification,\r\n    onMarkAllAsRead,\r\n}) => {\r\n    const notificationsToDisplay = applyFilter(notifications, filter);\r\n    const filterCount = Object.values(filter).reduce((r, v) => r + (v ? 1 : 0), 0);\r\n    const columns = [\r\n        {\r\n            key: 'subject',\r\n            type: 'title',\r\n            // eslint-disable-next-line react/display-name,react/prop-types\r\n            render: notification => (\r\n                <SubjectColumn\r\n                    notification={notification}\r\n                    onSelectNotification={onSelectNotification}\r\n                    onUpdateNotifications={onUpdateNotifications}\r\n                />\r\n            ),\r\n        },\r\n        {\r\n            key: 'date',\r\n            // eslint-disable-next-line react/display-name,react/prop-types\r\n            render: notification => (\r\n                <DateColumn\r\n                    notification={notification}\r\n                    onSelectNotification={onSelectNotification}\r\n                />\r\n            ),\r\n            width: '10%',\r\n        },\r\n        {\r\n            key: 'actions',\r\n            type: 'actions',\r\n            width: '1%',\r\n            // eslint-disable-next-line react/display-name,react/prop-types\r\n            render: notification => (\r\n                <NotificationActions\r\n                    notification={notification}\r\n                    onUpdateNotifications={onUpdateNotifications}\r\n                    onRemoveNotification={onRemoveNotification}\r\n                />\r\n            ),\r\n        },\r\n    ];\r\n\r\n    const toolbar = (\r\n        <Toolbar>\r\n            <ToolbarGroup title=\"\">\r\n                <Button data-type=\"mark-all-as-read\" icon=\"mail\" onClick={onMarkAllAsRead}>\r\n                    <Translate content=\"markAllAsRead\" />\r\n                </Button>\r\n            </ToolbarGroup>\r\n            <ToolbarExpander />\r\n            <ToolbarGroup title=\"\">\r\n                <FilterMenu\r\n                    filter={filter}\r\n                    filterCount={filterCount}\r\n                    onUpdateFilter={onUpdateFilter}\r\n                />\r\n            </ToolbarGroup>\r\n            <ToolbarGroup title=\"\">\r\n                <SearchBar\r\n                    inputProps={{ placeholder: Locale.getSection('components.notification-center').lmsg('searchPlaceholder'), value: filter.search }}\r\n                    onTyping={value => onUpdateFilter({ search: value })}\r\n                    minWidth={200}\r\n                />\r\n            </ToolbarGroup>\r\n        </Toolbar>\r\n    );\r\n\r\n    return (\r\n        <List\r\n            rowKey=\"id\"\r\n            columns={columns}\r\n            data={notificationsToDisplay}\r\n            expandedRows={['subject']}\r\n            toolbar={toolbar}\r\n            emptyViewMode={filterCount ? 'items' : 'all'}\r\n            emptyView={filterCount ? (\r\n                <ListEmptyView\r\n                    reason=\"filtered\"\r\n                    title={<Translate content=\"listFilteredTitle\" />}\r\n                    description={<Translate content=\"listFilteredDescription\" />}\r\n                />\r\n            ) : (\r\n                <ListEmptyView\r\n                    title={<Translate content=\"listEmptyTitle\" />}\r\n                    image={require('images/notification-center-empty.svg')}\r\n                    description={<Translate content=\"listEmptyDescription\" />}\r\n                />\r\n            )}\r\n        />\r\n    );\r\n};\r\n\r\nNotificationCenterList.propTypes = {\r\n    notifications: PropTypes.arrayOf(NotificationPropType.isRequired).isRequired,\r\n    filter: NotificationFilterPropType,\r\n    onUpdateNotifications: PropTypes.func.isRequired,\r\n    onSelectNotification: PropTypes.func.isRequired,\r\n    onUpdateFilter: PropTypes.func.isRequired,\r\n    onRemoveNotification: PropTypes.func.isRequired,\r\n    onMarkAllAsRead: PropTypes.func.isRequired,\r\n};\r\n\r\nNotificationCenterList.defaultProps = {\r\n    filter: null,\r\n};\r\n\r\nexport default NotificationCenterList;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Text, Media, Status, Tooltip } from '@plesk/ui-library';\r\nimport PropTypes from 'prop-types';\r\nimport { Locale } from 'jsw';\r\nimport { NOTIFICATION_CATEGORIES, NotificationPropType } from '../lib/PropTypes';\r\n\r\nconst Translate = Locale.getTranslate('components.notification-center');\r\n\r\nconst getStatusIntent = ({ category, isRead }) => {\r\n    if (isRead) {\r\n        return 'inactive';\r\n    }\r\n\r\n    switch (category) {\r\n        case NOTIFICATION_CATEGORIES.ALERT:\r\n            return 'danger';\r\n        case NOTIFICATION_CATEGORIES.WARNING:\r\n            return 'warning';\r\n        case NOTIFICATION_CATEGORIES.INFORMATION:\r\n        case NOTIFICATION_CATEGORIES.FEEDBACK:\r\n        case NOTIFICATION_CATEGORIES.PROMOTION:\r\n            return 'info';\r\n    }\r\n\r\n    return 'inactive';\r\n};\r\n\r\nconst getSubjectIntent = ({ category }) => {\r\n    switch (category) {\r\n        case NOTIFICATION_CATEGORIES.ALERT:\r\n            return 'danger';\r\n        case NOTIFICATION_CATEGORIES.WARNING:\r\n            return 'warning';\r\n        case NOTIFICATION_CATEGORIES.PROMOTION:\r\n            return 'info';\r\n        case NOTIFICATION_CATEGORIES.INFORMATION:\r\n        case NOTIFICATION_CATEGORIES.FEEDBACK:\r\n            return 'inactive';\r\n    }\r\n    return 'inactive';\r\n};\r\n\r\nconst SubjectColumn = ({ notification, onSelectNotification, onUpdateNotifications }) => {\r\n    const { id, subject, context, isRead } = notification;\r\n\r\n    return (\r\n        <Media\r\n            image={(\r\n                <Tooltip title={<Translate content={isRead ? 'markAsUnread' : 'markAsRead'} />}>\r\n                    <Status\r\n                        intent={getStatusIntent(notification)}\r\n                        compact\r\n                        onClick={() => onUpdateNotifications([id], {\r\n                            isRead: !isRead,\r\n                        })}\r\n                        className=\"list-context-actions\"\r\n                        data-type={`notification-is-read-${isRead}`}\r\n                    />\r\n                </Tooltip>\r\n            )}\r\n        >\r\n            <div\r\n                onClick={() => onSelectNotification({ notification })}\r\n                className=\"list-context-actions\"\r\n            >\r\n                <Text\r\n                    intent={getSubjectIntent(notification)}\r\n                >\r\n                    {context}\r\n                </Text>\r\n                <br />\r\n                <Text\r\n                    intent={getSubjectIntent(notification)}\r\n                    bold={!isRead}\r\n                >\r\n                    {subject}\r\n                </Text>\r\n            </div>\r\n        </Media>\r\n    );\r\n};\r\n\r\nSubjectColumn.propTypes = {\r\n    notification: NotificationPropType.isRequired,\r\n    onSelectNotification: PropTypes.func.isRequired,\r\n    onUpdateNotifications: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default SubjectColumn;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { NotificationPropType } from '../lib/PropTypes';\r\nimport NotificationDate from '../NotificationDate';\r\n\r\nconst DateColumn = ({ notification, onSelectNotification }) => (\r\n    <NotificationDate\r\n        notification={notification}\r\n        className=\"list-context-actions\"\r\n        onClick={() => onSelectNotification({ notification })}\r\n    />\r\n);\r\n\r\nDateColumn.propTypes = {\r\n    notification: NotificationPropType.isRequired,\r\n    onSelectNotification: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default DateColumn;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Text } from '@plesk/ui-library';\r\nimport { Locale } from 'jsw';\r\nimport { NotificationPropType } from './lib/PropTypes';\r\n\r\nconst Translate = Locale.getTranslate('components.notification-center');\r\n\r\nconst NotificationDate = ({ notification, ...props }) => {\r\n    const { displayDate } = notification;\r\n    const today = new Date();\r\n    const date = new Date(displayDate);\r\n    const isToday =\r\n        date.getDate() === today.getDate() &&\r\n        date.getMonth() === today.getMonth() &&\r\n        date.getFullYear() === today.getFullYear();\r\n\r\n    return isToday ? (\r\n        <Translate\r\n            component={Text}\r\n            nowrap\r\n            content=\"timeFormat\"\r\n            params={{\r\n                hours: `0${date.getHours()}`.slice(-2),\r\n                minutes: `0${date.getMinutes()}`.slice(-2),\r\n            }}\r\n            {...props}\r\n        />\r\n    ) : (\r\n        <Translate\r\n            component={Text}\r\n            nowrap\r\n            content=\"dateFormat\"\r\n            params={{\r\n                day: date.getDate(),\r\n                month: (<Translate content={`month${date.getMonth()}`} />),\r\n            }}\r\n            {...props}\r\n        />\r\n    );\r\n};\r\n\r\nNotificationDate.propTypes = {\r\n    notification: NotificationPropType.isRequired,\r\n};\r\n\r\nexport default NotificationDate;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { ListActions, ListAction } from '@plesk/ui-library';\r\nimport { Locale } from 'jsw';\r\nimport { NotificationPropType } from './lib/PropTypes';\r\n\r\nconst Translate = Locale.getTranslate('components.notification-center');\r\n\r\nconst NotificationActions = ({ notification: { id, isFavorite, code }, onUpdateNotifications, onRemoveNotification }) => (\r\n    <ListActions>\r\n        <ListAction\r\n            data-action={isFavorite ? 'NOTIFICATION_UNFAVORITE' : 'NOTIFICATION_FAVORITE'}\r\n            data-type={code}\r\n            icon={isFavorite ? 'star-filled' : 'star'}\r\n            primary\r\n            onClick={() => onUpdateNotifications([id], {\r\n                isFavorite: !isFavorite,\r\n            })}\r\n        >\r\n            <Translate content={isFavorite ? 'unfavoriteNotification' : 'favoriteNotification'} />\r\n        </ListAction>\r\n        <ListAction\r\n            data-action=\"NOTIFICATION_DELETE\"\r\n            data-type={code}\r\n            icon=\"recycle\"\r\n            primary\r\n            onClick={() => onRemoveNotification(id)}\r\n        >\r\n\r\n            <Translate content=\"deleteNotification\" />\r\n        </ListAction>\r\n    </ListActions>\r\n);\r\n\r\nNotificationActions.propTypes = {\r\n    notification: NotificationPropType.isRequired,\r\n    onUpdateNotifications: PropTypes.func.isRequired,\r\n    onRemoveNotification: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default NotificationActions;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Badge, Button, Dropdown, Menu, MenuDivider, MenuItem } from '@plesk/ui-library';\r\nimport PropTypes from 'prop-types';\r\nimport { Locale } from 'jsw';\r\nimport { NotificationFilterPropType } from '../lib/PropTypes';\r\n\r\nconst Translate = Locale.getTranslate('components.notification-center');\r\n\r\nconst FilterMenu = ({ filter, filterCount, onUpdateFilter }) => {\r\n    const menu = (\r\n        <Menu>\r\n            <MenuItem\r\n                icon={filter && filter.isUnRead ? 'check-mark' : null}\r\n                onClick={() => onUpdateFilter({ isUnRead: !filter.isUnRead, isCritical: false, isFavorite: false })}\r\n            >\r\n                <Translate content=\"filterUnread\" />\r\n            </MenuItem>\r\n            <MenuItem\r\n                icon={filter && filter.isCritical ? 'check-mark' : null}\r\n                onClick={() => onUpdateFilter({ isUnRead: false, isCritical: !filter.isCritical, isFavorite: false })}\r\n            >\r\n                <Translate content=\"filterCritical\" />\r\n            </MenuItem>\r\n            <MenuItem\r\n                icon={filter && filter.isFavorite ? 'check-mark' : null}\r\n                onClick={() => onUpdateFilter({ isUnRead: false, isCritical: false, isFavorite: !filter.isFavorite })}\r\n            >\r\n                <Translate content=\"filterFavorite\" />\r\n            </MenuItem>\r\n            <MenuDivider />\r\n            <MenuItem\r\n                icon=\"remove\"\r\n                onClick={() => onUpdateFilter({\r\n                    search: '',\r\n                    isUnRead: false,\r\n                    isCritical: false,\r\n                    isFavorite: false,\r\n                })}\r\n            >\r\n                <Translate content=\"filterReset\" />\r\n            </MenuItem>\r\n        </Menu>\r\n    );\r\n\r\n    return (\r\n        <Badge\r\n            intent=\"info\"\r\n            hidden={filterCount === 0}\r\n        >\r\n            <Dropdown menu={menu}>\r\n                <Button icon=\"filter\">\r\n                    <Translate content=\"filterButton\" />\r\n                </Button>\r\n            </Dropdown>\r\n        </Badge>\r\n    );\r\n};\r\n\r\nFilterMenu.propTypes = {\r\n    filter: NotificationFilterPropType.isRequired,\r\n    filterCount: PropTypes.number.isRequired,\r\n    onUpdateFilter: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default FilterMenu;\r\n","module.exports = Jsw.skinUrl + \"/images/notification-center-empty.svg?f6f02fc885a503b392c5428b65337ef7\";","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { NOTIFICATION_CATEGORIES, NOTIFICATION_INTENTS } from './PropTypes';\r\n\r\nexport default notification => {\r\n    switch (notification.category) {\r\n        case NOTIFICATION_CATEGORIES.ALERT:\r\n            return NOTIFICATION_INTENTS.DANGER;\r\n        case NOTIFICATION_CATEGORIES.WARNING:\r\n            return NOTIFICATION_INTENTS.WARNING;\r\n        case NOTIFICATION_CATEGORIES.FEEDBACK:\r\n        case NOTIFICATION_CATEGORIES.PROMOTION:\r\n            return NOTIFICATION_INTENTS.INFO;\r\n    }\r\n\r\n    return NOTIFICATION_INTENTS.INACTIVE;\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { NOTIFICATION_INTENTS } from './PropTypes';\r\nimport getIntentByNotification from './getIntentByNotification';\r\n\r\nexport default notifications => {\r\n    const intents = notifications.map(getIntentByNotification);\r\n\r\n    switch (true) {\r\n        case intents.includes(NOTIFICATION_INTENTS.DANGER):\r\n            return NOTIFICATION_INTENTS.DANGER;\r\n        case intents.includes(NOTIFICATION_INTENTS.WARNING):\r\n            return NOTIFICATION_INTENTS.WARNING;\r\n        case intents.includes(NOTIFICATION_INTENTS.INFO):\r\n            return NOTIFICATION_INTENTS.INFO;\r\n    }\r\n\r\n    return NOTIFICATION_INTENTS.INACTIVE;\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Text, Link } from '@plesk/ui-library';\r\nimport { useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { UAT, Locale } from 'jsw';\r\nimport { NotificationPropType } from './lib/PropTypes';\r\n\r\nconst Translate = Locale.getTranslate('components.notification-center');\r\n\r\nconst NotificationToast = ({\r\n    notification,\r\n    onSelectNotification,\r\n}) => {\r\n    const { subject, context, code, createdAt, messageKey } = notification;\r\n\r\n    useEffect(() => {\r\n        UAT.dispatchAction('NOTIFICATION_TOAST_SHOW', {\r\n            createdAt,\r\n            messageKey,\r\n            type: code,\r\n        });\r\n        // eslint-disable-next-line react-hooks/exhaustive-deps\r\n    }, []);\r\n\r\n    return (\r\n        <>\r\n            <Text>{context}</Text>\r\n            <br />\r\n            <Text bold>{subject}</Text>\r\n            <br />\r\n            <Link data-type=\"notification-toast-details-link\" onClick={onSelectNotification}>\r\n                <Translate content=\"learnMore\" />\r\n            </Link>\r\n        </>\r\n    );\r\n};\r\n\r\nNotificationToast.propTypes = {\r\n    notification: NotificationPropType.isRequired,\r\n    onSelectNotification: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default NotificationToast;\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"NotificationCenter\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"config\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webSocket\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enabled\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"permissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageServerNotifications\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":228}};\n    doc.loc.source = {\"body\":\"query NotificationCenter {\\r\\n    config {\\r\\n        webSocket {\\r\\n            enabled\\r\\n        }\\r\\n    }\\r\\n    viewer {\\r\\n        login\\r\\n        type\\r\\n        permissions {\\r\\n            manageServerNotifications\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"NotificationCenter\"] = oneQuery(doc, \"NotificationCenter\");\n        \r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useState, lazy, Suspense } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useQuery } from '@apollo/client';\r\nimport { Button } from '@plesk/ui-library';\r\nimport { Locale } from 'jsw';\r\n\r\nimport HELP_MENU_QUERY from 'queries/HelpMenu.graphql';\r\n\r\nconst Translate = Locale.getTranslate('components.shortcuts');\r\nconst HelpDrawer = lazy(() => import(/* webpackChunkName: \"components/layouts/page-layout/help-drawer\" */'./HelpDrawer'));\r\n\r\nconst HelpMenu = ({\r\n    helpUrl,\r\n    customHelpUrl,\r\n    helpContext,\r\n    helpModule,\r\n    searchQuery,\r\n}) => {\r\n    const { data: { viewer: user, mode, config } = {} } = useQuery(HELP_MENU_QUERY);\r\n    const [isOpen, setIsOpen] = useState(false);\r\n    const [isOpened, setIsOpened] = useState(isOpen);\r\n\r\n    const handleOpen = () => {\r\n        setIsOpen(true);\r\n        setIsOpened(true);\r\n    };\r\n\r\n    const handleClose = () => {\r\n        setIsOpen(false);\r\n    };\r\n\r\n    if (helpUrl && !mode?.isClassicPanel) {\r\n        if (helpContext) {\r\n            helpUrl += `/plesk-context/${helpContext}`;\r\n        }\r\n        if (helpModule) {\r\n            helpUrl += `/plesk-module/${helpModule}`;\r\n        }\r\n    }\r\n\r\n    if (!customHelpUrl && !helpUrl) {\r\n        helpUrl = `/help.php?context=${encodeURIComponent(helpContext)}`;\r\n        if (helpModule) {\r\n            helpUrl += `&module=${encodeURIComponent(helpModule)}`;\r\n        }\r\n    }\r\n\r\n    if (user?.type === 'ADMIN') {\r\n        return (\r\n            <>\r\n                <Button id=\"help-menu\" ghost icon=\"question-mark-circle\" onClick={handleOpen} />\r\n                {isOpened ? (\r\n                    <Suspense>\r\n                        <HelpDrawer\r\n                            helpUrl={customHelpUrl || helpUrl}\r\n                            searchQuery={(config.help.enableSearchPrefill && searchQuery) || ''}\r\n                            isOpen={isOpen}\r\n                            onClose={handleClose}\r\n                        />\r\n                    </Suspense>\r\n                ) : null}\r\n            </>\r\n        );\r\n    }\r\n\r\n    return (\r\n        <Button\r\n            id=\"help-menu\"\r\n            ghost\r\n            icon=\"question-mark-circle\"\r\n            data-type=\"link-read-manual\"\r\n            component=\"a\"\r\n            href={customHelpUrl || helpUrl}\r\n            target=\"_blank\"\r\n            rel=\"noopener noreferrer\"\r\n            tooltip={<Translate content=\"readManual\" />}\r\n        />\r\n    );\r\n};\r\n\r\nHelpMenu.propTypes = {\r\n    helpUrl: PropTypes.string,\r\n    customHelpUrl: PropTypes.string,\r\n    helpContext: PropTypes.string,\r\n    helpModule: PropTypes.string,\r\n    searchQuery: PropTypes.string,\r\n};\r\n\r\nHelpMenu.defaultProps = {\r\n    helpUrl: undefined,\r\n    customHelpUrl: undefined,\r\n    helpContext: undefined,\r\n    helpModule: undefined,\r\n    searchQuery: undefined,\r\n};\r\n\r\nexport default HelpMenu;\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"HelpMenu\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryKey\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pleskKeyId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"editionName\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"update\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"patch\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"config\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"product\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"version\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"extensions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"developerGuideUrl\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"feedback\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"forumUrl\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"help\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"helpCenterUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enableSearchPrefill\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isClassicPanel\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isLicenseDeveloper\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isLicenseLocked\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":584}};\n    doc.loc.source = {\"body\":\"query HelpMenu {\\r\\n    viewer {\\r\\n        login\\r\\n        type\\r\\n    }\\r\\n    primaryKey {\\r\\n        pleskKeyId\\r\\n        editionName\\r\\n    }\\r\\n    update {\\r\\n        patch\\r\\n    }\\r\\n    config {\\r\\n        product {\\r\\n            name\\r\\n            version\\r\\n        }\\r\\n        extensions {\\r\\n            developerGuideUrl\\r\\n        }\\r\\n        feedback {\\r\\n            enabled\\r\\n            forumUrl\\r\\n        }\\r\\n        help {\\r\\n            helpCenterUrl\\r\\n            enableSearchPrefill\\r\\n        }\\r\\n    }\\r\\n    mode {\\r\\n        isClassicPanel\\r\\n        isLicenseDeveloper\\r\\n        isLicenseLocked\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"HelpMenu\"] = oneQuery(doc, \"HelpMenu\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"AccountMenu\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pname\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":75}};\n    doc.loc.source = {\"body\":\"query AccountMenu {\\r\\n    viewer {\\r\\n        pname\\r\\n        login\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"AccountMenu\"] = oneQuery(doc, \"AccountMenu\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"MainHeaderNavbar\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"logo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isCustom\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"config\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"notification\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"panel\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enabled\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"branding\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"theme\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":295}};\n    doc.loc.source = {\"body\":\"query MainHeaderNavbar {\\r\\n    viewer {\\r\\n        login\\r\\n        type\\r\\n        logo {\\r\\n            isCustom\\r\\n        }\\r\\n    }\\r\\n    config {\\r\\n        notification {\\r\\n            panel {\\r\\n                enabled\\r\\n            }\\r\\n        }\\r\\n        branding {\\r\\n            theme\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"MainHeaderNavbar\"] = oneQuery(doc, \"MainHeaderNavbar\");\n        \r\n","module.exports = Jsw.skinUrl + \"/icons/16/plesk/top-advisor.svg?0b30181a1696d46d7ee8ab9b6594518b\";","module.exports = Jsw.skinUrl + \"/images/logos/powered-logo.png?8700c1cdfefb55e5ddcb48027ce87d4e\";","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\n/* eslint-disable react/jsx-max-depth */\r\n\r\nimport { useRef, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Transition } from 'react-transition-group';\r\nimport { parsePath } from 'react-router';\r\nimport { matchPath, useLocation } from 'react-router-dom';\r\nimport classNames from 'classnames';\r\nimport { Tooltip } from '@plesk/ui-library';\r\nimport { prepareUrl } from 'jsw';\r\nimport { useLocalStorage } from 'common/hooks';\r\nimport ViewSwitcher from './ViewSwitcher';\r\nimport Brand from '../Brand';\r\nimport Link from 'components/common/Link';\r\n\r\nconst Node = ({\r\n    id,\r\n    styleClass,\r\n    active,\r\n    disabled,\r\n    name,\r\n    conhelp,\r\n    link,\r\n    target,\r\n    custom,\r\n    icon,\r\n    onClick,\r\n}) => (\r\n    <Tooltip title={conhelp}>\r\n        <li\r\n            id={id || null}\r\n            className={classNames(!id && styleClass, active && 'active', disabled && 'page-sidebar-menu-item--disabled')}\r\n        >\r\n            <Link\r\n                to={prepareUrl(link)}\r\n                target={target}\r\n                onClick={onClick}\r\n                disabled={disabled}\r\n            >\r\n                <i\r\n                    className={styleClass ? `icon-${styleClass.split(' ')[0]}` : null}\r\n                    style={custom ? { backgroundImage: `url('${icon}')` } : null}\r\n                />\r\n                <span className=\"title\">{name}</span>\r\n            </Link>\r\n        </li>\r\n    </Tooltip>\r\n);\r\n\r\nNode.propTypes = {\r\n    id: PropTypes.string,\r\n    styleClass: PropTypes.string,\r\n    active: PropTypes.bool,\r\n    disabled: PropTypes.bool,\r\n    name: PropTypes.string.isRequired,\r\n    conhelp: PropTypes.string.isRequired,\r\n    link: PropTypes.string.isRequired,\r\n    target: PropTypes.string,\r\n    custom: PropTypes.bool,\r\n    icon: PropTypes.string,\r\n    onClick: PropTypes.func,\r\n};\r\n\r\nNode.defaultProps = {\r\n    id: undefined,\r\n    styleClass: undefined,\r\n    active: false,\r\n    disabled: false,\r\n    target: undefined,\r\n    custom: false,\r\n    icon: undefined,\r\n    onClick: undefined,\r\n};\r\n\r\nconst Group = ({ id, name, nodes, activeNode, isSidebarClosed, onNodeClick }) => {\r\n    const nodeRef = useRef(null);\r\n    const group = id.toString().replace('_', '-');\r\n    const [isHidden, setHidden] = useLocalStorage(`menu-group-${group}-hidden`);\r\n\r\n    let title = (\r\n        <button\r\n            className=\"menu-group-title\"\r\n            aria-expanded={isHidden === 'true' ? 'false' : 'true'}\r\n            aria-controls={`menuId-${group}`}\r\n            onClick={() => setHidden(isHidden === 'true' ? 'false' : 'true')}\r\n            type=\"button\"\r\n        >\r\n            <span className=\"menu-group-toggle\" />\r\n            <span className=\"menu-group-name\">{name}</span>\r\n        </button>\r\n    );\r\n\r\n    if (isSidebarClosed && name) {\r\n        title = (\r\n            <Tooltip title={name}>\r\n                {title}\r\n            </Tooltip>\r\n        );\r\n    }\r\n\r\n    return (\r\n        <li key={id} className={`menu-group-${group}`}>\r\n            {id === 'general' ? null : title}\r\n            {nodes && Object.keys(nodes).length ? (\r\n                <Transition nodeRef={nodeRef} in={isHidden !== 'true'} timeout={200} mountOnEnter unmountOnExit>\r\n                    <ul ref={nodeRef} className=\"sub-menu\" id={`menuId-${group}`}>\r\n                        {Object.entries(nodes).map(([key, { conhelp, ...props }]) => (\r\n                            <Node\r\n                                key={key}\r\n                                active={key === activeNode}\r\n                                conhelp={isSidebarClosed ? props.name : conhelp}\r\n                                onClick={onNodeClick}\r\n                                {...props}\r\n                            />\r\n                        ))}\r\n                    </ul>\r\n                </Transition>\r\n            ) : null}\r\n        </li>\r\n    );\r\n};\r\n\r\nGroup.propTypes = {\r\n    id: PropTypes.string.isRequired,\r\n    name: PropTypes.string,\r\n    nodes: PropTypes.object.isRequired,\r\n    activeNode: PropTypes.string,\r\n    isSidebarClosed: PropTypes.bool.isRequired,\r\n    onNodeClick: PropTypes.func,\r\n};\r\n\r\nGroup.defaultProps = {\r\n    activeNode: undefined,\r\n    onNodeClick: null,\r\n    name: null,\r\n};\r\n\r\nconst getFirstLink = navigation => {\r\n    for (const group of navigation) {\r\n        const foundNode = Object.values(group.nodes).find(node => node.link);\r\n\r\n        if (foundNode) {\r\n            return foundNode.link;\r\n        }\r\n    }\r\n};\r\n\r\nconst PageSidebar = ({ title, navigation, navigationContext, breadcrumbs, viewSwitcher, isPowerUserPanel, isClosed, onNodeClick }) => {\r\n    const location = useLocation();\r\n\r\n    const activeNode = useMemo(() => {\r\n        const getExtension = url => url.match(/\\/modules\\/([^/]+)/)?.[1];\r\n        const breadcrumbPathname = parsePath(breadcrumbs?.[(isPowerUserPanel || breadcrumbs.length < 2) ? 0 : 1]?.href ?? '').pathname ?? '';\r\n        const breadcrumbExtension = getExtension(breadcrumbPathname);\r\n        const locationPathname = location.pathname;\r\n        const locationExtension = getExtension(locationPathname);\r\n\r\n        for (const group of navigation) {\r\n            const foundNode = Object.entries(group.nodes).find(([, node]) => {\r\n                const nodePathname = parsePath(node.link).pathname;\r\n                if (!nodePathname) {\r\n                    return false;\r\n                }\r\n                if (matchPath(nodePathname, breadcrumbPathname) || locationPathname.startsWith(nodePathname)) {\r\n                    return true;\r\n                }\r\n\r\n                const nodeExtension = getExtension(nodePathname);\r\n                if (!nodeExtension) {\r\n                    return false;\r\n                }\r\n                return nodeExtension === breadcrumbExtension || nodeExtension === locationExtension;\r\n            });\r\n\r\n            if (foundNode) {\r\n                return foundNode[0];\r\n            }\r\n        }\r\n    }, [navigation, breadcrumbs, isPowerUserPanel, location.pathname]);\r\n\r\n    return (\r\n        <div\r\n            className={classNames(\r\n                'page-sidebar',\r\n                isClosed && 'page-sidebar--folded',\r\n            )}\r\n            data-type=\"page-sidebar\"\r\n        >\r\n            <div className=\"page-sidebar__content\">\r\n                <div className=\"page-sidebar-brand\">\r\n                    {isClosed ? (\r\n                        <div className=\"brand-collapsed\">{title[0] || 'P'}</div>\r\n                    ) : (\r\n                        <Brand href={getFirstLink(navigation)} />\r\n                    )}\r\n                </div>\r\n                <div className=\"page-sidebar-menu-wrapper\">\r\n                    <ul className=\"page-sidebar-menu\">\r\n                        {navigation.map(({ id, ...props }) => (\r\n                            <Group\r\n                                key={id}\r\n                                id={id}\r\n                                isSidebarClosed={isClosed}\r\n                                onNodeClick={onNodeClick}\r\n                                activeNode={activeNode || navigationContext}\r\n                                {...props}\r\n                            />\r\n                        ))}\r\n                    </ul>\r\n                </div>\r\n            </div>\r\n            {viewSwitcher ? (\r\n                <div className=\"page-sidebar-footer-wrapper\">\r\n                    <div className=\"page-sidebar-footer\">\r\n                        {<ViewSwitcher {...viewSwitcher} />}\r\n                    </div>\r\n                </div>\r\n            ) : null}\r\n        </div>\r\n    );\r\n};\r\n\r\nPageSidebar.propTypes = {\r\n    title: PropTypes.string.isRequired,\r\n    logo: PropTypes.object,\r\n    navigation: PropTypes.arrayOf(PropTypes.shape({\r\n        id: PropTypes.string,\r\n        showTitle: PropTypes.bool,\r\n        name: PropTypes.string,\r\n        nodes: PropTypes.object,\r\n    })).isRequired,\r\n    navigationContext: PropTypes.string,\r\n    breadcrumbs: PropTypes.array,\r\n    viewSwitcher: PropTypes.shape({\r\n        locale: PropTypes.object,\r\n    }),\r\n    isPowerUserPanel: PropTypes.bool,\r\n    isClosed: PropTypes.bool,\r\n    onNodeClick: PropTypes.func,\r\n};\r\n\r\nPageSidebar.defaultProps = {\r\n    logo: undefined,\r\n    navigationContext: undefined,\r\n    breadcrumbs: [],\r\n    viewSwitcher: undefined,\r\n    isPowerUserPanel: false,\r\n    isClosed: false,\r\n    onNodeClick: undefined,\r\n};\r\n\r\nexport default PageSidebar;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useState, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Popover, Icon, Hint, Status } from '@plesk/ui-library';\r\nimport { messageBox, redirect, api, Locale } from 'jsw';\r\n\r\nconst Translate = Locale.getTranslate('components.view-switcher');\r\n\r\nconst ViewSwitcher = ({\r\n    isPowerUserPanel,\r\n    showPowerUserViewWarning,\r\n    learnMoreUrl,\r\n    hideSwitcherUrl,\r\n    changeViewUrl,\r\n}) => {\r\n    const [visible, setVisible] = useState(true);\r\n    const [popoverVisible, setPopoverVisible] = useState(false);\r\n    const targetRef = useRef();\r\n\r\n    const handleTogglePopover = () => {\r\n        setPopoverVisible(!popoverVisible);\r\n    };\r\n\r\n    const handleHideSwitcher = () => {\r\n        const locale = Locale.getSection('components.view-switcher');\r\n\r\n        messageBox.show({\r\n            type: messageBox.TYPE_YESNO,\r\n            subtype: 'toggle',\r\n            text: locale.lmsg('confirmationBoxText'),\r\n            description: locale.lmsg('confirmationBoxDescription'),\r\n            buttonTitles: {\r\n                yes: locale.lmsg('confirmationBoxButtonYes'),\r\n                no: locale.lmsg('confirmationBoxButtonNo'),\r\n            },\r\n            onYesClick: () => {\r\n                setVisible(false);\r\n                api.post(hideSwitcherUrl);\r\n            },\r\n        });\r\n    };\r\n\r\n    const handleChangeView = async e => {\r\n        e.preventDefault();\r\n        const { redirect: url } = await api.post(changeViewUrl);\r\n        if (url) {\r\n            redirect(url);\r\n        }\r\n    };\r\n\r\n    const handleOpenLearnMore = e => {\r\n        e.preventDefault();\r\n\r\n        redirect(learnMoreUrl);\r\n    };\r\n\r\n    const handleClosePopover = () => {\r\n        setTimeout(() => {\r\n            setPopoverVisible(false);\r\n        }, 0);\r\n    };\r\n\r\n    const renderActionMessage = () => {\r\n        const actionMessage = (\r\n            <Translate\r\n                content=\"actionMessage\"\r\n                params={{\r\n                    switchLink: (\r\n                        <a\r\n                            onClick={handleChangeView}\r\n                            href=\"#\"\r\n                            data-action={isPowerUserPanel ? 'to-service-provider' : 'to-power-user'}\r\n                        >\r\n                            <Translate\r\n                                content=\"switchView\"\r\n                                params={{ view: <Translate content={isPowerUserPanel ? 'serviceProviderView' : 'powerUserView'} /> }}\r\n                            />\r\n                        </a>\r\n                    ),\r\n                    recommended: <Translate content={isPowerUserPanel ? 'serviceProviderViewRecommended' : 'powerUserViewRecommended'} />,\r\n                    helpLink: (\r\n                        <a href=\"#\" onClick={handleOpenLearnMore} data-action=\"learn-more\">\r\n                            <Translate content=\"learnMore\" />\r\n                        </a>\r\n                    ),\r\n                }}\r\n            />\r\n        );\r\n\r\n        return actionMessage;\r\n    };\r\n\r\n    const renderSwitcherPopover = target => (\r\n        <Popover\r\n            visible={popoverVisible}\r\n            target={target}\r\n            targetRef={targetRef}\r\n            title={<Translate content=\"title\" />}\r\n            placement=\"top-right\"\r\n            onClose={handleClosePopover}\r\n            canCloseOnOutsideClick\r\n            canCloseOnEscapePress\r\n            boundariesElement={document.querySelector('.pul-layout')}\r\n            data-type=\"view-switcher\"\r\n        >\r\n            <Translate\r\n                content=\"currentViewMessage\"\r\n                params={{\r\n                    view: <Translate content={isPowerUserPanel ? 'powerUserView' : 'serviceProviderView'} />,\r\n                    hint: <Translate content={isPowerUserPanel ? 'powerUserViewHint' : 'serviceProviderViewHint'} />,\r\n                }}\r\n            />\r\n            <p>\r\n                {renderActionMessage()}\r\n            </p>\r\n            {showPowerUserViewWarning && (\r\n                <Hint>\r\n                    <Status intent=\"info\">\r\n                        <Translate content=\"powerUserViewWarning\" />\r\n                    </Status>\r\n                </Hint>\r\n            )}\r\n        </Popover>\r\n    );\r\n\r\n    if (!visible) {\r\n        return null;\r\n    }\r\n\r\n    return (\r\n        <div className=\"view-switcher\">\r\n            {renderSwitcherPopover((\r\n                <button type=\"button\" className=\"view-switcher__button\" onClick={handleTogglePopover} data-action=\"toggle-view-switcher\" ref={targetRef}>\r\n                    <Icon src={require('icons/16/plesk/nav-navigation.svg')} className=\"view-switcher__button-icon\" />\r\n                    <Translate content=\"title\" className=\"view-switcher__button-text\" component=\"span\" />\r\n                </button>\r\n            ))}\r\n            <button type=\"button\" className=\"view-switcher__close\" onClick={handleHideSwitcher} data-action=\"hide-view-switcher\" />\r\n        </div>\r\n    );\r\n};\r\n\r\nViewSwitcher.propTypes = {\r\n    isPowerUserPanel: PropTypes.bool.isRequired,\r\n    showPowerUserViewWarning: PropTypes.bool.isRequired,\r\n    learnMoreUrl: PropTypes.string.isRequired,\r\n    hideSwitcherUrl: PropTypes.string.isRequired,\r\n    changeViewUrl: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default ViewSwitcher;\r\n","module.exports = Jsw.skinUrl + \"/icons/16/plesk/nav-navigation.svg?8fd7ed2dae98ebbed97268ffef8454b1\";","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { useQuery } from '@apollo/client';\r\nimport Link from 'components/common/Link';\r\n\r\nimport BRANDING_QUERY from 'queries/Branding.graphql';\r\n\r\nconst Brand = ({ baseClassName, className, href }) => {\r\n    const { data: { viewer: { logo: {\r\n        image,\r\n        imageAlt,\r\n        url,\r\n        edition,\r\n    } } } } = useQuery(BRANDING_QUERY);\r\n\r\n    const Tag = (url || href) ? Link : 'span';\r\n\r\n    return (\r\n        <Tag\r\n            className={classNames(baseClassName, className)}\r\n            to={url || href}\r\n            target={url ? '_blank' : undefined}\r\n        >\r\n            <img className={`${baseClassName}__logo`} src={image} alt={imageAlt} />\r\n            {edition ? <span className={`${baseClassName}__edition`}>{edition}</span> : null}\r\n        </Tag>\r\n    );\r\n};\r\n\r\nBrand.propTypes = {\r\n    href: PropTypes.string,\r\n    className: PropTypes.string,\r\n    baseClassName: PropTypes.string,\r\n};\r\n\r\nBrand.defaultProps = {\r\n    href: undefined,\r\n    className: undefined,\r\n    baseClassName: 'brand',\r\n};\r\n\r\nexport default Brand;\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"Branding\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"customTitle\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"logo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"image\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"imageAlt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"edition\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":184}};\n    doc.loc.source = {\"body\":\"query Branding {\\r\\n    viewer {\\r\\n        login\\r\\n        customTitle\\r\\n        logo {\\r\\n            image\\r\\n            imageAlt\\r\\n            url\\r\\n            edition\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"Branding\"] = oneQuery(doc, \"Branding\");\n        \r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useQuery } from '@apollo/client';\r\nimport { Locale } from 'jsw';\r\nimport Link from 'components/common/Link';\r\n\r\nimport PAGE_FOOTER_QUERY from 'queries/PageFooter.graphql';\r\n\r\nconst Translate = Locale.getTranslate('components.shortcuts');\r\n\r\nconst PageFooter = () => {\r\n    const { data: { viewer: user, config } = {} } = useQuery(PAGE_FOOTER_QUERY);\r\n\r\n    const handleProvideRatingClick = () => {\r\n        Plesk.require('app/rating', rating => {\r\n            rating({\r\n                supportUrl: config.product.supportUrl,\r\n            });\r\n        });\r\n    };\r\n\r\n    return (\r\n        <div className=\"page-footer\" data-type=\"page-footer\">\r\n            {config?.promos.pleskFooter ? (\r\n                <a href={config.product.siteUrl} target=\"_blank\" rel=\"noopener noreferrer\">{'plesk.com'}</a>\r\n            ) : null}\r\n            {user?.type === 'ADMIN' && config?.facebook.showLikeLink ? (\r\n                <div className=\"social-actions\">\r\n                    <a className=\"fb-link\" href={config.facebook.pleskPage} target=\"_blank\" rel=\"noopener noreferrer\">\r\n                        <svg className=\"icon\" id=\"facebook\" viewBox=\"0 0 32 32\">\r\n                            {/* eslint-disable-next-line max-len */}\r\n                            <path d=\"M17.906,9.9V7.012a1.662,1.662,0,01,1.776-1.546h3.094V-0.052l-4.26-.022c-4.736,0-5.579,4.113-5.579,6.746L13,9.9H9.97v6.123h2.96v16.1H17.9v-16.1h4.447l0.2-2.53,0.3-3.593H17.906\" />\r\n                        </svg>\r\n                        <Translate content=\"facebookJoinCommunity\" />\r\n                    </a>\r\n                </div>\r\n            ) : null}\r\n            {user?.type === 'ADMIN' && config?.twitter.showFollowLink ? (\r\n                <div className=\"social-actions\">\r\n                    <a className=\"twitter-follow-button\" href={config.twitter.pleskPage} target=\"_blank\" rel=\"noopener noreferrer\">\r\n                        <svg className=\"icon\" viewBox=\"0 0 72 72\">\r\n                            {/* eslint-disable-next-line max-len */}\r\n                            <path fill=\"#fff\" d=\"M68.812 15.14c-2.348 1.04-4.87 1.744-7.52 2.06 2.704-1.62 4.78-4.186 5.757-7.243-2.53 1.5-5.33 2.592-8.314 3.176C56.35 10.59 52.948 9 49.182 9c-7.23 0-13.092 5.86-13.092 13.093 0 1.026.118 2.02.338 2.98C25.543 24.527 15.9 19.318 9.44 11.396c-1.125 1.936-1.77 4.184-1.77 6.58 0 4.543 2.312 8.552 5.824 10.9-2.146-.07-4.165-.658-5.93-1.64-.002.056-.002.11-.002.163 0 6.345 4.513 11.638 10.504 12.84-1.1.298-2.256.457-3.45.457-.845 0-1.666-.078-2.464-.23 1.667 5.2 6.5 8.985 12.23 9.09-4.482 3.51-10.13 5.605-16.26 5.605-1.055 0-2.096-.06-3.122-.184 5.794 3.717 12.676 5.882 20.067 5.882 24.083 0 37.25-19.95 37.25-37.25 0-.565-.013-1.133-.038-1.693 2.558-1.847 4.778-4.15 6.532-6.774z\" />\r\n                        </svg>\r\n                        <Translate content=\"twitterFollow\" />\r\n                    </a>\r\n                </div>\r\n            ) : null}\r\n            {user?.type === 'ADMIN' && config?.rating.enabled ? (\r\n                <div className=\"feedback-actions\">\r\n                    <a id=\"provide-rating-button\" className=\"s-btn\" onClick={handleProvideRatingClick}>\r\n                        <i className=\"icon-opinions\" /> <Translate content=\"provideRating\" />\r\n                    </a>\r\n                </div>\r\n            ) : null}\r\n            {config?.feedback.userVoice ? (\r\n                <div className=\"feedback-actions\">\r\n                    <a className=\"s-btn sb-feedback\" href={config.feedback.userVoiceUrl} target=\"_blank\" rel=\"noopener noreferrer\">\r\n                        <span><Translate content=\"userFeedback\" /></span>\r\n                    </a>\r\n                </div>\r\n            ) : null}\r\n            <div className=\"feedback-actions\">\r\n                <Link to=\"?modals[cookie-policy-preferences]=true\">\r\n                    <Translate content=\"linkToCookies\" />\r\n                </Link>\r\n            </div>\r\n        </div>\r\n    );\r\n};\r\n\r\nexport default PageFooter;\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"PageFooter\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"config\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"product\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"siteUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"supportUrl\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"promos\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pleskFooter\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"feedback\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userVoice\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userVoiceUrl\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"facebook\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showLikeLink\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pleskPage\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"twitter\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showFollowLink\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pleskPage\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rating\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enabled\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":514}};\n    doc.loc.source = {\"body\":\"query PageFooter {\\r\\n    viewer {\\r\\n        login\\r\\n        type\\r\\n    }\\r\\n    config {\\r\\n        product {\\r\\n            siteUrl\\r\\n            supportUrl\\r\\n        }\\r\\n        promos {\\r\\n            pleskFooter\\r\\n        }\\r\\n        feedback {\\r\\n            userVoice\\r\\n            userVoiceUrl\\r\\n        }\\r\\n        facebook {\\r\\n            showLikeLink\\r\\n            pleskPage\\r\\n        }\\r\\n        twitter {\\r\\n            showFollowLink\\r\\n            pleskPage\\r\\n        }\\r\\n        rating {\\r\\n            enabled\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"PageFooter\"] = oneQuery(doc, \"PageFooter\");\n        \r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { PageHeader, Breadcrumbs, Heading, Text } from '@plesk/ui-library';\r\nimport Link from 'components/common/Link';\r\nimport ObjectSwitcher from './ObjectSwitcher';\r\nimport PageContentHeaderNav from './PageContentHeaderNav';\r\nimport stripTags from 'helpers/stripTags';\r\n\r\nconst PageContentHeader = ({\r\n    breadcrumbs,\r\n    tabs,\r\n    tabsHasRootPage,\r\n    navigationTabs,\r\n    hidePathbar,\r\n    hideHeading,\r\n    wizardTitle,\r\n    pageTitle,\r\n    pageSubtitle,\r\n    titleRightAddon,\r\n    objectSwitcherParams,\r\n    forceObjectSwitcher,\r\n    isClassicMode,\r\n}) => {\r\n    breadcrumbs = Array.isArray(breadcrumbs) ? [...breadcrumbs] : [];\r\n    let currentPage = breadcrumbs.pop();\r\n    let addObjectSwitcher = forceObjectSwitcher;\r\n    let objectName = null;\r\n    let pageTitleSuffix = null;\r\n\r\n    if (currentPage && tabs && tabsHasRootPage) {\r\n        currentPage = breadcrumbs.pop();\r\n        if (!pageTitle) {\r\n            pageTitle = currentPage.title;\r\n        }\r\n    }\r\n\r\n    if (currentPage && navigationTabs) {\r\n        currentPage = breadcrumbs.pop();\r\n        pageTitle = currentPage.title;\r\n\r\n        // subscription horizontal navigation\r\n        addObjectSwitcher = pageTitle.indexOf('</b>') !== -1;\r\n    }\r\n\r\n    const match = pageTitle && pageTitle.match(/<b>(.+)<\\/b>/i);\r\n    if (match) {\r\n        objectName = match[1];\r\n        pageTitleSuffix = pageTitle.substr(match.index + match[0].length);\r\n        pageTitle = pageTitle.substr(0, match.index);\r\n\r\n        const previousPage = breadcrumbs[breadcrumbs.length - 1];\r\n        if (previousPage && objectName === stripTags(previousPage.title)) {\r\n            objectName = (\r\n                <Link to={previousPage.href} dangerouslySetInnerHTML={{ __html: stripTags(previousPage.title) }} />);\r\n            breadcrumbs.pop();\r\n\r\n            // domain horizontal navigation\r\n            addObjectSwitcher = true;\r\n        } else {\r\n            objectName = (\r\n                // TODO EXTSSLIT-590: EXTPHPCOMP-33: Broken header in Plesk 18.0.19\r\n                // eslint-disable-next-line react/no-danger\r\n                <span className=\"page-content-header__title\" dangerouslySetInnerHTML={{ __html: objectName }} />\r\n            );\r\n        }\r\n    }\r\n\r\n    if ((hidePathbar || breadcrumbs.length) && hideHeading && (!isClassicMode || !navigationTabs)) {\r\n        return null;\r\n    }\r\n\r\n    return (\r\n        <PageHeader\r\n            className=\"page-content-header\"\r\n            breadcrumbs={!hidePathbar && breadcrumbs.length ? (\r\n                <Breadcrumbs data-type=\"page-pathbar\">\r\n                    {breadcrumbs.map(({ title, href }) => (\r\n                        <Link key={href} to={href} dangerouslySetInnerHTML={{ __html: stripTags(title) }} />\r\n                    ))}\r\n                </Breadcrumbs>\r\n            ) : null}\r\n            tabs={isClassicMode && navigationTabs ? (\r\n                <PageContentHeaderNav items={navigationTabs} />\r\n            ) : null}\r\n            title={hideHeading ? null : (\r\n                <div>\r\n                    {wizardTitle ? (\r\n                        <Heading>{wizardTitle}</Heading>\r\n                    ) : null}\r\n                    {objectName ? (\r\n                        <Heading level={wizardTitle ? 3 : 1} data-type=\"page-title\">\r\n                            {pageTitle ? (\r\n                                // TODO EXTLETSENC-726: EXTSSLIT-590: EXTPHPCOMP-33: Broken header in Plesk 18.0.19\r\n                                // eslint-disable-next-line react/no-danger\r\n                                <span className=\"page-content-header__title\" dangerouslySetInnerHTML={{ __html: pageTitle }} />\r\n                            ) : null}\r\n                            {objectName}\r\n                            {objectSwitcherParams && addObjectSwitcher ? (\r\n                                <ObjectSwitcher {...objectSwitcherParams} />\r\n                            ) : null}\r\n                            {pageTitleSuffix}\r\n                        </Heading>\r\n                    ) : (\r\n                        <Heading level={wizardTitle ? 3 : 1} data-type=\"page-title\">\r\n                            {/* eslint-disable-next-line react/no-danger */}\r\n                            <span className=\"page-content-header__title\" dangerouslySetInnerHTML={{ __html: pageTitle }} />\r\n                        </Heading>\r\n                    )}\r\n                </div>\r\n            )}\r\n            titleRightAddon={titleRightAddon}\r\n        >\r\n            {!hideHeading && pageSubtitle ? (\r\n                <Text intent=\"muted\">{pageSubtitle}</Text>\r\n            ) : null}\r\n        </PageHeader>\r\n    );\r\n};\r\n\r\nPageContentHeader.propTypes = {\r\n    breadcrumbs: PropTypes.arrayOf(PropTypes.shape({\r\n        href: PropTypes.string,\r\n        title: PropTypes.string,\r\n    })),\r\n    tabs: PropTypes.array,\r\n    tabsHasRootPage: PropTypes.bool,\r\n    navigationTabs: PropTypes.array,\r\n    hidePathbar: PropTypes.bool,\r\n    hideHeading: PropTypes.bool,\r\n    wizardTitle: PropTypes.string,\r\n    pageTitle: PropTypes.string,\r\n    pageSubtitle: PropTypes.string,\r\n    titleRightAddon: PropTypes.node,\r\n    objectSwitcherParams: PropTypes.shape(ObjectSwitcher.propTypes),\r\n    forceObjectSwitcher: PropTypes.bool,\r\n    isClassicMode: PropTypes.bool,\r\n};\r\n\r\nPageContentHeader.defaultProps = {\r\n    breadcrumbs: [],\r\n    tabs: null,\r\n    tabsHasRootPage: false,\r\n    navigationTabs: null,\r\n    hidePathbar: false,\r\n    hideHeading: false,\r\n    wizardTitle: null,\r\n    pageTitle: null,\r\n    pageSubtitle: null,\r\n    titleRightAddon: null,\r\n    objectSwitcherParams: null,\r\n    forceObjectSwitcher: false,\r\n    isClassicMode: false,\r\n};\r\n\r\nexport default PageContentHeader;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useEffect, useState } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { registerComponent, ObjectSwitcher as JswObjectSwitcher } from 'jsw';\r\nimport JswComponent from '../../jsw/JswComponent';\r\nimport useNavigate from 'hooks/useNavigate';\r\n\r\nconst ObjectSwitcher = ({ locale, limit, lookUpParams, dataUrl, listUrl, owner, itemUrlTemplate }) => {\r\n    const [component, setComponent] = useState(null);\r\n\r\n    const navigate = useNavigate();\r\n\r\n    useEffect(() => {\r\n        const newComponent = new JswObjectSwitcher({ locale, limit, lookUpParams, dataUrl, listUrl, owner, itemUrlTemplate, navigate });\r\n        setComponent(newComponent);\r\n\r\n        return () => {\r\n            registerComponent(newComponent.getId());\r\n            setComponent(null);\r\n        };\r\n    }, [locale, limit, lookUpParams, dataUrl, listUrl, owner, itemUrlTemplate, navigate]);\r\n\r\n    return component ? (\r\n        <JswComponent component=\"span\" key={component.getId()}>\r\n            {component}\r\n        </JswComponent>\r\n    ) : null;\r\n};\r\n\r\nObjectSwitcher.propTypes = {\r\n    locale: PropTypes.object.isRequired,\r\n    limit: PropTypes.number.isRequired,\r\n    lookUpParams: PropTypes.object.isRequired,\r\n    dataUrl: PropTypes.string.isRequired,\r\n    listUrl: PropTypes.string.isRequired,\r\n    owner: PropTypes.string,\r\n    itemUrlTemplate: PropTypes.string.isRequired,\r\n};\r\n\r\nObjectSwitcher.defaultProps = {\r\n    owner: null,\r\n};\r\n\r\nexport default ObjectSwitcher;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useEffect, useMemo, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Tab, Tabs } from '@plesk/ui-library';\r\nimport Link from 'components/common/Link';\r\nimport { prepareUrl } from 'jsw';\r\n\r\nconst PageContentHeaderNav = ({ items }) => {\r\n    const ref = useRef(null);\r\n    const active = useMemo(() => items.findIndex(({ containerCls }) => containerCls.split(' ').includes('active')) + 1, [items]);\r\n\r\n    useEffect(() => {\r\n        if (!ref.current) {\r\n            return;\r\n        }\r\n\r\n        const nav = ref.current;\r\n        const tabs = nav.querySelector('.page-content-header-nav__tabs');\r\n        const headerInner = document.querySelector('.pul-layout__header-inner');\r\n        const stickyClassName = 'page-content-header-nav--sticky';\r\n\r\n        const update = () => {\r\n            const tabsRect = tabs.getBoundingClientRect();\r\n            const headerInnerRect = headerInner.getBoundingClientRect();\r\n            const top = (window.scrollY || window.pageYOffset) + nav.getBoundingClientRect().top;\r\n\r\n            if (document.documentElement.scrollTop > top - headerInnerRect.height) {\r\n                nav.classList.add(stickyClassName);\r\n                nav.style.minHeight = `${tabsRect.height}px`;\r\n                tabs.style.top = `${headerInnerRect.height}px`;\r\n            } else {\r\n                nav.classList.remove(stickyClassName);\r\n                nav.style.minHeight = null;\r\n                tabs.style.top = null;\r\n            }\r\n        };\r\n\r\n        window.addEventListener('resize', update);\r\n        window.addEventListener('scroll', update);\r\n        document.addEventListener('mousewheel', update);\r\n\r\n        update();\r\n\r\n        return () => {\r\n            window.removeEventListener('resize', update);\r\n            window.removeEventListener('scroll', update);\r\n            document.removeEventListener('mousewheel', update);\r\n        };\r\n    }, []);\r\n\r\n    if (!items.length) {\r\n        return null;\r\n    }\r\n\r\n    return (\r\n        <div id=\"classic-mode-navigation\" className=\"page-content-header-nav\" ref={ref}>\r\n            <Tabs className=\"page-content-header-nav__tabs\" active={active}>\r\n                {items.map(({ title, href }, index) => (\r\n                    <Tab\r\n                        // eslint-disable-next-line react/no-array-index-key\r\n                        key={index}\r\n                        data-cy={title}\r\n                        title={title}\r\n                        component={Link}\r\n                        to={prepareUrl(href)}\r\n                    />\r\n                ))}\r\n            </Tabs>\r\n        </div>\r\n    );\r\n};\r\n\r\nPageContentHeaderNav.propTypes = {\r\n    items: PropTypes.arrayOf(PropTypes.shape({\r\n        title: PropTypes.string.isRequired,\r\n        href: PropTypes.string.isRequired,\r\n        containerCls: PropTypes.string,\r\n    })).isRequired,\r\n};\r\n\r\nexport default PageContentHeaderNav;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { unescapeHtml } from 'jsw';\r\nimport stripTags from 'helpers/stripTags';\r\n\r\nconst getTitleForHelpSearchQuery = ({\r\n    wizardTitle,\r\n    pageTitle,\r\n    breadcrumbs = [],\r\n}) => {\r\n    breadcrumbs = breadcrumbs && Array.isArray(breadcrumbs)\r\n        ? breadcrumbs\r\n        : [];\r\n    let title = wizardTitle ?? pageTitle ?? breadcrumbs[breadcrumbs.length - 1]?.title ?? '';\r\n\r\n    let objectName;\r\n    const match = title.match(/<b>(.+)<\\/b>/i);\r\n    if (match) {\r\n        objectName = match[1];\r\n        title = title.substring(0, match.index).trim();\r\n    }\r\n\r\n    const matchLink = title.match(/(<a(.+)<\\/a>)/);\r\n    if (matchLink) {\r\n        if (matchLink.index + matchLink[0].length === title.length) {\r\n            objectName = stripTags(matchLink[0]);\r\n        }\r\n\r\n        title = title.replace(matchLink[0], '').trim();\r\n    }\r\n\r\n    if (objectName) {\r\n        // (1) If a Plesk page title contains some text and an object name then the input value is set to this text excluding one word preceding the object name.\r\n        title = title.substring(0, title.lastIndexOf(' '));\r\n    }\r\n\r\n    if (title === '' && breadcrumbs.length > 2) {\r\n        // (2) If a Plesk page title is empty or contains an object name only then the input value is set to the value of the last link in the breadcrumbs.\r\n        title = breadcrumbs[breadcrumbs.length - 2]?.title ?? '';\r\n    }\r\n\r\n    return stripTags(unescapeHtml(title)).trim();\r\n};\r\n\r\nexport default getTitleForHelpSearchQuery;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport PageLayout from './PageLayout';\r\n\r\nconst withPageLayout = (Component, extraProps) => {\r\n    const Wrapper = wrapperProps => {\r\n        const {\r\n            baseUrl,\r\n            showFrames,\r\n            pageHeader,\r\n            pageSidebar,\r\n            pageContentHeader,\r\n            pageTitle,\r\n            withSecondary,\r\n            secondary,\r\n            isSecondaryCollapsed,\r\n            width,\r\n            bodyClass,\r\n            integrationClass,\r\n            ...props\r\n        } = {\r\n            ...wrapperProps,\r\n            ...(typeof extraProps === 'function' ? extraProps(wrapperProps) : extraProps),\r\n        };\r\n\r\n        return (\r\n            <PageLayout\r\n                baseUrl={baseUrl}\r\n                showFrames={showFrames}\r\n                pageHeader={pageHeader}\r\n                pageSidebar={pageSidebar}\r\n                pageContentHeader={pageContentHeader}\r\n                pageTitle={pageTitle}\r\n                withSecondary={withSecondary}\r\n                isSecondaryCollapsed={isSecondaryCollapsed}\r\n                secondary={secondary}\r\n                width={width}\r\n                bodyClass={bodyClass}\r\n                integrationClass={integrationClass}\r\n            >\r\n                <Component {...props} />\r\n            </PageLayout>\r\n        );\r\n    };\r\n    Wrapper.displayName = `withPageLayout(${Component.displayName || Component.name || 'Component'})`;\r\n    Wrapper.WrappedComponent = Component;\r\n\r\n    return Wrapper;\r\n};\r\n\r\nexport default withPageLayout;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Locale } from 'jsw';\r\nimport pageData from 'helpers/pageData';\r\nimport withPageLayout from './withPageLayout';\r\n\r\nconst withSimplePageLayout = (Component, extraProps) => withPageLayout(Component, props => {\r\n    const { showFrames, pageHeader, pageSidebar } = pageData();\r\n    const { breadcrumbs, helpContext } = typeof extraProps === 'function' ? extraProps(props) : extraProps;\r\n    const pageTitle = breadcrumbs[breadcrumbs.length - 1].title;\r\n\r\n    return {\r\n        ...props,\r\n        showFrames,\r\n        pageHeader: {\r\n            ...pageHeader,\r\n            helpMenu: {\r\n                ...pageHeader.helpMenu,\r\n                helpContext,\r\n            },\r\n        },\r\n        pageSidebar,\r\n        pageContentHeader: {\r\n            pageTitle,\r\n            breadcrumbs: [pageSidebar.isPowerUserPanel ? null : {\r\n                title: Locale.getSection('components.pages.home').lmsg('title'),\r\n                href: '/admin/home',\r\n            }, ...breadcrumbs].filter(Boolean),\r\n        },\r\n        pageTitle,\r\n    };\r\n});\r\n\r\nexport default withSimplePageLayout;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Outlet } from 'react-router-dom';\r\nimport { usePageData } from 'helpers/pageData';\r\nimport PageLayout from 'components/layouts/PageLayout';\r\n\r\nconst PhpPagesLayout = () => {\r\n    const data = usePageData();\r\n\r\n    return (\r\n        <PageLayout {...data}>\r\n            <Outlet />\r\n        </PageLayout>\r\n    );\r\n};\r\n\r\nexport default PhpPagesLayout;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useRouteError, isRouteErrorResponse } from 'react-router-dom';\r\nimport { LocaleProvider } from '@plesk/ui-library';\r\nimport { Locale } from 'jsw';\r\nimport ErrorPage from 'common/components/ErrorPage';\r\nimport { isNetworkError } from 'helpers/isNetworkError';\r\n\r\nconst AppBoundary = () => {\r\n    const error = useRouteError();\r\n\r\n    // eslint-disable-next-line no-console\r\n    console.error(error);\r\n\r\n    if (isRouteErrorResponse(error)) {\r\n        if (error.status === 404) {\r\n            return (\r\n                <LocaleProvider messages={Locale.getSection('controllers.error.error').messages}>\r\n                    <ErrorPage code=\"404\" message=\"Page Not Found\" />\r\n                </LocaleProvider>\r\n            );\r\n        }\r\n    }\r\n\r\n    if (error.graphQLErrors?.length) {\r\n        const [graphQLError] = error.graphQLErrors;\r\n        return (\r\n            <LocaleProvider messages={Locale.getSection('controllers.error.error').messages}>\r\n                <ErrorPage\r\n                    code={graphQLError.extensions?.category === 'notFound' && '404'}\r\n                    exception={{\r\n                        type: graphQLError.extensions?.category === 'notFound' ? 'Not Found' : 'GraphQL Error',\r\n                        message: graphQLError.extensions?.debugMessage ?? graphQLError.message,\r\n                        file: graphQLError.trace?.[0].file,\r\n                        line: graphQLError.trace?.[0].line,\r\n                        stackTrace: graphQLError.trace?.map(({ call, file, line }, index) => `#${index} ${file}(${line}): ${call}`).join('\\n'),\r\n                    }}\r\n                />\r\n            </LocaleProvider>\r\n        );\r\n    }\r\n\r\n    return (\r\n        <LocaleProvider messages={Locale.getSection('controllers.error.error').messages}>\r\n            <ErrorPage\r\n                isNetworkError={isNetworkError(error)}\r\n                exception={{\r\n                    type: error.name,\r\n                    message: error.message,\r\n                    stackTrace: error.stack,\r\n                }}\r\n            />\r\n        </LocaleProvider>\r\n    );\r\n};\r\n\r\nexport default AppBoundary;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n/* eslint-disable react/jsx-max-depth */\r\n\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { Heading, Button, Text, Icon, ConsoleOutput, Translate } from '@plesk/ui-library';\r\nimport RepairKitAlert from './RepairKitAlert';\r\nimport ExceptionDetails from './ExceptionDetails';\r\nimport styles from './ErrorPage.module.css';\r\n\r\nconst descriptions = {\r\n    400: 'Your browser sent a request that this server could not understand. Client sent malformed Host header.',\r\n    401: 'This server could not verify that you are authorized to access the document requested.' +\r\n        ' Either you supplied the wrong credentials (e.g., bad password), or your browser doesn\\'t understand how to supply the credentials required.',\r\n    403: 'You do not have permission to access this document.',\r\n    404: 'This page either doesn\\'t exist, or it moved somewhere else.',\r\n    405: 'The HTTP verb used to access this page is not allowed.',\r\n    406: 'Client browser does not accept the MIME type of the requested page.',\r\n    407: 'You must be authenticated by a proxy server before the Web server can execute your request.',\r\n    412: 'The request was not completed due to preconditions that are set in the request header.\\n' +\r\n        ' Preconditions prevent the requested method from being applied to a resource other than the one intended.',\r\n    414: 'The Web server is refusing to service the request because the requested URL address is too long.',\r\n    415: 'The Web server cannot service the request because the requested file is in a format that the server is configured not to download.',\r\n    500: 'The server encountered an internal error or misconfiguration and was unable to complete your request.\\n' +\r\n        ' Please contact the server administrator to inform of the time the error occurred and of anything you might have done that may have caused the error.\\n' +\r\n        ' More information about this error may be available in the server error log.',\r\n    501: 'The page you are looking for cannot be displayed because a header value in the request does not match certain configuration settings on the Web server.',\r\n    502: 'Web server received an invalid response while acting as a gateway or proxy server.',\r\n    503: 'The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.',\r\n};\r\n\r\nconst consoleOutputHtml = `<div class=\"console-output__title\">Plesk</div>\r\n<span id=\"initialize\" style=\"display: none\">Initializing…                     [ <span>----</span> ]</span>\r\n<span id=\"clone\" style=\"display: none\">Cloning…                          [ <span>----</span> ]</span>\r\n<span id=\"message\" style=\"display: none\"></span>\r\n\r\n<div id=\"done\" style=\"display: none\">\r\n___\r\n\r\nYour Plesk is almost ready.\r\nIn a few seconds, we'll take you there so that you can get started!\r\n</div>`;\r\n\r\nconst helpActions = (\r\n    <>\r\n        <Button className={styles.action} onClick={() => window.location.reload()}>\r\n            <Translate content=\"reloadPage\" />\r\n        </Button>\r\n        <Button className={styles.action} onClick={() => window.history.back()}>\r\n            <Translate content=\"backToPreviousPage\" />\r\n        </Button>\r\n        <Button className={styles.action} component=\"a\" href=\"/\">\r\n            <Translate content=\"homePage\" />\r\n        </Button>\r\n    </>\r\n);\r\n\r\nconst ErrorPage = ({\r\n    code,\r\n    message,\r\n    noRepairKit,\r\n    kbArticleUrl,\r\n    exception,\r\n    isNetworkError,\r\n}) => (\r\n    <div className={styles.page}>\r\n        <div className={classNames(styles.side, code === '503.1' ? styles.sideMaintenance : '')} />\r\n        <div className={styles.main}>\r\n            {isNetworkError ? (\r\n                <>\r\n                    <header className={styles.header}>\r\n                        <Heading><Text intent=\"danger\"><Translate content=\"networkError\" /></Text></Heading>\r\n                    </header>\r\n                    <main>\r\n                        <div className={styles.description}>\r\n                            <p>\r\n                                <Translate content=\"networkErrorDescription\" />\r\n                                <br />\r\n                                <Translate content=\"helpActions\" />\r\n                            </p>\r\n                            <p />\r\n                        </div>\r\n                        {helpActions}\r\n                    </main>\r\n                </>\r\n            ) : code === '503.1' ? (\r\n                <>\r\n                    <header className={styles.header}>\r\n                        <Heading component=\"h1\" level={2}>{message}</Heading>\r\n                    </header>\r\n                    <main>\r\n                        <ConsoleOutput wide>\r\n                            {/* eslint-disable-next-line react/no-danger */}\r\n                            <div dangerouslySetInnerHTML={{ __html: consoleOutputHtml }} />\r\n                        </ConsoleOutput>\r\n                        <div className={styles.actions}>\r\n                            <Button className={styles.action} onClick={() => window.location.reload()}>\r\n                                <Translate content=\"reloadPage\" />\r\n                            </Button>\r\n                        </div>\r\n                    </main>\r\n                </>\r\n            ) : (\r\n                <>\r\n                    <header className={styles.header}>\r\n                        {code ? <div><Translate content=\"title\" /></div> : null}\r\n                        <Heading><Text intent=\"danger\">{code ? `${code} ` : null}{exception ? exception.type : message}</Text></Heading>\r\n                    </header>\r\n                    <main>\r\n                        <div className={styles.description}>\r\n                            <p>{exception ? exception.message : descriptions[code]}</p>\r\n                        </div>\r\n                        {exception ? (\r\n                            <ExceptionDetails {...exception} />\r\n                        ) : null}\r\n                        {code && /^5\\d\\d$/.test(code) && !noRepairKit ? (\r\n                            <RepairKitAlert />\r\n                        ) : null}\r\n                        <div className={styles.actions}>\r\n                            <p>\r\n                                <Translate content=\"reportErrorMessage\" />{' '}\r\n                                <a href=\"https://www.plesk.com/bug-report/\" target=\"_blank\" rel=\"noopener noreferrer\">\r\n                                    <Translate content=\"visitHelpCenter\" />\r\n                                </a>\r\n                            </p>\r\n                            <p><Translate content=\"helpActions\" /></p>\r\n                            {helpActions}\r\n                            {kbArticleUrl ? (\r\n                                <Button className={styles.action} component=\"a\" href={kbArticleUrl} target=\"_blank\" rel=\"noopener noreferrer\">\r\n                                    <Translate content=\"searchKbArticle\" />\r\n                                </Button>\r\n                            ) : null}\r\n                        </div>\r\n                    </main>\r\n                </>\r\n            )}\r\n            <footer className={styles.footer}>\r\n                <div className={styles.footerLinks}>\r\n                    <a href=\"https://talk.plesk.com/forums/reports.746/\" className={styles.footerLink} target=\"_blank\" rel=\"noopener noreferrer\">\r\n                        <Icon size=\"32\" src=\"/error_docs/images/report.svg\" />\r\n                        <Translate className={styles.footerLinkText} content=\"reportProblem\" />\r\n                    </a>\r\n                    <a href=\"https://docs.plesk.com/\" className={styles.footerLink} target=\"_blank\" rel=\"noopener noreferrer\">\r\n                        <Icon size=\"32\" src=\"/error_docs/images/documentation.svg\" />\r\n                        <Translate className={styles.footerLinkText} content=\"documentation\" />\r\n                    </a>\r\n                    <a href=\"https://kb.plesk.com/\" className={styles.footerLink} target=\"_blank\" rel=\"noopener noreferrer\">\r\n                        <Icon size=\"32\" src=\"/error_docs/images/knowledge-base.svg\" />\r\n                        <Translate className={styles.footerLinkText} content=\"knowledgeBase\" />\r\n                    </a>\r\n                    <a href=\"https://talk.plesk.com/\" className={styles.footerLink} target=\"_blank\" rel=\"noopener noreferrer\">\r\n                        <Icon size=\"32\" src=\"/error_docs/images/forum.svg\" />\r\n                        <Translate className={styles.footerLinkText} content=\"forum\" />\r\n                    </a>\r\n                    <a href=\"https://www.youtube.com/channel/UCeU-_6YHGQFcVSHLbEXLNlA\" className={styles.footerLink} target=\"_blank\" rel=\"noopener noreferrer\">\r\n                        <Icon size=\"32\" src=\"/error_docs/images/youtube.svg\" />\r\n                        <Translate className={styles.footerLinkText} content=\"youTube\" />\r\n                    </a>\r\n                    <a href=\"https://www.facebook.com/Plesk\" className={styles.footerLink} target=\"_blank\" rel=\"noopener noreferrer\">\r\n                        <Icon size=\"32\" src=\"/error_docs/images/facebook.svg\" />\r\n                        <Translate className={styles.footerLinkText} content=\"facebook\" />\r\n                    </a>\r\n                </div>\r\n            </footer>\r\n        </div>\r\n    </div>\r\n);\r\n\r\nErrorPage.propTypes = {\r\n    code: PropTypes.string,\r\n    message: PropTypes.string.isRequired,\r\n    noRepairKit: PropTypes.bool,\r\n    kbArticleUrl: PropTypes.string,\r\n    exception: PropTypes.shape({\r\n        type: PropTypes.string.isRequired,\r\n        message: PropTypes.string.isRequired,\r\n    }),\r\n    isNetworkError: PropTypes.bool,\r\n};\r\n\r\nErrorPage.defaultProps = {\r\n    code: null,\r\n    noRepairKit: false,\r\n    kbArticleUrl: null,\r\n    exception: null,\r\n    isNetworkError: false,\r\n};\r\n\r\nexport default ErrorPage;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Button, Text, Icon, Alert, Media, MediaSection, Translate } from '@plesk/ui-library';\r\n\r\nconst RepaitKitAlert = () => (\r\n    <Alert intent=\"info\">\r\n        <Media image={<Icon src=\"/error_docs/images/go-to-repair.png\" size=\"64\" />}>\r\n            {window.location.pathname.indexOf('/repair') === 0 ? (\r\n                <MediaSection>\r\n                    <Translate content=\"repairKitUnavailable\" />\r\n                </MediaSection>\r\n            ) : (\r\n                <>\r\n                    <MediaSection>\r\n                        <Translate content=\"repairKitDescription\" />\r\n                        <br />\r\n                        <Translate content=\"repairKitAdminDescription\" />\r\n                    </MediaSection>\r\n                    <MediaSection>\r\n                        <Button component=\"a\" intent=\"primary\" href=\"/repair\">\r\n                            <Translate content=\"repairKitOpen\" />\r\n                        </Button>\r\n                    </MediaSection>\r\n                    <MediaSection>\r\n                        <Text intent=\"muted\"><Translate content=\"repairKitOpenNote\" /></Text>\r\n                    </MediaSection>\r\n                </>\r\n            )}\r\n        </Media>\r\n    </Alert>\r\n);\r\n\r\nexport default RepaitKitAlert;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { Text, List, ConsoleOutput } from '@plesk/ui-library';\r\n\r\nconst ExceptionDetails = ({ type, message, file, line, stackTrace, codeFragment }) => {\r\n    const data = [{\r\n        key: 'type',\r\n        title: 'Type',\r\n        value: type,\r\n    }, {\r\n        key: 'message',\r\n        title: 'Message',\r\n        value: message,\r\n    }, {\r\n        key: 'file',\r\n        title: 'File',\r\n        value: file,\r\n    }, {\r\n        key: 'line',\r\n        title: 'Line',\r\n        value: line,\r\n    }, {\r\n        key: 'stackTrace',\r\n        title: 'Stack trace',\r\n        // eslint-disable-next-line react/no-danger\r\n        value: stackTrace && <ConsoleOutput wide>{stackTrace}</ConsoleOutput>,\r\n    }, {\r\n        key: 'codeFragment',\r\n        title: 'Code fragment',\r\n        value: codeFragment && (\r\n            <ConsoleOutput wide>\r\n                {/* eslint-disable-next-line react/no-danger */}\r\n                <div dangerouslySetInnerHTML={{ __html: codeFragment }} />\r\n            </ConsoleOutput>\r\n        ),\r\n    }].filter(({ value }) => value);\r\n\r\n    if (!data.length) {\r\n        return null;\r\n    }\r\n\r\n    return (\r\n        <List\r\n            columns={[{\r\n                key: 'title',\r\n                render(row) {\r\n                    return <Text bold>{row.title}</Text>;\r\n                },\r\n            }, {\r\n                key: 'value',\r\n            }]}\r\n            data={data}\r\n        />\r\n    );\r\n};\r\n\r\nExceptionDetails.propTypes = {\r\n    type: PropTypes.string.isRequired,\r\n    message: PropTypes.string.isRequired,\r\n    file: PropTypes.string.isRequired,\r\n    line: PropTypes.string.isRequired,\r\n    stackTrace: PropTypes.string,\r\n    codeFragment: PropTypes.string,\r\n};\r\n\r\nExceptionDetails.defaultProps = {\r\n    stackTrace: null,\r\n    codeFragment: null,\r\n};\r\n\r\nexport default ExceptionDetails;\r\n","// extracted by mini-css-extract-plugin\nexport default {\"page\":\"common-components-ErrorPage-module__page--3BS7t\",\"header\":\"common-components-ErrorPage-module__header--ZsKwE\",\"side\":\"common-components-ErrorPage-module__side--CyBpF\",\"sideMaintenance\":\"common-components-ErrorPage-module__sideMaintenance--5fiUj\",\"main\":\"common-components-ErrorPage-module__main--icshs\",\"description\":\"common-components-ErrorPage-module__description--QJNnB\",\"actions\":\"common-components-ErrorPage-module__actions--xclR8\",\"action\":\"common-components-ErrorPage-module__action--l73ns\",\"footer\":\"common-components-ErrorPage-module__footer--10LMy\",\"footerLinks\":\"common-components-ErrorPage-module__footerLinks--vDGlC\",\"footerLink\":\"common-components-ErrorPage-module__footerLink--xg46v\",\"footerLinkText\":\"common-components-ErrorPage-module__footerLinkText--Q2RUW\"};","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useLayoutEffect } from 'react';\r\nimport { getComponent } from 'jsw';\r\n\r\nconst LogsPage = () => {\r\n    useLayoutEffect(() => () => {\r\n        getComponent('log-browser')?.remove();\r\n    }, []);\r\n\r\n    return null;\r\n};\r\n\r\nexport default LogsPage;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { readLocalStorageValue } from 'common/helpers/readLocalStorageValue';\r\nimport { ODBC_DEFAULT_LIST_INPUT } from 'components/pages/OdbcPage/defaultListInput';\r\nimport { odbcAddRoute } from 'routes/odbcAddRoute';\r\nimport { odbcEditRoute } from 'routes/odbcEditRoute';\r\nimport apolloClient from '../apolloClient';\r\n\r\nimport ODBC_SERVER_LIST from 'queries/OdbcServerList.graphql';\r\n\r\nexport const odbcServerRoute = {\r\n    path: '/cp/server/odbc',\r\n    componentLoader: () => import(\r\n        /* webpackChunkName: \"components/pages/OdbcPage/OdbcServerPage\" */\r\n        'components/pages/OdbcPage/OdbcServerPage'\r\n    ),\r\n    loader: async () => {\r\n        const input = readLocalStorageValue('odbcServerPageListInput', ODBC_DEFAULT_LIST_INPUT);\r\n        await apolloClient.query({\r\n            query: ODBC_SERVER_LIST,\r\n            variables: { input },\r\n        });\r\n    },\r\n    children: [\r\n        odbcAddRoute,\r\n        odbcEditRoute,\r\n    ],\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nexport const ODBC_DEFAULT_LIST_INPUT = {\r\n    pagination: {\r\n        page: 1,\r\n        itemsPerPage: 25,\r\n    },\r\n    searchFilters: {\r\n        name: '',\r\n    },\r\n    sort: {\r\n        sortColumn: null,\r\n        sortDirection: null,\r\n    },\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport apolloClient from 'apolloClient';\r\n\r\nimport ODBC_ADD_PAGE from 'queries/OdbcAddPage.graphql';\r\n\r\nexport const odbcAddRoute = {\r\n    path: 'add',\r\n    componentLoader: () => import(\r\n        /* webpackChunkName: \"components/pages/OdbcAddPage\" */\r\n        'components/pages/OdbcAddPage'\r\n    ),\r\n    loader: async ({ params }) => {\r\n        const { data: { dsnManager: { drivers } } } = await apolloClient.query({\r\n            query: ODBC_ADD_PAGE,\r\n        });\r\n\r\n        return { domainId: params.domainId, drivers };\r\n    },\r\n};\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"OdbcAddPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dsnManager\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivers\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":66}};\n    doc.loc.source = {\"body\":\"query OdbcAddPage {\\r\\n    dsnManager {\\r\\n        drivers\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"OdbcAddPage\"] = oneQuery(doc, \"OdbcAddPage\");\n        \r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport apolloClient from '../apolloClient';\r\n\r\nimport ODBC_EDIT_PAGE from 'queries/OdbcEditPage.graphql';\r\n\r\nexport const odbcEditRoute = {\r\n    path: ':odbcId/edit',\r\n    componentLoader: () => import(\r\n        /* webpackChunkName: \"components/pages/OdbcEditPage\" */\r\n        'components/pages/OdbcEditPage'\r\n    ),\r\n    loader: async ({ params }) => {\r\n        const id = btoa(`OdbcDsnConnection:${params.odbcId}`);\r\n\r\n        await apolloClient.query({\r\n            query: ODBC_EDIT_PAGE,\r\n            variables: { id },\r\n        });\r\n\r\n        return { odbcId: params.odbcId };\r\n    },\r\n};\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"OdbcEditPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"connection\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"OdbcEditFragment\"},\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":150}};\n    doc.loc.source = {\"body\":\"#import \\\"queries/OdbcEditFragment.graphql\\\"\\r\\n\\r\\nquery OdbcEditPage($id: ID!) {\\r\\n    connection: node(id: $id) {\\r\\n        ...OdbcEditFragment\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  doc.definitions = doc.definitions.concat(unique(require(\"queries/OdbcEditFragment.graphql\").definitions));\r\n\r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"OdbcEditPage\"] = oneQuery(doc, \"OdbcEditPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"OdbcEditFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"OdbcDsnConnection\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"driverType\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"parameters\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"keyHuman\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isRequired\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fieldType\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"values\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":203}};\n    doc.loc.source = {\"body\":\"fragment OdbcEditFragment on OdbcDsnConnection {\\r\\n    id\\r\\n    driverType\\r\\n    parameters {\\r\\n        key\\r\\n        keyHuman\\r\\n        isRequired\\r\\n        fieldType\\r\\n        value\\r\\n        values\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"OdbcEditFragment\"] = oneQuery(doc, \"OdbcEditFragment\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"OdbcServerList\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"OdbcDsnConnectionListInput\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"server\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"odbcDsnConnections\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"OdbcList\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domainName\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":301}};\n    doc.loc.source = {\"body\":\"#import \\\"./OdbcListFragment.graphql\\\"\\r\\n\\r\\nquery OdbcServerList(\\r\\n    $input: OdbcDsnConnectionListInput\\r\\n) {\\r\\n    server {\\r\\n        odbcDsnConnections(\\r\\n            input: $input\\r\\n        ) {\\r\\n            ...OdbcList\\r\\n            nodes {\\r\\n                domainName\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  doc.definitions = doc.definitions.concat(unique(require(\"./OdbcListFragment.graphql\").definitions));\r\n\r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"OdbcServerList\"] = oneQuery(doc, \"OdbcServerList\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"OdbcList\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"OdbcDsnConnectionList\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"driver\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"configured\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isSystem\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pageInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"current\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"total\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pageCount\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":244}};\n    doc.loc.source = {\"body\":\"fragment OdbcList on OdbcDsnConnectionList {\\r\\n    nodes {\\r\\n        id\\r\\n        name\\r\\n        description\\r\\n        driver\\r\\n        configured\\r\\n        isSystem\\r\\n    }\\r\\n    pageInfo {\\r\\n        current\\r\\n        total\\r\\n        pageCount\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"OdbcList\"] = oneQuery(doc, \"OdbcList\");\n        \r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { readLocalStorageValue } from 'common/helpers/readLocalStorageValue';\r\nimport { ODBC_DEFAULT_LIST_INPUT } from 'components/pages/OdbcPage/defaultListInput';\r\nimport { odbcAddRoute } from 'routes/odbcAddRoute';\r\nimport { odbcEditRoute } from 'routes/odbcEditRoute';\r\nimport apolloClient from '../apolloClient';\r\n\r\nimport ODBC_DOMAIN_LIST from 'queries/OdbcDomainList.graphql';\r\nimport ODBC_DOMAIN_PAGE from 'queries/OdbcDomainPage.graphql';\r\n\r\nexport const odbcDomainRoute = {\r\n    path: '/cp/domains/:domainId/odbc',\r\n    componentLoader: () => import(\r\n        /* webpackChunkName: \"components/pages/OdbcPage/OdbcDomainPage\" */\r\n        'components/pages/OdbcPage/OdbcDomainPage'\r\n    ),\r\n    loader: async ({ params }) => {\r\n        const input = readLocalStorageValue(`odbcDomainPageListInput${params.domainId}`, ODBC_DEFAULT_LIST_INPUT);\r\n        const id = btoa(`Domain:${params.domainId}`);\r\n\r\n        const [{ data: domainData }] = await Promise.all([\r\n            apolloClient.query({\r\n                query: ODBC_DOMAIN_PAGE,\r\n                variables: { id },\r\n            }),\r\n            apolloClient.query({\r\n                query: ODBC_DOMAIN_LIST,\r\n                variables: { id, input },\r\n            }),\r\n        ]);\r\n\r\n        return domainData;\r\n    },\r\n    children: [\r\n        odbcAddRoute,\r\n        odbcEditRoute,\r\n    ],\r\n};\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"OdbcDomainList\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"OdbcDsnConnectionListInput\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"domain\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Domain\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"odbcDsnConnections\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"OdbcList\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":338}};\n    doc.loc.source = {\"body\":\"#import \\\"./OdbcListFragment.graphql\\\"\\r\\n\\r\\nquery OdbcDomainList(\\r\\n    $id: ID!\\r\\n    $input: OdbcDsnConnectionListInput\\r\\n) {\\r\\n    domain: node(id: $id) {\\r\\n        ... on Domain {\\r\\n            id\\r\\n            odbcDsnConnections(\\r\\n                input: $input\\r\\n            ) {\\r\\n                ...OdbcList\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  doc.definitions = doc.definitions.concat(unique(require(\"./OdbcListFragment.graphql\").definitions));\r\n\r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"OdbcDomainList\"] = oneQuery(doc, \"OdbcDomainList\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"OdbcDomainPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"domain\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Domain\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"idn\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":false}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"baseDomain\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"DomainSubscriptionOdbcLimitFragment\"},\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":363}};\n    doc.loc.source = {\"body\":\"#import \\\"queries/DomainSubscriptionOdbcLimitFragment.graphql\\\"\\r\\n\\r\\nquery OdbcDomainPage(\\r\\n    $id: ID!\\r\\n) {\\r\\n    domain: node(id: $id) {\\r\\n        ... on Domain {\\r\\n            id\\r\\n            name(idn: false)\\r\\n            baseDomain {\\r\\n                id\\r\\n                name\\r\\n            }\\r\\n            ...DomainSubscriptionOdbcLimitFragment\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  doc.definitions = doc.definitions.concat(unique(require(\"queries/DomainSubscriptionOdbcLimitFragment.graphql\").definitions));\r\n\r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"OdbcDomainPage\"] = oneQuery(doc, \"OdbcDomainPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"DomainSubscriptionOdbcLimitFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Domain\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscription\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"limits\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"odbc\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"used\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"remaining\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isLimitAvailable\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":247}};\n    doc.loc.source = {\"body\":\"fragment DomainSubscriptionOdbcLimitFragment on Domain {\\r\\n    subscription {\\r\\n        id\\r\\n        limits {\\r\\n            odbc {\\r\\n                used\\r\\n                remaining\\r\\n                isLimitAvailable\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"DomainSubscriptionOdbcLimitFragment\"] = oneQuery(doc, \"DomainSubscriptionOdbcLimitFragment\");\n        \r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useCallback } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\nimport apolloClient from '../apolloClient';\r\n\r\nimport HOSTING_SETTINGS_PAGE from 'queries/HostingSettingsPage.graphql';\r\n\r\nexport const useGetDomainOverviewRoutePath = () => {\r\n    const { pathname } = useLocation();\r\n\r\n    return useCallback((id, type, path) => (\r\n        pathname.includes('overview')\r\n            ? `/smb/web/overview/id/${id}/type/${type}/${path}`\r\n            : `/smb/web/view/${id}/${path}`\r\n    ), [pathname]);\r\n};\r\n\r\nexport default [\r\n    {\r\n        path: 'hosting-settings',\r\n        componentLoader: () => import(/* webpackChunkName: \"components/pages/HostingSettingsPage\" */'components/pages/HostingSettingsPage'),\r\n        loader: async ({ params }) => {\r\n            await apolloClient.query({\r\n                query: HOSTING_SETTINGS_PAGE,\r\n                variables: { id: btoa(`Domain:${params.id}`) },\r\n            });\r\n        },\r\n    },\r\n];\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"HostingSettingsPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isSimplePanel\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isDemo\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isSmbImpersonated\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"server\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"settings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"forbidSubscriptionRename\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"preferredDomain\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isIPv6Supported\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"forbidFtpUserRename\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"securitySettingsPreset\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ssl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sslRedirect\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"asp\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspDotNet\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"cgi\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fastcgi\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webstat\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"writeModify\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webDeploy\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ssi\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errorDocs\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"perl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"python\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"shell\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isUnix\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"capability\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"systemUser\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"access\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"shells\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"empty\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"chrooted\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isSecure\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"emptyShell\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryKey\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pleskKeyId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"keyShell\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"capability\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"packages\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webstatPackages\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"domain\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Domain\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"idn\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":false}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isDemo\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"baseDomain\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"parentDomain\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"idn\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":false}}],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddresses\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isIPv6\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"publicIpAddress\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"owner\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddresses\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isIPv6\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"publicIpAddress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isBroken\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clients\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"availableIpAddresses\"},\"name\":{\"kind\":\"Name\",\"value\":\"ipAddresses\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"unassigned\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isIPv6\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"publicIpAddress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isBroken\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sysUser\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quota\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"shell\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscription\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isSecureSettingsPresetAllowed\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"permissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageDomains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageSubdomains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageWebsitesAndDomains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageHosting\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageHostingSsl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageQuota\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageShellAccess\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageNotChrootedShell\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"allowInsecureSites\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageHostingSsi\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageErrorDocs\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageAdditionPermissions\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageWebstat\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageWebDeploy\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"allowInsecureSites\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mainDomain\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"idn\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":false}}],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domains\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"idn\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":false}}],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"allowToChangeHtype\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"htype\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hosting\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"documentRoot\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"preferredDomain\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasInstalledApplications\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"forwarding\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"redirect\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sslSettings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ssl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sslRedirect\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificateId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"availableCertificates\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"repository\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspNetSettings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"versions\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"configs\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"version\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webstatSettings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webstat\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webstatProtected\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webScriptingSettings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ssi\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ssiHtml\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"cgi\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"cgiMode\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fastcgi\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"asp\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspDotNet\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"perl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"python\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webDeploy\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errorDocs\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"writeModify\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":4494}};\n    doc.loc.source = {\"body\":\"query HostingSettingsPage($id: ID!) {\\r\\n    mode {\\r\\n        isSimplePanel\\r\\n        isDemo\\r\\n    }\\r\\n    viewer {\\r\\n        isSmbImpersonated\\r\\n        login\\r\\n        type\\r\\n    }\\r\\n    server {\\r\\n        settings {\\r\\n            forbidSubscriptionRename\\r\\n            preferredDomain\\r\\n            isIPv6Supported\\r\\n            forbidFtpUserRename\\r\\n        }\\r\\n        securitySettingsPreset {\\r\\n            ssl\\r\\n            sslRedirect\\r\\n            asp\\r\\n            aspDotNet\\r\\n            cgi\\r\\n            fastcgi\\r\\n            webstat\\r\\n            writeModify\\r\\n            webDeploy\\r\\n            ssi\\r\\n            errorDocs\\r\\n            perl\\r\\n            python\\r\\n            shell\\r\\n        }\\r\\n    }\\r\\n    os {\\r\\n        isUnix\\r\\n    }\\r\\n    capability {\\r\\n        systemUser {\\r\\n            access {\\r\\n                shells {\\r\\n                    name\\r\\n                    value\\r\\n                    empty\\r\\n                    chrooted\\r\\n                    isSecure\\r\\n                }\\r\\n                emptyShell\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n    primaryKey {\\r\\n        pleskKeyId\\r\\n        keyShell\\r\\n    }\\r\\n    capability {\\r\\n        packages {\\r\\n            webstatPackages {\\r\\n                name\\r\\n                value\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n    domain: node(id: $id) {\\r\\n        ... on Domain {\\r\\n            id\\r\\n            name(idn: false)\\r\\n            isDemo\\r\\n            baseDomain {\\r\\n                id\\r\\n            }\\r\\n            parentDomain {\\r\\n                name(idn: false)\\r\\n            }\\r\\n            ipAddresses {\\r\\n                id\\r\\n                isIPv6\\r\\n                ipAddress\\r\\n                publicIpAddress\\r\\n            }\\r\\n            owner {\\r\\n                id\\r\\n                ipAddresses {\\r\\n                    id\\r\\n                    type\\r\\n                    isIPv6\\r\\n                    ipAddress\\r\\n                    publicIpAddress\\r\\n                    isBroken\\r\\n                    clients {\\r\\n                        id\\r\\n                    }\\r\\n                }\\r\\n                availableIpAddresses: ipAddresses(filter: {unassigned: true}) {\\r\\n                    id\\r\\n                    type\\r\\n                    isIPv6\\r\\n                    ipAddress\\r\\n                    publicIpAddress\\r\\n                    isBroken\\r\\n                }\\r\\n            }\\r\\n            sysUser {\\r\\n                login\\r\\n                quota\\r\\n                shell\\r\\n            }\\r\\n            subscription {\\r\\n                isSecureSettingsPresetAllowed\\r\\n                permissions {\\r\\n                    manageDomains\\r\\n                    manageSubdomains\\r\\n                    manageWebsitesAndDomains\\r\\n                    manageHosting\\r\\n                    manageHostingSsl\\r\\n                    manageQuota\\r\\n                    manageShellAccess\\r\\n                    manageNotChrootedShell\\r\\n                    allowInsecureSites\\r\\n                    manageHostingSsi\\r\\n                    manageErrorDocs\\r\\n                    manageAdditionPermissions\\r\\n                    manageWebstat\\r\\n                    manageWebDeploy\\r\\n                    allowInsecureSites\\r\\n                }\\r\\n                mainDomain {\\r\\n                    id\\r\\n                    name(idn: false)\\r\\n                }\\r\\n                domains {\\r\\n                    id\\r\\n                    name(idn: false)\\r\\n                }\\r\\n            }\\r\\n            allowToChangeHtype\\r\\n            htype\\r\\n            hosting {\\r\\n                documentRoot\\r\\n                preferredDomain\\r\\n                hasInstalledApplications\\r\\n            }\\r\\n            forwarding {\\r\\n                code\\r\\n                redirect\\r\\n            }\\r\\n            sslSettings {\\r\\n                ssl\\r\\n                sslRedirect\\r\\n                certificateId\\r\\n                availableCertificates {\\r\\n                    id\\r\\n                    name\\r\\n                    repository\\r\\n                }\\r\\n            }\\r\\n            aspNetSettings {\\r\\n                versions\\r\\n                configs {\\r\\n                    version\\r\\n                }\\r\\n            }\\r\\n            webstatSettings {\\r\\n                webstat\\r\\n                webstatProtected\\r\\n            }\\r\\n            webScriptingSettings {\\r\\n                ssi\\r\\n                ssiHtml\\r\\n                cgi\\r\\n                cgiMode\\r\\n                fastcgi\\r\\n                asp\\r\\n                aspDotNet\\r\\n                perl\\r\\n                python\\r\\n                webDeploy\\r\\n                errorDocs\\r\\n                writeModify\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"HostingSettingsPage\"] = oneQuery(doc, \"HostingSettingsPage\");\n        \r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { readLocalStorageValue } from 'common/helpers/readLocalStorageValue';\r\nimport { PROTECTED_DIRECTORY_LIST_DEFAULT_INPUT } from 'components/pages/ProtectedDirectoryListPage/listDefaultInput';\r\nimport { protectedDirectoryAddRoute } from 'routes/protectedDirectoryAddRoute';\r\nimport { protectedDirectoryEditRoute } from 'routes/protectedDirectoryEditRoute';\r\nimport apolloClient from '../apolloClient';\r\n\r\nimport PROTECTED_DIRECTORY_LIST from 'queries/ProtectedDirectoryList.graphql';\r\nimport PROTECTED_DIRECTORY_LIST_PAGE from 'queries/ProtectedDirectoryListPage.graphql';\r\n\r\nexport const protectedDirectoryListRoute = {\r\n    path: '/cp/domains/:domainId/protected-directories',\r\n    componentLoader: () => import(\r\n        /* webpackChunkName: \"components/pages/ProtectedDirectoryListPage\" */\r\n        'components/pages/ProtectedDirectoryListPage'\r\n    ),\r\n    loader: async ({ params }) => {\r\n        const input = readLocalStorageValue(\r\n            `ProtectedDirectoryListPageInput${params.domainId}`,\r\n            PROTECTED_DIRECTORY_LIST_DEFAULT_INPUT,\r\n        );\r\n        const id = btoa(`Domain:${params.domainId}`);\r\n\r\n        const [{ data: domainData }, { data: listData }] = await Promise.all([\r\n            apolloClient.query({\r\n                query: PROTECTED_DIRECTORY_LIST_PAGE,\r\n                variables: { id },\r\n            }),\r\n            apolloClient.query({\r\n                query: PROTECTED_DIRECTORY_LIST,\r\n                variables: { id, input },\r\n            }),\r\n        ]);\r\n\r\n        if (!listData.domain.hosting) {\r\n            throw new Response('Not Found', { status: 404 });\r\n        }\r\n\r\n        return domainData;\r\n    },\r\n    children: [\r\n        protectedDirectoryAddRoute,\r\n        protectedDirectoryEditRoute,\r\n    ],\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nexport const PROTECTED_DIRECTORY_LIST_DEFAULT_INPUT = {\r\n    pagination: {\r\n        page: 1,\r\n        itemsPerPage: 25,\r\n    },\r\n    searchFilters: {\r\n        path: '',\r\n    },\r\n    sort: {\r\n        sortColumn: null,\r\n        sortDirection: null,\r\n    },\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport apolloClient from 'apolloClient';\r\n\r\nimport PROTECTED_DIRECTORY_ADD_PAGE from 'queries/ProtectedDirectoryAddPage.graphql';\r\n\r\nexport const protectedDirectoryAddRoute = {\r\n    path: 'add',\r\n    componentLoader: () => import(\r\n        /* webpackChunkName: \"components/pages/ProtectedDirectoryAddPage\" */\r\n        'components/pages/ProtectedDirectoryAddPage'\r\n    ),\r\n    loader: async ({ params }) => {\r\n        const { domainId } = params;\r\n        const { data: { domain: { hosting } } } = await apolloClient.query({\r\n            query: PROTECTED_DIRECTORY_ADD_PAGE,\r\n            variables: { domainId: btoa(`Domain:${domainId}`) },\r\n        });\r\n\r\n        return {\r\n            domainId,\r\n            isProtectedDirectoryLocationSupported: hosting?.isProtectedDirectoryLocationSupported || false,\r\n        };\r\n    },\r\n};\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ProtectedDirectoryAddPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"domainId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"domain\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"domainId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Domain\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hosting\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isProtectedDirectoryLocationSupported\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":241}};\n    doc.loc.source = {\"body\":\"query ProtectedDirectoryAddPage($domainId: ID!) {\\r\\n    domain: node(id: $domainId) {\\r\\n        ... on Domain {\\r\\n            id\\r\\n            hosting {\\r\\n                isProtectedDirectoryLocationSupported\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ProtectedDirectoryAddPage\"] = oneQuery(doc, \"ProtectedDirectoryAddPage\");\n        \r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport apolloClient from 'apolloClient';\r\n\r\nimport PROTECTED_DIRECTORY_EDIT_PAGE from 'queries/ProtectedDirectoryEditPage.graphql';\r\n\r\nexport const protectedDirectoryEditRoute = {\r\n    path: ':protectedDirectoryId/edit',\r\n    componentLoader: () => import(\r\n        /* webpackChunkName: \"components/pages/ProtectedDirectoryEditPage\" */\r\n        'components/pages/ProtectedDirectoryEditPage'\r\n    ),\r\n    loader: async ({ params }) => {\r\n        const { domainId, protectedDirectoryId } = params;\r\n        const { data: { domain: { hosting }, protectedDirectory } } = await apolloClient.query({\r\n            query: PROTECTED_DIRECTORY_EDIT_PAGE,\r\n            variables: {\r\n                id: btoa(`ProtectedDirectory:${protectedDirectoryId}`),\r\n                domainId: btoa(`Domain:${domainId}`),\r\n            },\r\n        });\r\n\r\n        return {\r\n            protectedDirectoryId,\r\n            protectedDirectory,\r\n            isProtectedDirectoryLocationSupported: hosting?.isProtectedDirectoryLocationSupported || false,\r\n        };\r\n    },\r\n};\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ProtectedDirectoryEditPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"domainId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"protectedDirectory\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"ProtectedDirectoryEditFragment\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"domain\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"domainId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Domain\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hosting\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isProtectedDirectoryLocationSupported\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":403}};\n    doc.loc.source = {\"body\":\"#import \\\"queries/ProtectedDirectoryEditFragment.graphql\\\"\\r\\n\\r\\nquery ProtectedDirectoryEditPage($domainId: ID!, $id: ID!) {\\r\\n    protectedDirectory: node(id: $id) {\\r\\n        ...ProtectedDirectoryEditFragment\\r\\n    }\\r\\n    domain: node(id: $domainId) {\\r\\n        ... on Domain {\\r\\n            id\\r\\n            hosting {\\r\\n                isProtectedDirectoryLocationSupported\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  doc.definitions = doc.definitions.concat(unique(require(\"queries/ProtectedDirectoryEditFragment.graphql\").definitions));\r\n\r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ProtectedDirectoryEditPage\"] = oneQuery(doc, \"ProtectedDirectoryEditPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ProtectedDirectoryEditFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ProtectedDirectory\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"realm\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isNonSsl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isCgiBin\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":125}};\n    doc.loc.source = {\"body\":\"fragment ProtectedDirectoryEditFragment on ProtectedDirectory {\\r\\n    id\\r\\n    path\\r\\n    realm\\r\\n    isNonSsl\\r\\n    isCgiBin\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ProtectedDirectoryEditFragment\"] = oneQuery(doc, \"ProtectedDirectoryEditFragment\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ProtectedDirectoryList\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ProtectedDirectoryListInput\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"domain\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Domain\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hosting\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"protectedDirectories\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"realm\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pageInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"current\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"total\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pageCount\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":629}};\n    doc.loc.source = {\"body\":\"query ProtectedDirectoryList(\\r\\n    $id: ID!\\r\\n    $input: ProtectedDirectoryListInput\\r\\n) {\\r\\n    domain: node(id: $id) {\\r\\n        ... on Domain {\\r\\n            id\\r\\n            hosting {\\r\\n                protectedDirectories(\\r\\n                    input: $input\\r\\n                ) {\\r\\n                    nodes {\\r\\n                        id\\r\\n                        path\\r\\n                        realm\\r\\n                    }\\r\\n                    pageInfo {\\r\\n                        current\\r\\n                        total\\r\\n                        pageCount\\r\\n                    }\\r\\n                }\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ProtectedDirectoryList\"] = oneQuery(doc, \"ProtectedDirectoryList\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ProtectedDirectoryListPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"domain\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Domain\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"idn\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":false}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"baseDomain\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"owner\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":314}};\n    doc.loc.source = {\"body\":\"query ProtectedDirectoryListPage(\\r\\n    $id: ID!\\r\\n) {\\r\\n    domain: node(id: $id) {\\r\\n        ... on Domain {\\r\\n            id\\r\\n            name(idn: false)\\r\\n            baseDomain {\\r\\n                id\\r\\n                name\\r\\n            }\\r\\n            owner {\\r\\n                id\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ProtectedDirectoryListPage\"] = oneQuery(doc, \"ProtectedDirectoryListPage\");\n        \r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport apolloClient from '../apolloClient';\r\n\r\nconst serverSummaryReportLoader = async ({ request }) => {\r\n    const url = new URL(request.url);\r\n    const layoutId = url.searchParams.get('layoutId') || '';\r\n    await apolloClient.query({\r\n        query: require('queries/SummaryReportPage.graphql'),\r\n        variables: { layoutId: layoutId ? parseInt(layoutId) : '' },\r\n    });\r\n};\r\n\r\nconst clientSummaryReportLoader = async ({ params: { clientId }, request }) => {\r\n    const url = new URL(request.url);\r\n    const layoutId = url.searchParams.get('layoutId') || '';\r\n    await apolloClient.query({\r\n        query: require('queries/ClientSummaryReport.graphql'),\r\n        variables: { clientId: btoa(`Client:${clientId}`), layoutId: layoutId ? parseInt(layoutId) : '' },\r\n    });\r\n};\r\n\r\nexport const ServerSummaryReportRoute = {\r\n    path: '/cp/server/summary-report',\r\n    children: [{\r\n        index: true,\r\n        componentLoader: () => import(/* webpackChunkName: \"components/pages/SummaryReportPage\" */'components/pages/SummaryReportPage'),\r\n        loader: serverSummaryReportLoader,\r\n    }, {\r\n        path: 'print',\r\n        componentLoader: () => import(/* webpackChunkName: \"components/pages/SummaryReportPage/SummaryReportPrintPage\" */\r\n            'components/pages/SummaryReportPage/SummaryReportPrintPage'),\r\n        loader: serverSummaryReportLoader,\r\n    }, {\r\n        path: 'layouts',\r\n        componentLoader: () => import(/* webpackChunkName: \"components/pages/SummaryReportLayoutsPage\" */'components/pages/SummaryReportLayoutsPage'),\r\n        loader: async () => {\r\n            const { data } = await apolloClient.query({\r\n                query: require('queries/SummaryReportLayoutsPage.graphql'),\r\n            });\r\n            return data;\r\n        },\r\n        children: [{\r\n            path: 'add',\r\n            componentLoader: () => import(\r\n                /* webpackChunkName: \"components/pages/SummaryReportLayoutsPage\" */\r\n                'components/pages/SummaryReportLayoutsPage/AddPage'\r\n            ),\r\n            loader: async () => {\r\n                const { data } = await apolloClient.query({\r\n                    query: require('queries/SummaryReportLayoutAddPage.graphql'),\r\n                });\r\n                return data;\r\n            },\r\n        }, {\r\n            path: ':layoutId/edit',\r\n            componentLoader: () => import(\r\n                /* webpackChunkName: \"components/pages/SummaryReportLayoutsPage\" */\r\n                'components/pages/SummaryReportLayoutsPage/EditPage'\r\n            ),\r\n            loader: async ({ params: { layoutId } }) => {\r\n                const { data } = await apolloClient.query({\r\n                    query: require('queries/SummaryReportLayoutEditPage.graphql'),\r\n                    variables: { id: btoa(`SummaryReportLayout:${layoutId}`) },\r\n                });\r\n                return data;\r\n            },\r\n        }],\r\n    }, {\r\n        path: 'traffic-history',\r\n        componentLoader: () => import(/* webpackChunkName: \"components/pages/TrafficHistoryReportPage\" */'components/pages/TrafficHistoryReportPage'),\r\n        loader: async () => {\r\n            await apolloClient.query({\r\n                query: require('queries/TrafficHistoryReportPage.graphql'),\r\n            });\r\n        },\r\n    }],\r\n};\r\n\r\n\r\nexport const ClientSummaryReportRoute = {\r\n    path: '/cp/client/:clientId/summary-report',\r\n    children: [{\r\n        index: true,\r\n        componentLoader: () => import(\r\n            /* webpackChunkName: \"components/pages/SummaryReportPage/ClientSummaryReportPage\" */'components/pages/SummaryReportPage/ClientSummaryReportPage'),\r\n        loader: clientSummaryReportLoader,\r\n    }, {\r\n        path: 'print',\r\n        componentLoader: () => import(\r\n            /* webpackChunkName: \"components/pages/SummaryReportPage/ClientSummaryReportPrintPage\" */'components/pages/SummaryReportPage/ClientSummaryReportPrintPage'),\r\n        loader: clientSummaryReportLoader,\r\n    }, {\r\n        path: 'traffic-history',\r\n        componentLoader: () => import(/* webpackChunkName: \"components/pages/ClientTrafficHistoryReportPage\" */'components/pages/ClientTrafficHistoryReportPage'),\r\n        loader: async ({ params: { clientId } }) => {\r\n            await apolloClient.query({\r\n                query: require('queries/ClientTrafficHistoryReportPage.graphql'),\r\n                variables: { clientId: btoa(`Client:${clientId}`) },\r\n            });\r\n        },\r\n    }],\r\n};\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"layoutId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"email\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"summaryReportLayouts\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isDefault\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"server\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"summaryReport\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"layoutId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"layoutId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportFragment\"},\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":393}};\n    doc.loc.source = {\"body\":\"#import \\\"./SummaryReportFragment.graphql\\\"\\r\\n\\r\\nquery SummaryReportPage($layoutId: ID) {\\r\\n     viewer {\\r\\n        login\\r\\n        client {\\r\\n            email\\r\\n        }\\r\\n        summaryReportLayouts {\\r\\n            name\\r\\n            isDefault\\r\\n            id\\r\\n        }\\r\\n    }\\r\\n    server {\\r\\n        summaryReport(layoutId: $layoutId) {\\r\\n            ...SummaryReportFragment\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  doc.definitions = doc.definitions.concat(unique(require(\"./SummaryReportFragment.graphql\").definitions));\r\n\r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"SummaryReportPage\"] = oneQuery(doc, \"SummaryReportPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReport\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"general\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"version\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"build\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"cname\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pname\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ownerPname\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ownerLogin\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"phone\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fax\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"email\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"addr\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"city\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pcode\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"country\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"creationDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resellers\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resellers\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activeResellers\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resellersList\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resProblem\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resStatus\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resPname\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resCrDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resActiveClients\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resClients\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resDiskSpace\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resTraffic\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resActiveDomains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resDomains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resSubdomains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resPostboxes\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resMailGroups\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resMailResps\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resMailLists\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resWebUsers\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resDataBases\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clients\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clients\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activeClients\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clientsList\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clProblem\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clStatus\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clPname\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clOwner\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clCrDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clDiskSpace\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clTraffic\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clActiveDomains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clDomains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clSubdomains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clPostboxes\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clMailGroups\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clMailResps\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clMailLists\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clWebUsers\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clDataBases\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"personalClients\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clients\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activeClients\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clientsList\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clProblem\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clStatus\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clPname\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clOwner\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clCrDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clDiskSpace\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clTraffic\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clActiveDomains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clDomains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clSubdomains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clPostboxes\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clMailGroups\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clMailResps\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clMailLists\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clWebUsers\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clDataBases\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domains\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"diskSpace\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"traffic\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activeDomains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subdomains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"postboxes\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mailGroups\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mailResps\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mailLists\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUsers\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dataBases\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sitebuilderSites\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domainsList\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domStatus\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domHtype\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domOwner\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domCrDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domDiskSpace\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domTraffic\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domSubdomains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domPostboxes\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domMailGroups\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domMailResps\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domMailLists\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domWebUsers\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domDataBases\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"personalDomains\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"diskSpace\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"traffic\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activeDomains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subdomains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"postboxes\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mailGroups\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mailResps\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mailLists\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUsers\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dataBases\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sitebuilderSites\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domainsList\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domStatus\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domHtype\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domOwner\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domCrDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domDiskSpace\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domTraffic\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domSubdomains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domPostboxes\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domMailGroups\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domMailResps\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domMailLists\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domWebUsers\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domDataBases\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":2568}};\n    doc.loc.source = {\"body\":\"fragment SummaryReportFragment on SummaryReport  {\\r\\n  general {\\r\\n    version\\r\\n    build\\r\\n    cname\\r\\n    pname\\r\\n    ownerPname\\r\\n    ownerLogin\\r\\n    login\\r\\n    phone\\r\\n    fax\\r\\n    email\\r\\n    addr\\r\\n    city\\r\\n    state\\r\\n    pcode\\r\\n    country\\r\\n    creationDate\\r\\n    description\\r\\n}\\r\\n\\r\\nresellers {\\r\\n    resellers\\r\\n    activeResellers\\r\\n    resellersList {\\r\\n        resProblem\\r\\n        resStatus\\r\\n        resPname\\r\\n        resCrDate\\r\\n        resActiveClients\\r\\n        resClients\\r\\n        resDiskSpace\\r\\n        resTraffic\\r\\n        resActiveDomains\\r\\n        resDomains\\r\\n        resSubdomains\\r\\n        resPostboxes\\r\\n        resMailGroups\\r\\n        resMailResps\\r\\n        resMailLists\\r\\n        resWebUsers\\r\\n        resDataBases\\r\\n    }\\r\\n}\\r\\nclients {\\r\\n    clients\\r\\n    activeClients\\r\\n    clientsList {\\r\\n        clProblem\\r\\n        clStatus\\r\\n        clPname\\r\\n        clOwner\\r\\n        clCrDate\\r\\n        clDiskSpace\\r\\n        clTraffic\\r\\n        clActiveDomains\\r\\n        clDomains\\r\\n        clSubdomains\\r\\n        clPostboxes\\r\\n        clMailGroups\\r\\n        clMailResps\\r\\n        clMailLists\\r\\n        clWebUsers\\r\\n        clDataBases  \\r\\n    }\\r\\n}\\r\\npersonalClients {\\r\\n    clients\\r\\n    activeClients\\r\\n    clientsList {\\r\\n        clProblem\\r\\n        clStatus\\r\\n        clPname\\r\\n        clOwner\\r\\n        clCrDate\\r\\n        clDiskSpace\\r\\n        clTraffic\\r\\n        clActiveDomains\\r\\n        clDomains\\r\\n        clSubdomains\\r\\n        clPostboxes\\r\\n        clMailGroups\\r\\n        clMailResps\\r\\n        clMailLists\\r\\n        clWebUsers\\r\\n        clDataBases  \\r\\n    }\\r\\n}\\r\\ndomains {\\r\\n    diskSpace\\r\\n    traffic\\r\\n    activeDomains\\r\\n    subdomains\\r\\n    postboxes\\r\\n    mailGroups\\r\\n    mailResps\\r\\n    mailLists\\r\\n    webUsers\\r\\n    dataBases\\r\\n    sitebuilderSites\\r\\n    domains\\r\\n    domainsList {\\r\\n        domStatus\\r\\n        domHtype\\r\\n        domName\\r\\n        domOwner\\r\\n        domCrDate\\r\\n        domDiskSpace\\r\\n        domTraffic\\r\\n        domSubdomains\\r\\n        domPostboxes\\r\\n        domMailGroups\\r\\n        domMailResps\\r\\n        domMailLists\\r\\n        domWebUsers\\r\\n        domDataBases \\r\\n    }\\r\\n}\\r\\npersonalDomains {\\r\\n    diskSpace\\r\\n    traffic\\r\\n    activeDomains\\r\\n    subdomains\\r\\n    postboxes\\r\\n    mailGroups\\r\\n    mailResps\\r\\n    mailLists\\r\\n    webUsers\\r\\n    dataBases\\r\\n    sitebuilderSites\\r\\n    domains\\r\\n    domainsList {\\r\\n        domStatus\\r\\n        domHtype\\r\\n        domName\\r\\n        domOwner\\r\\n        domCrDate\\r\\n        domDiskSpace\\r\\n        domTraffic\\r\\n        domSubdomains\\r\\n        domPostboxes\\r\\n        domMailGroups\\r\\n        domMailResps\\r\\n        domMailLists\\r\\n        domWebUsers\\r\\n        domDataBases \\r\\n    }\\r\\n  }\\r\\n}\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"SummaryReportFragment\"] = oneQuery(doc, \"SummaryReportFragment\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ClientSummaryReport\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"layoutId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"email\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"summaryReportLayouts\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isDefault\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"client\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Client\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"summaryReport\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"layoutId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"layoutId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportFragment\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":511}};\n    doc.loc.source = {\"body\":\"#import \\\"./SummaryReportFragment.graphql\\\"\\r\\n\\r\\nquery ClientSummaryReport($clientId: ID!, $layoutId: ID) {\\r\\n    viewer {\\r\\n        login\\r\\n        client {\\r\\n            email\\r\\n        }\\r\\n        summaryReportLayouts {\\r\\n            name\\r\\n            isDefault\\r\\n            id\\r\\n        }\\r\\n    }\\r\\n    client: node(id: $clientId) {\\r\\n        ... on Client {\\r\\n            id\\r\\n            login\\r\\n            summaryReport(layoutId: $layoutId) {\\r\\n               ...SummaryReportFragment\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  doc.definitions = doc.definitions.concat(unique(require(\"./SummaryReportFragment.graphql\").definitions));\r\n\r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ClientSummaryReport\"] = oneQuery(doc, \"ClientSummaryReport\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportLayoutsPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"summaryReportLayouts\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isDefault\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"general\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resellers\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clients\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"personalClients\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"personalDomains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"autoDelivery\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canManageResellers\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canManageCustomers\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":479}};\n    doc.loc.source = {\"body\":\"query SummaryReportLayoutsPage {\\r\\n    viewer {\\r\\n        login\\r\\n        type\\r\\n        summaryReportLayouts {\\r\\n            name\\r\\n            isDefault\\r\\n            id\\r\\n            general\\r\\n            resellers\\r\\n            clients\\r\\n            personalClients\\r\\n            domains\\r\\n            personalDomains\\r\\n            autoDelivery\\r\\n        }\\r\\n        client {\\r\\n            id\\r\\n        }\\r\\n    }\\r\\n    mode {\\r\\n        canManageResellers\\r\\n        canManageCustomers\\r\\n    }\\r\\n}\\r\\n\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"SummaryReportLayoutsPage\"] = oneQuery(doc, \"SummaryReportLayoutsPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportLayoutAddPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canManageResellers\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canManageCustomers\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":164}};\n    doc.loc.source = {\"body\":\"query SummaryReportLayoutAddPage {\\r\\n    mode {\\r\\n        canManageResellers\\r\\n        canManageCustomers\\r\\n    }\\r\\n    viewer {\\r\\n        login\\r\\n        type\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"SummaryReportLayoutAddPage\"] = oneQuery(doc, \"SummaryReportLayoutAddPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportLayoutEditPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"summaryReportLayout\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportLayout\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isDefault\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"general\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resellers\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clients\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"personalClients\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"personalDomains\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":349}};\n    doc.loc.source = {\"body\":\"query SummaryReportLayoutEditPage($id: ID!) {\\r\\n    summaryReportLayout: node(id: $id) {\\r\\n        ... on SummaryReportLayout {\\r\\n            id\\r\\n            name\\r\\n            isDefault\\r\\n            general\\r\\n            resellers\\r\\n            clients\\r\\n            personalClients\\r\\n            domains\\r\\n            personalDomains\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"SummaryReportLayoutEditPage\"] = oneQuery(doc, \"SummaryReportLayoutEditPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"TrafficHistoryReportPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"server\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"trafficHistory\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"year\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"month\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"trafficUsage\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":160}};\n    doc.loc.source = {\"body\":\"query TrafficHistoryReportPage {\\r\\n    server {\\r\\n        trafficHistory {\\r\\n            year\\r\\n            month\\r\\n            trafficUsage\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"TrafficHistoryReportPage\"] = oneQuery(doc, \"TrafficHistoryReportPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ClientTrafficHistoryReportPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"client\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Client\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"trafficHistory\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"year\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"month\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"trafficUsage\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":292}};\n    doc.loc.source = {\"body\":\"query ClientTrafficHistoryReportPage($clientId: ID!) {\\r\\n    client: node(id: $clientId) {\\r\\n        ... on Client {\\r\\n            id\\r\\n            login\\r\\n            trafficHistory {\\r\\n                year\\r\\n                month\\r\\n                trafficUsage\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ClientTrafficHistoryReportPage\"] = oneQuery(doc, \"ClientTrafficHistoryReportPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"IpAddressDomainsPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddressId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddressId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IpAddress\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"defaultDomain\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domains\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":438}};\n    doc.loc.source = {\"body\":\"query IpAddressDomainsPage($clientId: ID, $ipAddressId: ID!) {\\r\\n    viewer {\\r\\n        type\\r\\n        login\\r\\n    }\\r\\n    ipAddress: node(id: $ipAddressId) {\\r\\n        ... on IpAddress {\\r\\n            id\\r\\n            type\\r\\n            ipAddress\\r\\n            defaultDomain {\\r\\n                id\\r\\n            }\\r\\n            domains(filter: { clientId: $clientId }) {\\r\\n                id\\r\\n                name\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"IpAddressDomainsPage\"] = oneQuery(doc, \"IpAddressDomainsPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"PrepareChangeSubscriptionsOwner\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"ids\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clients\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clients\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"domains\"},\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"ids\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"ids\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Domain\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"owner\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddresses\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":588}};\n    doc.loc.source = {\"body\":\"query PrepareChangeSubscriptionsOwner($ids: [ID!]!) {\\r\\n    viewer {\\r\\n        login\\r\\n        client {\\r\\n            id\\r\\n            clients {\\r\\n                id\\r\\n                name\\r\\n                clients {\\r\\n                    id\\r\\n                    name\\r\\n                }\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n    domains: nodes(ids: $ids) {\\r\\n        id\\r\\n        ... on Domain {\\r\\n            name\\r\\n            owner {\\r\\n                id\\r\\n                name\\r\\n            }\\r\\n            ipAddresses {\\r\\n                id\\r\\n                ipAddress\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"PrepareChangeSubscriptionsOwner\"] = oneQuery(doc, \"PrepareChangeSubscriptionsOwner\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"LoginPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resolvableHostname\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mobileApplicationPromotion\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"icon\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"config\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"gdpr\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"cookieSettings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"loginFormEntrypointEnabled\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"howToLoginArticle\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"locales\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isRtl\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"serverInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"cloudType\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isFirstLogin\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"loginContentInclude\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"headContent\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bodyContent\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":591}};\n    doc.loc.source = {\"body\":\"query LoginPage {\\r\\n    viewer {\\r\\n        login\\r\\n        resolvableHostname\\r\\n        mobileApplicationPromotion {\\r\\n            name\\r\\n            icon\\r\\n            url\\r\\n        }\\r\\n    }\\r\\n    config {\\r\\n        gdpr {\\r\\n            cookieSettings {\\r\\n                loginFormEntrypointEnabled\\r\\n            }\\r\\n        }\\r\\n        login {\\r\\n            howToLoginArticle\\r\\n        }\\r\\n    }\\r\\n    locales {\\r\\n        code\\r\\n        name\\r\\n        isRtl\\r\\n    }\\r\\n    serverInfo {\\r\\n        cloudType\\r\\n        isFirstLogin\\r\\n    }\\r\\n    loginContentInclude {\\r\\n        headContent\\r\\n        bodyContent\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"LoginPage\"] = oneQuery(doc, \"LoginPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"DnsRecordsPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isUnix\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dns\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"template\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"templateNotSynchronized\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soaTemplateNotSynchronized\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isExternalDnsEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"records\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"host\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"val\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ttl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"displayHost\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"displayVal\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domainName\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":472}};\n    doc.loc.source = {\"body\":\"query DnsRecordsPage {\\r\\n    os {\\r\\n        isUnix\\r\\n    }\\r\\n    dns {\\r\\n        template {\\r\\n            isEnabled\\r\\n            templateNotSynchronized\\r\\n            soaTemplateNotSynchronized\\r\\n            isExternalDnsEnabled\\r\\n            records {\\r\\n                id\\r\\n                type\\r\\n                host\\r\\n                val\\r\\n                ttl\\r\\n                displayHost\\r\\n                displayVal\\r\\n                domainName\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"DnsRecordsPage\"] = oneQuery(doc, \"DnsRecordsPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"DnsRecordEditQuery\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isUnix\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dns\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"supportedRecordTypes\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"template\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isEnabled\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"DnsRecordTemplate\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"host\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"displayVal\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"displayHost\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domainName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ttl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"opt\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":422}};\n    doc.loc.source = {\"body\":\"query DnsRecordEditQuery($id: ID!) {\\r\\n    os {\\r\\n        isUnix\\r\\n    }\\r\\n    dns {\\r\\n        supportedRecordTypes\\r\\n        template {\\r\\n            isEnabled\\r\\n        }\\r\\n    }\\r\\n    node(id: $id) {\\r\\n        id\\r\\n        ... on DnsRecordTemplate {\\r\\n            type\\r\\n            host\\r\\n            id\\r\\n            displayVal\\r\\n            displayHost\\r\\n            domainName\\r\\n            ttl\\r\\n            opt\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"DnsRecordEditQuery\"] = oneQuery(doc, \"DnsRecordEditQuery\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"DnsRecordQuery\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isUnix\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dns\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"supportedRecordTypes\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"template\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isEnabled\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":162}};\n    doc.loc.source = {\"body\":\"query DnsRecordQuery {\\r\\n    os {\\r\\n        isUnix\\r\\n    }\\r\\n    dns {\\r\\n        supportedRecordTypes\\r\\n        template {\\r\\n            isEnabled\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"DnsRecordQuery\"] = oneQuery(doc, \"DnsRecordQuery\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"DnsSoaRecordsPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dns\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"template\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soaRecord\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mname\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ttl\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"unit\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"refresh\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"unit\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"retry\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"unit\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"expire\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"unit\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"minimum\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"unit\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"serialNumberFormat\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rnameDomain\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rnameExternal\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rnameType\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rnameEnforce\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isExternalDnsEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"records\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"value\":{\"kind\":\"ListValue\",\"values\":[{\"kind\":\"EnumValue\",\"value\":\"NS\"}]}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"displayVal\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":931}};\n    doc.loc.source = {\"body\":\"query DnsSoaRecordsPage {\\r\\n    dns {\\r\\n        template {\\r\\n            soaRecord {\\r\\n                mname\\r\\n                ttl {\\r\\n                    value\\r\\n                    unit\\r\\n                }\\r\\n                refresh {\\r\\n                    value\\r\\n                    unit\\r\\n                }\\r\\n                retry {\\r\\n                    value\\r\\n                    unit\\r\\n                }\\r\\n                expire {\\r\\n                    value\\r\\n                    unit\\r\\n                }\\r\\n                minimum {\\r\\n                    value\\r\\n                    unit\\r\\n                }\\r\\n                serialNumberFormat\\r\\n                rnameDomain\\r\\n                rnameExternal\\r\\n                rnameType\\r\\n                rnameEnforce\\r\\n            }\\r\\n            isEnabled\\r\\n            isExternalDnsEnabled\\r\\n            records(filter: { type: [NS] } ) {\\r\\n                displayVal\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"DnsSoaRecordsPage\"] = oneQuery(doc, \"DnsSoaRecordsPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"BandwidthLimitingPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"domain\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Domain\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"idn\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":false}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"baseDomain\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hosting\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"performance\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"trafficBandwidth\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"maxConnection\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"capability\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"packages\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isQoSStarted\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":488}};\n    doc.loc.source = {\"body\":\"query BandwidthLimitingPage($id: ID!) {\\r\\n    domain: node(id: $id) {\\r\\n        ... on Domain {\\r\\n            id\\r\\n            name(idn: false)\\r\\n            baseDomain {\\r\\n                id\\r\\n                name\\r\\n            }\\r\\n            hosting {\\r\\n                performance {\\r\\n                    trafficBandwidth\\r\\n                    maxConnection\\r\\n                }\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n    capability {\\r\\n        packages {\\r\\n            isQoSStarted\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"BandwidthLimitingPage\"] = oneQuery(doc, \"BandwidthLimitingPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"HotlinkProtectionPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"domain\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Domain\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"idn\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":false}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"baseDomain\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hosting\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hotlinkProtection\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"extensions\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"friends\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":431}};\n    doc.loc.source = {\"body\":\"query HotlinkProtectionPage($id: ID!) {\\r\\n    domain: node(id: $id) {\\r\\n        ... on Domain {\\r\\n            id\\r\\n            name(idn: false)\\r\\n            baseDomain {\\r\\n                id\\r\\n                name\\r\\n            }\\r\\n            hosting {\\r\\n                hotlinkProtection {\\r\\n                    isEnabled\\r\\n                    extensions\\r\\n                    friends\\r\\n                }\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"HotlinkProtectionPage\"] = oneQuery(doc, \"HotlinkProtectionPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"EditInterfaceViewPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"permissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageServerUi\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageServerLanguages\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clients\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isViewSwitcherAllowed\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isPowerUserPanel\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isSimplePanel\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isSimplePanelAllowed\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isSimplePanelLocked\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isMailBounceHidden\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isMailServiceSupported\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":472}};\n    doc.loc.source = {\"body\":\"query EditInterfaceViewPage {\\r\\n    viewer {\\r\\n        login\\r\\n        permissions {\\r\\n            manageServerUi\\r\\n            manageServerLanguages\\r\\n        }\\r\\n        client {\\r\\n            clients {\\r\\n                id\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n    mode {\\r\\n        isViewSwitcherAllowed\\r\\n        isPowerUserPanel\\r\\n        isSimplePanel\\r\\n        isSimplePanelAllowed\\r\\n        isSimplePanelLocked\\r\\n        isMailBounceHidden\\r\\n        isMailServiceSupported\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"EditInterfaceViewPage\"] = oneQuery(doc, \"EditInterfaceViewPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"NotificationUiSettings\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"notification\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"panel\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"settings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"storagePeriod\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"templates\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"context\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sendToAdmin\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":299}};\n    doc.loc.source = {\"body\":\"query NotificationUiSettings {\\r\\n    notification {\\r\\n        panel {\\r\\n            settings {\\r\\n                storagePeriod\\r\\n            }\\r\\n            templates {\\r\\n                code\\r\\n                context\\r\\n                title\\r\\n                sendToAdmin\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"NotificationUiSettings\"] = oneQuery(doc, \"NotificationUiSettings\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"BrandingPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"branding\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"customTitle\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"logo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fake\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"customFavicon\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":236}};\n    doc.loc.source = {\"body\":\"query BrandingPage {\\r\\n    viewer {\\r\\n        login\\r\\n        type\\r\\n        branding {\\r\\n            customTitle\\r\\n            logo {\\r\\n                url\\r\\n                fake\\r\\n            }\\r\\n            customFavicon\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"BrandingPage\"] = oneQuery(doc, \"BrandingPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"DatabaseServersPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"databaseServers\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fork\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"host\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"port\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lastError\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"serverVersion\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canBeUpgraded\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isLocal\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isDefaultServer\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isUsedForPsaDb\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isWebadminInstalled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isDynamicPort\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"databasesCount\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryKey\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pleskKeyId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"keyRemoteDb\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isDemo\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isWindows\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":488}};\n    doc.loc.source = {\"body\":\"query DatabaseServersPage {\\r\\n    databaseServers {\\r\\n        id\\r\\n        name\\r\\n        type\\r\\n        fork\\r\\n        host\\r\\n        port\\r\\n        lastError\\r\\n        serverVersion\\r\\n        canBeUpgraded\\r\\n        isLocal\\r\\n        isDefaultServer\\r\\n        isUsedForPsaDb\\r\\n        isWebadminInstalled\\r\\n        isDynamicPort\\r\\n        databasesCount\\r\\n    }\\r\\n    primaryKey {\\r\\n        pleskKeyId\\r\\n        keyRemoteDb\\r\\n    }\\r\\n    mode {\\r\\n        isDemo\\r\\n    }\\r\\n    os {\\r\\n        isWindows\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"DatabaseServersPage\"] = oneQuery(doc, \"DatabaseServersPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"DatabaseServerCreatePage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"server\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"allowedByKeyDatabaseServerTypes\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":99}};\n    doc.loc.source = {\"body\":\"query DatabaseServerCreatePage {\\r\\n    server {\\r\\n        allowedByKeyDatabaseServerTypes\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"DatabaseServerCreatePage\"] = oneQuery(doc, \"DatabaseServerCreatePage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"DatabaseServerPropertiesPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isWindows\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"databaseServer\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"DatabaseServer\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"host\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"port\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"serverVersion\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canBeUpgraded\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isDefaultServer\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isUsedForPsaDb\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isAdminCredentialsChangeable\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"adminLogin\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"externalConnections\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"databasesCount\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"backupSettings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tempDir\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"networkTempDir\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"networkUser\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"networkPassword\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":661}};\n    doc.loc.source = {\"body\":\"query DatabaseServerPropertiesPage($id: ID!) {\\r\\n    os {\\r\\n        isWindows\\r\\n    }\\r\\n    databaseServer: node(id: $id) {\\r\\n        id\\r\\n        ... on DatabaseServer {\\r\\n            name\\r\\n            type\\r\\n            host\\r\\n            port\\r\\n            serverVersion\\r\\n            canBeUpgraded\\r\\n            isDefaultServer\\r\\n            isUsedForPsaDb\\r\\n            isAdminCredentialsChangeable\\r\\n            adminLogin\\r\\n            externalConnections\\r\\n            databasesCount\\r\\n            backupSettings {\\r\\n                tempDir\\r\\n                networkTempDir\\r\\n                networkUser\\r\\n                networkPassword\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"DatabaseServerPropertiesPage\"] = oneQuery(doc, \"DatabaseServerPropertiesPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"DatabaseServerUpgradePage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"databaseServer\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"DatabaseServer\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"host\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"port\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"serverVersion\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canBeUpgraded\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fork\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"availableReleases\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"version\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"features\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseNotesLink\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endOfLifeDate\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":527}};\n    doc.loc.source = {\"body\":\"query DatabaseServerUpgradePage($id: ID!) {\\r\\n    databaseServer: node(id: $id) {\\r\\n        id\\r\\n        ... on DatabaseServer {\\r\\n            name\\r\\n            type\\r\\n            host\\r\\n            port\\r\\n            serverVersion\\r\\n            canBeUpgraded\\r\\n            fork\\r\\n            availableReleases {\\r\\n                id\\r\\n                name\\r\\n                version\\r\\n                features\\r\\n                releaseNotesLink\\r\\n                releaseDate\\r\\n                endOfLifeDate\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"DatabaseServerUpgradePage\"] = oneQuery(doc, \"DatabaseServerUpgradePage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"DatabaseServerDatabasesPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isWindows\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isClassicPanel\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"databaseServer\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"DatabaseServer\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"databasesCount\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"databases\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domain\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"idn\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":false}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"owner\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":604}};\n    doc.loc.source = {\"body\":\"query DatabaseServerDatabasesPage($id: ID!) {\\r\\n    os {\\r\\n        isWindows\\r\\n    }\\r\\n    mode {\\r\\n        isClassicPanel\\r\\n    }\\r\\n    databaseServer: node(id: $id) {\\r\\n        id\\r\\n        ... on DatabaseServer {\\r\\n            name\\r\\n            databasesCount\\r\\n            databases {\\r\\n                id\\r\\n                name\\r\\n                domain {\\r\\n                    id\\r\\n                    name(idn: false)\\r\\n                    owner {\\r\\n                        id\\r\\n                        name\\r\\n                        type\\r\\n                    }\\r\\n                }\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"DatabaseServerDatabasesPage\"] = oneQuery(doc, \"DatabaseServerDatabasesPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"DatabaseServerChangePasswordPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isWindows\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"databaseServer\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"DatabaseServer\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"databasesCount\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":237}};\n    doc.loc.source = {\"body\":\"query DatabaseServerChangePasswordPage($id: ID!) {\\r\\n    os {\\r\\n        isWindows\\r\\n    }\\r\\n    databaseServer: node(id: $id) {\\r\\n        id\\r\\n        ... on DatabaseServer {\\r\\n            name\\r\\n            databasesCount\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"DatabaseServerChangePasswordPage\"] = oneQuery(doc, \"DatabaseServerChangePasswordPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"WebsitesDiagnosticPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"server\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"websitesDiagnostic\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domains\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"siteUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"idn\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":false}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"baseDomain\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"websitesDiagnosticChecks\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"date\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"depth\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"problems\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"settings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"date\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isRegularCheckEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isPromoShown\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"documentationLink\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isNewDomainsChecked\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lastCheckDuration\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"checkedDomains\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"idn\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":false}}],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"skippedDomains\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"idn\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":false}}],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":1011}};\n    doc.loc.source = {\"body\":\"query WebsitesDiagnosticPage {\\r\\n    server {\\r\\n        websitesDiagnostic {\\r\\n            domains {\\r\\n                id\\r\\n                siteUrl\\r\\n                name(idn: false)\\r\\n                baseDomain {\\r\\n                    id\\r\\n                }\\r\\n                websitesDiagnosticChecks {\\r\\n                    type\\r\\n                    date\\r\\n                    depth\\r\\n                    problems {\\r\\n                        name\\r\\n                        code\\r\\n                    }\\r\\n                }\\r\\n            }\\r\\n            settings {\\r\\n                date\\r\\n                isRegularCheckEnabled\\r\\n                isPromoShown\\r\\n                documentationLink\\r\\n                isNewDomainsChecked\\r\\n                lastCheckDuration\\r\\n                checkedDomains {\\r\\n                    id\\r\\n                    name(idn: false)\\r\\n                }\\r\\n                skippedDomains {\\r\\n                    id\\r\\n                    name(idn: false)\\r\\n                }\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"WebsitesDiagnosticPage\"] = oneQuery(doc, \"WebsitesDiagnosticPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"SystemTimePage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isWindows\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"serverInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isVirtuozzo\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"systemTime\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"day\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"month\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"year\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"minutes\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"seconds\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hours\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timezone\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timezones\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"daylightEnabled\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isDaylightSavingChangeEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isSynchronizeEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isSynchronizeSupported\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"synchronizedWith\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":479}};\n    doc.loc.source = {\"body\":\"query SystemTimePage {\\r\\n    os {\\r\\n        isWindows\\r\\n    }\\r\\n    serverInfo {\\r\\n        isVirtuozzo\\r\\n    }\\r\\n    systemTime {\\r\\n        day,\\r\\n        month,\\r\\n        year,\\r\\n        minutes,\\r\\n        seconds,\\r\\n        hours,\\r\\n        timezone\\r\\n        timezones {\\r\\n            name,\\r\\n            value,\\r\\n            daylightEnabled\\r\\n        }\\r\\n        isDaylightSavingChangeEnabled,\\r\\n        isSynchronizeEnabled,\\r\\n        isSynchronizeSupported,\\r\\n        synchronizedWith\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"SystemTimePage\"] = oneQuery(doc, \"SystemTimePage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerMailSettingsPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"serverMail\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isMailUiEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"settings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mailServerName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"imapServerName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"maxMessageSize\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"maxConnections\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"maxConnectionsPerIp\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isMessageSubmissionEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"messageSubmissionIp\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"outgoingEmailMode\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"outgoingEmailModeIps\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isIPv6\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isEmailSubaddressingEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isMboxQuotaWarningEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isFixSenderEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isListSecureLinksEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasLocalhostRelayingAddressesIpV4\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasLocalhostRelayingAddressesIpV6\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"autoReplyHeaders\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isShortPop3NameEnabled\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"autodiscover\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isDnsEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"customServer\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"relay\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isPopAuthEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lockTime\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isSmtpAuthEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"noRelayNetworks\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isOpenRelayAllowed\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"outgoingMessages\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isCountRecipientsEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mailboxLimit\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domainLimit\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscriptionLimit\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isSendmailEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reportPeriod\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"notificationPeriod\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"allowedReportPeriods\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"allowedNotificationPeriods\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spamFilter\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isDmarcEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isSigningOutgoingMailEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isVerifyingIncomingMailEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isRblEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rblServer\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isSpfEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isErrorIgnored\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"behavior\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"localRules\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"guessRules\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"explanationText\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isWindows\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"capability\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mailServer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isMaxLetterSizeChangeable\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isMessageSubmissionDedicatedIPSupported\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isMessageSubmissionAllIPSupported\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isRelayLockTimeSupported\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isRelayTypeOpenSupported\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isRelayTypeClosedSupported\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isRelayTypeAuthSupported\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isRelayTypeAuthPop3Supported\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isRelayTypeAuthSmtpSupported\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isRelayTypeAuthBothSupported\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"shortPop3NamesCompatibility\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"packages\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isRBLInstalled\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"server\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddresses\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"list\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isIPv6\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":2651}};\n    doc.loc.source = {\"body\":\"query ServerMailSettingsPage {\\r\\n    serverMail {\\r\\n        isMailUiEnabled\\r\\n        settings {\\r\\n            mailServerName\\r\\n            imapServerName\\r\\n            maxMessageSize\\r\\n            maxConnections\\r\\n            maxConnectionsPerIp\\r\\n            isMessageSubmissionEnabled\\r\\n            messageSubmissionIp {\\r\\n                ipAddress\\r\\n            }\\r\\n            outgoingEmailMode\\r\\n            outgoingEmailModeIps {\\r\\n                ipAddress\\r\\n                isIPv6\\r\\n            }\\r\\n            isEmailSubaddressingEnabled\\r\\n            isMboxQuotaWarningEnabled\\r\\n            isFixSenderEnabled\\r\\n            isListSecureLinksEnabled\\r\\n            hasLocalhostRelayingAddressesIpV4\\r\\n            hasLocalhostRelayingAddressesIpV6\\r\\n            autoReplyHeaders {\\r\\n                name\\r\\n                value\\r\\n            }\\r\\n            isShortPop3NameEnabled\\r\\n        }\\r\\n        autodiscover {\\r\\n            isEnabled\\r\\n            isDnsEnabled\\r\\n            customServer\\r\\n        }\\r\\n        relay {\\r\\n            type\\r\\n            isPopAuthEnabled\\r\\n            lockTime\\r\\n            isSmtpAuthEnabled\\r\\n            noRelayNetworks\\r\\n            isOpenRelayAllowed\\r\\n        }\\r\\n        outgoingMessages {\\r\\n            isEnabled\\r\\n            isCountRecipientsEnabled\\r\\n            mailboxLimit\\r\\n            domainLimit\\r\\n            subscriptionLimit\\r\\n            isSendmailEnabled\\r\\n            reportPeriod\\r\\n            notificationPeriod\\r\\n            allowedReportPeriods\\r\\n            allowedNotificationPeriods\\r\\n        }\\r\\n        spamFilter {\\r\\n            isDmarcEnabled\\r\\n            isSigningOutgoingMailEnabled\\r\\n            isVerifyingIncomingMailEnabled\\r\\n            isRblEnabled\\r\\n            rblServer\\r\\n            isSpfEnabled\\r\\n            isErrorIgnored\\r\\n            behavior\\r\\n            localRules\\r\\n            guessRules\\r\\n            explanationText\\r\\n        }\\r\\n    }\\r\\n    os {\\r\\n        isWindows\\r\\n    }\\r\\n    capability {\\r\\n        mailServer {\\r\\n            isMaxLetterSizeChangeable\\r\\n            isMessageSubmissionDedicatedIPSupported\\r\\n            isMessageSubmissionAllIPSupported\\r\\n            isRelayLockTimeSupported\\r\\n            isRelayTypeOpenSupported\\r\\n            isRelayTypeClosedSupported\\r\\n            isRelayTypeAuthSupported\\r\\n            isRelayTypeAuthPop3Supported\\r\\n            isRelayTypeAuthSmtpSupported\\r\\n            isRelayTypeAuthBothSupported\\r\\n            shortPop3NamesCompatibility\\r\\n        }\\r\\n        packages {\\r\\n            isRBLInstalled\\r\\n        }\\r\\n    }\\r\\n    server {\\r\\n        ipAddresses {\\r\\n            list {\\r\\n                id\\r\\n                ipAddress\\r\\n                isIPv6\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ServerMailSettingsPage\"] = oneQuery(doc, \"ServerMailSettingsPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerMailTabs\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"permissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageServerMail\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageServerVirusProtection\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageServerSpamFilter\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageServerMailAutodiscover\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageServerMailBlackWhiteLists\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"capability\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mailServer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isDomainsBlacklistSupported\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isSmtpWhiteListSupported\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"packages\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isAntiVirusInstalled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isSpamAssassinInstalled\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isWindows\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryKey\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pleskKeyId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"keyDrWeb\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"keyQmailQueue\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":652}};\n    doc.loc.source = {\"body\":\"query ServerMailTabs {\\r\\n    viewer {\\r\\n        login\\r\\n        permissions {\\r\\n            manageServerMail\\r\\n            manageServerVirusProtection\\r\\n            manageServerSpamFilter\\r\\n            manageServerMailAutodiscover\\r\\n            manageServerMailBlackWhiteLists\\r\\n        }\\r\\n    }\\r\\n    capability {\\r\\n        mailServer {\\r\\n            isDomainsBlacklistSupported\\r\\n            isSmtpWhiteListSupported\\r\\n        }\\r\\n        packages {\\r\\n            isAntiVirusInstalled\\r\\n            isSpamAssassinInstalled\\r\\n        }\\r\\n    }\\r\\n    os {\\r\\n        isWindows\\r\\n    }\\r\\n    primaryKey {\\r\\n        pleskKeyId\\r\\n        keyDrWeb\\r\\n        keyQmailQueue\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ServerMailTabs\"] = oneQuery(doc, \"ServerMailTabs\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerMailBlackListPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"serverMail\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"blackList\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"action\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spamAssassin\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isEnabled\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isWindows\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":241}};\n    doc.loc.source = {\"body\":\"query ServerMailBlackListPage {\\r\\n    serverMail {\\r\\n        blackList {\\r\\n            id\\r\\n            name\\r\\n            action\\r\\n        }\\r\\n        spamAssassin {\\r\\n            isEnabled\\r\\n        }\\r\\n    }\\r\\n    os {\\r\\n        isWindows\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ServerMailBlackListPage\"] = oneQuery(doc, \"ServerMailBlackListPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerMailWhiteListPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"serverMail\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"whiteList\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"outgoingMessages\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isEnabled\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"relay\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"noRelayNetworks\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isWindows\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"capability\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mailServer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isSmtpWhiteListSupported\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isSmtpWhiteListWithWildcardSupported\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isSmtpWhiteListWithCIDRSupported\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":474}};\n    doc.loc.source = {\"body\":\"query ServerMailWhiteListPage {\\r\\n    serverMail {\\r\\n        whiteList {\\r\\n            id\\r\\n            name\\r\\n        }\\r\\n        outgoingMessages {\\r\\n            isEnabled\\r\\n        }\\r\\n        relay {\\r\\n            noRelayNetworks\\r\\n        }\\r\\n    }\\r\\n    os {\\r\\n        isWindows\\r\\n    }\\r\\n    capability {\\r\\n        mailServer {\\r\\n            isSmtpWhiteListSupported\\r\\n            isSmtpWhiteListWithWildcardSupported\\r\\n            isSmtpWhiteListWithCIDRSupported\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ServerMailWhiteListPage\"] = oneQuery(doc, \"ServerMailWhiteListPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerMailAntivirusPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"serverMail\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"antivirus\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isActive\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"antivirusPolicy\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"policy\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isAppliedToIncoming\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isAppliedToOutgoing\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":274}};\n    doc.loc.source = {\"body\":\"query ServerMailAntivirusPage {\\r\\n    serverMail {\\r\\n        antivirus {\\r\\n            key\\r\\n            name\\r\\n            isActive\\r\\n        }\\r\\n        antivirusPolicy {\\r\\n            policy\\r\\n            isAppliedToIncoming\\r\\n            isAppliedToOutgoing\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ServerMailAntivirusPage\"] = oneQuery(doc, \"ServerMailAntivirusPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerMailSpamFilterPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"serverMail\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spamAssassin\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isUserSettingsEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isUserSettingsAllowed\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"requiredHits\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"maxMailLimit\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"maxThreadsLimit\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tag\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"alarmMessage\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"languages\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isTrusted\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"locales\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isTrusted\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isGreylistingProtectionEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"maxChildren\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"capability\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mailServer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isUserSettingsSupported\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isWindows\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":732}};\n    doc.loc.source = {\"body\":\"query ServerMailSpamFilterPage {\\r\\n    serverMail {\\r\\n        spamAssassin {\\r\\n            isEnabled\\r\\n            isUserSettingsEnabled\\r\\n            isUserSettingsAllowed\\r\\n            requiredHits\\r\\n            maxMailLimit\\r\\n            maxThreadsLimit\\r\\n            tag\\r\\n            alarmMessage\\r\\n            languages {\\r\\n                key\\r\\n                name\\r\\n                isTrusted\\r\\n            }\\r\\n            locales {\\r\\n                key\\r\\n                name\\r\\n                isTrusted\\r\\n            }\\r\\n            isGreylistingProtectionEnabled\\r\\n            maxChildren\\r\\n        }\\r\\n    }\\r\\n    capability {\\r\\n        mailServer {\\r\\n            isUserSettingsSupported\\r\\n        }\\r\\n    }\\r\\n    os {\\r\\n        isWindows\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ServerMailSpamFilterPage\"] = oneQuery(doc, \"ServerMailSpamFilterPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerMailTabs\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"permissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageServerSpamFilter\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"capability\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"packages\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isSpamAssassinInstalled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isGreyListingInstalled\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":262}};\n    doc.loc.source = {\"body\":\"query ServerMailTabs {\\r\\n    viewer {\\r\\n        login\\r\\n        permissions {\\r\\n            manageServerSpamFilter\\r\\n        }\\r\\n    }\\r\\n    capability {\\r\\n        packages {\\r\\n            isSpamAssassinInstalled\\r\\n            isGreyListingInstalled\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ServerMailTabs\"] = oneQuery(doc, \"ServerMailTabs\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"PrimaryKeyInfoPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryKey\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pleskKeyId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"potentialProblems\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"properties\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"revertKey\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pleskKeyId\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isLicenseLocked\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isLicenseDefault\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isDemo\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":340}};\n    doc.loc.source = {\"body\":\"query PrimaryKeyInfoPage {\\r\\n    primaryKey {\\r\\n        pleskKeyId\\r\\n        potentialProblems\\r\\n        properties {\\r\\n            name\\r\\n            description\\r\\n            value\\r\\n        }\\r\\n        revertKey {\\r\\n            pleskKeyId\\r\\n        }\\r\\n    }\\r\\n    mode {\\r\\n        isLicenseLocked\\r\\n        isLicenseDefault\\r\\n        isDemo\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"PrimaryKeyInfoPage\"] = oneQuery(doc, \"PrimaryKeyInfoPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"MasterKeyProcessingState\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"masterKeyProcessingState\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"config\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"product\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"supportUrl\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":142}};\n    doc.loc.source = {\"body\":\"query MasterKeyProcessingState {\\r\\n    masterKeyProcessingState\\r\\n    config {\\r\\n        product {\\r\\n            supportUrl\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"MasterKeyProcessingState\"] = oneQuery(doc, \"MasterKeyProcessingState\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"PrimaryKeyUploadPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isLicenseLocked\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isPowerUserPanel\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"config\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"license\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fileUpload\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":178}};\n    doc.loc.source = {\"body\":\"query PrimaryKeyUploadPage {\\r\\n    mode {\\r\\n        isLicenseLocked\\r\\n        isPowerUserPanel\\r\\n    }\\r\\n    config {\\r\\n        license {\\r\\n            fileUpload\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"PrimaryKeyUploadPage\"] = oneQuery(doc, \"PrimaryKeyUploadPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"PrimaryKeyRevertPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryKey\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pleskKeyId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"revertKey\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pleskKeyId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"properties\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":249}};\n    doc.loc.source = {\"body\":\"query PrimaryKeyRevertPage {\\r\\n    primaryKey {\\r\\n        pleskKeyId\\r\\n        revertKey {\\r\\n            pleskKeyId\\r\\n            properties {\\r\\n                name\\r\\n                description\\r\\n                value\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"PrimaryKeyRevertPage\"] = oneQuery(doc, \"PrimaryKeyRevertPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"AdditionalKeysPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isLicenseLocked\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isDemo\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"additionalKeys\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"keyNumber\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"keyName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"keyApp\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":172}};\n    doc.loc.source = {\"body\":\"query AdditionalKeysPage {\\r\\n    mode {\\r\\n        isLicenseLocked\\r\\n        isDemo\\r\\n    }\\r\\n    additionalKeys {\\r\\n        keyNumber\\r\\n        keyName\\r\\n        keyApp\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"AdditionalKeysPage\"] = oneQuery(doc, \"AdditionalKeysPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"AdditionalKeyUploadPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"config\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"license\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fileUpload\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":111}};\n    doc.loc.source = {\"body\":\"query AdditionalKeyUploadPage {\\r\\n    config {\\r\\n        license {\\r\\n            fileUpload\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"AdditionalKeyUploadPage\"] = oneQuery(doc, \"AdditionalKeyUploadPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"AdditionalKeyInfoPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"additionalKey\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"keyNumber\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"properties\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"revertKey\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"keyNumber\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isDemo\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":285}};\n    doc.loc.source = {\"body\":\"query AdditionalKeyInfoPage($id: ID!) {\\r\\n    additionalKey(id: $id) {\\r\\n        keyNumber\\r\\n        properties {\\r\\n            name\\r\\n            description\\r\\n            value\\r\\n        }\\r\\n        revertKey {\\r\\n            keyNumber\\r\\n        }\\r\\n    }\\r\\n    mode {\\r\\n        isDemo\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"AdditionalKeyInfoPage\"] = oneQuery(doc, \"AdditionalKeyInfoPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"AdditionalKeyRevertPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"additionalKey\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"keyNumber\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"revertKey\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"keyNumber\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"properties\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":272}};\n    doc.loc.source = {\"body\":\"query AdditionalKeyRevertPage($id: ID!) {\\r\\n    additionalKey(id: $id) {\\r\\n        keyNumber\\r\\n        revertKey {\\r\\n            keyNumber\\r\\n            properties {\\r\\n                name\\r\\n                description\\r\\n                value\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"AdditionalKeyRevertPage\"] = oneQuery(doc, \"AdditionalKeyRevertPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"FirewallGeneralPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"server\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"firewall\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"interfaces\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isConnected\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":269}};\n    doc.loc.source = {\"body\":\"query FirewallGeneralPage {\\r\\n    server {\\r\\n        firewall {\\r\\n            isEnabled\\r\\n            interfaces {\\r\\n                key\\r\\n                name\\r\\n                type\\r\\n                isEnabled\\r\\n                isConnected\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"FirewallGeneralPage\"] = oneQuery(doc, \"FirewallGeneralPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"FirewallIcmpPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"server\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"firewall\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"icmpRules\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isEnabled\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":169}};\n    doc.loc.source = {\"body\":\"query FirewallIcmpPage {\\r\\n    server {\\r\\n        firewall {\\r\\n            icmpRules {\\r\\n                key\\r\\n                isEnabled\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"FirewallIcmpPage\"] = oneQuery(doc, \"FirewallIcmpPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"FirewallRulesPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"server\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"firewall\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rules\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"action\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"port\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"protocol\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"profiles\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"remoteAddresses\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isReadonly\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":347}};\n    doc.loc.source = {\"body\":\"query FirewallRulesPage {\\r\\n    server {\\r\\n        firewall {\\r\\n            rules {\\r\\n                key\\r\\n                name\\r\\n                action\\r\\n                port\\r\\n                protocol\\r\\n                profiles\\r\\n                remoteAddresses\\r\\n                isEnabled\\r\\n                isReadonly\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"FirewallRulesPage\"] = oneQuery(doc, \"FirewallRulesPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerComponentsPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isUnix\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"server\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"components\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"version\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"error\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"depends\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dependsType\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"providesType\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isInstalled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isConfigurable\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"configured\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"allowedByLicense\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"parameters\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"label\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"required\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enum\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"disabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"disableReason\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hideGenerateButton\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"componentTypeInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"required\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"default\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"packagesCount\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"categoryInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isConfigurable\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":971}};\n    doc.loc.source = {\"body\":\"query ServerComponentsPage {\\r\\n    os {\\r\\n        isUnix\\r\\n    }\\r\\n    server {\\r\\n        components {\\r\\n            name\\r\\n            version\\r\\n            state\\r\\n            status\\r\\n            error\\r\\n            depends\\r\\n            dependsType\\r\\n            providesType\\r\\n            description\\r\\n            isInstalled\\r\\n            isConfigurable\\r\\n            configured\\r\\n            allowedByLicense\\r\\n            parameters {\\r\\n                name\\r\\n                type\\r\\n                label\\r\\n                required\\r\\n                description\\r\\n                value\\r\\n                enum\\r\\n                disabled\\r\\n                disableReason\\r\\n                hideGenerateButton\\r\\n            }\\r\\n            componentTypeInfo {\\r\\n                name\\r\\n                required\\r\\n                default\\r\\n                packagesCount\\r\\n            }\\r\\n            categoryInfo {\\r\\n                name\\r\\n                isConfigurable\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ServerComponentsPage\"] = oneQuery(doc, \"ServerComponentsPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"IpAddressPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IpAddressTypeEnum\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"page\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"itemsPerPage\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"sortDirection\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SortDirectionEnum\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"sortColumn\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IpAddressSortColumnEnum\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"server\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"firewall\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isEnabled\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddresses\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}}]}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"pagination\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"page\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"page\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"itemsPerPage\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"itemsPerPage\"}}}]}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"sort\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"sortColumn\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"sortDirection\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"sortDirection\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"list\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"publicIpAddress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"interface\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mask\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isBlacklisted\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isMain\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isBroken\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isMissing\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscriptionsCount\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resellersCount\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ftpOverSSL\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"total\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasPublicIp\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canReloadPublic\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isDemo\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isPowerUserPanel\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canManageResellers\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"serverInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isVirtuozzo\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":1127}};\n    doc.loc.source = {\"body\":\"query IpAddressPage(\\r\\n    $type: IpAddressTypeEnum,\\r\\n    $search: String,\\r\\n    $page: Int,\\r\\n    $itemsPerPage: Int,\\r\\n    $sortDirection: SortDirectionEnum,\\r\\n    $sortColumn: IpAddressSortColumnEnum\\r\\n) {\\r\\n    server {\\r\\n        firewall {\\r\\n            isEnabled\\r\\n        }\\r\\n        ipAddresses(\\r\\n            filter: { type: $type, search: $search },\\r\\n            pagination: { page: $page, itemsPerPage: $itemsPerPage },\\r\\n            sort: $sortColumn,\\r\\n            sortDirection: $sortDirection\\r\\n        ) {\\r\\n            list {\\r\\n                id\\r\\n                ipAddress\\r\\n                publicIpAddress\\r\\n                interface\\r\\n                mask\\r\\n                type\\r\\n                isBlacklisted\\r\\n                isMain\\r\\n                isBroken\\r\\n                isMissing\\r\\n                subscriptionsCount\\r\\n                resellersCount\\r\\n                ftpOverSSL\\r\\n            }\\r\\n            total\\r\\n            hasPublicIp\\r\\n            canReloadPublic\\r\\n        }\\r\\n    }\\r\\n    mode {\\r\\n        isDemo\\r\\n        isPowerUserPanel\\r\\n        canManageResellers\\r\\n    }\\r\\n    serverInfo {\\r\\n        isVirtuozzo\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"IpAddressPage\"] = oneQuery(doc, \"IpAddressPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"IpAddressUsage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IpAddress\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clients\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"RESELLER\"}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"unassignedResellers\"},\"name\":{\"kind\":\"Name\",\"value\":\"clients\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"RESELLER\"}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"unassigned\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":421}};\n    doc.loc.source = {\"body\":\"query IpAddressUsage($id: ID!){\\r\\n    ipAddress:node(id: $id) {\\r\\n        ... on IpAddress {\\r\\n            id\\r\\n            type\\r\\n            ipAddress\\r\\n            clients(filter:{type: RESELLER}) {\\r\\n                id\\r\\n                name\\r\\n            }\\r\\n            unassignedResellers: clients(filter:{ type: RESELLER, unassigned: true }) {\\r\\n                id\\r\\n                name\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"IpAddressUsage\"] = oneQuery(doc, \"IpAddressUsage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"UnassignedIpAddressResellers\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IpAddress\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"unassignedResellers\"},\"name\":{\"kind\":\"Name\",\"value\":\"clients\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"RESELLER\"}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"unassigned\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":348}};\n    doc.loc.source = {\"body\":\"query UnassignedIpAddressResellers($id: ID!){\\r\\n    ipAddress:node(id: $id) {\\r\\n        ... on IpAddress {\\r\\n            id\\r\\n            type\\r\\n            ipAddress\\r\\n            type\\r\\n            unassignedResellers: clients(filter:{ type: RESELLER, unassigned: true }) {\\r\\n                id\\r\\n                name\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"UnassignedIpAddressResellers\"] = oneQuery(doc, \"UnassignedIpAddressResellers\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ClientIpAddress\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isWindows\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"client\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Client\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"availableIpAddress\"},\"name\":{\"kind\":\"Name\",\"value\":\"ipAddresses\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"unassigned\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddresses\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isBroken\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"allocatedType\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ftpOverSSL\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificate\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ownerName\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domains\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"server\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddresses\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isPoolEditable\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"capability\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ftp\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isExplicitSSL\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":1054}};\n    doc.loc.source = {\"body\":\"query ClientIpAddress($clientId: ID!) {\\r\\n    viewer {\\r\\n        login\\r\\n        type\\r\\n        client {\\r\\n            id\\r\\n        }\\r\\n    }\\r\\n    os {\\r\\n        isWindows\\r\\n    }\\r\\n    client: node(id: $clientId) {\\r\\n        ... on Client {\\r\\n            id\\r\\n            login\\r\\n            availableIpAddress: ipAddresses(filter: { unassigned: true }) {\\r\\n                id\\r\\n            }\\r\\n            ipAddresses {\\r\\n                id\\r\\n                ipAddress\\r\\n                isBroken\\r\\n                type(clientId: $clientId)\\r\\n                allocatedType(clientId: $clientId)\\r\\n                ftpOverSSL\\r\\n                certificate {\\r\\n                    id\\r\\n                    name\\r\\n                    ownerName\\r\\n                }\\r\\n                domains(filter: { clientId: $clientId }) {\\r\\n                    id\\r\\n                }\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n    server {\\r\\n        ipAddresses {\\r\\n            isPoolEditable(clientId: $clientId)\\r\\n        }\\r\\n    }\\r\\n    capability {\\r\\n        ftp {\\r\\n            isExplicitSSL\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ClientIpAddress\"] = oneQuery(doc, \"ClientIpAddress\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ClientIpAddressForm\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddressId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"capability\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ftp\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isExplicitSSL\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isWindows\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddressId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IpAddress\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"interface\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"allocatedType\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"typeChangeableInClientPool\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isBroken\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ftpOverSSL\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domains\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"defaultDomain\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificate\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ownerName\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"client\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Client\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificates\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ownerName\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":1056}};\n    doc.loc.source = {\"body\":\"query ClientIpAddressForm($ipAddressId: ID!, $clientId: ID!) {\\r\\n    capability {\\r\\n        ftp {\\r\\n            isExplicitSSL\\r\\n        }\\r\\n    }\\r\\n    os {\\r\\n        isWindows\\r\\n    }\\r\\n    ipAddress: node(id: $ipAddressId) {\\r\\n        ... on IpAddress {\\r\\n            id\\r\\n            ipAddress\\r\\n            interface\\r\\n            type(clientId: $clientId)\\r\\n            allocatedType(clientId: $clientId)\\r\\n            typeChangeableInClientPool(clientId: $clientId)\\r\\n            isBroken\\r\\n            ftpOverSSL\\r\\n            domains(filter:{ clientId: $clientId }) {\\r\\n                id\\r\\n                name\\r\\n            }\\r\\n            defaultDomain {\\r\\n                id\\r\\n                name\\r\\n            }\\r\\n            certificate {\\r\\n                id\\r\\n                name\\r\\n                ownerName\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n    client: node(id: $clientId) {\\r\\n        ...on Client {\\r\\n            id\\r\\n            type\\r\\n            certificates {\\r\\n                id\\r\\n                name\\r\\n                ownerName\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ClientIpAddressForm\"] = oneQuery(doc, \"ClientIpAddressForm\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignClientIpAddress\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"client\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Client\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"availableIpAddress\"},\"name\":{\"kind\":\"Name\",\"value\":\"ipAddresses\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"unassigned\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":302}};\n    doc.loc.source = {\"body\":\"query AssignClientIpAddress($clientId: ID!) {\\r\\n    client: node(id: $clientId) {\\r\\n        ... on Client {\\r\\n            id\\r\\n            login\\r\\n            availableIpAddress: ipAddresses(filter: { unassigned: true }) {\\r\\n                id\\r\\n                ipAddress\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"AssignClientIpAddress\"] = oneQuery(doc, \"AssignClientIpAddress\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"PhpExtensionsPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"phpHandler\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"version\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"cliPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"phpExtensions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enabled\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"affectedHandlers\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isUnix\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"config\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"php\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pecl\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"minVersion\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":450}};\n    doc.loc.source = {\"body\":\"query PhpExtensionsPage($id: ID!) {\\r\\n    phpHandler(id: $id) {\\r\\n        id\\r\\n        name\\r\\n        version\\r\\n        cliPath\\r\\n        phpExtensions {\\r\\n            name\\r\\n            enabled\\r\\n        }\\r\\n        affectedHandlers {\\r\\n            id\\r\\n            name\\r\\n        }\\r\\n    }\\r\\n    os {\\r\\n        isUnix\\r\\n    }\\r\\n    config {\\r\\n        php {\\r\\n            pecl {\\r\\n                enabled\\r\\n                minVersion\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"PhpExtensionsPage\"] = oneQuery(doc, \"PhpExtensionsPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"TsSessionPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"ids\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tsSessions\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"ids\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"ids\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"info\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":150}};\n    doc.loc.source = {\"body\":\"query TsSessionPage($ids: [ID!]!) {\\r\\n    tsSessions(ids: $ids) {\\r\\n        id\\r\\n        info {\\r\\n            name\\r\\n            value\\r\\n        }\\r\\n    }\\r\\n}\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"TsSessionPage\"] = oneQuery(doc, \"TsSessionPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"TsSessions\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"ids\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tsSessions\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"ids\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"ids\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"user\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":125}};\n    doc.loc.source = {\"body\":\"query TsSessions($ids: [ID!]) {\\r\\n    tsSessions(ids: $ids) {\\r\\n        name\\r\\n        state\\r\\n        user\\r\\n        id\\r\\n    }\\r\\n}\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"TsSessions\"] = oneQuery(doc, \"TsSessions\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"AspDotNetServerSettings\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"server\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspNetSettings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"configs\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"version\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"connStrings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"customErrMode\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enumValues\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"culture\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enumValues\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"debugMode\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"authMode\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enumValues\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"customErrors\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canDelete\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"values\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"redirectUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"statusCode\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fileEnc\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reqEnc\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resEnc\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sessTimeout\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tempDirectory\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"trustLevelAllowOverride\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"uiCulture\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enumValues\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"defLanguage\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enumValues\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"trustLevel\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enumValues\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":1837}};\n    doc.loc.source = {\"body\":\"query AspDotNetServerSettings {\\r\\n    server {\\r\\n        aspNetSettings {\\r\\n            configs {\\r\\n                version\\r\\n                connStrings {\\r\\n                    name\\r\\n                    value\\r\\n                }\\r\\n\\r\\n                customErrMode {\\r\\n                    value\\r\\n                    enumValues {\\r\\n                        name\\r\\n                        value\\r\\n                    }\\r\\n                }\\r\\n                culture {\\r\\n                    value\\r\\n                    enumValues {\\r\\n                        name\\r\\n                        value\\r\\n                    }\\r\\n                }\\r\\n\\r\\n                debugMode\\r\\n                authMode {\\r\\n                    value\\r\\n                    enumValues {\\r\\n                        name\\r\\n                        value\\r\\n                    }\\r\\n                }\\r\\n                customErrors {\\r\\n                    canDelete\\r\\n                    values {\\r\\n                        redirectUrl\\r\\n                        statusCode\\r\\n                    }\\r\\n                }\\r\\n                fileEnc\\r\\n                reqEnc\\r\\n                resEnc\\r\\n                sessTimeout\\r\\n                tempDirectory\\r\\n                trustLevelAllowOverride\\r\\n                uiCulture {\\r\\n                    value\\r\\n                    enumValues {\\r\\n                        name\\r\\n                        value\\r\\n                    }\\r\\n                }\\r\\n\\r\\n                defLanguage {\\r\\n                    value\\r\\n                    enumValues {\\r\\n                        name\\r\\n                        value\\r\\n                    }\\r\\n                }\\r\\n                trustLevel {\\r\\n                    value\\r\\n                    enumValues {\\r\\n                        name\\r\\n                        value\\r\\n                    }\\r\\n                }\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"AspDotNetServerSettings\"] = oneQuery(doc, \"AspDotNetServerSettings\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"AspDotNetDomainSettings\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"domain\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Domain\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"owner\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"baseDomain\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspNetSettings\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"versions\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"configs\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"customErrMode\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enumValues\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"culture\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enumValues\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"connStrings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"version\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"debugMode\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"authMode\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enumValues\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"customErrors\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canDelete\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"values\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"redirectUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"statusCode\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fileEnc\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reqEnc\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resEnc\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sessTimeout\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tempDirectory\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"trustLevelAllowOverride\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"uiCulture\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enumValues\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"defLanguage\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enumValues\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"trustLevel\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enumValues\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":2414}};\n    doc.loc.source = {\"body\":\"query AspDotNetDomainSettings($id: ID!, $webPath: String) {\\r\\n    domain: node(id: $id) {\\r\\n        id\\r\\n        ...on Domain {\\r\\n            name\\r\\n            owner {\\r\\n                id\\r\\n                login\\r\\n            }\\r\\n            baseDomain {\\r\\n                id\\r\\n                name\\r\\n            }\\r\\n            aspNetSettings(webPath: $webPath) {\\r\\n                versions\\r\\n                configs {\\r\\n                    customErrMode {\\r\\n                        value\\r\\n                        enumValues {\\r\\n                            name\\r\\n                            value\\r\\n                        }\\r\\n                    }\\r\\n\\r\\n                    culture {\\r\\n                        value\\r\\n                        enumValues {\\r\\n                            name\\r\\n                            value\\r\\n                        }\\r\\n                    }\\r\\n                    connStrings {\\r\\n                        name\\r\\n                        value\\r\\n                    }\\r\\n                    version\\r\\n                    debugMode\\r\\n                    authMode {\\r\\n                        value\\r\\n                        enumValues {\\r\\n                            name\\r\\n                            value\\r\\n                        }\\r\\n                    }\\r\\n                    customErrors {\\r\\n                        canDelete\\r\\n                        values {\\r\\n                            redirectUrl\\r\\n                            statusCode\\r\\n                        }\\r\\n                    }\\r\\n\\r\\n                    fileEnc\\r\\n                    reqEnc\\r\\n                    resEnc\\r\\n                    sessTimeout\\r\\n                    tempDirectory\\r\\n                    trustLevelAllowOverride\\r\\n                    uiCulture {\\r\\n                        value\\r\\n                        enumValues {\\r\\n                            name\\r\\n                            value\\r\\n                        }\\r\\n                    }\\r\\n\\r\\n                    defLanguage {\\r\\n                        value\\r\\n                        enumValues {\\r\\n                            name\\r\\n                            value\\r\\n                        }\\r\\n                    }\\r\\n                    trustLevel {\\r\\n                        value\\r\\n                        enumValues {\\r\\n                            name\\r\\n                            value\\r\\n                        }\\r\\n                    }\\r\\n                }\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"AspDotNetDomainSettings\"] = oneQuery(doc, \"AspDotNetDomainSettings\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerAboutPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryKey\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pleskKeyId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"editionName\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"update\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"patch\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"config\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"product\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"version\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"siteUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"blogUrl\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"feedback\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"forumUrl\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"facebook\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pleskPage\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"twitter\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pleskPage\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":422}};\n    doc.loc.source = {\"body\":\"query ServerAboutPage {\\r\\n    primaryKey {\\r\\n        pleskKeyId\\r\\n        editionName\\r\\n    }\\r\\n    update {\\r\\n        patch\\r\\n    }\\r\\n    config {\\r\\n        product {\\r\\n            name\\r\\n            version\\r\\n            siteUrl\\r\\n            blogUrl\\r\\n        }\\r\\n        feedback {\\r\\n            forumUrl\\r\\n        }\\r\\n        facebook {\\r\\n            pleskPage\\r\\n        }\\r\\n        twitter {\\r\\n            pleskPage\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ServerAboutPage\"] = oneQuery(doc, \"ServerAboutPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ActionLogPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isAdminAlias\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"actionLog\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"objects\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"displayName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"actions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"displayName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enabled\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rotate\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"records\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"period\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"unit\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"minDate\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"year\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":492}};\n    doc.loc.source = {\"body\":\"query ActionLogPage {\\r\\n    viewer {\\r\\n        isAdminAlias\\r\\n        login\\r\\n    }\\r\\n    actionLog {\\r\\n        objects {\\r\\n            name\\r\\n            displayName\\r\\n            enabled\\r\\n            actions {\\r\\n                displayName\\r\\n                enabled\\r\\n            }\\r\\n        }\\r\\n        rotate {\\r\\n            type\\r\\n            records\\r\\n            period {\\r\\n                value\\r\\n                unit\\r\\n            }\\r\\n        }\\r\\n        minDate {\\r\\n            year\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ActionLogPage\"] = oneQuery(doc, \"ActionLogPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerSettingsPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"server\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"settings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"forbidSysUserRename\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"disableIpLogging\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"forbidCreateDnsSubZone\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"forbidSubscriptionRename\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fullHostName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"includeAdminDumps\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"includeDatabases\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"includeDomainDumps\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"includeLogs\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"includeMailLists\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"includeMailboxes\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"includeMssqlDatabases\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"includeMysqlDatabases\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"includeRemoteDatabases\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"logrotateAnonymizeIps\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"logrotateForce\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"logrotatePeriod\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"preferredDomain\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sizeCountType\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"trafficAccounting\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"trafficStatisticsPeriod\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webDeployIncludePassword\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isPumAllowed\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":825}};\n    doc.loc.source = {\"body\":\"query ServerSettingsPage {\\r\\n    server {\\r\\n        settings {\\r\\n            forbidSysUserRename\\r\\n            disableIpLogging\\r\\n            forbidCreateDnsSubZone\\r\\n            forbidSubscriptionRename\\r\\n            fullHostName\\r\\n            includeAdminDumps\\r\\n            includeDatabases\\r\\n            includeDomainDumps\\r\\n            includeLogs\\r\\n            includeMailLists\\r\\n            includeMailboxes\\r\\n            includeMssqlDatabases\\r\\n            includeMysqlDatabases\\r\\n            includeRemoteDatabases\\r\\n            logrotateAnonymizeIps\\r\\n            logrotateForce\\r\\n            logrotatePeriod\\r\\n            preferredDomain\\r\\n            sizeCountType\\r\\n            trafficAccounting\\r\\n            trafficStatisticsPeriod\\r\\n            webDeployIncludePassword\\r\\n        }\\r\\n    }\\r\\n    mode {\\r\\n        isPumAllowed\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ServerSettingsPage\"] = oneQuery(doc, \"ServerSettingsPage\");\n        \r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\n/* eslint-disable camelcase */\r\n\r\nimport { useState, useMemo, useEffect, useInsertionEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useQuery } from '@apollo/client';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { FormFieldText, FormFieldPassword, Action, StatusMessage, Link } from '@plesk/ui-library';\r\nimport { Locale, render } from 'jsw';\r\nimport JswComponent from '../../jsw/JswComponent';\r\nimport RouteLink from 'components/common/Link';\r\nimport Form from 'components/Form';\r\nimport { withLoginLayout } from '../../layouts/LoginLayout';\r\nimport LoginMobileApplicationPromotion from './LoginMobileApplicationPromotion';\r\nimport SuggestResolvableHostname from './SuggestResolvableHostname';\r\nimport LocaleSwitcher from './LocaleSwitcher';\r\nimport { usePageData } from 'helpers/pageData';\r\n\r\nconst Translate = Locale.getTranslate('components.forms.login');\r\n\r\nimport LOGIN_PAGE_QUERY from 'queries/LoginPage.graphql';\r\n\r\nconst LoginPage = ({ values: defaultValues }) => {\r\n    const navigate = useNavigate();\r\n    const { status } = usePageData();\r\n    const { data: {\r\n        config,\r\n        serverInfo: { isFirstLogin, cloudType },\r\n        loginContentInclude: { headContent, bodyContent },\r\n    } } = useQuery(LOGIN_PAGE_QUERY);\r\n    const values = useMemo(() => ({\r\n        login_name: '',\r\n        passwd: '',\r\n        locale_id: 'default',\r\n        ...defaultValues,\r\n    }), [defaultValues]);\r\n    const [errors, setErrors] = useState({});\r\n\r\n    useInsertionEffect(() => {\r\n        if (!headContent) {\r\n            return;\r\n        }\r\n\r\n        const addedElements = [];\r\n        const first = document.head.childNodes.length;\r\n        render(document.head, headContent);\r\n        const last = document.head.childNodes.length;\r\n\r\n        for (let i = first; i < last; i++) {\r\n            addedElements.push(document.head.childNodes[i]);\r\n        }\r\n\r\n        return () => {\r\n            addedElements.forEach(el => {\r\n                document.head.removeChild(el);\r\n            });\r\n        };\r\n    }, [headContent]);\r\n\r\n    useEffect(() => {\r\n        document.querySelector('input[name=\"locale_id\"]').value = values?.locale_id ?? 'default';\r\n        // eslint-disable-next-line react-hooks/exhaustive-deps\r\n    }, []);\r\n\r\n    const handleSubmit = values => {\r\n        const errors = {};\r\n        if (values.login_name === '') {\r\n            errors.login_name = {\r\n                empty: <Translate content=\"enterUsername\" />,\r\n            };\r\n        }\r\n        if (values.passwd === '') {\r\n            errors.passwd = {\r\n                empty: <Translate content=\"enterPassword\" />,\r\n            };\r\n        }\r\n        setErrors(errors);\r\n\r\n        if (!Object.keys(errors).length) {\r\n            return {\r\n                ...values,\r\n                locale_id: document.querySelector('input[name=\"locale_id\"]').value,\r\n            };\r\n        }\r\n    };\r\n\r\n    return (\r\n        <>\r\n            {(isFirstLogin && cloudType === 'DO') ? (\r\n                <StatusMessage intent=\"info\" className=\"login-page__info\">\r\n                    <Translate\r\n                        content=\"digitalOceanMsg\"\r\n                        params={\r\n                            { link: (\r\n                                <Link\r\n                                    // eslint-disable-next-line max-len\r\n                                    href=\"https://docs.plesk.com/en-US/obsidian/deployment-guide/plesk-installation-and-upgrade-on-public-cloud-services/installing-plesk-on-digitalocean.79699/#accessing-plesk-for-the-first-time\"\r\n                                    target=\"_blank\"\r\n                                >\r\n                                    <Translate content=\"readGuide\" />\r\n                                </Link>\r\n                            ) }\r\n                        }\r\n                    />\r\n                </StatusMessage>\r\n            ) : (isFirstLogin && cloudType === 'AMI_LIGHTSAIL') ? (\r\n                <StatusMessage intent=\"info\" className=\"login-page__info\">\r\n                    <Translate\r\n                        content=\"amazonLightsailMsg\"\r\n                        params={\r\n                            { link: (\r\n                                <Link\r\n                                    // eslint-disable-next-line max-len\r\n                                    href=\"https://docs.plesk.com/en-US/obsidian/deployment-guide/plesk-installation-and-upgrade-on-public-cloud-services/installing-plesk-on-amazon-lightsail.79028/#accessing-plesk-for-the-first-time\"\r\n                                    target=\"_blank\"\r\n                                >\r\n                                    <Translate content=\"readGuide\" />\r\n                                </Link>\r\n                            ) }\r\n                        }\r\n                    />\r\n                </StatusMessage>\r\n            ) : null }\r\n            <Form\r\n                id=\"form-login\"\r\n                method=\"post\"\r\n                applyButton={false}\r\n                cancelButton={false}\r\n                statusMessages={status}\r\n                submitButton={{\r\n                    name: 'send',\r\n                    children: <Translate content=\"loginButtonLabel\" />,\r\n                    fill: true,\r\n                    className: 'login-page__login-button',\r\n                    'data-action': 'log-in',\r\n                }}\r\n                onSubmit={handleSubmit}\r\n                vertical\r\n                values={values}\r\n                errors={errors}\r\n                className=\"login-page__form\"\r\n            >\r\n                <div id=\"loginSection\">\r\n                    <FormFieldText\r\n                        name=\"login_name\"\r\n                        label={<Translate content=\"loginLabel\" />}\r\n                        autoFocus\r\n                        size=\"fill\"\r\n                    />\r\n                    <FormFieldPassword\r\n                        name=\"passwd\"\r\n                        label={<Translate content=\"passwdLabel\" />}\r\n                        hideGenerateButton\r\n                        hidePasswordMeter\r\n                        size=\"fill\"\r\n                    />\r\n                    <input type=\"hidden\" name=\"locale_id\" />\r\n                </div>\r\n            </Form>\r\n            <div className=\"login-page__links\">\r\n                {config?.login?.howToLoginArticle ? (\r\n                    <Action\r\n                        icon=\"question-mark-circle\"\r\n                        href={config.login.howToLoginArticle}\r\n                        target=\"_blank\"\r\n                        data-action=\"open-how-to\"\r\n                    >\r\n                        <Translate content=\"whatUsernamePassword\" />\r\n                    </Action>\r\n                ) : null}\r\n                <Action\r\n                    icon=\"lock-closed\"\r\n                    href=\"/get_password.php\"\r\n                    onClick={e => {\r\n                        e.preventDefault();\r\n                        const locale = document.querySelector('input[name=\"locale_id\"]').value;\r\n                        const url = e.target.closest('a').getAttribute('href');\r\n                        navigate(`${url}${locale && locale !== 'default' ? `?locale=${encodeURIComponent(locale)}` : ''}`);\r\n                    }}\r\n                    data-action=\"reset-password\"\r\n                >\r\n                    <Translate content=\"forgotPasswordLabel\" />\r\n                </Action>\r\n                {config?.gdpr?.cookieSettings?.loginFormEntrypointEnabled && (\r\n                    <Action\r\n                        component={RouteLink}\r\n                        icon=\"globe\"\r\n                        to=\"?modals[cookie-policy-preferences]=true\"\r\n                        data-action=\"open-cookies-policy\"\r\n                    >\r\n                        <Translate content=\"cookies\" />\r\n                    </Action>\r\n                )}\r\n            </div>\r\n            {bodyContent ? (\r\n                <JswComponent>{bodyContent}</JswComponent>\r\n            ) : null}\r\n        </>\r\n    );\r\n};\r\n\r\nLoginPage.propTypes = {\r\n    values: PropTypes.shape({\r\n        login_name: PropTypes.string,\r\n        passwd: PropTypes.string,\r\n        locale_id: PropTypes.string,\r\n    }),\r\n};\r\n\r\nLoginPage.defaultProps = {\r\n    values: undefined,\r\n};\r\n\r\nexport default withLoginLayout(LoginPage, ({ values }) => {\r\n    const { data: {\r\n        locales,\r\n        viewer: { resolvableHostname, mobileApplicationPromotion },\r\n        loginContentInclude: { bodyContent },\r\n    } } = useQuery(LOGIN_PAGE_QUERY);\r\n\r\n    return {\r\n        actions: locales.length > 1 ? (\r\n            <LocaleSwitcher\r\n                locales={locales}\r\n                value={values?.locale_id ?? 'default'}\r\n                onChange={value => {\r\n                    document.querySelector('input[name=\"locale_id\"]').value = value;\r\n                    document.documentElement.lang = value.split('-')[0];\r\n\r\n                    const locale = locales.find(({ code }) => code === value);\r\n                    if (bodyContent || locale?.isRtl !== (document.documentElement.dir === 'rtl')) {\r\n                        document.getElementById('form-login').submit();\r\n                    } else {\r\n                        Locale.loadSections(Object.keys(Locale.sections), value);\r\n                    }\r\n                }}\r\n            />\r\n        ) : undefined,\r\n        contentAddon: [\r\n            resolvableHostname ? (\r\n                <SuggestResolvableHostname link={resolvableHostname} />\r\n            ) : null,\r\n            mobileApplicationPromotion ? (\r\n                <LoginMobileApplicationPromotion {...mobileApplicationPromotion} />\r\n            ) : null,\r\n        ],\r\n    };\r\n});\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Form as BaseForm, setIn, getIn, StatusMessage } from '@plesk/ui-library';\r\nimport { forwardRef, useState, useEffect, useMemo, useImperativeHandle, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { redirect, redirectPost, api, showInternalError, escapeHtml, render } from 'jsw';\r\nimport { toFormData } from 'helpers/form';\r\nimport JswComponent from './jsw/JswComponent';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { isClientSideRedirectAllowed } from 'routes';\r\n\r\nconst clearMessages = root => {\r\n    root.querySelectorAll('.field-errors').forEach(errors => {\r\n        errors.style.display = 'none';\r\n        errors.closest('.form-row')?.classList.remove('error');\r\n        errors.querySelectorAll('.error-hint').forEach(error => {\r\n            error.parentNode.removeChild(error);\r\n        });\r\n    });\r\n};\r\n\r\nconst processFieldMessage = (root, prefix, name, message) => {\r\n    let fieldErrors;\r\n    const formElement = root.querySelector(`#${prefix.join('-')}`);\r\n    fieldErrors = formElement ? formElement.parentNode.querySelector('.field-errors') : null;\r\n    if (!fieldErrors) {\r\n        fieldErrors = formElement ? formElement.closest('.form-row').querySelector('.field-errors') : null;\r\n    }\r\n    if (!fieldErrors) {\r\n        fieldErrors = root.querySelector(`#${prefix.join('-')}-form-row`).querySelectorAll('.field-errors');\r\n        fieldErrors = fieldErrors[fieldErrors.length - 1];\r\n    }\r\n\r\n    fieldErrors.closest('.form-row').classList.add('error');\r\n    render(fieldErrors, `<span class=\"error-hint\">${escapeHtml(message)}</span>`);\r\n    fieldErrors.style.display = '';\r\n};\r\n\r\nconst processFieldMessages = (root, messages, prefix) => {\r\n    if (Array.isArray(messages)) {\r\n        messages.forEach(message => {\r\n            if (typeof message === 'string') {\r\n                processFieldMessage(root, prefix, 'error', message);\r\n            } else {\r\n                prefix.push(name);\r\n                processFieldMessages(root, message, prefix);\r\n                prefix.pop();\r\n            }\r\n        });\r\n    } else {\r\n        Object.entries(messages).forEach(([key, value]) => {\r\n            if (typeof value === 'string') {\r\n                processFieldMessage(root, prefix, key, value);\r\n            } else {\r\n                prefix.push(key);\r\n                processFieldMessages(root, value, prefix);\r\n                prefix.pop();\r\n            }\r\n        });\r\n    }\r\n};\r\n\r\nconst findSubFormFields = (formId, subFormPrefix, callback) => {\r\n    if (subFormPrefix.length === 0 || typeof callback !== 'function') {\r\n        return;\r\n    }\r\n    const formData = new FormData([...document.forms].find(({ id }) => id === formId));\r\n    for (const entry of formData.entries()) {\r\n        const [key, value] = entry;\r\n        if (subFormPrefix.any(prefix => key.startsWith(prefix))) {\r\n            callback(key, value);\r\n        }\r\n    }\r\n};\r\n\r\nconst getSubFormPrefixes = (formPrefix, embeddedForms) => embeddedForms.reduce((acc, { name }) => [\r\n    ...acc,\r\n    `${formPrefix}[${name}]`,\r\n    name,\r\n], []);\r\n\r\nconst setElementValue = (name, value) => {\r\n    const elements = document.getElementsByName(name);\r\n    elements.forEach(element => {\r\n        if (element.type === 'checkbox' || element.type === 'radio') {\r\n            element.checked = element.value === value;\r\n        } else if (element.type === 'hidden' &&\r\n            Array.prototype.filter.call(elements, ({ type }) => type === 'checkbox').length > 0) {\r\n            // set only checkbox state\r\n        } else {\r\n            element.value = value;\r\n        }\r\n    });\r\n};\r\n\r\nconst Form = forwardRef(({\r\n    children,\r\n    id,\r\n    action,\r\n    mutation,\r\n    values,\r\n    onFieldChange,\r\n    onSubmit,\r\n    onError,\r\n    onSuccess,\r\n    onLongTask,\r\n    embeddedForms,\r\n    formPrefix,\r\n    embeddedFormsRender,\r\n    statusMessages: messages,\r\n    ...props\r\n}, ref) => {\r\n    const navigate = useNavigate();\r\n    const innerRef = useRef(null);\r\n    const [errors, setErrors] = useState({});\r\n    const [statusMessages, setStatusMessages] = useState(messages ?? []);\r\n    const [state, setState] = useState(null);\r\n\r\n    const formErrors = useMemo(() => ({ ...errors, ...props.errors }), [errors, props.errors]);\r\n\r\n    useEffect(() => {\r\n        embeddedForms.forEach(({ name }) => {\r\n            const form = document.getElementById(`embedded-form-${name}`);\r\n            clearMessages(form);\r\n\r\n            const subFormErrors = (formPrefix ? errors[formPrefix] || {} : errors)[name] || {};\r\n            processFieldMessages(form, subFormErrors, formPrefix ? [formPrefix, name] : [name]);\r\n        });\r\n    }, [errors, embeddedForms, formPrefix]);\r\n\r\n    useEffect(() => {\r\n        findSubFormFields(id, getSubFormPrefixes(formPrefix, embeddedForms), (key, value) => {\r\n            const previousValue = getIn(values, key, value);\r\n            setElementValue(key, previousValue);\r\n        });\r\n        // eslint-disable-next-line react-hooks/exhaustive-deps\r\n    }, [embeddedForms]);\r\n\r\n    useImperativeHandle(ref, () => ({\r\n        handleEmbeddedFormValues() {\r\n            findSubFormFields(id, getSubFormPrefixes(formPrefix, embeddedForms), onFieldChange);\r\n        },\r\n        submit() {\r\n            innerRef.current.submit();\r\n        },\r\n    }), [id, onFieldChange, embeddedForms, formPrefix, innerRef]);\r\n\r\n    const handleSubmit = async (values, isApply) => {\r\n        findSubFormFields(id, getSubFormPrefixes(formPrefix, embeddedForms), (key, value) => {\r\n            values = setIn(values, key, value);\r\n        });\r\n        if (typeof onSubmit === 'function') {\r\n            // eslint-disable-next-line require-atomic-updates\r\n            values = await onSubmit(values, isApply);\r\n        }\r\n        if (!values) {\r\n            return;\r\n        }\r\n\r\n        setStatusMessages([]);\r\n        setErrors({});\r\n\r\n        const formState = isApply ? 'apply' : 'submit';\r\n        setState(formState);\r\n\r\n        if (mutation) {\r\n            try {\r\n                const { data } = await mutation({ variables: { input: values } });\r\n                if (typeof onSuccess === 'function') {\r\n                    onSuccess(data, isApply);\r\n                }\r\n            } catch (error) {\r\n                const { graphQLErrors } = error;\r\n\r\n                if (!graphQLErrors?.length) {\r\n                    setStatusMessages([{ status: 'error', content: error.message }]);\r\n                    return;\r\n                }\r\n\r\n                if (graphQLErrors[0].extensions?.category === 'validate') {\r\n                    const errors = graphQLErrors[0].extensions.messages;\r\n                    setErrors(errors);\r\n                    if (typeof onError === 'function') {\r\n                        onError(errors);\r\n                    }\r\n                } else {\r\n                    setStatusMessages([{\r\n                        status: 'error',\r\n                        content: graphQLErrors[0].message,\r\n                    }]);\r\n                }\r\n            } finally {\r\n                setState(null);\r\n            }\r\n            return;\r\n        }\r\n\r\n        try {\r\n            handleSubmitSuccess(await api.post(action || window.location.href, toFormData(values)), formState);\r\n        } catch (e) {\r\n            setState(null);\r\n            showInternalError(e);\r\n        }\r\n    };\r\n\r\n    const handleSubmitSuccess = (response, formState) => {\r\n        if (response.componentType === 'Jsw.Task.ProgressBar.Item' && typeof onLongTask === 'function') {\r\n            onLongTask(response);\r\n            return;\r\n        }\r\n        const isApply = formState === 'apply';\r\n\r\n        const { status, redirect: url, forceRedirect = false, postData, target, formMessages, statusMessages = [] } = response;\r\n        if (url) {\r\n            if (typeof onSuccess === 'function') {\r\n                onSuccess();\r\n            }\r\n\r\n            if (isApply) {\r\n                const { pathname } = window.location;\r\n                if (isClientSideRedirectAllowed(pathname)) {\r\n                    navigate(pathname, { replace: true });\r\n                    setState(null);\r\n                } else {\r\n                    document.location.reload();\r\n                }\r\n            } else if (postData) {\r\n                redirectPost(url, postData, target);\r\n            } else {\r\n                (isClientSideRedirectAllowed(url) && !forceRedirect) ? navigate(url) : redirect(url, null, target);\r\n            }\r\n        } else {\r\n            setState(null);\r\n            setStatusMessages(statusMessages);\r\n            setErrors(formMessages);\r\n            if (!formMessages && status !== 'error' && typeof onSuccess === 'function') {\r\n                onSuccess(response, isApply);\r\n            }\r\n            if (formMessages && typeof onError === 'function') {\r\n                onError(formMessages, setErrors);\r\n            }\r\n        }\r\n    };\r\n\r\n    const renderEmbeddedForms = () => embeddedForms.map(({ name, content }) => (\r\n        <JswComponent\r\n            key={name}\r\n            id={`embedded-form-${name}`}\r\n        >\r\n            {content}\r\n        </JswComponent>\r\n    ));\r\n\r\n    return (\r\n        <BaseForm\r\n            {...props}\r\n            ref={innerRef}\r\n            id={id}\r\n            values={values}\r\n            onFieldChange={onFieldChange}\r\n            onSubmit={handleSubmit}\r\n            errors={formErrors}\r\n            state={state}\r\n        >\r\n            {statusMessages.map(({ status, content, title }) => (\r\n                <StatusMessage intent={status === 'error' ? 'danger' : 'success'} key={content}>\r\n                    {title ? <><b>{title}{':'}</b>{' '}</> : null}\r\n                    <span\r\n                        // eslint-disable-next-line react/no-danger\r\n                        dangerouslySetInnerHTML={{ __html: content }}\r\n                    />\r\n                </StatusMessage>\r\n            ))}\r\n            {children}\r\n            {embeddedFormsRender ? embeddedFormsRender(renderEmbeddedForms()) : renderEmbeddedForms()}\r\n        </BaseForm>\r\n    );\r\n});\r\n\r\nForm.propTypes = {\r\n    children: PropTypes.node,\r\n    id: PropTypes.string,\r\n    action: PropTypes.string,\r\n    mutation: PropTypes.func,\r\n    values: PropTypes.object,\r\n    onFieldChange: PropTypes.func,\r\n    onSubmit: PropTypes.func,\r\n    onError: PropTypes.func,\r\n    onSuccess: PropTypes.func,\r\n    onLongTask: PropTypes.func,\r\n    embeddedForms: PropTypes.array,\r\n    formPrefix: PropTypes.string,\r\n    embeddedFormsRender: PropTypes.func,\r\n    errors: PropTypes.object,\r\n    statusMessages: PropTypes.array,\r\n};\r\n\r\nForm.defaultProps = {\r\n    children: null,\r\n    id: undefined,\r\n    action: undefined,\r\n    mutation: undefined,\r\n    values: undefined,\r\n    onFieldChange: undefined,\r\n    onSubmit: undefined,\r\n    onError: undefined,\r\n    onSuccess: undefined,\r\n    onLongTask: undefined,\r\n    embeddedForms: [],\r\n    formPrefix: '',\r\n    embeddedFormsRender: undefined,\r\n    errors: {},\r\n    statusMessages: undefined,\r\n};\r\n\r\nForm.displayName = 'Form';\r\n\r\nexport default Form;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useLayoutEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Layout } from '@plesk/ui-library';\r\nimport Brand from './Brand';\r\nimport CookiePolicy from './CookiePolicy';\r\n\r\nconst LoginLayout = ({ children, actions, ...props }) => {\r\n    useLayoutEffect(() => {\r\n        document.body.classList.add('sid-login');\r\n        return () => {\r\n            document.body.classList.remove('sid-login');\r\n        };\r\n    }, []);\r\n\r\n    return (\r\n        <div className=\"login-page\">\r\n            <CookiePolicy layoutType=\"simplified\" />\r\n            <Layout\r\n                type=\"simplified\"\r\n                className=\"login-page__inner\"\r\n                header={(\r\n                    <div className=\"login-page-header\">\r\n                        <div className=\"login-page-header__brand\">\r\n                            <Brand />\r\n                        </div>\r\n                        {actions ? (\r\n                            <div className=\"login-page-header__actions\">\r\n                                {actions}\r\n                            </div>\r\n                        ) : null}\r\n                    </div>\r\n                )}\r\n                {...props}\r\n            >\r\n                <div id=\"main\" className=\"login-page__content\">\r\n                    {children}\r\n                </div>\r\n            </Layout>\r\n        </div>\r\n    );\r\n};\r\n\r\nLoginLayout.propTypes = {\r\n    children: PropTypes.any,\r\n    actions: PropTypes.any,\r\n};\r\n\r\nLoginLayout.defaultProps = {\r\n    children: undefined,\r\n    actions: undefined,\r\n};\r\n\r\nexport const withLoginLayout = (Component, extraProps) => {\r\n    const Wrapper = wrapperProps => {\r\n        const {\r\n            contentAddon,\r\n            actions,\r\n            ...props\r\n        } = {\r\n            ...wrapperProps,\r\n            ...(typeof extraProps === 'function' ? extraProps(wrapperProps) : extraProps),\r\n        };\r\n\r\n        return (\r\n            <LoginLayout\r\n                contentAddon={contentAddon}\r\n                actions={actions}\r\n            >\r\n                <Component {...props} />\r\n            </LoginLayout>\r\n        );\r\n    };\r\n    Wrapper.displayName = `withLoginLayout(${Component.displayName || Component.name || 'Component'})`;\r\n    Wrapper.WrappedComponent = Component;\r\n\r\n    return Wrapper;\r\n};\r\n\r\nexport default LoginLayout;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { Heading, Alert, Media, MediaSection, Icon, Button } from '@plesk/ui-library';\r\nimport { Locale } from 'jsw';\r\nimport Cookie from 'common/cookie';\r\n\r\nconst Translate = Locale.getTranslate('components.forms.login');\r\n\r\nconst MOBILE_APPLICATION_PROMOTION_COOKIE_NAME = 'mobile-application-promotion-hidden';\r\n\r\nconst LoginMobileApplicationPromotion = ({ baseClassName, className, name, url, icon }) => {\r\n    const [isVisible, setIsVisible] = useState(Boolean(Cookie.get(MOBILE_APPLICATION_PROMOTION_COOKIE_NAME) !== '1'));\r\n\r\n    const handleHide = () => {\r\n        setIsVisible(false);\r\n        Cookie.setPermanent(MOBILE_APPLICATION_PROMOTION_COOKIE_NAME, '1', '/');\r\n    };\r\n\r\n    if (!isVisible) {\r\n        return null;\r\n    }\r\n\r\n    return (\r\n        <Alert\r\n            intent=\"info\"\r\n            className={classNames(baseClassName, className)}\r\n        >\r\n            <Media\r\n                title={<Heading level={4}>{name}</Heading>}\r\n                image={<Icon className={`${baseClassName}__icon`} src={icon || require('icons/64/plesk/plesk.png')} size=\"64\" />}\r\n            >\r\n                <MediaSection>\r\n                    <Translate content=\"mobileApplicationMessage\" params={{ name }} />\r\n                </MediaSection>\r\n                <MediaSection>\r\n                    <Button className={`${baseClassName}__button`} component=\"a\" intent=\"primary\" href={url} onClick={handleHide}>\r\n                        <Translate content=\"mobileApplicationInstall\" />\r\n                    </Button>\r\n                    <Button className={`${baseClassName}__button`} onClick={handleHide}>\r\n                        <Translate content=\"mobileApplicationHide\" />\r\n                    </Button>\r\n                </MediaSection>\r\n            </Media>\r\n        </Alert>\r\n    );\r\n};\r\n\r\nLoginMobileApplicationPromotion.propTypes = {\r\n    name: PropTypes.string.isRequired,\r\n    url: PropTypes.string.isRequired,\r\n    icon: PropTypes.string,\r\n    className: PropTypes.string,\r\n    baseClassName: PropTypes.string,\r\n};\r\n\r\nLoginMobileApplicationPromotion.defaultProps = {\r\n    icon: undefined,\r\n    className: undefined,\r\n    baseClassName: 'login-mobile-application-promotion',\r\n};\r\n\r\n\r\nexport default LoginMobileApplicationPromotion;\r\n","module.exports = Jsw.skinUrl + \"/icons/64/plesk/plesk.png?aee4fcbe66c643d3dde4f3de15aa8f4e\";","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport classNames from 'classnames';\r\nimport { Alert, Link } from '@plesk/ui-library';\r\nimport { Locale } from 'jsw';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst Translate = Locale.getTranslate('components.forms.login');\r\n\r\nconst SuggestResolvableHostname = ({ baseClassName, className, link }) => {\r\n    const match = link.match(/^https?:\\/\\/[^\\/?#]*/);\r\n    const host = match[0];\r\n\r\n    return (\r\n        <Alert\r\n            intent=\"info\"\r\n            className={classNames(baseClassName, className)}\r\n        >\r\n            <Translate\r\n                content=\"avoidSSLWarningsMsg\"\r\n                params={{\r\n                    link: <Link href={link}>{host}</Link>,\r\n                }}\r\n            />\r\n        </Alert>\r\n    );\r\n};\r\n\r\nSuggestResolvableHostname.propTypes = {\r\n    className: PropTypes.string,\r\n    baseClassName: PropTypes.string,\r\n    link: PropTypes.string.isRequired,\r\n};\r\n\r\nSuggestResolvableHostname.defaultProps = {\r\n    className: undefined,\r\n    baseClassName: 'login-ssl-warnings',\r\n};\r\n\r\nexport default SuggestResolvableHostname;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useMemo, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, Dropdown, Menu, MenuItem } from '@plesk/ui-library';\r\nimport { Locale } from 'jsw';\r\n\r\nconst Translate = Locale.getTranslate('components.forms.login');\r\n\r\nconst LocaleSwitcher = ({ locales, value: defaultValue, onChange }) => {\r\n    const [value, setValue] = useState(defaultValue);\r\n\r\n    const sortedLocales = useMemo(() => locales.slice().sort((a, b) => {\r\n        if (b.code === 'en-US' || a.name > b.name) {\r\n            return 1;\r\n        }\r\n        if (a.code === 'en-US' || b.name > a.name) {\r\n            return -1;\r\n        }\r\n        return 0;\r\n    }), [locales]);\r\n\r\n    const handleChange = value => {\r\n        setValue(value);\r\n        onChange(value);\r\n    };\r\n\r\n    return (\r\n        <Dropdown\r\n            menuPlacement=\"bottom-end\"\r\n            menu={(\r\n                <Menu\r\n                    className=\"login-page__locale-switcher-menu\"\r\n                >\r\n                    <MenuItem\r\n                        active={value === 'default'}\r\n                        onClick={() => handleChange('default')}\r\n                    >\r\n                        <Translate content=\"defaultLocale\" />\r\n                    </MenuItem>\r\n                    {sortedLocales.map(({ code, name, isRtl }) => (\r\n                        <MenuItem\r\n                            key={code}\r\n                            active={value === code}\r\n                            onClick={() => handleChange(code)}\r\n                            dir={isRtl ? 'rtl' : 'ltr'}\r\n                        >\r\n                            {name}\r\n                        </MenuItem>\r\n                    ))}\r\n                </Menu>\r\n            )}\r\n        >\r\n            <Button\r\n                className=\"login-page__locale-switcher-button pul-button--on-dark\"\r\n                tooltip={<Translate content=\"localeLabel\" />}\r\n                icon=\"globe\"\r\n                ghost\r\n                caret\r\n            />\r\n        </Dropdown>\r\n    );\r\n};\r\n\r\nLocaleSwitcher.propTypes = {\r\n    locales: PropTypes.arrayOf(PropTypes.shape({\r\n        code: PropTypes.string.isRequired,\r\n        name: PropTypes.string.isRequired,\r\n        isRtl: PropTypes.bool.isRequired,\r\n    })).isRequired,\r\n    value: PropTypes.string.isRequired,\r\n    onChange: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default LocaleSwitcher;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useCallback, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { FormFieldText, FormFieldRadioButtons, Heading } from '@plesk/ui-library';\r\nimport { Locale } from 'jsw';\r\nimport { addToast } from 'helpers/toasts';\r\nimport Form from 'components/Form';\r\nimport Link from 'components/common/Link';\r\nimport { withLoginLayout } from '../layouts/LoginLayout';\r\n\r\nconst Translate = Locale.getTranslate('components.forms.get-password');\r\n\r\nconst GetPasswordPage = ({ values: defaultValues }) => {\r\n    const navigate = useNavigate();\r\n    const values = useMemo(() => ({\r\n        resetBy: 'email',\r\n        email: '',\r\n        login: '',\r\n        ...defaultValues,\r\n    }), [defaultValues]);\r\n\r\n    const handleSuccess = useCallback(() => {\r\n        addToast({\r\n            intent: 'success',\r\n            message: <Translate content=\"messageSend\" />,\r\n        });\r\n        navigate('/login_up.php');\r\n    }, [navigate]);\r\n\r\n    return (\r\n        <>\r\n            <Heading level=\"3\"><Translate content=\"label\" /></Heading>\r\n            <p><Translate content=\"text\" /></p>\r\n            <Form\r\n                id=\"form-changepassword-getlink\"\r\n                values={values}\r\n                onSuccess={handleSuccess}\r\n                applyButton={false}\r\n                submitButton={{\r\n                    children: <Translate content=\"send\" />,\r\n                    'data-action': 'send',\r\n                }}\r\n                cancelButton={{\r\n                    component: Link,\r\n                    to: '/login_up.php',\r\n                    children: <Translate content=\"cancel\" />,\r\n                    'data-action': 'cancel',\r\n                }}\r\n                vertical\r\n            >\r\n                <FormFieldRadioButtons\r\n                    name=\"resetBy\"\r\n                    options={[\r\n                        {\r\n                            value: 'email',\r\n                            label: <Translate content=\"emailLabel\" />,\r\n                            indentFields: [\r\n                                <FormFieldText\r\n                                    key=\"reset-by-email\"\r\n                                    name=\"email\"\r\n                                    autoFocus\r\n                                    size=\"fill\"\r\n                                />,\r\n                            ],\r\n                        },\r\n                        {\r\n                            value: 'login',\r\n                            label: <Translate content=\"loginLabel\" />,\r\n                            indentFields: [\r\n                                <FormFieldText\r\n                                    key=\"reset-by-login\"\r\n                                    name=\"login\"\r\n                                    size=\"fill\"\r\n                                />,\r\n                            ],\r\n                        },\r\n                    ]}\r\n                />\r\n            </Form>\r\n        </>\r\n    );\r\n};\r\n\r\nGetPasswordPage.propTypes = {\r\n    values: PropTypes.shape({\r\n        resetBy: PropTypes.string,\r\n        email: PropTypes.string,\r\n        login: PropTypes.string,\r\n    }),\r\n};\r\n\r\nGetPasswordPage.defaultProps = {\r\n    values: undefined,\r\n};\r\n\r\nexport default withLoginLayout(GetPasswordPage);\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useCallback, useState } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { FormFieldPassword } from '@plesk/ui-library';\r\nimport { Locale, api } from 'jsw';\r\nimport estimatePassword from 'helpers/estimatePassword';\r\nimport { addToast } from 'helpers/toasts';\r\nimport Form from 'components/Form';\r\nimport Link from 'components/common/Link';\r\nimport { withLoginLayout } from '../layouts/LoginLayout';\r\n\r\nconst Translate = Locale.getTranslate('components.forms.restore-password');\r\n\r\nconst RestorePasswordPage = () => {\r\n    const navigate = useNavigate();\r\n    const [errors, setErrors] = useState({});\r\n\r\n    const handleSubmit = values => {\r\n        const errors = {};\r\n        if (!values.password) {\r\n            errors.password = {\r\n                isEmpty: <Translate content=\"isEmpty\" />,\r\n            };\r\n        }\r\n\r\n        setErrors(errors);\r\n        if (!Object.keys(errors).length) {\r\n            return values;\r\n        }\r\n    };\r\n\r\n    const handleSuccess = useCallback(() => {\r\n        addToast({\r\n            intent: 'success',\r\n            message: <Translate content=\"restoreSuccess\" />,\r\n        });\r\n        navigate('/login_up.php');\r\n    }, [navigate]);\r\n\r\n    const handleEstimatePassword = useCallback(password => estimatePassword(password, password => api.post('?estimate', { password })), []);\r\n\r\n    return (\r\n        <Form\r\n            id=\"form-restore-password\"\r\n            onSubmit={handleSubmit}\r\n            onSuccess={handleSuccess}\r\n            submitButton={{\r\n                children: <Translate content=\"buttonRestore\" />,\r\n            }}\r\n            applyButton={false}\r\n            cancelButton={{\r\n                children: <Translate content=\"buttonCancel\" />,\r\n                component: Link,\r\n                to: '/login_up.php',\r\n            }}\r\n            errors={errors}\r\n            vertical\r\n        >\r\n            <h3><Translate content=\"title\" /></h3>\r\n            <FormFieldPassword\r\n                title={<Translate content=\"passwordLabel\" />}\r\n                name=\"password\"\r\n                size=\"fill\"\r\n                autoComplete=\"new-password\"\r\n                passwordMeterProps={{\r\n                    onEstimate: handleEstimatePassword,\r\n                    placement: 'top-right',\r\n                }}\r\n            />\r\n        </Form>\r\n    );\r\n};\r\n\r\nexport default withLoginLayout(RestorePasswordPage);\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { useState, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { LocaleProvider as BaseLocaleProvider } from '@plesk/ui-library';\r\nimport { Locale, Observer } from 'jsw';\r\nimport { useEventListener } from 'common/hooks';\r\n\r\nconst mergeMessages = (oldMessages, messages, prefix) => {\r\n    const prefixedMessages = Object.entries(messages)\r\n        .reduce((res, [key, value]) => {\r\n            res[`${prefix}.${key}`] = value;\r\n            return res;\r\n        }, {});\r\n\r\n    return {\r\n        ...oldMessages,\r\n        ...prefixedMessages,\r\n    };\r\n};\r\n\r\nconst LocaleProvider = ({ children }) => {\r\n    const [messages, setMessages] = useState(Object.entries(Locale.sections)\r\n        .reduce((oldMessages, [sectionName, section]) => mergeMessages(oldMessages, section.messages, sectionName), {}));\r\n\r\n    const handleAddedLocaleSection = useCallback(({ name, messages }) => {\r\n        setMessages(oldMessages => mergeMessages(oldMessages, messages, name));\r\n    }, []);\r\n\r\n    useEventListener('plesk:addedLocaleSection', handleAddedLocaleSection, Observer);\r\n\r\n    return (\r\n        <BaseLocaleProvider messages={messages}>\r\n            {children}\r\n        </BaseLocaleProvider>\r\n    );\r\n};\r\n\r\nLocaleProvider.propTypes = {\r\n    children: PropTypes.any,\r\n};\r\n\r\nLocaleProvider.defaultProps = {\r\n    children: undefined,\r\n};\r\n\r\nexport default LocaleProvider;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { Component, Popover, StatusMessage, Text } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { captureException } from '@sentry/browser';\r\n\r\nclass ErrorBoundary extends Component {\r\n    state = {\r\n        error: null,\r\n        errorInfo: null,\r\n    };\r\n\r\n    componentDidCatch(error, errorInfo) {\r\n        this.setState({\r\n            error,\r\n            errorInfo,\r\n        });\r\n        captureException(error);\r\n    }\r\n\r\n    render() {\r\n        if (this.state.errorInfo) {\r\n            return (\r\n                <Popover\r\n                    target={<StatusMessage intent=\"danger\" style={{ margin: 0 }}>{'Internal error'}</StatusMessage>}\r\n                    intent=\"danger\"\r\n                    placement=\"bottom-start\"\r\n                    wide\r\n                >\r\n                    <Text style={{ whiteSpace: 'pre-wrap', fontFamily: 'monospace' }}>\r\n                        {this.state.error && this.state.error.toString()}\r\n                        {this.state.errorInfo.componentStack}\r\n                    </Text>\r\n                </Popover>\r\n            );\r\n        }\r\n\r\n        return this.props.children;\r\n    }\r\n}\r\n\r\nErrorBoundary.propTypes = {\r\n    children: PropTypes.any,\r\n};\r\n\r\nErrorBoundary.defaultProps = {\r\n    children: undefined,\r\n};\r\n\r\nexport default ErrorBoundary;\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nconst entries = {\r\n    'app/editlist': () => import(/* webpackChunkName: \"app/editlist\" */'./editlist'),\r\n    'app/rating': () => import(/* webpackChunkName: \"app/rating\" */'./rating'),\r\n    'app/aha': () => import(/* webpackChunkName: \"app/aha\" */'./aha'),\r\n    'app/eula': () => import(/* webpackChunkName: \"app/eula\" */'./eula'),\r\n    'app/app-image/gallery': () => import(/* webpackChunkName: \"app/app-image/gallery\" */'./app-image/gallery'),\r\n    'app/asp-dot-net/conn_strings-dynamic': () => import(/* webpackChunkName: \"app/asp-dot-net/conn_strings-dynamic\" */'./asp-dot-net/conn_strings-dynamic'),\r\n    'app/asp-dot-net/custom_errors-dynamic': () => import(/* webpackChunkName: \"app/asp-dot-net/custom_errors-dynamic\" */'./asp-dot-net/custom_errors-dynamic'),\r\n    'app/backup/list': () => import(/* webpackChunkName: \"app/backup/list\" */'./backup/list'),\r\n    'app/backup/restore': () => import(/* webpackChunkName: \"app/backup/restore\" */'./backup/restore'),\r\n    'app/backup/upload-files': () => import(/* webpackChunkName: \"app/backup/upload-files\" */'./backup/upload-files'),\r\n    'app/backup/web-content-dynamic': () => import(/* webpackChunkName: \"app/backup/web-content-dynamic\" */'./backup/web-content-dynamic'),\r\n    'app/database/assign-to-subscription': () => import(/* webpackChunkName: \"app/database/assign-to-subscription\" */'views/smb/database/list/AssignToSubscription'),\r\n    'app/dns-helper': () => import(/* webpackChunkName: \"app/dns-helper\" */'./dns-helper'),\r\n    'app/dns-helper/dns-settings': () => import(/* webpackChunkName: \"app/dns-helper/dns-settings\" */'./dns-helper/dns-settings'),\r\n    'app/email-address/aliases-dynamic': () => import(/* webpackChunkName: \"app/email-address/aliases-dynamic\" */'./email-address/aliases-dynamic'),\r\n    'app/email-address/form-ajax': () => import(/* webpackChunkName: \"app/email-address/form-ajax\" */'./email-address/form-ajax'),\r\n    'app/email-address/postbox': () => import(/* webpackChunkName: \"app/email-address/postbox\" */'./email-address/postbox'),\r\n    'app/email-address/responder-attachments-dynamic': () => import(\r\n    /* webpackChunkName: \"app/email-address/responder-attachments-dynamic\" */\r\n        './email-address/responder-attachments-dynamic'\r\n    ),\r\n    'app/file-manager/explorer': () => import(/* webpackChunkName: \"app/file-manager/explorer\" */'./file-manager/explorer'),\r\n    'app/file-manager/file-name-popup-form': () => import(/* webpackChunkName: \"app/file-manager/file-name-popup-form\" */'./file-manager/file-name-popup-form'),\r\n    'app/mail-settings/confirmation-remove-popup-form': () => import(\r\n        /* webpackChunkName: \"app/mail-settings/confirmation-remove-popup-form\" */\r\n        './mail-settings/confirmation-remove-popup-form'\r\n    ),\r\n    'app/hosting-settings/conflicts-checker': () => import(/* webpackChunkName: \"app/hosting-settings/conflicts-checker\" */'./hosting-settings/conflicts-checker'),\r\n    'app/log-browser/browser': () => import(/* webpackChunkName: \"app/log-browser/browser\" */'./log-browser/browser'),\r\n    'app/log-browser/files': () => import(/* webpackChunkName: \"app/log-browser/files\" */'./log-browser/files'),\r\n    'app/login/recovery-password': () => import(/* webpackChunkName: \"app/login/recovery-password\" */'./login/recovery-password'),\r\n    'app/newsletter-subscription': () => import(/* webpackChunkName: \"app/newsletter-subscription\" */'./newsletter-subscription'),\r\n    'app/progress-dialog': () => import(/* webpackChunkName: \"app/progress-dialog\" */'./progress-dialog'),\r\n    'app/profile/announcement-settings': () => import(/* webpackChunkName: \"app/profile/announcement-settings\" */'./profile/announcement-settings'),\r\n    'app/pum': () => import(/* webpackChunkName: \"app/pum\" */'./pum'),\r\n    'app/server-mail-antivirus-promo': () => import(/* webpackChunkName: \"app/server-mail-antivirus-promo\" */'./server-mail-antivirus-promo'),\r\n    'app/show-output-popup': () => import(/* webpackChunkName: \"app/show-output-popup\" */'./show-output-popup'),\r\n    'app/task-progress-bar': () => import(/* webpackChunkName: \"app/task-progress-bar\" */'./task-progress-bar'),\r\n    'app/user/login-string': () => import(/* webpackChunkName: \"app/user/login-string\" */'./user/login-string'),\r\n    'app/change-customers-owner': () => import(/* webpackChunkName: \"app/change-customers-owner\" */'./change-customers-owner'),\r\n    'app/convert-customers-to-resellers': () => import(/* webpackChunkName: \"app/convert-customers-to-resellers\" */'./convert-customers-to-resellers'),\r\n    'app/convert-resellers-to-customers': () => import(/* webpackChunkName: \"app/convert-resellers-to-customers\" */'./convert-resellers-to-customers'),\r\n    'app/service-sidebar': () => import(/* webpackChunkName: \"app/service-sidebar\" */'components/sidebars/ServiceSidebar'),\r\n    'app/ssl-certificate/list': () => import(/* webpackChunkName: \"app/ssl-certificate/list\" */'./ssl-certificate/list'),\r\n    'app/app/progress': () => import(/* webpackChunkName: \"app/app/progress\" */'./app/progress'),\r\n    'app/app/installed': () => import(/* webpackChunkName: \"app/app/installed\" */'./app/installed'),\r\n    'app/app/apscatalog': () => import(/* webpackChunkName: \"app/app/apscatalog\" */'./app/apscatalog'),\r\n    'app/web-app-firewall/submit-handler': () => import(/* webpackChunkName: \"app/web-app-firewall/submit-handler\" */'./web-app-firewall/submit-handler'),\r\n};\r\n\r\nexport default async (path, callback) => {\r\n    if (!entries[path]) {\r\n        throw new Error(`Unknown required module ${path}.`);\r\n    }\r\n\r\n    try {\r\n        const { default: module } = await entries[path]();\r\n        callback?.(module);\r\n        return module;\r\n    } catch (error) {\r\n    // eslint-disable-next-line no-console\r\n        console.error(error);\r\n        return new Promise(() => {});\r\n    }\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { init, configureScope, Replay } from '@sentry/browser';\r\nimport { BrowserTracing } from '@sentry/tracing';\r\nimport { withoutGraphQLFetch } from 'apollo-link-sentry';\r\n\r\nexport default ({ sentry }) => {\r\n    if (!sentry) {\r\n        return;\r\n    }\r\n\r\n    if (window.navigator.userAgent.match(/jsdom/)) {\r\n        return;\r\n    }\r\n\r\n    const { user = null, tags = {}, environment, ...options } = sentry;\r\n    const isDev = environment === 'development';\r\n\r\n    init({\r\n        integrations: [\r\n            new Replay({\r\n                maskAllText: !isDev,\r\n                maskAllInputs: !isDev,\r\n            }),\r\n            new BrowserTracing({\r\n                beforeNavigate: context => ({\r\n                    ...context,\r\n                    name: location.pathname\r\n                        .replace(/\\/[a-f0-9]{8}-[a-f0-9]{4}-[0-5][a-f0-9]{3}-[089ab][a-f0-9]{3}-[a-f0-9]{12}/ig, '/<guid>')\r\n                        .replace(/\\/[a-f0-9]{32}/g, '/<hash>')\r\n                        .replace(/\\/\\d+/g, '/<digits>')\r\n                        .replace(/\\/type\\/(domain|alias)/, '/type/<type>'),\r\n                }),\r\n            }),\r\n        ],\r\n        beforeSend: (event, hint) => {\r\n            const err = hint.originalException;\r\n            if (err && err.stack) {\r\n                // mozilla and safari debuggers\r\n                const catchDebugger = /global code@|@debugger/.test(err.stack);\r\n                const stack = err.stack.split('\\n');\r\n                // chrome anonymous stack\r\n                const anonymousCall = stack.length === 2 && /<anonymous>:1:(\\d+)$/.test(stack.at(-1));\r\n                if (catchDebugger || anonymousCall) {\r\n                    return null;\r\n                }\r\n            }\r\n            return event;\r\n        },\r\n        beforeBreadcrumb: withoutGraphQLFetch(breadcrumb => {\r\n            if (breadcrumb.category === 'xhr' || breadcrumb.category === 'fetch') {\r\n                const url = breadcrumb.data?.url ?? '';\r\n\r\n                if (url.includes('firehose.us-west-2.amazonaws.com')) {\r\n                    return null;\r\n                }\r\n\r\n                if (url.includes('/cp/locale')) {\r\n                    const sections = new URLSearchParams(url.split('?')[1]).getAll('sections[]');\r\n\r\n                    return {\r\n                        type: 'http',\r\n                        category: 'plesk.locale',\r\n                        data: {\r\n                            sections,\r\n                        },\r\n                    };\r\n                }\r\n            }\r\n\r\n            return breadcrumb;\r\n        }),\r\n        ignoreErrors: [\r\n            'ResizeObserver loop',\r\n            'ApiFetchError:',\r\n            'whmcs_user_id is not defined',\r\n            '__renderMessageNode is not defined',\r\n            'Module build failed',\r\n            'jQuery is not defined',\r\n            'safari-extension://',\r\n            'moz-extension://',\r\n            'chrome-extension://',\r\n            'Object Not Found Matching Id:',\r\n            // TODO PPP-60163: Error: Script error for ...\r\n            'Script error for',\r\n            // TODO EXTPLESK-4373: [Acronis Backup] TypeError: Cannot read properties of null (reading 'readAttribute')\r\n            'loadAndDisplayNotifications',\r\n        ],\r\n        denyUrls: [\r\n            // Chrome extensions\r\n            /extensions\\//i,\r\n            /^chrome:\\/\\//i,\r\n            // TODO EXTPLESK-1671: [Help Center] Not compatible with Plesk 18.0\r\n            '/modules/help-center/global.js',\r\n            // TODO EXTPLESK-2342 [Speed Kit] Sentry pollution when Plesk session is expired\r\n            '/modules/baqend/script.js',\r\n            // TODO EXTPLESK-2242: Legacy Addendio - WordPress Plugins and Themes generates errors on login page\r\n            '/modules/addendio-wordpress/global.js',\r\n            // TODO EXTPLESK-2938: [ImunifyAV] TypeError: Cannot read property 'update'/'show' of null\r\n            '/modules/revisium-antivirus/js/ra_domain.js',\r\n            // TODO EXTWPTOOLK-10233: TypeError: null is not an object (evaluating 'body.select')\r\n            '/modules/wp-toolkit/js/domain-page.js',\r\n        ],\r\n        sampleRate: isDev ? 1 : 0.05,\r\n        replaysSessionSampleRate: 0,\r\n        replaysOnErrorSampleRate: isDev ? 1 : 0,\r\n        tracesSampleRate: isDev ? 0.01 : 0,\r\n        environment,\r\n        ...options,\r\n    });\r\n    configureScope(scope => {\r\n        scope.setUser(user);\r\n        for (const tag in tags) {\r\n            scope.setTag(tag, tags[tag]);\r\n        }\r\n    });\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport * as AdminPanel from './admin-panel';\r\nimport * as Smb from './smb';\r\nimport * as common from './common';\r\nimport * as chk from './chk';\r\nimport Tooltip from './Tooltip';\r\nimport onReady from '../jsw/onReady';\r\n\r\nwindow.AdminPanel = AdminPanel;\r\nwindow.Smb = Smb;\r\n\r\nObject.keys(common).forEach(fn => {\r\n    window[fn] = common[fn];\r\n});\r\n\r\nObject.keys(chk).forEach(fn => {\r\n    window[fn] = chk[fn];\r\n});\r\n\r\nonReady(() => {\r\n    window.tooltip = new Tooltip(document);\r\n});\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\n/* eslint-disable react/no-multi-comp */\r\n\r\nimport { Component, Panel as BasePanel, ListContainer, SmallButton } from 'jsw';\r\n\r\nclass UpdateAvailableNotification extends Component {\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        const id = this._getConfigParam('type');\r\n\r\n        const buttonNow = this._getConfigParam('nowElement');\r\n        const buttonShow = this._getConfigParam('showElement');\r\n        const linkLater = this._getConfigParam('laterElement');\r\n\r\n        this._updateComponentElement((\r\n            '<div class=\"msg-box msg-update\"><div><div><div><div><div>' +\r\n                '<div class=\"msg-content\">' +\r\n                    '<table class=\"update-container\" cellspacing=\"0\" width=\"100%\">' +\r\n                        '<tbody>' +\r\n                            '<tr>' +\r\n                                '<td class=\"update\">' +\r\n                                    `<span class=\"update-info\">${this._getConfigParam('message', '')}</span>` +\r\n                                '</td>' +\r\n                                '<td class=\"update-links\">' +\r\n                                    `<button id=\"control-${id}-now\" class=\"btn\" type=\"submit\">${buttonNow.text}</button>` +\r\n                                    `<button id=\"control-${id}-show\" class=\"btn\" type=\"submit\">${buttonShow.text}</button>` +\r\n                                    `<a id=\"control-${id}-later\" href=\"#\"><span>${linkLater.text}</span></a>` +\r\n                                '</td>' +\r\n                            '</tr>' +\r\n                        '</tbody>' +\r\n                    '</table>' +\r\n                '</div>' +\r\n            '</div></div></div></div></div></div>'\r\n        ));\r\n\r\n        this._componentElement.querySelector(`#control-${id}-now`).addEventListener('click', event => {\r\n            buttonNow.handler();\r\n            event.preventDefault();\r\n        });\r\n\r\n        this._componentElement.querySelector(`#control-${id}-show`).addEventListener('click', event => {\r\n            buttonShow.handler();\r\n            event.preventDefault();\r\n        });\r\n\r\n        this._componentElement.querySelector(`#control-${id}-later`).addEventListener('click', event => {\r\n            linkLater.handler();\r\n            event.preventDefault();\r\n        });\r\n    }\r\n}\r\n\r\n\r\nclass UpgradeAvailableNotification extends Component {\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        const id = this._getConfigParam('type');\r\n\r\n        const buttonShow = this._getConfigParam('showElement');\r\n        const linkLater = this._getConfigParam('laterElement');\r\n\r\n        this._updateComponentElement((\r\n            '<div class=\"msg-box msg-update\"><div><div><div><div><div>' +\r\n                '<div class=\"msg-content\">' +\r\n                    '<table class=\"update-container\" cellspacing=\"0\" width=\"100%\">' +\r\n                        '<tbody>' +\r\n                            '<tr>' +\r\n                                '<td class=\"update\">' +\r\n                                    `<span class=\"update-info\">${this._getConfigParam('message', '')}</span>` +\r\n                                '</td>' +\r\n                                '<td class=\"update-links\">' +\r\n                                    `<button id=\"control-${id}-show\" class=\"btn\" type=\"submit\">${buttonShow.text}</button>` +\r\n                                    `<a id=\"control-${id}-later\" href=\"#\"><span>${linkLater.text}</span></a>` +\r\n                                '</td>' +\r\n                            '</tr>' +\r\n                        '</tbody>' +\r\n                    '</table>' +\r\n                '</div>' +\r\n            '</div></div></div></div></div></div>'\r\n        ));\r\n\r\n        this._componentElement.querySelector(`#control-${id}-show`).addEventListener('click', event => {\r\n            buttonShow.handler();\r\n            event.preventDefault();\r\n        });\r\n\r\n        this._componentElement.querySelector(`#control-${id}-later`).addEventListener('click', event => {\r\n            linkLater.handler();\r\n            event.preventDefault();\r\n        });\r\n    }\r\n}\r\n\r\nclass Panel extends BasePanel {\r\n    _addTooltips() {\r\n        // disable tooltip for description option\r\n    }\r\n\r\n    _getSubTitleHtml() {\r\n        const descriptionText = this._getConfigParam('description');\r\n        if (!descriptionText) {\r\n            return '';\r\n        }\r\n\r\n        return (\r\n            '<div class=\"description\">' +\r\n                `<div class=\"description-area\">${descriptionText}</div>` +\r\n            '</div>'\r\n        );\r\n    }\r\n}\r\n\r\nclass PanelItemsGroup extends ListContainer {\r\n}\r\n\r\nclass PanelItem extends SmallButton {\r\n}\r\n\r\nexport const home = {\r\n    UpdateAvailableNotification,\r\n    UpgradeAvailableNotification,\r\n    Panel,\r\n    PanelItemsGroup,\r\n    PanelItem,\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { createElement as ce, getComponent, api, escapeHtml, prepareUrl, BigButton, StatusMessage, Popup } from 'jsw';\r\n\r\n/* SMB specific JavaScript classes */\r\n\r\nexport const ApsLicense = {\r\n    buy(action) {\r\n        window.open(action);\r\n        return false;\r\n    },\r\n\r\n    initForm() {\r\n        document.getElementById('apsLicense-uploadType-text').addEventListener('click', this.onChangeUploadType.bind(this));\r\n        document.getElementById('apsLicense-uploadType-file').addEventListener('click', this.onChangeUploadType.bind(this));\r\n    },\r\n\r\n    onChangeUploadType() {\r\n        if (document.getElementById('apsLicense-uploadType-text').checked) {\r\n            document.getElementById('apsLicense-uploadText').disabled = false;\r\n            document.getElementById('uploadFile').disabled = true;\r\n        } else {\r\n            document.getElementById('apsLicense-uploadText').disabled = true;\r\n            document.getElementById('uploadFile').disabled = false;\r\n        }\r\n    },\r\n};\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport const ToolButton = BigButton;\r\n\r\nexport class ApplicationUpdate extends StatusMessage {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration({\r\n            ...config,\r\n            type: 'warning',\r\n        });\r\n        this._data = this._getConfigParam('data', []);\r\n        this._limit = this._getConfigParam('limit', 5);\r\n    }\r\n\r\n    _renderMessage() {\r\n        const message = [super._renderMessage()];\r\n        message.push(ce('br'));\r\n        this._data.each(app => {\r\n            message.push(\r\n                ce('div.b-subitem',\r\n                    `${app.name} `,\r\n                    ce('span.hint', `(${this._renderHint(app)})`),\r\n                    ' ',\r\n                    ce('a.toggler.js-install', this.lmsg('install')),\r\n                    '&nbsp; ',\r\n                    ce('a.toggler.js-changelog', this.lmsg('changelog')),\r\n                    ce('input', { type: 'hidden', value: JSON.stringify(app) }),\r\n                ),\r\n            );\r\n        });\r\n        if (this._data.length > this._limit) {\r\n            message.push(ce('a.toggler.js-view-more', this.lmsg('viewMore', { number: this._data.length - this._limit })));\r\n        }\r\n        return message;\r\n    }\r\n\r\n    _renderHint(app) {\r\n        if (app.instances.length === 1) {\r\n            return app.instances[0].name;\r\n        }\r\n        return this.lmsg('instances', { total: app.instances.length });\r\n    }\r\n\r\n    _addEvents() {\r\n        super._addEvents();\r\n\r\n        this._componentElement.querySelectorAll('.b-subitem').forEach(item => {\r\n            item.querySelector('.js-install').addEventListener('click', event => {\r\n                this._onInstallEvent(event);\r\n            });\r\n            item.querySelector('.js-changelog').addEventListener('click', event => {\r\n                this._onChangelogEvent(event);\r\n            });\r\n        });\r\n\r\n        if (this._data.length > this._limit) {\r\n            [...this._componentElement.querySelectorAll('.b-subitem')].slice(this._limit).forEach(item => {\r\n                item.style.display = 'none';\r\n            });\r\n            this._componentElement.querySelector('.js-view-more').addEventListener('click', event => {\r\n                this._onViewMoreEvent(event);\r\n            });\r\n        }\r\n    }\r\n\r\n    _onInstallEvent(e) {\r\n        const app = JSON.parse(e.target.closest('.b-subitem').querySelector('input').value);\r\n        Smb.updateApplication(app, this.getLocale(), e);\r\n        e.target.closest('.b-subitem').querySelectorAll('a').forEach(a => {\r\n            a.parentNode.removeChild(a);\r\n        });\r\n    }\r\n\r\n    _onChangelogEvent(e) {\r\n        const app = JSON.parse(e.target.closest('.b-subitem').querySelector('input').value);\r\n        Smb.showApplicationChangelog(app, this.getLocale(), e);\r\n    }\r\n\r\n    _onViewMoreEvent() {\r\n        [...this._componentElement.querySelectorAll('.b-subitem')].slice(this._limit).forEach(item => {\r\n            item.style.display = item.style.display === 'none' ? '' : 'none';\r\n        });\r\n        this._componentElement.querySelector('.js-view-more').style.display = 'none';\r\n    }\r\n}\r\n\r\nexport const updateApplication = ({ name, instances }, locale, event) => {\r\n    event.preventDefault();\r\n    const beginOffset = Element.cumulativeOffset(event.target);\r\n    const progressBar = getComponent('asyncProgressBarWrapper');\r\n    const itemId = progressBar.fly(beginOffset,\r\n        locale.lmsg('appInstall', { app: escapeHtml(name) }),\r\n        () => {\r\n            api.post(prepareUrl('/app-update/update-all'), {\r\n                resourceIds: instances.map(({ id }) => id),\r\n                name,\r\n            })\r\n                .then(() => {\r\n                    progressBar.removePreparingItem(itemId);\r\n                    progressBar.update();\r\n                });\r\n        },\r\n    );\r\n    if (event.target.closest('.caption-service-toolbar')) {\r\n        event.target.closest('.caption-service-toolbar').querySelectorAll('.js-app-update').forEach(el => el.parentNode.removeChild(el));\r\n    }\r\n};\r\n\r\nexport const showApplicationChangelog = (app, locale, event) => {\r\n    new Ajax.Request(prepareUrl(`/app-update/index/resourceId/${app.instances[0].id}/`), {\r\n        method: 'get',\r\n        onCreate() {\r\n            new Popup({\r\n                content: `<div class=\"ajax-loading\">${locale.lmsg('loading')}</div>`,\r\n                title: locale.lmsg('appChangelog', { app: escapeHtml(app.name) }),\r\n            });\r\n        },\r\n        onSuccess(transport) {\r\n            if ('' === transport.responseText) {\r\n                return;\r\n            }\r\n\r\n            let contentText = '';\r\n            try {\r\n                const jsonResponse = JSON.parse(transport.responseText);\r\n                if ('error' === jsonResponse.status) {\r\n                    contentText = ('' != jsonResponse.statusMessages)\r\n                        ? jsonResponse.statusMessages\r\n                        : locale.lmsg('unableGetChangelog');\r\n                }\r\n            } catch {\r\n                contentText = transport.responseText;\r\n            }\r\n\r\n            const popup = new Popup({\r\n                content: contentText,\r\n                title: locale.lmsg('appChangelog', { app: escapeHtml(app.name) }),\r\n                onShow() {\r\n                    document.querySelectorAll('.apps-box').forEach(function (e) {\r\n                        const viewportHeight = document.viewport.getHeight();\r\n                        const popupHeight = Element.getHeight(e.closest('.popup-container'));\r\n                        const popupTop = Element.positionedOffset(e.closest('.popup-panel')).top;\r\n                        if (popupHeight + (popupTop * 2) >= viewportHeight) {\r\n                            const height = viewportHeight - (popupHeight - Element.getHeight(e)) - (popupTop * 2);\r\n                            e.style.overflow = 'auto';\r\n                            e.style.height = `${height}px`;\r\n                        }\r\n                    });\r\n                },\r\n                buttons: [\r\n                    {\r\n                        title: locale.lmsg('close'),\r\n                        handler() {\r\n                            popup.hide();\r\n                        },\r\n                    },\r\n                ],\r\n            });\r\n        },\r\n    });\r\n    event.preventDefault();\r\n};\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { onReady, redirectPost, showInternalError, keyCode } from 'jsw';\r\n\r\n/* eslint-disable camelcase */\r\n\r\nexport const syn = s => {\r\n    if (!s || !s.options || !s.options.length) {\r\n        return false;\r\n    }\r\n\r\n    if (s.options[s.options.length - 1].selected) {\r\n        s.options[s.options.length - 1].selected = false;\r\n    }\r\n\r\n    return true;\r\n};\r\n\r\n// ---------------------------------- redirect\r\n\r\nexport const go_to = href => {\r\n    try {\r\n        window.location = href;\r\n    } catch {\r\n    }\r\n};\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport const lon = () => true;\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport const loff = () => true;\r\n\r\nexport const lsubmit = f => {\r\n    try {\r\n        if (f.lock.value === 'true') {\r\n            return false;\r\n        }\r\n        f.lock.value = 'true';\r\n    } catch {\r\n    }\r\n\r\n    lon();\r\n\r\n    const button = document.getElementById('buttonid-ok');\r\n    if (button) {\r\n        button.disabled = true;\r\n        button.classList.add('btn-waiting');\r\n    }\r\n\r\n    try {\r\n        f.submit();\r\n    } catch {\r\n        loff();\r\n        f.lock.value = 'false';\r\n        return false;\r\n    }\r\n    return true;\r\n};\r\n\r\nexport const getParentNodeByName = (o, name) => {\r\n    const parent = o.parentNode;\r\n    if (!parent) {\r\n        return false;\r\n    }\r\n    if (parent.nodeName !== name) {\r\n        return getParentNodeByName(parent, name);\r\n    }\r\n    return parent;\r\n};\r\n\r\nexport const errorfield = (o, status) => {\r\n    const tr = getParentNodeByName(o, 'TR');\r\n    if (!tr) {\r\n        return false;\r\n    }\r\n    tr.className = status ? 'error' : '';\r\n    return true;\r\n};\r\n\r\n// global actions and behaviors\r\nonReady(() => {\r\n    document.querySelectorAll('textarea.js-auto-resize').forEach(element => {\r\n        const resizeHandler = () => {\r\n            const lines = element.value.split('\\n').length;\r\n            if (lines < originalSize) {\r\n                element.rows = originalSize;\r\n            } else {\r\n                element.rows = lines + 2;\r\n            }\r\n        };\r\n\r\n        const originalSize = element.rows;\r\n        resizeHandler();\r\n\r\n        element.addEventListener('keyup', resizeHandler);\r\n    });\r\n\r\n    // disable autofill for forms with disabled autocomplete fields (Chrome issue)\r\n    document.querySelectorAll('form input[autocomplete=\"off\"]').forEach(element => {\r\n        element.closest('form').setAttribute('autocomplete', 'off');\r\n    });\r\n});\r\n\r\ndocument.addEventListener('click', e => {\r\n    const element = e.target.closest?.('a');\r\n    if (!element) {\r\n        return;\r\n    }\r\n\r\n    // prevent navigation to links with href=\"#\"\r\n    if (element.getAttribute('href') === '#') {\r\n        e.preventDefault();\r\n        return;\r\n    }\r\n\r\n    // use POST method for links with href and data-method=\"post\"\r\n    if (element.href && element.dataset.method === 'post') {\r\n        e.preventDefault();\r\n        redirectPost(element.href);\r\n    }\r\n});\r\n\r\n// cross-site request forgery protection for legacy forms in 3d-party extensions\r\nif ('undefined' !== typeof Prototype) {\r\n    const appendForgeryProtection = form => {\r\n        if (!form || (form.method && form.method.toUpperCase() === 'GET') || form.forgery_protection_token) {\r\n            return;\r\n        }\r\n        const forgeryToken = document.getElementById('forgery_protection_token');\r\n        if (!forgeryToken) {\r\n            return;\r\n        }\r\n        form.appendChild(new Element('input', {\r\n            type: 'hidden',\r\n            name: 'forgery_protection_token',\r\n            value: forgeryToken.content,\r\n        }));\r\n    };\r\n\r\n    document.addEventListener('submit', ({ target }) => {\r\n        const form = target.closest('form');\r\n        appendForgeryProtection(form);\r\n    });\r\n\r\n    const origSubmit = HTMLFormElement.prototype.submit;\r\n    HTMLFormElement.prototype.submit = function () {\r\n        appendForgeryProtection(this);\r\n        return origSubmit.call(this);\r\n    };\r\n\r\n    const origOpen = XMLHttpRequest.prototype.open;\r\n    XMLHttpRequest.prototype.open = function (method, url, ...args) {\r\n        origOpen.call(this, method, url, ...args);\r\n\r\n        const forgeryToken = document.getElementById('forgery_protection_token');\r\n        if (forgeryToken && (!url.match(/^(?:[a-z]+:)?\\/\\//) || url.indexOf(window.location.host) !== -1)) {\r\n            this.setRequestHeader('X-Forgery-Protection-Token', forgeryToken.content);\r\n        }\r\n    };\r\n\r\n    const origInitialize = Ajax.Request.prototype.initialize;\r\n    Ajax.Request.prototype.initialize = function (url, options) {\r\n        return origInitialize.call(this, url, {\r\n            onException(transport, exception) {\r\n                throw exception;\r\n            },\r\n            on400() {\r\n                // Monkey patching Prototype for proper handling of session expiration\r\n                window.location.reload();\r\n            },\r\n            on500(transport) {\r\n                showInternalError(transport.responseText);\r\n            },\r\n            on0() {\r\n                // do nothing in case of internal/network error\r\n                return false;\r\n            },\r\n            ...options,\r\n        });\r\n    };\r\n\r\n    Ajax.Request.prototype.abort = function () {\r\n        this.transport.abort();\r\n    };\r\n}\r\n\r\n// prevent AJAX request canceling on Escape button press in Firefox\r\ndocument.addEventListener('keydown', event => {\r\n    if (keyCode.ESC === event.keyCode) {\r\n        event.preventDefault();\r\n        event.stopPropagation();\r\n    }\r\n});\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\n/* eslint-disable camelcase */\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport const chk_pd_name = (dir, isWin) => {\r\n    const re = isWin ? /^[0-9a-zA-Z\\-_.\\/~@!\\+=\\^\\(\\)\\[\\]\\{\\}, ]+$/ : /^[0-9a-zA-Z-_.\\/]+$/;\r\n    const re1 = isWin\r\n        // forbid // and ^. and /. and .$ and ./\r\n        ? /(\\/\\/|^\\.|\\.$|\\/\\.|\\.\\/|\\/ | \\/)/\r\n        // forbid /../ and // and ^./ and ^../  and /./  and /..$ and /.$ and ^.$\r\n        : /(\\/\\.\\.\\/|\\/\\/|^\\.\\/|^\\.\\.\\/|\\/\\.\\/|\\/\\.\\.$|\\/\\.$|^\\.$)/;\r\n    return (dir.search(re) !== -1) && (dir.search(re1) === -1);\r\n};\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport const chk_pos_int = pos_int => {\r\n    const re = /^\\s*[1-9]{1}[0-9]*\\s*$/;\r\n    return pos_int.search(re) !== -1;\r\n};\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport const chk_mn = (mail_name, isWin) => {\r\n    const re = isWin ? /^([A-Za-z0-9_\\-])+((\\.){1}([A-Za-z0-9_\\-])+)*$/ : /^[\\w-][\\w&\\-\\+]*((\\.)[\\w&\\-\\+]+)*$/;\r\n    return mail_name.search(re) !== -1;\r\n};\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport const chk_login = login => login.search(/^[^\\s]{1,255}$/) !== -1;\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport const chk_realm = realm => realm.search(/^[^\\\"]*$/) !== -1;\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport const chk_dom = (dom_name, isWin) => {\r\n    // check empty value\r\n    if ('' === dom_name) {\r\n        return false;\r\n    }\r\n\r\n    if ('localhost.rev' === dom_name) {\r\n        return false;\r\n    }\r\n\r\n    const inaddr = /\\.in-addr.arpa$/;\r\n    if (dom_name.search(inaddr) !== -1) {\r\n        return false;\r\n    }\r\n\r\n    // no domain name like IP address\r\n    if (chk_ip_address_and_mask(dom_name, 'IP_ADDRESS', 'IP_ADDRESS_FORMAT')) {\r\n        return false;\r\n    }\r\n\r\n    if (isWin && dom_name.search(/\\.d$/) !== -1) {\r\n        return false;\r\n    }\r\n\r\n    return true;\r\n};\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport const chk_email = (email, isWin) => {\r\n    const re = /^([^\\@]+){1}\\@([^\\@]+){1}$/;\r\n    const found = email.match(re);\r\n    if (!found) {\r\n        return false;\r\n    }\r\n    return chk_mn(found[1], isWin) && chk_dom(found[2], isWin);\r\n};\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport const chk_url = url => {\r\n    const re = /^((http[s]?|ftp):\\/\\/)?([^\\/:]+)(:\\d{1,5})?(\\/[^\\s\\\"\\'`]*)?$/i;\r\n    const found = re.exec(url);\r\n    if (!found) {\r\n        return false;\r\n    }\r\n\r\n    return chk_dom(found[3]);\r\n};\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport const chk_ip_t = ip => {\r\n    const re = /^<ip>$/;\r\n    return chk_ip_address_and_mask(ip, 'IP_ADDRESS', 'IP_ADDRESS_FORMAT') || ip.match(re);\r\n};\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport const chk_mask = mask => {\r\n    const re = /^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$/;\r\n    const found = mask.match(re);\r\n    if (!found) {\r\n        return false;\r\n    }\r\n    let i = found.length - 1;\r\n    while (i && (found[i] === 0)) {\r\n        i--;\r\n    }\r\n    if (!i) {\r\n        return true;\r\n    }\r\n    if (\r\n        (found[i] !== 128) &&\r\n        (found[i] !== 192) &&\r\n        (found[i] !== 224) &&\r\n        (found[i] !== 240) &&\r\n        (found[i] !== 248) &&\r\n        (found[i] !== 252) &&\r\n        (found[i] !== 254) &&\r\n        (found[i] !== 255)\r\n    ) {\r\n        return false;\r\n    }\r\n\r\n    i--;\r\n    while (i && (found[i] === 255)) {\r\n        i--;\r\n    }\r\n\r\n    return !i;\r\n};\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport const ip2long = str => {\r\n    let num = 0;\r\n    const re = /^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$/;\r\n\r\n    const found = str.match(re);\r\n    if (!found) {\r\n        return null;\r\n    }\r\n    for (let i = 1; i < found.length; i++) {\r\n        num <<= 8;\r\n        num |= found[i];\r\n    }\r\n    return num;\r\n};\r\n\r\n/**\r\n * convert ip block mask to int32 mask\r\n * @deprecated\r\n */\r\nexport const block_to_num = block => {\r\n    let num = 0;\r\n    for (let i = 0; i < 32; i++) {\r\n        num <<= 1;\r\n        num |= (block > i ? 1 : 0);\r\n    }\r\n    return num;\r\n};\r\n\r\n/**\r\n * check ip address and mask by valid rules\r\n * @deprecated\r\n */\r\nexport const chk_ip_address_and_mask = (ip, valid, valid_formats) => {\r\n    const ip_address_block_format = /^(\\d{1,3})(\\.(\\d{1,3})(\\.(\\d{1,3})(\\.(\\d{1,3})|)|)|)\\/(\\d{1,2})$/;\r\n    const ip_address_format = /^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$/;\r\n\r\n    let found;\r\n    let ip_address = null;\r\n    let ip_mask = null;\r\n\r\n    if (\r\n        (valid_formats === 'IP_ADDRESS_BLOCK_FORMAT') &&\r\n        (found = ip.match(ip_address_block_format)) &&\r\n        (!found[1] || (found[1] >= 0 && found[1] <= 255)) &&\r\n        (!found[3] || (found[3] >= 0 && found[3] <= 255)) &&\r\n        (!found[5] || (found[5] >= 0 && found[5] <= 255)) &&\r\n        (!found[7] || (found[7] >= 0 && found[7] <= 255)) &&\r\n        (found[8] >= 0 && found[8] <= 32)\r\n    ) {\r\n        ip_address = ip2long(`${found[1] ? found[1] : 0}.${found[3] ? found[3] : 0}.${found[5] ? found[5] : 0}.${found[7] ? found[7] : 0}`);\r\n        ip_mask = block_to_num(found[8]);\r\n    } else if (\r\n        (valid_formats === 'IP_ADDRESS_FORMAT') &&\r\n        (found = ip.match(ip_address_format)) &&\r\n        (found[1] >= 0 && found[1] <= 255) &&\r\n        (found[2] >= 0 && found[2] <= 255) &&\r\n        (found[3] >= 0 && found[3] <= 255) &&\r\n        (found[4] >= 0 && found[4] <= 255)\r\n    ) {\r\n        ip_address = ip2long(`${found[1]}.${found[2]}.${found[3]}.${found[4]}`);\r\n        ip_mask = block_to_num(32);\r\n    }\r\n\r\n    if (null === ip_address || null === ip_mask) {\r\n        return false;\r\n    }\r\n\r\n    return (\r\n        // ip address with netmask\r\n        ((valid === 'IP_ADDRESS_NETMASK') &&\r\n            ip_address && ip_mask &&\r\n                (\r\n                    // and not empty lower bits\r\n                    ((ip_address & ~ip_mask) &&\r\n                    // minimum network size 'may be removed - bcause added single addres networks by client request ...\r\n                    ~((ip_address & ~ip_mask) | ip_mask)\r\n                    ) || (ip_mask === block_to_num(32))\r\n                )\r\n        ) ||\r\n        // sigle ip address\r\n        ((valid === 'IP_ADDRESS') &&\r\n            // not empty ip address and 0xFFFFFFFF ip mask\r\n            ip_address && (ip_mask === block_to_num(32))\r\n        )\r\n    );\r\n};\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport const chk_sys_passwd = (username, passwd, minLen, maxLen) => {\r\n    if ((passwd.length < minLen) || (passwd.length > maxLen)) {\r\n        return false;\r\n    }\r\n\r\n    if (passwd.length >= username.length) {\r\n        if (passwd.indexOf(username, 0) !== -1) {\r\n            return false;\r\n        }\r\n    }\r\n\r\n    if ((passwd.indexOf('\\'') !== -1) || (passwd.indexOf(' ') !== -1)) {\r\n        return false;\r\n    }\r\n\r\n    for (let i = 0; i < passwd.length; i++) {\r\n        if (passwd.charCodeAt(i) > 127) {\r\n            return false;\r\n        }\r\n    }\r\n\r\n    return true;\r\n};\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport const chk_uint = uint => !!uint.match(/^[0-9]+$/);\r\n","// Copyright 1999-2023. Plesk International GmbH. All rights reserved.\r\n\r\nimport { escapeHtml } from 'jsw';\r\n\r\nclass Tooltip {\r\n    // tooltip to show timeout\r\n    showTimeout = 0.55;\r\n\r\n    // minimum viewport delta\r\n    minDelta = 5;\r\n\r\n    // horisonatl offset from cursor\r\n    xOffsetLeft = -5;\r\n\r\n    // horisonatl offset from cursor\r\n    xOffsetRight = 5;\r\n\r\n    // vertical offset from cursor\r\n    yOffsetTop = 1;\r\n\r\n    // vertical offset from cursor\r\n    yOffsetBottom = 13;\r\n\r\n    // tooltip element\r\n    tooltip = null;\r\n\r\n    // tooltip generator\r\n    tooltipEventElement = null;\r\n\r\n    // tooltip mouse move observer\r\n    tooltipMouseMoveObserver = null;\r\n\r\n    // show status\r\n    tooltipVisible = false;\r\n\r\n    // show timeout\r\n    tooltipShowTimeout = null;\r\n\r\n    constructor(element) {\r\n        this.element = element;\r\n        this.tooltip = this.createTooltipElement();\r\n        this.tooltipMouseMoveObserver = this.onMouseMove.bind(this);\r\n        this.tooltipMouseOutObserver = this.onMouseOut.bind(this);\r\n    }\r\n\r\n    set(event, entries) {\r\n        this.tooltipX = event.clientX + (window.scrollX || window.pageXOffset);\r\n        this.tooltipY = event.clientY + (window.scrollY || window.pageYOffset);\r\n        this.tooltipEventElement = event.target;\r\n\r\n        // hack observe mouse move on tooltip actor\r\n        if (!this.tooltipEventElement.classList.contains('tootlipObserved')) {\r\n            this.tooltipEventElement.classList.add('tootlipObserved');\r\n            this.tooltipEventElement.addEventListener('mousemove', this.tooltipMouseMoveObserver);\r\n            this.tooltipEventElement.addEventListener('mouseout', this.tooltipMouseOutObserver);\r\n        }\r\n\r\n        let data = '';\r\n        $A(entries).each(entry => {\r\n            switch (entry.type) {\r\n                case 'string':\r\n                    data += `${escapeHtml(entry.string)}<br>`;\r\n                    break;\r\n            }\r\n        });\r\n        this.tooltip.innerHTML = data;\r\n        this.show();\r\n    }\r\n\r\n    onMouseMove(event) {\r\n        this.tooltipX = event.clientX + (window.scrollX || window.pageXOffset);\r\n        this.tooltipY = event.clientY + (window.scrollY || window.pageYOffset);\r\n\r\n        if (this.tooltipVisible) {\r\n            this.showAction(this.tooltip);\r\n        }\r\n    }\r\n\r\n    onMouseOut() {\r\n        this.unset();\r\n    }\r\n\r\n    unset() {\r\n        this.hide();\r\n    }\r\n\r\n    showTimed() {\r\n        // show new message\r\n        if (false === this.tooltipShowTimeout) {\r\n            this.finishShowTimed();\r\n            return;\r\n        }\r\n\r\n        if (null !== this.tooltipShowTimeout) {\r\n            this.cancelShowTimed();\r\n        }\r\n\r\n        this.tooltipShowTimeout = new PeriodicalExecuter(this.finishShowTimed.bind(this), this.showTimeout);\r\n    }\r\n\r\n    cancelShowTimed() {\r\n        if (this.tooltipShowTimeout) {\r\n            this.tooltipShowTimeout.stop();\r\n            this.tooltipShowTimeout = null;\r\n        }\r\n    }\r\n\r\n    finishShowTimed() {\r\n        this.cancelShowTimed();\r\n        this.tooltipShowTimeout = false;\r\n        this.showAction(this.tooltip);\r\n    }\r\n\r\n    show() {\r\n        this.showTimed();\r\n    }\r\n\r\n    getShowPosition() {\r\n        let x;\r\n        let y;\r\n\r\n        const tDim = Element.getDimensions(this.tooltip);\r\n        const vDim = document.viewport.getDimensions();\r\n        const vScr = document.viewport.getScrollOffsets();\r\n\r\n        const freeRight = vDim.width + vScr.left - this.tooltipX;\r\n        const freeLeft = this.tooltipX - vScr.left;\r\n        const freeTop = this.tooltipY - vScr.top;\r\n        const freeBottom = vDim.height + vScr.top - this.tooltipY;\r\n\r\n        // apply better x\r\n        if (freeRight > tDim.width + this.minDelta + this.xOffsetRight) {\r\n            x = this.tooltipX + this.xOffsetRight;\r\n        } else if (freeLeft > tDim.width + this.minDelta + this.xOffsetLeft) {\r\n            x = this.tooltipX - tDim.width - this.xOffsetLeft;\r\n        } else {\r\n            x = this.tooltipX - ((tDim.width + this.xOffsetLeft) / 2);\r\n        }\r\n\r\n        // apply better y\r\n        if (freeBottom > tDim.height + this.minDelta + this.yOffsetBottom) {\r\n            y = this.tooltipY + this.yOffsetBottom;\r\n        } else if (freeTop > tDim.height + this.minDelta + this.yOffsetTop) {\r\n            y = this.tooltipY - tDim.height - this.yOffsetTop;\r\n        } else {\r\n            y = this.tooltipY - ((tDim.height + this.yOffsetTop) / 2);\r\n        }\r\n\r\n        if (x < 0) {\r\n            x = this.minDelta;\r\n        }\r\n\r\n        return { x, y };\r\n    }\r\n\r\n    showAction(tooltip) {\r\n        const position = this.getShowPosition();\r\n        // change position\r\n        tooltip.style.position = 'absolute';\r\n        tooltip.style.top = `${position.y}px`;\r\n        tooltip.style.left = `${position.x}px`;\r\n\r\n        // show\r\n        tooltip.style.display = '';\r\n\r\n        // first show of tooltip?\r\n        const firstShow = !this.tooltipVisible;\r\n        this.tooltipVisible = true;\r\n        if (firstShow) {\r\n            // update position with correct tooltip size\r\n            this.showAction(tooltip);\r\n        }\r\n    }\r\n\r\n    hide() {\r\n        this.cancelShowTimed();\r\n        this.tooltipShowTimeout = null;\r\n        this.hideAction(this.tooltip);\r\n    }\r\n\r\n    hideAction(tooltip) {\r\n        this.tooltipVisible = false;\r\n        tooltip.style.display = 'none';\r\n    }\r\n\r\n    createTooltipElement() {\r\n        const tooltip = document.createElement('div');\r\n        tooltip.classList.add('tooltip');\r\n        this.hideAction(tooltip);\r\n        document.body.appendChild(tooltip);\r\n        return tooltip;\r\n    }\r\n}\r\n\r\nexport default Tooltip;\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\n// data-webpack is not used as build has no uniqueName\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"javascript/\" + chunkId + \".js?\" + {\"components/pages/IpAddressDomainsPage\":\"620b393282f3eaaf08f6\",\"components/pages/ChangeOwnerPage\":\"bb98a72907724c4bbe1a\",\"views/admin/force-reset-password\":\"019c923dce04b034f621\",\"views/admin/setup/progress\":\"cc5370f5c29fe68923bb\",\"views/admin/setup/index\":\"cb41f95bc9dfd2bf4a70\",\"views/admin/home/admin\":\"1078a4d74dd3c3045304\",\"views/admin/app/info\":\"0fa646f46cdae0faaea6\",\"views/admin/app/usage\":\"9a51ef2255f28253abc5\",\"views/admin/app/uploaded\":\"6092ee91bd864c885ddf\",\"views/admin/custom-buttons/list\":\"bb3a1648adaa741490cb\",\"views/admin/ftp-sessions/list\":\"53c223d3de8032674057\",\"views/admin/php-handler/list\":\"b98be1a93aa251a4ed1a\",\"components/pages/ScheduledBackupPage\":\"d15b16691cbe14560fdf\",\"components/pages/ScheduledBackupListPage\":\"e78eb41b9c18c3161178\",\"views/default/scheduler/list\":\"f999408d1033c78ddda2\",\"views/admin/domain/list\":\"35b1127b7912a88aec01\",\"views/admin/customer/list\":\"d691a549c72f0dc84df3\",\"views/admin/customer/domains\":\"86d3f338dbdc66a0b9c7\",\"views/admin/customer/subscriptions\":\"1f0c07a60eca3eadd4dd\",\"views/admin/reseller/list\":\"9d52b2a9bbdb09659949\",\"views/admin/reseller/customers\":\"bbe82563dbed98ac4d22\",\"views/admin/reseller/domains\":\"21c63fc463c18937f8ca\",\"views/admin/reseller/subscriptions\":\"0f5bd4b8250466823cab\",\"views/admin/server/tools\":\"a337346073d94be2f2c8\",\"views/admin/server/preview-domain-settings\":\"42db7e43507b9af08f38\",\"views/admin/services/list\":\"fd37efa1f060f9c1d901\",\"views/admin/sessions/list\":\"cae9652a94849f0ad013\",\"views/admin/subscription/list\":\"d70e9aa398dd4f4586ba\",\"views/smb/file-manager/list\":\"a95399488cf01392c921\",\"views/smb/file-manager/index\":\"c4138dd0005039a8b636\",\"views/smb/my-service/index\":\"9781a44c61935bb2daf4\",\"views/smb/email-address/index\":\"8a629cd03d8a0a215e86\",\"views/smb/email-address/list\":\"e376e3f471ee6ee05094\",\"views/smb/mail-settings/list\":\"19d30bfbbe98b4c56bfc\",\"views/smb/account/index\":\"eeef3b1a05349b02eff7\",\"views/smb/account/show\":\"9ffc56cb211617103f5a\",\"views/smb/user/list\":\"0fb32d2c4c9bf16697ce\",\"views/smb/web/setup\":\"52cb52a7dcfa6001d03a\",\"views/smb/web/view\":\"7f8e606b77cb630a288c\",\"views/smb/web/php-settings\":\"ef66b7ee12b26d575a75\",\"views/smb/statistics/details\":\"cffa52f531082d2fa69a\",\"views/smb/database/index\":\"64d30657e020097645fc\",\"views/smb/database/list\":\"2482a6c2f23a59b34803\",\"views/smb/database/users-list\":\"7702f972458ba0d2ffb9\",\"views/admin/task-manager/index\":\"a310f2317000d6b83b7e\",\"views/dns/records\":\"e208ce8f0d9864a15325\",\"views/dns/records/edit\":\"b178f88a9895d0db3db0\",\"views/dns/records/dns-zone-sync\":\"e24ea297929ac69e15a3\",\"views/dns/soa-record\":\"df5ba2aa49b142546bd6\",\"views/admin/dns/acl-records\":\"5cb3713993eb8fb90097\",\"views/admin/dns/add-acl-record\":\"9fc111e7baccd7f1b0b8\",\"views/admin/dns/external-dns\":\"4fc0f5120eb49ad9d054\",\"views/admin/dns/external-dns-edit\":\"ce23bb26582a3e8468a0\",\"views/smb/dns-zone/records-list\":\"550c6e148e80a6eb71f8\",\"views/smb/dns-zone/soa-record\":\"b5fb6ed4415fff601e3e\",\"views/smb/dns-zone/acl-records\":\"b4f3de36f5e622cf8cd3\",\"views/smb/dns-zone/add-acl-record\":\"b43205527551ad757eaf\",\"views/smb/dns-zone/external-dns\":\"d3173577330ae2d8d724\",\"views/smb/dns-zone/external-dns-edit\":\"e81e454f34a1862b6917\",\"components/pages/BandwidthLimitingPage\":\"7c596028efb59c70e7b1\",\"components/pages/HotlinkProtectionPage\":\"878b076293b79abc23dd\",\"views/admin/settings-ui/edit-interface-view\":\"76da906509cfb37b469b\",\"views/admin/settings-ui/list-languages\":\"8447ea6638bbf67d762a\",\"views/admin/database/settings\":\"bb9a4d68390968926420\",\"views/smb/web/web-server-settings\":\"99ec03ca1dfeab6c0579\",\"views/admin/notifications/index\":\"ca3d47e8cb858ef5bee0\",\"components/pages/PanelNotificationsSettings\":\"f8145306fdbb792ccfc8\",\"components/pages/BrandingPage\":\"d1d990e8d0eb21e4864b\",\"views/server/db\":\"3f70c90b8b40b72eccca\",\"views/admin/websites-diagnostic/index\":\"6e7b15046d766af5b908\",\"components/pages/SystemTimePage\":\"da62f69691de1616970a\",\"views/server/mail\":\"585509175cca6c63bb07\",\"views/license\":\"672ea03333e5092666f4\",\"views/license/additional\":\"1894f1dbacf00ff663f3\",\"components/pages/FirewallGeneralPage\":\"6822839c6667ffed35de\",\"components/pages/FirewallIcmpPage\":\"0d47111026194f8c0f1e\",\"components/pages/FirewallRulesPage\":\"ef0f08fa5a6003f95c27\",\"components/pages/ServerComponentsPage\":\"a59d3798fd3771ecf973\",\"views/admin/ip-address/list\":\"8c73505d504007cdce75\",\"views/admin/ip-address/clients\":\"ee72f509f9f3082e2786\",\"components/pages/AssignIpAddressToResellerForm\":\"6f8b61dd30c347895a0f\",\"views/admin/client/ip-address\":\"6da2eb67b2c75cbbfa87\",\"views/admin/client/ip-address/form\":\"23e5c14da2cf422c4f8d\",\"views/php/extensions\":\"133a1e72c88301d8efea\",\"components/pages/TsSessionPage\":\"a1cd643e4cf6d5258237\",\"components/pages/TsSessionsPage\":\"c289dd2d98f52cef7e35\",\"components/pages/AspDotNetSettingsPage/AspDotNetServerSettingsPage\":\"802a09b985b18de1e815\",\"components/pages/AspDotNetSettingsPage/AspDotNetDomainSettingsPage\":\"dc1c7ee08095ed08eff1\",\"components/pages/ServerAboutPage\":\"93df7e9cd661b8142bc3\",\"components/pages/ActionLogPage\":\"0455f508be484cfe1497\",\"components/pages/ServerSettingsPage\":\"209406f2859fdc9c677f\",\"components/layouts/page-layout/help-drawer\":\"77293aeb84ae0d671ac3\",\"components/pages/OdbcPage/OdbcServerPage\":\"39505859ad3b614f795a\",\"components/pages/OdbcAddPage\":\"0e79f911dd5470698f50\",\"components/pages/OdbcEditPage\":\"412baebc1c7258408b9b\",\"components/pages/OdbcPage/OdbcDomainPage\":\"3f4c558c974c62191dab\",\"components/pages/HostingSettingsPage\":\"7ac3f365161f7386e01a\",\"components/pages/ProtectedDirectoryListPage\":\"70f2bde91f2091863d65\",\"components/pages/ProtectedDirectoryAddPage\":\"6c0cd95a99a5aa6a4547\",\"components/pages/ProtectedDirectoryEditPage\":\"bf56a0e64fcae921518d\",\"components/pages/SummaryReportPage\":\"ca7d2e22b961f48fe6ca\",\"components/pages/SummaryReportPage/SummaryReportPrintPage\":\"3a29d3a982af04df7641\",\"components/pages/SummaryReportLayoutsPage\":\"7903152462b5ce0a31f8\",\"components/pages/TrafficHistoryReportPage\":\"b1dcd34242c20fae8132\",\"components/pages/SummaryReportPage/ClientSummaryReportPage\":\"bdef9c63c0584f86868b\",\"components/pages/SummaryReportPage/ClientSummaryReportPrintPage\":\"a060b15df043b46546b2\",\"components/pages/ClientTrafficHistoryReportPage\":\"8a01ac4894a07e268eb8\",\"app/editlist\":\"29544b2eed71fa6e518d\",\"app/rating\":\"978bb6c0cb26eb588634\",\"app/aha\":\"b04b63d6631b34456a04\",\"app/eula\":\"50b637fd211e788cdc5c\",\"app/app-image/gallery\":\"1410aec51ab927d7c763\",\"app/asp-dot-net/conn_strings-dynamic\":\"5a12849143c256e39507\",\"app/asp-dot-net/custom_errors-dynamic\":\"5a3b614a4ff6ee438039\",\"app/backup/list\":\"e48fba94630037182187\",\"app/backup/restore\":\"5a0188950c0572eb5385\",\"app/backup/upload-files\":\"bad0d9189ec2b3e069a8\",\"app/backup/web-content-dynamic\":\"c904e12c94826c9cd5ee\",\"app/database/assign-to-subscription\":\"9c0c4711c6b6e91ed79a\",\"app/dns-helper\":\"f71146049c0b858e0260\",\"app/dns-helper/dns-settings\":\"e1a2ee825b4c5c054015\",\"app/email-address/aliases-dynamic\":\"856721e0306e35b81418\",\"app/email-address/form-ajax\":\"78968518ec708545322c\",\"app/email-address/postbox\":\"386af964751322700a99\",\"app/email-address/responder-attachments-dynamic\":\"0f1945b1b224b8e10929\",\"app/file-manager/explorer\":\"55a3a4955cde35e8722a\",\"app/file-manager/file-name-popup-form\":\"5f4d781e900c43133448\",\"app/mail-settings/confirmation-remove-popup-form\":\"7c362a065123c5d70b85\",\"app/hosting-settings/conflicts-checker\":\"11d08d87e08ba640d74b\",\"app/log-browser/browser\":\"e4e26c53dcc4289c5d14\",\"app/log-browser/files\":\"5c7adde9bbea6c8af564\",\"app/login/recovery-password\":\"e54e236bab99559a5a24\",\"app/newsletter-subscription\":\"abc1624493a441546c04\",\"app/progress-dialog\":\"5c0cd086cf7414e04b5c\",\"app/profile/announcement-settings\":\"5e5891656652965a8d03\",\"app/pum\":\"09a35bf42dc6ec47a92b\",\"app/server-mail-antivirus-promo\":\"a40694655b822c2ee0ed\",\"app/show-output-popup\":\"28cc86f5435f1c64980b\",\"app/task-progress-bar\":\"edee98330112b495d5f6\",\"app/user/login-string\":\"05c83a344fa8ee22ed37\",\"app/change-customers-owner\":\"297bd92b13813dc85fe9\",\"app/convert-customers-to-resellers\":\"96556d3d5caafbaaec36\",\"app/convert-resellers-to-customers\":\"266c99d3a76af5462490\",\"app/service-sidebar\":\"9f9759d0d6fdee6b7054\",\"app/ssl-certificate/list\":\"e090e8717f89e4ab407d\",\"app/app/progress\":\"073d2b2fa2c166497ed5\",\"app/app/installed\":\"93dd8a4d0c5064759078\",\"app/app/apscatalog\":\"b2fa88ac863386ec7501\",\"app/web-app-firewall/submit-handler\":\"3f6aef09f8c73cfc6fbf\",\"views/smb/file-manager/list/UploadProgressDialog\":\"3ca1bffc447c1ba35f50\",\"components/common/ServerMailAntivirusPromo\":\"d8df02745e28aa45f8ec\"}[chunkId] + \"\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = (module) => {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: () => {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/cp/\";","__webpack_require__.f.compat = (chunkId, promises) => {\n\n\t                var localeDependencies = {\"main\":[\"components.buttons\",\"components.password.meter\",\"components.tasks.common\",\"components.status\",\"components.routes\",\"components.cookie-policy.info\",\"components.cookie-policy.preferences\",\"components.license-status\",\"components.search-bar\",\"components.shortcuts\",\"components.subscription-switcher\",\"components.notification-center\",\"components.view-switcher\",\"components.pages.home\",\"controllers.error.error\",\"components.forms.login\",\"components.forms.get-password\",\"components.forms.restore-password\"],\"components/pages/IpAddressDomainsPage\":[\"components.pages.ip-address-domains\"],\"components/pages/ChangeOwnerPage\":[\"components.pages.change-owner\",\"components.forms.change-subscriptions-owner\"],\"views/admin/force-reset-password\":[\"components.forms.force-reset-password\"],\"views/admin/setup/progress\":[\"components.shortcuts\"],\"views/admin/setup/index\":[\"components.forms.setup\",\"components.shortcuts\"],\"views/admin/home/admin\":[\"admin.controllers.home.admin\",\"admin.controllers.home._shared\",\"admin.controllers.home.reseller\"],\"views/admin/app/info\":[\"admin.controllers.app.info\",\"admin.components.lists.appinfo\"],\"views/admin/app/usage\":[\"admin.controllers.app.usage\",\"admin.components.lists.appusage\"],\"views/admin/app/uploaded\":[\"admin.controllers.app.uploaded\",\"admin.components.lists.appuploaded\"],\"views/admin/custom-buttons/list\":[\"components.lists.custombuttons\"],\"views/admin/ftp-sessions/list\":[\"admin.components.lists.ftpsessions\"],\"views/admin/php-handler/list\":[\"admin.controllers.php-handler.list\",\"admin.components.lists.phphandlers\"],\"components/pages/ScheduledBackupPage\":[\"components.buttons\",\"components.forms.backup.schedule\",\"smb.components.days-of-week\",\"controllers.backup.schedule\",\"components.forms.backup.subform\"],\"components/pages/ScheduledBackupListPage\":[\"components.lists.backup.schedule\",\"smb.components.days-of-week\",\"components.forms.backup.subform\",\"components.list\",\"components.forms.backup.schedule\",\"controllers.backup.schedule\",\"components.buttons\"],\"views/default/scheduler/list\":[\"components.lists.scheduler.tasks\"],\"views/admin/domain/list\":[\"components.pages.domains\",\"admin.components.lists.domains\",\"components.icp-permit\",\"components.buttons\",\"components.homonyms\",\"smb.components.forms.web.add-domain\",\"smb.components.forms.domain-info-section\",\"smb.components.forms.web._shared\",\"smb.components.forms.web.seo-settings\",\"admin.components.forms.admin-panel.form.contact-info\",\"admin.components.forms.admin-panel.form.login-info\",\"components.forms.domain.tech-domain-name\",\"components.elements.lookup\",\"components.domain-applications.applications\",\"components.domain-applications\",\"components.forms.ip-addresses-selector\"],\"views/admin/customer/list\":[\"components.pages.customers\",\"admin.components.forms.customer\",\"admin.components.forms.admin-panel.form.contact-info\",\"components.forms.admin-info\",\"admin.components.forms.admin-panel.form.domain-info-section\",\"components.buttons\",\"admin.components.forms.admin-panel.form.login-info\",\"components.forms.domain.tech-domain-name\",\"admin.components.forms.admin-panel.form.subscription-info-section\",\"components.forms.ip-addresses-selector\",\"admin.components.lists.customers\",\"admin.components.lists.subscriptions\"],\"views/admin/customer/domains\":[\"components.pages.customer-domains\",\"admin.components.lists.domains\",\"components.icp-permit\",\"components.buttons\",\"components.homonyms\",\"smb.components.forms.web.add-domain\",\"smb.components.forms.domain-info-section\",\"smb.components.forms.web._shared\",\"smb.components.forms.web.seo-settings\",\"admin.components.forms.admin-panel.form.contact-info\",\"admin.components.forms.admin-panel.form.login-info\",\"components.forms.domain.tech-domain-name\",\"components.elements.lookup\",\"components.domain-applications.applications\",\"components.domain-applications\",\"components.forms.ip-addresses-selector\",\"admin.components.customer-sidebar\",\"admin.components.elements.status\",\"components.forms.admin-info\"],\"views/admin/customer/subscriptions\":[\"components.pages.customer-subscriptions\",\"admin.components.forms.admin-panel.form.domain-info-section\",\"admin.components.forms.admin-panel.form.subscription-info-section\",\"components.buttons\",\"components.forms.domain.tech-domain-name\",\"components.forms.admin-info\",\"components.forms.ip-addresses-selector\",\"components.domain-applications.applications\",\"components.domain-applications\",\"admin.components.lists.subscriptions\",\"admin.components.customer-sidebar\",\"admin.components.elements.status\"],\"views/admin/reseller/list\":[\"components.pages.resellers\",\"admin.components.lists.resellers\"],\"views/admin/reseller/customers\":[\"components.pages.reseller-customers\",\"admin.components.forms.customer\",\"admin.components.forms.admin-panel.form.contact-info\",\"components.forms.admin-info\",\"admin.components.forms.admin-panel.form.domain-info-section\",\"components.buttons\",\"admin.components.forms.admin-panel.form.login-info\",\"components.forms.domain.tech-domain-name\",\"admin.components.forms.admin-panel.form.subscription-info-section\",\"components.forms.ip-addresses-selector\",\"admin.components.lists.customers\",\"admin.components.lists.subscriptions\",\"admin.components.reseller-sidebar\",\"admin.components.elements.status\",\"admin.components.lists.resellers\"],\"views/admin/reseller/domains\":[\"components.pages.reseller-domains\",\"admin.components.lists.domains\",\"components.icp-permit\",\"components.buttons\",\"components.homonyms\",\"smb.components.forms.web.add-domain\",\"smb.components.forms.domain-info-section\",\"smb.components.forms.web._shared\",\"smb.components.forms.web.seo-settings\",\"admin.components.forms.admin-panel.form.contact-info\",\"admin.components.forms.admin-panel.form.login-info\",\"components.forms.domain.tech-domain-name\",\"components.elements.lookup\",\"components.domain-applications.applications\",\"components.domain-applications\",\"components.forms.ip-addresses-selector\",\"admin.components.reseller-sidebar\",\"admin.components.elements.status\",\"admin.components.lists.resellers\",\"components.forms.admin-info\"],\"views/admin/reseller/subscriptions\":[\"components.pages.reseller-subscriptions\",\"admin.components.forms.admin-panel.form.domain-info-section\",\"admin.components.forms.admin-panel.form.subscription-info-section\",\"components.buttons\",\"components.forms.domain.tech-domain-name\",\"components.forms.admin-info\",\"components.forms.ip-addresses-selector\",\"components.domain-applications.applications\",\"components.domain-applications\",\"admin.components.lists.subscriptions\",\"admin.components.reseller-sidebar\",\"admin.components.elements.status\",\"admin.components.lists.resellers\"],\"views/admin/server/tools\":[\"admin.controllers.server.tools\",\"components.buttons\",\"components.issue-reporter\",\"components.forms.panel-access\"],\"views/admin/server/preview-domain-settings\":[\"admin.components.forms.preview-domain-settings\",\"admin.controllers.server.preview-domain-settings\"],\"views/admin/services/list\":[\"admin.components.lists.services\",\"admin.controllers.services.operation\",\"admin.components.forms.services.change-startup-type\"],\"views/admin/sessions/list\":[\"admin.components.lists.sessions\"],\"views/admin/subscription/list\":[\"components.pages.subscriptions\",\"admin.components.forms.admin-panel.form.domain-info-section\",\"admin.components.forms.admin-panel.form.subscription-info-section\",\"components.buttons\",\"components.forms.domain.tech-domain-name\",\"components.forms.admin-info\",\"components.forms.ip-addresses-selector\",\"components.domain-applications.applications\",\"components.domain-applications\",\"admin.components.lists.subscriptions\"],\"views/smb/file-manager/list\":[\"smb.components.lists.contentfiles\",\"components.buttons\",\"smb.controllers.file-manager.create-directory\",\"smb.components.forms.file-manager.editor\",\"smb.controllers.file-manager.form\",\"smb.components.forms.file-manager.import-file\",\"smb.components.forms.file-manager.rotation-settings\",\"permissions\",\"smb.components.forms.file-manager.permissions\",\"smb.components.forms.file-manager.unix-file-permissions\",\"smb.components.forms.file-manager.windows-permissions\",\"unix-file-permissions\",\"windows-permissions\",\"smb.controllers.file-manager.upload\"],\"views/smb/file-manager/index\":[\"smb.controllers.file-manager.index\",\"smb.components.lists.subscriptions\"],\"views/smb/my-service/index\":[\"smb.controllers.my-service.index\"],\"views/smb/email-address/index\":[\"smb.controllers.email-address.index\",\"smb.controllers.email-address.configuration\"],\"views/smb/email-address/list\":[\"smb.controllers.email-address.list\",\"smb.components.lists.emails\",\"smb.controllers.email-address.configuration\",\"smb.components.confirmations.email-outgoing-messages\",\"components.buttons\",\"smb.controllers.mail-settings.list\"],\"views/smb/mail-settings/list\":[\"smb.controllers.mail-settings.list\",\"smb.components.lists.mailsettings\",\"components.buttons\",\"smb.components.confirmations.domain-outgoing-messages\"],\"views/smb/account/index\":[\"smb.controllers.account.index\",\"smb.controllers.account._shared\",\"smb.components.lists.subscriptions\"],\"views/smb/account/show\":[\"smb.controllers.account.show\",\"smb.controllers.account._shared\",\"admin.components.elements.status\",\"components.limits\",\"admin.components.forms.service-plan.permissions\"],\"views/smb/user/list\":[\"smb.controllers.user.list\",\"smb.components.lists.users\"],\"views/smb/web/setup\":[\"smb.controllers.web.setup\",\"smb.components.forms.web.add-domain\",\"smb.components.forms.domain-info-section\",\"smb.components.forms.web._shared\",\"smb.components.forms.web.seo-settings\",\"admin.components.forms.admin-panel.form.contact-info\",\"components.buttons\",\"admin.components.forms.admin-panel.form.login-info\",\"components.forms.domain.tech-domain-name\",\"components.elements.lookup\",\"components.domain-applications.applications\",\"components.domain-applications\",\"components.forms.ip-addresses-selector\"],\"views/smb/web/view\":[\"components.active-lists.sites\",\"smb.components.forms.web.add-domain\",\"smb.components.forms.domain-info-section\",\"smb.components.forms.web._shared\",\"smb.components.forms.web.seo-settings\",\"admin.components.forms.admin-panel.form.contact-info\",\"components.buttons\",\"admin.components.forms.admin-panel.form.login-info\",\"components.forms.domain.tech-domain-name\",\"components.elements.lookup\",\"components.domain-applications.applications\",\"components.domain-applications\",\"components.forms.ip-addresses-selector\",\"components.sidebar\",\"admin.components.elements.status\",\"admin.components.lists.subscriptions\",\"components.homonyms\",\"components.custom-spots\",\"admin.controllers.home.admin\",\"smb.controllers.web._shared\",\"components.forms.admin-info\",\"components.icp-permit\",\"components.forms.domain.move\",\"components.active-list\",\"components.active-lists.sites.installApplication\",\"components.active-lists.sites.RenameTour\",\"components.forms.domain.connection-info\",\"components.forms.domain.rename\",\"components.active-lists.sites.DynamicListPromotion\",\"components.active-lists.sites.DynamicListTour\",\"components.site-jet-banner\"],\"views/smb/web/php-settings\":[\"smb.components.forms.web.settings\",\"components.buttons\",\"components.forms.php-settings\",\"admin.components.lists.services\",\"admin.controllers.services.operation\"],\"views/smb/statistics/details\":[\"smb.controllers.statistics.details\",\"smb.controllers.statistics.list\"],\"views/smb/database/index\":[\"smb.controllers.database.index\",\"smb.components.lists.subscriptions\"],\"views/smb/database/list\":[\"smb.controllers.database.list\",\"smb.components.lists.databases\",\"smb.controllers.database.download-dump\",\"smb.controllers.database.upload-dump\",\"components.buttons\"],\"views/smb/database/users-list\":[\"smb.controllers.database.users-list\",\"smb.components.lists.database.users\"],\"views/admin/task-manager/index\":[\"components.lists.tasks\",\"components.lists.tasks.processes\"],\"views/dns/records\":[\"smb.components.lists.dnsrecords\",\"components.pages.home\",\"admin.controllers.server.tools\",\"components.pages.dns\",\"components.pages.dns-records\",\"components.list\",\"admin.controllers.dns.restore-default\",\"admin.controllers.dns.soa-sync\",\"admin.controllers.dns\"],\"views/dns/records/edit\":[\"smb.components.forms.dns-zone.record\"],\"views/dns/records/dns-zone-sync\":[\"admin.controllers.dns.sync\"],\"views/dns/soa-record\":[\"smb.components.forms.dns-zone.soa-record\",\"components.pages.home\",\"admin.controllers.server.tools\",\"components.pages.dns\",\"components.pages.dns-soa-record\",\"admin.controllers.dns\"],\"views/admin/dns/acl-records\":[\"admin.components.lists.dnsaclrecords\"],\"views/admin/dns/add-acl-record\":[\"admin.components.forms.dns.add-acl-record\"],\"views/admin/dns/external-dns\":[\"admin.controllers.dns.external-dns\"],\"views/admin/dns/external-dns-edit\":[\"admin.controllers.dns.external-dns\"],\"views/smb/dns-zone/records-list\":[\"components.dialogs.dns-zone-check\",\"components.buttons\",\"smb.components.dns-helper\",\"smb.components.lists.dnsrecords\"],\"views/smb/dns-zone/soa-record\":[\"smb.controllers.dns-zone.soa-record\",\"smb.components.forms.dns-zone.soa-record\"],\"views/smb/dns-zone/acl-records\":[\"smb.components.lists.dnsaclrecords\"],\"views/smb/dns-zone/add-acl-record\":[\"smb.components.forms.dns-zone.add-acl-record\"],\"views/smb/dns-zone/external-dns\":[\"smb.controllers.dns-zone.external-dns\"],\"views/smb/dns-zone/external-dns-edit\":[\"smb.controllers.dns-zone.external-dns\"],\"components/pages/BandwidthLimitingPage\":[\"components.pages.BandwidthLimiting\",\"admin.controllers.home.index\",\"admin.controllers.subscription.list\",\"admin.controllers.subscription.overview\",\"admin.controllers.domain.list\",\"smb.controllers.web.index\"],\"components/pages/HotlinkProtectionPage\":[\"components.pages.HotlinkProtection\",\"admin.controllers.home.index\",\"admin.controllers.subscription.list\",\"admin.controllers.subscription.overview\",\"admin.controllers.domain.list\",\"smb.controllers.web.index\"],\"views/admin/settings-ui/edit-interface-view\":[\"admin.controllers.settings-ui.edit-interface-view\",\"admin.components.forms.settings-ui.interface-views\",\"components.view-switcher\",\"admin.controllers.home.admin\",\"admin.controllers.server.tools\",\"admin.controllers.settings-ui.list-languages\"],\"views/admin/settings-ui/list-languages\":[\"admin.components.lists.languages\"],\"views/admin/database/settings\":[\"admin.components.forms.database-settings\"],\"views/smb/web/web-server-settings\":[\"components.buttons\",\"components.forms.iis-settings\",\"components.forms.apache-settings\"],\"views/admin/notifications/index\":[\"admin.controllers.notifications.email-settings\",\"admin.controllers.notifications.panel-settings\",\"components.lists.notifications\",\"components.notifications.drawer\",\"components.buttons\"],\"components/pages/PanelNotificationsSettings\":[\"admin.controllers.notifications.panel-notifications-toggle\",\"admin.controllers.notifications.template-settings-list\",\"admin.controllers.notifications.template-settings-form\",\"admin.controllers.home.admin\",\"admin.controllers.server.tools\",\"admin.controllers.notifications.index\",\"admin.controllers.notifications.panel-settings\",\"components.list\",\"admin.controllers.notifications.email-settings\"],\"components/pages/BrandingPage\":[\"admin.components.forms.settings-ui.branding\",\"admin.controllers.server.tools\",\"admin.controllers.navigation.index\",\"admin.controllers.settings-ui.branding\"],\"views/server/db\":[\"components.pages.database-servers\",\"components.pages.home\",\"admin.controllers.server.tools\",\"components.lists.databaseservers\",\"components.status\",\"components.buttons\",\"components.list\",\"components.pages.database-server-create\",\"components.forms.database-server-create\",\"components.pages.database-server-properties\",\"components.pages.database-server-change-password\",\"components.pages.database-server-databases\",\"components.pages.database-server-upgrade\",\"components.lists.databaseserverdatabases\",\"components.forms.database-server-change-password\"],\"views/admin/websites-diagnostic/index\":[\"admin.controllers.home.admin\",\"admin.controllers.server.tools\",\"admin.controllers.websites-diagnostic\",\"admin.controllers.websites-diagnostic.report\",\"components.list\",\"admin.controllers.websites-diagnostic.problems\",\"admin.controllers.websites-diagnostic.problem-report\",\"admin.controllers.websites-diagnostic.distribution-over-time\",\"admin.controllers.websites-diagnostic.websites\",\"admin.controllers.websites-diagnostic.new-check\"],\"components/pages/SystemTimePage\":[\"components.forms.system-time\",\"admin.controllers.home.admin\",\"admin.controllers.server.tools\",\"smb.components.months\"],\"views/server/mail\":[\"components.pages.home\",\"admin.controllers.server.tools\",\"admin.controllers.mail-settings.index\",\"components.pages.server-mail-settings\",\"admin.components.forms.server-mail-settings\",\"components.buttons\",\"admin.components.forms.server-mail-settings.general\",\"admin.components.forms.server-mail-settings.autodiscover\",\"admin.components.forms.server-mail-settings.relay\",\"admin.components.forms.server-mail-settings.outgoing\",\"admin.components.forms.server-mail-settings.mailman\",\"admin.components.forms.server-mail-settings.spam-filter\",\"admin.components.forms.server-mail-settings.auto-reply-headers\",\"admin.components.forms.server-mail-settings.pop3-names\",\"components.pages.server-mail-spam-filter\",\"components.pages.server-mail-antivirus\",\"components.pages.server-mail-black-list\",\"components.pages.server-mail-white-list\",\"components.pages.server-mail-queue\",\"components.pages.server-mail-statistics\",\"admin.components.lists.servermailblacklist\",\"components.list\",\"admin.components.forms.server-mail-black-list\",\"admin.components.lists.servermailwhitelist\",\"admin.components.forms.server-mail-white-list\",\"admin.components.forms.server-mail-antivirus\",\"admin.components.forms.server-mail-spam-filter\"],\"views/license\":[\"components.pages.primary-key-info\",\"components.pages.home\",\"admin.controllers.server.tools\",\"components.pages.license\",\"components.common.master-key-processing-state\",\"smb.components.license.properties\",\"components.dialogs.primary-key-update\",\"components.buttons\",\"components.pages.additional-keys\",\"components.pages.primary-key-upload\",\"components.forms.license-key-upload\",\"components.pages.primary-key-revert\",\"components.forms.license-key-revert\"],\"views/license/additional\":[\"components.pages.home\",\"admin.controllers.server.tools\",\"components.pages.license\",\"components.pages.additional-keys\",\"components.pages.primary-key-info\",\"components.lists.additional-keys\",\"components.buttons\",\"components.list\",\"components.pages.additional-key-upload\",\"components.forms.license-key-upload\",\"components.pages.additional-key-info\",\"admin.controllers.home.admin\",\"smb.components.license.properties\",\"components.dialogs.additional-key-update\",\"components.pages.additional-key-revert\",\"components.forms.license-key-revert\"],\"components/pages/FirewallGeneralPage\":[\"components.pages.firewall-general\",\"components.pages.home\",\"admin.controllers.server.tools\",\"components.pages.firewall\",\"admin.components.lists.firewallinterfaces\",\"components.list\",\"components.pages.firewall-icmp\",\"components.pages.firewall-rules\",\"components.buttons\"],\"components/pages/FirewallIcmpPage\":[\"components.pages.home\",\"admin.controllers.server.tools\",\"components.pages.firewall\",\"components.pages.firewall-icmp\",\"admin.components.lists.firewallicmprules\",\"components.list\",\"components.pages.firewall-general\",\"components.pages.firewall-rules\"],\"components/pages/FirewallRulesPage\":[\"components.pages.home\",\"admin.controllers.server.tools\",\"components.pages.firewall\",\"components.pages.firewall-rules\",\"admin.components.lists.firewallrules\",\"components.buttons\",\"components.list\",\"components.pages.firewall-general\",\"components.pages.firewall-icmp\",\"admin.components.forms.firewall-rule\"],\"components/pages/ServerComponentsPage\":[\"components.lists.server-components\",\"admin.controllers.home.admin\",\"admin.controllers.server.tools\",\"components.list\",\"components.lists.server-components.componentConf\"],\"views/admin/ip-address/list\":[\"admin.controllers.ip-address.list\",\"admin.controllers.home.admin\",\"admin.controllers.server.tools\",\"admin.components.lists.ipaddresses\",\"components.buttons\",\"admin.components.forms.ip-address\",\"admin.components.forms.security-policy\",\"admin.controllers.ip-address.add\"],\"views/admin/ip-address/clients\":[\"components.lists.ip-address-reseller-usage\",\"admin.controllers.home.admin\",\"admin.controllers.server.tools\",\"admin.controllers.ip-address.list\",\"components.buttons\",\"components.list\"],\"components/pages/AssignIpAddressToResellerForm\":[\"components.lists.ip-address-reseller-usage.assign\",\"components.lists.ip-address-reseller-usage\"],\"views/admin/client/ip-address\":[\"admin.controllers.ip-address.list\",\"admin.controllers.home.admin\",\"admin.controllers.navigation.index\",\"components.lists.client-ip-address\",\"components.buttons\",\"components.list\"],\"views/admin/client/ip-address/form\":[\"components.lists.client-ip-address\",\"components.lists.client-ip-address.properties\",\"components.lists.client-ip-address.assign\"],\"views/php/extensions\":[\"components.pages.php-handler.extensions\",\"admin.controllers.home.admin\",\"admin.controllers.server.tools\",\"admin.controllers.php-handler.list\",\"components.pages.php-handler\",\"components.pages.php-handler.php-ini\",\"components.pages.php-handler.extensions.manage\",\"admin.components.lists.phpextensions.installable\",\"components.list\",\"components.buttons\",\"admin.components.forms.php-handler.extension\",\"admin.components.lists.phpextensions\"],\"components/pages/TsSessionPage\":[\"components.lists.ts-sessions\",\"admin.controllers.home.admin\",\"admin.controllers.server.tools\",\"components.pages.ts-sessions\",\"components.pages.ts-sessions-properties\"],\"components/pages/TsSessionsPage\":[\"components.lists.ts-sessions\",\"components.list\",\"admin.controllers.home.admin\",\"admin.controllers.server.tools\",\"components.pages.ts-sessions\"],\"components/pages/AspDotNetSettingsPage/AspDotNetServerSettingsPage\":[\"smb.controllers.asp-dot-net.settings\",\"admin.controllers.server.tools\",\"smb.components.forms.asp-dot-net.settings\"],\"components/pages/AspDotNetSettingsPage/AspDotNetDomainSettingsPage\":[\"smb.controllers.asp-dot-net.settings\",\"smb.controllers.web.site-select\",\"admin.controllers.home.index\",\"admin.controllers.subscription.list\",\"admin.controllers.subscription.overview\",\"admin.controllers.domain.list\",\"smb.controllers.web.index\",\"smb.components.forms.asp-dot-net.settings\"],\"components/pages/ServerAboutPage\":[\"components.pages.ServerAbout\"],\"components/pages/ActionLogPage\":[\"components.forms.action-log\",\"smb.components.months\"],\"components/pages/ServerSettingsPage\":[\"components.forms.server-settings\"],\"components/layouts/page-layout/help-drawer\":[\"components.layouts.page-layout.help-drawer\"],\"components/pages/OdbcPage/OdbcServerPage\":[\"components.pages.Odbc\",\"admin.controllers.home.admin\",\"admin.controllers.server.tools\",\"components.buttons\"],\"components/pages/OdbcAddPage\":[\"components.pages.OdbcAdd\"],\"components/pages/OdbcEditPage\":[\"components.pages.OdbcEdit\"],\"components/pages/OdbcPage/OdbcDomainPage\":[\"components.pages.Odbc\",\"admin.controllers.home.index\",\"admin.controllers.subscription.list\",\"admin.controllers.subscription.overview\",\"admin.controllers.domain.list\",\"smb.controllers.web.index\",\"components.buttons\"],\"components/pages/HostingSettingsPage\":[\"components.pages.HostingSettings\",\"components.buttons\",\"components.pages.HostingSettings.domainSettingsSection\",\"components.pages.HostingSettings.domainSettingsSection.security\",\"components.pages.HostingSettings.domainSettingsSection.webScripting\",\"components.pages.HostingSettings.webspaceSettingsSection\",\"components.forms.ip-addresses-selector\",\"components.pages.HostingSettings.webspaceSettingsSection.quota\"],\"components/pages/ProtectedDirectoryListPage\":[\"components.pages.ProtectedDirectoryList\",\"components.buttons\",\"admin.controllers.home.index\",\"admin.controllers.subscription.list\",\"admin.controllers.subscription.overview\",\"admin.controllers.domain.list\",\"smb.controllers.web.index\"],\"components/pages/ProtectedDirectoryAddPage\":[\"components.pages.ProtectedDirectoryAdd\",\"components.forms.ProtectedDirectory\"],\"components/pages/ProtectedDirectoryEditPage\":[\"components.pages.ProtectedDirectoryEdit\",\"components.forms.ProtectedDirectory\"],\"components/pages/SummaryReportPage\":[\"smb.controllers.report.summary\",\"admin.controllers.server.tools\"],\"components/pages/SummaryReportPage/SummaryReportPrintPage\":[\"smb.controllers.report.summary\"],\"components/pages/SummaryReportLayoutsPage\":[\"smb.controllers.report.summary\",\"admin.controllers.server.tools\",\"admin.controllers.navigation.index\",\"components.list\",\"components.pages.SummaryReport.Layout.Add\",\"components.forms.SummaryReport.Layout\",\"components.pages.SummaryReport.Layout\"],\"components/pages/TrafficHistoryReportPage\":[\"smb.controllers.report.summary.traffic-history\",\"admin.controllers.home.admin\",\"admin.controllers.server.tools\",\"smb.controllers.report.summary\",\"components.list\"],\"components/pages/SummaryReportPage/ClientSummaryReportPage\":[\"smb.controllers.report.summary\",\"admin.controllers.navigation.index\"],\"components/pages/SummaryReportPage/ClientSummaryReportPrintPage\":[\"smb.controllers.report.summary\"],\"components/pages/ClientTrafficHistoryReportPage\":[\"smb.controllers.report.summary.traffic-history\",\"admin.controllers.home.admin\",\"smb.controllers.report.summary\",\"components.list\"],\"app/editlist\":[\"components.editlist\"],\"app/rating\":[\"components.rating\",\"components.buttons\"],\"app/aha\":[\"components.aha\",\"components.buttons\"],\"app/eula\":[\"admin.controllers.index.eula\"],\"app/app-image/gallery\":[\"smb.controllers.app-image.gallery\"],\"app/asp-dot-net/conn_strings-dynamic\":[\"smb.components.forms.asp-dot-net.settings\"],\"app/asp-dot-net/custom_errors-dynamic\":[\"smb.components.forms.asp-dot-net.settings\"],\"app/backup/list\":[\"components.lists.backup\",\"controllers.backup.size-hint\",\"controllers.backup.restore-status\"],\"app/backup/restore\":[\"controllers.backup.restore-status\"],\"app/backup/upload-files\":[\"components.forms.backup.upload\"],\"app/backup/web-content-dynamic\":[\"components.forms.backup.web-content-dynamic\",\"components.buttons\"],\"app/database/assign-to-subscription\":[\"smb.components.lists.databases\",\"components.buttons\"],\"app/dns-helper\":[\"smb.components.dns-helper\"],\"app/dns-helper/dns-settings\":[\"smb.components.dns-helper\"],\"app/email-address/aliases-dynamic\":[\"smb.components.forms.email-address\"],\"app/email-address/form-ajax\":[\"components.buttons\"],\"app/email-address/postbox\":[\"smb.components.forms.email-address\"],\"app/email-address/responder-attachments-dynamic\":[\"smb.components.forms.email-address\"],\"app/file-manager/explorer\":[\"smb.components.lists.contentfiles\",\"components.buttons\",\"smb.controllers.file-manager.create-directory\"],\"app/file-manager/file-name-popup-form\":[\"smb.components.forms.file-manager.show\",\"components.buttons\"],\"app/mail-settings/confirmation-remove-popup-form\":[\"smb.components.forms.mail-settings.show\",\"components.buttons\"],\"app/hosting-settings/conflicts-checker\":[\"admin.controllers.customer-service-plan._shared\"],\"app/log-browser/browser\":[\"components.lists.logbrowser\",\"components.buttons\"],\"app/log-browser/files\":[\"smb.components.lists.logfiles\",\"components.buttons\"],\"app/login/recovery-password\":[\"components.login.recovery-password\"],\"app/newsletter-subscription\":[\"components.newsletter-subscription\"],\"app/progress-dialog\":[\"components.tasks.common\"],\"app/profile/announcement-settings\":[\"admin.components.forms.admin.announcement-settings\"],\"app/pum\":[\"admin.components.lists.pumpackages\",\"components.buttons\"],\"app/show-output-popup\":[\"components.tasks.scheduler-run-task\"],\"app/change-customers-owner\":[\"admin.components.confirmations.change-customer-owner\"],\"app/convert-customers-to-resellers\":[\"admin.components.confirmations.customer\"],\"app/convert-resellers-to-customers\":[\"admin.components.confirmations.reseller\"],\"app/service-sidebar\":[\"smb.controllers.service.index\"],\"app/app/progress\":[\"smb.components.elements.download\"],\"app/app/installed\":[\"smb.components.lists.app.instances\",\"smb.controllers.service.index\"],\"app/app/apscatalog\":[\"smb.components.forms.aps.catalog\"],\"app/web-app-firewall/submit-handler\":[\"components.forms.web-app-firewall\",\"components.buttons\"],\"views/smb/file-manager/list/UploadProgressDialog\":[\"smb.controllers.file-manager.upload\"],\"components/common/ServerMailAntivirusPromo\":[\"components.common.ServerMailAntivirusPromo\",\"admin.controllers.server.tools\",\"admin.controllers.mail-settings.index\"]};\n\t                if (localeDependencies[chunkId]) {\n\t                    promises.push(Jsw.Locale.loadSections(localeDependencies[chunkId]));\n\t                }\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"main\": 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkPlesk\"] = self[\"webpackChunkPlesk\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"vendors\"], () => (__webpack_require__(0)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["window","Jsw","Plesk","Set","prototype","toArray","array","this","forEach","item","push","Map","key","version","form","DisplayField","Values","layout","TwoColumns","Task","ProgressBar","StatusMessage","STATUS_DONE","STATUS_ERROR","STATUS_STARTED","STATUS_NOT_STARTED","STATUS_CANCELED","FileManager","Tree","UploadAdapterIframe","ns","autoCreate","nsParts","split","root","partIndex","length","config","componentType","Component","Cls","namespace","Error","registeredComponents","registerComponent","identity","component","getComponent","constructor","initialize","_initConfiguration","_registerComponent","_initComponentElement","_autoRender","_renderTarget","_applyTargetId","document","getElementById","render","_getConfigParam","hide","initialConfig","_config","_cls","_attrs","_wrapperClass","_renderMode","setLocale","_locale","_id","genId","_idIsRandom","_tag","tagName","_componentElement","createElement","Object","keys","name","setAttribute","id","className","_initDisablerOverlay","_disablerOverlay","style","display","zIndex","classList","add","appendChild","position","addEventObserver","eventName","handler","addEventListener","removeEventObserver","removeEventListener","_hasConfigParam","defaultValue","_getRandomNumber","Math","floor","random","_addEvents","_addTooltips","description","_tooltip","Tooltip","init","text","_updateComponentElement","content","oldElements","childNodes","oldElement","newElement","querySelector","parentNode","replaceChild","getWrapperClass","getId","setRenderTarget","target","getRenderTarget","show","locale","Locale","lmsg","bind","getLocale","remove","removeChild","getAttribute","_defineProperty","subclasses","showTimeoutStatus","showTimeout","minDelta","xOffsetLeft","xOffsetRight","yOffsetTop","yOffsetBottom","current","initData","contentElement","elements","querySelectorAll","tooltipData","element","Instance","set","tooltip","_onMouseMove","_onMouseOut","showCancel","hideCancel","showTask","setTimeout","showFinish","clearTimeout","tooltipElement","_fetchTooltipElement","innerHTML","escapeHtml","update","hideTask","hideFinish","_fetchTooltipPosition","top","y","left","x","event","tooltipX","clientX","scrollX","pageXOffset","tooltipY","clientY","scrollY","pageYOffset","_tooltipElement","el","body","tDim","Element","getDimensions","vDim","viewport","vScr","getScrollOffsets","freeRight","width","freeLeft","freeTop","freeBottom","height","setText","value","String","replace","addSection","messages","sections","Observer","notify","getSection","getTranslate","props","_jsx","BaseTranslate","loadSections","names","namesToLoad","filter","params","map","section","encodeURIComponent","api","get","join","loadSection","reduce","paramKey","formatMessage","IntlMessageFormat","documentElement","lang","format","request","url","retryCount","Ajax","activeRequestCount","headers","tokenEl","credentials","fetch","then","response","status","location","reload","Promise","emptyFn","ok","json","startsWith","data","reject","message","JSON","stringify","catch","error","TypeError","isNetworkError","resolve","finally","addUrlParams","method","post","UAT","dispatchAction","FormData","matches","msMatchesSelector","link","filterPleskUrl","href","pathname","search","hash","pageUrl","getPageUrl","pageUrlParam","match","result","RegExp","exec","decodeURIComponent","some","pattern","safeSearch","getUrl","isURL","protocols","require_host","getElementCSSSelector","localName","label","toLowerCase","i","len","findElement","selector","matchClasses","currentTarget","type","nodeType","Node","TEXT_NODE","getElement","isMatches","cls","test","ELEMENT_NODE","prepareNodeData","textEl","css","getElementCSSPath","depth","paths","splice","attributes","attr","hasAttribute","dataset","param","encodeSensitiveChars","list","preparedChars","entries","raw","encoded","firehose","initialized","patches","action","parameters","timestamp","Date","toISOString","instanceId","accountLevel","accountId","sessionId","path","preparePostData","self","selfText","innerText","parents","parentElement","parent","closest","slice","getParents","handleAnonymousSession","localStorage","getItem","setItem","toString","removeItem","parentId","additionalData","logger","Firehose","putRecord","DeliveryStreamName","stream","noSessionStream","Record","Data","values","watchers","contentLoad","contentConfig","expect","readyState","extensions","performance","perfData","timing","pageLoadTime","loadEventEnd","navigationStart","requestTime","responseEnd","requestStart","renderTime","domComplete","domLoading","historyReplaceState","history","replaceState","Proxy","apply","thisArg","argArray","click","uatHandled","Array","isArray","j","toUpperCase","actions","expects","initConfig","setPatches","fn","setActions","setWatchers","setLogger","getConfig","any","e","toQueryParams","str","URLSearchParams","acc","val","hasOwnProperty","splitUrl","splitParams","call","indexOf","observers","getObservers","has","append","callback","appendAndCall","pos","Translate","propTypes","PropTypes","defaultProps","Fragment","module","exports","PleskUiLibrary","addScript","src","s","onload","onerror","evalScripts","string","scriptFragment","matchAll","matchOne","scripts","scriptTag","script","eval","captureException","scope","setExtras","console","renderMode","isValidElement","_jswReactRootContainer","createRoot","tag","attrs","renderFn","onrender","events","children","insertBefore","insertAdjacentHTML","firstChild","nextSibling","async","scriptRegex","HIGH","NORMAL","LOW","priority","onReadyEvents","firedOnReady","wrappedCallback","onreadystatechange","predefinedPriorities","sort","a","b","Function","createComponent","renderTo","alert","super","_type","_title","_message","_source","_closable","_onClose","hideUrl","prepareUrl","source","_renderCloseButton","_renderMessage","onclick","baseUrl","global","substr","endsWith","args","classes","selectorRe","attrRe","shift","pair","class","pageData","msgClass","messageElement","makeVar","usePageData","useReactiveVar","clearStatusMessages","statusMessage","jsonMessage","parse","kbArticleUrl","addStatusMessage","createEvent","initEvent","dispatchEvent","createEventObject","eventType","fireEvent","ESC","ENTER","LEFT_ARROW","UP_ARROW","RIGHT_ARROW","DOWN_ARROW","Hint","_contentElement","setHint","componentElement","createHtmlElement","wrapElement","btnShowMore","_screenControl","getWidth","hint","Button","_handler","_rightIcon","_disabledClass","_isNew","_newTitle","_initVisibility","_disabled","disable","enable","_addAttribute","classNames","addCls","each","_addProgressHandler","removeAttribute","SmallButton","BigButton","disabledClass","button","comment","waitMessage","SplitButton","title","isAction","isDefault","isMenuFlip","items","isScrollable","openDropdown","_initItems","newWindow","listItem","submenu","preventDefault","stopPropagation","dropdownMenu","contains","toggle","openSubmenu","menuItem","trim","nextElementSibling","closeSubmenu","_menuTimeout","disabled","CommandButton","_value","_tabIndex","setHandler","toollist","CustomButton","getImagePath","Form","Methods","addMethods","ToolList","Container","_tools","_contentAreaId","_operations","Panel","_image","forcedId","Item","_href","_target","_attention","_disabledImage","_description","image","escapeAttribute","skinUrl","_items","_renderItems","_renderItem","getItems","find","submit","noRedirect","redirect","URL","protocol","isJavascriptProtocol","FormRedirect","assign","redirectPost","subToElements","stringToElements","prefix","booleanToElements","arrayToElements","$A","concat","hashToElements","$H","_valueRenderer","renderHint","valuesElements","valueOf","formValues","input","getStorageName","isChanged","changed","FormAjax","_actionButtonTitle","_sendButtonId","_applyButtonId","_cancelButtonId","_confirmationCheckboxId","_submitHandler","buttonId","_toggleButton","_toggleCheckbox","actionButton","_getActionButton","waitButtonTitle","checkboxId","checkbox","noInitFocus","firstElement","focus","_submitInProgress","toggleButtons","confirmationCheckbox","checked","_formSubmit","_onSubmit","_onSubmitEvent","_addChoiceRadioButtonsOnClickEvent","_clearMessages","enctype","actionUrl","serialize","Request","onSuccess","_onSuccess","onFailure","_onFailure","req","timeoutMessage","showInternalError","responseText","_processForm","progressDialog","task","_processResponseRedirect","_processResponseStatus","_processResponseStatusMessages","statusMessages","_processResponseFormMessages","formMessages","_hasFieldErrors","_showFieldErrorArea","errorsElements","firstError","errorElement","hiddenContainerId","tabsBar","switchTab","_hasErrors","errors","rowElement","_addFormMessage","_processFieldMessages","_addFieldMessage","_processFieldMessage","fieldErrors","formElement","pop","postData","ListContainer","renderTargetId","isEmptyItem","_columnCls","cookies","cookie","crumbs","unescape","expires","escape","setPermanent","date","setTime","getTime","toGMTString","_titleClass","_hideContentTitle","_titleAreaId","_boxItemsAreaId","_initBoxItems","_boxItems","_getTitleHtml","_getSubTitleHtml","_renderBoxItems","_renderBoxItem","_isHidden","rememberedStatus","Cookie","_setHidden","hidden","hideContent","showContent","titleAreaElement","toggleContent","_updateTitle","TYPE_OK","TYPE_YESNO","SUBTYPE_DELETE","messageBox","SUBTYPE_TOGGLE","SUBTYPE_CONFIRM","factory","isWebspace","WebspaceFoldersMessageBox","isAjax","MultiCheckboxMessageWindow","MessageBox","ModalDialogBox","_text","_subtype","_descriptionWrapperTag","_descriptionDecorator","_buttonDefault","buttonsLocale","_buttonTitles","yes","no","wait","_onYesClick","_onNoClick","_onOkClick","_needAttention","_needAttentionText","_needAttentionBlockSubmit","_needAttentionOnChange","_onYesClickHandler","_defaultOnButtonClick","_getDescriptionCode","wrapDescription","_getNeedAttentionCode","needAttentionCode","ce","_disableYesButton","buttonYes","_enableYesButton","buttons","inputs","AjaxMessageBox","_requestUrl","_requestMethod","_requestParams","_contentContainerId","_loadingTitle","_progress","_showSpinner","_hideSpinner","onCreate","_onCreate","superclass","transport","contentCode","descriptionCode","confirmationCode","confirmation","checkboxes","enableYesButton","_successDescription","_failureDescription","_setDescription","folders","_screenDisablerId","_hideOnEscape","_hideOnBgClick","_onShow","_onHide","initScrollbarSpacer","_screenDisabler","_onKeyDownhandler","_onKeyDown","popupContainer","keyCode","scrollDiv","overflow","scrollbarWidth","offsetWidth","clientWidth","styleEl","head","sheet","insertRule","DropdownHeader","dropdowns","closeAllDropdowns","dropdown","isOpened","close","DropdownManager","register","toggler","open","beforeClick","oldIsOpened","unregister","SmallTools","_operationsId","searchFilters","searchFiltersState","searchHandler","resetSearchHandler","listId","searchOveral","overal","searchOverall","quickSearchWide","quickSearchInputId","searchCollapsed","onToggleSearch","quickSearchBoxView","searchBoxView","addResponsiveButton","searchOveralView","toggleSearch","filterState","currentValue","searchText","onsubmit","searchFiltersView","require","filters","Filters","create","idPrefix","_hideResponsiveButtonBlocks","_rActionsElement","onResponsiveButtonClick","_showResponsiveButtonBlocks","createDate","options","multi","createMultiEnum","createEnum","createText","placeholder","onkeyup","live","inputDataName","charAt","onchange","enumOptionsView","option","output","total","hour","minute","day","month","year","getFullYear","onDateSearchFilterOpen","onDateSearchFilterChange","onDateSearchFilterModify","enumValueView","enumGroupValue","selected","onMultiEnumSearchFilterChange","isNaN","_dateSearchFieldFromDate","_dateSearchFieldToDate","yyyy","mm","getMonth","dd","getDate","h","getHours","m","getMinutes","CollapsibleBlock","_blockAreaId","_onTitleClickEvent","Pathbar","_renderItemSuffix","getHref","SimpleItem","Bar","containerCls","getContainerClass","bar","Tabs","_isResponsive","_addResponsiveTabs","tabId","activeTab","getTabId","size","getTabContent","tabContentElement","isActive","_isActive","_containerCls","_tabId","navigationTab","_content","Separator","HorizontalSeparator","wrapperClass","DynamicSubForm","getDynamicContent","_getDynamicContent","prepareDynamicContent","_prepareDynamicContent","bindDynamicContent","_bindDynamicContent","insertDynamicContent","_insertDynamicContent","onUpdateDynamic","_onUpdateDynamic","onInitDynamic","_onInitDynamic","_allowRemoveFirstElement","dynamicElements","getElements","index","_addEmptyContent","dynamicElement","cloneNode","deleteContent","addContent","reset","AddRemoveDynamicSubForm","_addButtonId","_addButtonTitle","_removeButtonId","_removeButtonTitle","addButton","_isAddButtonDisabled","isFirstElement","wrapperId","_initRemoveButtonWrapper","inputEls","newId","nameRegExp","idRegExp","child","labels","Box","Gauge","setProgress","PopupForm","_popupContentAreaId","_hintAreaId","_hint1AreaId","_boxAreaId","_actionButtonsId","_leftActionButtonsAreaId","_rightActionButtonsAreaId","_titleCls","_scrollable","_fullHeight","_isRemoved","view","_getHeadingActions","_getContentArea","_getBoxArea","_getButtonsArea","buttonsRow","toggleButtonsArea","bool","setBoxType","setTitleType","setTitle","setHint1","addRightButton","_createButton","addLeftButton","removeRightButtons","removeLeftButtons","resizeList","listContainer","buttonsHeight","getHeight","cumulativeOffset","newHeight","clientHeight","overflowY","overflowX","_onClick","_updateButton","_addErrorMessage","_addStatusMessage","_userError","_close","_internalError","AjaxPopupForm","_url","cancelBtn","Popup","_contentHeight","_closeButtonEnabled","_buttons","_onCloseClick","buttonsArea","formId","buttonDesc","buttonDisabled","buttonContainer","DoubleListSelector","_name","_list","_dataUrl","_selectedMarked","_unselectedMarked","_prevSelectedItem","_isSearchable","_isLarge","_initList","marked","_initListItem","_originalSelection","_initInputElement","ajaxLoading","_getSearchControl","isSelected","container","isHidden","icons","undefined","_toggleItem","inputElement","columnId","autocomplete","onfocus","onFocus","onblur","onBlur","onmousedown","onResetSearch","_onSubmitSelect","_onSubmitUnselect","_unmarkItem","_markItem","shiftKey","startIndex","min","finishIndex","max","_updateSelectControls","_updateElement","onChange","searchString","_toggleSearchButtonIcon","_isSearchMatched","_showAllItems","searchIndex","_resetSearchControl","setMarked","counter","controlId","isEmpty","reloadUrl","_onReloadSuccess","_onReloadFailure","onException","_onReloadException","_onReloadCreate","onComplete","_onReloadComplete","exception","listArea","EnhancedDoubleListSelector","_fixListZebra","count","inputIcon","_toggleItemSelection","_toggleItemCheckbox","_getItemText","highlight","itemIcons","itemText","batchMode","side","ImageSelector","captions","_captions","_currentId","_listId","_valueElement","_addImage","alt","_onImageClick","DynamicPopupHint","windowId","delay","_isInitialized","_currentTooltip","_init","_initWindowElement","_initWindowEvents","marginTop","_onWindowMouseOver","_onWindowMouseOut","_showWindow","getPlacement","getCls","getTitle","titleElement","getScrollable","updateContent","isSet","unset","getContent","_updatePosition","elementWidth","elementHeight","headingElementHeight","getTargetElement","tooltipElementHeight","tooltipElementWidth","offsetLeft","offsetTop","elementRight","viewportRight","clonePosition","setWidth","setHeight","_targetElement","_waitMsg","_placement","_contentLoaded","_delayedExecuter","_initTargetEvents","_loadContent","setContent","PeriodicalExecuter","pe","stop","PasswordMeter","observe","_passwordElement","_onChange","_verdict","strength","level","password","suggestions","estimatePassword","_updateVisibility","_updateHint","_updateVerdict","_updateColor","_hintContainer","newClass","c","_oldClass","suggestion","waitMsg","placement","PASSWORD_ESTIMATION_QUERY","gql","defaultEstimateFn","passwordEstimation","apolloClient","query","variables","estimateFn","all","sentryLink","SentryLink","setTransaction","errorLink","onError","networkError","statusCode","uploadLink","createUploadLink","uri","ApolloClient","from","cache","InMemoryCache","typePolicies","AdditionalKey","keyFields","Domain","fields","hosting","merge","ExtensionTab","SiteButton","Site","ConfigSectionGdprCookie","User","UserLogo","UserPermissions","Mode","Notification","PrimaryKey","WebsitesDiagnostic","settings","ServerMail","Capability","mailServer","packages","Dns","Query","additionalKeys","recentSearch","Server","firewall","components","DnsTemplate","DnsSoaRecordTemplate","TaskList","IpAddress","clients","IpAddressList","dataIdFromObject","object","__typename","defaultDataIdFromObject","symbolClasses","upper","lower","number","special","PasswordGenerator","_generateButtonElement","_onGeneratePasswordClick","_showButtonElement","_onShowPasswordClick","_showPasswordVisible","_showPasswordTitle","_hidePasswordTitle","_passwordStrength","_generatePassword","passwordConfirmationElement","fireCustomEvent","requiredClasses","_generateSymbol","symbolClass","UpgradeFailureNotification","updateInterval","_isBootstrapRunning","_bootstrapExecutionUrl","_bootstrapStatusUrl","_bootstrapInProgressMessage","_bootstrapLinkTitle","_scheduleUpdateStatus","_executeBootstrapper","_statusUpdate","WebserverConfigurationFailure","_rebuildFailedUrl","_rebuildAllUrl","_moduleInstalled","_kbArticle","_rebuildFailed","_rebuildAll","_onCreateExecute","_onException","port","ConfirmationPopupManager","_sendButtonTitle","singleRowButtons","_prepareUrl","_handlerUrl","_ids","_formListItemsAreaId","_formListAreaId","_formBoxAreaId","_formDescriptionId","_longtask","_autoload","_setTitle","formHtml","_getHeadDescription","_getBottomDescription","_addButtons","_renderPreparePopup","_preparePopup","_onCancelClick","ids","_onSuccessPreparePopup","_onSuccessResponse","sendButton","cancelButton","_getLoadingIndicatorItems","_addLoadingIndicator","_getAdditionalParams","_isValid","_needFlyEffect","beginOffset","fly","_sendRequest","LookUp","_data","_currentValue","_newItemValue","_copyTitleValue","_limit","ITEMS_UNLIMITED","_lookUpParams","_placeholder","_valueField","inputFieldConfig","_inputField","_lookUpButton","_lookUpControl","_dropdownList","_initCustomLookUpComponent","_customLookUpComponent","_emptyElement","handleChange","_updateValue","_updateData","_getDataByUrl","_createItem","_setDisabled","_filter","limit","_selectResults","itemsCount","getValue","getItemValue","getDisplayValue","_openList","showAll","_fixDropdownPosition","toLocaleLowerCase","_getDataTask","_closeList","itemsFound","_item","itemLink","itemData","stripTags","visibleItems","_searchMoreElement","_getSearchMoreText","previousElementSibling","blur","_inputOnFocus","_inputOnPaste","_inputOnBlur","_inputOnKeyUp","_inputOnKeyDown","_lookUpButtonOnClick","activeItem","_onArrowKeyPressed","nextItem","_scrollDropdownList","firstItem","round","offsetHeight","itemsInFrame","frameStart","scrollTop","_itemOnClick","_itemOnOver","_clearData","_addSearchMoreElement","isRtl","windowWidth","offsets","getBoundingClientRect","delta","parseInt","getComputedStyle","paddingLeft","COLUMN_SELECTION","COLUMN_ACTIONS","AdditionalActions","List","globalCheckbox","onListGlobalCheckboxClick","_listCls","_tableId","_itemActions","_columns","Boolean","_limitValues","_splitListData","pathbar","state","pager","additional","_searchFilters","_searchOveral","_pageable","_disabledSelectHint","_clearStatusOnReload","isDisabledItem","_onRedraw","_emptyViewMode","_getTotalInfo","_pager","totalItemCount","_getRowClass","_getSearchOveralField","listData","place","dataLen","_state","_pathbar","_additionalData","_isColumnSelectionPresent","_getColumns","includes","onHeaderClick","dataIndex","sortField","sortDirection","updateFilter","force","checkEmptyList","filterChanged","hasFilter","isVisible","column","oddEvenRowClass","row","rowIndex","cells","columnIndex","_filtered","noEscape","onLimitClick","onPagerClick","page","actionsBox","_getActionBoxElement","selectButton","onPagerButtonClick","paging","_actionBox","listHeadersView","colspan","headerColspan","header","headerCls","headerRenderer","sortCssClass","sortable","headerParams","listDataView","indexOffset","rowView","columns","cell","renderer","isDisabled","hideDisabled","listView","containerView","_getActionBox","_getPathbarHtml","_getPagerHtml","emptyViewContainer","isListEmpty","listSelector","previousValue","isFiltered","forceShowSearch","operationsId","operations","_getOperations","_onSearchClick","_onResetSearchClick","collapsed","_hideItemsNotSelectedWarning","_getLimitValuesHtml","pageCount","_getPagesItemsHtml","limitValue","limitValueTitle","itemCountPerPage","first","previous","pagesInRange","next","last","emptyView","_addSelectionHandlers","rActionsList","handleSelectButtonClick","_addPathbar","getSelectedItemsIds","getSelectedItems","selectedItems","dataItem","checkNonEmptySelection","_showItemsNotSelectedWarning","execLongGroupOperation","itemId","progressBar","removePreparingItem","beforeSendRequest","sendRequest","taskName","execGroupOperation","payload","defineProperty","idsParamName","submitVarName","toJsonPayload","checkSelection","_submit","sendRequestHandler","submitHandler","reloading","context","noReload","skipConfirmation","mouseEvent","confirmationPopup","_confirmationPopup","getConfirmOnGroupOperation","subtype","needAttention","needAttentionText","needAttentionBlockSubmit","needAttentionOnChange","requestUrl","loadingTitle","onYesClick","requestParams","buttonTitles","titles","buttonKey","confirmOnGroupOperation","_itemsNotSelectedTimerId","urlParams","controllerName","actionName","_request","abort","processReloadError","redraw","_addDisabledCheckboxesHints","previousSibling","redrawPartial","_contextMenu","onRedraw","_addResponsiveHtml","_initDropdowns","_initItemActions","rowId","_dropdowns","hasSelectedItems","getItemById","Number","getItemByName","itemName","columnName","columnNameHtml","_addResponsiveHtmlToButtons","_addResponsiveHtmlToImages","_addResponsiveHtmlToIcons","_addResponsiveHtmlToNumbers","images","outerHTML","wrapper","icon","parseFloat","isFinite","links","checkSyncStatus","statusElementId","onFinishCallback","randomId","_randomId","timeout","progressStatus","statusElement","deleteButtonIndex","_getDeleteButtonIndex","_modifyColumnsByExtension","extension","findColumn","columnsOverride","originalColumn","extend","insertAfter","getItemActions","actionInfo","ListContextMenu","TARGET_TYPE_DROP_DOWN","TARGET_TYPE_TABLE_ROW","_initRowStyles","_initShowOnClick","_prefillPopup","iconClass","_togglePopupNearButton","scrollOffsets","buttonPosition","viewportOffset","buttonWidth","buttonHeight","_setPosition","_hidePopup","targetData","rowEl","_openPopup","rowData","targetType","dropDownEl","_isListContextEvent","_getTargetData","_getTargetType","_open","_hide","_isImmediatelyOpening","_isOpened","altX","altY","popupWidth","windowHeight","popupHeight","popupMarginTop","getStyle","right","dir","_titleAddCls","collapse","_titleButton","popup","operationsArea","liElement","operation","UnresolvedDomainWarning","run","isAlias","Pool","take","hasItems","_preparingCounter","_hidden","intervalUpdateTimer","pleskWS","task_created","onUpdated","task_updated","task_deleted","onDeleted","onOpen","loadTasks","onClose","addPreparingItem","progressTitle","uniq","unshift","_loaded","mergeItems","nextItems","getMergedItems","newItemData","onItemStatusChange","completeItem","currentItem","setItems","mergeItem","pool","getUpdated","getStatus","getData","getSteps","onItemStepChange","setRefreshLinkEnabled","isStarted","isRefreshLinkEnabled","setUniq","getUniq","isFlying","isReady","stopPeriodicalExecutor","removeItemsByIds","isCompletedItem","_updateProgressDialog","progressBarItemId","onHide","returnUrl","_progressBarItem","isOpenProgressDialog","_progressDialog","renderProgressDialog","isOpen","getProgressTitle","steps","getVisibleErrors","redirectUrl","isComplete","doRedirect","isCompleteSuccessfully","isCompleteWithWarning","newItem","finishedItem","step","setProgressBarElement","getProgressBarElement","setPeriodicalExecutor","hasStartedTasks","setInterval","clearInterval","_updated","_status","_errors","_output","_isRefreshLinkEnabled","_progressValue","_canCancel","_referrer","_uniq","_progressBarElement","getKey","getProgressValue","setStatus","getProgressDialogLinkHandler","flag","_isRefreshAllowed","getRefreshLinkProps","_redirect","onClick","hasErrors","getErrors","getOutput","line","isPreparing","isProgressUndefined","isCompleteWithError","addToast","intent","toToast","refresh","progress","toasts","useToasts","autoClosable","removeToast","toast","ws","messageSubscriptions","openSubscriptions","closeSubscriptions","handleError","wsConnect","attempt","WebSocket","host","onmessage","messageData","onopen","onclose","code","PleskWSBinding","messageSubscriptionsIndex","openSubscriptionsIndex","closeSubscriptionsIndex","_onStatusUpdate","_onTaskDone","_onTaskCancel","_onTaskError","progressParams","errorMessage","_statusUrl","_updateInterval","_showProgress","statusClass","_processStatus","_updateStatus","_onStatusUpdateSuccess","_onStatusUpdateFailure","_failedStatusUpdates","_maxFailedStatusUpdates","_showFinished","_showError","_showWorking","_showNone","_showLoading","_addDetailsEvent","details","ActiveList","urls","navigate","isCollapsible","isNew","isShowItemTitle","stateCollapsed","itemActions","dynamicListBanner","toolbarView","itemsView","bottomBarView","toolbar","bannerLocale","sortDir","hasClassicView","hasDynamicView","enabled","feedbackUrl","dynamicListBannerFeedbackHandler","itemView","stretched","itemClasses","itemCaptionView","itemDetailsView","itemSettingsView","itemToolsView","rel","noEscapeTitle","new","additionalComments","countMoreItems","loadAllLink","switchToLink","listType","itemCaptionHeaderView","itemCaptionServicesView","itemCaptionDataView","itemCaptionAdditionalHtml","toggleItem","itemCaptionHeadView","itemCaptionHeadWrapView","itemCaptionSummaryView","itemCaptionToolbarView","labelTypes","onCaptionHeadWrapClick","primaryActions","summary","summaryItemView","summaryItem","toolbarButtonView","services","itemServiceView","service","headerClass","closeUrl","itemServiceBlockView","renderItemServiceView","ch","replaceAll","grid","subService","linkView","childLinks","childLink","isSimpleText","info","isSimpleLink","spanClass","newLine","linesNumber","additionalHtml","getItemElement","scrollToItem","hadClassName","elem","servicesEl","_initToolbar","disableItem","enableItem","toolbarEl","itemEls","menuEl","offset","getLayout","_menuEl","itemEl","itemElClone","liEl","elInMenu","onWindowResize","duration","startTime","to","frame","scrollTo","getItemIdFromUrl","cookieName","DynamicListBannerHint","closed","setClosed","useState","handleClose","Spot","isRequired","DynamicListBanner","bannerInfo","onTourStart","listMode","dropdownSelector","canStartTour","showHint","setShowHint","discarded","setDiscarded","initialType","isCollapsed","setIsCollapsed","handleSwitchView","handleToggleBanner","isDynamic","contentText","contentTextParams","Link","Text","bold","_jsxs","LocaleProvider","ExtendedStatusMessage","Icon","Columns","Column","fill","maxWidth","ExtendedStatusMessageTitle","ExtendedStatusMessageDescription","gap","Action","ghost","onToggle","handleCloseBanner","dynamicListLink","switched","_createFolderUrl","_onNodeClick","_rootNodeTitle","_onReload","_showFiles","_filterNodes","_selectOnlyFiles","_showMessage","_initTreeView","_insertNode","htmlElement","cssClass","isRootDirectory","isDirectory","_getNodes","ulElement","itemSelect","_addCommonEvents","_onNodeToggle","_onNodeMouseover","_onNodeMouseleave","linkElement","getTypeIcon","_onNodeSelect","directoryPath","containerElement","subTreeElement","expandElement","showNewNode","_loadNode","_onNodeLoadStart","rootDir","showFiles","_onNodeLoadSuccess","_onNodeLoadFailure","_isNodeExpanded","nodeElement","resetSelection","hideNewNode","resetHover","setDirectory","directory","node","_getNodeElement","_onFullReloadSuccess","reloadPath","nodes","lastSlashIndex","lastIndexOf","getSelectedNode","selectedElement","getSelectedItemData","expandNode","_insertNewNode","newNode","onkeydown","_onNewNodeKeyDown","_onCreateFolder","_insertBtn","_onCancelCreateFolder","currentDir","newDirectoryName","_onFolderCreated","FTYPE_TEXT","FTYPE_IMAGE","FTYPE_VECTOR_IMAGE","FTYPE_AUDIO","FTYPE_SECURITY","FTYPE_WEBSCRIPT","FTYPE_WEBPAGE","FTYPE_WAPPAGE","FTYPE_COMPRESSED","FTYPE_UNKNOWN_TEXT","FTYPE_UNKNOWN_BINARY","FTYPE_ZIP","FTYPE_RAR","FTYPE_TAR","FTYPE_TGZ","toUnixPermissionsString","permissions","contentAreaId","handlerUrl","startUploadHandler","finishUploadHandler","_startUploadHandler","_finishUploadHandler","_uploadFrameInitialized","_getUploadIFrameElement","contentArea","_uploadFrameElement","_onUploadFrameInitialized","getResult","statusFrame","statusDocument","contentDocument","contentWindow","cancel","DirectoryBrowser","_pathElementId","_subscriptionId","_tree","applyTo","dataUrl","onNodeClick","_onTreeNodeClick","onReload","_buttonOk","_buttonCancel","selectedPath","pathValue","readEntry","entry","entryReader","createReader","readAllEntries","allEntries","readEntries","results","entriesToFiles","files","isFile","file","FileReader","opera","navigator","platform","reader","onloadend","onprogress","readAsDataURL","isDragFiles","dataTransfer","effectAllowed","types","DropArea","isButtomUploadDirectory","_onDrop","_addDocumentHandlers","_addDropAreaHandlers","webkitGetAsEntry","getAsFile","isFiles","getDragFiles","GroupsList","_getGroupRowClass","_groupBy","_groupsConfig","groupedData","groupId","groupIndex","group","groupDataRowView","_getGroupName","ReporterPopup","_actionCollectId","_actionToSupportId","_supportUrl","_onSendClick","_getTooltip","_onSupportClick","_disableSendButton","_enableSendButton","_onCollectClick","_checkResponseStatus","collectRadio","reportId","_onShowReportsClick","dialogHeight","pageable","maxHeight","_onHideReportsClick","ObjectSwitcher","_listUrl","_itemUrlTemplate","_owner","_navigate","myData","isSameParent","PopupSlider","popupCls","closeButtonEnabled","hideOnEscape","_slides","_current","setCurrent","prev","renderSlide","dots","marginLeft","curItem","ScrollableList","table","headerTable","visibleHeader","tr","blockHeight","up","invisibleHeader","th","lastHeader","bottom","tableHeight","scrollHeight","_resizeList","scrollToBottom","rows","patchesFactory","wrap","after","ajaxRequest","ajaxRequestsHistory","ajaxRequestProto","ignoreUAT","targetUrl","requestFingerprint","uiPointerForm","lastUrl","msg","dataSource","update_oC","jswFormAjax","formAjaxProto","responseJSON","jswList","listProto","_lastOperation","replaceHandlers","o","confirmationPopupManager","popupFormProto","ajaxPopupForm","defer","msgBoxProto","ajaxMessageBox","ajaxMsgBoxProto","multiCheckboxMessageWindow","msgWindowProto","webspaceFoldersMessageBox","drawersWatcher","reportDrawerAction","drawer","getDrawer","MutationObserver","mutations","addedNodes","removedNodes","childList","subtree","characterData","pleskActions","sessionChanged","unloadByClick","watchersFactory","isAnalyticsAllowed","userAgent","versionInfo","accountCreated","innerWidth","innerHeight","ratio","devicePixelRatio","activeElement","COOKIE_POLICY_LOCAL_STORAGE_KEY","hasPreferences","savePreferences","preferences","loadPreferences","analytics","marketing","openInNew","isClassicUi","FormFieldPassword","passwordMeterProps","onEstimate","app","showModal","graphqlQueries","localeSections","feedback","sentry","isInFrame","writeQuery","App","addWidget","widget","ErrorBoundary","createPortal","widgets","createBrowserRouter","routes","setState","StrictMode","ApolloProvider","client","RouterProvider","router","initialDataLoader","isInitial","createPageDataLoader","dataPath","generatePath","newData","isClientSideRedirectAllowed","ipAddressDomainRoute","componentLoader","loader","clientId","btoa","ipAddressId","changeOwnerRoute","searchParams","isTsSessionsExist","viewer","manageServerSessions","os","isWindows","routesTransformer","AppLayout","AppBoundary","domainOverviewRoutes","isExist","mode","isDnsServiceSupported","manageServerDnsTemplate","domainId","isViewSwitcherAllowed","manageServerNotifications","manageServerBranding","manageServerDb","databaseServer","errorPolicy","isDemo","fetchPolicy","websitesDiagnostic","manageServerMail","manageServerMailAutodiscover","manageServerVirusProtection","manageServerSpamFilter","manageServerMailBlackWhiteLists","isUnix","ServerSummaryReportRoute","manageServerLicense","additionalKey","manageServerFirewall","manageServerComponents","itemsPerPage","ClientSummaryReportRoute","phpHandler","cliPath","manageServerPhp","odbcDomainRoute","odbcServerRoute","protectedDirectoryListRoute","manageAspNetSettings","capability","isASPdotNetInstalled","webPath","domain","webScriptingSettings","aspNetSettings","aspDotNet","configs","CpPagesLayout","Response","PhpPagesLayout","LogsPage","parsePath","route","matchRoutes","LoadableComponent","useLocation","revalidator","useRevalidator","revalidate","useLoaderData","useParams","componentLoaderTransformer","other","cause","default","isExistTransformer","shouldRevalidateTransformer","shouldRevalidate","defaultShouldRevalidate","currentUrl","nextUrl","every","childrenTransformer","pathTransformer","routeTransformer","transformer","flat","TopBarProgress","barThickness","barColors","shadowBlur","navigation","useNavigation","useQuery","TASK_PROGRESS_BAR_QUERY","useLayoutEffect","wsEnabled","webSocket","isNote","scrollRestoration","bottomAnchor","now","_Fragment","Outlet","Toaster","onToastClose","opacity","doc","loc","collectFragmentReferences","refs","kind","selectionSet","selections","selection","variableDefinitions","def","definitions","definitionRefs","findOperation","operationName","newDoc","opRefs","allRefs","newRefs","refName","prevRefs","childRef","op","oneQuery","HELP_CONTEXT_MAP","showFrames","pageHeader","pageSidebar","useMatches","breadcrumbs","useMemo","routesLocale","pathnameMatch","isPowerUserPanel","helpContext","pathnameMath","pageTitle","helpMenu","pageContentHeader","PageLayout","withSecondary","secondary","bodyClass","integrationClass","isSecondaryCollapsed","customTitle","BRANDING_QUERY","isClosedOnDesktop","setClosedOnDesktop","useLocalStorage","isClosedInResponsive","setClosedInResponsive","sidebarCollapsed","isResponsive","useMediaQuery","isClosed","documentTitleEl","headerHeight","setHeaderHeight","headerAddonHeight","setHeaderAddonHeight","stickyTop","setStickyTop","useEffect","paddingTop","searchQuery","getTitleForHelpSearchQuery","Layout","Measure","bounds","onResize","measureRef","ref","PageHeader","headerAddon","CookiePolicy","licenseStatus","LicenseStatus","onSidebarToggle","handleToggleSidebar","sidebar","PageSidebar","sidebarType","footer","PageFooter","contentHeader","PageContentHeader","vertical","StatusMessages","JswComponent","useClickOutside","listener","useEventListener","addFn","removeFn","handlerRef","useRef","initialValue","storedValue","setStoredValue","readLocalStorageValue","useCallback","setValue","mq","matchMedia","updateMatch","addListener","removeListener","useDebounce","debouncedValue","setDebouncedValue","layoutType","isInfoVisible","setInfoVisible","isPreferencesVisible","setPreferencesVisible","useModal","setPreferences","COOKIE_POLICY_QUERY","handleSave","nextPreferences","gdpr","cookieBox","Info","onSave","onPreferencesToggle","contentAlignment","Preferences","adapter","OverlayAdapter","useCreateFormInDrawer","dataType","drawerUrl","useApolloClient","useMatch","useNavigate","setData","setTask","updateUserSettings","useMutation","UPDATE_USER_SETTINGS","CREATE_FORM_IN_DRAWER_QUERY","techDomain","vendor","maxDomainLength","settingsEnabled","domainManagement","applicationWizardConfig","applicationWizard","DrawerWithProgress","onCancel","onProcess","onToggleDomainSettings","settingsCollapsed","ContentLoader","STATUS_RUNNING","getTaskProgressBar","onTaskComplete","setSteps","setRedirectUrl","taskId","handleTaskUpdate","taskStatus","progressValue","progressTitleHtml","ConsoleOutput","taskProgressBar","isInProgress","deleteTask","handleTaskComplete","Drawer","sameUrls","origin","cancelable","dangerouslySetInnerHTML","__html","onFinish","autoCloseTimeout","hideButton","navigateBase","useNavigateBase","createPath","delete","Heading","Paragraph","cookieInformationLink","PLESK_COOKIES","handleAcceptClick","handleAcceptNecessaryCookiesClick","handlePreferencesClick","CONTROL_COOKIES","Adapter","DrawerAdapter","k","toValues","handleCancel","submitButton","onSubmit","toPreferences","FormFieldRadioButtons","browserSettingsLink","applyButton","Overlay","hasScroll","enableScroll","enableDocumentScroll","enterTimeoutRef","exitTimeoutRef","setReady","disableDocumentScroll","Tag","containerRef","handleCloseMessage","_","renderMessage","STATUS_DEFAULT","STATUS_TRIAL","daysLeft","isAdmin","installUrl","hidePopoverUrl","trialOverIcon","baseClassName","trialOverPopoverVisible","setTrialOverPopoverVisible","handleClosePopover","alertCls","Alert","renderActions","popoverCls","Popover","visible","renderTrialPopover","oneOf","urlMapping","useNavigateCallback","metaKey","altKey","ctrlKey","RouteLink","searchUrl","MainHeaderSearch","MainHeaderNavbar","MENU_ITEM_CLASSNAME","SEARCH_HISTORY_STORE_URL","removeTouchEventListeners","onDocumentTouchStart","onDocumentTouchMove","onDocumentTouchEnd","searchTermRef","lastTermRef","menuRef","timer","resetTimeout","enterPressed","pendingRequest","skipKeyUp","touchMoved","MAIN_HEADER_SEARCH_QUERY","setHistory","deleteRecentSearchResult","DELETE_RECENT_SEARCH_RESULT_MUTATION","onCompleted","isSearchFocused","setSearchFocused","searchInProgress","setSearchInProgress","setResults","selectedItem","setSelectedItem","fatalError","goToItem","scheduleSearch","abortPreviousSearch","findTerm","onSearchSuccess","term","records","res","onSearchFailure","onSearchComplete","flushRecentSearchCache","evict","identify","fieldName","renderSearchItems","uatKey","iconUrl","MenuItem","active","storeUrl","token","sendBeacon","toFormData","forgery_protection_token","handleSaveRecentSearch","renderSearchResults","meta","moreResultsFound","MenuDivider","renderHistory","MenuHeader","Status","resetSearch","resetValue","onArrowKeyPressed","searchPlaceholder","onTouchEnd","Input","innerRef","autoComplete","onPaste","handlePaste","onKeyUp","onKeyDown","_complete","handleFocus","RECENT_SEARCH_HISTORY_QUERY","handleBlur","suffix","Menu","consume","IconSun","xmlns","viewBox","fillRule","d","clipRule","IconMoon","mask","AccountMenu","isHideText","user","ACCOUNT_MENU_QUERY","Dropdown","menu","menuPlacement","caret","truncate","pname","login","backToAdminLink","accountMenu","subscriptionSwitcher","headerCustomButtons","isHideBackToAdminText","isHideLogo","MAIN_HEADER_NAVBAR_QUERY","theme","setTheme","branding","flipHorizontal","SubscriptionSwitcher","notification","panel","NotificationCenter","HelpMenu","handleToggleTheme","newTheme","logo","isCustom","changeIdRe","subscriptions","setShowAll","currentSubscriptionId","setCurrentSubscriptionId","tabIndex","pointerEvents","isListOpen","setIsListOpen","selectedNotificationId","setSelectedNotificationId","notifications","setNotifications","setFilter","viewerType","NOTIFICATION_CENTER_QUERY","toastsRef","reloadTimeout","initFilter","initWebSocket","loadNotifications","handleNewNotificationRef","newNotification","allToasts","isViewed","isNotificationCritical","isAllowedFeedbackOrPromotionNotification","getIntentByNotification","accent","contextIconUrl","NotificationToast","onSelectNotification","handleOpenNotificationCenter","handleSelectNotification","uatAdditionalData","category","NOTIFICATION_CATEGORIES","ALERT","messageKey","handleUpdateNotifications","handleMarkAllAsViewed","panel_notification_created","listNotifications","newNotifications","change","updateNotifications","isRead","handleRemoveNotification","deleteNotification","handleCloseNotificationCenter","unreadNotifications","applyFilter","isUnRead","selectedNotification","Badge","getMostIntentByNotifications","extra","NotificationActions","onUpdateNotifications","onRemoveNotification","handleOpenSettings","handleCloseNotificationView","subject","Label","NotificationDate","NotificationCenterView","NotificationCenterList","onUpdateFilter","newFilter","onMarkAllAsRead","handleMarkAllAsRead","isFavorite","isCritical","WARNING","isPromotion","PROMOTION","FEEDBACK","CtaPropType","NOTIFICATION_INTENTS","DANGER","INFO","INACTIVE","INFORMATION","NotificationPropType","area","createdAt","displayDate","actionLink","actionText","openInNewTab","NotificationFilterPropType","handleClickButton","notificationsToDisplay","filterCount","r","v","SubjectColumn","DateColumn","Toolbar","ToolbarGroup","ToolbarExpander","FilterMenu","SearchBar","inputProps","onTyping","minWidth","rowKey","expandedRows","emptyViewMode","ListEmptyView","reason","getStatusIntent","getSubjectIntent","Media","compact","today","nowrap","hours","minutes","ListActions","ListAction","primary","intents","HelpDrawer","lazy","helpUrl","customHelpUrl","helpModule","HELP_MENU_QUERY","setIsOpen","setIsOpened","handleOpen","isClassicPanel","Suspense","help","enableSearchPrefill","styleClass","conhelp","custom","backgroundImage","Group","activeNode","isSidebarClosed","nodeRef","setHidden","Transition","in","mountOnEnter","unmountOnExit","getFirstLink","foundNode","navigationContext","viewSwitcher","getExtension","breadcrumbPathname","breadcrumbExtension","locationPathname","locationExtension","nodePathname","matchPath","nodeExtension","Brand","ViewSwitcher","showTitle","showPowerUserViewWarning","learnMoreUrl","hideSwitcherUrl","changeViewUrl","setVisible","popoverVisible","setPopoverVisible","targetRef","handleChangeView","handleOpenLearnMore","handleTogglePopover","canCloseOnOutsideClick","canCloseOnEscapePress","boundariesElement","switchLink","recommended","helpLink","handleHideSwitcher","imageAlt","edition","PAGE_FOOTER_QUERY","promos","pleskFooter","product","siteUrl","facebook","showLikeLink","pleskPage","twitter","showFollowLink","rating","handleProvideRatingClick","supportUrl","userVoice","userVoiceUrl","tabs","tabsHasRootPage","navigationTabs","hidePathbar","hideHeading","wizardTitle","pageSubtitle","titleRightAddon","objectSwitcherParams","forceObjectSwitcher","isClassicMode","currentPage","addObjectSwitcher","objectName","pageTitleSuffix","previousPage","Breadcrumbs","PageContentHeaderNav","lookUpParams","listUrl","owner","itemUrlTemplate","setComponent","newComponent","JswObjectSwitcher","findIndex","nav","headerInner","stickyClassName","tabsRect","headerInnerRect","minHeight","Tab","substring","matchLink","unescapeHtml","withPageLayout","extraProps","Wrapper","wrapperProps","displayName","WrappedComponent","withSimplePageLayout","useRouteError","isRouteErrorResponse","ErrorPage","graphQLErrors","graphQLError","debugMessage","trace","stackTrace","stack","descriptions","helpActions","styles","back","noRepairKit","sideMaintenance","main","wide","ExceptionDetails","RepairKitAlert","footerLinks","footerLink","footerLinkText","RepaitKitAlert","MediaSection","codeFragment","ODBC_DEFAULT_LIST_INPUT","ODBC_SERVER_LIST","odbcAddRoute","odbcEditRoute","pagination","sortColumn","dsnManager","drivers","ODBC_ADD_PAGE","odbcId","ODBC_EDIT_PAGE","domainData","ODBC_DOMAIN_PAGE","ODBC_DOMAIN_LIST","useGetDomainOverviewRoutePath","HOSTING_SETTINGS_PAGE","PROTECTED_DIRECTORY_LIST_DEFAULT_INPUT","PROTECTED_DIRECTORY_LIST_PAGE","PROTECTED_DIRECTORY_LIST","protectedDirectoryAddRoute","protectedDirectoryEditRoute","PROTECTED_DIRECTORY_ADD_PAGE","isProtectedDirectoryLocationSupported","protectedDirectoryId","protectedDirectory","PROTECTED_DIRECTORY_EDIT_PAGE","serverSummaryReportLoader","layoutId","clientSummaryReportLoader","LoginPage","defaultValues","serverInfo","isFirstLogin","cloudType","loginContentInclude","headContent","bodyContent","LOGIN_PAGE_QUERY","login_name","passwd","locale_id","setErrors","useInsertionEffect","addedElements","empty","FormFieldText","autoFocus","hideGenerateButton","hidePasswordMeter","howToLoginArticle","cookieSettings","loginFormEntrypointEnabled","withLoginLayout","locales","resolvableHostname","mobileApplicationPromotion","LocaleSwitcher","contentAddon","SuggestResolvableHostname","LoginMobileApplicationPromotion","processFieldMessage","processFieldMessages","findSubFormFields","subFormPrefix","formData","forms","getSubFormPrefixes","formPrefix","embeddedForms","forwardRef","mutation","onFieldChange","onLongTask","embeddedFormsRender","setStatusMessages","formErrors","subFormErrors","setElementValue","getElementsByName","getIn","useImperativeHandle","handleEmbeddedFormValues","handleSubmitSuccess","formState","isApply","forceRedirect","renderEmbeddedForms","BaseForm","setIn","LoginLayout","MOBILE_APPLICATION_PROMOTION_COOKIE_NAME","setIsVisible","handleHide","sortedLocales","GetPasswordPage","resetBy","email","handleSuccess","indentFields","RestorePasswordPage","handleEstimatePassword","mergeMessages","oldMessages","setMessages","sectionName","handleAddedLocaleSection","BaseLocaleProvider","errorInfo","componentDidCatch","margin","whiteSpace","fontFamily","componentStack","app/editlist","app/rating","app/aha","app/eula","app/app-image/gallery","app/asp-dot-net/conn_strings-dynamic","app/asp-dot-net/custom_errors-dynamic","app/backup/list","app/backup/restore","app/backup/upload-files","app/backup/web-content-dynamic","app/database/assign-to-subscription","app/dns-helper","app/dns-helper/dns-settings","app/email-address/aliases-dynamic","app/email-address/form-ajax","app/email-address/postbox","app/email-address/responder-attachments-dynamic","app/file-manager/explorer","app/file-manager/file-name-popup-form","app/mail-settings/confirmation-remove-popup-form","app/hosting-settings/conflicts-checker","app/log-browser/browser","app/log-browser/files","app/login/recovery-password","app/newsletter-subscription","app/progress-dialog","app/profile/announcement-settings","app/pum","app/server-mail-antivirus-promo","app/show-output-popup","app/task-progress-bar","app/user/login-string","app/change-customers-owner","app/convert-customers-to-resellers","app/convert-resellers-to-customers","app/service-sidebar","app/ssl-certificate/list","app/app/progress","app/app/installed","app/app/apscatalog","app/web-app-firewall/submit-handler","tags","environment","isDev","integrations","Replay","maskAllText","maskAllInputs","BrowserTracing","beforeNavigate","beforeSend","err","originalException","catchDebugger","anonymousCall","at","beforeBreadcrumb","withoutGraphQLFetch","breadcrumb","getAll","ignoreErrors","denyUrls","sampleRate","replaysSessionSampleRate","replaysOnErrorSampleRate","tracesSampleRate","configureScope","setUser","setTag","AdminPanel","Smb","common","chk","onReady","UpdateAvailableNotification","buttonNow","buttonShow","linkLater","UpgradeAvailableNotification","BasePanel","descriptionText","PanelItemsGroup","PanelItem","home","ApsLicense","buy","initForm","onChangeUploadType","ToolButton","ApplicationUpdate","_renderHint","instances","_onInstallEvent","_onChangelogEvent","_onViewMoreEvent","updateApplication","showApplicationChangelog","resourceIds","jsonResponse","onShow","viewportHeight","popupTop","positionedOffset","syn","go_to","lon","loff","lsubmit","f","lock","getParentNodeByName","nodeName","errorfield","resizeHandler","lines","originalSize","Prototype","appendForgeryProtection","forgeryToken","origSubmit","HTMLFormElement","origOpen","XMLHttpRequest","setRequestHeader","origInitialize","on400","on500","on0","chk_pd_name","isWin","re","re1","chk_pos_int","pos_int","chk_mn","mail_name","chk_login","chk_realm","realm","chk_dom","dom_name","chk_ip_address_and_mask","chk_email","found","chk_url","chk_ip_t","ip","chk_mask","ip2long","num","block_to_num","block","valid","valid_formats","ip_address","ip_mask","chk_sys_passwd","username","minLen","maxLen","charCodeAt","chk_uint","uint","createTooltipElement","tooltipMouseMoveObserver","onMouseMove","tooltipMouseOutObserver","onMouseOut","tooltipEventElement","tooltipVisible","showAction","showTimed","tooltipShowTimeout","cancelShowTimed","finishShowTimed","getShowPosition","firstShow","hideAction","__webpack_module_cache__","deferred","inProgress","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","O","chunkIds","notFulfilled","Infinity","fulfilled","n","getter","__esModule","definition","enumerable","chunkId","promises","u","miniCssF","g","globalThis","hmd","obj","prop","l","done","needAttach","getElementsByTagName","charset","nc","onScriptComplete","doneFns","Symbol","toStringTag","nmd","p","compat","localeDependencies","installedChunks","installedChunkData","promise","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}