{"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:///./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:///./queries/ClientSummaryReport.graphql","webpack:///./queries/SummaryReportFragment.graphql","webpack:///./queries/SummaryReportPage.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/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/SummaryReportLayoutsPage.graphql","webpack:///./queries/TrafficHistoryReportPage.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/ClientSummaryReportLayoutsPage.graphql","webpack:///./queries/ClientTrafficHistoryReportPage.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\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 (/^javascript:/i.test(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        return `<form id=\"${this.getId()}-form\">${this._getConfigParam('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 = !!this._progressBarItem.isCompleteWithWarning();\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()) {\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,\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={<Text style={{ fontSize: '30px' }}>{'🎉'}</Text>}\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 + \"/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\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 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\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 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: '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/summary-report',\r\n            componentLoader: () => import(/* webpackChunkName: \"components/pages/SummaryReportPage\" */'components/pages/SummaryReportPage'),\r\n            loader: serverSummaryReportLoader,\r\n        },\r\n        {\r\n            path: '/cp/server/summary-report/layouts',\r\n            componentLoader: () => import(/* webpackChunkName: \"components/pages/SummaryReportLayoutsPage\" */'components/pages/SummaryReportLayoutsPage'),\r\n            loader: async () => {\r\n                await apolloClient.query({\r\n                    query: require('queries/SummaryReportLayoutsPage.graphql'),\r\n                });\r\n            },\r\n        },\r\n        {\r\n            path: '/cp/server/summary-report/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            path: '/cp/server/summary-report/print',\r\n            componentLoader: () => import(/* webpackChunkName: \"components/pages/SummaryReportPage/SummaryReportPrintPage\" */\r\n                'components/pages/SummaryReportPage/SummaryReportPrintPage'),\r\n            loader: serverSummaryReportLoader,\r\n        },\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        {\r\n            path: '/cp/client/:clientId/summary-report',\r\n            componentLoader: () => import(\r\n                /* webpackChunkName: \"components/pages/SummaryReportPage/ClientSummaryReportPage\" */'components/pages/SummaryReportPage/ClientSummaryReportPage'),\r\n            loader: clientSummaryReportLoader,\r\n        },\r\n        {\r\n            path: '/cp/client/:clientId/summary-report/print',\r\n            componentLoader: () => import(\r\n                /* webpackChunkName: \"components/pages/SummaryReportPage/ClientSummaryReportPrintPage\" */'components/pages/SummaryReportPage/ClientSummaryReportPrintPage'),\r\n            loader: clientSummaryReportLoader,\r\n        },\r\n        {\r\n            path: '/cp/client/:clientId/summary-report/layouts',\r\n            componentLoader: () => import(\r\n                /* webpackChunkName: \"components/pages/SummaryReportLayoutsPage/ClientSummaryReportLayoutsPage\" */\r\n                'components/pages/SummaryReportLayoutsPage/ClientSummaryReportLayoutsPage'\r\n            ),\r\n\r\n            loader: async ({ params: { clientId } }) => {\r\n                await apolloClient.query({\r\n                    query: require('queries/ClientSummaryReportLayoutsPage.graphql'),\r\n                    variables: { clientId: btoa(`Client:${clientId}`) },\r\n                });\r\n            },\r\n        },\r\n        {\r\n            path: '/cp/client/:clientId/summary-report/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            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.set('theme', newTheme, null, '/');\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\":\"manageSsl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageSslRedirect\"},\"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\":4556}};\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                manageSsl\\r\\n                manageSslRedirect\\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","\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\",\"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\":[]}]}},{\"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\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":531}};\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    }\\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            summaryReportLayouts {\\r\\n                name\\r\\n                isDefault\\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  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\":\"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\":\"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\":\"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\":[]}]}},{\"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\":[]}]}}]}}]}}],\"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    }\\r\\n    server {\\r\\n        summaryReport(layoutId: $layoutId) {\\r\\n            ...SummaryReportFragment\\r\\n        }\\r\\n        summaryReportLayouts {\\r\\n            name\\r\\n            isDefault\\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  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\":\"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\":\"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\":465}};\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        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\":\"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\":634}};\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            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\":\"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\":\"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\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":627}};\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        }\\r\\n    }\\r\\n    capability {\\r\\n        mailServer {\\r\\n            isUserSettingsSupported\\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[\"ServerMailSpamFilterPage\"] = oneQuery(doc, \"ServerMailSpamFilterPage\");\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\":\"server\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"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\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":332}};\n    doc.loc.source = {\"body\":\"query SummaryReportLayoutsPage {\\r\\n    server {  \\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    }\\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\":\"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\":\"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\":\"ClientSummaryReportLayoutsPage\"},\"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\":\"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\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":458}};\n    doc.loc.source = {\"body\":\"query ClientSummaryReportLayoutsPage($clientId: ID!) {\\r\\n    client: node(id: $clientId) { \\r\\n        ... on Client {\\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        }\\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[\"ClientSummaryReportLayoutsPage\"] = oneQuery(doc, \"ClientSummaryReportLayoutsPage\");\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\":\"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/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\":\"79d165c003f4324d3e46\",\"components/pages/ChangeOwnerPage\":\"bbd97a628e40f62f933c\",\"views/admin/force-reset-password\":\"b35c73376378a69dbb11\",\"views/admin/setup/progress\":\"e321aa9686633714240e\",\"views/admin/setup/index\":\"33915b7b172a6d7a1202\",\"views/admin/home/admin\":\"ee863fa4a579f83617a1\",\"views/admin/app/info\":\"3ad0290dc7fdf587264b\",\"views/admin/app/usage\":\"c024f6f9818072a6f04d\",\"views/admin/app/uploaded\":\"f09e8e7b7a7d693393ff\",\"views/admin/custom-buttons/list\":\"81bf545a977ea76b8ea2\",\"views/admin/ftp-sessions/list\":\"f7f48e87dd2d41c24a97\",\"views/admin/php-handler/list\":\"d407c3b5695c4772b73f\",\"components/pages/ScheduledBackupPage\":\"badb9136bf6bba698a09\",\"components/pages/ScheduledBackupListPage\":\"1f0741e83108c1092add\",\"views/default/scheduler/list\":\"86fa369db16c3bc8b4fd\",\"views/admin/domain/list\":\"b51e2301a4ed90c0b7dc\",\"views/admin/customer/list\":\"48e2e57cd986a45e612f\",\"views/admin/customer/domains\":\"4d92b679c97b51f8d262\",\"views/admin/customer/subscriptions\":\"7327f7c826e07241d4bd\",\"views/admin/reseller/list\":\"a343e5571624cb14ee6c\",\"views/admin/reseller/customers\":\"8a63fbfbf40e0a6d5338\",\"views/admin/reseller/domains\":\"70a944333dddb35a3d67\",\"views/admin/reseller/subscriptions\":\"6cde89a4603b1384662c\",\"views/admin/server/tools\":\"8e6aa9f5450066b6d53b\",\"views/admin/server/preview-domain-settings\":\"88c33b84da94d8e88a28\",\"views/admin/services/list\":\"6df34dd0e35ef2a2c80f\",\"views/admin/sessions/list\":\"a74732e4292282fa0c16\",\"views/admin/subscription/list\":\"4cb59ee7c0d94e0496fc\",\"views/smb/file-manager/list\":\"0b99f14417a4884a7084\",\"views/smb/file-manager/index\":\"12adcc44ab9e7f9bfc8c\",\"views/smb/my-service/index\":\"1822b9c26e3b3648a470\",\"views/smb/email-address/index\":\"39b5b9dac0d61acf187b\",\"views/smb/email-address/list\":\"42acc0589380d30182d2\",\"views/smb/mail-settings/list\":\"1831c3cba3b5829295c9\",\"views/smb/account/index\":\"6d8e9d86efba62ec9cd8\",\"views/smb/account/show\":\"3d7cd904662f942d1c2e\",\"views/smb/user/list\":\"2d6ea6923134a4d37973\",\"views/smb/web/setup\":\"b64ebce85948348713ca\",\"views/smb/web/view\":\"07f890629a78a9fcc593\",\"views/smb/web/php-settings\":\"5de1742ec59b9600010e\",\"views/smb/statistics/details\":\"6a2921cbed7d3acec82e\",\"views/smb/database/index\":\"101902709bafcbe3272b\",\"views/smb/database/list\":\"db5a88f2c74cf1275517\",\"views/smb/database/users-list\":\"8147157f2ca2451bc23d\",\"views/admin/task-manager/index\":\"66cf2c0cb5774776c32a\",\"views/dns/records\":\"5151047220b3831e1ff3\",\"views/dns/records/edit\":\"c78f87953f7a9e17e94f\",\"views/dns/records/dns-zone-sync\":\"a8364a8ed1554c135886\",\"views/dns/soa-record\":\"92175c0cae1073087bea\",\"views/admin/dns/acl-records\":\"acb0257e46af7de4124a\",\"views/admin/dns/add-acl-record\":\"3f60e0ef8f3eb47368c5\",\"views/admin/dns/external-dns\":\"b5015e2094db66087c5e\",\"views/admin/dns/external-dns-edit\":\"7e990f976c85af12865d\",\"views/smb/dns-zone/records-list\":\"4d83d79db11f07b44600\",\"views/smb/dns-zone/soa-record\":\"8e1d0f4cb3ddd6558775\",\"views/smb/dns-zone/acl-records\":\"e4852affb3f5d160a7d5\",\"views/smb/dns-zone/add-acl-record\":\"4be478504895037e6933\",\"views/smb/dns-zone/external-dns\":\"3f71efce1703c0f833bf\",\"views/smb/dns-zone/external-dns-edit\":\"182f8f77b56596c8dd7a\",\"components/pages/BandwidthLimitingPage\":\"0cf738823af520e940b3\",\"components/pages/HotlinkProtectionPage\":\"449d7ef0789229b8eab6\",\"views/admin/settings-ui/edit-interface-view\":\"621a1de3650923eeac0b\",\"views/admin/settings-ui/list-languages\":\"37e664fd2c1c86a0b6c4\",\"views/admin/database/settings\":\"6005da9beddccdfe0a1a\",\"views/smb/web/web-server-settings\":\"8c5ef333024665d373ec\",\"views/admin/notifications/index\":\"c72a94f24826001dc52e\",\"components/pages/PanelNotificationsSettings\":\"2043ca96325a29345654\",\"components/pages/BrandingPage\":\"5fee949c51026a063360\",\"views/server/db\":\"f3cd0cfed352b0f72fe9\",\"views/admin/websites-diagnostic/index\":\"29d957ece83a807e2d40\",\"components/pages/SystemTimePage\":\"15bc04d9e7314c366de3\",\"views/server/mail\":\"6d2de364a9f0512ceb4d\",\"components/pages/SummaryReportPage\":\"e124aa630185232255dd\",\"components/pages/SummaryReportLayoutsPage\":\"cece571d37d55cec03f8\",\"components/pages/TrafficHistoryReportPage\":\"5d9740fb75293096aa71\",\"components/pages/SummaryReportPage/SummaryReportPrintPage\":\"24f3cf8f4363c688a648\",\"views/license\":\"3f0c7849d591f10180c4\",\"views/license/additional\":\"482cced9882001673e68\",\"components/pages/FirewallGeneralPage\":\"e5bfc12ddb8fd947e02c\",\"components/pages/FirewallIcmpPage\":\"e068e64d5826ec2c80b7\",\"components/pages/FirewallRulesPage\":\"70832eb237532ee5f5e2\",\"components/pages/ServerComponentsPage\":\"1f461484b37e46077541\",\"views/admin/ip-address/list\":\"b5563c1d7d30ad1ddccc\",\"views/admin/ip-address/clients\":\"57800c07cd323e236c91\",\"components/pages/AssignIpAddressToResellerForm\":\"0c467d6bc1377a31febf\",\"views/admin/client/ip-address\":\"4ebd156ad16fdd6ce29f\",\"views/admin/client/ip-address/form\":\"b2377269682ae6821373\",\"components/pages/SummaryReportPage/ClientSummaryReportPage\":\"1171ac6270dc56678115\",\"components/pages/SummaryReportPage/ClientSummaryReportPrintPage\":\"1d5f629b6a840048ffac\",\"components/pages/SummaryReportLayoutsPage/ClientSummaryReportLayoutsPage\":\"b016276e383c6d0113ab\",\"components/pages/ClientTrafficHistoryReportPage\":\"50a3ebb42b4717a79ad0\",\"views/php/extensions\":\"b9254469c85c28622dc8\",\"components/pages/TsSessionPage\":\"8d58d253fc7ed2e41c1b\",\"components/pages/TsSessionsPage\":\"17046c6af31195d16015\",\"components/pages/AspDotNetSettingsPage/AspDotNetServerSettingsPage\":\"427c80420e06af87eef4\",\"components/pages/AspDotNetSettingsPage/AspDotNetDomainSettingsPage\":\"ce4479d6da74025dcd4e\",\"components/pages/ServerAboutPage\":\"ad47a121481512759f26\",\"components/pages/ActionLogPage\":\"e76e98a88c07cb636e68\",\"components/pages/ServerSettingsPage\":\"299b6794a832d4afedf0\",\"components/layouts/page-layout/help-drawer\":\"729f679ef36bfcc6d88b\",\"components/pages/OdbcPage/OdbcServerPage\":\"ea82806d26b588718a1c\",\"components/pages/OdbcAddPage\":\"80d6e9710a0db60517f1\",\"components/pages/OdbcEditPage\":\"c2e6c44c4923996b092e\",\"components/pages/OdbcPage/OdbcDomainPage\":\"ab73dc04886eb52a17a3\",\"components/pages/HostingSettingsPage\":\"49f3f39110762dc401c9\",\"components/pages/ProtectedDirectoryListPage\":\"9a9877dafb7cadd76b57\",\"components/pages/ProtectedDirectoryAddPage\":\"7652feadd7caa4c573b7\",\"components/pages/ProtectedDirectoryEditPage\":\"914d4c01eb92d8044b5d\",\"app/editlist\":\"db54def610303273d10d\",\"app/rating\":\"3487491debd04a09de17\",\"app/aha\":\"d1b13abbf6e91bdd9537\",\"app/eula\":\"8e6788e8977d28e09c78\",\"app/app-image/gallery\":\"76642b87ff6de0a4e266\",\"app/asp-dot-net/conn_strings-dynamic\":\"f70ee1cd9637157a94fe\",\"app/asp-dot-net/custom_errors-dynamic\":\"343e0bb2d2e88ddb777d\",\"app/backup/list\":\"15833b523c4004cebe3d\",\"app/backup/restore\":\"729bd0deea04573d550d\",\"app/backup/upload-files\":\"288c416bc4e1517123ff\",\"app/backup/web-content-dynamic\":\"66ccd03d419dad7214d3\",\"app/database/assign-to-subscription\":\"a34ea70e8b184df7d184\",\"app/dns-helper\":\"905e20313af521aa1a6f\",\"app/dns-helper/dns-settings\":\"84cf6424d9a15b288255\",\"app/email-address/aliases-dynamic\":\"fd479f91032a17a57f9f\",\"app/email-address/form-ajax\":\"ab1c3eda19c596e7805f\",\"app/email-address/postbox\":\"3d4721ecddb2fd9f8db0\",\"app/email-address/responder-attachments-dynamic\":\"f241da4472122be70c78\",\"app/file-manager/explorer\":\"f54c25270e91b81ef4a5\",\"app/file-manager/file-name-popup-form\":\"538e2f5d2d86ae043b7f\",\"app/mail-settings/confirmation-remove-popup-form\":\"375bda058733ec57ac0e\",\"app/hosting-settings/conflicts-checker\":\"20764e8c559254c505b3\",\"app/log-browser/browser\":\"2e97ead91891194532d1\",\"app/log-browser/files\":\"a404aade788e892418a5\",\"app/login/recovery-password\":\"1f8331022e9876ccd90b\",\"app/newsletter-subscription\":\"60967936fb545e7b38c4\",\"app/progress-dialog\":\"a617e205b7a35bffdfea\",\"app/profile/announcement-settings\":\"242686415dc3c381d686\",\"app/pum\":\"e4329139a2c24e1ff799\",\"app/show-output-popup\":\"38611b55b95de4d32933\",\"app/task-progress-bar\":\"42b0212945891991df3e\",\"app/user/login-string\":\"d9740275a404e6c6e797\",\"app/change-customers-owner\":\"c6aa4c72669ea50c19d2\",\"app/convert-customers-to-resellers\":\"1b18f8ed77785bb14b25\",\"app/convert-resellers-to-customers\":\"7f30e076149f758006fd\",\"app/service-sidebar\":\"cb20ab5c325cd687cadc\",\"app/ssl-certificate/list\":\"b2ab49ac09da80210a2f\",\"app/app/progress\":\"bf84126d9a0c0c7d6171\",\"app/app/installed\":\"7483ede7e27847e366ef\",\"app/app/apscatalog\":\"1373e49605d71d0fdf5c\",\"app/web-app-firewall/submit-handler\":\"c81df99d55c9416e068e\",\"views/smb/file-manager/list/UploadProgressDialog\":\"5b6e4a81c11f1663ebe7\"}[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\",\"components.forms.backup.subform\",\"controllers.backup.schedule\"],\"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\"],\"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.home.reseller\",\"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.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\"],\"components/pages/SummaryReportPage\":[\"smb.controllers.report.summary\",\"admin.controllers.home.admin\",\"admin.controllers.server.tools\"],\"components/pages/SummaryReportLayoutsPage\":[\"smb.controllers.report.summary\",\"admin.controllers.home.admin\",\"admin.controllers.server.tools\",\"components.list\"],\"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/SummaryReportPrintPage\":[\"smb.controllers.report.summary\"],\"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\"],\"components/pages/SummaryReportPage/ClientSummaryReportPage\":[\"smb.controllers.report.summary\",\"admin.controllers.home.admin\",\"admin.controllers.navigation.index\"],\"components/pages/SummaryReportPage/ClientSummaryReportPrintPage\":[\"smb.controllers.report.summary\"],\"components/pages/SummaryReportLayoutsPage/ClientSummaryReportLayoutsPage\":[\"smb.controllers.report.summary\",\"admin.controllers.home.admin\",\"components.list\"],\"components/pages/ClientTrafficHistoryReportPage\":[\"smb.controllers.report.summary.traffic-history\",\"admin.controllers.home.admin\",\"smb.controllers.report.summary\",\"components.list\"],\"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\"],\"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\"]};\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","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","protocol","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","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","isCompleteWithWarning","redirectUrl","isComplete","doRedirect","isCompleteSuccessfully","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","fontSize","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","clientSummaryReportLoader","clientId","layoutId","URL","searchParams","btoa","serverSummaryReportLoader","createPageDataLoader","dataPath","generatePath","newData","isClientSideRedirectAllowed","ipAddressDomainRoute","componentLoader","loader","ipAddressId","changeOwnerRoute","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","manageServerLicense","additionalKey","isUnix","manageServerFirewall","manageServerComponents","itemsPerPage","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","Icon","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","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","formId","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/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":""}