{"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/dynamic-popup-hint.js","webpack:///./jsw/password-meter.js","webpack:///./helpers/estimatePassword.js","webpack:///./apolloClient.js","webpack:///./jsw/password-generator.js","webpack:///./helpers/shuffle.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:///./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-active.png","webpack:///./icons/16/plesk/list-type-classic.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:///./jsw/punycode.js","webpack:///./plesk.js","webpack:///./components/App.js","webpack:///./routes/index.js","webpack:///./helpers/dates.js","webpack:///./helpers/routesTransformer.js","webpack:///./queries/License.graphql","webpack:///./components/layouts/AppLayout.js","webpack:///./helpers/getId.js","webpack:///./components/DynamicModule.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/useCollector.js","webpack:///./hooks/useConfirmation.js","webpack:///./hooks/useCreateFormInDrawer.js","webpack:///./components/common/DrawerWithProgress.js","webpack:///./hooks/useNavigate.js","webpack:///./queries/CreateFormInDrawer.graphql","webpack:///./queries/UpdateUserSettings.graphql","webpack:///./hooks/useListOperation.js","webpack:///./hooks/useList.js","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/StatusMessages.js","webpack:///./components/layouts/StatusMessages/LicenseLimitsMessage/LicenseLimitsMessage.js","webpack:///./components/common/Link.js","webpack:///./components/layouts/PageLayout/LicenseStatus.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/lib/notificationIntent.js","webpack:///./components/layouts/PageLayout/PageHeader/NotificationCenter/lib/groupNotifications.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:///./queries/MainMenu.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:///./components/common/GraphQlList/GraphQlList.js","webpack:///./components/common/GraphQlList/GraphQlListContext.js","webpack:///./components/common/GraphQlList/GraphQlListSearchBar.js","webpack:///./components/common/GraphQlList/useGraphQlList.js","webpack:///./components/common/GraphQlList/helpers.js","webpack:///./routes/odbcServerRoute.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/domainOverviewRoutes.js","webpack:///./queries/HostingSettingsPage.graphql","webpack:///./routes/summaryReportRoute.js","webpack:///./queries/SummaryReportLayoutsPage.graphql","webpack:///./queries/SummaryReportLayoutAddPage.graphql","webpack:///./queries/SummaryReportLayoutEditPage.graphql","webpack:///./queries/TrafficHistoryReportPage.graphql","webpack:///./queries/SummaryReportSchedulesPage.graphql","webpack:///./queries/SummaryReportScheduleAddPage.graphql","webpack:///./queries/SummaryReportScheduleEditPage.graphql","webpack:///./queries/SummaryReportPrintPage.graphql","webpack:///./queries/SummaryReportFragment.graphql","webpack:///./queries/SummaryReportPage.graphql","webpack:///./routes/domainRoute.js","webpack:///./helpers/getContextUrl.js","webpack:///./routes/aspDotNetDomainSettingsRoute.js","webpack:///./queries/AspDotNetDomainSettingsPage.graphql","webpack:///./routes/bandwidthLimitingDomainRoute.js","webpack:///./queries/BandwidthLimitingPage.graphql","webpack:///./routes/hotlinkProtectionDomainRoute.js","webpack:///./queries/HotlinkProtectionPage.graphql","webpack:///./routes/odbcDomainRoute.js","webpack:///./queries/OdbcDomainList.graphql","webpack:///./queries/OdbcDomainPage.graphql","webpack:///./queries/DomainSubscriptionOdbcLimitFragment.graphql","webpack:///./routes/protectedDirectoriesRoute.js","webpack:///./routes/protectedDirectoryListRoute.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:///./routes/protectedDirectoryUserListRoute.js","webpack:///./routes/protectedDirectoryUserAddRoute.js","webpack:///./queries/ProtectedDirectoryPath.graphql","webpack:///./routes/protectedDirectoryUserPasswordRoute.js","webpack:///./queries/ProtectedDirectoryUserList.graphql","webpack:///./queries/ProtectedDirectoryUserListFragment.graphql","webpack:///./routes/virtualDirectoryRoute.js","webpack:///./components/sidebars/VirtualDirectorySidebar.js","webpack:///./components/sidebars/SidePanel.js","webpack:///./helpers/buildUrl.js","webpack:///./queries/VirtualDirectoryPage.graphql","webpack:///./queries/CreateVirtualDirectoryPage.graphql","webpack:///./queries/VirtualDirectoryParentContentFragment.graphql","webpack:///./queries/EditVirtualDirectoryPage.graphql","webpack:///./queries/VirtualDirectoryBrowsePage.graphql","webpack:///./queries/VirtualDirectoryProtectionPage.graphql","webpack:///./queries/VirtualDirectoryProtectionUserList.graphql","webpack:///./queries/VirtualDirectoryMimeTypeList.graphql","webpack:///./queries/VirtualDirectoryErrorDocList.graphql","webpack:///./queries/VirtualDirectoryContentList.graphql","webpack:///./queries/VirtualDirectoryPhpPage.graphql","webpack:///./queries/IisManagerMimeContentTypes.graphql","webpack:///./queries/VirtualDirectoryEditMimeTypePage.graphql","webpack:///./queries/VirtualDirectoryEditErrorDocPage.graphql","webpack:///./routes/trafficUsageByDomainRoute.js","webpack:///./queries/TrafficUsageByDomainPage.graphql","webpack:///./queries/DomainTrafficUsage.graphql","webpack:///./queries/DomainPage.graphql","webpack:///./routes/trafficUsageByViewerResellersRoute.js","webpack:///./queries/TrafficUsageIntervals.graphql","webpack:///./queries/TrafficUsageByViewerClientsList.graphql","webpack:///./queries/TotalTrafficUsageByViewerClients.graphql","webpack:///./routes/trafficUsageByResellerRoute.js","webpack:///./queries/TrafficUsageByResellerClientsList.graphql","webpack:///./queries/TotalTrafficUsageByReseller.graphql","webpack:///./routes/trafficUsageByCustomerDomainsRoute.js","webpack:///./routes/trafficUsageByClientDomainsRoute.js","webpack:///./queries/ClientTrafficUsageIntervals.graphql","webpack:///./queries/TrafficUsageByClientDomainsList.graphql","webpack:///./queries/TotalTrafficUsageByClientDomains.graphql","webpack:///./queries/ClientTotalTrafficUsageByDomainsFragment.graphql","webpack:///./routes/trafficUsageByViewerCustomersRoute.js","webpack:///./routes/trafficUsageByViewerDomainsRoute.js","webpack:///./queries/TrafficUsageByViewerDomainsList.graphql","webpack:///./queries/TotalTrafficUsageByViewerDomains.graphql","webpack:///./routes/homeRoute.js","webpack:///./components/pages/HomePage/queries/index.js","webpack:///./components/pages/HomePage/constants.js","webpack:///./queries/AdminHomeServerInfo.graphql","webpack:///./queries/AdminHomeUpdates.graphql","webpack:///./queries/AdminHomeOverusedSubscriptions.graphql","webpack:///./queries/AdminHomeMySubscriptions.graphql","webpack:///./queries/AdminHomeExtensions.graphql","webpack:///./queries/AdminHomeChangeLog.graphql","webpack:///./components/pages/HomePage/TitleAddon.js","webpack:///./components/pages/HomePage/common/isEmptyLayout.js","webpack:///./queries/AdminHomePage.graphql","webpack:///./components/pages/HomePage/queries/Customization.graphql","webpack:///./routes/infoAndStatisticsRoute.js","webpack:///./routes/resourceUsageByDomainRoute.js","webpack:///./queries/DomainsResourceUsage.graphql","webpack:///./queries/InfoAndStatisticsPage.graphql","webpack:///./queries/ServerInformationPage.graphql","webpack:///./queries/ViewerType.graphql","webpack:///./queries/IpAddressDomainsPage.graphql","webpack:///./queries/ChangeSubscriptionsOwner.graphql","webpack:///./queries/VirtualHostTemplatePage.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/EditInterfaceViewPage.graphql","webpack:///./queries/NotificationUiSetting.graphql","webpack:///./queries/BrandingPage.graphql","webpack:///./queries/DatabaseServersPage.graphql","webpack:///./queries/DatabaseServerUpgradePage.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/ServerMailSpamStatistics.graphql","webpack:///./queries/ServerMailSmarthostPage.graphql","webpack:///./queries/PrimaryKeyInfoPage.graphql","webpack:///./queries/MasterKeyProcessingState.graphql","webpack:///./queries/PrimaryKeyUploadPage.graphql","webpack:///./queries/PrimaryKeyRevertPage.graphql","webpack:///./queries/AdditionalKeysPage.graphql","webpack:///./queries/AdditionalKeyUploadPage.graphql","webpack:///./queries/AdditionalKeyInfoPage.graphql","webpack:///./queries/AdditionalKeyRevertPage.graphql","webpack:///./queries/FirewallGeneralPage.graphql","webpack:///./queries/FirewallIcmpPage.graphql","webpack:///./queries/FirewallRulesPage.graphql","webpack:///./queries/ServerComponentsPage.graphql","webpack:///./queries/IpAddressPage.graphql","webpack:///./components/pages/IpAddressResellersPage/IpAddressResellerList.graphql","webpack:///./components/pages/IpAddressResellersPage/AssignIpAddressToResellerForm/UnassignedIpAddressResellers.graphql","webpack:///./queries/ClientIpAddress.graphql","webpack:///./components/pages/ClientIpAddressPage/ClietnIpAddressProperties.graphql","webpack:///./components/pages/ClientIpAddressPage/AssignClientIpAddress/AssignClientIpAddressDrawer.graphql","webpack:///./queries/PhpExtensionsPage.graphql","webpack:///./queries/TsSessionPage.graphql","webpack:///./queries/TsSessionsPage.graphql","webpack:///./queries/AspDotNetServerSettingsPage.graphql","webpack:///./queries/ServerAboutPage.graphql","webpack:///./queries/MassMailPage.graphql","webpack:///./queries/CreateMassMailTemplatePage.graphql","webpack:///./queries/SendMassMailPage.graphql","webpack:///./queries/EditMassMailTemplatePage.graphql","webpack:///./queries/ActionLogPage.graphql","webpack:///./queries/ServerSettingsPage.graphql","webpack:///./queries/SpamFilterSettingsTabs.graphql","webpack:///./queries/ServerMailSpamFilterBlackListPage.graphql","webpack:///./queries/ServerMailSpamFilterWhiteListPage.graphql","webpack:///./components/pages/LoginPage/LoginPage.js","webpack:///./components/Form.js","webpack:///./components/layouts/LoginLayout.js","webpack:///./components/layouts/LayoutBackground.js","webpack:///./components/pages/LoginPage/LoginMobileApplicationPromotion.js","webpack:///./icons/64/plesk/plesk.png","webpack:///./components/pages/LoginPage/SuggestResolvableHostname.js","webpack:///./components/common/LocaleSwitcher/LocaleSwitcher.js","webpack:///./components/pages/GetPasswordPage.js","webpack:///./queries/GetPasswordPage.graphql","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/create fake namespace object","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/sharing","webpack:///webpack/runtime/publicPath","webpack:///webpack/runtime/compat","webpack:///webpack/runtime/jsonp chunk loading","webpack:///webpack/startup"],"sourcesContent":["// Copyright 1999-2025. WebPros 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-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport 'core-js/stable';\r\n\r\n/**\r\n * Workaround for 'delete arrayProto.entries;' from prototype.js\r\n */\r\nif (!Array.prototype.entries) {\r\n    // eslint-disable-next-line no-extend-native\r\n    Array.prototype.entries = function () {\r\n        let index = 0;\r\n        const arr = this;\r\n        return {\r\n            next() {\r\n                if (index < arr.length) {\r\n                    return { value: [index, arr[index++]], done: false };\r\n                }\r\n                return { value: undefined, done: true };\r\n            },\r\n            [Symbol.iterator]() {\r\n                return this;\r\n            },\r\n        };\r\n    };\r\n}\r\n\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-2025. WebPros 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\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\nexport * from './punycode';\r\n","// Copyright 1999-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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     * Register new locale sections\r\n     * @param {Object} [sections]\r\n     * @returns {Object}\r\n     */\r\n    static addSections(sections) {\r\n        Object.entries(sections).forEach(([name, messages]) => {\r\n            this.sections[name] = new Locale(messages);\r\n        });\r\n        Observer.notify({ sections }, 'plesk:addedLocaleSections');\r\n\r\n        return this.sections;\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                this.addSections(sections);\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-2025. WebPros 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-2025. WebPros 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) => {\r\n    let element = getElement(event);\r\n\r\n    if (!selector) {\r\n        return element;\r\n    }\r\n\r\n    while (element) {\r\n        if (element.nodeType === Node.ELEMENT_NODE && element.matches(selector)) {\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                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]);\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: [\r\n                            '[class*=\"commonButton\"]', '[class*=\"btn\"]', '[class*=\"link\"]', '[class*=\"hint\"]',\r\n                            '[class*=\"button\"]', '[class*=\"control\"]', '[class*=\"close\"]',\r\n                        ],\r\n                    },\r\n                    {\r\n                        selector: '[role=\"button\"]',\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-2025. WebPros 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.some(e => error.message.startsWith(e));\r\n};\r\n","// Copyright 1999-2025. WebPros 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-2025. WebPros International GmbH. All rights reserved.\r\n\r\nexport default () => {};\r\n","// Copyright 1999-2025. WebPros 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-2025. WebPros 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 = Fragment, ...props }) => (\r\n    <BaseTranslate component={component} {...props} />\r\n);\r\n\r\nTranslate.propTypes = {\r\n    component: PropTypes.elementType,\r\n};\r\n\r\nexport default Translate;\r\n","// Copyright 1999-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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.forEach(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.forEach(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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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.forEach(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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport prepareUrl from './prepareUrl';\r\nimport addUrlParams from './addUrlParams';\r\nimport render from './render';\r\nimport createElement from './createElement';\r\nimport { createHtmlElement } from 'helpers/createHtmlElement';\r\n/**\r\n * Submit form.\r\n * @param {Element|String} element Form element or form child element or it id.\r\n * @param {Boolean} [noRedirect]\r\n * @member Jsw\r\n */\r\nexport const submit = (element, noRedirect) => {\r\n    const form = (typeof element === 'string' ? document.getElementById(element) : element).closest('form');\r\n    form.noRedirect = noRedirect;\r\n    form.submit();\r\n};\r\n\r\nconst isJavascriptProtocol = url => {\r\n    try {\r\n        return new URL(url).protocol === 'javascript:';\r\n    } catch {\r\n        // seems like a relative url;\r\n        return false;\r\n    }\r\n};\r\n\r\n/**\r\n * Go to url with get method.\r\n * @param {String|Object} action\r\n * @param {Object} [data]\r\n * @param {String} [target]\r\n * @member Jsw\r\n */\r\nexport const redirect = (action, data, target) => {\r\n    let url = action;\r\n    let method = 'get';\r\n    if (Object.prototype.toString.call(action) === '[object Object]') {\r\n        /* eslint-disable prefer-destructuring */\r\n        method = action.method || method;\r\n        data = action.data;\r\n        target = action.target;\r\n        url = action.url;\r\n        /* eslint-enable prefer-destructuring */\r\n    }\r\n    if (isJavascriptProtocol(url)) {\r\n        throw new Error(`The redirect to this url can not be performed: ${url}`);\r\n    }\r\n    url = prepareUrl(url);\r\n    method = method.toLowerCase();\r\n    if ('post' === method || (data && Object.keys(data).length) || target) {\r\n        FormRedirect.redirect(url, method, data, target);\r\n    } else {\r\n        window.location.assign(url);\r\n    }\r\n};\r\n\r\n/**\r\n * Go to url with post method.\r\n * @param {String} action\r\n * @param {Object} [data]\r\n * @param {String} [target]\r\n * @member Jsw\r\n */\r\nexport const redirectPost = (action, data, target) => {\r\n    FormRedirect.redirect(prepareUrl(action), 'post', data, target);\r\n};\r\n\r\n/**\r\n * @class FormRedirect\r\n * @singleton\r\n */\r\nexport const FormRedirect = {\r\n    /**\r\n     * @param {String} action\r\n     * @param {String} method\r\n     * @param {Object} [data]\r\n     * @param {String} [target]\r\n     */\r\n    redirect(action, method, data, target) {\r\n        render(\r\n            document.body,\r\n            createElement(\r\n                'form',\r\n                {\r\n                    method,\r\n                    target,\r\n                    // workaround for http://code.google.com/p/chromium/issues/detail?id=10671\r\n                    action: addUrlParams(action, `_randomId=${Math.floor(1000000 * Math.random())}`),\r\n                    onrender(form) {\r\n                        setTimeout(() => {\r\n                            form.submit();\r\n                        }, 0);\r\n                    },\r\n                },\r\n                data ? FormRedirect.subToElements(data) : null,\r\n                document.getElementById('forgery_protection_token') ? createElement('input', {\r\n                    type: 'hidden',\r\n                    name: 'forgery_protection_token',\r\n                    value: document.getElementById('forgery_protection_token').content,\r\n                }) : null,\r\n            ),\r\n        );\r\n    },\r\n\r\n    /**\r\n     * @param {String} value\r\n     * @param {String} prefix\r\n     * @returns {Element[]}\r\n     */\r\n    stringToElements(value, prefix) {\r\n        return [createHtmlElement('input', {\r\n            type: 'hidden',\r\n            name: prefix,\r\n            value,\r\n        })];\r\n    },\r\n\r\n    /**\r\n     * @param {Boolean} value\r\n     * @param {String} prefix\r\n     * @returns {Element[]}\r\n     */\r\n    booleanToElements(value, prefix) {\r\n        return [createHtmlElement('input', {\r\n            type: 'hidden',\r\n            name: prefix,\r\n            value: value ? 1 : 0,\r\n        })];\r\n    },\r\n\r\n    /**\r\n     * @param {Array} data\r\n     * @param {String} prefix\r\n     * @returns {Element[]}\r\n     */\r\n    arrayToElements(data, prefix) {\r\n        let elements = [];\r\n        data.forEach(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-2025. WebPros 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.forEach(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-2025. WebPros 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        (messages || []).forEach(({ 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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.forEach(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-2025. WebPros 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-2025. WebPros 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, .modal-open .pul-layout__header-inner {padding-inline-end: ${scrollbarWidth}px}`, 0);\r\n    styleEl.sheet.insertRule(`.modal-open .js-scrollbar-spacer {margin-right: ${scrollbarWidth}px}`, 1);\r\n};\r\n","// Copyright 1999-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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().forEach(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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { ModalDialogBox } from './modal-dialog-box';\r\nimport render from './render';\r\nimport ce from './createElement';\r\n\r\nimport './Popup.less';\r\n\r\nclass Popup extends ModalDialogBox {\r\n    _initConfiguration(config) {\r\n        super._initConfiguration(config);\r\n\r\n        this._popupContentAreaId = `${this._id}-popup-content-area`;\r\n        this._titleAreaId = `${this._id}-title-area`;\r\n        this._actionButtonsId = `${this._id}-action-buttons`;\r\n        this._rightActionButtonsAreaId = `${this._id}-right-action-buttons-area`;\r\n\r\n        this._contentHeight = this._getConfigParam('contentHeight', null);\r\n        this._closeButtonEnabled = this._getConfigParam('closeButtonEnabled', false);\r\n        this._cls = this._getConfigParam('popupCls', 'popup-panel');\r\n        this._titleCls = this._getConfigParam('titleCls', '');\r\n        this._buttons = this._getConfigParam('buttons', []);\r\n    }\r\n\r\n    _initComponentElement() {\r\n        super._initComponentElement();\r\n\r\n        const title = this._getConfigParam('title', '');\r\n\r\n        this._updateComponentElement(\r\n            ce('.popup-wrapper',\r\n                ce('.popup-container',\r\n                    ce('.popup-heading',\r\n                        ce('.popup-heading-area',\r\n                            this._closeButtonEnabled ? ce('span.close', {\r\n                                id: `${this._id}-close`,\r\n                                onrender: el => {\r\n                                    el.addEventListener('click', event => {\r\n                                        this._onCloseClick(event);\r\n                                    });\r\n                                },\r\n                            }) : null,\r\n                            ce(`h2.${this._titleCls}`,\r\n                                ce('span', { id: this._titleAreaId, title }, title),\r\n                            ),\r\n                        ),\r\n                    ),\r\n                    ce('.popup-content',\r\n                        ce('.popup-content-area', {\r\n                            id: this._popupContentAreaId,\r\n                            style: this._contentHeight ? `height:${this._contentHeight}px;` : null,\r\n                        }, this._getContentArea()),\r\n                    ),\r\n                ),\r\n            ),\r\n        );\r\n    }\r\n\r\n    _getContentArea() {\r\n        let buttonsArea = '';\r\n        if (this._buttons.length > 0) {\r\n            buttonsArea = this._getButtonsArea();\r\n        }\r\n        const formId = `${this.getId()}-form`;\r\n        const content = this._getConfigParam('content', '');\r\n\r\n        if (typeof content === 'object') {\r\n            return ce('form', { id: formId }, content, buttonsArea);\r\n        }\r\n\r\n        return `<form id=\"${formId}\">${content}${buttonsArea}</form>`;\r\n    }\r\n\r\n    _getButtonsArea() {\r\n        return (\r\n            `<div class=\"btns-box\" id=\"${this._actionButtonsId}\">` +\r\n                '<div class=\"box-area\">' +\r\n                    '<div class=\"form-row\">' +\r\n                        '<div class=\"single-row\">' +\r\n                            `<div class=\"field-value\" id=\"${this._rightActionButtonsAreaId}\"> </div>` +\r\n                        '</div>' +\r\n                    '</div>' +\r\n                '</div>' +\r\n            '</div>'\r\n        );\r\n    }\r\n\r\n    _addEvents() {\r\n        super._addEvents();\r\n\r\n        this._buttons.forEach(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-2025. WebPros 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', []);\r\n        this._onChange = this._getConfigParam('onChange', () => {});\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.forEach((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.forEach((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.forEach((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        this._onChange(elements);\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.forEach(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.forEach((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.some(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 = data.list;\r\n        } else if (data.status) {\r\n            clearStatusMessages();\r\n            (data.statusMessages || []).forEach(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 = [];\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-2025. WebPros 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.forEach(({ 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.forEach((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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { ApolloClient, ApolloLink, InMemoryCache, defaultDataIdFromObject, from, Observable } from '@apollo/client';\r\nimport { BatchHttpLink } from '@apollo/client/link/batch-http';\r\nimport { onError } from '@apollo/client/link/error';\r\nimport { createUploadLink } from 'apollo-upload-client';\r\nimport { SentryLink } from 'apollo-link-sentry';\r\nimport { extractFiles } from 'extract-files';\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        return new Observable(() => {});\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 fetchParams = {\r\n    uri: '/cp/graphql',\r\n    headers,\r\n};\r\nconst terminatingLink = ApolloLink.split(\r\n    operation => operation.getContext().noBatch || extractFiles(operation).files.size > 0,\r\n    createUploadLink(fetchParams),\r\n    new BatchHttpLink({\r\n        ...fetchParams,\r\n        batchMax: 10,\r\n        batchInterval: 10,\r\n    }),\r\n);\r\n\r\nconst apolloClient = new ApolloClient({\r\n    link: from([errorLink, sentryLink, terminatingLink]),\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                    webScriptingSettings: {\r\n                        merge: true,\r\n                    },\r\n                    subscription: {\r\n                        merge: true,\r\n                    },\r\n                },\r\n            },\r\n            Subscription: {\r\n                fields: {\r\n                    permissions: { merge: true },\r\n                },\r\n            },\r\n            ExtensionTab: {\r\n                keyFields: false,\r\n            },\r\n            SiteButton: {\r\n                keyFields: false,\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            Os: {\r\n                merge: true,\r\n            },\r\n            Mode: {\r\n                merge: true,\r\n            },\r\n            Home: {\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                fields: {\r\n                    spamAssassin: {\r\n                        merge: true,\r\n                    },\r\n                },\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                    node: {\r\n                        read(_, { args: { id }, toReference }) {\r\n                            const __typename = atob(id).split(':')[0];\r\n                            return toReference({ id, __typename });\r\n                        },\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                    settings: {\r\n                        merge: true,\r\n                    },\r\n                    information: {\r\n                        merge: true,\r\n                    },\r\n                    productVersion: {\r\n                        merge: true,\r\n                    },\r\n                    productUpdates: {\r\n                        merge: true,\r\n                    },\r\n                    pum: {\r\n                        merge: true,\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            VirtualDirectory: {\r\n                keyFields: ['key'],\r\n                fields: {\r\n                    errorDoc: {\r\n                        read: (_, { args: { code }, toReference }) => toReference({\r\n                            code,\r\n                            __typename: 'VirtualDirectoryErrorDoc',\r\n                        }),\r\n                    },\r\n                },\r\n            },\r\n            VirtualDirectoryErrorDoc: {\r\n                keyFields: ['code'],\r\n            },\r\n            SystemMessage: {\r\n                keyFields: ['key'],\r\n            },\r\n            ClientStatistics: {\r\n                merge: true,\r\n            },\r\n            DomainStatistics: {\r\n                merge: true,\r\n            },\r\n            MailAccountConfiguration: {\r\n                merge: true,\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-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { shuffle } from 'helpers/shuffle';\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        const shuffledRequiredClasses = shuffle(requiredClasses);\r\n\r\n        shuffledRequiredClasses.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 randomValue = crypto.getRandomValues(new Uint32Array(1))[0];\r\n        const index = randomValue % symbolClasses[symbolClass].length;\r\n        return symbolClasses[symbolClass][index];\r\n    }\r\n}\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\n/**\r\n * Shuffle an array with the Fisher-Yates shuffle algorithm\r\n */\r\nexport const shuffle = function (array) {\r\n    const shuffledArray = [...array];\r\n\r\n    let remaining = array.length;\r\n\r\n    while (remaining) {\r\n        const currentIndex = remaining - 1;\r\n        const randomIndex = crypto.getRandomValues(new Uint32Array(1))[0] % remaining;\r\n\r\n        [\r\n            shuffledArray[currentIndex],\r\n            shuffledArray[randomIndex],\r\n        ] = [\r\n            shuffledArray[randomIndex],\r\n            shuffledArray[currentIndex],\r\n        ];\r\n\r\n        remaining--;\r\n    }\r\n\r\n    return shuffledArray;\r\n};\r\n","// Copyright 1999-2025. WebPros 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-2025. WebPros 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())} ${this._moduleInstalled ? `<a href=\"/modules/configurations-troubleshooter/\">${this.lmsg('moduleLink')}</a>` : ''}`,\r\n            link: `<a id=\"webserver-configuration-failure-rebuild-failed\">${this.lmsg('link')}</a>`,\r\n            linkAll: `<a id=\"webserver-configuration-failure-rebuild-all\">${this.lmsg('linkAll')}</a>`,\r\n            howToFix: this._kbArticle ? ` ${this.lmsg('knownIssue', {\r\n                kbArticle: `<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-2025. WebPros 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.forEach(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-2025. WebPros 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.forEach(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-2025. WebPros 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-2025. WebPros 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        /** @deprecated use renderDisabledSelectHint instead */\r\n        this._disabledSelectHint = this._getConfigParam('disabledSelectHint', '');\r\n        this._renderDisabledSelectHint = this._getConfigParam('renderDisabledSelectHint', null);\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().forEach(function (id) {\r\n            ids.push(id);\r\n        });\r\n\r\n        this._data.forEach(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    _renderDisabledCheckboxesHints() {\r\n        if (!this._renderDisabledSelectHint) {\r\n            return;\r\n        }\r\n\r\n        this._data.forEach(item => {\r\n            const hint = this._renderDisabledSelectHint(item);\r\n\r\n            if (!hint) {\r\n                return;\r\n            }\r\n\r\n            const row = document.getElementById(this._tableId).querySelector(`[data-row-id=\"${item.id}\"]`);\r\n            const checkbox = row.querySelector('input[type=\"checkbox\"][disabled]');\r\n\r\n            if (!checkbox) {\r\n                return;\r\n            }\r\n\r\n            new Tooltip.Instance(checkbox.previousSibling, { text: hint });\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        this._renderDisabledCheckboxesHints();\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            data.statusMessages.forEach(({ 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-2025. WebPros 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-2025. WebPros International GmbH. All rights reserved.\r\n\r\nexport default () => document.documentElement.dir === 'rtl';\r\n","// Copyright 1999-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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.forEach(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-2025. WebPros 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-2025. WebPros 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._viewerId = this._getConfigParam('viewerId');\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    failPreparingItem(id, message) {\r\n        const item = this._items.find(item => item.getId() === id);\r\n        if (!item) {\r\n            return;\r\n        }\r\n\r\n        item.setStatus(STATUS_ERROR);\r\n        item.setErrors([message]);\r\n        this._renderItems();\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.onUpdated(this.completeItem(data));\r\n        this.removeItemsByIds([data.id]);\r\n    }\r\n\r\n    removeItemsByIds(ids) {\r\n        if (!ids.length) {\r\n            return;\r\n        }\r\n        const items = this.getItems();\r\n        for (let i = 0; i < ids.length; i++) {\r\n            for (let j = 0; j < items.length; j++) {\r\n                if (items[j].getId() === ids[i]) {\r\n                    items.splice(j, 1);\r\n                    break;\r\n                }\r\n            }\r\n        }\r\n        this.setItems(items);\r\n    }\r\n\r\n    onItemStatusChange(newItemData) {\r\n        this.onItemStepChange(newItemData);\r\n        Observer.notify(newItemData, 'plesk:taskUpdate');\r\n        if (this.isCompletedItem(newItemData)) {\r\n            Observer.notify(newItemData, 'plesk:taskComplete');\r\n        }\r\n    }\r\n\r\n    onItemStepChange(newItemData) {\r\n        Observer.notify(newItemData, 'plesk:taskStepUpdate');\r\n    }\r\n\r\n    setItems(items) {\r\n        this._initItems(items);\r\n        this._renderItems();\r\n        this._updateProgressDialog();\r\n    }\r\n\r\n    fly(beginOffset, taskName, action) {\r\n        const progressBarItemId = this.addPreparingItem(taskName);\r\n        this._renderItems();\r\n        // wait toast animation\r\n        setTimeout(action, 300);\r\n        return progressBarItemId;\r\n    }\r\n\r\n    progressDialog(task, { onHide, ...params } = {}) {\r\n        const returnUrl = task && task.returnUrl;\r\n        this._progressBarItem = task instanceof ProgressBar.Item ? task : createComponent(task);\r\n        this.isOpenProgressDialog = true;\r\n\r\n        if (!this._progressDialog) {\r\n            this._progressDialog = document.createElement('div');\r\n        }\r\n\r\n        this.renderProgressDialog = () => {\r\n            Plesk.require('app/progress-dialog', run => {\r\n                if (!this._progressBarItem || !this._progressDialog) {\r\n                    return;\r\n                }\r\n\r\n                run({\r\n                    container: this._progressDialog,\r\n                    isOpen: this.isOpenProgressDialog,\r\n                    title: this._progressBarItem.getProgressTitle(),\r\n                    steps: this._progressBarItem.getSteps(),\r\n                    errors: this._progressBarItem.getVisibleErrors(),\r\n                    onHide: () => {\r\n                        this.isOpenProgressDialog = false;\r\n                        this.renderProgressDialog();\r\n\r\n                        if (onHide) {\r\n                            onHide(this._progressBarItem);\r\n                            return;\r\n                        }\r\n\r\n                        const redirectUrl = this._progressBarItem.isComplete()\r\n                            ? this._progressBarItem._getConfigParam('redirect') || returnUrl\r\n                            : returnUrl;\r\n                        const doRedirect = () => {\r\n                            if (redirectUrl) {\r\n                                redirect(redirectUrl);\r\n                            } else {\r\n                                this.show();\r\n                            }\r\n                        };\r\n\r\n                        if (this._progressBarItem.isCompleteSuccessfully() || this._progressBarItem.isCompleteWithWarning()) {\r\n                            this._progressBarItem.remove().then(() => {\r\n                                doRedirect();\r\n                                this._progressBarItem = null;\r\n                            });\r\n                        } else {\r\n                            doRedirect();\r\n                        }\r\n                    },\r\n                    locale: Locale.getSection('components.tasks.common').messages,\r\n                    ...params,\r\n                });\r\n            });\r\n        };\r\n\r\n        this.renderProgressDialog();\r\n        this.update();\r\n        this.hide();\r\n    }\r\n\r\n    hide() {\r\n        this._hidden = true;\r\n        this._renderItems();\r\n    }\r\n\r\n    show() {\r\n        this._hidden = false;\r\n        this._renderItems();\r\n    }\r\n\r\n    _updateProgressDialog() {\r\n        if (!this._progressBarItem) {\r\n            return;\r\n        }\r\n\r\n        const newItem = this.getItem(this._progressBarItem.getId());\r\n        if (newItem) {\r\n            this._progressBarItem = newItem;\r\n        } else if (this._progressBarItem.getSteps().length) {\r\n            // task was removed, show it as finished\r\n            const finishedItem = createComponent(this.completeItem({\r\n                ...this._progressBarItem.initialConfig,\r\n                steps: this._progressBarItem.getSteps().map(step => this.completeItem(step)),\r\n            }));\r\n            finishedItem.setProgressBarElement(this._progressBarItem.getProgressBarElement());\r\n            this._progressBarItem = finishedItem;\r\n        }\r\n        this.renderProgressDialog();\r\n    }\r\n\r\n    _renderItems() {\r\n        super._renderItems();\r\n\r\n        if (this._items.length) {\r\n            this.setPeriodicalExecutor();\r\n        }\r\n\r\n        if (!this._loaded) {\r\n            return;\r\n        }\r\n\r\n        Plesk.require('app/task-progress-bar', run => {\r\n            run({\r\n                viewerId: this._viewerId,\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                onGroupClose: this.handleGroupClose.bind(this),\r\n            });\r\n        });\r\n    }\r\n\r\n    async handleGroupClose(keys) {\r\n        const items = this._items.filter(item => keys.includes(item.getKey()));\r\n        const ids = items.map(item => item.getId());\r\n\r\n        try {\r\n            await api.post(prepareUrl('/task/task-remove'), { ids });\r\n            this.removeItemsByIds(ids);\r\n        } catch ({ message }) {\r\n            addToast({ intent: 'danger', message });\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    setErrors(errors) {\r\n        this._errors = 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-2025. WebPros 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-2025. WebPros 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].forEach(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.forEach(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.forEach(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-2025. WebPros 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-2025. WebPros 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\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\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')),\r\n            this.itemsView(),\r\n            this.bottomBarView(this._getConfigParam('countMoreItems', 0)),\r\n        );\r\n    }\r\n\r\n    toolbarView(toolbar) {\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.allowListSwitch && toolbar.hasClassicView) ?\r\n                                                                            ce('.settings-item.settings-item-2',\r\n                                                                                ce('h3.settings-item-title',\r\n                                                                                    ce('span', `${this.lmsg('modeTitle')}:`),\r\n                                                                                ),\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                                                                    ),\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.forEach(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","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-active.png?2bd72c88d60436bb8acc8328ed7f9ed3\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/list-type-classic.png?3eb8621bc8257a9b5f9995433f509a57\";","// Copyright 1999-2025. WebPros 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-2025. WebPros International GmbH. All rights reserved.\r\n\r\nexport const FTYPE_DIR = 'dir';\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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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            (response.statusMessages || []).forEach(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-2025. WebPros 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.forEach(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.forEach(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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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.forEach(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        name: 'RADIO_SELECT',\r\n        expects: [{\r\n            click: {\r\n                elements: [{\r\n                    selector: 'input[type=\"radio\"]',\r\n                    attributes: ['name', 'value'],\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-2025. WebPros 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-2025. WebPros 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-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport punycode from 'punycode';\r\n\r\nconst toPunycode = domain => punycode.toASCII(domain);\r\n\r\nexport { toPunycode };\r\n","// Copyright 1999-2025. WebPros 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    Locale.addSections(localeSections);\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-2025. WebPros 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-2025. WebPros 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, Locale } from 'jsw';\r\nimport { addToast } from 'helpers/toasts';\r\nimport { isNetworkError } from 'helpers/isNetworkError';\r\nimport pageData from '../helpers/pageData';\r\nimport { getEndOfDay, toPhpDate, getStartOfDay } from 'helpers/dates';\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 { readGraphQlListInputFromStorage } from '../components/common/GraphQlList';\r\nimport { odbcServerRoute } from 'routes/odbcServerRoute';\r\nimport domainOverviewRoutes from 'routes/domainOverviewRoutes';\r\nimport { summaryReportRoute, summaryReportChildrenRoute } from 'routes/summaryReportRoute';\r\nimport { domainRoute } from 'routes/domainRoute';\r\nimport { trafficUsageByViewerResellersRoute, trafficUsageByViewerResellersChildrenRoute } from 'routes/trafficUsageByViewerResellersRoute';\r\nimport { trafficUsageByViewerCustomersRoute, trafficUsageByViewerCustomersChildrenRoute } from 'routes/trafficUsageByViewerCustomersRoute';\r\nimport { trafficUsageByViewerDomainsRoute, trafficUsageByViewerDomainsChildrenRoute } from 'routes/trafficUsageByViewerDomainsRoute';\r\nimport { homeRoute } from 'routes/homeRoute';\r\nimport { trafficUsageByDomainRoute } from 'routes/trafficUsageByDomainRoute';\r\nimport { infoAndStatisticsRoute } from './infoAndStatisticsRoute';\r\nimport { resourceUsageByDomainRoute } from './resourceUsageByDomainRoute';\r\n\r\nconst initialDataLoader = () => {\r\n    const { isInitial, ...data } = pageData();\r\n    pageData(data);\r\n\r\n    return isInitial ? data : null;\r\n};\r\n\r\nconst createPageDataLoader = dataPath => async ({ request, params }) => {\r\n    const url = new URL(request.url);\r\n    if (dataPath) {\r\n        url.pathname = generatePath(dataPath, params);\r\n    }\r\n\r\n    let result;\r\n    try {\r\n        result = initialDataLoader() ?? await api.get(url.toString());\r\n    } catch (error) {\r\n        if (isNetworkError(error)) {\r\n            addToast({\r\n                intent: 'danger',\r\n                message: `${error.message}: ${url.toString()}`,\r\n            });\r\n            return new Promise(emptyFn);\r\n        }\r\n        throw error;\r\n    }\r\n    const { graphqlQueries = [], ...newData } = result;\r\n\r\n    if (newData.redirect) {\r\n        const url = prepareUrl(newData.redirect);\r\n        if (isClientSideRedirectAllowed(url)) {\r\n            return redirect(url);\r\n        }\r\n\r\n        window.location.replace(url);\r\n        return new Promise(emptyFn);\r\n    }\r\n\r\n    graphqlQueries.forEach(({ query, ...options }) => {\r\n        try {\r\n            apolloClient.writeQuery({\r\n                query: gql(query),\r\n                ...options,\r\n            });\r\n        } catch { }\r\n    });\r\n\r\n    pageData(newData);\r\n\r\n    return newData;\r\n};\r\n\r\nconst ipAddressDomainRoute = {\r\n    path: ':ipAddressId/domains',\r\n    componentLoader: () => import(/* webpackChunkName: \"components/pages/IpAddressDomainsPage\" */'components/pages/IpAddressDomainsPage'),\r\n    loader: async ({ params }) => {\r\n        const clientId = params.clientId ? btoa(`Client:${params.clientId}`) : null;\r\n        const { data } = await apolloClient.query({\r\n            query: require('queries/IpAddressDomainsPage.graphql'),\r\n            variables: { ipAddressId: params.ipAddressId, clientId },\r\n        });\r\n        return data;\r\n    },\r\n};\r\n\r\nconst changeOwnerRoute = {\r\n    path: 'change-owner',\r\n    componentLoader: () => import(/* webpackChunkName: \"components/pages/ChangeSubscriptionsOwnerPage\" */'components/pages/ChangeSubscriptionsOwnerPage'),\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/ChangeSubscriptionsOwner.graphql'),\r\n            variables: { ids },\r\n        });\r\n\r\n        return data;\r\n    },\r\n};\r\n\r\nconst virtualHostTemplateRoute = {\r\n    path: 'virtual-host-template',\r\n    loader: () => pageData(),\r\n    handle: {\r\n        crumb: () => ({\r\n            title: Locale.getSection('components.routes').lmsg('virtualHostTemplate'),\r\n        }),\r\n        helpContext: 'skeleton',\r\n    },\r\n    children: [\r\n        {\r\n            index: true,\r\n            componentLoader: () => import(/* webpackChunkName: \"components/pages/VirtualHostTemplatePage\" */'components/pages/VirtualHostTemplatePage'),\r\n            loader: async () => {\r\n                await apolloClient.query({\r\n                    query: require('queries/VirtualHostTemplatePage.graphql'),\r\n                    variables: {\r\n                        path: '',\r\n                    },\r\n                });\r\n            },\r\n        },\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            handle: { isAllowedWithoutLicense: true },\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            handle: { isAllowedWithoutLicense: true },\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            handle: { isAllowedWithoutLicense: true },\r\n            componentLoader: () => import(/* webpackMode: \"eager\" */'components/pages/RestorePasswordPage'),\r\n        },\r\n        {\r\n            path: '/configure-mail-client.php',\r\n            componentLoader: () => import('components/pages/ConfigureMailClientPage'),\r\n            loader: initialDataLoader,\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            handle: { isAllowedWithoutLicense: true },\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            handle: { isAllowedWithoutLicense: true },\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            children: domainOverviewRoutes.map(({ path, ...params }) => ({\r\n                path: `:id/${path}`,\r\n                ...params,\r\n            })),\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/overview\" */'views/smb/web/overview'),\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/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            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            children: [\r\n                {\r\n                    path: ':id/upgrade',\r\n                    componentLoader: () => import(/* webpackChunkName: \"views/server/db\"*/'components/pages/DatabaseServerUpgradePage'),\r\n                    loader: ({ params: { id } }) => apolloClient.query({\r\n                        query: require('queries/DatabaseServerUpgradePage.graphql'),\r\n                        variables: { id: btoa(`DatabaseServer:${id}`) },\r\n                    }).then(({ data }) => data).catch(({ graphQLErrors }) => {\r\n                        graphQLErrors.forEach(({ message, debugMessage }) => {\r\n                            addToast({\r\n                                intent: 'danger',\r\n                                message: debugMessage || message,\r\n                            });\r\n                        });\r\n\r\n                        return redirect('/cp/server/db');\r\n                    }),\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        },\r\n        {\r\n            path: '/cp/server/db/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: '/cp/server/db/: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            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                                            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.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                    path: 'statistics',\r\n                    componentLoader: () => import(/* webpackChunkName: \"views/server/mail\" */'components/pages/ServerMailStatisticsPage'),\r\n                    loader: async () => {\r\n                        await Promise.all([\r\n                            apolloClient.query({\r\n                                query: require('queries/ServerMailSpamStatistics.graphql'),\r\n                                variables: {\r\n                                    from: toPhpDate(getStartOfDay(Date.now())),\r\n                                    to: toPhpDate(getEndOfDay(Date.now())),\r\n                                    pagination: { page: 0, itemsPerPage: 25 },\r\n                                    orderBy: { email: 'DESC' },\r\n                                },\r\n                            }),\r\n                            apolloClient.query({\r\n                                query: require('queries/ServerMailTabs.graphql'),\r\n                            }),\r\n                        ]);\r\n                    },\r\n                    handle: {\r\n                        crumb: () => ({\r\n                            title: Locale.getSection('components.routes').lmsg('mailStatistics'),\r\n                            href: '/admin/server/tools',\r\n                        }),\r\n                    },\r\n                },\r\n                {\r\n                    path: 'smarthost',\r\n                    componentLoader: () => import(/* webpackChunkName: \"views/server/mail\" */'components/pages/ServerMailSmarthostPage'),\r\n                    loader: async () => {\r\n                        await apolloClient.query({\r\n                            query: require('queries/ServerMailSmarthostPage.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: { capability: { mailServer } } } = await apolloClient.query({\r\n                            query: gql`\r\n                        query {\r\n                            capability {\r\n                                mailServer {\r\n                                    isSmarthostAvailable\r\n                                }\r\n                            }\r\n                        }\r\n                    `,\r\n                        });\r\n\r\n                        return mailServer.isSmarthostAvailable;\r\n                    },\r\n                },\r\n            ],\r\n        },\r\n        {\r\n            path: '/cp/license',\r\n            handle: { isAllowedWithoutLicense: true },\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/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        {\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',\r\n            handle: {\r\n                crumb: ({ data }) => data.pageSidebar.isPowerUserPanel ? null : {\r\n                    title: Locale.getSection('components.routes').lmsg('home'),\r\n                    href: '/admin/home',\r\n                },\r\n            },\r\n            element: <CpPagesLayout />,\r\n            loader: () => pageData(),\r\n            children: [\r\n                {\r\n                    path: 'reseller-tools',\r\n                    isExist: async () => {\r\n                        const { data: { viewer } } = await apolloClient.query({\r\n                            query: require('queries/ViewerType.graphql'),\r\n                        });\r\n\r\n                        return viewer.type === 'RESELLER';\r\n                    },\r\n                    handle: {\r\n                        crumb: () => ({\r\n                            title: Locale.getSection('components.routes').lmsg('resellerTools'),\r\n                        }),\r\n                    },\r\n                    children: [\r\n                        infoAndStatisticsRoute,\r\n                        summaryReportRoute(),\r\n                        summaryReportChildrenRoute,\r\n                        virtualHostTemplateRoute,\r\n                        trafficUsageByViewerCustomersRoute({\r\n                            helpContext: 'reseller.client.traffic',\r\n                        }),\r\n                        trafficUsageByViewerCustomersChildrenRoute(),\r\n                        trafficUsageByViewerDomainsRoute(),\r\n                        trafficUsageByViewerDomainsChildrenRoute(),\r\n                        resourceUsageByDomainRoute(),\r\n                        {\r\n                            index: true,\r\n                            loader: () => new Promise(() => {\r\n                                // empty promise to avoid to show an empty page before reload\r\n                                window.location = '/admin/reseller/tools';\r\n                            }),\r\n                        },\r\n                    ],\r\n                },\r\n                {\r\n                    path: 'server',\r\n                    handle: {\r\n                        crumb: () => ({\r\n                            title: Locale.getSection('components.routes').lmsg('tools'),\r\n                        }),\r\n                    },\r\n                    isExist: async () => {\r\n                        const { data: { viewer } } = await apolloClient.query({\r\n                            query: require('queries/ViewerType.graphql'),\r\n                        });\r\n\r\n                        return viewer.type === 'ADMIN';\r\n                    },\r\n                    children: [\r\n                        infoAndStatisticsRoute,\r\n                        summaryReportRoute(),\r\n                        summaryReportChildrenRoute,\r\n                        virtualHostTemplateRoute,\r\n                        trafficUsageByViewerResellersRoute(),\r\n                        trafficUsageByViewerResellersChildrenRoute(),\r\n                        trafficUsageByViewerCustomersRoute({\r\n                            helpContext: 'client.traffic',\r\n                        }),\r\n                        trafficUsageByViewerCustomersChildrenRoute(),\r\n                        trafficUsageByViewerDomainsRoute(),\r\n                        trafficUsageByViewerDomainsChildrenRoute(),\r\n                        resourceUsageByDomainRoute(),\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                            handle: {\r\n                                crumb: () => ({\r\n                                    title: Locale.getSection('components.routes').lmsg('serverAbout'),\r\n                                }),\r\n                                helpContext: 'about.index',\r\n                            },\r\n                        },\r\n                        {\r\n                            path: 'mass-mail',\r\n                            loader: () => pageData(),\r\n                            handle: {\r\n                                crumb: () => ({\r\n                                    title: Locale.getSection('components.routes').lmsg('massMail'),\r\n                                }),\r\n                                helpContext: 'mass-mail',\r\n                            },\r\n                            children: [\r\n                                {\r\n                                    index: true,\r\n                                    componentLoader: () => import(/* webpackChunkName: \"components/pages/MassMailPage\" */'components/pages/MassMailPage'),\r\n                                    loader: async () => {\r\n                                        await apolloClient.query({\r\n                                            query: require('queries/MassMailPage.graphql'),\r\n                                            variables: {\r\n                                                input: readGraphQlListInputFromStorage({ key: 'MassMailPage' }),\r\n                                            },\r\n                                        });\r\n                                    },\r\n                                },\r\n                                {\r\n                                    path: 'create',\r\n                                    componentLoader: () => import(\r\n                                        /* webpackChunkName: \"components/pages/CreateMassMailTemplatePage\" */'components/pages/CreateMassMailTemplatePage'\r\n                                    ),\r\n                                    handle: {\r\n                                        crumb: () => ({\r\n                                            title: Locale.getSection('components.routes').lmsg('createMassMailTemplate'),\r\n                                        }),\r\n                                    },\r\n                                    loader: async () => {\r\n                                        await apolloClient.query({\r\n                                            query: require('queries/CreateMassMailTemplatePage.graphql'),\r\n                                        });\r\n                                    },\r\n                                },\r\n                                {\r\n                                    path: 'send',\r\n                                    componentLoader: () => import(\r\n                                        /* webpackChunkName: \"components/pages/SendMassMailPage\" */'components/pages/SendMassMailPage'\r\n                                    ),\r\n                                    handle: {\r\n                                        crumb: () => ({\r\n                                            title: Locale.getSection('components.routes').lmsg('sendMassMail'),\r\n                                        }),\r\n                                    },\r\n                                    loader: async () => {\r\n                                        await apolloClient.query({\r\n                                            query: require('queries/SendMassMailPage.graphql'),\r\n                                        });\r\n                                    },\r\n                                },\r\n                                {\r\n                                    path: ':templateId/edit',\r\n                                    componentLoader: () => import(\r\n                                        /* webpackChunkName: \"components/pages/EditMassMailTemplatePage\" */'components/pages/EditMassMailTemplatePage'\r\n                                    ),\r\n                                    handle: {\r\n                                        crumb: () => ({\r\n                                            title: Locale.getSection('components.routes').lmsg('editMassMailTemplate'),\r\n                                        }),\r\n                                    },\r\n                                    loader: async ({ params: { templateId } }) => {\r\n                                        await apolloClient.query({\r\n                                            query: require('queries/EditMassMailTemplatePage.graphql'),\r\n                                            variables: {\r\n                                                numericId: Number(templateId),\r\n                                                id: btoa(`MassEmailTemplate:${templateId}`),\r\n                                            },\r\n                                        });\r\n                                    },\r\n                                },\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                            handle: {\r\n                                crumb: () => ({\r\n                                    title: Locale.getSection('components.routes').lmsg('actionLogSettings'),\r\n                                }),\r\n                                helpContext: 'actionlog',\r\n                            },\r\n                        },\r\n                        {\r\n                            path: 'information',\r\n                            componentLoader: () => import(/* webpackChunkName: \"components/pages/ServerInformationPage\" */'components/pages/ServerInformationPage'),\r\n                            loader: async () => {\r\n                                const { data: { server: { information } } } = await apolloClient.query({\r\n                                    query: require('queries/ServerInformationPage.graphql'),\r\n                                });\r\n\r\n                                if (!information) {\r\n                                    throw new Response('Not Found', { status: 404 });\r\n                                }\r\n                            },\r\n                            handle: {\r\n                                crumb: () => ({\r\n                                    title: Locale.getSection('components.routes').lmsg('serverInformation'),\r\n                                }),\r\n                                helpContext: 'server.statistics',\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                            handle: {\r\n                                crumb: () => ({\r\n                                    title: Locale.getSection('components.routes').lmsg('serverSettings'),\r\n                                }),\r\n                                helpContext: 'preferences',\r\n                            },\r\n                        },\r\n                        {\r\n                            path: 'spam-filter',\r\n                            componentLoader: () => import(/* webpackChunkName: \"components/tabs/SpamFilterSettingsTabs\" */'components/tabs/SpamFilterSettingsTabs'),\r\n                            loader: async () => {\r\n                                await apolloClient.query({\r\n                                    query: require('queries/SpamFilterSettingsTabs.graphql'),\r\n                                });\r\n                            },\r\n                            isExist: async () => {\r\n                                const { data: { os: { isUnix } } } = await apolloClient.query({\r\n                                    query: gql`\r\n                                        query {\r\n                                            os {\r\n                                                isUnix\r\n                                            }\r\n                                        }\r\n                                    `,\r\n                                });\r\n\r\n                                return isUnix;\r\n                            },\r\n                            handle: {\r\n                                crumb: () => ({\r\n                                    title: Locale.getSection('components.routes').lmsg('serverSpamFilterSettings'),\r\n                                }),\r\n                                helpContext: 'spamassassin',\r\n                            },\r\n                            children: [\r\n                                {\r\n                                    index: true,\r\n                                    loader: async () => {\r\n                                        const { data: { viewer: { permissions: { manageServerSpamFilter, manageServerMailBlackWhiteLists } } } } = 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                                                            manageServerMailBlackWhiteLists\r\n                                                        }\r\n                                                    }\r\n                                                }\r\n                                            `,\r\n                                        });\r\n\r\n                                        if (manageServerSpamFilter) {\r\n                                            return redirect('settings');\r\n                                        }\r\n                                        if (manageServerMailBlackWhiteLists) {\r\n                                            return redirect('black-list');\r\n                                        }\r\n                                        throw new Response('Not Found', { status: 404 });\r\n                                    },\r\n                                },\r\n                                {\r\n                                    path: 'settings',\r\n                                    componentLoader: () => import(/* webpackChunkName: \"components/pages/SpamFilterSettingsPage\" */'components/pages/SpamFilterSettingsPage'),\r\n                                    loader: async () => {\r\n                                        const { data: { serverMail: { spamAssassin: { settings } } } } = await apolloClient.query({\r\n                                            query: require('queries/ServerMailSpamFilterPage.graphql'),\r\n                                        });\r\n\r\n                                        if (!settings) {\r\n                                            throw new Response('Not Found', { status: 404 });\r\n                                        }\r\n                                    },\r\n                                },\r\n                                {\r\n                                    path: 'black-list',\r\n                                    componentLoader: () => import(/* webpackChunkName: \"components/pages/SpamFilterBlackListPage\" */'components/pages/SpamFilterBlackListPage'),\r\n                                    loader: async () => {\r\n                                        await apolloClient.query({\r\n                                            query: require('queries/ServerMailSpamFilterBlackListPage.graphql'),\r\n                                        });\r\n                                    },\r\n                                },\r\n                                {\r\n                                    path: 'white-list',\r\n                                    componentLoader: () => import(/* webpackChunkName: \"components/pages/SpamFilterWhiteListPage\" */'components/pages/SpamFilterWhiteListPage'),\r\n                                    loader: async () => {\r\n                                        await apolloClient.query({\r\n                                            query: require('queries/ServerMailSpamFilterWhiteListPage.graphql'),\r\n                                        });\r\n                                    },\r\n                                },\r\n                            ],\r\n                        },\r\n                        odbcServerRoute,\r\n                    ],\r\n                },\r\n                domainRoute,\r\n                homeRoute,\r\n                {\r\n                    path: 'domain-traffic-usage/domains',\r\n                    handle: {\r\n                        crumb: () => ({\r\n                            title: Locale.getSection('components.routes').lmsg('statistics'),\r\n                            href: '/smb/statistics/details',\r\n                        }),\r\n                        helpContext: 'client.domain.traffic-hosting',\r\n                    },\r\n                    children: [trafficUsageByDomainRoute({ path: ':domainId' })],\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-2025. WebPros International GmbH. All rights reserved.\r\n\r\nexport const HOURS_IN_MS = 1000 * 60 * 60;\r\n\r\nconst SEC_IN_MINUTE = 60;\r\nconst SEC_IN_HOUR = 60 * SEC_IN_MINUTE;\r\nconst SEC_IN_DAY = 24 * SEC_IN_HOUR;\r\n\r\nexport const getSysdate = () => new Date();\r\n\r\nexport const addDays = (daysCount, date = new Date()) => {\r\n    const copy = new Date(date.getTime());\r\n    copy.setDate(copy.getDate() + daysCount);\r\n\r\n    return copy;\r\n};\r\n\r\nexport const addHours = (hoursCount, date = new Date()) => {\r\n    const copy = new Date(date.getTime());\r\n    copy.setHours(copy.getHours() + hoursCount);\r\n\r\n    return copy;\r\n};\r\n\r\nexport const isSameDay = (date1, date2) => {\r\n    const yearsAreEqual = date1.getYear() === date2.getYear();\r\n    const monthsAreEqual = date1.getMonth() === date2.getMonth();\r\n    const daysAreEqual = date1.getDate() === date2.getDate();\r\n\r\n    return yearsAreEqual && monthsAreEqual && daysAreEqual;\r\n};\r\n\r\nexport const getTimezoneShift = timezone => {\r\n    const [hours, minutes] = timezone.split(':');\r\n\r\n    return +hours < 0 ?\r\n        -(Math.abs(hours) + (minutes / 60)) :\r\n        +hours + (minutes / 60);\r\n};\r\n\r\nconst MS_IN_SECOND = 1000;\r\n\r\n\r\nexport const formatDate = date => new Date(date)\r\n    .toLocaleDateString(document.documentElement.lang ?? 'en', { month: 'long', day: 'numeric', year: 'numeric' });\r\n\r\nexport const formatDateFromTimestamp = seconds => formatDate(seconds * MS_IN_SECOND);\r\n\r\nexport const toDatePeriod = seconds => {\r\n    const days = Math.floor(seconds / SEC_IN_DAY);\r\n    const daysInSeconds = days * SEC_IN_DAY;\r\n    const hours = Math.floor((seconds - daysInSeconds) / SEC_IN_HOUR);\r\n    const hoursInSeconds = hours * SEC_IN_HOUR;\r\n    const minutes = Math.floor((seconds - daysInSeconds - hoursInSeconds) / SEC_IN_MINUTE);\r\n    const minutesInSeconds = minutes * SEC_IN_MINUTE;\r\n\r\n    return {\r\n        days,\r\n        hours,\r\n        minutes,\r\n        seconds: seconds - daysInSeconds - hoursInSeconds - minutesInSeconds,\r\n    };\r\n};\r\n\r\n\r\nexport const getEndOfDay = timestamp => {\r\n    const date = new Date(timestamp);\r\n    date.setHours(23, 59, 59, 999);\r\n    return date;\r\n};\r\n\r\nexport const getStartOfDay = timestamp => {\r\n    const date = new Date(timestamp);\r\n    date.setHours(0, 0, 0, 0);\r\n    return date;\r\n};\r\n\r\nexport const getStartOfMonth = timestamp => {\r\n    const date = new Date(timestamp);\r\n    date.setDate(1);\r\n    date.setHours(0, 0, 0, 0);\r\n    return date;\r\n};\r\n\r\nexport const getEndOfMonth = timestamp => {\r\n    const date = new Date(timestamp);\r\n    date.setMonth(date.getMonth() + 1);\r\n    date.setDate(0);\r\n    date.setHours(23, 59, 59, 999);\r\n    return date;\r\n};\r\n\r\nexport const getStartOfWeek = timestamp => {\r\n    const date = new Date(timestamp);\r\n    const dayOfWeek = date.getDay();\r\n\r\n    const diff = dayOfWeek * -1;\r\n    date.setDate(date.getDate() + diff);\r\n    date.setHours(0, 0, 0, 0);\r\n\r\n    return date;\r\n};\r\n\r\n\r\nexport const getEndOfWeek = timestamp => {\r\n    const date = new Date(timestamp);\r\n    const dayOfWeek = date.getDay();\r\n    const diff = 6 - dayOfWeek;\r\n    date.setDate(date.getDate() + diff);\r\n    date.setHours(23, 59, 59, 999);\r\n\r\n    return date;\r\n};\r\n\r\nexport const getDaysInMonthFromTimestamp = timestamp => {\r\n    const date = new Date(timestamp);\r\n    const year = date.getFullYear();\r\n    const month = date.getMonth();\r\n\r\n    return new Date(year, month + 1, 0).getDate();\r\n};\r\n\r\nexport const getDaysInPreviousMonth = timestamp => {\r\n    const date = new Date(timestamp);\r\n    const year = date.getFullYear();\r\n    const month = date.getMonth();\r\n\r\n    const previousMonth = month === 0 ? 11 : month - 1;\r\n    const previousMonthYear = month === 0 ? year - 1 : year;\r\n\r\n    // Create a new date for the last day of the previous month\r\n    return new Date(previousMonthYear, previousMonth + 1, 0).getDate();\r\n};\r\n\r\nexport const toUnixTime = timestamp => Math.floor(timestamp / MS_IN_SECOND);\r\nexport const toPhpDate = timestamp => new Date(timestamp).toLocaleDateString('en-US', { year: 'numeric', month: '2-digit', day: '2-digit' });\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { useLoaderData, useParams, useLocation, useRevalidator, useMatches } from 'react-router-dom';\r\nimport { useQuery } from '@apollo/client';\r\nimport { redirect } from 'jsw';\r\n\r\nimport LICENSE from 'queries/License.graphql';\r\n\r\nconst LoadableComponent = () => {\r\n    const matches = useMatches();\r\n    const location = useLocation();\r\n    const revalidator = useRevalidator();\r\n    const { Component, ...data } = useLoaderData();\r\n    const params = useParams();\r\n    const { data: licenseData } = useQuery(LICENSE);\r\n\r\n    if (licenseData?.mode?.isLicenseLocked) {\r\n        const isAllowedWithoutLicense = matches.some(({ handle }) => handle?.isAllowedWithoutLicense);\r\n        if (!isAllowedWithoutLicense) {\r\n            return redirect('/cp/license/');\r\n        }\r\n    }\r\n\r\n    if (location.state?.reload) {\r\n        delete location.state.reload;\r\n        revalidator.revalidate();\r\n    }\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            return null;\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\\[.+]|module)$/));\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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"License\"},\"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\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":64}};\n    doc.loc.source = {\"body\":\"query License {\\r\\n    mode {\\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[\"License\"] = oneQuery(doc, \"License\");\n        \r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { useLayoutEffect } from 'react';\r\nimport { Outlet, useNavigation, ScrollRestoration } 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\nimport { getId } from 'helpers/getId';\r\nimport { ModuleProvider, DynamicModule } from 'components/DynamicModule';\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            viewerId: getId(viewer.client.id),\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                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        <ModuleProvider>\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            <ScrollRestoration />\r\n            <DynamicModule />\r\n        </ModuleProvider>\r\n    );\r\n};\r\n\r\nexport default AppLayout;\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nexport const getId = id => {\r\n    if (!id) {\r\n        return null;\r\n    }\r\n\r\n    return Number(atob(id).split(':')[1]);\r\n};\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport {\r\n    lazy,\r\n    createContext,\r\n    useContext,\r\n    useMemo,\r\n    useCallback,\r\n    useState,\r\n    Suspense,\r\n} from 'react';\r\nimport TopBarProgress from 'react-topbar-progress-indicator';\r\nimport PropTypes from 'prop-types';\r\nimport { useLocation, useNavigate } from 'react-router-dom';\r\n\r\nconst ModulesContext = createContext({});\r\n\r\nconst MODULE_SEARCH_KEY = 'module';\r\n\r\nconst loadScope = (url, scope) => {\r\n    if (window[scope]) {\r\n        return window[scope];\r\n    }\r\n    const element = document.createElement('script');\r\n    const promise = new Promise((resolve, reject) => {\r\n        element.src = url;\r\n        element.type = 'text/javascript';\r\n        element.async = true;\r\n        element.onload = () => resolve(window[scope]);\r\n        element.onerror = reject;\r\n    });\r\n    document.head.appendChild(element);\r\n    promise.finally(() => document.head.removeChild(element));\r\n    return promise;\r\n};\r\n\r\nconst loadModule = async (url, scope, module) => {\r\n    try {\r\n        const container = await loadScope(url, scope);\r\n        await __webpack_init_sharing__('default');\r\n        // eslint-disable-next-line camelcase\r\n        await container.init(__webpack_share_scopes__.default);\r\n        const factory = await container.get(module);\r\n        return factory();\r\n    } catch (error) {\r\n        // eslint-disable-next-line no-console\r\n        console.error('Error loading module:', error);\r\n        return { default: () => null };\r\n    }\r\n};\r\n\r\nconst useDynamicModule = () => useContext(ModulesContext);\r\n\r\nconst ModuleProvider = ({ children }) => {\r\n    const [loaded, setLoaded] = useState({});\r\n    const navigate = useNavigate();\r\n\r\n    const openModule = useCallback((moduleString, props) => {\r\n        const { scope, entry, url } = /module:(?<scope>.+):(?<entry>.+)@(?<url>.+)/.exec(moduleString)?.groups ?? {};\r\n\r\n        if (!(scope && url && entry)) {\r\n            return;\r\n        }\r\n        const key = `${scope}:${entry}`;\r\n        if (!loaded[key]) {\r\n            setLoaded(prev => ({\r\n                ...prev,\r\n                [key]: lazy(() => loadModule(url, scope, `./${entry}`)),\r\n            }));\r\n        }\r\n        navigate(`?${new URLSearchParams({ [MODULE_SEARCH_KEY]: key, props: encode(props) })}`, {\r\n            preventScrollReset: true,\r\n        });\r\n    }, [navigate, loaded]);\r\n\r\n    const closeModule = useCallback(() => {\r\n        const params = new URLSearchParams(location.search);\r\n        params.delete(MODULE_SEARCH_KEY);\r\n        params.delete('props');\r\n        navigate(`?${params}`, { preventScrollReset: true });\r\n    }, [navigate]);\r\n\r\n    const modules = useMemo(() => Object.entries(loaded).map(([key, module]) => ({\r\n        key,\r\n        Component: module,\r\n    }))\r\n    , [loaded]);\r\n\r\n    const values = useMemo(() => ({\r\n        modules,\r\n        openModule,\r\n        closeModule,\r\n    }), [closeModule, modules, openModule]);\r\n\r\n    return (<ModulesContext.Provider value={values}>{children}</ModulesContext.Provider>);\r\n};\r\n\r\nModuleProvider.propTypes = {\r\n    children: PropTypes.node.isRequired,\r\n};\r\n\r\nconst encode = object => btoa(JSON.stringify(object));\r\nconst decode = string => JSON.parse(atob(string));\r\n\r\nconst DynamicModule = () => {\r\n    const { modules, closeModule } = useDynamicModule();\r\n    const location = useLocation();\r\n\r\n    const visible = useMemo(() => {\r\n        const params = new URLSearchParams(location.search);\r\n        if (params.has(MODULE_SEARCH_KEY)) {\r\n            const key = params.get(MODULE_SEARCH_KEY);\r\n            try {\r\n                return {\r\n                    [key]: decode(params.get('props')),\r\n                };\r\n            } catch {\r\n                return false;\r\n            }\r\n        }\r\n        return false;\r\n    }, [location]);\r\n\r\n    return (\r\n        <Suspense fallback={<TopBarProgress />}>\r\n            {modules.map(({ Component, key }) => (\r\n                <Component key={key} {...visible[key]} isOpen={!!visible[key]} onClose={closeModule} />\r\n            ))}\r\n        </Suspense>\r\n    );\r\n};\r\n\r\nexport { ModuleProvider, DynamicModule, useDynamicModule };\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\":\"client\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"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\":197}};\n    doc.loc.source = {\"body\":\"query TaskProgressBar {\\r\\n    viewer {\\r\\n        login\\r\\n        type\\r\\n        client {\\r\\n            id\\r\\n        }\\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-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { Outlet, useLoaderData, useMatches, useParams, useLocation } from 'react-router-dom';\r\nimport PageLayout from './PageLayout';\r\n\r\nconst CpPagesLayout = () => {\r\n    const { showFrames, pageHeader, pageSidebar } = useLoaderData();\r\n    const matches = useMatches().filter(({ handle }) => !!handle);\r\n    const params = useParams();\r\n    const location = useLocation();\r\n\r\n    const matchesContext = {};\r\n    const breadcrumbs = matches.reduce((crumbs, match) => {\r\n        if (!match.handle.crumb) {\r\n            return crumbs;\r\n        }\r\n\r\n        const matchCrumb = match.handle.crumb({\r\n            data: match.data,\r\n            matchesContext,\r\n            params,\r\n            location,\r\n        });\r\n\r\n        if (!matchCrumb) {\r\n            return crumbs;\r\n        }\r\n\r\n        if (Array.isArray(matchCrumb)) {\r\n            return [...crumbs, ...matchCrumb];\r\n        }\r\n\r\n        return [...crumbs, { href: match.pathname, ...matchCrumb }];\r\n    }, []);\r\n\r\n    const reversedMatches = matches.slice().reverse();\r\n    const returnUrl = reversedMatches.find(({ handle }) => handle.returnUrl)?.handle.returnUrl({ params });\r\n    const helpContext = reversedMatches.find(({ handle }) => handle.helpContext)?.handle.helpContext;\r\n    const secondary = reversedMatches.find(({ handle }) => handle.secondary)?.handle.secondary({ location, params });\r\n    const titleRightAddon = reversedMatches.find(({ handle }) => handle.titleRightAddon)?.handle.titleRightAddon;\r\n    const pageContentHeader = reversedMatches.find(({ handle }) => handle.pageContentHeader)?.handle.pageContentHeader;\r\n\r\n    const lastBreadcrumbTitle = breadcrumbs[breadcrumbs.length - 1]?.title;\r\n    // Check only matches that affects breadcrumbs or page title and ignore other e.g. Drawer or Dialog page\r\n    const layoutMatches = matches.filter(({ handle }) => handle.crumb || typeof handle.pageTitle === 'function');\r\n    const lastLayoutMatch = layoutMatches.at(-1);\r\n    const pageTitle = lastLayoutMatch?.handle.pageTitle\r\n        ? lastLayoutMatch.handle.pageTitle({\r\n            data: lastLayoutMatch.data,\r\n            matchesContext,\r\n            params,\r\n            location,\r\n        }) || lastBreadcrumbTitle\r\n        : lastBreadcrumbTitle;\r\n\r\n    const lastMatch = matches.at(-1);\r\n    const key = typeof lastMatch?.handle?.key === 'function' ? lastMatch.handle.key({ params }) : undefined;\r\n    const noLayout = lastMatch?.handle?.noLayout ?? false;\r\n\r\n    const data = {\r\n        showFrames,\r\n        pageHeader: {\r\n            ...pageHeader,\r\n            returnUrl: pageHeader.returnUrl || returnUrl,\r\n            helpMenu: {\r\n                ...pageHeader.helpMenu,\r\n                helpContext,\r\n            },\r\n        },\r\n        pageSidebar,\r\n        pageContentHeader: {\r\n            ...pageContentHeader,\r\n            pageTitle,\r\n            breadcrumbs,\r\n            titleRightAddon,\r\n        },\r\n        secondary,\r\n    };\r\n\r\n    if (noLayout) {\r\n        return <Outlet key={key} />;\r\n    }\r\n\r\n    return (\r\n        <PageLayout {...data}>\r\n            <Outlet key={key} />\r\n        </PageLayout>\r\n    );\r\n};\r\n\r\nexport default CpPagesLayout;\r\n","// Copyright 1999-2025. WebPros 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 = 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    width = undefined,\r\n    bodyClass = undefined,\r\n    integrationClass = undefined,\r\n    children = undefined,\r\n    isSecondaryCollapsed = false,\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={showFrames && pageSidebar ? 'folded' : undefined}\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\nexport default PageLayout;\r\n","// Copyright 1999-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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 = undefined }) => {\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\nexport default CookiePolicy;\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { useRef } from 'react';\r\n\r\nconst useCollector = () => {\r\n    const collectorRef = useRef({\r\n        setCallback(callback) {\r\n            this.callback = callback;\r\n        },\r\n        collect() {\r\n            return this.callback();\r\n        },\r\n    });\r\n    return collectorRef.current;\r\n};\r\n\r\nexport default useCollector;\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { useEffect, useState } from 'react';\r\n\r\nclass Confirmation {\r\n    isResolved = false;\r\n\r\n    constructor(resolve, { onProceed } = {}) {\r\n        this.resolve = resolve;\r\n        this.onProceed = onProceed;\r\n    }\r\n\r\n    proceed(isConfirmed) {\r\n        this.isResolved = true;\r\n        this.resolve(isConfirmed);\r\n        this.onProceed?.();\r\n    }\r\n}\r\n\r\nconst useConfirmation = () => {\r\n    const [confirmation, setConfirmation] = useState(null);\r\n\r\n    useEffect(() => () => {\r\n        if (confirmation && !confirmation.isResolved) {\r\n            confirmation.proceed(false);\r\n        }\r\n    }, [confirmation]);\r\n\r\n    const triggerConfirmation = () => new Promise(resolve => {\r\n        const confirmation = new Confirmation(resolve, {\r\n            onProceed: () => setConfirmation(null),\r\n        });\r\n        setConfirmation(confirmation);\r\n    });\r\n\r\n    return [\r\n        confirmation,\r\n        triggerConfirmation,\r\n    ];\r\n};\r\n\r\nexport default useConfirmation;\r\n","// Copyright 1999-2025. WebPros 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, mode } }]) => {\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                        isMailServiceSupported: mode.isMailServiceSupported,\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-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { useEffect, useState } from 'react';\r\nimport { Drawer, ConsoleOutput, Button } from '@plesk/ui-library';\r\nimport { Observer, getComponent, Task, escapeHtml, Locale } 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\nconst ButtonsTranslate = Locale.getTranslate('components.buttons');\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 = null,\r\n    dataType,\r\n    isOpen = false,\r\n    onClose,\r\n    task = null,\r\n    pageUrl = null,\r\n    onTaskComplete = undefined,\r\n    onError = undefined,\r\n    autoCloseTimeout = undefined,\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            const onErrorExecute = typeof onError === 'function' && errors.length > 0;\r\n            return (\r\n                <>\r\n                    {onErrorExecute && onError()}\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\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({ status });\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,\r\n                buttons: autoCloseTimeout === null && Task.STATUS_DONE === status ? (\r\n                    <Button\r\n                        intent=\"primary\"\r\n                        onClick={handleClose}\r\n                    >\r\n                        <ButtonsTranslate content=\"finish\" />\r\n                    </Button>\r\n                ) : null,\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    onError: PropTypes.func,\r\n    autoCloseTimeout: PropTypes.number,\r\n};\r\n\r\nexport default DrawerWithProgress;\r\n","// Copyright 1999-2025. WebPros 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\":\"mailHosting\"},\"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\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isMailServiceSupported\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":463}};\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                mailHosting\\r\\n            }\\r\\n        }\\r\\n        techDomain {\\r\\n            url\\r\\n            vendor\\r\\n            maxDomainLength\\r\\n        }\\r\\n    }\\r\\n    mode {\\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[\"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-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { useState } from 'react';\r\n\r\nconst useListOperation = () => {\r\n    const [selection, setSelection] = useState([]);\r\n    const [loadingRows, setLoadingRows] = useState([]);\r\n\r\n    const wrapListOperation = operation => async function (keys, ...args) {\r\n        setSelection(currentKeys => (\r\n            currentKeys.filter(key => !keys.includes(key))\r\n        ));\r\n        setLoadingRows(currentKeys => [...currentKeys, ...keys]);\r\n\r\n        try {\r\n            return await operation.call(this, keys, ...args);\r\n        } finally {\r\n            setLoadingRows(currentKeys => (\r\n                currentKeys.filter(key => !keys.includes(key))\r\n            ));\r\n        }\r\n    };\r\n\r\n    return {\r\n        selection,\r\n        setSelection,\r\n        loadingRows,\r\n        wrapListOperation,\r\n    };\r\n};\r\n\r\nexport default useListOperation;\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { useCallback, useState } from 'react';\r\nimport { Pagination } from '@plesk/ui-library';\r\nimport useListOperation from './useListOperation';\r\n\r\nexport const ALL_ITEMS = 'all';\r\nexport const ITEM_PER_PAGE_OPTIONS_DEFAULT = [10, 25, 100, ALL_ITEMS];\r\nexport const ALL_ITEMS_COUNT = 100_000;\r\n\r\n/**\r\n * hook for add sort and pagination for the ui-library list component\r\n */\r\nconst useList = ({\r\n    onReload,\r\n    onFilter,\r\n    initialFilter,\r\n    pagination: {\r\n        current: currentPage,\r\n        totalPage: totalPages,\r\n        itemsPerPage,\r\n        itemsPerPageOptions,\r\n        onPageChange,\r\n        onChangeItemsPerPage,\r\n    } = {},\r\n    sort: {\r\n        direction: sortDirection,\r\n        column: sortColumn,\r\n        onChange: onSortChange,\r\n    } = {},\r\n}) => {\r\n    const { selection, setSelection, loadingRows, wrapListOperation } = useListOperation();\r\n    const [loading, setLoading] = useState(false);\r\n    const [filter, setFilter] = useState(initialFilter);\r\n\r\n    const wrapAsync = async operation => {\r\n        setLoading(true);\r\n        await operation();\r\n        setLoading(false);\r\n    };\r\n\r\n    const renderPagination = useCallback(() => (\r\n        <Pagination\r\n            current={currentPage}\r\n            total={totalPages}\r\n            itemsPerPage={itemsPerPage}\r\n            onSelect={nextPage => wrapAsync(() => onPageChange(nextPage))}\r\n            onItemsPerPageChange={itemsPerPage => wrapAsync(() => {\r\n                const nextItemsPerPage = itemsPerPage === ALL_ITEMS ? ALL_ITEMS_COUNT : itemsPerPage;\r\n                onChangeItemsPerPage(nextItemsPerPage);\r\n            })}\r\n            itemsPerPageOptions={itemsPerPageOptions ?? ITEM_PER_PAGE_OPTIONS_DEFAULT}\r\n        />\r\n        // eslint-disable-next-line react-hooks/exhaustive-deps\r\n    ), [currentPage, itemsPerPage, itemsPerPageOptions, totalPages]);\r\n\r\n    const sortParams = {\r\n        sortColumn,\r\n        sortDirection,\r\n        onSortChange: (...params) => wrapAsync(() => onSortChange(...params)),\r\n    };\r\n\r\n    return {\r\n        renderPagination,\r\n        selection,\r\n        setSelection,\r\n        loading,\r\n        loadingRows,\r\n        filter,\r\n        sortParams,\r\n        wrapListOperation,\r\n        handleReload: params => wrapAsync(() => onReload(params)),\r\n        handleFilter: params => wrapAsync(async () => {\r\n            await onFilter(params);\r\n            setFilter(params);\r\n        }),\r\n    };\r\n};\r\n\r\nexport default useList;\r\n","// Copyright 1999-2025. WebPros 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        } else if (params.has(key)) {\r\n            params.delete(key);\r\n        }\r\n        navigate(`?${params}${window.location.hash}`);\r\n    }, [key, navigate]);\r\n\r\n    return [value, setValue];\r\n};\r\n\r\nexport default useModal;\r\n","// Copyright 1999-2025. WebPros 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 = undefined }) => {\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\nexport default Info;\r\n","// Copyright 1999-2025. WebPros 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-2025. WebPros 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\nexport default Preferences;\r\n","// Copyright 1999-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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 = ({\r\n    component: Tag = 'div',\r\n    renderMode = undefined,\r\n    children = undefined,\r\n    ...props\r\n}) => {\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\nexport default JswComponent;\r\n","// Copyright 1999-2025. WebPros 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\nimport LicenseLimitsMessage from './LicenseLimitsMessage';\r\n\r\nconst mapping = {\r\n    'msg-license-limits': LicenseLimitsMessage,\r\n};\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 Component = mapping[className];\r\n        if (Component) {\r\n            return (\r\n                <Component\r\n                    {...message}\r\n                    data-rendered-by-react\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-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { Button, Alert } from '@plesk/ui-library';\r\nimport { Locale } from 'jsw';\r\nimport Link from 'components/common/Link';\r\nimport PropTypes from 'prop-types';\r\nimport './LicenseLimitsMessage.less';\r\n\r\nconst Translate = Locale.getTranslate('components.license-status');\r\n\r\nconst LicenseLimitsMessage = ({ buyUrl, canManageLicense }) => (\r\n    <Alert intent=\"warning\" className=\"license-limits-message\">\r\n        <Translate content={canManageLicense ? 'licenseLimitsMessage' : 'licenseLimitsMessageNoPermission'} />\r\n        {canManageLicense && (\r\n            <>\r\n                <Button\r\n                    intent=\"primary\"\r\n                    component=\"a\"\r\n                    icon=\"shopping-cart\"\r\n                    href={buyUrl}\r\n                    target=\"_blank\"\r\n                >\r\n                    <Translate content=\"buyLicenseButton\" />\r\n                </Button>\r\n                <Link\r\n                    to=\"/cp/license/primary/upload/\"\r\n                >\r\n                    <Translate content=\"installLicenseButton\" />\r\n                </Link>\r\n            </>\r\n        )}\r\n    </Alert>\r\n);\r\n\r\nLicenseLimitsMessage.propTypes = {\r\n    buyUrl: PropTypes.string.isRequired,\r\n    canManageLicense: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default LicenseLimitsMessage;\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useNavigate, Link as RouterLink } 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 = ({\r\n    to = undefined,\r\n    href = undefined,\r\n    disabled = undefined,\r\n    onClick = undefined,\r\n    ...props\r\n}) => {\r\n    to = to ?? href;\r\n    if (disabled) {\r\n        to = undefined;\r\n        onClick = undefined;\r\n    }\r\n\r\n    if (urlMapping[to]) {\r\n        to = urlMapping[to];\r\n    }\r\n\r\n    if (typeof to === 'object' && to !== null) {\r\n        to = createPath(to);\r\n    }\r\n\r\n    const handleClick = event => {\r\n        if (onClick) {\r\n            onClick(event);\r\n        }\r\n\r\n        if (event.defaultPrevented) {\r\n            return;\r\n        }\r\n\r\n        if (!to) {\r\n            event.preventDefault();\r\n            return;\r\n        }\r\n        if (!require('routes').isClientSideRedirectAllowed(to)) {\r\n            event.preventDefault();\r\n\r\n            const features = [];\r\n            if (typeof props.rel === 'string' && props.rel.length > 0) {\r\n                features.push(props.rel.split(' '));\r\n            }\r\n\r\n            window.open(to, props.target || '_self', features.join(','));\r\n        }\r\n    };\r\n\r\n    return <RouterLink to={to} onClick={handleClick} {...props} />;\r\n};\r\n\r\nLink.propTypes = {\r\n    to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\r\n    href: PropTypes.string,\r\n    disabled: PropTypes.bool,\r\n    onClick: PropTypes.func,\r\n    target: PropTypes.string,\r\n    rel: PropTypes.string,\r\n};\r\n\r\nexport default Link;\r\n","// Copyright 1999-2025. WebPros 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\nexport const STATUS_DEFAULT = 'default';\r\nconst STATUS_TEST = 'test';\r\nconst STATUS_TRIAL = 'trial';\r\nexport const STATUS_EXPIRED = 'expired';\r\n\r\nconst LicenseStatus = ({\r\n    status,\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    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\nexport default LicenseStatus;\r\n","// Copyright 1999-2025. WebPros 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 = ({ searchUrl = null, ...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    searchUrl: PropTypes.string,\r\n};\r\n\r\nexport default PageHeader;\r\n","// Copyright 1999-2025. WebPros 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-2025. WebPros 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\":133}};\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-2025. WebPros 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 = undefined,\r\n    returnUrl = undefined,\r\n    accountMenu = undefined,\r\n    subscriptionSwitcher = undefined,\r\n    headerCustomButtons,\r\n    helpMenu = undefined,\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        const newThemeColor = document.querySelector(`meta[name=\"theme-color-${newTheme}\"]`).getAttribute('content');\r\n        document.querySelector('meta[name=\"theme-color\"]').setAttribute('content', newThemeColor);\r\n        Cookie.setPermanent('theme', newTheme, '/');\r\n        setTheme(newTheme);\r\n    };\r\n\r\n    useEffect(() => {\r\n        renderTooltips();\r\n        // eslint-disable-next-line react-hooks/exhaustive-deps\r\n    }, []);\r\n\r\n    return (\r\n        <div className=\"main-header-navbar\">\r\n            <ul className=\"main-header-navbar-nav\">\r\n                {backToAdminLink ? (\r\n                    <li className=\"top-back\">\r\n                        <Button\r\n                            component=\"a\"\r\n                            icon={<Icon name=\"chevron-left\" flipHorizontal={isRtl()} />}\r\n                            href={backToAdminLink}\r\n                            ghost\r\n                        >\r\n                            {isHideBackToAdminText ? null : <Translate content=\"backToAdmin\" />}\r\n                        </Button>\r\n                    </li>\r\n                ) : null}\r\n                {accountMenu ? (\r\n                    <li className=\"top-user\">\r\n                        <AccountMenu {...accountMenu} />\r\n                    </li>\r\n                ) : null}\r\n                {accountMenu && subscriptionSwitcher ? (\r\n                    <li className=\"top-webspace\">\r\n                        <SubscriptionSwitcher\r\n                            returnUrl={returnUrl}\r\n                            {...subscriptionSwitcher}\r\n                        />\r\n                    </li>\r\n                ) : null}\r\n                {user?.type === 'ADMIN' && config?.notification?.panel?.enabled ? (\r\n                    <li className=\"top-notification-center\">\r\n                        <NotificationCenter />\r\n                    </li>\r\n                ) : null}\r\n                {headerCustomButtons.map(({ id, link, target, icon, title, description }) => (\r\n                    <li\r\n                        key={id}\r\n                        id={`extNavHeader-${id}`}\r\n                        className={classNames('main-header-navbar-nav__item', `main-header-navbar-nav__item--${id}`)}\r\n                        data-description={description}\r\n                    >\r\n                        <Button\r\n                            component=\"a\"\r\n                            href={link}\r\n                            target={target}\r\n                            rel={target ? 'noopener noreferrer' : null}\r\n                            icon={<Icon src={id === 'advisor-1' ? require('icons/16/plesk/top-advisor.svg') : icon} alt={title} />}\r\n                            ghost\r\n                        />\r\n                    </li>\r\n                ))}\r\n                {helpMenu ? (\r\n                    <li className=\"top-help\">\r\n                        <HelpMenu {...helpMenu} />\r\n                    </li>\r\n                ) : null}\r\n                <li className=\"top-theme-switcher\">\r\n                    <Button\r\n                        className=\"theme-switcher\"\r\n                        ghost\r\n                        icon={theme === 'dark' ? <Icon>{IconSun}</Icon> : <Icon>{IconMoon}</Icon>}\r\n                        onClick={handleToggleTheme}\r\n                        tooltip={theme === 'dark' ? <Translate content=\"darkThemeOff\" /> : <Translate content=\"darkThemeOn\" />}\r\n                        data-type={theme === 'dark' ? 'dark-mode-on' : 'dark-mode-off'}\r\n                    />\r\n                </li>\r\n                {user.logo.isCustom && !isHideLogo ? (\r\n                    <li className=\"top-logo\">\r\n                        <a href=\"http://www.plesk.com\" target=\"_blank\" rel=\"noopener noreferrer\">\r\n                            <img src={require('images/logos/powered-logo.png')} alt=\"\" />\r\n                        </a>\r\n                    </li>\r\n                ) : null}\r\n            </ul>\r\n        </div>\r\n    );\r\n};\r\n\r\nMainHeaderNavbar.propTypes = {\r\n    backToAdminLink: PropTypes.string,\r\n    returnUrl: PropTypes.string,\r\n    accountMenu: PropTypes.shape(AccountMenu.propTypes),\r\n    subscriptionSwitcher: PropTypes.shape(SubscriptionSwitcher.propTypes),\r\n    headerCustomButtons: PropTypes.arrayOf(PropTypes.shape({\r\n        id: PropTypes.string,\r\n        link: PropTypes.string,\r\n        target: PropTypes.string,\r\n        icon: PropTypes.string,\r\n        title: PropTypes.string,\r\n        description: PropTypes.string,\r\n    })).isRequired,\r\n    helpMenu: PropTypes.shape(HelpMenu.propTypes),\r\n};\r\n\r\nexport default MainHeaderNavbar;\r\n","// Copyright 1999-2025. WebPros 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    '/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 = ({\r\n    subscriptions,\r\n    limit = 100,\r\n    returnUrl = undefined,\r\n    currentSubscriptionId: defaultCurrentSubscriptionId = undefined,\r\n    showAll: defaultShowAll = false,\r\n}) => {\r\n    const location = useLocation();\r\n    const isHideText = useMediaQuery('(max-width: 767px)');\r\n    const [showAll, setShowAll] = useState(defaultShowAll);\r\n    const [currentSubscriptionId, setCurrentSubscriptionId] = useState(defaultCurrentSubscriptionId);\r\n\r\n    useEffect(() => {\r\n        setShowAll(defaultShowAll);\r\n        setCurrentSubscriptionId(defaultCurrentSubscriptionId);\r\n    }, [defaultShowAll, defaultCurrentSubscriptionId]);\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\nexport default SubscriptionSwitcher;\r\n","// Copyright 1999-2025. WebPros 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 { deleteNotifications, 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 = ids => {\r\n        setNotifications(prevNotifications => prevNotifications.filter(notification => !ids.includes(notification.id)));\r\n        if (ids.includes(selectedNotificationId)) {\r\n            setSelectedNotificationId(null);\r\n        }\r\n\r\n        deleteNotifications(ids);\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={605}\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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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 deleteNotifications = ids => api.post('/admin/notifications/delete', { ids });\r\n","// Copyright 1999-2025. WebPros 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-2025. WebPros 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\n\r\nimport groupNotifications from '../lib/groupNotifications';\r\nimport DateColumn from './DateColumn';\r\nimport NotificationActions from '../NotificationActions';\r\nimport FilterMenu from './FilterMenu';\r\n\r\nimport './NotificationCenterList.less';\r\nimport { useState } from 'react';\r\n\r\nconst Translate = Locale.getTranslate('components.notification-center');\r\n\r\nconst NotificationCenterList = ({\r\n    notifications,\r\n    filter = null,\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 [expandedRows, setExpandedRows] = useState([]);\r\n    const filterCount = Object.values(filter).reduce((r, v) => r + (v ? 1 : 0), 0);\r\n    const grouppedNotifications = groupNotifications(notificationsToDisplay);\r\n\r\n    const selectNotification = ({ notification }) => {\r\n        if (notification.notifications) {\r\n            return;\r\n        }\r\n        onSelectNotification({ notification });\r\n    };\r\n\r\n    const toggleExpansionNotification = notification => {\r\n        setExpandedRows(prevExpandedRows => {\r\n            if (prevExpandedRows.includes(notification.id)) {\r\n                return prevExpandedRows.filter(id => id !== notification.id);\r\n            }\r\n            return [...prevExpandedRows, notification.id];\r\n        });\r\n        if (notification.notifications) {\r\n            const unreadNotificationIds = notification.notifications.filter(({ isRead }) => !isRead).map(({ id }) => id);\r\n            if (unreadNotificationIds.length) {\r\n                onUpdateNotifications(unreadNotificationIds, { isRead: true });\r\n            }\r\n        }\r\n    };\r\n\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={selectNotification}\r\n                    onUpdateNotifications={onUpdateNotifications}\r\n                    onToggleExpansionNotification={toggleExpansionNotification}\r\n                    expandedRows={expandedRows}\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: '80px',\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            className=\"notification-center-list\"\r\n            columns={columns}\r\n            data={grouppedNotifications}\r\n            renderRowBody={row => row.notifications?.map(notification => (\r\n                <div key={notification.id} className=\"single-notification\">\r\n                    <div className=\"single-notification__subject\">\r\n                        <SubjectColumn\r\n                            onSelectNotification={selectNotification}\r\n                            onUpdateNotifications={onUpdateNotifications}\r\n                            notification={notification}\r\n                            expandedRows={expandedRows}\r\n                            onToggleExpansionNotification={toggleExpansionNotification}\r\n                        />\r\n                    </div>\r\n                    <DateColumn\r\n                        notification={notification}\r\n                        onSelectNotification={onSelectNotification}\r\n                    />\r\n                    <div className=\"single-notification__actions\">\r\n                        <NotificationActions\r\n                            notification={notification}\r\n                            onUpdateNotifications={onUpdateNotifications}\r\n                            onRemoveNotification={onRemoveNotification}\r\n                        />\r\n                    </div>\r\n                </div>\r\n            ))}\r\n            expandedRows={expandedRows}\r\n            onExpandedRowsChange={setExpandedRows}\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\nexport default NotificationCenterList;\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { Text, Media, Status, Tooltip, Label, Button } from '@plesk/ui-library';\r\nimport PropTypes from 'prop-types';\r\nimport { Locale } from 'jsw';\r\nimport { NotificationPropType } from '../lib/PropTypes';\r\nimport { getStatusIntent, getSubjectIntent } from '../lib/notificationIntent';\r\n\r\nconst Translate = Locale.getTranslate('components.notification-center');\r\n\r\n\r\nconst SubjectColumn = ({ notification, onSelectNotification, onToggleExpansionNotification, onUpdateNotifications, expandedRows }) => {\r\n    const { id, subject, context, isRead, notifications } = notification;\r\n\r\n\r\n    const isNotificationsGroup = !!notifications;\r\n    const unreadCount = isNotificationsGroup ? notifications.filter(({ isRead }) => !isRead).length : 0;\r\n    const notificationsId = isNotificationsGroup ? notifications.map(({ id }) => id) : [id];\r\n\r\n    const subjectIntent = isNotificationsGroup ? getSubjectIntent(notification) : 'primary';\r\n    return (\r\n        <Media\r\n            imageSpacing=\"xl\"\r\n            image={\r\n                <div className=\"single-notification__status-container\">\r\n                    {\r\n                        isNotificationsGroup ?\r\n                            <Label className=\"single-notification__unread-counter\" intent={getSubjectIntent(notification)}>{unreadCount}</Label> :\r\n                            <Tooltip title={<Translate content={isRead ? 'markAsUnread' : 'markAsRead'} />}>\r\n                                <Status\r\n                                    intent={getStatusIntent(notification)}\r\n                                    compact\r\n                                    onClick={() => onUpdateNotifications(notificationsId, {\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                </div>\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={subjectIntent}\r\n                >\r\n                    {context}\r\n                </Text>\r\n                <br />\r\n                <Text\r\n                    intent={subjectIntent}\r\n                    bold={!isRead}\r\n                >\r\n                    {subject}\r\n                </Text>\r\n                <br />\r\n                {isNotificationsGroup &&\r\n                    <Button\r\n                        ghost\r\n                        onClick={() => onToggleExpansionNotification(notification)}\r\n                        icon={expandedRows.includes(id) ? 'minus' : 'plus'}\r\n                        className=\"single-notification__expander-button\"\r\n                    >\r\n                        <Translate content={expandedRows.includes(id) ? 'showLess' : 'showMore'} />\r\n                    </Button>}\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    onToggleExpansionNotification: PropTypes.func.isRequired,\r\n    onUpdateNotifications: PropTypes.func.isRequired,\r\n    expandedRows: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default SubjectColumn;\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { NOTIFICATION_CATEGORIES } from './PropTypes';\r\n\r\nexport const 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\nexport const 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","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { getStartOfDay } from 'helpers/dates';\r\nimport { getSubjectIntent } from './notificationIntent';\r\n\r\nexport default notifications => {\r\n    const groupedNotifications = {};\r\n    notifications.forEach(notification => {\r\n        const day = getStartOfDay(notification.displayDate).getTime();\r\n        const key = `${day}:${notification.context}:${notification.subject}`;\r\n        if (!groupedNotifications[key]) {\r\n            groupedNotifications[key] = { ...notification };\r\n        } else {\r\n            if (!groupedNotifications[key].notifications) {\r\n                const originalNotification = { ...groupedNotifications[key] };\r\n                groupedNotifications[key].notifications = [originalNotification];\r\n                groupedNotifications[key].intent = getSubjectIntent(originalNotification);\r\n            }\r\n            groupedNotifications[key].notifications.push(notification);\r\n            groupedNotifications[key].isFavorite = groupedNotifications[key].isFavorite && notification.isFavorite;\r\n            groupedNotifications[key].isRead = groupedNotifications[key].isRead && notification.isRead;\r\n        }\r\n    });\r\n    return Object.values(groupedNotifications);\r\n};\r\n","// Copyright 1999-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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\nimport './NotificationActions.less';\r\n\r\nconst Translate = Locale.getTranslate('components.notification-center');\r\n\r\nconst NotificationActions = ({ notification: { id, isFavorite, code, notifications }, onUpdateNotifications, onRemoveNotification }) => {\r\n    const ids = notifications ? notifications.map(notification => notification.id) : [id];\r\n    return (\r\n        <ListActions className=\"notification-actions\">\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(ids, {\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(ids)}\r\n            >\r\n\r\n                <Translate content={notifications ? 'deleteNotifications' : 'deleteNotification'} />\r\n            </ListAction>\r\n        </ListActions>\r\n    );\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-2025. WebPros 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-2025. WebPros 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 undefined;\r\n};\r\n","// Copyright 1999-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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 = undefined,\r\n    customHelpUrl = undefined,\r\n    helpContext = undefined,\r\n    helpModule = undefined,\r\n    searchQuery = undefined,\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\r\n                    id=\"help-menu\"\r\n                    data-help-context={helpContext}\r\n                    data-help-prefix={user?.type}\r\n                    data-help-module={helpModule}\r\n                    ghost\r\n                    icon=\"question-mark-circle\"\r\n                    onClick={handleOpen}\r\n                />\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            data-help-context={helpContext}\r\n            data-help-prefix={user?.type}\r\n            data-help-module={helpModule}\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\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\":\"server\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"productVersion\"},\"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\":\"patch\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"config\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"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\":595}};\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    server {\\r\\n        productVersion {\\r\\n            name\\r\\n            version\\r\\n            patch\\r\\n        }\\r\\n    }\\r\\n    config {\\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-2025. WebPros 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, Text } 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\nimport { useQuery } from '@apollo/client';\r\n\r\nimport MAIN_MENU_QUERY from 'queries/MainMenu.graphql';\r\n\r\nconst Node = ({\r\n    id = undefined,\r\n    styleClass = undefined,\r\n    active = false,\r\n    disabled = false,\r\n    name,\r\n    conhelp,\r\n    link,\r\n    target = undefined,\r\n    custom = false,\r\n    icon = undefined,\r\n    label = undefined,\r\n    onClick = undefined,\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\">\r\n                    <span className=\"title-name\">{name}</span>\r\n                    {!!label && (\r\n                        <Text fontSize=\"sm\" className=\"title-label\">{label}</Text>\r\n                    )}\r\n                </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    label: PropTypes.string,\r\n    onClick: PropTypes.func,\r\n};\r\n\r\nconst Group = ({\r\n    id,\r\n    name = null,\r\n    nodes,\r\n    activeNode = undefined,\r\n    statistics = undefined,\r\n    isSidebarClosed,\r\n    onNodeClick = null,\r\n}) => {\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                                label={statistics?.[(key ?? '').replace(/([-_]\\w)/g, g => g[1].toUpperCase())]}\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    statistics: PropTypes.object,\r\n    isSidebarClosed: PropTypes.bool.isRequired,\r\n    onNodeClick: PropTypes.func,\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 = ({\r\n    title,\r\n    navigation,\r\n    navigationContext = undefined,\r\n    breadcrumbs = [],\r\n    viewSwitcher = undefined,\r\n    isPowerUserPanel = false,\r\n    showStatistics = false,\r\n    isClosed = false,\r\n    onNodeClick = undefined,\r\n}) => {\r\n    const location = useLocation();\r\n    const { data: { viewer: { statistics } = {} } = {} } = useQuery(MAIN_MENU_QUERY, {\r\n        skip: !showStatistics,\r\n    });\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                                statistics={id === 'hosting' ? statistics : null}\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    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    showStatistics: PropTypes.bool,\r\n    isClosed: PropTypes.bool,\r\n    onNodeClick: PropTypes.func,\r\n};\r\n\r\nexport default PageSidebar;\r\n","// Copyright 1999-2025. WebPros 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                            onTouchStart={e => e.stopPropagation()}\r\n                            onMouseDown={e => e.stopPropagation()}\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\r\n                            href=\"#\"\r\n                            onClick={handleOpenLearnMore}\r\n                            onTouchStart={e => e.stopPropagation()}\r\n                            onMouseDown={e => e.stopPropagation()}\r\n                            data-action=\"learn-more\"\r\n                        >\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-2025. WebPros 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 = ({\r\n    baseClassName = 'brand',\r\n    className = undefined,\r\n    href = undefined,\r\n}) => {\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\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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"MainMenu\"},\"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\":\"statistics\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"customers\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resellers\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscriptions\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"servicePlans\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":210}};\n    doc.loc.source = {\"body\":\"query MainMenu {\\r\\n    viewer {\\r\\n        login\\r\\n        statistics {\\r\\n            customers\\r\\n            resellers\\r\\n            subscriptions\\r\\n            domains\\r\\n            servicePlans\\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[\"MainMenu\"] = oneQuery(doc, \"MainMenu\");\n        \r\n","// Copyright 1999-2025. WebPros 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 24 24\">\r\n                            {/* eslint-disable-next-line max-len */}\r\n                            <path fill=\"#fff\" d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\" />\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-2025. WebPros 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\nimport JswComponent from 'components/jsw/JswComponent';\r\n\r\nconst PageContentHeader = ({\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    additionalTitleContent = null,\r\n    className = 'page-content-header',\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={className}\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                            {additionalTitleContent && (<JswComponent key={additionalTitleContent} component=\"span\">{additionalTitleContent}</JswComponent>)}\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    additionalTitleContent: PropTypes.string,\r\n    className: PropTypes.string,\r\n};\r\n\r\nexport default PageContentHeader;\r\n","// Copyright 1999-2025. WebPros 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 = null, 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\nexport default ObjectSwitcher;\r\n","// Copyright 1999-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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        {\r\n            window.history.length > 1 &&\r\n            <Button className={styles.action} onClick={() => window.history.back()}>\r\n                <Translate content=\"backToPreviousPage\" />\r\n            </Button>\r\n        }\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 = null,\r\n    message,\r\n    noRepairKit = false,\r\n    kbArticleUrl = null,\r\n    exception = null,\r\n    isNetworkError = false,\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\nexport default ErrorPage;\r\n","// Copyright 1999-2025. WebPros 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-2025. WebPros 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 = null, codeFragment = null }) => {\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\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-2025. WebPros 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-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { List, Pagination } from '@plesk/ui-library';\r\nimport { GraphQlListContext } from './GraphQlListContext';\r\nimport GraphQlListSearchBar from './GraphQlListSearchBar';\r\n\r\nconst GraphQlList = ({\r\n    onSortChange = undefined,\r\n    filtered = undefined,\r\n    pagination = undefined,\r\n    emptyView = undefined,\r\n    emptyViewFiltered = undefined,\r\n    listContext,\r\n    ...listProps\r\n}) => {\r\n    const { paginationProps, setSort } = listContext;\r\n\r\n    const [prevFiltered, setPrevFiltered] = useState(filtered);\r\n    const isLoadingOrFiltered = filtered || (listProps.loading && prevFiltered);\r\n    if (!listProps.loading && prevFiltered !== filtered) {\r\n        setPrevFiltered(filtered);\r\n    }\r\n\r\n    return (\r\n        <GraphQlListContext.Provider value={listContext}>\r\n            <List\r\n                filtered={isLoadingOrFiltered}\r\n                pagination={pagination || (paginationProps && <Pagination {...paginationProps} />)}\r\n                emptyView={isLoadingOrFiltered ? emptyViewFiltered : emptyView}\r\n                {...listProps}\r\n                onSortChange={(...args) => {\r\n                    onSortChange?.(...args);\r\n                    const [sort] = args;\r\n                    setSort({ [sort.sortColumn]: sort.sortDirection });\r\n                }}\r\n            />\r\n        </GraphQlListContext.Provider>\r\n    );\r\n};\r\n\r\nGraphQlList.propTypes = {\r\n    onSortChange: PropTypes.func,\r\n    listContext: PropTypes.object.isRequired,\r\n    filtered: PropTypes.bool,\r\n    pagination: PropTypes.node,\r\n    emptyView: PropTypes.node,\r\n    emptyViewFiltered: PropTypes.node,\r\n};\r\n\r\nGraphQlList.SearchBar = GraphQlListSearchBar;\r\n\r\nexport default GraphQlList;\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { createContext } from 'react';\r\n\r\nexport const GraphQlListContext = createContext();\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { useContext, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { SearchBar } from '@plesk/ui-library';\r\nimport { GraphQlListContext } from './GraphQlListContext';\r\n\r\nconst GraphQlListSearchBar = ({\r\n    name,\r\n    onSearch = undefined,\r\n    onTyping = undefined,\r\n    ...props\r\n}) => {\r\n    const { listInput, setSearchFilters } = useContext(GraphQlListContext);\r\n    const [value, setValue] = useState(listInput.searchFilters?.[name]);\r\n\r\n    return (\r\n        <SearchBar\r\n            inputProps={{\r\n                value,\r\n                'data-testid': 'list-searchbar',\r\n            }}\r\n            {...props}\r\n            onTyping={(...args) => {\r\n                onTyping?.(...args);\r\n                const [value] = args;\r\n                setValue(value);\r\n            }}\r\n            onSearch={(...args) => {\r\n                onSearch?.(...args);\r\n                const [value] = args;\r\n                setValue(value);\r\n                setSearchFilters(currentFilters => ({\r\n                    ...currentFilters,\r\n                    [name]: value,\r\n                }));\r\n            }}\r\n        />\r\n    );\r\n};\r\n\r\nGraphQlListSearchBar.propTypes = {\r\n    name: PropTypes.string.isRequired,\r\n    onSearch: PropTypes.func,\r\n    onTyping: PropTypes.func,\r\n};\r\n\r\nexport default GraphQlListSearchBar;\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { useState } from 'react';\r\nimport { useQuery } from '@apollo/client';\r\nimport { useLocalStorage } from 'common/hooks';\r\nimport { getGraphQlListInputStorageArgs } from './helpers';\r\n\r\nconst ITEMS_PER_PAGE_OPTIONS = [10, 25, 100, 'all'];\r\n\r\nconst useGraphQlList = ({\r\n    key,\r\n    defaultInput,\r\n    query,\r\n    variables = {},\r\n    inputVariables = {},\r\n    withNetworkOnlyStrategy = true,\r\n    onListInputChange,\r\n    withPagination = true,\r\n    extractList,\r\n}) => {\r\n    const [fetchPolicy, setFetchPolicy] = useState();\r\n    const [listInput, setListInput] = useLocalStorage(\r\n        ...getGraphQlListInputStorageArgs({ key, withPagination, defaultInput }),\r\n    );\r\n\r\n    const queryResult = useQuery(query, {\r\n        variables: {\r\n            input: { ...listInput, ...inputVariables },\r\n            ...variables,\r\n        },\r\n        fetchPolicy,\r\n    });\r\n    const queryData = (queryResult.data || queryResult.previousData);\r\n    const listData = queryData ? extractList(queryData) : null;\r\n\r\n    const handleListInputChange = listInput => {\r\n        setListInput(listInput);\r\n        withNetworkOnlyStrategy && setFetchPolicy('network-only');\r\n        onListInputChange && onListInputChange(listInput);\r\n    };\r\n\r\n    const setSearchFilters = filters => {\r\n        const result = typeof filters === 'function' ? filters(listInput.searchFilters) : filters;\r\n        handleListInputChange({\r\n            ...listInput,\r\n            searchFilters: result,\r\n            pagination: { ...listInput.pagination, page: 1 },\r\n        });\r\n    };\r\n\r\n    const setFilters = ({ searchFilters, ...filters }) => {\r\n        const newListInput = {\r\n            ...listInput,\r\n            ...filters,\r\n            pagination: { ...listInput.pagination, page: 1 },\r\n        };\r\n\r\n        if (listInput.searchFilters || searchFilters) {\r\n            newListInput.searchFilters = {\r\n                ...(listInput.searchFilters ?? {}),\r\n                ...(searchFilters ?? {}),\r\n            };\r\n        }\r\n\r\n        handleListInputChange(newListInput);\r\n    };\r\n\r\n    const setSort = orderBy => handleListInputChange({ ...listInput, orderBy });\r\n\r\n    const setPage = page => handleListInputChange({\r\n        ...listInput,\r\n        pagination: { ...listInput.pagination, page },\r\n    });\r\n\r\n    const setItemsPerPage = itemsPerPage => handleListInputChange({\r\n        ...listInput,\r\n        pagination: {\r\n            page: 1,\r\n            itemsPerPage: itemsPerPage === 'all' ? null : +itemsPerPage,\r\n        },\r\n    });\r\n\r\n    const paginationProps = withPagination && listData ? {\r\n        current: listData.pageInfo.current,\r\n        total: listData.pageInfo.pageCount,\r\n        onSelect: setPage,\r\n        itemsPerPage: listInput.pagination?.itemsPerPage ?? 'all',\r\n        itemsPerPageOptions: ITEMS_PER_PAGE_OPTIONS,\r\n        onItemsPerPageChange: setItemsPerPage,\r\n    } : null;\r\n\r\n    return {\r\n        queryResult,\r\n        listData,\r\n        listInput,\r\n        setSearchFilters,\r\n        setPage,\r\n        setItemsPerPage,\r\n        setSort,\r\n        paginationProps,\r\n        listProps: {\r\n            listContext: {\r\n                listData,\r\n                listInput,\r\n                setSearchFilters,\r\n                setFilters,\r\n                setSort,\r\n                setPage,\r\n                setItemsPerPage,\r\n                paginationProps,\r\n            },\r\n            // List component props\r\n            ...(listData?.sortInfo ?? {}),\r\n            loading: queryResult.loading,\r\n            data: listData?.nodes || [],\r\n            totalRows: listData?.pageInfo.total,\r\n        },\r\n    };\r\n};\r\n\r\nexport default useGraphQlList;\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { readLocalStorageValue } from 'common/helpers/readLocalStorageValue';\r\n\r\nconst DEFAULT_INPUT = {\r\n    pagination: { page: 1, itemsPerPage: 25 },\r\n};\r\n\r\n// Bump version after GraphQL API changes to prevent reading of invalid input from storage\r\nconst VERSION = 2;\r\n\r\nexport const getGraphQlListInputStorageArgs = ({\r\n    key,\r\n    withPagination = true,\r\n    defaultInput,\r\n}) => [\r\n    `${key}ListInput.v${VERSION}`,\r\n    defaultInput || (withPagination ? DEFAULT_INPUT : {}),\r\n];\r\n\r\nexport const readGraphQlListInputFromStorage = options => readLocalStorageValue(\r\n    ...getGraphQlListInputStorageArgs(options),\r\n);\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { Locale } from 'jsw';\r\nimport { readGraphQlListInputFromStorage } from 'components/common/GraphQlList';\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: '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 = readGraphQlListInputFromStorage({ key: 'OdbcServerPage' });\r\n        await apolloClient.query({\r\n            query: ODBC_SERVER_LIST,\r\n            variables: { input },\r\n        });\r\n    },\r\n    handle: {\r\n        crumb: () => ({\r\n            title: Locale.getSection('components.routes').lmsg('odbcServer'),\r\n        }),\r\n        helpContext: 'odbc_connection_config',\r\n    },\r\n    children: [\r\n        odbcAddRoute,\r\n        odbcEditRoute,\r\n    ],\r\n};\r\n","// Copyright 1999-2025. WebPros 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-2025. WebPros 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\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortColumn\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortDirection\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":310}};\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    sortInfo {\\r\\n        sortColumn\\r\\n        sortDirection\\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-2025. WebPros 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        path: 'connection-info',\r\n        componentLoader: () => import(/* webpackChunkName: \"components/pages/ConnectionInfo\" */'components/pages/ConnectionInfo'),\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\":\"isSameSsl\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"forwarding\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"redirect\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sslSettings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ssl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sslRedirect\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificateId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"availableCertificates\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"repository\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspNetSettings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"versions\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"configs\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"version\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webstatSettings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webstat\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webstatProtected\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webScriptingSettings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ssi\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ssiHtml\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"cgi\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"cgiMode\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fastcgi\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"asp\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspDotNet\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"perl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"python\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webDeploy\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errorDocs\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"writeModify\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":4521}};\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                isSameSsl\\r\\n            }\\r\\n            forwarding {\\r\\n                code\\r\\n                redirect\\r\\n            }\\r\\n            sslSettings {\\r\\n                ssl\\r\\n                sslRedirect\\r\\n                certificateId\\r\\n                availableCertificates {\\r\\n                    id\\r\\n                    name\\r\\n                    repository\\r\\n                }\\r\\n            }\\r\\n            aspNetSettings {\\r\\n                versions\\r\\n                configs {\\r\\n                    version\\r\\n                }\\r\\n            }\\r\\n            webstatSettings {\\r\\n                webstat\\r\\n                webstatProtected\\r\\n            }\\r\\n            webScriptingSettings {\\r\\n                ssi\\r\\n                ssiHtml\\r\\n                cgi\\r\\n                cgiMode\\r\\n                fastcgi\\r\\n                asp\\r\\n                aspDotNet\\r\\n                perl\\r\\n                python\\r\\n                webDeploy\\r\\n                errorDocs\\r\\n                writeModify\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"HostingSettingsPage\"] = oneQuery(doc, \"HostingSettingsPage\");\n        \r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport apolloClient from '../apolloClient';\r\nimport { gql } from '@apollo/client';\r\nimport { redirect } from 'react-router-dom';\r\nimport { getId } from 'helpers/getId';\r\nimport { Locale } from 'jsw';\r\n\r\nconst ROUTE = 'summary-report';\r\n\r\nexport const summaryReportChildrenRoute = {\r\n    path: ROUTE,\r\n    children: [{\r\n        handle: {\r\n            crumb: () => ({\r\n                title: Locale.getSection('components.routes').lmsg('summaryReport'),\r\n            }),\r\n        },\r\n        children: [{\r\n            path: 'layouts',\r\n            componentLoader: () => import(/* webpackChunkName: \"components/pages/SummaryReportLayoutsPage\" */'components/pages/SummaryReportLayoutsPage'),\r\n            loader: async () => {\r\n                const { data } = await apolloClient.query({\r\n                    query: require('queries/SummaryReportLayoutsPage.graphql'),\r\n                });\r\n                return data;\r\n            },\r\n            handle: {\r\n                crumb: () => ({\r\n                    title: Locale.getSection('components.routes').lmsg('summaryReportLayouts'),\r\n                }),\r\n                helpContext: ({ data: { viewer: type } }) => type === 'ADMIN' ? 'admin.report.layout' : 'reseller.report.layout',\r\n            },\r\n            children: [{\r\n                path: 'add',\r\n                componentLoader: () => import(\r\n                    /* webpackChunkName: \"components/pages/SummaryReportLayoutsPage/AddPage\" */\r\n                    'components/pages/SummaryReportLayoutsPage/AddPage'\r\n                ),\r\n                loader: async () => {\r\n                    const { data } = await apolloClient.query({\r\n                        query: require('queries/SummaryReportLayoutAddPage.graphql'),\r\n                    });\r\n                    return data;\r\n                },\r\n            }, {\r\n                path: ':layoutId/edit',\r\n                componentLoader: () => import(\r\n                    /* webpackChunkName: \"components/pages/SummaryReportLayoutsPage/EditPage\" */\r\n                    'components/pages/SummaryReportLayoutsPage/EditPage'\r\n                ),\r\n                loader: async ({ params: { layoutId } }) => {\r\n                    const { data } = await apolloClient.query({\r\n                        query: require('queries/SummaryReportLayoutEditPage.graphql'),\r\n                        variables: { id: btoa(`SummaryReportLayout:${layoutId}`) },\r\n                    });\r\n                    return data;\r\n                },\r\n            }],\r\n        }, {\r\n            path: 'traffic-history',\r\n            componentLoader: () => import(/* webpackChunkName: \"components/pages/TrafficHistoryReportPage\" */'components/pages/TrafficHistoryReportPage'),\r\n            loader: async () => {\r\n                const { data } = await apolloClient.query({\r\n                    query: require('queries/TrafficHistoryReportPage.graphql'),\r\n                });\r\n                return data;\r\n            },\r\n            handle: {\r\n                crumb: () => ({\r\n                    title: Locale.getSection('components.routes').lmsg('summaryReportTrafficHistory'),\r\n                }),\r\n                helpContext: ({ data: { viewer: type } }) => type === 'ADMIN' ? 'admin.report.traffic-history' : 'reseller.report.traffic-history',\r\n            },\r\n        }],\r\n    }, {\r\n        path: ':layoutId',\r\n        handle: {\r\n            crumb: () => ({\r\n                title: Locale.getSection('components.routes').lmsg('summaryReport'),\r\n            }),\r\n        },\r\n        children: [{\r\n            path: 'schedule',\r\n            componentLoader: () => import(/* webpackChunkName: \"components/pages/SummaryReportSchedulesPage\" */'components/pages/SummaryReportSchedulesPage'),\r\n            loader: async ({ params: { layoutId } }) => {\r\n                const { data } = await apolloClient.query({\r\n                    query: require('queries/SummaryReportSchedulesPage.graphql'),\r\n                    variables: { id: btoa(`SummaryReportLayout:${layoutId}`) },\r\n                });\r\n                return data;\r\n            },\r\n            handle: {\r\n                crumb: ({ data: { summaryReportLayout: { name } } }) => ({\r\n                    title: Locale.getSection('components.routes').lmsg('summaryReportSchedule', { name }),\r\n                }),\r\n                helpContext: ({ data: { viewer: type } }) => type === 'ADMIN' ? 'admin.report.layout.auto' : 'reseller.report.layout.auto',\r\n            },\r\n            children: [{\r\n                path: 'add',\r\n                componentLoader: () => import(\r\n                    /* webpackChunkName: \"components/pages/SummaryReportSchedulesPage\" */\r\n                    'components/pages/SummaryReportSchedulesPage/AddPage'\r\n                ),\r\n                loader: async ({ params: { layoutId } }) => {\r\n                    const { data } = await apolloClient.query({\r\n                        query: require('queries/SummaryReportScheduleAddPage.graphql'),\r\n                        variables: {\r\n                            layoutId: btoa(`SummaryReportLayout:${layoutId}`),\r\n                        },\r\n                    });\r\n                    return data;\r\n                },\r\n            }, {\r\n                path: ':scheduleId/edit',\r\n                componentLoader: () => import(\r\n                    /* webpackChunkName: \"components/pages/SummaryReportSchedulesPage\" */\r\n                    'components/pages/SummaryReportSchedulesPage/EditPage'\r\n                ),\r\n                loader: async ({ params: { scheduleId, layoutId } }) => {\r\n                    const { data } = await apolloClient.query({\r\n                        query: require('queries/SummaryReportScheduleEditPage.graphql'),\r\n                        variables: {\r\n                            scheduleId: btoa(`SummaryReportSchedule:${scheduleId}`),\r\n                            layoutId: btoa(`SummaryReportLayout:${layoutId}`),\r\n                        },\r\n                    });\r\n                    return data;\r\n                },\r\n            }],\r\n        },\r\n        {\r\n            path: 'print',\r\n            componentLoader: () => import(/* webpackChunkName: \"components/pages/SummaryReportPage\" */'components/pages/SummaryReportPage/SummaryReportPrintPage'),\r\n            loader: async ({ params: { layoutId } }) => {\r\n                await apolloClient.query({\r\n                    query: require('queries/SummaryReportPrintPage.graphql'),\r\n                    variables: { id: btoa(`SummaryReportLayout:${layoutId}`) },\r\n                });\r\n            },\r\n            handle: {\r\n                noLayout: true,\r\n            },\r\n        }],\r\n    },\r\n    ],\r\n};\r\n\r\nexport const summaryReportRoute = ({ ignoreTopLevelTitle = false } = {}) => ({\r\n    path: ROUTE,\r\n    handle: {\r\n        crumb: () => ignoreTopLevelTitle ? [] : {\r\n            title: Locale.getSection('components.routes').lmsg('summaryReport'),\r\n        },\r\n    },\r\n    children: [{\r\n        index: true,\r\n        handle: {\r\n            crumb: () => ({\r\n                title: Locale.getSection('components.routes').lmsg('summaryReport'),\r\n            }),\r\n        },\r\n        loader: async () => {\r\n            const { data: { viewer: { summaryReportLayouts } } } = await apolloClient.query({\r\n                query: gql`\r\n                    query {\r\n                        viewer {\r\n                            login\r\n                            summaryReportLayouts {\r\n                                id\r\n                                isDefault\r\n                            }\r\n                        }\r\n                    }\r\n                `,\r\n            });\r\n\r\n            const defaultId = summaryReportLayouts.find(({ isDefault }) => isDefault)?.id ?? summaryReportLayouts[0]?.id;\r\n            if (defaultId) {\r\n                return redirect(getId(defaultId));\r\n            }\r\n\r\n            throw new Response('Not Found', { status: 404 });\r\n        },\r\n\r\n    }, {\r\n        path: ':layoutId',\r\n        children: [{\r\n            index: true,\r\n            componentLoader: () => import(/* webpackChunkName: \"components/pages/SummaryReportPage\" */'components/pages/SummaryReportPage'),\r\n            loader: async ({ params: { layoutId } }) => {\r\n                const { data } = await apolloClient.query({\r\n                    query: require('queries/SummaryReportPage.graphql'),\r\n                    variables: { id: btoa(`SummaryReportLayout:${layoutId}`) },\r\n                });\r\n                return data;\r\n            },\r\n            handle: {\r\n                crumb: () => ignoreTopLevelTitle ? [] : [{\r\n                    title: Locale.getSection('components.routes').lmsg('summaryReport'),\r\n                }],\r\n                helpContext: ({ data: { viewer: type } }) => type === 'ADMIN' ? 'admin.report' : 'reseller.report',\r\n            },\r\n        }],\r\n    },\r\n    ],\r\n});\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportLayoutsPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"summaryReportLayouts\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isDefault\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"general\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resellers\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clients\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"personalClients\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"personalDomains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schedules\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isEnabled\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canManageResellers\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canManageCustomers\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":495}};\n    doc.loc.source = {\"body\":\"query SummaryReportLayoutsPage {\\r\\n    viewer {\\r\\n        login\\r\\n        type\\r\\n        summaryReportLayouts {\\r\\n            name\\r\\n            isDefault\\r\\n            id\\r\\n            general\\r\\n            resellers\\r\\n            clients\\r\\n            personalClients\\r\\n            domains\\r\\n            personalDomains\\r\\n            schedules {\\r\\n                id\\r\\n                isEnabled\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n    mode {\\r\\n        canManageResellers\\r\\n        canManageCustomers\\r\\n    }\\r\\n}\\r\\n\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"SummaryReportLayoutsPage\"] = oneQuery(doc, \"SummaryReportLayoutsPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportLayoutAddPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canManageResellers\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canManageCustomers\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":164}};\n    doc.loc.source = {\"body\":\"query SummaryReportLayoutAddPage {\\r\\n    mode {\\r\\n        canManageResellers\\r\\n        canManageCustomers\\r\\n    }\\r\\n    viewer {\\r\\n        login\\r\\n        type\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"SummaryReportLayoutAddPage\"] = oneQuery(doc, \"SummaryReportLayoutAddPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportLayoutEditPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"summaryReportLayout\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportLayout\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isDefault\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"general\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resellers\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clients\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"personalClients\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domains\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"personalDomains\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":349}};\n    doc.loc.source = {\"body\":\"query SummaryReportLayoutEditPage($id: ID!) {\\r\\n    summaryReportLayout: node(id: $id) {\\r\\n        ... on SummaryReportLayout {\\r\\n            id\\r\\n            name\\r\\n            isDefault\\r\\n            general\\r\\n            resellers\\r\\n            clients\\r\\n            personalClients\\r\\n            domains\\r\\n            personalDomains\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"SummaryReportLayoutEditPage\"] = oneQuery(doc, \"SummaryReportLayoutEditPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"TrafficHistoryReportPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"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\":\"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\":255}};\n    doc.loc.source = {\"body\":\"query TrafficHistoryReportPage {\\r\\n     viewer {\\r\\n        login\\r\\n        type\\r\\n        client {\\r\\n            id\\r\\n            trafficHistory {\\r\\n                year\\r\\n                month\\r\\n                trafficUsage\\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[\"TrafficHistoryReportPage\"] = oneQuery(doc, \"TrafficHistoryReportPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportSchedulesPage\"},\"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\":\"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\":\"email\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"summaryReportLayout\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportLayout\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schedules\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"period\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lastSentDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"email\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":462}};\n    doc.loc.source = {\"body\":\"query SummaryReportSchedulesPage($id: ID!) {\\r\\n     viewer {\\r\\n        login\\r\\n        type\\r\\n        client {\\r\\n            id\\r\\n            email\\r\\n        }\\r\\n    }\\r\\n    summaryReportLayout: node(id: $id) {\\r\\n        ... on SummaryReportLayout {\\r\\n            id\\r\\n            name\\r\\n            schedules {\\r\\n                id\\r\\n                isEnabled\\r\\n                period\\r\\n                lastSentDate\\r\\n                email\\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[\"SummaryReportSchedulesPage\"] = oneQuery(doc, \"SummaryReportSchedulesPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportScheduleAddPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"layoutId\"}},\"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\":\"email\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"summaryReportLayout\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"layoutId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportLayout\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":295}};\n    doc.loc.source = {\"body\":\"query SummaryReportScheduleAddPage($layoutId: ID!) {\\r\\n    viewer {\\r\\n        login\\r\\n        client {\\r\\n            id\\r\\n            email\\r\\n        }\\r\\n    }\\r\\n    summaryReportLayout: node(id: $layoutId) {\\r\\n        ... on SummaryReportLayout {\\r\\n            id\\r\\n            name\\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[\"SummaryReportScheduleAddPage\"] = oneQuery(doc, \"SummaryReportScheduleAddPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportScheduleEditPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"scheduleId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"layoutId\"}},\"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\":\"email\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"summaryReportSchedule\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"scheduleId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportSchedule\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"period\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"email\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"summaryReportLayout\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"layoutId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportLayout\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":479}};\n    doc.loc.source = {\"body\":\"query SummaryReportScheduleEditPage($scheduleId: ID!, $layoutId: ID!) {\\r\\n    viewer {\\r\\n        login\\r\\n        client {\\r\\n            id\\r\\n            email\\r\\n        }\\r\\n    }\\r\\n    summaryReportSchedule: node(id: $scheduleId) {\\r\\n        ... on SummaryReportSchedule {\\r\\n            id\\r\\n            period\\r\\n            email\\r\\n        }\\r\\n    }\\r\\n    summaryReportLayout: node(id: $layoutId) {\\r\\n        ... on SummaryReportLayout {\\r\\n            id\\r\\n            name\\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[\"SummaryReportScheduleEditPage\"] = oneQuery(doc, \"SummaryReportScheduleEditPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportPrintPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"summaryReportLayout\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportLayout\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"data\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportFragment\"},\"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\":\"server\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isSitebuilderAvailable\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":369}};\n    doc.loc.source = {\"body\":\"#import \\\"./SummaryReportFragment.graphql\\\"\\r\\n\\r\\nquery SummaryReportPrintPage($id: ID!) {\\r\\n    summaryReportLayout: node(id: $id) {\\r\\n        ... on SummaryReportLayout {\\r\\n            id\\r\\n            data {\\r\\n                ...SummaryReportFragment\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n    os {\\r\\n        isUnix\\r\\n    }\\r\\n    server {\\r\\n        isSitebuilderAvailable\\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[\"SummaryReportPrintPage\"] = oneQuery(doc, \"SummaryReportPrintPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportData\"}},\"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\":\"resMssqlDataBases\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resPgsqlDataBases\"},\"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\":\"clMssqlDataBases\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clPgsqlDataBases\"},\"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\":\"clMssqlDataBases\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clPgsqlDataBases\"},\"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\":\"mssqlDataBases\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pgsqlDataBases\"},\"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\":\"domMssqlDataBases\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domPgsqlDataBases\"},\"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\":\"mssqlDataBases\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pgsqlDataBases\"},\"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\":\"domMssqlDataBases\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domPgsqlDataBases\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":2914}};\n    doc.loc.source = {\"body\":\"fragment SummaryReportFragment on SummaryReportData  {\\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        resMssqlDataBases\\r\\n        resPgsqlDataBases\\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        clMssqlDataBases\\r\\n        clPgsqlDataBases\\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        clMssqlDataBases\\r\\n        clPgsqlDataBases\\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    mssqlDataBases\\r\\n    pgsqlDataBases\\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        domMssqlDataBases\\r\\n        domPgsqlDataBases\\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    mssqlDataBases\\r\\n    pgsqlDataBases\\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        domMssqlDataBases\\r\\n        domPgsqlDataBases\\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[\"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\":\"id\"}},\"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\":\"email\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"summaryReportLayouts\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"summaryReportLayout\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportLayout\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"data\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"SummaryReportFragment\"},\"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\":\"keyTraffic\"},\"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\":\"server\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isSitebuilderAvailable\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":639}};\n    doc.loc.source = {\"body\":\"#import \\\"./SummaryReportFragment.graphql\\\"\\r\\n\\r\\nquery SummaryReportPage($id: ID!) {\\r\\n     viewer {\\r\\n        login\\r\\n        type\\r\\n        client {\\r\\n            id\\r\\n            email\\r\\n            type\\r\\n        }\\r\\n        summaryReportLayouts {\\r\\n            name\\r\\n            id\\r\\n        }\\r\\n    }\\r\\n    summaryReportLayout: node(id: $id) {\\r\\n        ... on SummaryReportLayout {\\r\\n            id\\r\\n            data {\\r\\n                ...SummaryReportFragment\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n    primaryKey {\\r\\n        pleskKeyId\\r\\n        keyTraffic\\r\\n    }\\r\\n    os {\\r\\n        isUnix\\r\\n    }\\r\\n    server {\\r\\n        isSitebuilderAvailable\\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","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { Locale } from 'jsw';\r\nimport pageData from 'helpers/pageData';\r\nimport { getId } from 'helpers/getId';\r\nimport { getContextUrl } from 'helpers/getContextUrl';\r\nimport { aspDotNetDomainSettingsRoute } from 'routes/aspDotNetDomainSettingsRoute';\r\nimport { bandwidthLimitingDomainRoute } from 'routes/bandwidthLimitingDomainRoute';\r\nimport { hotlinkProtectionDomainRoute } from 'routes/hotlinkProtectionDomainRoute';\r\nimport { odbcDomainRoute } from 'routes/odbcDomainRoute';\r\nimport { protectedDirectoriesRoute } from 'routes/protectedDirectoriesRoute';\r\nimport { virtualDirectoryRoute } from './virtualDirectoryRoute';\r\nimport { trafficUsageByDomainRoute } from 'routes/trafficUsageByDomainRoute';\r\nimport apolloClient from '../apolloClient';\r\n\r\nimport DOMAIN_PAGE from 'queries/DomainPage.graphql';\r\n\r\nexport const domainRoute = {\r\n    path: 'domains/:domainId',\r\n    loader: async ({ params }) => {\r\n        const id = btoa(`Domain:${params.domainId}`);\r\n\r\n        const { data } = await apolloClient.query({\r\n            query: DOMAIN_PAGE,\r\n            variables: { id },\r\n        });\r\n\r\n        return data;\r\n    },\r\n    handle: {\r\n        crumb: ({ data, matchesContext }) => {\r\n            matchesContext.domainRouteData = data;\r\n\r\n            const { domain } = data;\r\n            let { baseDomain } = data;\r\n            baseDomain = domain.baseDomain || domain;\r\n\r\n            const { pageSidebar } = pageData();\r\n            const { isPowerUserPanel, navigationContext } = pageSidebar;\r\n\r\n            const domainId = getId(domain.id);\r\n            const baseDomainId = getId(baseDomain.id);\r\n\r\n            const crumbs = [\r\n                {\r\n                    title: Locale.getSection('components.routes').lmsg('subscriptions'),\r\n                    href: '/admin/subscription/list',\r\n                    show: !isPowerUserPanel && navigationContext === 'subscriptions',\r\n                },\r\n                {\r\n                    title: `<b>${baseDomain.name}</b>`,\r\n                    href: `/admin/subscription/overview/id/${baseDomainId}`,\r\n                    show: !isPowerUserPanel && navigationContext === 'subscriptions',\r\n                },\r\n                {\r\n                    title: Locale.getSection('components.routes').lmsg('domains'),\r\n                    href: '/admin/domain/list',\r\n                    show: !isPowerUserPanel && navigationContext === 'domains',\r\n                },\r\n                {\r\n                    title: Locale.getSection('components.routes').lmsg('web'),\r\n                    href: getContextUrl(baseDomainId, '/smb/web/view'),\r\n                    show: isPowerUserPanel || navigationContext === 'subscriptions',\r\n                },\r\n                {\r\n                    title: domain.name,\r\n                    href: getContextUrl(baseDomainId, `/smb/web/overview/id/${domainId}/type/domain`),\r\n                },\r\n            ].filter(({ show = true }) => show);\r\n\r\n            return crumbs;\r\n        },\r\n    },\r\n    children: [\r\n        aspDotNetDomainSettingsRoute,\r\n        bandwidthLimitingDomainRoute,\r\n        hotlinkProtectionDomainRoute,\r\n        odbcDomainRoute,\r\n        protectedDirectoriesRoute,\r\n        virtualDirectoryRoute,\r\n        trafficUsageByDomainRoute({ path: 'traffic-usage' }),\r\n    ],\r\n};\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport pageData from '../helpers/pageData';\r\n\r\nexport const getContextUrl = (domainId, url) => {\r\n    const { pageSidebar } = pageData();\r\n    const returnUrl = encodeURIComponent(url);\r\n    return pageSidebar?.isPowerUserPanel\r\n        ? `/smb/account/switch/id/${domainId}?hideNotice=1&returnUrl=${returnUrl}`\r\n        : `/admin/subscription/login/id/${domainId}?pageUrl=${returnUrl}`;\r\n};\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { Locale } from 'jsw';\r\nimport apolloClient from 'apolloClient';\r\n\r\nimport ASP_DOT_NET_DOMAIN_SETTINGS_PAGE from 'queries/AspDotNetDomainSettingsPage.graphql';\r\n\r\nexport const aspDotNetDomainSettingsRoute = {\r\n    path: 'asp-dot-net-settings',\r\n    componentLoader: () => import(\r\n        /* webpackChunkName: \"components/pages/AspDotNetSettingsPage/AspDotNetDomainSettingsPage\" */'components/pages/AspDotNetSettingsPage/AspDotNetDomainSettingsPage'),\r\n    loader: async ({ params }) => {\r\n        const { data } = await apolloClient.query({\r\n            query: ASP_DOT_NET_DOMAIN_SETTINGS_PAGE,\r\n            variables: { id: btoa(`Domain:${params.domainId}`) },\r\n        });\r\n\r\n        if (!data.domain.webScriptingSettings?.aspDotNet || !data.domain.aspNetSettings?.configs.length) {\r\n            throw new Response('Not Found', { status: 404 });\r\n        }\r\n\r\n        return data;\r\n    },\r\n    handle: {\r\n        helpContext: 'aspdotnet',\r\n        crumb: ({ matchesContext, params }) => {\r\n            const { domain } = matchesContext.domainRouteData;\r\n            const locale = Locale.getSection('components.routes');\r\n\r\n            return [\r\n                {\r\n                    title: locale.lmsg('aspDotNetDomainSettings', { domain: `<b>${domain.name}</b>` }),\r\n                    href: `/cp/domains/${params.domainId}/asp-dot-net-settings`,\r\n                },\r\n            ];\r\n        },\r\n    },\r\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\":\"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\":\"webScriptingSettings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspDotNet\"},\"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\":2389}};\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            owner {\\r\\n                id\\r\\n                login\\r\\n            }\\r\\n            webScriptingSettings {\\r\\n                aspDotNet\\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\",\"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","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { Locale } from 'jsw';\r\nimport apolloClient from 'apolloClient';\r\n\r\nimport BANDWIDTH_LIMITING_PAGE from 'queries/BandwidthLimitingPage.graphql';\r\n\r\nexport const bandwidthLimitingDomainRoute = {\r\n    path: '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: BANDWIDTH_LIMITING_PAGE,\r\n            variables: { id: btoa(`Domain:${params.domainId}`) },\r\n        });\r\n        return data;\r\n    },\r\n    handle: {\r\n        helpContext: 'client.domain.hosting.performance',\r\n        crumb: ({ matchesContext }) => {\r\n            const { domain } = matchesContext.domainRouteData;\r\n\r\n            const locale = Locale.getSection('components.routes');\r\n            return { title: locale.lmsg('bandwidthLimiting', { domainName: `<b>${domain.name}</b>` }) };\r\n        },\r\n        key: ({ params }) => params.domainId,\r\n    },\r\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\":\"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\":375}};\n    doc.loc.source = {\"body\":\"query BandwidthLimitingPage($id: ID!) {\\r\\n    domain: node(id: $id) {\\r\\n        ... on Domain {\\r\\n            id\\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","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { Locale } from 'jsw';\r\nimport apolloClient from 'apolloClient';\r\n\r\nimport HOTLINK_PROTECTION_PAGE from 'queries/HotlinkProtectionPage.graphql';\r\n\r\nexport const hotlinkProtectionDomainRoute = {\r\n    path: '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: HOTLINK_PROTECTION_PAGE,\r\n            variables: { id: btoa(`Domain:${params.domainId}`) },\r\n        });\r\n        return data;\r\n    },\r\n    handle: {\r\n        helpContext: 'client.domain.hosting.hotlink-protection',\r\n        crumb: ({ matchesContext }) => {\r\n            const { domain } = matchesContext.domainRouteData;\r\n\r\n            const locale = Locale.getSection('components.routes');\r\n            return { title: locale.lmsg('hotlinkProtection', { domainName: `<b>${domain.name}</b>` }) };\r\n        },\r\n        key: ({ params }) => params.domainId,\r\n    },\r\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\":\"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\":318}};\n    doc.loc.source = {\"body\":\"query HotlinkProtectionPage($id: ID!) {\\r\\n    domain: node(id: $id) {\\r\\n        ... on Domain {\\r\\n            id\\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","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { Locale } from 'jsw';\r\nimport { readGraphQlListInputFromStorage } from 'components/common/GraphQlList';\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: '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 = readGraphQlListInputFromStorage({ key: `OdbcDomainPage${params.domainId}` });\r\n        const id = btoa(`Domain:${params.domainId}`);\r\n\r\n        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    handle: {\r\n        helpContext: 'odbc_connection_config',\r\n        crumb: ({ matchesContext }) => {\r\n            if (!matchesContext.domainRouteData) {\r\n                return null;\r\n            }\r\n            const { domain } = matchesContext.domainRouteData;\r\n\r\n            const locale = Locale.getSection('components.routes');\r\n            return {\r\n                title: locale.lmsg('odbcDomain', { domainName: `<b>${domain.name}</b>` }),\r\n            };\r\n        },\r\n        key: ({ params }) => params.domainId,\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\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"DomainSubscriptionOdbcLimitFragment\"},\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":250}};\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            ...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-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { Locale } from 'jsw';\r\nimport { protectedDirectoryListRoute } from 'routes/protectedDirectoryListRoute';\r\nimport { protectedDirectoryUserListRoute } from 'routes/protectedDirectoryUserListRoute';\r\n\r\nexport const protectedDirectoriesRoute = {\r\n    path: 'protected-directories',\r\n    handle: {\r\n        crumb: () => ({\r\n            title: Locale.getSection('components.routes').lmsg('protectedDirectories'),\r\n        }),\r\n        returnUrl: ({ params }) => `/cp/domains/${params.domainId}/protected-directories`,\r\n    },\r\n    children: [\r\n        protectedDirectoryListRoute,\r\n        protectedDirectoryUserListRoute,\r\n    ],\r\n};\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { Locale } from 'jsw';\r\nimport { readGraphQlListInputFromStorage } from 'components/common/GraphQlList';\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\n\r\nexport const protectedDirectoryListRoute = {\r\n    path: '',\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 { data: listData } = await apolloClient.query({\r\n            query: PROTECTED_DIRECTORY_LIST,\r\n            variables: {\r\n                id: btoa(`Domain:${params.domainId}`),\r\n                input: readGraphQlListInputFromStorage({ key: `ProtectedDirectoryListPage${params.domainId}` }),\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    handle: {\r\n        helpContext: 'client.domain.hosting.protected-directories',\r\n        pageTitle: ({ matchesContext }) => {\r\n            if (!matchesContext.domainRouteData) {\r\n                return null;\r\n            }\r\n            const { domain } = matchesContext.domainRouteData;\r\n\r\n            const locale = Locale.getSection('components.routes');\r\n            return locale.lmsg('protectedDirectoryList', { domainName: `<b>${domain.name}</b>` });\r\n        },\r\n        key: ({ params }) => params.domainId,\r\n    },\r\n    children: [\r\n        protectedDirectoryAddRoute,\r\n        protectedDirectoryEditRoute,\r\n    ],\r\n};\r\n","// Copyright 1999-2025. WebPros 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-2025. WebPros 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            domainId,\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\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortColumn\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortDirection\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":759}};\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                    sortInfo {\\r\\n                        sortColumn\\r\\n                        sortDirection\\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","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { Locale } from 'jsw';\r\nimport { readGraphQlListInputFromStorage } from 'components/common/GraphQlList';\r\nimport apolloClient from 'apolloClient';\r\nimport { protectedDirectoryUserAddRoute } from 'routes/protectedDirectoryUserAddRoute';\r\nimport { protectedDirectoryUserPasswordRoute } from 'routes/protectedDirectoryUserPasswordRoute';\r\n\r\nimport PROTECTED_DIRECTORY_USER_LIST from 'queries/ProtectedDirectoryUserList.graphql';\r\nimport PROTECTED_DIRECTORY_PATH from 'queries/ProtectedDirectoryPath.graphql';\r\n\r\nexport const protectedDirectoryUserListRoute = {\r\n    path: ':directoryId/users',\r\n    componentLoader: () => import(\r\n        /* webpackChunkName: \"components/pages/ProtectedDirectoryUserListPage\" */\r\n        'components/pages/ProtectedDirectoryUserListPage'\r\n    ),\r\n    loader: async ({ params }) => {\r\n        const id = btoa(`ProtectedDirectory:${params.directoryId}`);\r\n\r\n        const [{ data: directoryData }] = await Promise.all([\r\n            apolloClient.query({\r\n                query: PROTECTED_DIRECTORY_PATH,\r\n                variables: { id },\r\n            }),\r\n            apolloClient.query({\r\n                query: PROTECTED_DIRECTORY_USER_LIST,\r\n                variables: {\r\n                    id,\r\n                    input: readGraphQlListInputFromStorage({ key: `ProtectedDirectoryUserListPage${params.directoryId}` }),\r\n                },\r\n            }),\r\n        ]);\r\n\r\n        return directoryData;\r\n    },\r\n    handle: {\r\n        helpContext: 'client.domain.hosting.protected-directories',\r\n        crumb: ({ data }) => {\r\n            const { protectedDirectory } = data;\r\n\r\n            const locale = Locale.getSection('components.routes');\r\n            const title = locale.lmsg('protectedDirectoryUserList', { directory: `/${protectedDirectory.path}` });\r\n\r\n            return [{ title }];\r\n        },\r\n    },\r\n    children: [\r\n        protectedDirectoryUserAddRoute,\r\n        protectedDirectoryUserPasswordRoute,\r\n    ],\r\n};\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport apolloClient from 'apolloClient';\r\n\r\nimport PROTECTED_DIRECTORY_PATH from 'queries/ProtectedDirectoryPath.graphql';\r\n\r\nexport const protectedDirectoryUserAddRoute = {\r\n    path: 'add',\r\n    componentLoader: () => import(\r\n        /* webpackChunkName: \"components/pages/ProtectedDirectoryUserAddPage\" */\r\n        'components/pages/ProtectedDirectoryUserAddPage'\r\n    ),\r\n    loader: async ({ params }) => {\r\n        const { data } = await apolloClient.query({\r\n            query: PROTECTED_DIRECTORY_PATH,\r\n            variables: { id: btoa(`ProtectedDirectory:${params.directoryId}`) },\r\n        });\r\n\r\n        return data;\r\n    },\r\n};\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ProtectedDirectoryPath\"},\"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\":\"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\":\"InlineFragment\",\"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\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":175}};\n    doc.loc.source = {\"body\":\"query ProtectedDirectoryPath($id: ID!) {\\r\\n    protectedDirectory: node(id: $id) {\\r\\n        ... on ProtectedDirectory {\\r\\n            id\\r\\n            path\\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[\"ProtectedDirectoryPath\"] = oneQuery(doc, \"ProtectedDirectoryPath\");\n        \r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { gql } from '@apollo/client';\r\nimport apolloClient from 'apolloClient';\r\n\r\nexport const protectedDirectoryUserPasswordRoute = {\r\n    path: ':userId/password',\r\n    componentLoader: () => import(\r\n        /* webpackChunkName: \"components/pages/ProtectedDirectoryUserPasswordPage\" */\r\n        'components/pages/ProtectedDirectoryUserPasswordPage'\r\n    ),\r\n    loader: async ({ params }) => {\r\n        const { data } = await apolloClient.query({\r\n            query: gql`\r\n                query ($id: ID!) {\r\n                    protectedDirectoryUser: node(id: $id) {\r\n                        ... on ProtectedDirectoryUser { id login }\r\n                    }\r\n                }\r\n            `,\r\n            variables: { id: btoa(`ProtectedDirectoryUser:${params.userId}`) },\r\n        });\r\n\r\n        return data;\r\n    },\r\n};\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ProtectedDirectoryUserList\"},\"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\":\"ProtectedDirectoryUserListInput\"}},\"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\":\"InlineFragment\",\"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\":\"users\"},\"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\":\"ProtectedDirectoryUserListFragment\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":385}};\n    doc.loc.source = {\"body\":\"#import \\\"queries/ProtectedDirectoryUserListFragment.graphql\\\"\\r\\n\\r\\nquery ProtectedDirectoryUserList(\\r\\n    $id: ID!,\\r\\n    $input: ProtectedDirectoryUserListInput\\r\\n) {\\r\\n    protectedDirectory: node(id: $id) {\\r\\n        ... on ProtectedDirectory {\\r\\n            id\\r\\n            users(input: $input) {\\r\\n                ...ProtectedDirectoryUserListFragment\\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/ProtectedDirectoryUserListFragment.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[\"ProtectedDirectoryUserList\"] = oneQuery(doc, \"ProtectedDirectoryUserList\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ProtectedDirectoryUserListFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ProtectedDirectoryUserList\"}},\"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\":\"login\"},\"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\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortColumn\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortDirection\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":267}};\n    doc.loc.source = {\"body\":\"fragment ProtectedDirectoryUserListFragment on ProtectedDirectoryUserList {\\r\\n    nodes {\\r\\n        id\\r\\n        login\\r\\n    }\\r\\n    pageInfo {\\r\\n        current\\r\\n        total\\r\\n        pageCount\\r\\n    }\\r\\n    sortInfo {\\r\\n        sortColumn\\r\\n        sortDirection\\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[\"ProtectedDirectoryUserListFragment\"] = oneQuery(doc, \"ProtectedDirectoryUserListFragment\");\n        \r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\nimport { redirect } from 'react-router-dom';\r\nimport apolloClient from 'apolloClient';\r\nimport { readGraphQlListInputFromStorage } from 'components/common/GraphQlList';\r\nimport { Locale } from 'jsw';\r\nimport { getId } from 'helpers/getId';\r\nimport VirtualDirectorySidebar from 'components/sidebars/VirtualDirectorySidebar';\r\nimport { protectedDirectoryUserAddRoute } from 'routes/protectedDirectoryUserAddRoute';\r\nimport { protectedDirectoryUserPasswordRoute } from 'routes/protectedDirectoryUserPasswordRoute';\r\nimport { protectedDirectoryEditRoute } from 'routes/protectedDirectoryEditRoute';\r\n\r\nimport CREATE_VIRTUAL_DIRECTORY_PAGE from 'queries/CreateVirtualDirectoryPage.graphql';\r\nimport EDIT_VIRTUAL_DIRECTORY_PAGE from 'queries/EditVirtualDirectoryPage.graphql';\r\nimport VIRTUAL_DIRECTORY_PAGE from 'queries/VirtualDirectoryPage.graphql';\r\nimport VIRTUAL_DIRECTORY_BROWSE_PAGE from 'queries/VirtualDirectoryBrowsePage.graphql';\r\nimport VIRTUAL_DIRECTORY_PROTECTION_PAGE from 'queries/VirtualDirectoryProtectionPage.graphql';\r\nimport VIRTUAL_DIRECTORY_PROTECTION_USER_LIST from 'queries/VirtualDirectoryProtectionUserList.graphql';\r\nimport VIRTUAL_DIRECTORY_MIME_TYPE_LIST from 'queries/VirtualDirectoryMimeTypeList.graphql';\r\nimport VIRTUAL_DIRECTORY_ERROR_DOC_LIST from 'queries/VirtualDirectoryErrorDocList.graphql';\r\nimport VIRTUAL_DIRECTORY_CONTENT_LIST from 'queries/VirtualDirectoryContentList.graphql';\r\nimport ASP_DOT_NET_DOMAIN_SETTINGS_PAGE from 'queries/AspDotNetDomainSettingsPage.graphql';\r\nimport VIRTUAL_DIRECTORY_PHP_PAGE from 'queries/VirtualDirectoryPhpPage.graphql';\r\nimport IIS_MANAGER_MIME_CONTENT_TYPES from 'queries/IisManagerMimeContentTypes.graphql';\r\nimport VIRTUAL_DIRECTORY_EDIT_MIME_TYPE_PAGE from 'queries/VirtualDirectoryEditMimeTypePage.graphql';\r\nimport VIRTUAL_DIRECTORY_EDIT_ERROR_DOC_PAGE from 'queries/VirtualDirectoryEditErrorDocPage.graphql';\r\n\r\nconst virtualDirectorySettingRoutes = [\r\n    {\r\n        path: ':directoryName?/edit-virtual-directory',\r\n        componentLoader: () => import(\r\n            /* webpackChunkName: \"components/pages/VirtualDirectoryPage/EditVirtualDirectoryPage\" */\r\n            'components/pages/VirtualDirectoryPage/EditVirtualDirectoryPage'\r\n        ),\r\n        loader: async ({ request: { url }, params: { domainId, directoryName } }) => {\r\n            const domainNodeId = btoa(`Domain:${domainId}`);\r\n            const path = new URL(url).searchParams.get('path') || '/';\r\n\r\n            const editablePath = directoryName ? `${path.replace(/\\/$/, '')}/${directoryName}` : path;\r\n\r\n            const { data: pageData } = await apolloClient.query({\r\n                query: EDIT_VIRTUAL_DIRECTORY_PAGE,\r\n                variables: { domainNodeId, path: editablePath },\r\n                fetchPolicy: 'network-only',\r\n            });\r\n\r\n            return {\r\n                path: editablePath,\r\n                isCurrentDirectory: !directoryName,\r\n                subscriptionId: getId(pageData.domain.baseDomain?.id ?? pageData.domain.id),\r\n                isAspEnabled: pageData.domain.webScriptingSettings.asp,\r\n                virtualDirectory: pageData.domain.hosting.virtualDirectory,\r\n            };\r\n        },\r\n    },\r\n    {\r\n        path: 'asp-dot-net',\r\n        componentLoader: () => import(\r\n            /* webpackChunkName: \"components/pages/VirtualDirectoryPage/AspDotNetSettingsPage\" */\r\n            'components/pages/VirtualDirectoryPage/AspDotNetSettingsPage'\r\n        ),\r\n        loader: async ({ request: { url }, params: { domainId } }) => {\r\n            const path = new URL(url).searchParams.get('path') || '/';\r\n            const { data } = await apolloClient.query({\r\n                query: ASP_DOT_NET_DOMAIN_SETTINGS_PAGE,\r\n                variables: { id: btoa(`Domain:${domainId}`), webPath: path },\r\n            });\r\n\r\n            if (!data.domain.webScriptingSettings?.aspDotNet || !data.domain.aspNetSettings?.configs.length) {\r\n                throw new Response('Not Found', { status: 404 });\r\n            }\r\n        },\r\n    },\r\n    {\r\n        path: 'permissions',\r\n        componentLoader: () => import(\r\n            /* webpackChunkName: \"components/pages/VirtualDirectoryPage/PermissionsPage\" */\r\n            'components/pages/VirtualDirectoryPage/PermissionsPage'\r\n        ),\r\n    },\r\n    {\r\n        path: 'php',\r\n        componentLoader: () => import(\r\n            /* webpackChunkName: \"components/pages/VirtualDirectoryPage/PhpVersionPage\" */\r\n            'components/pages/VirtualDirectoryPage/PhpVersionPage'\r\n        ),\r\n        loader: async ({ request: { url }, params: { domainId } }) => {\r\n            const path = new URL(url).searchParams.get('path') || '/';\r\n            const { data } = await apolloClient.query({\r\n                query: VIRTUAL_DIRECTORY_PHP_PAGE,\r\n                variables: { domainId: btoa(`Domain:${domainId}`), path },\r\n            });\r\n\r\n            if (!data.domain.subscription.permissions.managePhpVersion ||\r\n            !data.domain.hosting?.virtualDirectory?.isVirtual\r\n            ) {\r\n                throw new Response('Not Found', { status: 404 });\r\n            }\r\n        },\r\n    },\r\n];\r\n\r\nexport const virtualDirectoryRoute = {\r\n    path: 'virtual-directory',\r\n    componentLoader: () => import(\r\n        /* webpackChunkName: \"components/pages/VirtualDirectoryPage\" */\r\n        'components/pages/VirtualDirectoryPage'\r\n    ),\r\n    loader: async ({ request: { url }, params: { domainId } }) => {\r\n        const id = btoa(`Domain:${domainId}`);\r\n        const path = new URL(url).searchParams.get('path') || '/';\r\n\r\n        const { data } = await apolloClient.query({\r\n            query: VIRTUAL_DIRECTORY_PAGE,\r\n            variables: { domainId: id, path },\r\n        });\r\n\r\n        if (!data.domain.hosting) {\r\n            throw new Response('Not Found', { status: 404 });\r\n        }\r\n    },\r\n    handle: {\r\n        helpContext: 'client.domain.hosting.web-directories',\r\n        crumb: () => ({\r\n            title: Locale.getSection('components.routes').lmsg('virtualDirectories'),\r\n        }),\r\n        pageTitle: ({ matchesContext, location: { search } }) => {\r\n            if (!matchesContext.domainRouteData) {\r\n                return null;\r\n            }\r\n            const { domain } = matchesContext.domainRouteData;\r\n            const path = new URLSearchParams(search).get('path') || '/';\r\n            const locale = Locale.getSection('components.routes');\r\n            return locale.lmsg('virtualDirectoryDomain', { path, domainName: `<b>${domain.name}</b>` });\r\n        },\r\n        key: ({ params }) => {\r\n            const path = new URL(window.location.toString()).searchParams.get('path') || '/';\r\n            return `${params.domainId}${path}`;\r\n        },\r\n        secondary: ({ location: { search }, params: { domainId } }) => (\r\n            <VirtualDirectorySidebar\r\n                domainId={domainId}\r\n                path={new URLSearchParams(search).get('path') || '/'}\r\n            />\r\n        ),\r\n    },\r\n    children: [\r\n        {\r\n            index: true,\r\n            loader: ({ request }) => {\r\n                const url = new URL(request.url);\r\n                url.pathname = `${url.pathname}/browse`;\r\n                return redirect(url.toString());\r\n            },\r\n        },\r\n        {\r\n            path: 'browse',\r\n            componentLoader: () => import(\r\n                /* webpackChunkName: \"components/pages/VirtualDirectoryPage/Browse\" */\r\n                'components/pages/VirtualDirectoryPage/Browse'\r\n            ),\r\n            loader: async ({ request: { url }, params: { domainId } }) => {\r\n                const id = btoa(`Domain:${domainId}`);\r\n                const path = new URL(url).searchParams.get('path') || '/';\r\n\r\n                await Promise.all([\r\n                    apolloClient.query({\r\n                        query: VIRTUAL_DIRECTORY_BROWSE_PAGE,\r\n                        variables: { domainId: id, path },\r\n                    }),\r\n                    apolloClient.query({\r\n                        query: VIRTUAL_DIRECTORY_CONTENT_LIST,\r\n                        variables: {\r\n                            domainId: id,\r\n                            path,\r\n                            input: readGraphQlListInputFromStorage({ key: `VirtualDirectoryPage${domainId}` }),\r\n                        },\r\n                    }),\r\n                ]);\r\n            },\r\n            children: [\r\n                ...virtualDirectorySettingRoutes,\r\n                {\r\n                    path: 'create-directory',\r\n                    componentLoader: () => import(\r\n                        /* webpackChunkName: \"components/pages/VirtualDirectoryPage/CreateDirectoryPage\" */\r\n                        'components/pages/VirtualDirectoryPage/CreateDirectoryPage'\r\n                    ),\r\n                },\r\n                {\r\n                    path: 'create-virtual-directory',\r\n                    componentLoader: () => import(\r\n                        /* webpackChunkName: \"components/pages/VirtualDirectoryPage/CreateVirtualDirectoryPage\" */\r\n                        'components/pages/VirtualDirectoryPage/CreateVirtualDirectoryPage'\r\n                    ),\r\n                    loader: async ({ request: { url }, params: { domainId } }) => {\r\n                        const domainNodeId = btoa(`Domain:${domainId}`);\r\n                        const path = new URL(url).searchParams.get('path') || '/';\r\n\r\n                        const { data: pageData } = await apolloClient.query({\r\n                            query: CREATE_VIRTUAL_DIRECTORY_PAGE,\r\n                            variables: { domainId: domainNodeId, parentPath: path },\r\n                            fetchPolicy: 'network-only',\r\n                        });\r\n\r\n                        return {\r\n                            subscriptionId: getId(pageData.domain.baseDomain?.id ?? pageData.domain.id),\r\n                            isAspEnabled: pageData.domain.webScriptingSettings.asp,\r\n                            parentDirectory: pageData.domain.hosting.parentDirectory,\r\n                        };\r\n                    },\r\n                },\r\n            ],\r\n        },\r\n        {\r\n            path: 'protection',\r\n            componentLoader: () => import(\r\n                /* webpackChunkName: \"components/pages/VirtualDirectoryPage/Protection\" */\r\n                'components/pages/VirtualDirectoryPage/Protection'\r\n            ),\r\n            loader: async ({ request: { url }, params: { domainId } }) => {\r\n                const id = btoa(`Domain:${domainId}`);\r\n                const path = new URL(url).searchParams.get('path') || '/';\r\n\r\n                const userListKey = `VirtualDirectoryProtectionUserListPage${domainId}${path}`;\r\n\r\n                await Promise.all([\r\n                    apolloClient.query({\r\n                        query: VIRTUAL_DIRECTORY_PROTECTION_PAGE,\r\n                        variables: { domainId: id, path },\r\n                    }),\r\n                    apolloClient.query({\r\n                        query: VIRTUAL_DIRECTORY_PROTECTION_USER_LIST,\r\n                        variables: {\r\n                            domainId: id,\r\n                            path,\r\n                            input: readGraphQlListInputFromStorage({ key: userListKey }),\r\n                        },\r\n                    }),\r\n                ]);\r\n\r\n                return { userListKey };\r\n            },\r\n            children: [\r\n                ...virtualDirectorySettingRoutes,\r\n                {\r\n                    ...protectedDirectoryEditRoute,\r\n                    componentLoader: () => import(\r\n                        /* webpackChunkName: \"components/pages/VirtualDirectoryPage/ProtectionSettingsPage\" */\r\n                        'components/pages/VirtualDirectoryPage/ProtectionSettingsPage'\r\n                    ),\r\n                },\r\n                {\r\n                    ...protectedDirectoryUserAddRoute,\r\n                    path: ':directoryId/add-user',\r\n                },\r\n                protectedDirectoryUserPasswordRoute,\r\n            ],\r\n        },\r\n        {\r\n            path: 'mime-types',\r\n            componentLoader: () => import(\r\n                /* webpackChunkName: \"components/pages/VirtualDirectoryPage/MimeTypeList\" */\r\n                'components/pages/VirtualDirectoryPage/MimeTypeList'\r\n            ),\r\n            loader: async ({ request: { url }, params: { domainId } }) => {\r\n                const id = btoa(`Domain:${domainId}`);\r\n                const path = new URL(url).searchParams.get('path') || '/';\r\n\r\n                const mimeTypeListKey = `VirtualDirectoryMimeTypeList${domainId}${path}`;\r\n\r\n                await apolloClient.query({\r\n                    query: VIRTUAL_DIRECTORY_MIME_TYPE_LIST,\r\n                    variables: {\r\n                        domainId: id,\r\n                        path,\r\n                        input: readGraphQlListInputFromStorage({ key: mimeTypeListKey }),\r\n                    },\r\n                });\r\n\r\n                return { mimeTypeListKey };\r\n            },\r\n            children: [\r\n                ...virtualDirectorySettingRoutes,\r\n                {\r\n                    path: 'create',\r\n                    componentLoader: () => import(\r\n                        /* webpackChunkName: \"components/pages/VirtualDirectoryPage/CreateMimeTypePage\" */\r\n                        'components/pages/VirtualDirectoryPage/CreateMimeTypePage'\r\n                    ),\r\n                    loader: async () => {\r\n                        await apolloClient.query({ query: IIS_MANAGER_MIME_CONTENT_TYPES });\r\n                    },\r\n                },\r\n                {\r\n                    path: ':extension/edit',\r\n                    componentLoader: () => import(\r\n                        /* webpackChunkName: \"components/pages/VirtualDirectoryPage/EditMimeTypePage\" */\r\n                        'components/pages/VirtualDirectoryPage/EditMimeTypePage'\r\n                    ),\r\n                    loader: async ({ request: { url }, params: { domainId, extension } }) => {\r\n                        const [{ data: editPageData }] = await Promise.all([\r\n                            apolloClient.query({\r\n                                query: VIRTUAL_DIRECTORY_EDIT_MIME_TYPE_PAGE,\r\n                                variables: {\r\n                                    domainId: btoa(`Domain:${domainId}`),\r\n                                    path: new URL(url).searchParams.get('path') || '/',\r\n                                    extension,\r\n                                },\r\n                            }),\r\n                            apolloClient.query({ query: IIS_MANAGER_MIME_CONTENT_TYPES }),\r\n                        ]);\r\n\r\n                        return {\r\n                            mimeType: editPageData.domain.hosting.virtualDirectory.mimeType,\r\n                        };\r\n                    },\r\n                },\r\n            ],\r\n        },\r\n        {\r\n            path: 'error-docs',\r\n            componentLoader: () => import(\r\n                /* webpackChunkName: \"components/pages/VirtualDirectoryPage/ErrorDocList\" */\r\n                'components/pages/VirtualDirectoryPage/ErrorDocList'\r\n            ),\r\n            loader: async ({ request: { url }, params: { domainId } }) => {\r\n                const path = new URL(url).searchParams.get('path') || '/';\r\n\r\n                const errorDocListKey = `VirtualDirectoryErrorDocList${domainId}${path}`;\r\n\r\n                await apolloClient.query({\r\n                    query: VIRTUAL_DIRECTORY_ERROR_DOC_LIST,\r\n                    variables: {\r\n                        domainId: btoa(`Domain:${domainId}`),\r\n                        path,\r\n                        input: readGraphQlListInputFromStorage({ key: errorDocListKey }),\r\n                    },\r\n                });\r\n\r\n                return { errorDocListKey };\r\n            },\r\n            children: [\r\n                ...virtualDirectorySettingRoutes,\r\n                {\r\n                    path: ':code/edit',\r\n                    componentLoader: () => import(\r\n                        /* webpackChunkName: \"components/pages/VirtualDirectoryPage/EditErrorDocPage\" */\r\n                        'components/pages/VirtualDirectoryPage/EditErrorDocPage'\r\n                    ),\r\n                    loader: async ({ request: { url }, params: { domainId, code } }) => {\r\n                        const { data: editPageData } = await apolloClient.query({\r\n                            query: VIRTUAL_DIRECTORY_EDIT_ERROR_DOC_PAGE,\r\n                            variables: {\r\n                                domainId: btoa(`Domain:${domainId}`),\r\n                                path: new URL(url).searchParams.get('path') || '/',\r\n                                code,\r\n                            },\r\n                        });\r\n\r\n                        return {\r\n                            errorDoc: editPageData.domain.hosting.virtualDirectory.errorDoc,\r\n                        };\r\n                    },\r\n                },\r\n            ],\r\n        },\r\n    ],\r\n};\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { ItemList, Item, Icon } from '@plesk/ui-library';\r\nimport SidePanel from './SidePanel';\r\nimport Link from 'components/common/Link';\r\nimport { buildUrl } from 'helpers/buildUrl';\r\nimport { Locale } from 'jsw';\r\n\r\nimport VIRTUAL_DIRECTORY_PAGE from 'queries/VirtualDirectoryPage.graphql';\r\nimport { useQuery } from '@apollo/client';\r\n\r\nconst Translate = Locale.getTranslate('components.pages.VirtualDirectory');\r\n\r\nconst VirtualDirectorySidebar = ({ path, domainId }) => {\r\n    const location = useLocation();\r\n    const { data: {\r\n        domain: {\r\n            webScriptingSettings: { aspDotNet, php },\r\n            hosting: { virtualDirectory: { isVirtual, canManagePermissions } },\r\n            subscription: { permissions: { managePhpVersion } },\r\n        },\r\n        capability: { packages: { isASPdotNetInstalled, isPhpInstalled } },\r\n    } } = useQuery(\r\n        VIRTUAL_DIRECTORY_PAGE,\r\n        { variables: { domainId: btoa(`Domain:${domainId}`), path } },\r\n    );\r\n\r\n    const urlPrefix = location.pathname;\r\n\r\n    const buttonProperties = isVirtual;\r\n    const buttonPermissions = canManagePermissions;\r\n    const buttonAspDotNet = aspDotNet && isASPdotNetInstalled;\r\n    const buttonPhp = isVirtual && isPhpInstalled && php && managePhpVersion;\r\n\r\n    const showPanel = buttonProperties || buttonPermissions || buttonAspDotNet || buttonPhp;\r\n\r\n    if (!showPanel) {\r\n        return null;\r\n    }\r\n\r\n    return (\r\n        <SidePanel id=\"panel-virtualDirectory\">\r\n            <ItemList>\r\n                {buttonProperties && (\r\n                    <Item\r\n                        id=\"buttonProperties\"\r\n                        icon={<Icon name=\"pencil\" size=\"16\" />}\r\n                        component={Link}\r\n                        to={buildUrl(`${urlPrefix}/edit-virtual-directory`, { path })}\r\n                        preventScrollReset\r\n                        tooltip={<Translate content=\"buttonPropertiesHint\" />}\r\n                    >\r\n                        <Translate content=\"buttonProperties\" />\r\n                    </Item>\r\n                )}\r\n                {buttonPermissions && (\r\n                    <Item\r\n                        id=\"buttonPermissions\"\r\n                        icon={<Icon name=\"lock-closed-check\" size=\"16\" />}\r\n                        component={Link}\r\n                        to={buildUrl(`${urlPrefix}/permissions`, { path })}\r\n                        preventScrollReset\r\n                        tooltip={<Translate content=\"buttonPermissionsHint\" />}\r\n                    >\r\n                        <Translate content=\"buttonPermissions\" />\r\n                    </Item>\r\n                )}\r\n                {buttonAspDotNet && (\r\n                    <Item\r\n                        id=\"buttonAspDotNet\"\r\n                        icon={<Icon name=\"microsoft\" size=\"16\" />}\r\n                        component={Link}\r\n                        to={buildUrl(`${urlPrefix}/asp-dot-net`, { path })}\r\n                        preventScrollReset\r\n                        tooltip={<Translate content=\"buttonAspDotNetHint\" />}\r\n                    >\r\n                        <Translate content=\"buttonAspDotNet\" />\r\n                    </Item>\r\n                )}\r\n                {buttonPhp && (\r\n                    <Item\r\n                        id=\"buttonPhp\"\r\n                        icon={<Icon name=\"php\" size=\"16\" />}\r\n                        component={Link}\r\n                        to={buildUrl(`${urlPrefix}/php`, { path })}\r\n                        preventScrollReset\r\n                        tooltip={<Translate content=\"buttonPhpHint\" />}\r\n                    >\r\n                        <Translate content=\"buttonPhp\" />\r\n                    </Item>\r\n                )}\r\n            </ItemList>\r\n        </SidePanel>\r\n    );\r\n};\r\n\r\nVirtualDirectorySidebar.propTypes = {\r\n    path: PropTypes.string.isRequired,\r\n    domainId: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default VirtualDirectorySidebar;\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { useLocalStorage } from 'common/hooks';\r\nimport { Panel, Heading } from '@plesk/ui-library';\r\n\r\nconst SidePanel = ({\r\n    baseClassName = 'side-panel',\r\n    className = undefined,\r\n    id = undefined,\r\n    title = undefined,\r\n    children,\r\n    ...props\r\n}) => {\r\n    const [isHidden, setHidden] = useLocalStorage(`${id}-hidden`);\r\n\r\n    return (\r\n        <Panel\r\n            className={classNames(baseClassName, className)}\r\n            id={id}\r\n            title={title ? <Heading level={4}>{title}</Heading> : null}\r\n            collapsible={!!id}\r\n            collapsed={title ? isHidden === 'true' : false}\r\n            onToggle={() => setHidden(isHidden === 'true' ? 'false' : 'true')}\r\n            {...props}\r\n        >\r\n            {children}\r\n        </Panel>\r\n    );\r\n};\r\n\r\nSidePanel.propTypes = {\r\n    id: PropTypes.string,\r\n    title: PropTypes.any,\r\n    children: PropTypes.any.isRequired,\r\n    className: PropTypes.string,\r\n    baseClassName: PropTypes.string,\r\n};\r\n\r\nexport default SidePanel;\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nexport const buildUrl = (url, params = {}) => {\r\n    const searchParams = new URLSearchParams();\r\n    Object.entries(params)\r\n        .filter(([, value]) => value !== null)\r\n        .forEach(([key, value]) => searchParams.append(key, `${value}`));\r\n    const searchString = searchParams.toString();\r\n    return `${url}${searchString ? `?${searchString}` : ''}`;\r\n};\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"VirtualDirectoryPage\"},\"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\":\"path\"}},\"type\":{\"kind\":\"NonNullType\",\"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\":\"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\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webScriptingSettings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspDotNet\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"php\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errorDocs\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hosting\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"virtualDirectory\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"baseName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dirName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isVirtual\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"doesExist\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isReadable\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canManagePermissions\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscription\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"permissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"managePhpVersion\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageProtectedDirectories\"},\"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\":\"isASPdotNetInstalled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isPhpInstalled\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":939}};\n    doc.loc.source = {\"body\":\"query VirtualDirectoryPage(\\r\\n    $domainId: ID!,\\r\\n    $path: String!\\r\\n) {\\r\\n    domain: node(id: $domainId) {\\r\\n        ... on Domain {\\r\\n            id\\r\\n            name\\r\\n            webScriptingSettings {\\r\\n                aspDotNet\\r\\n                php\\r\\n                errorDocs\\r\\n            }\\r\\n            hosting {\\r\\n                virtualDirectory(path: $path) {\\r\\n                    key\\r\\n                    baseName\\r\\n                    dirName\\r\\n                    isVirtual\\r\\n                    doesExist\\r\\n                    isReadable\\r\\n                    canManagePermissions\\r\\n                }\\r\\n            }\\r\\n            subscription {\\r\\n                permissions {\\r\\n                    managePhpVersion\\r\\n                    manageProtectedDirectories\\r\\n                }\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n    capability {\\r\\n        packages {\\r\\n            isASPdotNetInstalled\\r\\n            isPhpInstalled\\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[\"VirtualDirectoryPage\"] = oneQuery(doc, \"VirtualDirectoryPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"CreateVirtualDirectoryPage\"},\"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\":\"parentPath\"}},\"type\":{\"kind\":\"NonNullType\",\"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\":\"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\":\"baseDomain\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webScriptingSettings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"asp\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hosting\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"parentDirectory\"},\"name\":{\"kind\":\"Name\",\"value\":\"virtualDirectory\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"parentPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"VirtualDirectoryParentContentFragment\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"properties\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspBufferingLimit\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspMaxRequestEntityAllowed\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspEnableServerDebug\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspEnableClientDebug\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":821}};\n    doc.loc.source = {\"body\":\"#import \\\"queries/VirtualDirectoryParentContentFragment.graphql\\\"\\r\\n\\r\\nquery CreateVirtualDirectoryPage(\\r\\n    $domainId: ID!,\\r\\n    $parentPath: String!,\\r\\n) {\\r\\n    domain: node(id: $domainId) {\\r\\n        ... on Domain {\\r\\n            id\\r\\n            baseDomain {\\r\\n                id\\r\\n            }\\r\\n            webScriptingSettings {\\r\\n                asp\\r\\n            }\\r\\n            hosting {\\r\\n                parentDirectory: virtualDirectory (path: $parentPath) {\\r\\n                    ...VirtualDirectoryParentContentFragment\\r\\n                    properties {\\r\\n                        aspBufferingLimit\\r\\n                        aspMaxRequestEntityAllowed\\r\\n                        aspEnableServerDebug\\r\\n                        aspEnableClientDebug\\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  doc.definitions = doc.definitions.concat(unique(require(\"queries/VirtualDirectoryParentContentFragment.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[\"CreateVirtualDirectoryPage\"] = oneQuery(doc, \"CreateVirtualDirectoryPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"VirtualDirectoryParentContentFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"VirtualDirectory\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"content\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"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\":168}};\n    doc.loc.source = {\"body\":\"fragment VirtualDirectoryParentContentFragment on VirtualDirectory {\\r\\n    key\\r\\n    content {\\r\\n        nodes {\\r\\n            name\\r\\n            type\\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[\"VirtualDirectoryParentContentFragment\"] = oneQuery(doc, \"VirtualDirectoryParentContentFragment\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"EditVirtualDirectoryPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"domainNodeId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"}},\"type\":{\"kind\":\"NonNullType\",\"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\":\"domainNodeId\"}}}],\"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\":\"baseDomain\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webScriptingSettings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"asp\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hosting\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"virtualDirectory\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"parent\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"VirtualDirectoryParentContentFragment\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"properties\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isRoot\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isEditable\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"accessSource\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"accessRead\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"accessWrite\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enableDirBrowsing\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dontLog\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"appCreate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"scriptExecute\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspEnableParentPaths\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspExecuteInMTA\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"authAnonymous\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"authNTLM\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"requireSSL\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspBufferingLimit\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspBufferingLimitInherited\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspBufferingLimitDefault\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspMaxRequestEntityAllowed\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspMaxRequestEntityAllowedInherited\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspMaxRequestEntityAllowedDefault\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspEnableServerDebug\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspEnableServerDebugInherited\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspEnableServerDebugDefault\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspEnableClientDebug\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspEnableClientDebugInherited\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspEnableClientDebugDefault\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enableDefaultDoc\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"defaultDocs\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":2011}};\n    doc.loc.source = {\"body\":\"#import \\\"queries/VirtualDirectoryParentContentFragment.graphql\\\"\\r\\n\\r\\nquery EditVirtualDirectoryPage(\\r\\n    $domainNodeId: ID!,\\r\\n    $path: String!,\\r\\n) {\\r\\n    domain: node(id: $domainNodeId) {\\r\\n        ... on Domain {\\r\\n            id\\r\\n            baseDomain {\\r\\n                id\\r\\n            }\\r\\n            webScriptingSettings {\\r\\n                asp\\r\\n            }\\r\\n            hosting {\\r\\n                virtualDirectory (path: $path) {\\r\\n                    key\\r\\n                    parent {\\r\\n                        key\\r\\n                        ...VirtualDirectoryParentContentFragment\\r\\n                    }\\r\\n                    properties {\\r\\n                        isRoot\\r\\n                        isEditable\\r\\n                        name\\r\\n                        path\\r\\n                        accessSource\\r\\n                        accessRead\\r\\n                        accessWrite\\r\\n                        enableDirBrowsing\\r\\n                        dontLog\\r\\n                        appCreate\\r\\n                        scriptExecute\\r\\n                        aspEnableParentPaths\\r\\n                        aspExecuteInMTA\\r\\n                        authAnonymous\\r\\n                        authNTLM\\r\\n                        requireSSL\\r\\n                        aspBufferingLimit\\r\\n                        aspBufferingLimitInherited\\r\\n                        aspBufferingLimitDefault\\r\\n                        aspMaxRequestEntityAllowed\\r\\n                        aspMaxRequestEntityAllowedInherited\\r\\n                        aspMaxRequestEntityAllowedDefault\\r\\n                        aspEnableServerDebug\\r\\n                        aspEnableServerDebugInherited\\r\\n                        aspEnableServerDebugDefault\\r\\n                        aspEnableClientDebug\\r\\n                        aspEnableClientDebugInherited\\r\\n                        aspEnableClientDebugDefault\\r\\n                        enableDefaultDoc\\r\\n                        defaultDocs\\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  doc.definitions = doc.definitions.concat(unique(require(\"queries/VirtualDirectoryParentContentFragment.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[\"EditVirtualDirectoryPage\"] = oneQuery(doc, \"EditVirtualDirectoryPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"VirtualDirectoryBrowsePage\"},\"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\":\"path\"}},\"type\":{\"kind\":\"NonNullType\",\"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\":\"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\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hosting\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"virtualDirectory\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"doesExist\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isVirtual\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isWritable\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isAccessible\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscription\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"permissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageProtectedDirectories\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":596}};\n    doc.loc.source = {\"body\":\"query VirtualDirectoryBrowsePage(\\r\\n    $domainId: ID!,\\r\\n    $path: String!\\r\\n) {\\r\\n    domain: node(id: $domainId) {\\r\\n        ... on Domain {\\r\\n            id\\r\\n            name\\r\\n            hosting {\\r\\n                virtualDirectory(path: $path) {\\r\\n                    key\\r\\n                    doesExist\\r\\n                    isVirtual\\r\\n                    isWritable\\r\\n                    isAccessible\\r\\n                }\\r\\n            }\\r\\n            subscription {\\r\\n                permissions {\\r\\n                    manageProtectedDirectories\\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[\"VirtualDirectoryBrowsePage\"] = oneQuery(doc, \"VirtualDirectoryBrowsePage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"VirtualDirectoryProtectionPage\"},\"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\":\"path\"}},\"type\":{\"kind\":\"NonNullType\",\"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\":\"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\":\"virtualDirectory\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webDirName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"protectedDirectory\"},\"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\":\"isValidForProtection\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":510}};\n    doc.loc.source = {\"body\":\"query VirtualDirectoryProtectionPage(\\r\\n    $domainId: ID!,\\r\\n    $path: String!\\r\\n) {\\r\\n    domain: node(id: $domainId) {\\r\\n        ... on Domain {\\r\\n            id\\r\\n            hosting {\\r\\n                virtualDirectory(path: $path) {\\r\\n                    key\\r\\n                    webDirName\\r\\n                    protectedDirectory {\\r\\n                        id\\r\\n                        path\\r\\n                    }\\r\\n                    isValidForProtection\\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[\"VirtualDirectoryProtectionPage\"] = oneQuery(doc, \"VirtualDirectoryProtectionPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"VirtualDirectoryProtectionUserList\"},\"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\":\"path\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ProtectedDirectoryUserListInput\"}},\"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\":\"virtualDirectory\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"protectedDirectory\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"users\"},\"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\":\"ProtectedDirectoryUserListFragment\"},\"directives\":[]}]}}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":665}};\n    doc.loc.source = {\"body\":\"#import \\\"queries/ProtectedDirectoryUserListFragment.graphql\\\"\\r\\n\\r\\nquery VirtualDirectoryProtectionUserList(\\r\\n    $domainId: ID!,\\r\\n    $path: String!,\\r\\n    $input: ProtectedDirectoryUserListInput,\\r\\n) {\\r\\n    domain: node(id: $domainId) {\\r\\n        ... on Domain {\\r\\n            id  \\r\\n            hosting {\\r\\n                virtualDirectory(path: $path) {\\r\\n                    key\\r\\n                    protectedDirectory {\\r\\n                        id\\r\\n                        users(input: $input) {\\r\\n                            ...ProtectedDirectoryUserListFragment\\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  doc.definitions = doc.definitions.concat(unique(require(\"queries/ProtectedDirectoryUserListFragment.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[\"VirtualDirectoryProtectionUserList\"] = oneQuery(doc, \"VirtualDirectoryProtectionUserList\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"VirtualDirectoryMimeTypeList\"},\"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\":\"path\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"VirtualDirectoryMimeTypeListInput\"}},\"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\":\"virtualDirectory\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mimeTypes\"},\"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\":\"extension\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"content\"},\"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\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortColumn\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortDirection\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":889}};\n    doc.loc.source = {\"body\":\"query VirtualDirectoryMimeTypeList(\\r\\n    $domainId: ID!,\\r\\n    $path: String!,\\r\\n    $input: VirtualDirectoryMimeTypeListInput,\\r\\n) {\\r\\n    domain: node(id: $domainId) {\\r\\n        ... on Domain {\\r\\n            id  \\r\\n            hosting {\\r\\n                virtualDirectory(path: $path) {\\r\\n                    key\\r\\n                    mimeTypes(input: $input) {\\r\\n                        nodes {\\r\\n                            extension\\r\\n                            content\\r\\n                        }\\r\\n                        pageInfo {\\r\\n                            current\\r\\n                            total\\r\\n                            pageCount\\r\\n                        }\\r\\n                        sortInfo {\\r\\n                            sortColumn\\r\\n                            sortDirection\\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[\"VirtualDirectoryMimeTypeList\"] = oneQuery(doc, \"VirtualDirectoryMimeTypeList\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"VirtualDirectoryErrorDocList\"},\"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\":\"path\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"VirtualDirectoryErrorDocListInput\"}},\"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\":\"virtualDirectory\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errorDocs\"},\"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\":\"code\"},\"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\":\"location\"},\"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\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortColumn\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortDirection\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":953}};\n    doc.loc.source = {\"body\":\"query VirtualDirectoryErrorDocList(\\r\\n    $domainId: ID!,\\r\\n    $path: String!,\\r\\n    $input: VirtualDirectoryErrorDocListInput,\\r\\n) {\\r\\n    domain: node(id: $domainId) {\\r\\n        ... on Domain {\\r\\n            id  \\r\\n            hosting {\\r\\n                virtualDirectory(path: $path) {\\r\\n                    key\\r\\n                    errorDocs(input: $input) {\\r\\n                        nodes {\\r\\n                            code\\r\\n                            name\\r\\n                            type\\r\\n                            location\\r\\n                        }\\r\\n                        pageInfo {\\r\\n                            current\\r\\n                            total\\r\\n                            pageCount\\r\\n                        }\\r\\n                        sortInfo {\\r\\n                            sortColumn\\r\\n                            sortDirection\\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[\"VirtualDirectoryErrorDocList\"] = oneQuery(doc, \"VirtualDirectoryErrorDocList\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"VirtualDirectoryContentList\"},\"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\":\"path\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"VirtualDirectoryContentListInput\"}},\"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\":\"virtualDirectory\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"content\"},\"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\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fileType\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isProtected\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isReserved\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canManagePermissions\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"doesExist\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"baseName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dirName\"},\"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\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortColumn\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortDirection\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":1157}};\n    doc.loc.source = {\"body\":\"query VirtualDirectoryContentList(\\r\\n    $domainId: ID!,\\r\\n    $path: String!,\\r\\n    $input: VirtualDirectoryContentListInput\\r\\n) {\\r\\n    domain: node(id: $domainId) {\\r\\n        ... on Domain {\\r\\n            id\\r\\n            hosting {\\r\\n                virtualDirectory(path: $path) {\\r\\n                    key\\r\\n                    content(input: $input) {\\r\\n                        nodes {\\r\\n                            name\\r\\n                            type\\r\\n                            fileType\\r\\n                            isProtected\\r\\n                            isReserved\\r\\n                            canManagePermissions\\r\\n                            doesExist\\r\\n                            baseName\\r\\n                            dirName\\r\\n                        }\\r\\n                        pageInfo {\\r\\n                            current\\r\\n                            total\\r\\n                            pageCount\\r\\n                        }\\r\\n                        sortInfo {\\r\\n                            sortColumn\\r\\n                            sortDirection\\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[\"VirtualDirectoryContentList\"] = oneQuery(doc, \"VirtualDirectoryContentList\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"VirtualDirectoryPhpPage\"},\"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\":\"path\"}},\"type\":{\"kind\":\"NonNullType\",\"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\":\"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\":\"virtualDirectory\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isVirtual\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"phpVersion\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"version\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fullVersion\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"availablePhpVersions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"version\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fullVersion\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscription\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"permissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"managePhpVersion\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":732}};\n    doc.loc.source = {\"body\":\"query VirtualDirectoryPhpPage(\\r\\n    $domainId: ID!,\\r\\n    $path: String!\\r\\n) {\\r\\n    domain: node(id: $domainId) {\\r\\n        ... on Domain {\\r\\n            id\\r\\n            hosting {\\r\\n                virtualDirectory(path: $path) {\\r\\n                    key\\r\\n                    isVirtual\\r\\n                    phpVersion {\\r\\n                        version\\r\\n                        fullVersion\\r\\n                    }\\r\\n                    availablePhpVersions {\\r\\n                        version\\r\\n                        fullVersion\\r\\n                    }\\r\\n                }\\r\\n            }\\r\\n            subscription {\\r\\n                permissions {\\r\\n                    managePhpVersion\\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[\"VirtualDirectoryPhpPage\"] = oneQuery(doc, \"VirtualDirectoryPhpPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"IisManagerMimeContentTypes\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iisManager\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mimeContentTypes\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":90}};\n    doc.loc.source = {\"body\":\"query IisManagerMimeContentTypes {\\r\\n    iisManager {\\r\\n        mimeContentTypes\\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[\"IisManagerMimeContentTypes\"] = oneQuery(doc, \"IisManagerMimeContentTypes\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"VirtualDirectoryEditMimeTypePage\"},\"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\":\"path\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"extension\"}},\"type\":{\"kind\":\"NonNullType\",\"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\":\"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\":\"virtualDirectory\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mimeType\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"extension\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"extension\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"extension\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"content\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":488}};\n    doc.loc.source = {\"body\":\"query VirtualDirectoryEditMimeTypePage(\\r\\n    $domainId: ID!,\\r\\n    $path: String!,\\r\\n    $extension: String!,\\r\\n) {\\r\\n    domain: node(id: $domainId) {\\r\\n        ... on Domain {\\r\\n            id\\r\\n            hosting {\\r\\n                virtualDirectory(path: $path) {\\r\\n                    key\\r\\n                    mimeType(extension: $extension) {\\r\\n                        extension\\r\\n                        content\\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[\"VirtualDirectoryEditMimeTypePage\"] = oneQuery(doc, \"VirtualDirectoryEditMimeTypePage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"VirtualDirectoryEditErrorDocPage\"},\"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\":\"path\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}},\"type\":{\"kind\":\"NonNullType\",\"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\":\"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\":\"virtualDirectory\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errorDoc\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}}],\"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\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"location\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":531}};\n    doc.loc.source = {\"body\":\"query VirtualDirectoryEditErrorDocPage(\\r\\n    $domainId: ID!,\\r\\n    $path: String!,\\r\\n    $code: String!,\\r\\n) {\\r\\n    domain: node(id: $domainId) {\\r\\n        ... on Domain {\\r\\n            id  \\r\\n            hosting {\\r\\n                virtualDirectory(path: $path) {\\r\\n                    key\\r\\n                    errorDoc(code: $code) {\\r\\n                        code\\r\\n                        name\\r\\n                        type\\r\\n                        location\\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[\"VirtualDirectoryEditErrorDocPage\"] = oneQuery(doc, \"VirtualDirectoryEditErrorDocPage\");\n        \r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { Locale } from 'jsw';\r\nimport apolloClient from 'apolloClient';\r\nimport TRAFFIC_USAGE_BY_DOMAIN_PAGE from 'queries/TrafficUsageByDomainPage.graphql';\r\nimport DOMAIN_TRAFFIC_USAGE from 'queries/DomainTrafficUsage.graphql';\r\n\r\nexport const trafficUsageByDomainRoute = ({ path }) => ({\r\n    path,\r\n    handle: {\r\n        crumb: ({ data }) => ({\r\n            title: Locale.getSection('components.routes').lmsg(\r\n                'trafficUsageByDomain',\r\n                { domainName: `<b>${data.domain.name}</b>` },\r\n            ),\r\n        }),\r\n    },\r\n    componentLoader: () => import(\r\n        /* webpackChunkName: \"components/pages/TrafficUsageByDomainPage\" */\r\n        'components/pages/TrafficUsageByDomainPage'\r\n    ),\r\n    loader: async ({ params }) => {\r\n        const [{ data: pageData }] = await Promise.all([\r\n            apolloClient.query({\r\n                query: TRAFFIC_USAGE_BY_DOMAIN_PAGE,\r\n                variables: { domainId: btoa(`Domain:${params.domainId}`) },\r\n            }),\r\n            apolloClient.query({\r\n                query: DOMAIN_TRAFFIC_USAGE,\r\n                variables: { domainId: btoa(`Domain:${params.domainId}`) },\r\n            }),\r\n        ]);\r\n\r\n        return {\r\n            domain: pageData.domain,\r\n            intervals: pageData.domain.statistics.trafficUsageIntervals,\r\n        };\r\n    },\r\n});\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"TrafficUsageByDomainPage\"},\"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\":\"name\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"idn\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":false}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"statistics\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"trafficUsageIntervals\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"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\":\"formattedTotalUsage\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":397}};\n    doc.loc.source = {\"body\":\"query TrafficUsageByDomainPage($domainId: ID!) {\\r\\n    domain: node(id: $domainId) {\\r\\n        ... on Domain {\\r\\n            id\\r\\n            name(idn: false)\\r\\n            statistics {\\r\\n                trafficUsageIntervals {\\r\\n                    key\\r\\n                    month\\r\\n                    year\\r\\n                    formattedTotalUsage\\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[\"TrafficUsageByDomainPage\"] = oneQuery(doc, \"TrafficUsageByDomainPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"DomainTrafficUsage\"},\"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\":\"intervalKey\"}},\"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\":\"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\":\"statistics\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"trafficUsage\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"intervalKey\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"intervalKey\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"totalUsageFormatted\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"limitUsagePercent\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"usageByServices\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"serviceName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"usage\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"usageFormatted\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"incoming\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"incomingFormatted\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"outgoing\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"outgoingFormatted\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"percentOfAll\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscription\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"limits\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"traffic\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isUnlimited\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"formattedValue\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":957}};\n    doc.loc.source = {\"body\":\"query DomainTrafficUsage(\\r\\n    $domainId: ID!,\\r\\n    $intervalKey: String,\\r\\n) {\\r\\n    domain: node(id: $domainId) {\\r\\n        ... on Domain {\\r\\n            id\\r\\n            statistics {\\r\\n                trafficUsage(intervalKey: $intervalKey) {\\r\\n                    totalUsageFormatted\\r\\n                    limitUsagePercent\\r\\n                    usageByServices {\\r\\n                        serviceName\\r\\n                        usage\\r\\n                        usageFormatted\\r\\n                        incoming\\r\\n                        incomingFormatted\\r\\n                        outgoing\\r\\n                        outgoingFormatted\\r\\n                        percentOfAll\\r\\n                    }\\r\\n                }\\r\\n            }\\r\\n            subscription {\\r\\n                limits {\\r\\n                    traffic {\\r\\n                        isUnlimited\\r\\n                        formattedValue\\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[\"DomainTrafficUsage\"] = oneQuery(doc, \"DomainTrafficUsage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"DomainPage\"},\"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\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":242}};\n    doc.loc.source = {\"body\":\"query DomainPage(\\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        }\\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[\"DomainPage\"] = oneQuery(doc, \"DomainPage\");\n        \r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { Locale } from 'jsw';\r\nimport apolloClient from 'apolloClient';\r\nimport { readGraphQlListInputFromStorage } from 'components/common/GraphQlList';\r\nimport TRAFFIC_USAGE_INTERVALS from 'queries/TrafficUsageIntervals.graphql';\r\nimport TRAFFIC_USAGE_BY_VIEWER_CLIENTS_LIST from 'queries/TrafficUsageByViewerClientsList.graphql';\r\nimport TOTAL_TRAFFIC_USAGE_BY_VIEWER_CLIENTS from 'queries/TotalTrafficUsageByViewerClients.graphql';\r\nimport { trafficUsageByResellerRoute } from 'routes/trafficUsageByResellerRoute';\r\n\r\nexport const trafficUsageByViewerResellersChildrenRoute = ({ path = 'traffic-usage-resellers' } = {}) => ({\r\n    path,\r\n    handle: {\r\n        crumb: () => ({\r\n            title: Locale.getSection('components.routes').lmsg('trafficUsageByResellers'),\r\n        }),\r\n    },\r\n    children: [\r\n        trafficUsageByResellerRoute(\r\n            ':resellerId',\r\n            { clientIdParamName: 'resellerId' },\r\n        ),\r\n    ],\r\n});\r\n\r\nexport const trafficUsageByViewerResellersRoute = ({ path = 'traffic-usage-resellers', ignoreTopLevelTitle = false } = {}) => ({\r\n    path,\r\n    handle: {\r\n        crumb: () => ignoreTopLevelTitle ? [] : ({\r\n            title: Locale.getSection('components.routes').lmsg('trafficUsageByResellers'),\r\n        }),\r\n        helpContext: 'reseller.traffic',\r\n    },\r\n    children: [\r\n        {\r\n            index: true,\r\n            componentLoader: () => import(\r\n                /* webpackChunkName: \"components/pages/TrafficUsageByClientsPage\" */\r\n                'components/pages/TrafficUsageByClientsPage'\r\n            ),\r\n            loader: async () => {\r\n                const trafficUsageListKey = 'TrafficUsageByViewerResellersList';\r\n                const clientType = 'reseller';\r\n\r\n                const [{ data: intervalsData }] = await Promise.all([\r\n                    apolloClient.query({\r\n                        query: TRAFFIC_USAGE_INTERVALS,\r\n                    }),\r\n                    apolloClient.query({\r\n                        query: TOTAL_TRAFFIC_USAGE_BY_VIEWER_CLIENTS,\r\n                        variables: { clientType },\r\n                    }),\r\n                    apolloClient.query({\r\n                        query: TRAFFIC_USAGE_BY_VIEWER_CLIENTS_LIST,\r\n                        variables: {\r\n                            input: {\r\n                                ...readGraphQlListInputFromStorage({ key: trafficUsageListKey }),\r\n                                clientTypes: [clientType],\r\n                            },\r\n                        },\r\n                    }),\r\n                ]);\r\n\r\n                const { trafficUsageIntervals } = intervalsData.viewer.client.statistics;\r\n\r\n                return {\r\n                    trafficUsageIntervals,\r\n                    trafficUsageListKey,\r\n                    clientType,\r\n                    getClientLink: clientId => `./${clientId}`,\r\n                };\r\n            },\r\n        },\r\n    ],\r\n});\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"TrafficUsageIntervals\"},\"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\":\"client\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"statistics\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"trafficUsageIntervals\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"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\":\"formattedTotalUsage\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":335}};\n    doc.loc.source = {\"body\":\"query TrafficUsageIntervals {\\r\\n    viewer {\\r\\n        login\\r\\n        client {\\r\\n            id\\r\\n            statistics {\\r\\n                trafficUsageIntervals {\\r\\n                    key\\r\\n                    month\\r\\n                    year\\r\\n                    formattedTotalUsage\\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[\"TrafficUsageIntervals\"] = oneQuery(doc, \"TrafficUsageIntervals\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"TrafficUsageByViewerClientsList\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ClientTrafficUsageByClientsListInput\"}},\"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\":\"statistics\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"trafficUsageByClients\"},\"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\":\"clientId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clientName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"totalUsageFormatted\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"limitFormatted\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"limitRemainingFormatted\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"limitUsagePercent\"},\"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\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortColumn\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortDirection\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":878}};\n    doc.loc.source = {\"body\":\"query TrafficUsageByViewerClientsList(\\r\\n    $input: ClientTrafficUsageByClientsListInput\\r\\n) {\\r\\n    viewer {\\r\\n        login\\r\\n        client {\\r\\n            id\\r\\n            statistics {\\r\\n                trafficUsageByClients(input: $input) {\\r\\n                    nodes {\\r\\n                        clientId\\r\\n                        clientName\\r\\n                        totalUsageFormatted\\r\\n                        limitFormatted\\r\\n                        limitRemainingFormatted\\r\\n                        limitUsagePercent\\r\\n                    }\\r\\n                    pageInfo {\\r\\n                        current\\r\\n                        total\\r\\n                        pageCount\\r\\n                    }\\r\\n                    sortInfo {\\r\\n                        sortColumn\\r\\n                        sortDirection\\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[\"TrafficUsageByViewerClientsList\"] = oneQuery(doc, \"TrafficUsageByViewerClientsList\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"TotalTrafficUsageByViewerClients\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientType\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"intervalKey\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"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\":\"statistics\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"totalClientsTraffic\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"clientType\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientType\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"intervalKey\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"intervalKey\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"usageFormatted\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":432}};\n    doc.loc.source = {\"body\":\"query TotalTrafficUsageByViewerClients(\\r\\n    $clientType: String,\\r\\n    $intervalKey: String,\\r\\n) {\\r\\n    viewer {\\r\\n        login\\r\\n        client {\\r\\n            id\\r\\n            statistics {\\r\\n                totalClientsTraffic(\\r\\n                    clientType: $clientType,\\r\\n                    intervalKey: $intervalKey,\\r\\n                ) {\\r\\n                    usageFormatted\\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[\"TotalTrafficUsageByViewerClients\"] = oneQuery(doc, \"TotalTrafficUsageByViewerClients\");\n        \r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { Locale } from 'jsw';\r\nimport apolloClient from 'apolloClient';\r\nimport { readGraphQlListInputFromStorage } from 'components/common/GraphQlList';\r\nimport TRAFFIC_USAGE_INTERVALS from 'queries/TrafficUsageIntervals.graphql';\r\nimport TRAFFIC_USAGE_BY_RESELLER_CLIENTS_LIST from 'queries/TrafficUsageByResellerClientsList.graphql';\r\nimport TOTAL_TRAFFIC_USAGE_BY_RESELLER from 'queries/TotalTrafficUsageByReseller.graphql';\r\nimport { gql } from '@apollo/client';\r\nimport { trafficUsageByCustomerDomainsRoute } from 'routes/trafficUsageByCustomerDomainsRoute';\r\nimport { trafficUsageByClientDomainsRoute } from 'routes/trafficUsageByClientDomainsRoute';\r\nimport { trafficUsageByDomainRoute } from 'routes/trafficUsageByDomainRoute';\r\n\r\nexport const trafficUsageByResellerRoute = (\r\n    path,\r\n    { clientIdParamName },\r\n) => ({\r\n    path,\r\n    handle: {\r\n        crumb: ({ data }) => ({ title: data.client.name }),\r\n        pageTitle: ({ data }) => Locale.getSection('components.routes').lmsg(\r\n            'trafficUsageByReseller',\r\n            { resellerName: data.client.name },\r\n        ),\r\n    },\r\n    loader: async ({ params }) => {\r\n        const clientId = params[clientIdParamName];\r\n        const clientNodeId = btoa(`Client:${clientId}`);\r\n\r\n        const { data: { client } } = await apolloClient.query({\r\n            query: gql`\r\n                query($clientId: ID!) {\r\n                    client: node(id: $clientId) {\r\n                        ... on Client {\r\n                            id\r\n                            name\r\n                        }\r\n                    }\r\n                }\r\n            `,\r\n            variables: { clientId: clientNodeId },\r\n        });\r\n\r\n        return { client };\r\n    },\r\n    children: [\r\n        {\r\n            index: true,\r\n            componentLoader: () => import(\r\n                /* webpackChunkName: \"components/pages/TrafficUsageByResellerPage\" */\r\n                'components/pages/TrafficUsageByResellerPage'\r\n            ),\r\n            loader: async ({ params }) => {\r\n                const clientId = params[clientIdParamName];\r\n                const clientNodeId = btoa(`Client:${clientId}`);\r\n                const trafficUsageListKey = `TrafficUsageByResellerCustomersList${clientId}`;\r\n\r\n                const [{ data: intervalsData }] = await Promise.all([\r\n                    apolloClient.query({ query: TRAFFIC_USAGE_INTERVALS }),\r\n                    apolloClient.query({\r\n                        query: TOTAL_TRAFFIC_USAGE_BY_RESELLER,\r\n                        variables: { clientNodeId },\r\n                    }),\r\n                    apolloClient.query({\r\n                        query: TRAFFIC_USAGE_BY_RESELLER_CLIENTS_LIST,\r\n                        variables: {\r\n                            clientNodeId,\r\n                            input: {\r\n                                ...readGraphQlListInputFromStorage({ key: trafficUsageListKey }),\r\n                                clientTypes: ['client'],\r\n                            },\r\n                        },\r\n                    }),\r\n                ]);\r\n\r\n                const { trafficUsageIntervals } = intervalsData.viewer.client.statistics;\r\n\r\n                return {\r\n                    trafficUsageIntervals,\r\n                    clientNodeId,\r\n                    trafficUsageListKey,\r\n                };\r\n            },\r\n        },\r\n        trafficUsageByCustomerDomainsRoute('customers/:customerId/domains'),\r\n        {\r\n            path: 'domains',\r\n            handle: {\r\n                crumb: () => ({\r\n                    title: Locale.getSection('components.routes').lmsg('trafficUsageByDomains'),\r\n                }),\r\n                helpContext: 'client.domain.traffic',\r\n            },\r\n            children: [\r\n                trafficUsageByClientDomainsRoute({\r\n                    clientIdParamName,\r\n                    clientType: 'reseller',\r\n                }),\r\n                trafficUsageByDomainRoute({ path: ':domainId' }),\r\n            ],\r\n        },\r\n    ],\r\n});\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"TrafficUsageByResellerClientsList\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientNodeId\"}},\"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\":\"ClientTrafficUsageByClientsListInput\"}},\"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\":\"clientNodeId\"}}}],\"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\":\"statistics\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"trafficUsageByClients\"},\"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\":\"clientId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clientName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"totalUsageFormatted\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"limitFormatted\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"limitRemainingFormatted\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"limitUsagePercent\"},\"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\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortColumn\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortDirection\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":923}};\n    doc.loc.source = {\"body\":\"query TrafficUsageByResellerClientsList(\\r\\n    $clientNodeId: ID!,\\r\\n    $input: ClientTrafficUsageByClientsListInput,\\r\\n) {\\r\\n    client: node(id: $clientNodeId) {\\r\\n        ... on Client {\\r\\n            id\\r\\n            statistics {\\r\\n                trafficUsageByClients(input: $input) {\\r\\n                    nodes {\\r\\n                        clientId\\r\\n                        clientName\\r\\n                        totalUsageFormatted\\r\\n                        limitFormatted\\r\\n                        limitRemainingFormatted\\r\\n                        limitUsagePercent\\r\\n                    }\\r\\n                    pageInfo {\\r\\n                        current\\r\\n                        total\\r\\n                        pageCount\\r\\n                    }\\r\\n                    sortInfo {\\r\\n                        sortColumn\\r\\n                        sortDirection\\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[\"TrafficUsageByResellerClientsList\"] = oneQuery(doc, \"TrafficUsageByResellerClientsList\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"TotalTrafficUsageByReseller\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientNodeId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"intervalKey\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"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\":\"clientNodeId\"}}}],\"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\":\"statistics\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"totalTrafficUsageByDomains\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"intervalKey\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"intervalKey\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"ownOnly\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"totalUsageFormatted\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"totalClientsTraffic\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"intervalKey\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"intervalKey\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"usageFormatted\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":503}};\n    doc.loc.source = {\"body\":\"query TotalTrafficUsageByReseller(\\r\\n    $clientNodeId: ID!,\\r\\n    $intervalKey: String\\r\\n) {\\r\\n    client: node(id: $clientNodeId) {\\r\\n        ... on Client {\\r\\n            id\\r\\n            statistics {\\r\\n                totalTrafficUsageByDomains(intervalKey: $intervalKey, ownOnly: true) {\\r\\n                    totalUsageFormatted\\r\\n                }\\r\\n                totalClientsTraffic(intervalKey: $intervalKey) {\\r\\n                    usageFormatted\\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[\"TotalTrafficUsageByReseller\"] = oneQuery(doc, \"TotalTrafficUsageByReseller\");\n        \r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { Locale } from 'jsw';\r\nimport { gql } from '@apollo/client';\r\nimport apolloClient from 'apolloClient';\r\nimport { trafficUsageByClientDomainsRoute } from 'routes/trafficUsageByClientDomainsRoute';\r\nimport { trafficUsageByDomainRoute } from 'routes/trafficUsageByDomainRoute';\r\n\r\nexport const trafficUsageByCustomerDomainsRoute = path => ({\r\n    path,\r\n    handle: {\r\n        crumb: ({ data }) => ({ title: data.client.name }),\r\n        pageTitle: ({ data }) => Locale.getSection('components.routes').lmsg(\r\n            'trafficUsageByClientDomains',\r\n            { clientName: data.client.name },\r\n        ),\r\n        helpContext: 'client.domain.traffic',\r\n    },\r\n    loader: async ({ params }) => {\r\n        const { customerId } = params;\r\n        const clientNodeId = btoa(`Client:${customerId}`);\r\n\r\n        const { data: { client } } = await apolloClient.query({\r\n            query: gql`\r\n                query($clientId: ID!) {\r\n                    client: node(id: $clientId) {\r\n                        ... on Client {\r\n                            id\r\n                            name\r\n                        }\r\n                    }\r\n                }\r\n            `,\r\n            variables: { clientId: clientNodeId },\r\n        });\r\n\r\n        return { client };\r\n    },\r\n    children: [\r\n        trafficUsageByClientDomainsRoute({\r\n            clientIdParamName: 'customerId',\r\n            clientType: 'customer',\r\n        }),\r\n        trafficUsageByDomainRoute({ path: ':domainId' }),\r\n    ],\r\n});\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport apolloClient from 'apolloClient';\r\nimport { readGraphQlListInputFromStorage } from 'components/common/GraphQlList';\r\nimport CLIENT_TRAFFIC_USAGE_INTERVALS from 'queries/ClientTrafficUsageIntervals.graphql';\r\nimport TRAFFIC_USAGE_BY_CLIENT_DOMAINS_LIST from 'queries/TrafficUsageByClientDomainsList.graphql';\r\nimport TOTAL_TRAFFIC_USAGE_BY_CLIENT_DOMAINS from 'queries/TotalTrafficUsageByClientDomains.graphql';\r\n\r\nexport const trafficUsageByClientDomainsRoute = ({\r\n    clientIdParamName,\r\n    clientType,\r\n}) => ({\r\n    index: true,\r\n    componentLoader: () => import(\r\n        /* webpackChunkName: \"components/pages/TrafficUsageByDomainsPage\" */\r\n        'components/pages/TrafficUsageByDomainsPage'\r\n    ),\r\n    loader: async ({ params }) => {\r\n        const clientId = params[clientIdParamName];\r\n        const trafficUsageListKey = `TrafficUsageByClientDomainsList${clientId}`;\r\n        const clientNodeId = btoa(`Client:${clientId}`);\r\n\r\n        const [{ data: intervalsData }] = await Promise.all([\r\n            apolloClient.query({\r\n                query: CLIENT_TRAFFIC_USAGE_INTERVALS,\r\n                variables: { clientId: clientNodeId },\r\n            }),\r\n            apolloClient.query({\r\n                query: TOTAL_TRAFFIC_USAGE_BY_CLIENT_DOMAINS,\r\n                variables: { clientId: clientNodeId },\r\n            }),\r\n            apolloClient.query({\r\n                query: TRAFFIC_USAGE_BY_CLIENT_DOMAINS_LIST,\r\n                variables: {\r\n                    clientId: clientNodeId,\r\n                    input: readGraphQlListInputFromStorage({ key: trafficUsageListKey }),\r\n                },\r\n            }),\r\n        ]);\r\n\r\n        const { trafficUsageIntervals } = intervalsData.client.statistics;\r\n\r\n        return {\r\n            trafficUsageIntervals,\r\n            listQueryParams: {\r\n                key: trafficUsageListKey,\r\n                query: TRAFFIC_USAGE_BY_CLIENT_DOMAINS_LIST,\r\n                extractList: data => data.client.statistics.trafficUsageByDomains,\r\n                variables: { clientId: clientNodeId },\r\n            },\r\n            totalUsageQueryParams: {\r\n                query: TOTAL_TRAFFIC_USAGE_BY_CLIENT_DOMAINS,\r\n                variables: { clientId: clientNodeId },\r\n                extractTrafficData: data => data.client.statistics.totalTrafficUsageByDomains,\r\n            },\r\n            showFilters: clientType !== 'customer',\r\n            showClientNameColumn: clientType !== 'customer',\r\n            parentClientType: clientType,\r\n        };\r\n    },\r\n});\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ClientTrafficUsageIntervals\"},\"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\":\"statistics\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"trafficUsageIntervals\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"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\":\"formattedTotalUsage\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":378}};\n    doc.loc.source = {\"body\":\"query ClientTrafficUsageIntervals(\\r\\n    $clientId: ID!\\r\\n) {\\r\\n    client: node(id: $clientId) {\\r\\n        ... on Client {\\r\\n            id\\r\\n            statistics {\\r\\n                trafficUsageIntervals {\\r\\n                    key\\r\\n                    month\\r\\n                    year\\r\\n                    formattedTotalUsage\\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[\"ClientTrafficUsageIntervals\"] = oneQuery(doc, \"ClientTrafficUsageIntervals\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"TrafficUsageByClientDomainsList\"},\"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\":\"input\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ClientTrafficUsageByDomainsListInput\"}},\"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\":\"statistics\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"trafficUsageByDomains\"},\"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\":\"domainId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domainName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clientName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"totalUsageFormatted\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscriptionLimitFormatted\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscriptionLimitRemainingFormatted\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscriptionLimitUsagePercent\"},\"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\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortColumn\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortDirection\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":984}};\n    doc.loc.source = {\"body\":\"query TrafficUsageByClientDomainsList(\\r\\n    $clientId: ID!,\\r\\n    $input: ClientTrafficUsageByDomainsListInput\\r\\n) {\\r\\n    client: node(id: $clientId) {\\r\\n        ... on Client {\\r\\n            id\\r\\n            statistics {\\r\\n                trafficUsageByDomains(input: $input) {\\r\\n                    nodes {\\r\\n                        domainId\\r\\n                        domainName\\r\\n                        clientName\\r\\n                        totalUsageFormatted\\r\\n                        subscriptionLimitFormatted\\r\\n                        subscriptionLimitRemainingFormatted\\r\\n                        subscriptionLimitUsagePercent\\r\\n                    }\\r\\n                    pageInfo {\\r\\n                        current\\r\\n                        total\\r\\n                        pageCount\\r\\n                    }\\r\\n                    sortInfo {\\r\\n                        sortColumn\\r\\n                        sortDirection\\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[\"TrafficUsageByClientDomainsList\"] = oneQuery(doc, \"TrafficUsageByClientDomainsList\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"TotalTrafficUsageByClientDomains\"},\"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\":\"intervalKey\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"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\":\"statistics\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"totalTrafficUsageByDomains\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"intervalKey\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"intervalKey\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"ClientTotalTrafficUsageByDomainsFragment\"},\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":458}};\n    doc.loc.source = {\"body\":\"#import \\\"queries/ClientTotalTrafficUsageByDomainsFragment.graphql\\\"\\r\\n\\r\\nquery TotalTrafficUsageByClientDomains(\\r\\n    $clientId: ID!,\\r\\n    $intervalKey: String\\r\\n) {\\r\\n    client: node(id: $clientId) {\\r\\n        ... on Client {\\r\\n            id\\r\\n            statistics {\\r\\n                totalTrafficUsageByDomains(intervalKey: $intervalKey) {\\r\\n                    ...ClientTotalTrafficUsageByDomainsFragment\\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  doc.definitions = doc.definitions.concat(unique(require(\"queries/ClientTotalTrafficUsageByDomainsFragment.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[\"TotalTrafficUsageByClientDomains\"] = oneQuery(doc, \"TotalTrafficUsageByClientDomains\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ClientTotalTrafficUsageByDomainsFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ClientTotalTrafficUsageByDomains\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"totalUsageFormatted\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isUnlimited\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"limitFormatted\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"limitUsagePercent\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":177}};\n    doc.loc.source = {\"body\":\"fragment ClientTotalTrafficUsageByDomainsFragment on ClientTotalTrafficUsageByDomains {\\r\\n    totalUsageFormatted\\r\\n    isUnlimited\\r\\n    limitFormatted\\r\\n    limitUsagePercent\\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[\"ClientTotalTrafficUsageByDomainsFragment\"] = oneQuery(doc, \"ClientTotalTrafficUsageByDomainsFragment\");\n        \r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { Locale } from 'jsw';\r\nimport apolloClient from 'apolloClient';\r\nimport { readGraphQlListInputFromStorage } from 'components/common/GraphQlList';\r\nimport { trafficUsageByCustomerDomainsRoute } from 'routes/trafficUsageByCustomerDomainsRoute';\r\nimport TRAFFIC_USAGE_INTERVALS from 'queries/TrafficUsageIntervals.graphql';\r\nimport TRAFFIC_USAGE_BY_VIEWER_CLIENTS_LIST from 'queries/TrafficUsageByViewerClientsList.graphql';\r\nimport TOTAL_TRAFFIC_USAGE_BY_VIEWER_CLIENTS from 'queries/TotalTrafficUsageByViewerClients.graphql';\r\n\r\nexport const trafficUsageByViewerCustomersChildrenRoute = ({ path = 'traffic-usage-customers' } = {}) => ({\r\n    path,\r\n    handle: {\r\n        crumb: () => ({\r\n            title: Locale.getSection('components.routes').lmsg('trafficUsageByCustomers'),\r\n        }),\r\n    },\r\n    children: [\r\n        trafficUsageByCustomerDomainsRoute(':customerId/domains'),\r\n    ],\r\n});\r\nexport const trafficUsageByViewerCustomersRoute = ({ path = 'traffic-usage-customers', helpContext, ignoreTopLevelTitle = false } = {}) => ({\r\n    path,\r\n    handle: {\r\n        crumb: () => ignoreTopLevelTitle ? [] : ({\r\n            title: Locale.getSection('components.routes').lmsg('trafficUsageByCustomers'),\r\n        }),\r\n        helpContext,\r\n    },\r\n    children: [\r\n        {\r\n            index: true,\r\n            componentLoader: () => import(\r\n                /* webpackChunkName: \"components/pages/TrafficUsageByClientsPage\" */\r\n                'components/pages/TrafficUsageByClientsPage'\r\n            ),\r\n            loader: async () => {\r\n                const trafficUsageListKey = 'TrafficUsageByViewerCustomersList';\r\n                const clientType = 'client';\r\n\r\n                const [{ data: intervalsData }] = await Promise.all([\r\n                    apolloClient.query({\r\n                        query: TRAFFIC_USAGE_INTERVALS,\r\n                    }),\r\n                    apolloClient.query({\r\n                        query: TOTAL_TRAFFIC_USAGE_BY_VIEWER_CLIENTS,\r\n                        variables: { clientType },\r\n                    }),\r\n                    apolloClient.query({\r\n                        query: TRAFFIC_USAGE_BY_VIEWER_CLIENTS_LIST,\r\n                        variables: {\r\n                            input: {\r\n                                ...readGraphQlListInputFromStorage({ key: trafficUsageListKey }),\r\n                                clientTypes: [clientType],\r\n                            },\r\n                        },\r\n                    }),\r\n                ]);\r\n\r\n                const { trafficUsageIntervals } = intervalsData.viewer.client.statistics;\r\n\r\n                return {\r\n                    trafficUsageIntervals,\r\n                    trafficUsageListKey,\r\n                    clientType,\r\n                    getClientLink: clientId => `${clientId}/domains`,\r\n                };\r\n            },\r\n        },\r\n    ],\r\n});\r\n\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { Locale } from 'jsw';\r\nimport apolloClient from 'apolloClient';\r\nimport { readGraphQlListInputFromStorage } from 'components/common/GraphQlList';\r\nimport { trafficUsageByDomainRoute } from 'routes/trafficUsageByDomainRoute';\r\nimport TRAFFIC_USAGE_INTERVALS from 'queries/TrafficUsageIntervals.graphql';\r\nimport TRAFFIC_USAGE_BY_VIEWER_DOMAINS_LIST from 'queries/TrafficUsageByViewerDomainsList.graphql';\r\nimport TOTAL_TRAFFIC_USAGE_BY_VIEWER_DOMAINS from 'queries/TotalTrafficUsageByViewerDomains.graphql';\r\n\r\n\r\nexport const trafficUsageByViewerDomainsChildrenRoute = ({ path = 'traffic-usage/domains' } = {}) => ({\r\n    path,\r\n    handle: {\r\n        crumb: () => ({\r\n            title: Locale.getSection('components.routes').lmsg('trafficUsageByDomains'),\r\n        }),\r\n    },\r\n    children: [\r\n        trafficUsageByDomainRoute({ path: ':domainId' }),\r\n    ],\r\n});\r\n\r\nexport const trafficUsageByViewerDomainsRoute = ({ path = 'traffic-usage/domains', ignoreTopLevelTitle = false } = {}) => ({\r\n    path,\r\n    handle: {\r\n        crumb: () => ignoreTopLevelTitle ? [] : ({\r\n            title: Locale.getSection('components.routes').lmsg('trafficUsageByDomains'),\r\n        }),\r\n        helpContext: 'client.domain.traffic',\r\n    },\r\n    children: [\r\n        {\r\n            index: true,\r\n            componentLoader: () => import(\r\n                /* webpackChunkName: \"components/pages/TrafficUsageByDomainsPage\" */\r\n                'components/pages/TrafficUsageByDomainsPage'\r\n            ),\r\n            loader: async () => {\r\n                const trafficUsageListKey = 'TrafficUsageByViewerDomainsList';\r\n\r\n                const [{ data: intervalsData }] = await Promise.all([\r\n                    apolloClient.query({\r\n                        query: TRAFFIC_USAGE_INTERVALS,\r\n                    }),\r\n                    apolloClient.query({\r\n                        query: TOTAL_TRAFFIC_USAGE_BY_VIEWER_DOMAINS,\r\n                    }),\r\n                    apolloClient.query({\r\n                        query: TRAFFIC_USAGE_BY_VIEWER_DOMAINS_LIST,\r\n                        variables: {\r\n                            input: readGraphQlListInputFromStorage({ key: trafficUsageListKey }),\r\n                        },\r\n                    }),\r\n                ]);\r\n\r\n                const { trafficUsageIntervals } = intervalsData.viewer.client.statistics;\r\n\r\n                return {\r\n                    trafficUsageIntervals,\r\n                    listQueryParams: {\r\n                        key: trafficUsageListKey,\r\n                        query: TRAFFIC_USAGE_BY_VIEWER_DOMAINS_LIST,\r\n                        extractList: data => data.viewer.client.statistics.trafficUsageByDomains,\r\n                    },\r\n                    totalUsageQueryParams: {\r\n                        query: TOTAL_TRAFFIC_USAGE_BY_VIEWER_DOMAINS,\r\n                        extractTrafficData: data => data.viewer.client.statistics.totalTrafficUsageByDomains,\r\n                    },\r\n                };\r\n            },\r\n        },\r\n    ],\r\n});\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"TrafficUsageByViewerDomainsList\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ClientTrafficUsageByDomainsListInput\"}},\"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\":\"statistics\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"trafficUsageByDomains\"},\"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\":\"domainId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domainName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clientName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"totalUsageFormatted\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscriptionLimitFormatted\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscriptionLimitRemainingFormatted\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscriptionLimitUsagePercent\"},\"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\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortColumn\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortDirection\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":950}};\n    doc.loc.source = {\"body\":\"query TrafficUsageByViewerDomainsList(\\r\\n    $input: ClientTrafficUsageByDomainsListInput\\r\\n) {\\r\\n    viewer {\\r\\n        login\\r\\n        client {\\r\\n            id\\r\\n            statistics {\\r\\n                trafficUsageByDomains(input: $input) {\\r\\n                    nodes {\\r\\n                        domainId\\r\\n                        domainName\\r\\n                        clientName\\r\\n                        totalUsageFormatted\\r\\n                        subscriptionLimitFormatted\\r\\n                        subscriptionLimitRemainingFormatted\\r\\n                        subscriptionLimitUsagePercent\\r\\n                    }\\r\\n                    pageInfo {\\r\\n                        current\\r\\n                        total\\r\\n                        pageCount\\r\\n                    }\\r\\n                    sortInfo {\\r\\n                        sortColumn\\r\\n                        sortDirection\\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[\"TrafficUsageByViewerDomainsList\"] = oneQuery(doc, \"TrafficUsageByViewerDomainsList\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"TotalTrafficUsageByViewerDomains\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"intervalKey\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"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\":\"statistics\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"totalTrafficUsageByDomains\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"intervalKey\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"intervalKey\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"ClientTotalTrafficUsageByDomainsFragment\"},\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":424}};\n    doc.loc.source = {\"body\":\"#import \\\"queries/ClientTotalTrafficUsageByDomainsFragment.graphql\\\"\\r\\n\\r\\nquery TotalTrafficUsageByViewerDomains(\\r\\n    $intervalKey: String\\r\\n) {\\r\\n    viewer {\\r\\n        login\\r\\n        client {\\r\\n            id\\r\\n            statistics {\\r\\n                totalTrafficUsageByDomains(intervalKey: $intervalKey) {\\r\\n                    ...ClientTotalTrafficUsageByDomainsFragment\\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  doc.definitions = doc.definitions.concat(unique(require(\"queries/ClientTotalTrafficUsageByDomainsFragment.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[\"TotalTrafficUsageByViewerDomains\"] = oneQuery(doc, \"TotalTrafficUsageByViewerDomains\");\n        \r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport apolloClient from '../apolloClient';\r\nimport { gql } from '@apollo/client';\r\nimport { addToast } from 'helpers/toasts';\r\nimport pageData from 'helpers/pageData';\r\nimport homeQueries from 'components/pages/HomePage/queries';\r\nimport TitleAddon from 'components/pages/HomePage/TitleAddon';\r\nimport { emptyFn, redirect as jswRedirect } from 'jsw';\r\n\r\nimport HOME_PAGE from 'queries/AdminHomePage.graphql';\r\n\r\nconst redirect = url => {\r\n    jswRedirect(url);\r\n    return new Promise(emptyFn);\r\n};\r\nconst errors = response => (response.reason?.graphQLErrors ?? []).map(({ message, extensions }) => extensions?.debugMessage || message);\r\n\r\nexport const homeRoute = {\r\n    path: 'home',\r\n    componentLoader: () => import(/* webpackChunkName: \"components/pages/HomePage\" */'components/pages/HomePage'),\r\n    loader: async () => {\r\n        const { data: { viewer: { type } } } = 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        if (type !== 'ADMIN') {\r\n            return redirect('/admin/home/');\r\n        }\r\n\r\n        const { pageSidebar } = pageData();\r\n        if (pageSidebar?.isPowerUserPanel) {\r\n            return redirect('/smb/');\r\n        }\r\n\r\n        const response = await Promise.allSettled([\r\n            ...Object.values(homeQueries).map(query => apolloClient.query({ query })),\r\n            apolloClient.query({ query: HOME_PAGE }),\r\n        ]);\r\n\r\n        const data = Object.keys(homeQueries).reduce((acc, block, i) => ({\r\n            ...acc,\r\n            [block]: {\r\n                data: response[i].value?.data,\r\n                errors: errors(response[i]),\r\n            },\r\n        }), {});\r\n\r\n        const layoutResponse = response.at(-1);\r\n        errors(layoutResponse).forEach(message => {\r\n            addToast({ intent: 'danger', message });\r\n        });\r\n        return { data };\r\n    },\r\n    handle: {\r\n        helpContext: 'home.admin',\r\n        titleRightAddon: <TitleAddon />,\r\n        pageContentHeader: { className: 'home-page-heading' },\r\n    },\r\n    children: [{\r\n        path: 'customize',\r\n        componentLoader: () => import(/* webpackChunkName: \"components/pages/HomeCustomizationPage\" */'components/pages/HomePage/Customization'),\r\n        loader: () => apolloClient.query({ query: require('components/pages/HomePage/queries/Customization.graphql') }),\r\n    }],\r\n};\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport * as constants from '../constants';\r\nimport SERVER_INFO_QUERY from 'queries/AdminHomeServerInfo.graphql';\r\nimport UPDATES_QUERY from 'queries/AdminHomeUpdates.graphql';\r\nimport OVERUSED_SUBSCRIPTIONS_QUERY from 'queries/AdminHomeOverusedSubscriptions.graphql';\r\nimport MY_SUBSCRIPTIONS_QUERY from 'queries/AdminHomeMySubscriptions.graphql';\r\nimport EXTENSIONS_QUERY from 'queries/AdminHomeExtensions.graphql';\r\nimport CHANGE_LOG_QUERY from 'queries/AdminHomeChangeLog.graphql';\r\n\r\nexport default {\r\n    [constants.SERVER_INFO]: SERVER_INFO_QUERY,\r\n    [constants.UPDATES]: UPDATES_QUERY,\r\n    [constants.OVERUSED_SUBSCRIPTIONS]: OVERUSED_SUBSCRIPTIONS_QUERY,\r\n    [constants.MY_SUBSCRIPTIONS]: MY_SUBSCRIPTIONS_QUERY,\r\n    [constants.EXTENSIONS]: EXTENSIONS_QUERY,\r\n    [constants.CHANGE_LOG]: CHANGE_LOG_QUERY,\r\n};\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nexport const SERVER_INFO = 'serverInfo';\r\nexport const UPDATES = 'updates';\r\nexport const OVERUSED_SUBSCRIPTIONS = 'overusedSubscriptions';\r\nexport const MY_SUBSCRIPTIONS = 'mySubscriptions';\r\nexport const IP_BAN = 'ipBan';\r\nexport const BACKUP = 'backup';\r\nexport const EXTENSIONS = 'ext';\r\nexport const MAIL_QUEUE = 'mailQueue';\r\nexport const PROMO = 'promo';\r\nexport const CHANGE_LOG = 'changeLog';\r\nexport const CUSTOM_BUTTONS = 'customButtons';\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"AdminHomeServerInfo\"},\"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\":\"defaultIpAddress\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"publicIpAddress\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"settings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fullHostName\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"information\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sysUptime\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"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\":\"permissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageServerInfo\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":389}};\n    doc.loc.source = {\"body\":\"query AdminHomeServerInfo {\\r\\n    server {\\r\\n        defaultIpAddress {\\r\\n            ipAddress\\r\\n            publicIpAddress\\r\\n        }\\r\\n        settings {\\r\\n            fullHostName\\r\\n        }\\r\\n        information {\\r\\n            sysUptime\\r\\n        }\\r\\n    }\\r\\n    os {\\r\\n        name\\r\\n    }\\r\\n    viewer {\\r\\n        login\\r\\n        permissions {\\r\\n            manageServerInfo\\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[\"AdminHomeServerInfo\"] = oneQuery(doc, \"AdminHomeServerInfo\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"AdminHomeUpdates\"},\"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\":\"productVersion\"},\"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\":\"patch\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"productUpdates\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"availablePatch\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"availableVersion\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lastUpdateDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lastCheckDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isAutoupdateEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"installingUpdatesTaskId\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pum\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"installingUpdatesTaskId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updates\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"pagination\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"page\"},\"value\":{\"kind\":\"IntValue\",\"value\":\"1\"}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"itemsPerPage\"},\"value\":{\"kind\":\"IntValue\",\"value\":\"1\"}}]}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"availableVersion\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pageInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"total\"},\"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\":\"config\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updates\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showControls\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"visualNotifications\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isPumAllowed\"},\"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\":\"permissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageServerUpdates\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":1053}};\n    doc.loc.source = {\"body\":\"query AdminHomeUpdates {\\r\\n    server {\\r\\n        productVersion {\\r\\n            name\\r\\n            version\\r\\n            patch\\r\\n        }\\r\\n        productUpdates {\\r\\n            availablePatch\\r\\n            availableVersion\\r\\n            lastUpdateDate\\r\\n            lastCheckDate\\r\\n            isAutoupdateEnabled\\r\\n            installingUpdatesTaskId\\r\\n        }\\r\\n        pum {\\r\\n            installingUpdatesTaskId\\r\\n            updates(\\r\\n                input: { pagination: { page: 1, itemsPerPage: 1 } }\\r\\n            ) {\\r\\n                nodes {\\r\\n                    name\\r\\n                    availableVersion\\r\\n                }\\r\\n                pageInfo {\\r\\n                    total\\r\\n                }\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n    primaryKey {\\r\\n        pleskKeyId\\r\\n        editionName\\r\\n    }\\r\\n    config {\\r\\n        updates {\\r\\n            showControls\\r\\n            visualNotifications\\r\\n        }\\r\\n    }\\r\\n    mode {\\r\\n        isPumAllowed\\r\\n    }\\r\\n    viewer {\\r\\n        login\\r\\n        permissions {\\r\\n            manageServerUpdates\\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[\"AdminHomeUpdates\"] = oneQuery(doc, \"AdminHomeUpdates\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"AdminHomeOverusedSubscriptions\"},\"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\":\"client\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscriptions\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"pagination\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"page\"},\"value\":{\"kind\":\"IntValue\",\"value\":\"1\"}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"itemsPerPage\"},\"value\":{\"kind\":\"IntValue\",\"value\":\"3\"}}]}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"orderBy\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"displayName\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"ASC\"}}]}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"searchFilters\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"overuse\"},\"value\":{\"kind\":\"StringValue\",\"value\":\"true\",\"block\":false}}]}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"own\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":false}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pageInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"total\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Subscription\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"},\"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\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"limits\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"all\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"overused\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"formattedValue\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"formattedUsed\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":1078}};\n    doc.loc.source = {\"body\":\"query AdminHomeOverusedSubscriptions {\\r\\n    viewer {\\r\\n        login\\r\\n        client {\\r\\n            id\\r\\n            subscriptions(\\r\\n                input: {\\r\\n                    pagination: { page: 1, itemsPerPage: 3 }\\r\\n                    orderBy: { displayName: ASC }\\r\\n                    searchFilters: { overuse: \\\"true\\\" }\\r\\n                    own: false,\\r\\n                }\\r\\n            ) {\\r\\n                pageInfo {\\r\\n                    total\\r\\n                }\\r\\n                nodes {\\r\\n                    id\\r\\n                    ... on Subscription {\\r\\n                        status\\r\\n                        mainDomain {\\r\\n                            id\\r\\n                            name\\r\\n                        }\\r\\n                        limits {\\r\\n                            all(overused: true) {\\r\\n                                name\\r\\n                                formattedValue\\r\\n                                formattedUsed\\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[\"AdminHomeOverusedSubscriptions\"] = oneQuery(doc, \"AdminHomeOverusedSubscriptions\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"AdminHomeMySubscriptions\"},\"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\":\"createDomains\"},\"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\":\"subscriptions\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"pagination\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"page\"},\"value\":{\"kind\":\"IntValue\",\"value\":\"1\"}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"itemsPerPage\"},\"value\":{\"kind\":\"IntValue\",\"value\":\"5\"}}]}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"orderBy\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"lastVisitTime\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"DESC\"}}]}}]}}],\"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\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Subscription\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"},\"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\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":697}};\n    doc.loc.source = {\"body\":\"query AdminHomeMySubscriptions {\\r\\n    viewer {\\r\\n        login\\r\\n        permissions {\\r\\n            createDomains\\r\\n        }\\r\\n        client {\\r\\n            id\\r\\n            subscriptions(\\r\\n                input: {\\r\\n                    pagination: { page: 1, itemsPerPage: 5 }\\r\\n                    orderBy: { lastVisitTime: DESC }\\r\\n                }\\r\\n            ) {\\r\\n                nodes {\\r\\n                    id\\r\\n                    ... on Subscription {\\r\\n                        status\\r\\n                        mainDomain {\\r\\n                            id\\r\\n                            name\\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[\"AdminHomeMySubscriptions\"] = oneQuery(doc, \"AdminHomeMySubscriptions\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"AdminHomeExtensions\"},\"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\":\"home\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"extensions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"icon\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"content\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"footer\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"async\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"skeletonSize\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":305}};\n    doc.loc.source = {\"body\":\"query AdminHomeExtensions {\\r\\n    viewer {\\r\\n        login\\r\\n        home {\\r\\n            extensions {\\r\\n                name\\r\\n                title\\r\\n                icon\\r\\n                content\\r\\n                footer\\r\\n                async\\r\\n                skeletonSize\\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[\"AdminHomeExtensions\"] = oneQuery(doc, \"AdminHomeExtensions\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"AdminHomeChangeLog\"},\"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\":\"productUpdates\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"changeLogUrl\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":115}};\n    doc.loc.source = {\"body\":\"query AdminHomeChangeLog {\\r\\n    server {\\r\\n        productUpdates {\\r\\n            changeLogUrl\\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[\"AdminHomeChangeLog\"] = oneQuery(doc, \"AdminHomeChangeLog\");\n        \r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { Button } from '@plesk/ui-library';\r\nimport { Locale } from 'jsw';\r\nimport Link from 'components/common/Link';\r\nimport { useQuery } from '@apollo/client';\r\nimport isEmptyLayout from './common/isEmptyLayout';\r\n\r\nimport HOME_PAGE_QUERY from 'queries/AdminHomePage.graphql';\r\n\r\nconst Translate = Locale.getTranslate('components.buttons');\r\n\r\nconst TitleAddon = () => {\r\n    const response = useQuery(HOME_PAGE_QUERY);\r\n\r\n    if (response.data?.viewer?.home?.locked || isEmptyLayout(response)) {\r\n        return null;\r\n    }\r\n\r\n    return (\r\n        <Button\r\n            ghost\r\n            id=\"customize\"\r\n            component={Link}\r\n            to=\"/cp/home/customize\"\r\n            icon={{\r\n                name: 'gear',\r\n                style: {\r\n                    order: '1',\r\n                    marginInline: '4px 0',\r\n                },\r\n            }}\r\n        >\r\n            <Translate content=\"customize\" />\r\n        </Button>\r\n    );\r\n};\r\n\r\nexport default TitleAddon;\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nexport default response => {\r\n    const home = response?.data?.viewer?.home ?? {};\r\n    const { layout, systemMessages } = home;\r\n    return !(systemMessages ?? []).length && (layout ?? []).every(column => column.length === 0);\r\n};\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"AdminHomePage\"},\"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\":\"home\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"layout\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"locked\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"feedbackURL\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"systemMessages\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"content\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isHideable\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"component\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"params\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":346}};\n    doc.loc.source = {\"body\":\"query AdminHomePage {\\r\\n    viewer {\\r\\n        login\\r\\n        home {\\r\\n            layout\\r\\n            locked\\r\\n            feedbackURL\\r\\n            systemMessages {\\r\\n                type\\r\\n                key\\r\\n                content\\r\\n                isHideable\\r\\n                component\\r\\n                params\\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[\"AdminHomePage\"] = oneQuery(doc, \"AdminHomePage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"HomeCustomization\"},\"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\":\"home\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sections\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"blocks\"},\"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\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"icon\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":307}};\n    doc.loc.source = {\"body\":\"query HomeCustomization {\\r\\n    viewer {\\r\\n        login\\r\\n        home {\\r\\n            sections {\\r\\n                name\\r\\n                blocks {\\r\\n                    name\\r\\n                    enabled\\r\\n                    title\\r\\n                    icon\\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[\"HomeCustomization\"] = oneQuery(doc, \"HomeCustomization\");\n        \r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { Locale } from 'jsw';\r\nimport apolloClient from 'apolloClient';\r\nimport { redirect } from 'react-router-dom';\r\nimport { summaryReportRoute, summaryReportChildrenRoute } from './summaryReportRoute';\r\nimport { resourceUsageByDomainRoute } from './resourceUsageByDomainRoute';\r\nimport { trafficUsageByViewerCustomersRoute, trafficUsageByViewerCustomersChildrenRoute } from 'routes/trafficUsageByViewerCustomersRoute';\r\nimport { trafficUsageByViewerResellersRoute, trafficUsageByViewerResellersChildrenRoute } from 'routes/trafficUsageByViewerResellersRoute';\r\nimport { trafficUsageByViewerDomainsRoute, trafficUsageByViewerDomainsChildrenRoute } from 'routes/trafficUsageByViewerDomainsRoute';\r\nexport const infoAndStatisticsRoute = {\r\n    path: 'info-and-statistics',\r\n    loader: async () => {\r\n        const { data } = await apolloClient.query({\r\n            query: require('queries/InfoAndStatisticsPage.graphql'),\r\n        });\r\n\r\n        return data;\r\n    },\r\n    handle: {\r\n        crumb: ({ data: { viewer: { type } } }) => ({\r\n            title: Locale.getSection('components.routes').lmsg(type === 'ADMIN' ? 'infoAndStatisticsAdmin' : 'infoAndStatisticsReseller'),\r\n        }),\r\n    },\r\n    children: [{\r\n        componentLoader: () => import(\r\n            /* webpackChunkName: \"components/pages/InfoAndStatisticsPage\" */\r\n            'components/pages/InfoAndStatisticsPage'\r\n        ),\r\n        children: [\r\n            {\r\n                index: true,\r\n                loader: async () => {\r\n                    const { data: { viewer: { permissions: { manageServerInfo } } } } = await apolloClient.query({\r\n                        query: require('queries/InfoAndStatisticsPage.graphql'),\r\n                    });\r\n\r\n                    if (manageServerInfo) {\r\n                        return redirect('overview');\r\n                    }\r\n                    return redirect('domains');\r\n                },\r\n            },\r\n            {\r\n                path: 'overview',\r\n                componentLoader: () => import(/* webpackChunkName: \"components/pages/ServerInformationPage\" */'components/pages/ServerInformationPage'),\r\n                loader: async () => {\r\n                    const { data: { server: { information } } } = await apolloClient.query({\r\n                        query: require('queries/ServerInformationPage.graphql'),\r\n                    });\r\n\r\n                    if (!information) {\r\n                        throw new Response('Not Found', { status: 404 });\r\n                    }\r\n                },\r\n                handle: {\r\n                    helpContext: 'server.statistics',\r\n                },\r\n            },\r\n            {\r\n                path: 'traffic-usage',\r\n                loader: async () => {\r\n                    const { data } = await apolloClient.query({\r\n                        query: require('queries/ViewerType.graphql'),\r\n                    });\r\n                    return data;\r\n                },\r\n                componentLoader: () => import(\r\n                    /* webpackChunkName: \"components/pages/InfoAndStatisticsPage/TrafficUsageLayoutPage\" */\r\n                    'components/pages/InfoAndStatisticsPage/TrafficUsageLayoutPage'\r\n                ),\r\n                children: [\r\n                    {\r\n                        index: true,\r\n                        loader: () => redirect('./domains'),\r\n                    },\r\n                    trafficUsageByViewerDomainsRoute({ path: 'domains', ignoreTopLevelTitle: true }),\r\n                    trafficUsageByViewerCustomersRoute({ path: 'customers', ignoreTopLevelTitle: true }),\r\n                    trafficUsageByViewerResellersRoute({ path: 'resellers', ignoreTopLevelTitle: true }),\r\n                ],\r\n            },\r\n            resourceUsageByDomainRoute({ path: 'domains', ignoreTopLevelTitle: true }),\r\n            summaryReportRoute({ ignoreTopLevelTitle: true }),\r\n        ],\r\n    },\r\n    summaryReportChildrenRoute,\r\n    trafficUsageByViewerDomainsChildrenRoute({ path: 'traffic-usage/domains' }),\r\n    trafficUsageByViewerCustomersChildrenRoute({ path: 'traffic-usage/customers' }),\r\n    trafficUsageByViewerResellersChildrenRoute({ path: 'traffic-usage/resellers' }),\r\n    ],\r\n};\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport apolloClient from '../apolloClient';\r\nimport { readGraphQlListInputFromStorage } from '../components/common/GraphQlList';\r\nimport { Locale } from 'jsw';\r\n\r\nexport const resourceUsageByDomainRoute = ({ path = 'resource-usage', ignoreTopLevelTitle = false } = {}) => ({\r\n    path,\r\n    componentLoader: () => import(/* webpackChunkName: \"components/pages/DomainsResourceUsagePage\" */'components/pages/DomainsResourceUsagePage'),\r\n    loader: async () => {\r\n        const res = await apolloClient.query({\r\n            query: require('queries/DomainsResourceUsage.graphql'),\r\n            variables: {\r\n                input: readGraphQlListInputFromStorage({ key: 'ResourceUsagePage' }),\r\n            },\r\n        });\r\n\r\n        return res;\r\n    },\r\n    handle: {\r\n        crumb: () => ignoreTopLevelTitle ? [] : ({\r\n            title: Locale.getSection('components.routes').lmsg('resourceUsageByDomains'),\r\n        }),\r\n        helpContext: 'client.domain-summary-report',\r\n    },\r\n});\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"DomainsResourceUsage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ResourceUsageListInput\"}},\"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\":\"email\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resourceUsage\"},\"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\":\"clientName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domainName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUsage\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mailUsage\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"databaseUsage\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"logsUsage\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"backupsUsage\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"configsUsage\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"anonFtpUsage\"},\"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\":\"pageCount\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"total\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortColumn\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortDirection\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isUnix\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":856}};\n    doc.loc.source = {\"body\":\"query DomainsResourceUsage($input: ResourceUsageListInput) {\\r\\n    viewer {\\r\\n        login\\r\\n        type\\r\\n        client {\\r\\n            id\\r\\n            email\\r\\n            resourceUsage(input: $input) {\\r\\n                nodes {\\r\\n                    clientName\\r\\n                    domainName\\r\\n                    webUsage\\r\\n                    mailUsage\\r\\n                    databaseUsage\\r\\n                    logsUsage\\r\\n                    backupsUsage\\r\\n                    configsUsage\\r\\n                    anonFtpUsage\\r\\n                }\\r\\n                pageInfo {\\r\\n                    current\\r\\n                    pageCount\\r\\n                    total\\r\\n                }\\r\\n                sortInfo {\\r\\n                    sortColumn\\r\\n                    sortDirection\\r\\n                }\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n    os {\\r\\n        isUnix\\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[\"DomainsResourceUsage\"] = oneQuery(doc, \"DomainsResourceUsage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"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\":\"permissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageServerInfo\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":126}};\n    doc.loc.source = {\"body\":\"query {\\r\\n    viewer {\\r\\n        login\\r\\n        type\\r\\n        permissions {\\r\\n            manageServerInfo\\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    \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerInformationPage\"},\"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\":\"information\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"cpu\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"cpuCores\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sysUptime\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"loadAverage\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"last1min\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"last5min\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"last15min\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"memory\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"total\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"used\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"available\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"buffer\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"cached\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"shared\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"free\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hardware\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"swap\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"total\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"used\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"free\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sysDiskSpace\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"directory\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"total\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"used\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"available\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"protectedDirectories\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domains\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"active\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"inactive\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"problems\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"productVersion\"},\"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\":\"build\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"osVersion\"},\"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\":\"name\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryKey\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pleskKeyId\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":1126}};\n    doc.loc.source = {\"body\":\"query ServerInformationPage {\\r\\n    server {\\r\\n        information {\\r\\n            cpu\\r\\n            cpuCores\\r\\n            sysUptime\\r\\n            loadAverage {\\r\\n                last1min\\r\\n                last5min\\r\\n                last15min\\r\\n            }\\r\\n            memory {\\r\\n                total\\r\\n                used\\r\\n                available\\r\\n                buffer\\r\\n                cached\\r\\n                shared\\r\\n                free\\r\\n                hardware\\r\\n            }\\r\\n            swap {\\r\\n                total\\r\\n                used\\r\\n                free\\r\\n            }\\r\\n            sysDiskSpace {\\r\\n                directory\\r\\n                total\\r\\n                used\\r\\n                available\\r\\n                protectedDirectories\\r\\n            }\\r\\n            domains {\\r\\n                active\\r\\n                inactive\\r\\n                problems\\r\\n            }\\r\\n        }\\r\\n        productVersion {\\r\\n            name\\r\\n            version\\r\\n            build\\r\\n            os\\r\\n            osVersion\\r\\n        }\\r\\n    }\\r\\n    os {\\r\\n        isWindows\\r\\n        name\\r\\n    }\\r\\n    primaryKey {\\r\\n        pleskKeyId\\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[\"ServerInformationPage\"] = oneQuery(doc, \"ServerInformationPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ViewerType\"},\"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\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":73}};\n    doc.loc.source = {\"body\":\"query ViewerType {\\r\\n    viewer {\\r\\n        login\\r\\n        type\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ViewerType\"] = oneQuery(doc, \"ViewerType\");\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\":\"ChangeSubscriptionsOwner\"},\"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\",\"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\":\"vendor\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"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\":\"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\":\"publicIpAddress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isIPv6\"},\"arguments\":[],\"directives\":[]}]}},{\"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\":\"isCustom\"},\"arguments\":[],\"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\":\"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\":\"isIPv6Supported\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"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\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":846}};\n    doc.loc.source = {\"body\":\"query ChangeSubscriptionsOwner($ids: [ID!]!) {\\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                vendor {\\r\\n                    id\\r\\n                }\\r\\n            }\\r\\n            baseDomain {\\r\\n                id\\r\\n            }\\r\\n            ipAddresses {\\r\\n                id\\r\\n                ipAddress\\r\\n                publicIpAddress\\r\\n                isIPv6\\r\\n            }\\r\\n            subscription {\\r\\n                id\\r\\n                isCustom\\r\\n                domains {\\r\\n                    id\\r\\n                }\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n    server {\\r\\n        settings {\\r\\n            isIPv6Supported\\r\\n        }\\r\\n    }\\r\\n    viewer {\\r\\n        type\\r\\n        login\\r\\n        client {\\r\\n            id\\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[\"ChangeSubscriptionsOwner\"] = oneQuery(doc, \"ChangeSubscriptionsOwner\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"VirtualHostTemplatePage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"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\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"virtualHostTemplate\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"supportedArchiveTypes\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"files\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sizeInBytes\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"modified\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"permissions\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"user\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":422}};\n    doc.loc.source = {\"body\":\"query VirtualHostTemplatePage($path: String) {\\r\\n    os {\\r\\n        isWindows\\r\\n    }\\r\\n    viewer {\\r\\n        login\\r\\n        virtualHostTemplate {\\r\\n            supportedArchiveTypes\\r\\n            files(path: $path) {\\r\\n                name\\r\\n                sizeInBytes\\r\\n                modified\\r\\n                permissions\\r\\n                type\\r\\n                user\\r\\n                group\\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[\"VirtualHostTemplatePage\"] = oneQuery(doc, \"VirtualHostTemplatePage\");\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\":\"background\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"file\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"color\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fit\"},\"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\":678}};\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        background {\\r\\n            file\\r\\n            color\\r\\n            fit\\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\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"opt\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":493}};\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                opt\\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\":\"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\":\"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\":\"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\":488}};\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            id\\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\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"background\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"file\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"color\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fit\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":343}};\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            background {\\r\\n                file\\r\\n                color\\r\\n                fit\\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[\"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\":\"isUpgradeSupported\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isLTSVersion\"},\"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\":\"availableReleases\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"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\":571}};\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        isUpgradeSupported\\r\\n        isLTSVersion\\r\\n        isLocal\\r\\n        isDefaultServer\\r\\n        isUsedForPsaDb\\r\\n        isWebadminInstalled\\r\\n        isDynamicPort\\r\\n        databasesCount\\r\\n        availableReleases {\\r\\n            id\\r\\n        }\\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\":\"DatabaseServerUpgradePage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"databaseServer\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"DatabaseServer\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"host\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"port\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"serverVersion\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fork\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"detectDatabaseServer\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"availableReleases\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"version\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"features\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseNotesLink\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endOfLifeDate\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":534}};\n    doc.loc.source = {\"body\":\"query DatabaseServerUpgradePage($id: ID!) {\\r\\n    databaseServer: node(id: $id) {\\r\\n        id\\r\\n        ... on DatabaseServer {\\r\\n            name\\r\\n            type\\r\\n            host\\r\\n            port\\r\\n            serverVersion\\r\\n            fork\\r\\n            detectDatabaseServer\\r\\n            availableReleases {\\r\\n                id\\r\\n                name\\r\\n                version\\r\\n                features\\r\\n                releaseNotesLink\\r\\n                releaseDate\\r\\n                endOfLifeDate\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"DatabaseServerUpgradePage\"] = oneQuery(doc, \"DatabaseServerUpgradePage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"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\":\"nodes\"},\"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\":2652}};\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            nodes {\\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\":\"isSmarthostAvailable\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isLocal\"},\"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\":707}};\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            isSmarthostAvailable\\r\\n            isLocal\\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\":\"settings\"},\"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\":284}};\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            settings {\\r\\n                isEnabled\\r\\n            }\\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\":\"settings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isUserSettingsEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isUserSettingsAllowed\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"requiredHits\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"maxMailLimit\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"maxThreadsLimit\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tag\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"alarmMessage\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"languages\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isTrusted\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"locales\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isTrusted\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isGreylistingProtectionEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"maxChildren\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"maxChildrenLimit\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"capability\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mailServer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isUserSettingsSupported\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isWindows\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":885}};\n    doc.loc.source = {\"body\":\"query ServerMailSpamFilterPage {\\r\\n    serverMail {\\r\\n        spamAssassin {\\r\\n            settings {\\r\\n                isEnabled\\r\\n                isUserSettingsEnabled\\r\\n                isUserSettingsAllowed\\r\\n                requiredHits\\r\\n                maxMailLimit\\r\\n                maxThreadsLimit\\r\\n                tag\\r\\n                alarmMessage\\r\\n                languages {\\r\\n                    key\\r\\n                    name\\r\\n                    isTrusted\\r\\n                }\\r\\n                locales {\\r\\n                    key\\r\\n                    name\\r\\n                    isTrusted\\r\\n                }\\r\\n                isGreylistingProtectionEnabled\\r\\n                maxChildren\\r\\n                maxChildrenLimit\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n    capability {\\r\\n        mailServer {\\r\\n            isUserSettingsSupported\\r\\n        }\\r\\n    }\\r\\n    os {\\r\\n        isWindows\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ServerMailSpamFilterPage\"] = oneQuery(doc, \"ServerMailSpamFilterPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerMailSpamStatistics\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"from\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"to\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"pagination\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PaginationInput\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"orderBy\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"EmailStatisticsRecipientsSortingInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"emailStatistics\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spamSummary\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"from\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"from\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"to\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"to\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clean\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"infected\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"protected\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"skipped\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spamRecipients\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"from\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"from\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"to\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"to\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"pagination\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"pagination\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"orderBy\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"orderBy\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rows\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"email\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ratio\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"totalRows\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":569}};\n    doc.loc.source = {\"body\":\"query ServerMailSpamStatistics(\\r\\n    $from: String!\\r\\n    $to: String!\\r\\n    $pagination: PaginationInput!\\r\\n    $orderBy: EmailStatisticsRecipientsSortingInput!\\r\\n) {\\r\\n    emailStatistics {\\r\\n        spamSummary(from: $from, to: $to) {\\r\\n            clean\\r\\n            infected\\r\\n            protected\\r\\n            skipped\\r\\n        }\\r\\n        spamRecipients(from: $from, to: $to, pagination: $pagination, orderBy: $orderBy) {\\r\\n            rows {\\r\\n                email\\r\\n                count\\r\\n                ratio\\r\\n            }\\r\\n            totalRows\\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[\"ServerMailSpamStatistics\"] = oneQuery(doc, \"ServerMailSpamStatistics\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerMailSmarthostPage\"},\"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\":\"smarthost\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"smarthostEncryptionOptions\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isServerEnabled\"},\"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\":\"isAuthenticationRequired\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"username\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"encryption\"},\"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\":318}};\n    doc.loc.source = {\"body\":\"query ServerMailSmarthostPage {\\r\\n    serverMail {\\r\\n        smarthost {\\r\\n            smarthostEncryptionOptions\\r\\n            isServerEnabled\\r\\n            host\\r\\n            port\\r\\n            isAuthenticationRequired\\r\\n            username\\r\\n            encryption\\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[\"ServerMailSmarthostPage\"] = oneQuery(doc, \"ServerMailSmarthostPage\");\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\":[]}]}},{\"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\":\"disableOnExpiration\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":424}};\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    config {\\r\\n        license {\\r\\n            disableOnExpiration\\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[\"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\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":188}};\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        errors\\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\":\"errors\"},\"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\":301}};\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        errors\\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\":\"orderBy\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IpAddressListSort\"}},\"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\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"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\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"searchFilters\"},\"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\":\"ipAddress\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}}]}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"orderBy\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"orderBy\"}}}]}}],\"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\":\"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\":\"pageInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"total\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortColumn\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortDirection\"},\"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\":1235}};\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    $orderBy: IpAddressListSort\\r\\n) {\\r\\n    server {\\r\\n        firewall {\\r\\n            isEnabled\\r\\n        }\\r\\n        ipAddresses(\\r\\n            input: {\\r\\n                pagination: { page: $page, itemsPerPage: $itemsPerPage },\\r\\n                searchFilters: { type: $type, ipAddress: $search },\\r\\n                orderBy: $orderBy\\r\\n            }\\r\\n        ) {\\r\\n            nodes {\\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            pageInfo {\\r\\n                total\\r\\n            }\\r\\n            sortInfo {\\r\\n                sortColumn\\r\\n                sortDirection\\r\\n            }\\r\\n            hasPublicIp\\r\\n            canReloadPublic\\r\\n        }\\r\\n    }\\r\\n    mode {\\r\\n        isDemo\\r\\n        isPowerUserPanel\\r\\n        canManageResellers\\r\\n    }\\r\\n    serverInfo {\\r\\n        isVirtuozzo\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"IpAddressPage\"] = oneQuery(doc, \"IpAddressPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"IpAddressUsage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IpAddress\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clients\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"RESELLER\"}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"unassignedResellers\"},\"name\":{\"kind\":\"Name\",\"value\":\"clients\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"RESELLER\"}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"unassigned\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":421}};\n    doc.loc.source = {\"body\":\"query IpAddressUsage($id: ID!){\\r\\n    ipAddress:node(id: $id) {\\r\\n        ... on IpAddress {\\r\\n            id\\r\\n            type\\r\\n            ipAddress\\r\\n            clients(filter:{type: RESELLER}) {\\r\\n                id\\r\\n                name\\r\\n            }\\r\\n            unassignedResellers: clients(filter:{ type: RESELLER, unassigned: true }) {\\r\\n                id\\r\\n                name\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"IpAddressUsage\"] = oneQuery(doc, \"IpAddressUsage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"UnassignedIpAddressResellers\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IpAddress\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"unassignedResellers\"},\"name\":{\"kind\":\"Name\",\"value\":\"clients\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"RESELLER\"}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"unassigned\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":348}};\n    doc.loc.source = {\"body\":\"query UnassignedIpAddressResellers($id: ID!){\\r\\n    ipAddress:node(id: $id) {\\r\\n        ... on IpAddress {\\r\\n            id\\r\\n            type\\r\\n            ipAddress\\r\\n            type\\r\\n            unassignedResellers: clients(filter:{ type: RESELLER, unassigned: true }) {\\r\\n                id\\r\\n                name\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"UnassignedIpAddressResellers\"] = oneQuery(doc, \"UnassignedIpAddressResellers\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ClientIpAddress\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isWindows\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"client\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Client\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"availableIpAddress\"},\"name\":{\"kind\":\"Name\",\"value\":\"ipAddresses\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"unassigned\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddresses\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isBroken\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"allocatedType\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ftpOverSSL\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificate\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ownerName\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domains\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"server\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddresses\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isPoolEditable\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"capability\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ftp\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isExplicitSSL\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":1054}};\n    doc.loc.source = {\"body\":\"query ClientIpAddress($clientId: ID!) {\\r\\n    viewer {\\r\\n        login\\r\\n        type\\r\\n        client {\\r\\n            id\\r\\n        }\\r\\n    }\\r\\n    os {\\r\\n        isWindows\\r\\n    }\\r\\n    client: node(id: $clientId) {\\r\\n        ... on Client {\\r\\n            id\\r\\n            login\\r\\n            availableIpAddress: ipAddresses(filter: { unassigned: true }) {\\r\\n                id\\r\\n            }\\r\\n            ipAddresses {\\r\\n                id\\r\\n                ipAddress\\r\\n                isBroken\\r\\n                type(clientId: $clientId)\\r\\n                allocatedType(clientId: $clientId)\\r\\n                ftpOverSSL\\r\\n                certificate {\\r\\n                    id\\r\\n                    name\\r\\n                    ownerName\\r\\n                }\\r\\n                domains(filter: { clientId: $clientId }) {\\r\\n                    id\\r\\n                }\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n    server {\\r\\n        ipAddresses {\\r\\n            isPoolEditable(clientId: $clientId)\\r\\n        }\\r\\n    }\\r\\n    capability {\\r\\n        ftp {\\r\\n            isExplicitSSL\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ClientIpAddress\"] = oneQuery(doc, \"ClientIpAddress\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ClientIpAddressForm\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddressId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"capability\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ftp\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isExplicitSSL\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isWindows\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddressId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IpAddress\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"interface\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"allocatedType\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"typeChangeableInClientPool\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isBroken\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ftpOverSSL\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"domains\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"defaultDomain\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificate\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ownerName\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"client\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Client\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificates\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ownerName\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":1056}};\n    doc.loc.source = {\"body\":\"query ClientIpAddressForm($ipAddressId: ID!, $clientId: ID!) {\\r\\n    capability {\\r\\n        ftp {\\r\\n            isExplicitSSL\\r\\n        }\\r\\n    }\\r\\n    os {\\r\\n        isWindows\\r\\n    }\\r\\n    ipAddress: node(id: $ipAddressId) {\\r\\n        ... on IpAddress {\\r\\n            id\\r\\n            ipAddress\\r\\n            interface\\r\\n            type(clientId: $clientId)\\r\\n            allocatedType(clientId: $clientId)\\r\\n            typeChangeableInClientPool(clientId: $clientId)\\r\\n            isBroken\\r\\n            ftpOverSSL\\r\\n            domains(filter:{ clientId: $clientId }) {\\r\\n                id\\r\\n                name\\r\\n            }\\r\\n            defaultDomain {\\r\\n                id\\r\\n                name\\r\\n            }\\r\\n            certificate {\\r\\n                id\\r\\n                name\\r\\n                ownerName\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n    client: node(id: $clientId) {\\r\\n        ...on Client {\\r\\n            id\\r\\n            type\\r\\n            certificates {\\r\\n                id\\r\\n                name\\r\\n                ownerName\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ClientIpAddressForm\"] = oneQuery(doc, \"ClientIpAddressForm\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignClientIpAddress\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"client\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"clientId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Client\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"availableIpAddress\"},\"name\":{\"kind\":\"Name\",\"value\":\"ipAddresses\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"unassigned\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ipAddress\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":302}};\n    doc.loc.source = {\"body\":\"query AssignClientIpAddress($clientId: ID!) {\\r\\n    client: node(id: $clientId) {\\r\\n        ... on Client {\\r\\n            id\\r\\n            login\\r\\n            availableIpAddress: ipAddresses(filter: { unassigned: true }) {\\r\\n                id\\r\\n                ipAddress\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"AssignClientIpAddress\"] = oneQuery(doc, \"AssignClientIpAddress\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"PhpExtensionsPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"phpHandler\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"version\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"cliPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"phpExtensions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enabled\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"affectedHandlers\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isUnix\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"config\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"php\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pecl\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"minVersion\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":450}};\n    doc.loc.source = {\"body\":\"query PhpExtensionsPage($id: ID!) {\\r\\n    phpHandler(id: $id) {\\r\\n        id\\r\\n        name\\r\\n        version\\r\\n        cliPath\\r\\n        phpExtensions {\\r\\n            name\\r\\n            enabled\\r\\n        }\\r\\n        affectedHandlers {\\r\\n            id\\r\\n            name\\r\\n        }\\r\\n    }\\r\\n    os {\\r\\n        isUnix\\r\\n    }\\r\\n    config {\\r\\n        php {\\r\\n            pecl {\\r\\n                enabled\\r\\n                minVersion\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"PhpExtensionsPage\"] = oneQuery(doc, \"PhpExtensionsPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"TsSessionPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"ids\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tsSessions\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"ids\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"ids\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"info\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":150}};\n    doc.loc.source = {\"body\":\"query TsSessionPage($ids: [ID!]!) {\\r\\n    tsSessions(ids: $ids) {\\r\\n        id\\r\\n        info {\\r\\n            name\\r\\n            value\\r\\n        }\\r\\n    }\\r\\n}\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"TsSessionPage\"] = oneQuery(doc, \"TsSessionPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"TsSessions\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"ids\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tsSessions\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"ids\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"ids\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"user\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":125}};\n    doc.loc.source = {\"body\":\"query TsSessions($ids: [ID!]) {\\r\\n    tsSessions(ids: $ids) {\\r\\n        name\\r\\n        state\\r\\n        user\\r\\n        id\\r\\n    }\\r\\n}\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"TsSessions\"] = oneQuery(doc, \"TsSessions\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"AspDotNetServerSettings\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"server\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"aspNetSettings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"configs\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"version\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"connStrings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"customErrMode\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enumValues\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"culture\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enumValues\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"debugMode\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"authMode\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enumValues\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"customErrors\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canDelete\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"values\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"redirectUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"statusCode\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fileEnc\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reqEnc\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resEnc\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sessTimeout\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tempDirectory\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"trustLevelAllowOverride\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"uiCulture\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enumValues\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"defLanguage\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enumValues\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"trustLevel\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enumValues\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":1837}};\n    doc.loc.source = {\"body\":\"query AspDotNetServerSettings {\\r\\n    server {\\r\\n        aspNetSettings {\\r\\n            configs {\\r\\n                version\\r\\n                connStrings {\\r\\n                    name\\r\\n                    value\\r\\n                }\\r\\n\\r\\n                customErrMode {\\r\\n                    value\\r\\n                    enumValues {\\r\\n                        name\\r\\n                        value\\r\\n                    }\\r\\n                }\\r\\n                culture {\\r\\n                    value\\r\\n                    enumValues {\\r\\n                        name\\r\\n                        value\\r\\n                    }\\r\\n                }\\r\\n\\r\\n                debugMode\\r\\n                authMode {\\r\\n                    value\\r\\n                    enumValues {\\r\\n                        name\\r\\n                        value\\r\\n                    }\\r\\n                }\\r\\n                customErrors {\\r\\n                    canDelete\\r\\n                    values {\\r\\n                        redirectUrl\\r\\n                        statusCode\\r\\n                    }\\r\\n                }\\r\\n                fileEnc\\r\\n                reqEnc\\r\\n                resEnc\\r\\n                sessTimeout\\r\\n                tempDirectory\\r\\n                trustLevelAllowOverride\\r\\n                uiCulture {\\r\\n                    value\\r\\n                    enumValues {\\r\\n                        name\\r\\n                        value\\r\\n                    }\\r\\n                }\\r\\n\\r\\n                defLanguage {\\r\\n                    value\\r\\n                    enumValues {\\r\\n                        name\\r\\n                        value\\r\\n                    }\\r\\n                }\\r\\n                trustLevel {\\r\\n                    value\\r\\n                    enumValues {\\r\\n                        name\\r\\n                        value\\r\\n                    }\\r\\n                }\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"AspDotNetServerSettings\"] = oneQuery(doc, \"AspDotNetServerSettings\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"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\":\"server\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"productVersion\"},\"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\":\"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\":\"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\":463}};\n    doc.loc.source = {\"body\":\"query ServerAboutPage {\\r\\n    primaryKey {\\r\\n        pleskKeyId\\r\\n        editionName\\r\\n    }\\r\\n    server {\\r\\n        productVersion {\\r\\n            name\\r\\n            version\\r\\n            patch\\r\\n        }\\r\\n    }\\r\\n    config {\\r\\n        product {\\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\":\"MassMailPage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MassEmailTemplateListInput\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"massEmail\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"templates\"},\"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\":\"templateId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fromEmail\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sendToAdmins\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sendToResellers\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sendToResellersMode\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sendToClients\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sendToClientsMode\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subject\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"created\"},\"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\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortColumn\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sortDirection\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":673}};\n    doc.loc.source = {\"body\":\"query MassMailPage($input: MassEmailTemplateListInput) {\\r\\n    massEmail {\\r\\n        templates(input: $input) {\\r\\n            nodes {\\r\\n                templateId\\r\\n                name\\r\\n                fromEmail\\r\\n                sendToAdmins\\r\\n                sendToResellers\\r\\n                sendToResellersMode\\r\\n                sendToClients\\r\\n                sendToClientsMode\\r\\n                subject\\r\\n                created\\r\\n            }\\r\\n            pageInfo {\\r\\n                current\\r\\n                total\\r\\n                pageCount\\r\\n            }\\r\\n            sortInfo {\\r\\n                sortColumn\\r\\n                sortDirection\\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[\"MassMailPage\"] = oneQuery(doc, \"MassMailPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"CreateMassMailTemplatePage\"},\"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\":\"customers\"},\"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\":\"email\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resellers\"},\"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\":\"email\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":245}};\n    doc.loc.source = {\"body\":\"query CreateMassMailTemplatePage {\\r\\n    viewer {\\r\\n        login\\r\\n        customers {\\r\\n            id\\r\\n            name\\r\\n            email\\r\\n        }\\r\\n        resellers {\\r\\n            id\\r\\n            name\\r\\n            email\\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[\"CreateMassMailTemplatePage\"] = oneQuery(doc, \"CreateMassMailTemplatePage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"SendMassMailPage\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"massEmail\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"templates\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"templateId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"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\":\"customers\"},\"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\":\"email\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resellers\"},\"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\":\"email\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":377}};\n    doc.loc.source = {\"body\":\"query SendMassMailPage {\\r\\n    massEmail {\\r\\n        templates {\\r\\n            nodes {\\r\\n                templateId\\r\\n                name\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n    viewer {\\r\\n        login\\r\\n        customers {\\r\\n            id\\r\\n            name\\r\\n            email\\r\\n        }\\r\\n        resellers {\\r\\n            id\\r\\n            name\\r\\n            email\\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[\"SendMassMailPage\"] = oneQuery(doc, \"SendMassMailPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"EditMassMailTemplatePage\"},\"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\":\"numericId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}}},\"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\":\"customers\"},\"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\":\"email\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resellers\"},\"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\":\"email\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"massEmail\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"template\"},\"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\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fromEmail\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sendToAdmins\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sendToResellers\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sendToResellersMode\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sendToClients\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sendToClientsMode\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subject\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"body\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"templateResellers\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"templateId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"numericId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contacts\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"templateClients\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"templateId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"numericId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contacts\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":805}};\n    doc.loc.source = {\"body\":\"query EditMassMailTemplatePage($id: ID!, $numericId: Int!) {\\r\\n    viewer {\\r\\n        login\\r\\n        customers {\\r\\n            id\\r\\n            name\\r\\n            email\\r\\n        }\\r\\n        resellers {\\r\\n            id\\r\\n            name\\r\\n            email\\r\\n        }\\r\\n    }\\r\\n    massEmail {\\r\\n        template(id: $id) {\\r\\n            name\\r\\n            fromEmail\\r\\n            sendToAdmins\\r\\n            sendToResellers\\r\\n            sendToResellersMode\\r\\n            sendToClients\\r\\n            sendToClientsMode\\r\\n            subject\\r\\n            body\\r\\n        }\\r\\n        templateResellers(templateId: $numericId) {\\r\\n            contacts {\\r\\n                id\\r\\n            }\\r\\n        }\\r\\n        templateClients(templateId: $numericId) {\\r\\n            contacts {\\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[\"EditMassMailTemplatePage\"] = oneQuery(doc, \"EditMassMailTemplatePage\");\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\":\"includePgsqlDatabases\"},\"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\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"os\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isUnix\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":893}};\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            includePgsqlDatabases\\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    os {\\r\\n        isUnix\\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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerMailTabs\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"permissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageServerSpamFilter\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageServerMailBlackWhiteLists\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"capability\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"packages\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isSpamAssassinInstalled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isGreyListingInstalled\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":307}};\n    doc.loc.source = {\"body\":\"query ServerMailTabs {\\r\\n    viewer {\\r\\n        login\\r\\n        permissions {\\r\\n            manageServerSpamFilter\\r\\n            manageServerMailBlackWhiteLists\\r\\n        }\\r\\n    }\\r\\n    capability {\\r\\n        packages {\\r\\n            isSpamAssassinInstalled\\r\\n            isGreyListingInstalled\\r\\n        }\\r\\n    }\\r\\n}\\r\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n  \r\n\n    var names = {};\n    function unique(defs) {\n      return defs.filter(\n        function(def) {\n          if (def.kind !== 'FragmentDefinition') return true;\n          var name = def.name.value\n          if (names[name]) {\n            return false;\n          } else {\n            names[name] = true;\n            return true;\n          }\n        }\n      )\n    }\n  \r\n\n    // Collect any fragment/type references from a node, adding them to the refs Set\n    function collectFragmentReferences(node, refs) {\n      if (node.kind === \"FragmentSpread\") {\n        refs.add(node.name.value);\n      } else if (node.kind === \"VariableDefinition\") {\n        var type = node.type;\n        if (type.kind === \"NamedType\") {\n          refs.add(type.name.value);\n        }\n      }\n\n      if (node.selectionSet) {\n        node.selectionSet.selections.forEach(function(selection) {\n          collectFragmentReferences(selection, refs);\n        });\n      }\n\n      if (node.variableDefinitions) {\n        node.variableDefinitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n\n      if (node.definitions) {\n        node.definitions.forEach(function(def) {\n          collectFragmentReferences(def, refs);\n        });\n      }\n    }\n\n    var definitionRefs = {};\n    (function extractReferences() {\n      doc.definitions.forEach(function(def) {\n        if (def.name) {\n          var refs = new Set();\n          collectFragmentReferences(def, refs);\n          definitionRefs[def.name.value] = refs;\n        }\n      });\n    })();\n\n    function findOperation(doc, name) {\n      for (var i = 0; i < doc.definitions.length; i++) {\n        var element = doc.definitions[i];\n        if (element.name && element.name.value == name) {\n          return element;\n        }\n      }\n    }\n\n    function oneQuery(doc, operationName) {\n      // Copy the DocumentNode, but clear out the definitions\n      var newDoc = {\n        kind: doc.kind,\n        definitions: [findOperation(doc, operationName)]\n      };\n      if (doc.hasOwnProperty(\"loc\")) {\n        newDoc.loc = doc.loc;\n      }\n\n      // Now, for the operation we're running, find any fragments referenced by\n      // it or the fragments it references\n      var opRefs = definitionRefs[operationName] || new Set();\n      var allRefs = new Set();\n      var newRefs = new Set();\n\n      // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n      opRefs.forEach(function(refName) {\n        newRefs.add(refName);\n      });\n\n      while (newRefs.size > 0) {\n        var prevRefs = newRefs;\n        newRefs = new Set();\n\n        prevRefs.forEach(function(refName) {\n          if (!allRefs.has(refName)) {\n            allRefs.add(refName);\n            var childRefs = definitionRefs[refName] || new Set();\n            childRefs.forEach(function(childRef) {\n              newRefs.add(childRef);\n            });\n          }\n        });\n      }\n\n      allRefs.forEach(function(refName) {\n        var op = findOperation(doc, refName);\n        if (op) {\n          newDoc.definitions.push(op);\n        }\n      });\n\n      return newDoc;\n    }\n    \n    module.exports = doc;\n    \n        module.exports[\"ServerMailTabs\"] = oneQuery(doc, \"ServerMailTabs\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerMailSpamFilterBlackListPage\"},\"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\":\"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\":\"level\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":235}};\n    doc.loc.source = {\"body\":\"query ServerMailSpamFilterBlackListPage {\\r\\n    serverMail {\\r\\n        spamAssassin {\\r\\n            blackList {\\r\\n                id\\r\\n                name\\r\\n                level\\r\\n                status\\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[\"ServerMailSpamFilterBlackListPage\"] = oneQuery(doc, \"ServerMailSpamFilterBlackListPage\");\n        \r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerMailSpamFilterWhiteListPage\"},\"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\":\"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\":\"level\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":235}};\n    doc.loc.source = {\"body\":\"query ServerMailSpamFilterWhiteListPage {\\r\\n    serverMail {\\r\\n        spamAssassin {\\r\\n            whiteList {\\r\\n                id\\r\\n                name\\r\\n                level\\r\\n                status\\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[\"ServerMailSpamFilterWhiteListPage\"] = oneQuery(doc, \"ServerMailSpamFilterWhiteListPage\");\n        \r\n","// Copyright 1999-2025. WebPros 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 'components/common/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 = undefined }) => {\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\nexport default withLoginLayout(LoginPage, ({ values }) => {\r\n    const { data: {\r\n        locales,\r\n        viewer: { resolvableHostname, mobileApplicationPromotion, background },\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                appearance=\"dark\"\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        background,\r\n    };\r\n});\r\n","// Copyright 1999-2025. WebPros 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.some(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 = 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 = undefined,\r\n    formPrefix = '',\r\n    embeddedFormsRender = undefined,\r\n    statusMessages: messages = undefined,\r\n    errors: defaultErrors = undefined,\r\n    ...props\r\n}, ref) => {\r\n    const navigate = useNavigate();\r\n    const innerRef = useRef(null);\r\n    const statusRef = 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, ...(defaultErrors || {}) }), [errors, defaultErrors]);\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    useEffect(() => {\r\n        if (statusMessages.length) {\r\n            statusRef.current.scrollIntoView({ behavior: 'smooth' });\r\n        }\r\n    }, [statusMessages]);\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].extensions?.debugMessage || 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 renderStatusMessages = () => {\r\n        if (!statusMessages.length) {\r\n            return null;\r\n        }\r\n        return (\r\n            <span ref={statusRef}>\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            </span>\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            {renderStatusMessages()}\r\n            {children}\r\n            {embeddedFormsRender ? embeddedFormsRender(renderEmbeddedForms()) : renderEmbeddedForms()}\r\n        </BaseForm>\r\n    );\r\n});\r\n\r\n/* eslint-disable react/require-default-props */\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.displayName = 'Form';\r\n\r\nexport default Form;\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport { useLayoutEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Brand from './Brand';\r\nimport CookiePolicy from './CookiePolicy';\r\nimport LayoutBackground from './LayoutBackground';\r\n\r\nconst LoginLayout = ({\r\n    children = undefined,\r\n    actions = undefined,\r\n    ...props\r\n}) => {\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            <LayoutBackground\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            </LayoutBackground>\r\n        </div>\r\n    );\r\n};\r\n\r\nLoginLayout.propTypes = {\r\n    children: PropTypes.any,\r\n    actions: PropTypes.any,\r\n    customBackground: PropTypes.shape({\r\n        file: PropTypes.string,\r\n        color: PropTypes.string.isRequired,\r\n        fit: PropTypes.string.isRequired,\r\n    }),\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            background,\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                customBackground={background}\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-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport classNames from 'classnames';\r\nimport { Layout } from '@plesk/ui-library';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst LayoutBackground = ({\r\n    customBackground = {\r\n        file: undefined,\r\n        color: '#4B4B4B',\r\n        fit: 'fill',\r\n    },\r\n    header = undefined,\r\n    className = '',\r\n    ...props\r\n}) => (\r\n    <Layout\r\n        type=\"simplified\"\r\n        className={classNames(\r\n            'login-page__inner',\r\n            `login-page__background login-page__background--${customBackground.fit}`,\r\n            className,\r\n        )}\r\n        style={{\r\n            '--login-bg-color': customBackground.color,\r\n            '--login-bg-image': customBackground.file ? `url(/images/${customBackground.file})` : null,\r\n        }}\r\n        header={header}\r\n        {...props}\r\n    />\r\n);\r\n\r\nLayoutBackground.propTypes = {\r\n    customBackground: PropTypes.shape({\r\n        file: PropTypes.string,\r\n        color: PropTypes.string.isRequired,\r\n        fit: PropTypes.string.isRequired,\r\n    }),\r\n    className: PropTypes.string,\r\n    header: PropTypes.node,\r\n};\r\n\r\nexport default LayoutBackground;\r\n","// Copyright 1999-2025. WebPros 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 = ({\r\n    baseClassName = 'login-mobile-application-promotion',\r\n    className = undefined,\r\n    name,\r\n    url,\r\n    icon = undefined,\r\n}) => {\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\nexport default LoginMobileApplicationPromotion;\r\n","module.exports = Jsw.skinUrl + \"/icons/64/plesk/plesk.png?aee4fcbe66c643d3dde4f3de15aa8f4e\";","// Copyright 1999-2025. WebPros 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 = ({\r\n    baseClassName = 'login-ssl-warnings',\r\n    className = undefined,\r\n    link,\r\n}) => {\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\nexport default SuggestResolvableHostname;\r\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\r\n\r\nimport classNames from 'classnames';\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\nimport './LocaleSwitcher.less';\r\n\r\nconst Translate = Locale.getTranslate('components.common.LocaleSwitcher');\r\n\r\nconst LocaleSwitcher = ({ locales, value: defaultValue, onChange, appearance = 'default' }) => {\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=\"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={classNames(['locale-switcher-button', { 'pul-button--on-dark': appearance === '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    appearance: PropTypes.oneOf(['default', 'dark']),\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-2025. WebPros 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\nimport GET_PASSWORD_PAGE_QUERY from 'queries/GetPasswordPage.graphql';\r\nimport { useQuery } from '@apollo/client';\r\n\r\nconst GetPasswordPage = ({ values: defaultValues = undefined }) => {\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\nexport default withLoginLayout(GetPasswordPage, () => {\r\n    const {\r\n        data: {\r\n            viewer: { background },\r\n        },\r\n    } = useQuery(GET_PASSWORD_PAGE_QUERY);\r\n\r\n    return { background };\r\n});\r\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetPasswordPage\"},\"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\":\"background\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"file\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"color\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fit\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":136}};\n    doc.loc.source = {\"body\":\"query GetPasswordPage {\\r\\n    viewer {\\r\\n        background {\\r\\n            file\\r\\n            color\\r\\n            fit\\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[\"GetPasswordPage\"] = oneQuery(doc, \"GetPasswordPage\");\n        \r\n","// Copyright 1999-2025. WebPros 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\nimport GET_PASSWORD_PAGE_QUERY from 'queries/GetPasswordPage.graphql';\r\nimport { useQuery } from '@apollo/client';\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    const {\r\n        data: {\r\n            viewer: { background },\r\n        },\r\n    } = useQuery(GET_PASSWORD_PAGE_QUERY);\r\n\r\n    return { background };\r\n});\r\n","// Copyright 1999-2025. WebPros 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 = undefined }) => {\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    const handleAddedLocaleSections = useCallback(({ sections }) => {\r\n        setMessages(oldMessages => Object.entries(sections).reduce((acc, [name, messages]) => mergeMessages(acc, messages, name), oldMessages));\r\n    }, []);\r\n\r\n    useEventListener('plesk:addedLocaleSection', handleAddedLocaleSection, Observer);\r\n    useEventListener('plesk:addedLocaleSections', handleAddedLocaleSections, Observer);\r\n\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\nexport default LocaleProvider;\r\n","// Copyright 1999-2025. WebPros 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-2025. WebPros 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/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/client-configuration-link': () => import(/* webpackChunkName: \"app/email-address/client-configuration-link\" */'./email-address/client-configuration-link'),\r\n    'app/email-address/form-ajax': () => import(/* webpackChunkName: \"app/email-address/form-ajax\" */'./email-address/form-ajax'),\r\n    'app/email-address/postbox': () => import(/* webpackChunkName: \"app/email-address/postbox\" */'./email-address/postbox'),\r\n    'app/email-address/responder-attachments-dynamic': () => import(\r\n    /* webpackChunkName: \"app/email-address/responder-attachments-dynamic\" */\r\n        './email-address/responder-attachments-dynamic'\r\n    ),\r\n    'app/file-manager/explorer': () => import(/* webpackChunkName: \"app/file-manager/explorer\" */'./file-manager/explorer'),\r\n    'app/file-manager/file-name-popup-form': () => import(/* webpackChunkName: \"app/file-manager/file-name-popup-form\" */'./file-manager/file-name-popup-form'),\r\n    'app/mail-settings/confirmation-remove-popup-form': () => import(\r\n        /* webpackChunkName: \"app/mail-settings/confirmation-remove-popup-form\" */\r\n        './mail-settings/confirmation-remove-popup-form'\r\n    ),\r\n    'app/hosting-settings/conflicts-checker': () => import(/* webpackChunkName: \"app/hosting-settings/conflicts-checker\" */'./hosting-settings/conflicts-checker'),\r\n    'app/log-browser/browser': () => import(/* webpackChunkName: \"app/log-browser/browser\" */'./log-browser/browser'),\r\n    'app/log-browser/files': () => import(/* webpackChunkName: \"app/log-browser/files\" */'./log-browser/files'),\r\n    'app/login/recovery-password': () => import(/* webpackChunkName: \"app/login/recovery-password\" */'./login/recovery-password'),\r\n    'app/newsletter-subscription': () => import(/* webpackChunkName: \"app/newsletter-subscription\" */'./newsletter-subscription'),\r\n    'app/progress-dialog': () => import(/* webpackChunkName: \"app/progress-dialog\" */'./progress-dialog'),\r\n    'app/profile/announcement-settings': () => import(/* webpackChunkName: \"app/profile/announcement-settings\" */'./profile/announcement-settings'),\r\n    'app/pum': () => import(/* webpackChunkName: \"app/pum\" */'./pum'),\r\n    'app/server-mail-antivirus-promo': () => import(/* webpackChunkName: \"app/server-mail-antivirus-promo\" */'./server-mail-antivirus-promo'),\r\n    'app/show-output-popup': () => import(/* webpackChunkName: \"app/show-output-popup\" */'./show-output-popup'),\r\n    'app/task-progress-bar': () => import(/* webpackChunkName: \"app/task-progress-bar\" */'./task-progress-bar'),\r\n    'app/user/login-string': () => import(/* webpackChunkName: \"app/user/login-string\" */'./user/login-string'),\r\n    'app/change-customers-owner': () => import(/* webpackChunkName: \"app/change-customers-owner\" */'./change-customers-owner'),\r\n    'app/convert-customers-to-resellers': () => import(/* webpackChunkName: \"app/convert-customers-to-resellers\" */'./convert-customers-to-resellers'),\r\n    'app/convert-resellers-to-customers': () => import(/* webpackChunkName: \"app/convert-resellers-to-customers\" */'./convert-resellers-to-customers'),\r\n    'app/service-sidebar': () => import(/* webpackChunkName: \"app/service-sidebar\" */'components/sidebars/ServiceSidebar'),\r\n    'app/ssl-certificate/list': () => import(/* webpackChunkName: \"app/ssl-certificate/list\" */'./ssl-certificate/list'),\r\n    'app/app/progress': () => import(/* webpackChunkName: \"app/app/progress\" */'./app/progress'),\r\n    'app/app/installed': () => import(/* webpackChunkName: \"app/app/installed\" */'./app/installed'),\r\n    'app/app/apscatalog': () => import(/* webpackChunkName: \"app/app/apscatalog\" */'./app/apscatalog'),\r\n    'app/web-app-firewall/submit-handler': () => import(/* webpackChunkName: \"app/web-app-firewall/submit-handler\" */'./web-app-firewall/submit-handler'),\r\n    'app/helper/mail-settings-dkim-hint': () => import(/* webpackChunkName: \"app/helper/mail-settings-dkim-hint\" */'./helper/mail-settings-dkim-hint'),\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-2025. WebPros 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.001 : 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-2025. WebPros 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-2025. WebPros 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-2025. WebPros 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.forEach(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.update();\r\n                })\r\n                .catch(({ message }) => {\r\n                    progressBar.failPreparingItem(itemId, message);\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-2025. WebPros 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-2025. WebPros 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_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_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_uint = uint => !!uint.match(/^[0-9]+$/);\r\n","// Copyright 1999-2025. WebPros 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        (entries || []).forEach(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 getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\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\":\"ee656e0c81d9939ae353\",\"components/pages/ChangeSubscriptionsOwnerPage\":\"a0753cf0be38d11feb49\",\"components/pages/VirtualHostTemplatePage\":\"21a1a40747df984113dc\",\"components_pages_ConfigureMailClientPage_index_js\":\"c61dbac9f6d36fb9849e\",\"views/admin/force-reset-password\":\"850ac0ecdf440a50a071\",\"views/admin/setup/progress\":\"25901d2428e5ae645e6c\",\"views/admin/setup/index\":\"2e0486257e75099db40e\",\"views/admin/home/admin\":\"c2aacdbf0c38488123f9\",\"views/admin/app/info\":\"7f44d6f617b41f855de8\",\"views/admin/app/usage\":\"21a54754d461ed44da8c\",\"views/admin/app/uploaded\":\"8d4ce119a86eb7c92ec7\",\"views/admin/custom-buttons/list\":\"f71b95779b587f1bb65f\",\"views/admin/ftp-sessions/list\":\"9b84653553c06fc7e4a7\",\"views/admin/php-handler/list\":\"399bc1a9e727a3eaab51\",\"components/pages/ScheduledBackupPage\":\"a05067a6029742e9b876\",\"components/pages/ScheduledBackupListPage\":\"cdc7a40ff4e61fd1fc46\",\"views/default/scheduler/list\":\"5fe20ea78f52b0b2ffe1\",\"views/admin/domain/list\":\"a9cd931dfbab28b19d21\",\"views/admin/customer/list\":\"fd673f16f9fd8bf170c0\",\"views/admin/customer/domains\":\"8a8558f69b2e010953ff\",\"views/admin/customer/subscriptions\":\"0cfe94193ac93709c206\",\"views/admin/reseller/list\":\"a83b207ffdca21ad4d3b\",\"views/admin/reseller/customers\":\"d01037e632f2dbe44413\",\"views/admin/reseller/domains\":\"cf5805e39f03c1850782\",\"views/admin/reseller/subscriptions\":\"0ea4830435d6e0e700c3\",\"views/admin/server/tools\":\"17af671522deb3bd9405\",\"views/admin/server/preview-domain-settings\":\"e7c8f97b7d6f453c8623\",\"views/admin/services/list\":\"d97b4e416d0b1cd4444f\",\"views/admin/sessions/list\":\"d95b711c61b85c94cbdc\",\"views/admin/subscription/list\":\"c65a0c0bcfb605d8bdbe\",\"views/smb/file-manager/list\":\"b4c158be174ff33d1a07\",\"views/smb/file-manager/index\":\"08cdf1d77e38f20c66b8\",\"views/smb/my-service/index\":\"dcd1eea93d880db86203\",\"views/smb/email-address/index\":\"6e7a6b6b658d68043669\",\"views/smb/email-address/list\":\"3381bffd3901a1e11989\",\"views/smb/mail-settings/list\":\"dd91f97ae82dfdb51a25\",\"views/smb/account/index\":\"4deaba1b5173f0f43129\",\"views/smb/account/show\":\"a212558c3b176cf9982b\",\"views/smb/user/list\":\"9ed62afe609bae6396d5\",\"views/smb/web/setup\":\"285c78a374f9ccb3afb7\",\"views/smb/web/view\":\"a9e9b81db39c45d33efc\",\"views/smb/web/overview\":\"f963f3a4f5352bc3edec\",\"views/smb/web/php-settings\":\"64f617882c72c88530b3\",\"views/smb/statistics/details\":\"e2531931d3fd80999594\",\"views/smb/database/index\":\"4526b301fb1d0bfb88ec\",\"views/smb/database/list\":\"a041596356e277e02513\",\"views/smb/database/users-list\":\"2ed1eb693f9358e8e9b8\",\"views/admin/task-manager/index\":\"e8222087368b96c91ef9\",\"views/dns/records\":\"bfa58992271028f576cf\",\"views/dns/records/edit\":\"2032e8af0bb3f73c85ee\",\"views/dns/records/dns-zone-sync\":\"70708bafe0b808220ca4\",\"views/dns/soa-record\":\"ba30aa19b07af12c20d9\",\"views/admin/dns/acl-records\":\"a3685dded5ae9586e638\",\"views/admin/dns/add-acl-record\":\"0df482fbd74b6f710ae3\",\"views/admin/dns/external-dns\":\"c6c9506370a98d356d0a\",\"views/admin/dns/external-dns-edit\":\"6b1af13c1c4531dc7082\",\"views/smb/dns-zone/records-list\":\"da1869f680798ba1a6d1\",\"views/smb/dns-zone/soa-record\":\"2842ea83585e78f04318\",\"views/smb/dns-zone/acl-records\":\"e6bfbf750b1ef7a9cf5b\",\"views/smb/dns-zone/add-acl-record\":\"85693aad0c19da601782\",\"views/smb/dns-zone/external-dns\":\"6f42ebfaa7b6afa91b3d\",\"views/smb/dns-zone/external-dns-edit\":\"a29e9cf7ba3ee9b775b5\",\"views/admin/settings-ui/edit-interface-view\":\"b92d62693180c9d88306\",\"views/admin/settings-ui/list-languages\":\"d5fa58b58d4d87533940\",\"views/admin/database/settings\":\"534513d179b1bf37a523\",\"views/smb/web/web-server-settings\":\"3b3345ef2ffdca725ec5\",\"views/admin/notifications/index\":\"ff0f8c1fa0e2f7b0edec\",\"components/pages/PanelNotificationsSettings\":\"903fe57403f754381246\",\"components/pages/BrandingPage\":\"7fd3526025c4315b0ad5\",\"views/server/db\":\"7756ead9c733039ac5d3\",\"views/admin/websites-diagnostic/index\":\"c3de2a7beb3be4d49c82\",\"components/pages/SystemTimePage\":\"5d6c4a1c94d138c43587\",\"views/server/mail\":\"5470d7bc0b56ad6507d2\",\"views/license\":\"7d90c7838cf31a2f41e3\",\"views/license/additional\":\"449b5f8d9370e348a698\",\"components/pages/FirewallGeneralPage\":\"6a18cc99d8037864a60f\",\"components/pages/FirewallIcmpPage\":\"41a3af2b0a1a51ffed41\",\"components/pages/FirewallRulesPage\":\"792bfea008236006c299\",\"components/pages/ServerComponentsPage\":\"aa470f4fee20f7e2b8e7\",\"views/admin/ip-address/list\":\"dd09de79682ca7f0ce2d\",\"views/admin/ip-address/clients\":\"54eeb674337e1ba6884e\",\"components/pages/AssignIpAddressToResellerForm\":\"926839bc0e21aa933939\",\"views/admin/client/ip-address\":\"3fd164882540b12b539f\",\"views/admin/client/ip-address/form\":\"7b29569fbc4c75f0fe88\",\"views/php/extensions\":\"dad82448afc86d828814\",\"components/pages/TsSessionPage\":\"4ad2e87089600acb3a4b\",\"components/pages/TsSessionsPage\":\"3da53f8107f4aa86cf71\",\"components/pages/AspDotNetSettingsPage/AspDotNetServerSettingsPage\":\"d4e79d9aa04163a66e60\",\"components/pages/ServerAboutPage\":\"9fc0a5962fd51cd734bf\",\"components/pages/MassMailPage\":\"cf5bae813877cac037c4\",\"components/pages/CreateMassMailTemplatePage\":\"f0767d68b94f8ca53ecd\",\"components/pages/SendMassMailPage\":\"13114bec8762963a337c\",\"components/pages/EditMassMailTemplatePage\":\"372527af46a81ddde691\",\"components/pages/ActionLogPage\":\"b2e7c258e8494663f9c0\",\"components/pages/ServerInformationPage\":\"f82997b8844f7cc43628\",\"components/pages/ServerSettingsPage\":\"691b3100f63d8ef38778\",\"components/tabs/SpamFilterSettingsTabs\":\"32579ec860e617a67ff6\",\"components/pages/SpamFilterSettingsPage\":\"25a80b71442f0d6aca84\",\"components/pages/SpamFilterBlackListPage\":\"cf9dc61021d2f328e362\",\"components/pages/SpamFilterWhiteListPage\":\"6f46b9bad566470abc8b\",\"components/layouts/page-layout/help-drawer\":\"76d5675f6a02ed167a71\",\"components/pages/OdbcPage/OdbcServerPage\":\"8b6113295f2cb180e300\",\"components/pages/OdbcAddPage\":\"f33e44c958c06c83814b\",\"components/pages/OdbcEditPage\":\"bf7008a8ba489b64a805\",\"components/pages/HostingSettingsPage\":\"ff1e9cf17b6f7535de54\",\"components/pages/ConnectionInfo\":\"c778b62a05f1b58bc236\",\"components/pages/SummaryReportLayoutsPage\":\"4aa48fce8f192b2e2e85\",\"components/pages/SummaryReportLayoutsPage/AddPage\":\"b3f854394098269d66e3\",\"components/pages/SummaryReportLayoutsPage/EditPage\":\"a9640a9fa77a3041ce8e\",\"components/pages/TrafficHistoryReportPage\":\"858b95a3773de5a462e8\",\"components/pages/SummaryReportSchedulesPage\":\"f4af9d4a8278a253cd32\",\"components/pages/SummaryReportPage\":\"e440da841e03de8c7b3d\",\"components/pages/AspDotNetSettingsPage/AspDotNetDomainSettingsPage\":\"fc10ade420c21fb103fb\",\"components/pages/BandwidthLimitingPage\":\"77fe06e00887b5ffa8f9\",\"components/pages/HotlinkProtectionPage\":\"1b4117aaf50823bdbe8f\",\"components/pages/OdbcPage/OdbcDomainPage\":\"299ea14936a967b25d70\",\"components/pages/ProtectedDirectoryListPage\":\"7dd2965008919081f86b\",\"components/pages/ProtectedDirectoryAddPage\":\"e76b65f08cbec7ad3ad4\",\"components/pages/ProtectedDirectoryEditPage\":\"e061e0f00c062f745641\",\"components/pages/ProtectedDirectoryUserListPage\":\"a21f35154c59e1e266b0\",\"components/pages/ProtectedDirectoryUserAddPage\":\"669aa7fa7a2d74ce4d1d\",\"components/pages/ProtectedDirectoryUserPasswordPage\":\"539922ca98b630a2f6c2\",\"components/pages/VirtualDirectoryPage/EditVirtualDirectoryPage\":\"96b9244b736d3e7afaa1\",\"components/pages/VirtualDirectoryPage/AspDotNetSettingsPage\":\"ef2d8941d10e8be9bd33\",\"components/pages/VirtualDirectoryPage/PermissionsPage\":\"70d560ec211fdc901cb2\",\"components/pages/VirtualDirectoryPage/PhpVersionPage\":\"9149893229db2294fa1c\",\"components/pages/VirtualDirectoryPage\":\"88dbe173f1c7f52ab2fa\",\"components/pages/VirtualDirectoryPage/Browse\":\"3d7a738c9ee68982819f\",\"components/pages/VirtualDirectoryPage/CreateDirectoryPage\":\"43a17b4248552d449e62\",\"components/pages/VirtualDirectoryPage/CreateVirtualDirectoryPage\":\"f5fc15531595c349d180\",\"components/pages/VirtualDirectoryPage/Protection\":\"dd726688e0bf0e91da6e\",\"components/pages/VirtualDirectoryPage/ProtectionSettingsPage\":\"5343ef1c7d39464c2f87\",\"components/pages/VirtualDirectoryPage/MimeTypeList\":\"4e518c7d8d0530c19886\",\"components/pages/VirtualDirectoryPage/CreateMimeTypePage\":\"d62211989002f4207796\",\"components/pages/VirtualDirectoryPage/EditMimeTypePage\":\"0ffb5552f0a74f128daf\",\"components/pages/VirtualDirectoryPage/ErrorDocList\":\"c3b329e9817731b5c32a\",\"components/pages/VirtualDirectoryPage/EditErrorDocPage\":\"47e1ef91bf9f40415d8f\",\"components/pages/TrafficUsageByDomainPage\":\"9724114e163ccf20f2d3\",\"components/pages/TrafficUsageByClientsPage\":\"24739c0f90051de56f16\",\"components/pages/TrafficUsageByResellerPage\":\"342ec43d72bd55523fb9\",\"components/pages/TrafficUsageByDomainsPage\":\"1a02536e83d435e23381\",\"components/pages/HomePage\":\"598d174578c98cdc5a11\",\"components/pages/HomeCustomizationPage\":\"430df8c7ac14a4cc9ca5\",\"components/pages/InfoAndStatisticsPage\":\"8d8d4594f3f4ef9cb374\",\"components/pages/InfoAndStatisticsPage/TrafficUsageLayoutPage\":\"aa2898b4f1da3ede8113\",\"components/pages/DomainsResourceUsagePage\":\"9c094b1ab69375ede7d2\",\"app/editlist\":\"35d0081a6f7e5a27f3bf\",\"app/rating\":\"0a39bc33594c48fa1266\",\"app/aha\":\"d7961d000904715f722f\",\"app/eula\":\"f8f0d6e2bd5674f50474\",\"app/app-image/gallery\":\"e84d40fd4a723aa48975\",\"app/backup/list\":\"bf0b7ac34de76835276f\",\"app/backup/restore\":\"3a26d9dc22f1a94beac2\",\"app/backup/upload-files\":\"2786d2cd9c3a2c133d0a\",\"app/backup/web-content-dynamic\":\"9cbcafbb2c7c4506520b\",\"app/database/assign-to-subscription\":\"e34b4cd8a2d1e8bee673\",\"app/dns-helper\":\"3522185c52b4b65120f1\",\"app/dns-helper/dns-settings\":\"c6c9922d6c117250b063\",\"app/email-address/aliases-dynamic\":\"3e68363448f1d937baea\",\"app/email-address/client-configuration-link\":\"82969d4fc45ba63c6879\",\"app/email-address/form-ajax\":\"7ab2b0228933b4583baf\",\"app/email-address/postbox\":\"1ec8cb4ff8e5f4f64f51\",\"app/email-address/responder-attachments-dynamic\":\"26cd84eaeedca6f21666\",\"app/file-manager/explorer\":\"2faaec854ce5b550cada\",\"app/file-manager/file-name-popup-form\":\"45266320f02b7bf15fde\",\"app/mail-settings/confirmation-remove-popup-form\":\"023589a5fadbf40bee40\",\"app/hosting-settings/conflicts-checker\":\"baa822267b655445ea0f\",\"app/log-browser/browser\":\"bc5327a02bdaddd7a3d0\",\"app/log-browser/files\":\"8961552c26b7b7d71168\",\"app/login/recovery-password\":\"552f01a7be57b02e0f0e\",\"app/newsletter-subscription\":\"61c343156998a49ce1b0\",\"app/progress-dialog\":\"cef3a79b48977ed447e2\",\"app/profile/announcement-settings\":\"17efb68dab88469cf8b3\",\"app/pum\":\"e560b9cece0036c03bfe\",\"app/server-mail-antivirus-promo\":\"e9b54e12b9f8d6e94521\",\"app/show-output-popup\":\"8e0e20b35cb497e88774\",\"app/task-progress-bar\":\"3c39cfc4aefad2a0adb7\",\"app/user/login-string\":\"2fe83b6457a69b8d4a82\",\"app/change-customers-owner\":\"64541fb76101676d451b\",\"app/convert-customers-to-resellers\":\"48577de2f0ee49108969\",\"app/convert-resellers-to-customers\":\"476dae4fe377dd37be3e\",\"app/service-sidebar\":\"25c8740656d8952cd5c2\",\"app/ssl-certificate/list\":\"1f8fd8169fd99e597118\",\"app/app/progress\":\"938952901ad9c343e824\",\"app/app/installed\":\"5ec27099a74dfd6070da\",\"app/app/apscatalog\":\"ce02122fa1ccd3ed2be2\",\"app/web-app-firewall/submit-handler\":\"45d47fe62d9b8687eff3\",\"app/helper/mail-settings-dkim-hint\":\"feef0652d952570c2d7d\",\"views/smb/file-manager/list/UploadProgressDialog\":\"1aa4d66bc6236376e54d\",\"components/common/ServerMailAntivirusPromo\":\"8a16239867840c3b9e36\"}[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__.S = {};\nvar initPromises = {};\nvar initTokens = {};\n__webpack_require__.I = (name, initScope) => {\n\tif(!initScope) initScope = [];\n\t// handling circular init calls\n\tvar initToken = initTokens[name];\n\tif(!initToken) initToken = initTokens[name] = {};\n\tif(initScope.indexOf(initToken) >= 0) return;\n\tinitScope.push(initToken);\n\t// only runs once\n\tif(initPromises[name]) return initPromises[name];\n\t// creates a new share scope if needed\n\tif(!__webpack_require__.o(__webpack_require__.S, name)) __webpack_require__.S[name] = {};\n\t// runs all init snippets from all modules reachable\n\tvar scope = __webpack_require__.S[name];\n\tvar warn = (msg) => {\n\t\tif (typeof console !== \"undefined\" && console.warn) console.warn(msg);\n\t};\n\tvar uniqueName = undefined;\n\tvar register = (name, version, factory, eager) => {\n\t\tvar versions = scope[name] = scope[name] || {};\n\t\tvar activeVersion = versions[version];\n\t\tif(!activeVersion || (!activeVersion.loaded && (!eager != !activeVersion.eager ? eager : uniqueName > activeVersion.from))) versions[version] = { get: factory, from: uniqueName, eager: !!eager };\n\t};\n\tvar initExternal = (id) => {\n\t\tvar handleError = (err) => (warn(\"Initialization of sharing external failed: \" + err));\n\t\ttry {\n\t\t\tvar module = __webpack_require__(id);\n\t\t\tif(!module) return;\n\t\t\tvar initFn = (module) => (module && module.init && module.init(__webpack_require__.S[name], initScope))\n\t\t\tif(module.then) return promises.push(module.then(initFn, handleError));\n\t\t\tvar initResult = initFn(module);\n\t\t\tif(initResult && initResult.then) return promises.push(initResult['catch'](handleError));\n\t\t} catch(err) { handleError(err); }\n\t}\n\tvar promises = [];\n\tswitch(name) {\n\t}\n\tif(!promises.length) return initPromises[name] = 1;\n\treturn initPromises[name] = Promise.all(promises).then(() => (initPromises[name] = 1));\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.pages.VirtualDirectory\",\"components.forms.login\",\"components.common.LocaleSwitcher\",\"components.forms.get-password\",\"components.forms.restore-password\"],\"components/pages/IpAddressDomainsPage\":[\"components.pages.ip-address-domains\"],\"components/pages/ChangeSubscriptionsOwnerPage\":[\"components.pages.change-subscriptions-owner\",\"components.forms.change-subscriptions-owner\",\"components.list\",\"components.elements.lookup\",\"components.forms.ip-addresses-selector\"],\"components/pages/VirtualHostTemplatePage\":[\"components.pages.VirtualHostTemplatePage\",\"components.list\"],\"components_pages_ConfigureMailClientPage_index_js\":[\"components.pages.ConfigureMailClient\",\"components.pages.ConfigureMailClient.Thunderbird\",\"components.pages.ConfigureMailClient.Common\",\"components.buttons\",\"components.pages.ConfigureMailClient.Ios\",\"components.pages.ConfigureMailClient.Gmail\",\"components.pages.ConfigureMailClient.Manual\",\"components.pages.ConfigureMailClient.Outlook\"],\"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\",\"admin.controllers.home.admin.promoNewPage\"],\"views/admin/app/info\":[\"admin.controllers.app.info\",\"admin.components.lists.appinfo\"],\"views/admin/app/usage\":[\"admin.controllers.app.usage\",\"admin.components.lists.appusage\"],\"views/admin/app/uploaded\":[\"admin.controllers.app.uploaded\",\"admin.components.lists.appuploaded\"],\"views/admin/custom-buttons/list\":[\"components.lists.custombuttons\"],\"views/admin/ftp-sessions/list\":[\"admin.components.lists.ftpsessions\"],\"views/admin/php-handler/list\":[\"admin.controllers.php-handler.list\",\"admin.components.lists.phphandlers\"],\"components/pages/ScheduledBackupPage\":[\"components.buttons\",\"components.forms.backup.schedule\",\"smb.components.days-of-week\",\"controllers.backup.schedule\",\"components.forms.backup.subform\"],\"components/pages/ScheduledBackupListPage\":[\"components.lists.backup.schedule\",\"smb.components.days-of-week\",\"components.forms.backup.subform\",\"components.list\",\"components.forms.backup.schedule\",\"controllers.backup.schedule\",\"components.buttons\"],\"views/default/scheduler/list\":[\"components.lists.scheduler.tasks\"],\"views/admin/domain/list\":[\"components.pages.domains\",\"admin.components.lists.domains\",\"components.icp-permit\",\"components.list\",\"components.active-lists.sites\",\"components.buttons\",\"components.forms.domain.rename\",\"smb.components.forms.web.add-domain\",\"smb.components.forms.domain-info-section\",\"smb.components.forms.web._shared\",\"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\",\"components.forms.domain.move\"],\"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\",\"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\",\"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\",\"components.buttons\"],\"views/smb/email-address/list\":[\"smb.controllers.email-address.list\",\"smb.components.lists.emails\",\"components.buttons\",\"smb.controllers.email-address.configuration\",\"smb.components.confirmations.email-outgoing-messages\",\"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\",\"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\":[\"smb.components.forms.web.add-domain\",\"smb.components.forms.domain-info-section\",\"smb.components.forms.web._shared\",\"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.active-lists.sites\",\"components.active-list\",\"components.icp-permit\",\"components.active-lists.sites.GetStarted\",\"components.active-lists.sites.GetStarted.SitejetDialog\",\"components.active-lists.sites.alias\",\"components.active-lists.sites.RenameTour\",\"components.forms.domain.rename\",\"admin.components.lists.domains\",\"components.active-lists.sites.DynamicListTour\",\"components.forms.domain.move\",\"components.site-jet-banner\"],\"views/smb/web/overview\":[\"components.active-lists.sites\",\"components.icp-permit\",\"components.forms.admin-info\",\"components.buttons\",\"components.active-lists.sites.GetStarted\",\"components.active-lists.sites.GetStarted.SitejetDialog\",\"components.active-lists.sites.alias\",\"components.forms.domain.rename\",\"components.sidebar\",\"admin.components.elements.status\",\"admin.components.lists.subscriptions\",\"components.homonyms\",\"components.custom-spots\",\"admin.controllers.home.admin\",\"smb.controllers.web._shared\",\"components.active-lists.sites.RenameTour\",\"components.forms.domain.move\",\"components.elements.lookup\"],\"views/smb/web/php-settings\":[\"components.forms.php-settings\",\"components.buttons\",\"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\"],\"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.components.forms.settings-ui.branding.background.fit\",\"admin.controllers.server.tools\",\"admin.controllers.navigation.index\",\"admin.controllers.settings-ui.branding\"],\"views/server/db\":[\"components.pages.database-servers\",\"components.pages.home\",\"admin.controllers.server.tools\",\"components.lists.databaseservers\",\"components.status\",\"components.buttons\",\"components.list\",\"components.pages.database-server-upgrade\",\"components.pages.database-server-upgrade.chooseReleaseStep\",\"components.pages.database-server-upgrade.preUpgradeCheckStep\",\"components.pages.database-server-upgrade.preUpgradeCheckProgressStep\",\"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\",\"components.pages.server-mail-smarthost\",\"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\",\"admin.components.lists.serverMailStatistics.SpamRecipients\",\"admin.components.lists.serverMailStatistics.summary\",\"smb.components.months\",\"admin.components.lists.serverMailStatistics\",\"admin.components.lists.serverMailStatistics.VirusRecipients\",\"admin.components.lists.serverMailStatistics.VirusViruses\",\"admin.components.forms.server-mail-smarthost\",\"admin.components.forms.server-mail-smarthost.settings\",\"admin.components.forms.server-mail-smarthost.configuration\"],\"views/license\":[\"components.pages.primary-key-info\",\"components.license-status\",\"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.additional-key-upload\",\"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.pages.primary-key-upload\",\"components.forms.license-key-upload\",\"components.pages.additional-key-info\",\"admin.controllers.home.admin\",\"smb.components.license.properties\",\"components.dialogs.additional-key-update\",\"components.pages.additional-key-revert\",\"components.forms.license-key-revert\"],\"components/pages/FirewallGeneralPage\":[\"components.pages.firewall-general\",\"components.pages.home\",\"admin.controllers.server.tools\",\"components.pages.firewall\",\"admin.components.lists.firewallinterfaces\",\"components.list\",\"components.pages.firewall-icmp\",\"components.pages.firewall-rules\",\"components.buttons\"],\"components/pages/FirewallIcmpPage\":[\"components.pages.home\",\"admin.controllers.server.tools\",\"components.pages.firewall\",\"components.pages.firewall-icmp\",\"admin.components.lists.firewallicmprules\",\"components.list\",\"components.pages.firewall-general\",\"components.pages.firewall-rules\"],\"components/pages/FirewallRulesPage\":[\"components.pages.home\",\"admin.controllers.server.tools\",\"components.pages.firewall\",\"components.pages.firewall-rules\",\"admin.components.lists.firewallrules\",\"components.buttons\",\"components.list\",\"components.pages.firewall-general\",\"components.pages.firewall-icmp\",\"admin.components.forms.firewall-rule\"],\"components/pages/ServerComponentsPage\":[\"components.lists.server-components\",\"admin.controllers.home.admin\",\"admin.controllers.server.tools\",\"components.list\",\"components.lists.server-components.componentConf\"],\"views/admin/ip-address/list\":[\"admin.controllers.ip-address.list\",\"admin.controllers.home.admin\",\"admin.controllers.server.tools\",\"admin.components.lists.ipaddresses\",\"components.buttons\",\"admin.components.forms.ip-address\",\"admin.components.forms.security-policy\",\"admin.controllers.ip-address.add\"],\"views/admin/ip-address/clients\":[\"components.lists.ip-address-reseller-usage\",\"admin.controllers.home.admin\",\"admin.controllers.server.tools\",\"admin.controllers.ip-address.list\",\"components.buttons\",\"components.list\"],\"components/pages/AssignIpAddressToResellerForm\":[\"components.lists.ip-address-reseller-usage.assign\",\"components.lists.ip-address-reseller-usage\"],\"views/admin/client/ip-address\":[\"admin.controllers.ip-address.list\",\"admin.controllers.home.admin\",\"admin.controllers.navigation.index\",\"components.lists.client-ip-address\",\"components.buttons\",\"components.list\"],\"views/admin/client/ip-address/form\":[\"components.lists.client-ip-address\",\"components.lists.client-ip-address.properties\",\"components.lists.client-ip-address.assign\"],\"views/php/extensions\":[\"components.pages.php-handler.extensions\",\"admin.controllers.home.admin\",\"admin.controllers.server.tools\",\"admin.controllers.php-handler.list\",\"components.pages.php-handler\",\"components.pages.php-handler.php-ini\",\"components.pages.php-handler.extensions.manage\",\"admin.components.lists.phpextensions.installable\",\"components.list\",\"components.buttons\",\"admin.components.forms.php-handler.extension\",\"admin.components.lists.phpextensions\"],\"components/pages/TsSessionPage\":[\"components.lists.ts-sessions\",\"admin.controllers.home.admin\",\"admin.controllers.server.tools\",\"components.pages.ts-sessions\",\"components.pages.ts-sessions-properties\"],\"components/pages/TsSessionsPage\":[\"components.lists.ts-sessions\",\"components.list\",\"admin.controllers.home.admin\",\"admin.controllers.server.tools\",\"components.pages.ts-sessions\"],\"components/pages/AspDotNetSettingsPage/AspDotNetServerSettingsPage\":[\"smb.controllers.asp-dot-net.settings\",\"admin.controllers.server.tools\",\"smb.components.forms.asp-dot-net.settings\",\"smb.components.forms.asp-dot-net.change-version\"],\"components/pages/ServerAboutPage\":[\"components.pages.ServerAbout\"],\"components/pages/MassMailPage\":[\"components.pages.MassMailPage\"],\"components/pages/CreateMassMailTemplatePage\":[\"components.pages.CreateMassMailTemplatePage\",\"components.forms.MassMailForm\",\"components.elements.double-list-selector\"],\"components/pages/SendMassMailPage\":[\"components.pages.SendMassMailPage\",\"components.forms.MassMailForm\",\"components.elements.double-list-selector\"],\"components/pages/EditMassMailTemplatePage\":[\"components.pages.EditMassMailTemplatePage\",\"components.forms.MassMailForm\",\"components.elements.double-list-selector\"],\"components/pages/ActionLogPage\":[\"components.forms.action-log\",\"smb.components.months\"],\"components/pages/ServerInformationPage\":[\"components.pages.ServerInformation\"],\"components/pages/ServerSettingsPage\":[\"components.forms.server-settings\"],\"components/tabs/SpamFilterSettingsTabs\":[\"components.pages.server-spam-filter\"],\"components/pages/SpamFilterSettingsPage\":[\"admin.components.forms.server-mail-spam-filter\",\"components.buttons\"],\"components/pages/SpamFilterBlackListPage\":[\"components.lists.spam-filter\",\"components.buttons\",\"components.list\",\"components.forms.spam-filter.add\"],\"components/pages/SpamFilterWhiteListPage\":[\"components.lists.spam-filter\",\"components.buttons\",\"components.list\",\"components.forms.spam-filter.add\"],\"components/layouts/page-layout/help-drawer\":[\"components.layouts.page-layout.help-drawer\"],\"components/pages/OdbcPage/OdbcServerPage\":[\"components.pages.Odbc\",\"components.buttons\"],\"components/pages/OdbcAddPage\":[\"components.pages.OdbcAdd\"],\"components/pages/OdbcEditPage\":[\"components.pages.OdbcEdit\"],\"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.domainSettingsSection.sameSsl\",\"components.pages.HostingSettings.webspaceSettingsSection\",\"components.forms.ip-addresses-selector\",\"components.pages.HostingSettings.webspaceSettingsSection.quota\"],\"components/pages/ConnectionInfo\":[\"components.forms.domain.connection-info\",\"components.buttons\"],\"components/pages/SummaryReportLayoutsPage\":[\"admin.components.lists.summaryreportlayouts\",\"components.buttons\",\"components.list\"],\"components/pages/SummaryReportLayoutsPage/AddPage\":[\"components.pages.SummaryReport.Layout.Add\",\"components.forms.SummaryReport.Layout\"],\"components/pages/SummaryReportLayoutsPage/EditPage\":[\"components.pages.SummaryReport.Layout\",\"components.forms.SummaryReport.Layout\"],\"components/pages/TrafficHistoryReportPage\":[\"admin.components.lists.traffichistory\",\"components.list\"],\"components/pages/SummaryReportSchedulesPage\":[\"admin.components.lists.summaryreportschedules\",\"components.buttons\",\"components.list\",\"components.pages.SummaryReport.Schedule.Add\",\"components.forms.SummaryReport.Schedule\",\"components.pages.SummaryReport.Schedule.Properties\"],\"components/pages/SummaryReportPage\":[\"admin.components.report.summary\",\"components.status.reason\",\"components.pages.SummaryReport.Report\"],\"components/pages/AspDotNetSettingsPage/AspDotNetDomainSettingsPage\":[\"smb.components.forms.asp-dot-net.settings\",\"smb.controllers.asp-dot-net.settings\",\"smb.components.forms.asp-dot-net.change-version\"],\"components/pages/BandwidthLimitingPage\":[\"components.pages.BandwidthLimiting\"],\"components/pages/HotlinkProtectionPage\":[\"components.pages.HotlinkProtection\"],\"components/pages/OdbcPage/OdbcDomainPage\":[\"components.pages.Odbc\",\"components.buttons\"],\"components/pages/ProtectedDirectoryListPage\":[\"components.pages.ProtectedDirectoryList\",\"components.buttons\"],\"components/pages/ProtectedDirectoryAddPage\":[\"components.pages.ProtectedDirectoryAdd\",\"components.forms.ProtectedDirectory\"],\"components/pages/ProtectedDirectoryEditPage\":[\"components.pages.ProtectedDirectoryEdit\",\"components.forms.ProtectedDirectory\"],\"components/pages/ProtectedDirectoryUserListPage\":[\"components.lists.ProtectedDirectoryUser\",\"components.buttons\"],\"components/pages/ProtectedDirectoryUserAddPage\":[\"components.pages.ProtectedDirectoryUserAdd\"],\"components/pages/ProtectedDirectoryUserPasswordPage\":[\"components.pages.ProtectedDirectoryUserPassword\"],\"components/pages/VirtualDirectoryPage/EditVirtualDirectoryPage\":[\"components.pages.VirtualDirectory.EditVirtualDirectory\",\"components.forms.VirtualDirectory.DirectorySection\",\"components.forms.VirtualDirectory.CheckboxField\",\"components.forms.VirtualDirectory.Path\",\"components.dialogs.DirectoryBrowserDialog\",\"components.forms.VirtualDirectory.ApplicationSettingsSection\",\"components.forms.VirtualDirectory.ScriptExecuteField\",\"components.forms.VirtualDirectory.scriptExecuteOption\",\"components.forms.VirtualDirectory.SecuritySection\",\"components.forms.VirtualDirectory.AspSection\",\"components.forms.VirtualDirectory.DocumentsSection\",\"components.forms.VirtualDirectory.DefaultDocsField\",\"components.forms.VirtualDirectory.NewDefaultDoc\",\"components.forms.VirtualDirectory.PhysicalDirectoryConflictDialog\"],\"components/pages/VirtualDirectoryPage/AspDotNetSettingsPage\":[\"components.pages.VirtualDirectory.AspDotNet\",\"smb.components.forms.asp-dot-net.settings\",\"smb.controllers.asp-dot-net.settings\",\"smb.components.forms.asp-dot-net.change-version\"],\"components/pages/VirtualDirectoryPage/PermissionsPage\":[\"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\"],\"components/pages/VirtualDirectoryPage/PhpVersionPage\":[\"components.pages.VirtualDirectory.Php\"],\"components/pages/VirtualDirectoryPage\":[\"components.pages.VirtualDirectory\"],\"components/pages/VirtualDirectoryPage/Browse\":[\"smb.components.lists.virtualdirectories\",\"components.buttons\"],\"components/pages/VirtualDirectoryPage/CreateDirectoryPage\":[\"components.pages.VirtualDirectory.CreateDirectory\"],\"components/pages/VirtualDirectoryPage/CreateVirtualDirectoryPage\":[\"components.pages.VirtualDirectory.CreateVirtualDirectory\",\"components.forms.VirtualDirectory.DirectorySection\",\"components.forms.VirtualDirectory.CheckboxField\",\"components.forms.VirtualDirectory.Path\",\"components.dialogs.DirectoryBrowserDialog\",\"components.forms.VirtualDirectory.ApplicationSettingsSection\",\"components.forms.VirtualDirectory.ScriptExecuteField\",\"components.forms.VirtualDirectory.scriptExecuteOption\",\"components.forms.VirtualDirectory.SecuritySection\",\"components.forms.VirtualDirectory.AspSection\",\"components.forms.VirtualDirectory.DocumentsSection\",\"components.forms.VirtualDirectory.DefaultDocsField\",\"components.forms.VirtualDirectory.NewDefaultDoc\",\"components.forms.VirtualDirectory.PhysicalDirectoryConflictDialog\"],\"components/pages/VirtualDirectoryPage/Protection\":[\"components.pages.VirtualDirectory.Protection\",\"components.pages.VirtualDirectory.Protection.NoProtectionView\",\"components.lists.ProtectedDirectoryUser\",\"components.buttons\"],\"components/pages/VirtualDirectoryPage/ProtectionSettingsPage\":[\"components.pages.ProtectedDirectoryEdit\",\"components.forms.ProtectedDirectory\"],\"components/pages/VirtualDirectoryPage/MimeTypeList\":[\"components.pages.VirtualDirectory.MimeTypeList\",\"components.buttons\"],\"components/pages/VirtualDirectoryPage/CreateMimeTypePage\":[\"components.pages.VirtualDirectory.CreateMimeType\",\"components.forms.VirtualDirectoryMimeType\"],\"components/pages/VirtualDirectoryPage/EditMimeTypePage\":[\"components.pages.VirtualDirectory.EditMimeType\",\"components.forms.VirtualDirectoryMimeType\"],\"components/pages/VirtualDirectoryPage/ErrorDocList\":[\"components.pages.VirtualDirectory.ErrorDocList\",\"components.pages.VirtualDirectory.errorDocType\"],\"components/pages/VirtualDirectoryPage/EditErrorDocPage\":[\"components.pages.VirtualDirectory.EditErrorDoc\",\"components.pages.VirtualDirectory.EditErrorDoc.EditErrorDocForm\",\"components.pages.VirtualDirectory.errorDocType\"],\"components/pages/TrafficUsageByDomainPage\":[\"components.common.TrafficUsage.TotalUsageInfo\",\"smb.components.months\",\"components.pages.TrafficUsageByDomain.List\",\"components.list\"],\"components/pages/TrafficUsageByClientsPage\":[\"components.lists.TrafficUsageByClients\",\"components.common.TrafficUsage.TotalUsageInfo\",\"smb.components.months\"],\"components/pages/TrafficUsageByResellerPage\":[\"components.pages.TrafficUsageByReseller\",\"components.lists.TrafficUsageByClients\",\"components.pages.TrafficUsageByReseller.TotalUsage\"],\"components/pages/TrafficUsageByDomainsPage\":[\"components.pages.TrafficUsageByDomains.Viewer.Filters\",\"components.common.ListFilterPanel\",\"components.common.ListFilterForm\",\"components.pages.TrafficUsageByDomains.Viewer.List\",\"components.common.TrafficUsage.TotalUsageInfo\",\"smb.components.months\"],\"components/pages/HomePage\":[\"components.pages.Home.ServerInfo\",\"components.buttons\",\"components.pages.Home.Customization\",\"components.pages.Home.Updates\",\"components.pages.Home.Backup\",\"components.lists.backup.schedule\",\"smb.components.days-of-week\",\"components.forms.backup.subform\",\"components.list\",\"components.forms.backup.schedule\",\"controllers.backup.schedule\",\"components.pages.Home.OverusedSubscriptions\",\"components.status.reason\",\"components.pages.Home.Subscriptions\",\"components.pages.Home.IpBan\",\"components.pages.Home.Extension\",\"components.pages.Home.MailQueue\",\"components.pages.Home.Promo.Customize\",\"components.pages.Home.Promo.SwitchToPuv\",\"components.pages.Home.ChangeLog\",\"components.pages.Home.CustomButtons\",\"components.pages.Home.Status\",\"components.webserver-configuration-failure\",\"components.upgrade-failure-notification\",\"components.pages.Home.EmptyView\",\"components.pages.Home.PromoNewHomeView\"],\"components/pages/HomeCustomizationPage\":[\"components.pages.Home.Customization\"],\"components/pages/InfoAndStatisticsPage\":[\"components.pages.InfoAndStatistics.Main\"],\"components/pages/InfoAndStatisticsPage/TrafficUsageLayoutPage\":[\"components.pages.InfoAndStatistics.TrafficUsage\"],\"components/pages/DomainsResourceUsagePage\":[\"admin.components.lists.resourceusage\"],\"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/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/client-configuration-link\":[\"components.email-address.client-configuration-link\",\"components.buttons\"],\"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\",\"components.buttons\"],\"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/task-progress-bar\":[\"components.tasks.common\"],\"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\"],\"app/helper/mail-settings-dkim-hint\":[\"components.buttons\"],\"views/smb/file-manager/list/UploadProgressDialog\":[\"smb.controllers.file-manager.upload\"],\"components/common/ServerMailAntivirusPromo\":[\"components.common.ServerMailAntivirusPromo\",\"admin.controllers.server.tools\",\"admin.controllers.mail-settings.index\"]};\n\t                if (localeDependencies[chunkId]) {\n\t                    promises.push(Jsw.Locale.loadSections(localeDependencies[chunkId]));\n\t                }\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"main\": 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkPlesk\"] = self[\"webpackChunkPlesk\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"vendors\"], () => (__webpack_require__(0)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["window","Jsw","Plesk","Array","prototype","entries","index","arr","this","next","length","value","done","undefined","Symbol","iterator","Set","toArray","array","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","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","String","replace","addSection","messages","sections","Observer","notify","addSections","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","currentTarget","type","nodeType","Node","TEXT_NODE","getElement","ELEMENT_NODE","prepareNodeData","textEl","css","getElementCSSPath","depth","paths","splice","attributes","attr","hasAttribute","dataset","param","encodeSensitiveChars","list","preparedChars","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","isArray","j","toUpperCase","actions","expects","initConfig","setPatches","fn","setActions","setWatchers","setLogger","getConfig","e","toQueryParams","str","URLSearchParams","acc","val","hasOwnProperty","splitUrl","splitParams","call","indexOf","observers","getObservers","has","append","callback","appendAndCall","pos","Translate","Fragment","propTypes","PropTypes","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","_addProgressHandler","removeAttribute","SmallButton","BigButton","cls","disabledClass","button","comment","waitMessage","SplitButton","title","isAction","isDefault","isMenuFlip","items","isScrollable","openDropdown","_initItems","newWindow","listItem","submenu","preventDefault","stopPropagation","dropdownMenu","contains","toggle","openSubmenu","menuItem","trim","nextElementSibling","closeSubmenu","_menuTimeout","disabled","CommandButton","_value","_tabIndex","setHandler","toollist","CustomButton","getImagePath","Form","Methods","addMethods","ToolList","Container","_tools","_contentAreaId","_operations","Panel","_image","forcedId","Item","_href","_target","_attention","_disabledImage","_description","image","escapeAttribute","skinUrl","_items","_renderItems","_renderItem","getItems","find","submit","noRedirect","redirect","URL","protocol","isJavascriptProtocol","FormRedirect","assign","redirectPost","subToElements","stringToElements","prefix","booleanToElements","arrayToElements","concat","hashToElements","$H","each","_valueRenderer","renderHint","valuesElements","valueOf","formValues","input","getStorageName","isChanged","changed","FormAjax","_actionButtonTitle","_sendButtonId","_applyButtonId","_cancelButtonId","_confirmationCheckboxId","_submitHandler","buttonId","_toggleButton","_toggleCheckbox","actionButton","_getActionButton","waitButtonTitle","checkboxId","checkbox","noInitFocus","firstElement","focus","_submitInProgress","toggleButtons","confirmationCheckbox","checked","_formSubmit","_onSubmit","_onSubmitEvent","_addChoiceRadioButtonsOnClickEvent","_clearMessages","enctype","actionUrl","serialize","Request","onSuccess","_onSuccess","onFailure","_onFailure","req","timeoutMessage","showInternalError","responseText","_processForm","progressDialog","task","_processResponseRedirect","_processResponseStatus","_processResponseStatusMessages","statusMessages","_processResponseFormMessages","formMessages","_hasFieldErrors","_showFieldErrorArea","errorsElements","firstError","errorElement","hiddenContainerId","tabsBar","switchTab","_hasErrors","errors","rowElement","_addFormMessage","_processFieldMessages","_addFieldMessage","_processFieldMessage","fieldErrors","formElement","pop","postData","ListContainer","renderTargetId","isEmptyItem","_columnCls","cookies","cookie","crumbs","unescape","expires","escape","setPermanent","date","setTime","getTime","toGMTString","_titleClass","_hideContentTitle","_titleAreaId","_boxItemsAreaId","_initBoxItems","_boxItems","_getTitleHtml","_getSubTitleHtml","_renderBoxItems","_renderBoxItem","_isHidden","rememberedStatus","Cookie","_setHidden","hidden","hideContent","showContent","titleAreaElement","toggleContent","_updateTitle","TYPE_OK","TYPE_YESNO","SUBTYPE_DELETE","messageBox","SUBTYPE_TOGGLE","SUBTYPE_CONFIRM","factory","isWebspace","WebspaceFoldersMessageBox","isAjax","MultiCheckboxMessageWindow","MessageBox","ModalDialogBox","_text","_subtype","_descriptionWrapperTag","_descriptionDecorator","_buttonDefault","buttonsLocale","_buttonTitles","yes","no","wait","_onYesClick","_onNoClick","_onOkClick","_needAttention","_needAttentionText","_needAttentionBlockSubmit","_needAttentionOnChange","_onYesClickHandler","_defaultOnButtonClick","_getDescriptionCode","wrapDescription","_getNeedAttentionCode","needAttentionCode","ce","_disableYesButton","buttonYes","_enableYesButton","buttons","inputs","AjaxMessageBox","_requestUrl","_requestMethod","_requestParams","_contentContainerId","_loadingTitle","_progress","_showSpinner","_hideSpinner","onCreate","_onCreate","superclass","transport","contentCode","descriptionCode","confirmationCode","confirmation","checkboxes","enableYesButton","_successDescription","_failureDescription","_setDescription","folders","_screenDisablerId","_hideOnEscape","_hideOnBgClick","_onShow","_onHide","initScrollbarSpacer","_screenDisabler","_onKeyDownhandler","_onKeyDown","popupContainer","keyCode","scrollDiv","overflow","scrollbarWidth","offsetWidth","clientWidth","styleEl","head","sheet","insertRule","DropdownHeader","dropdowns","closeAllDropdowns","dropdown","isOpened","close","DropdownManager","register","toggler","open","beforeClick","oldIsOpened","unregister","SmallTools","_operationsId","searchFilters","searchFiltersState","searchHandler","resetSearchHandler","listId","searchOveral","overal","searchOverall","quickSearchWide","quickSearchInputId","searchCollapsed","onToggleSearch","quickSearchBoxView","searchBoxView","addResponsiveButton","searchOveralView","toggleSearch","filterState","currentValue","searchText","onsubmit","searchFiltersView","require","filters","Filters","create","idPrefix","_hideResponsiveButtonBlocks","_rActionsElement","onResponsiveButtonClick","_showResponsiveButtonBlocks","createDate","options","multi","createMultiEnum","createEnum","createText","placeholder","onkeyup","live","inputDataName","charAt","onchange","enumOptionsView","option","output","total","hour","minute","day","month","year","getFullYear","onDateSearchFilterOpen","onDateSearchFilterChange","onDateSearchFilterModify","enumValueView","enumGroupValue","selected","onMultiEnumSearchFilterChange","isNaN","_dateSearchFieldFromDate","_dateSearchFieldToDate","yyyy","mm","getMonth","dd","getDate","h","getHours","m","getMinutes","CollapsibleBlock","_blockAreaId","_onTitleClickEvent","Pathbar","_renderItemSuffix","getHref","SimpleItem","Bar","containerCls","getContainerClass","bar","Tabs","_isResponsive","_addResponsiveTabs","tabId","activeTab","getTabId","size","getTabContent","tabContentElement","isActive","_isActive","_containerCls","_tabId","navigationTab","_content","Separator","HorizontalSeparator","wrapperClass","DynamicSubForm","getDynamicContent","_getDynamicContent","prepareDynamicContent","_prepareDynamicContent","bindDynamicContent","_bindDynamicContent","insertDynamicContent","_insertDynamicContent","onUpdateDynamic","_onUpdateDynamic","onInitDynamic","_onInitDynamic","_allowRemoveFirstElement","dynamicElements","getElements","_addEmptyContent","dynamicElement","cloneNode","deleteContent","addContent","reset","AddRemoveDynamicSubForm","_addButtonId","_addButtonTitle","_removeButtonId","_removeButtonTitle","addButton","_isAddButtonDisabled","isFirstElement","wrapperId","_initRemoveButtonWrapper","inputEls","newId","nameRegExp","idRegExp","child","labels","Box","Gauge","setProgress","PopupForm","_popupContentAreaId","_hintAreaId","_hint1AreaId","_boxAreaId","_actionButtonsId","_leftActionButtonsAreaId","_rightActionButtonsAreaId","_titleCls","_scrollable","_fullHeight","_isRemoved","view","_getHeadingActions","_getContentArea","_getBoxArea","_getButtonsArea","buttonsRow","toggleButtonsArea","bool","setBoxType","setTitleType","setTitle","setHint1","addRightButton","_createButton","addLeftButton","removeRightButtons","removeLeftButtons","resizeList","listContainer","buttonsHeight","getHeight","cumulativeOffset","newHeight","clientHeight","overflowY","overflowX","_onClick","_updateButton","_addErrorMessage","_addStatusMessage","_userError","_close","_internalError","AjaxPopupForm","_url","cancelBtn","Popup","_contentHeight","_closeButtonEnabled","_buttons","_onCloseClick","buttonsArea","formId","buttonDesc","buttonDisabled","buttonContainer","DoubleListSelector","_name","_list","_onChange","_dataUrl","_selectedMarked","_unselectedMarked","_prevSelectedItem","_isSearchable","_isLarge","_initList","marked","_initListItem","_originalSelection","_initInputElement","ajaxLoading","_getSearchControl","isSelected","container","isHidden","icons","_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","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","_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","Observable","fetchParams","uri","terminatingLink","ApolloLink","operation","getContext","noBatch","extractFiles","files","createUploadLink","BatchHttpLink","batchMax","batchInterval","ApolloClient","from","cache","InMemoryCache","typePolicies","AdditionalKey","keyFields","Domain","fields","hosting","merge","webScriptingSettings","subscription","Subscription","permissions","ExtensionTab","SiteButton","ConfigSectionGdprCookie","User","UserLogo","UserPermissions","Os","Mode","Home","Notification","PrimaryKey","WebsitesDiagnostic","settings","ServerMail","spamAssassin","Capability","mailServer","packages","Dns","Query","additionalKeys","recentSearch","node","read","_","toReference","__typename","atob","Server","firewall","components","information","productVersion","productUpdates","pum","DnsTemplate","DnsSoaRecordTemplate","TaskList","IpAddress","clients","IpAddressList","VirtualDirectory","errorDoc","code","VirtualDirectoryErrorDoc","SystemMessage","ClientStatistics","DomainStatistics","MailAccountConfiguration","dataIdFromObject","object","defaultDataIdFromObject","symbolClasses","upper","lower","number","special","PasswordGenerator","_generateButtonElement","_onGeneratePasswordClick","_showButtonElement","_onShowPasswordClick","_showPasswordVisible","_showPasswordTitle","_hidePasswordTitle","_passwordStrength","_generatePassword","passwordConfirmationElement","fireCustomEvent","requiredClasses","shuffle","_generateSymbol","symbolClass","crypto","getRandomValues","Uint32Array","shuffledArray","remaining","currentIndex","randomIndex","UpgradeFailureNotification","updateInterval","_isBootstrapRunning","_bootstrapExecutionUrl","_bootstrapStatusUrl","_bootstrapInProgressMessage","_bootstrapLinkTitle","_scheduleUpdateStatus","_executeBootstrapper","_statusUpdate","WebserverConfigurationFailure","_rebuildFailedUrl","_rebuildAllUrl","_moduleInstalled","_kbArticle","linkAll","howToFix","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","_renderDisabledSelectHint","_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","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","_renderDisabledCheckboxesHints","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","UnresolvedDomainWarning","run","isAlias","Pool","take","hasItems","_viewerId","_preparingCounter","_hidden","intervalUpdateTimer","pleskWS","task_created","onUpdated","task_updated","task_deleted","onDeleted","onOpen","loadTasks","onClose","addPreparingItem","progressTitle","uniq","unshift","failPreparingItem","setStatus","setErrors","_loaded","mergeItems","nextItems","getMergedItems","newItemData","onItemStatusChange","completeItem","currentItem","setItems","mergeItem","pool","getUpdated","getStatus","getData","getSteps","onItemStepChange","setRefreshLinkEnabled","isStarted","isRefreshLinkEnabled","setUniq","getUniq","isFlying","isReady","stopPeriodicalExecutor","removeItemsByIds","isCompletedItem","_updateProgressDialog","progressBarItemId","onHide","returnUrl","_progressBarItem","isOpenProgressDialog","_progressDialog","renderProgressDialog","isOpen","getProgressTitle","steps","getVisibleErrors","redirectUrl","isComplete","doRedirect","isCompleteSuccessfully","isCompleteWithWarning","newItem","finishedItem","step","setProgressBarElement","getProgressBarElement","setPeriodicalExecutor","viewerId","onGroupClose","handleGroupClose","getKey","addToast","intent","hasStartedTasks","setInterval","clearInterval","_updated","_status","_errors","_output","_isRefreshLinkEnabled","_progressValue","_canCancel","_referrer","_uniq","_progressBarElement","getProgressValue","getProgressDialogLinkHandler","flag","_isRefreshAllowed","getRefreshLinkProps","_redirect","onClick","hasErrors","getErrors","getOutput","line","isPreparing","isProgressUndefined","isCompleteWithError","toToast","refresh","progress","toasts","useToasts","autoClosable","removeToast","toast","ws","messageSubscriptions","openSubscriptions","closeSubscriptions","handleError","wsConnect","attempt","WebSocket","host","onmessage","messageData","onopen","onclose","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","toolbarView","itemsView","bottomBarView","toolbar","sortDir","allowListSwitch","hasClassicView","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","_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","_getNodeElement","_onFullReloadSuccess","reloadPath","nodes","lastSlashIndex","lastIndexOf","getSelectedNode","selectedElement","getSelectedItemData","expandNode","_insertNewNode","newNode","onkeydown","_onNewNodeKeyDown","_onCreateFolder","_insertBtn","_onCancelCreateFolder","currentDir","newDirectoryName","_onFolderCreated","FTYPE_DIR","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","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","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","toPunycode","domain","punycode","FormFieldPassword","defaultProps","passwordMeterProps","onEstimate","app","showModal","graphqlQueries","localeSections","feedback","sentry","isInFrame","writeQuery","App","addWidget","widget","LocaleProvider","ErrorBoundary","createPortal","widgets","createBrowserRouter","routes","setState","StrictMode","ApolloProvider","client","_jsxs","RouterProvider","router","initialDataLoader","isInitial","createPageDataLoader","dataPath","generatePath","newData","isClientSideRedirectAllowed","ipAddressDomainRoute","componentLoader","loader","clientId","btoa","ipAddressId","changeOwnerRoute","searchParams","virtualHostTemplateRoute","handle","crumb","helpContext","isTsSessionsExist","viewer","manageServerSessions","os","isWindows","routesTransformer","AppLayout","AppBoundary","isAllowedWithoutLicense","domainOverviewRoutes","isExist","mode","isDnsServiceSupported","manageServerDnsTemplate","isViewSwitcherAllowed","manageServerNotifications","manageServerBranding","manageServerDb","graphQLErrors","debugMessage","databaseServer","errorPolicy","isDemo","fetchPolicy","websitesDiagnostic","enabled","manageServerMail","manageServerMailAutodiscover","manageServerSpamFilter","manageServerMailBlackWhiteLists","manageServerVirusProtection","toPhpDate","getStartOfDay","now","getEndOfDay","pagination","itemsPerPage","orderBy","email","capability","isSmarthostAvailable","manageServerLicense","additionalKey","isUnix","manageServerFirewall","manageServerComponents","phpHandler","cliPath","manageServerPhp","manageAspNetSettings","isASPdotNetInstalled","pageSidebar","isPowerUserPanel","CpPagesLayout","infoAndStatisticsRoute","summaryReportRoute","summaryReportChildrenRoute","trafficUsageByViewerCustomersRoute","trafficUsageByViewerCustomersChildrenRoute","trafficUsageByViewerDomainsRoute","trafficUsageByViewerDomainsChildrenRoute","resourceUsageByDomainRoute","trafficUsageByViewerResellersRoute","trafficUsageByViewerResellersChildrenRoute","readGraphQlListInputFromStorage","templateId","numericId","server","Response","serverMail","odbcServerRoute","domainRoute","homeRoute","trafficUsageByDomainRoute","PhpPagesLayout","LogsPage","parsePath","route","test","matchRoutes","HOURS_IN_MS","SEC_IN_HOUR","getSysdate","addDays","daysCount","copy","setDate","addHours","hoursCount","setHours","isSameDay","date1","date2","yearsAreEqual","getYear","monthsAreEqual","daysAreEqual","getTimezoneShift","timezone","hours","minutes","abs","formatDate","toLocaleDateString","formatDateFromTimestamp","seconds","toDatePeriod","days","daysInSeconds","hoursInSeconds","getStartOfMonth","getEndOfMonth","setMonth","getStartOfWeek","diff","getDay","getEndOfWeek","getDaysInMonthFromTimestamp","getDaysInPreviousMonth","toUnixTime","LoadableComponent","useMatches","useLocation","revalidator","useRevalidator","useLoaderData","useParams","licenseData","useQuery","LICENSE","isLicenseLocked","revalidate","componentLoaderTransformer","other","cause","default","isExistTransformer","shouldRevalidateTransformer","shouldRevalidate","defaultShouldRevalidate","currentUrl","nextUrl","every","childrenTransformer","pathTransformer","routeTransformer","transformer","flat","doc","loc","collectFragmentReferences","refs","kind","selectionSet","selections","selection","variableDefinitions","def","definitions","definitionRefs","findOperation","operationName","newDoc","opRefs","allRefs","newRefs","refName","prevRefs","childRef","op","oneQuery","TopBarProgress","barThickness","barColors","shadowBlur","navigation","useNavigation","TASK_PROGRESS_BAR_QUERY","useLayoutEffect","wsEnabled","webSocket","isNote","bottomAnchor","ModuleProvider","Outlet","Toaster","onToastClose","_Fragment","opacity","ScrollRestoration","DynamicModule","ModulesContext","createContext","MODULE_SEARCH_KEY","loadModule","loadScope","promise","__webpack_init_sharing__","__webpack_share_scopes__","useDynamicModule","useContext","loaded","setLoaded","useState","useNavigate","openModule","useCallback","moduleString","groups","lazy","encode","preventScrollReset","closeModule","delete","modules","useMemo","Provider","isRequired","visible","Suspense","fallback","showFrames","pageHeader","matchesContext","breadcrumbs","matchCrumb","reversedMatches","reverse","secondary","titleRightAddon","pageContentHeader","lastBreadcrumbTitle","lastLayoutMatch","pageTitle","at","lastMatch","noLayout","helpMenu","PageLayout","withSecondary","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","Columns","gap","vertical","Column","fill","StatusMessages","JswComponent","useClickOutside","listener","useEventListener","addFn","removeFn","handlerRef","useRef","initialValue","storedValue","setStoredValue","readLocalStorageValue","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","onToggle","adapter","OverlayAdapter","useCollector","setCallback","collect","Confirmation","onProceed","proceed","isConfirmed","isResolved","useConfirmation","setConfirmation","triggerConfirmation","useCreateFormInDrawer","dataType","drawerUrl","useApolloClient","useMatch","setData","setTask","updateUserSettings","useMutation","UPDATE_USER_SETTINGS","CREATE_FORM_IN_DRAWER_QUERY","techDomain","vendor","maxDomainLength","settingsEnabled","domainManagement","applicationWizardConfig","applicationWizard","isMailServiceSupported","handleClose","DrawerWithProgress","onCancel","onProcess","onToggleDomainSettings","settingsCollapsed","ContentLoader","STATUS_RUNNING","getTaskProgressBar","ButtonsTranslate","onTaskComplete","autoCloseTimeout","setSteps","setRedirectUrl","taskId","handleTaskUpdate","taskStatus","progressValue","progressTitleHtml","onErrorExecute","ConsoleOutput","taskProgressBar","isInProgress","deleteTask","handleTaskComplete","sameUrls","origin","Drawer","cancelable","dangerouslySetInnerHTML","__html","onFinish","hideButton","navigateBase","useNavigateBase","createPath","useListOperation","setSelection","loadingRows","setLoadingRows","wrapListOperation","currentKeys","ALL_ITEMS","ITEM_PER_PAGE_OPTIONS_DEFAULT","ALL_ITEMS_COUNT","useList","onFilter","initialFilter","currentPage","totalPage","totalPages","itemsPerPageOptions","onPageChange","onChangeItemsPerPage","direction","sortColumn","onSortChange","loading","setLoading","setFilter","wrapAsync","renderPagination","Pagination","onSelect","nextPage","onItemsPerPageChange","sortParams","handleReload","handleFilter","Heading","Paragraph","cookieInformationLink","Link","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","mapping","LicenseLimitsMessage","handleCloseMessage","renderMessage","buyUrl","canManageLicense","Alert","urlMapping","useNavigateCallback","metaKey","altKey","ctrlKey","RouterLink","defaultPrevented","features","STATUS_DEFAULT","STATUS_TRIAL","STATUS_EXPIRED","daysLeft","isAdmin","installUrl","hidePopoverUrl","trialOverIcon","baseClassName","trialOverPopoverVisible","setTrialOverPopoverVisible","handleClosePopover","alertCls","renderActions","popoverCls","Popover","renderTrialPopover","oneOf","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","ghost","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","Text","truncate","pname","login","backToAdminLink","accountMenu","subscriptionSwitcher","headerCustomButtons","isHideBackToAdminText","isHideLogo","MAIN_HEADER_NAVBAR_QUERY","theme","setTheme","branding","flipHorizontal","SubscriptionSwitcher","notification","panel","NotificationCenter","alt","HelpMenu","handleToggleTheme","newTheme","newThemeColor","logo","isCustom","changeIdRe","subscriptions","currentSubscriptionId","defaultCurrentSubscriptionId","defaultShowAll","setShowAll","setCurrentSubscriptionId","tabIndex","pointerEvents","isListOpen","setIsListOpen","selectedNotificationId","setSelectedNotificationId","notifications","setNotifications","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","prevNotifications","deleteNotifications","handleCloseNotificationCenter","unreadNotifications","applyFilter","isUnRead","selectedNotification","Badge","getMostIntentByNotifications","extra","NotificationActions","onUpdateNotifications","onRemoveNotification","Action","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","expandedRows","setExpandedRows","filterCount","r","v","grouppedNotifications","groupNotifications","selectNotification","toggleExpansionNotification","prevExpandedRows","unreadNotificationIds","SubjectColumn","onToggleExpansionNotification","DateColumn","Toolbar","ToolbarGroup","ToolbarExpander","FilterMenu","SearchBar","inputProps","onTyping","minWidth","rowKey","renderRowBody","onExpandedRowsChange","emptyViewMode","ListEmptyView","reason","isNotificationsGroup","unreadCount","notificationsId","subjectIntent","getSubjectIntent","Media","imageSpacing","getStatusIntent","compact","bold","groupedNotifications","originalNotification","today","nowrap","ListActions","ListAction","primary","intents","HelpDrawer","helpUrl","customHelpUrl","helpModule","HELP_MENU_QUERY","setIsOpen","setIsOpened","handleOpen","isClassicPanel","help","enableSearchPrefill","styleClass","conhelp","custom","backgroundImage","fontSize","Group","activeNode","statistics","isSidebarClosed","nodeRef","setHidden","Transition","in","mountOnEnter","unmountOnExit","g","getFirstLink","foundNode","navigationContext","viewSwitcher","showStatistics","MAIN_MENU_QUERY","skip","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","onTouchStart","onMouseDown","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","objectSwitcherParams","forceObjectSwitcher","isClassicMode","additionalTitleContent","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","graphQLError","trace","stackTrace","stack","descriptions","helpActions","styles","back","noRepairKit","sideMaintenance","main","wide","ExceptionDetails","RepairKitAlert","footerLinks","footerLink","footerLinkText","RepaitKitAlert","MediaSection","codeFragment","GraphQlList","filtered","emptyViewFiltered","listContext","listProps","paginationProps","setSort","prevFiltered","setPrevFiltered","isLoadingOrFiltered","GraphQlListContext","GraphQlListSearchBar","onSearch","listInput","setSearchFilters","currentFilters","ITEMS_PER_PAGE_OPTIONS","useGraphQlList","defaultInput","inputVariables","withNetworkOnlyStrategy","onListInputChange","withPagination","extractList","setFetchPolicy","setListInput","getGraphQlListInputStorageArgs","queryResult","queryData","previousData","handleListInputChange","setPage","setItemsPerPage","pageInfo","setFilters","newListInput","sortInfo","totalRows","DEFAULT_INPUT","ODBC_SERVER_LIST","odbcAddRoute","odbcEditRoute","dsnManager","drivers","ODBC_ADD_PAGE","domainId","odbcId","ODBC_EDIT_PAGE","useGetDomainOverviewRoutePath","HOSTING_SETTINGS_PAGE","ROUTE","layoutId","summaryReportLayout","scheduleId","ignoreTopLevelTitle","summaryReportLayouts","defaultId","DOMAIN_PAGE","domainRouteData","baseDomain","baseDomainId","getContextUrl","aspDotNetDomainSettingsRoute","bandwidthLimitingDomainRoute","hotlinkProtectionDomainRoute","odbcDomainRoute","protectedDirectoriesRoute","virtualDirectoryRoute","ASP_DOT_NET_DOMAIN_SETTINGS_PAGE","aspDotNet","aspNetSettings","configs","BANDWIDTH_LIMITING_PAGE","domainName","HOTLINK_PROTECTION_PAGE","ODBC_DOMAIN_PAGE","ODBC_DOMAIN_LIST","protectedDirectoryListRoute","protectedDirectoryUserListRoute","PROTECTED_DIRECTORY_LIST","protectedDirectoryAddRoute","protectedDirectoryEditRoute","PROTECTED_DIRECTORY_ADD_PAGE","isProtectedDirectoryLocationSupported","protectedDirectoryId","protectedDirectory","PROTECTED_DIRECTORY_EDIT_PAGE","directoryId","directoryData","PROTECTED_DIRECTORY_PATH","PROTECTED_DIRECTORY_USER_LIST","protectedDirectoryUserAddRoute","protectedDirectoryUserPasswordRoute","userId","virtualDirectorySettingRoutes","directoryName","domainNodeId","editablePath","EDIT_VIRTUAL_DIRECTORY_PAGE","isCurrentDirectory","subscriptionId","isAspEnabled","asp","virtualDirectory","webPath","VIRTUAL_DIRECTORY_PHP_PAGE","managePhpVersion","isVirtual","VIRTUAL_DIRECTORY_PAGE","VirtualDirectorySidebar","VIRTUAL_DIRECTORY_BROWSE_PAGE","VIRTUAL_DIRECTORY_CONTENT_LIST","CREATE_VIRTUAL_DIRECTORY_PAGE","parentPath","parentDirectory","userListKey","VIRTUAL_DIRECTORY_PROTECTION_PAGE","VIRTUAL_DIRECTORY_PROTECTION_USER_LIST","mimeTypeListKey","VIRTUAL_DIRECTORY_MIME_TYPE_LIST","IIS_MANAGER_MIME_CONTENT_TYPES","editPageData","VIRTUAL_DIRECTORY_EDIT_MIME_TYPE_PAGE","mimeType","errorDocListKey","VIRTUAL_DIRECTORY_ERROR_DOC_LIST","VIRTUAL_DIRECTORY_EDIT_ERROR_DOC_PAGE","php","canManagePermissions","isPhpInstalled","urlPrefix","buttonProperties","buttonPermissions","buttonAspDotNet","buttonPhp","SidePanel","ItemList","buildUrl","collapsible","TRAFFIC_USAGE_BY_DOMAIN_PAGE","DOMAIN_TRAFFIC_USAGE","intervals","trafficUsageIntervals","trafficUsageByResellerRoute","clientIdParamName","trafficUsageListKey","clientType","intervalsData","TRAFFIC_USAGE_INTERVALS","TOTAL_TRAFFIC_USAGE_BY_VIEWER_CLIENTS","TRAFFIC_USAGE_BY_VIEWER_CLIENTS_LIST","clientTypes","getClientLink","resellerName","clientNodeId","TOTAL_TRAFFIC_USAGE_BY_RESELLER","TRAFFIC_USAGE_BY_RESELLER_CLIENTS_LIST","trafficUsageByCustomerDomainsRoute","trafficUsageByClientDomainsRoute","clientName","customerId","CLIENT_TRAFFIC_USAGE_INTERVALS","TOTAL_TRAFFIC_USAGE_BY_CLIENT_DOMAINS","TRAFFIC_USAGE_BY_CLIENT_DOMAINS_LIST","listQueryParams","trafficUsageByDomains","totalUsageQueryParams","extractTrafficData","totalTrafficUsageByDomains","showFilters","showClientNameColumn","parentClientType","TOTAL_TRAFFIC_USAGE_BY_VIEWER_DOMAINS","TRAFFIC_USAGE_BY_VIEWER_DOMAINS_LIST","jswRedirect","allSettled","homeQueries","HOME_PAGE","block","layoutResponse","TitleAddon","constants","SERVER_INFO_QUERY","UPDATES_QUERY","OVERUSED_SUBSCRIPTIONS_QUERY","MY_SUBSCRIPTIONS_QUERY","EXTENSIONS_QUERY","CHANGE_LOG_QUERY","SERVER_INFO","UPDATES","OVERUSED_SUBSCRIPTIONS","MY_SUBSCRIPTIONS","IP_BAN","BACKUP","EXTENSIONS","MAIL_QUEUE","PROMO","CHANGE_LOG","CUSTOM_BUTTONS","HOME_PAGE_QUERY","home","locked","isEmptyLayout","order","marginInline","systemMessages","manageServerInfo","LoginPage","defaultValues","serverInfo","isFirstLogin","cloudType","loginContentInclude","headContent","bodyContent","LOGIN_PAGE_QUERY","login_name","passwd","locale_id","useInsertionEffect","addedElements","empty","FormFieldText","autoFocus","hideGenerateButton","hidePasswordMeter","howToLoginArticle","cookieSettings","loginFormEntrypointEnabled","RouteLink","withLoginLayout","locales","resolvableHostname","mobileApplicationPromotion","background","LocaleSwitcher","appearance","contentAddon","SuggestResolvableHostname","LoginMobileApplicationPromotion","processFieldMessage","processFieldMessages","findSubFormFields","subFormPrefix","formData","forms","getSubFormPrefixes","formPrefix","embeddedForms","forwardRef","mutation","onFieldChange","onLongTask","embeddedFormsRender","defaultErrors","statusRef","setStatusMessages","formErrors","subFormErrors","setElementValue","getElementsByName","getIn","useImperativeHandle","handleEmbeddedFormValues","scrollIntoView","behavior","handleSubmitSuccess","formState","isApply","forceRedirect","renderEmbeddedForms","BaseForm","setIn","LoginLayout","LayoutBackground","customBackground","color","fit","MOBILE_APPLICATION_PROMOTION_COOKIE_NAME","setIsVisible","handleHide","sortedLocales","GetPasswordPage","resetBy","handleSuccess","indentFields","GET_PASSWORD_PAGE_QUERY","RestorePasswordPage","handleEstimatePassword","mergeMessages","oldMessages","setMessages","sectionName","handleAddedLocaleSection","handleAddedLocaleSections","BaseLocaleProvider","errorInfo","componentDidCatch","margin","whiteSpace","fontFamily","componentStack","app/editlist","app/rating","app/aha","app/eula","app/app-image/gallery","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/client-configuration-link","app/email-address/form-ajax","app/email-address/postbox","app/email-address/responder-attachments-dynamic","app/file-manager/explorer","app/file-manager/file-name-popup-form","app/mail-settings/confirmation-remove-popup-form","app/hosting-settings/conflicts-checker","app/log-browser/browser","app/log-browser/files","app/login/recovery-password","app/newsletter-subscription","app/progress-dialog","app/profile/announcement-settings","app/pum","app/server-mail-antivirus-promo","app/show-output-popup","app/task-progress-bar","app/user/login-string","app/change-customers-owner","app/convert-customers-to-resellers","app/convert-resellers-to-customers","app/service-sidebar","app/ssl-certificate/list","app/app/progress","app/app/installed","app/app/apscatalog","app/web-app-firewall/submit-handler","app/helper/mail-settings-dkim-hint","tags","environment","isDev","integrations","Replay","maskAllText","maskAllInputs","BrowserTracing","beforeNavigate","beforeSend","err","originalException","catchDebugger","anonymousCall","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","ApsLicense","buy","initForm","onChangeUploadType","ToolButton","ApplicationUpdate","_renderHint","instances","_onInstallEvent","_onChangelogEvent","_onViewMoreEvent","updateApplication","showApplicationChangelog","resourceIds","contentText","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_pos_int","pos_int","chk_mn","mail_name","isWin","re","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","valid","valid_formats","ip_address","ip_mask","chk_uint","uint","createTooltipElement","tooltipMouseMoveObserver","onMouseMove","tooltipMouseOutObserver","onMouseOut","tooltipEventElement","tooltipVisible","showAction","showTimed","tooltipShowTimeout","cancelShowTimed","finishShowTimed","getShowPosition","firstShow","hideAction","__webpack_module_cache__","deferred","leafPrototypes","getProto","inProgress","__webpack_require__","moduleId","cachedModule","__webpack_modules__","O","chunkIds","notFulfilled","Infinity","fulfilled","n","getter","__esModule","getPrototypeOf","obj","t","getOwnPropertyNames","definition","enumerable","chunkId","promises","u","miniCssF","globalThis","hmd","prop","l","needAttach","getElementsByTagName","charset","nc","onScriptComplete","doneFns","toStringTag","nmd","S","initPromises","initTokens","I","initScope","initToken","p","compat","localeDependencies","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}