@bigbinary/neeto-molecules 1.1.16 → 1.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AutoSaveInput.js +658 -0
- package/dist/AutoSaveInput.js.map +1 -0
- package/dist/Breadcrumbs.js +38 -0
- package/dist/Breadcrumbs.js.map +1 -0
- package/dist/BrowserSupport.js +418 -0
- package/dist/BrowserSupport.js.map +1 -0
- package/dist/Builder.js +662 -0
- package/dist/Builder.js.map +1 -0
- package/dist/CalendarView.js +538 -0
- package/dist/CalendarView.js.map +1 -0
- package/dist/Codeblock.js +236 -0
- package/dist/Codeblock.js.map +1 -0
- package/dist/{Columns/index.js → Columns.js} +130 -13
- package/dist/Columns.js.map +1 -0
- package/dist/{ConfirmationModal/index.js → ConfirmationModal.js} +20 -8
- package/dist/ConfirmationModal.js.map +1 -0
- package/dist/Container.js +1211 -0
- package/dist/Container.js.map +1 -0
- package/dist/CopyToClipboardButton.js +209 -0
- package/dist/CopyToClipboardButton.js.map +1 -0
- package/dist/CustomDomain.js +688 -0
- package/dist/CustomDomain.js.map +1 -0
- package/dist/CustomDomainDashboard.js +2283 -0
- package/dist/CustomDomainDashboard.js.map +1 -0
- package/dist/{DateFormat/index.js → DateFormat.js} +25 -8
- package/dist/DateFormat.js.map +1 -0
- package/dist/DateRangeFilter.js +229 -0
- package/dist/DateRangeFilter.js.map +1 -0
- package/dist/DynamicVariables.js +183 -0
- package/dist/DynamicVariables.js.map +1 -0
- package/dist/EmailForm.js +2292 -0
- package/dist/EmailForm.js.map +1 -0
- package/dist/EmailPreview.js +1353 -0
- package/dist/EmailPreview.js.map +1 -0
- package/dist/{ErrorPage/constants.js → ErrorPage.js} +137 -36
- package/dist/ErrorPage.js.map +1 -0
- package/dist/Header.js +122 -0
- package/dist/Header.js.map +1 -0
- package/dist/IconPicker.js +313 -0
- package/dist/IconPicker.js.map +1 -0
- package/dist/ImageWithFallback.js +181 -0
- package/dist/ImageWithFallback.js.map +1 -0
- package/dist/IntegrationCard.js +343 -0
- package/dist/IntegrationCard.js.map +1 -0
- package/dist/IntegrationDisconnectAlert.js +80 -0
- package/dist/IntegrationDisconnectAlert.js.map +1 -0
- package/dist/{IntegrationWalkthroughModal/index.js → IntegrationWalkthroughModal.js} +8 -6
- package/dist/IntegrationWalkthroughModal.js.map +1 -0
- package/dist/IpRestriction.js +857 -0
- package/dist/IpRestriction.js.map +1 -0
- package/dist/KeyboardShortcuts.js +359 -0
- package/dist/KeyboardShortcuts.js.map +1 -0
- package/dist/LoginPage.js +593 -0
- package/dist/LoginPage.js.map +1 -0
- package/dist/MenuBar.js +1461 -0
- package/dist/MenuBar.js.map +1 -0
- package/dist/Metadata.js +206 -0
- package/dist/Metadata.js.map +1 -0
- package/dist/{MoreDropdown/index.js → MoreDropdown.js} +102 -9
- package/dist/MoreDropdown.js.map +1 -0
- package/dist/NavigationHeader.js +690 -0
- package/dist/NavigationHeader.js.map +1 -0
- package/dist/NeetoWidget.js +1333 -0
- package/dist/NeetoWidget.js.map +1 -0
- package/dist/PageLoader.js +134 -0
- package/dist/PageLoader.js.map +1 -0
- package/dist/PhoneNumber.js +365 -0
- package/dist/PhoneNumber.js.map +1 -0
- package/dist/PublishBlock.js +158 -0
- package/dist/PublishBlock.js.map +1 -0
- package/dist/Rename.js +450 -0
- package/dist/Rename.js.map +1 -0
- package/dist/ResponsiveDevicePicker.js +194 -0
- package/dist/ResponsiveDevicePicker.js.map +1 -0
- package/dist/Schedule.js +1046 -0
- package/dist/Schedule.js.map +1 -0
- package/dist/Scrollable.js +122 -0
- package/dist/Scrollable.js.map +1 -0
- package/dist/Search.js +151 -0
- package/dist/Search.js.map +1 -0
- package/dist/Security.js +1835 -0
- package/dist/Security.js.map +1 -0
- package/dist/SendToFields.js +601 -0
- package/dist/SendToFields.js.map +1 -0
- package/dist/Settings.js +435 -0
- package/dist/Settings.js.map +1 -0
- package/dist/ShareViaEmail.js +2277 -0
- package/dist/ShareViaEmail.js.map +1 -0
- package/dist/ShareViaLink.js +628 -0
- package/dist/ShareViaLink.js.map +1 -0
- package/dist/Sidebar.js +972 -0
- package/dist/Sidebar.js.map +1 -0
- package/dist/SubHeader.js +216 -0
- package/dist/SubHeader.js.map +1 -0
- package/dist/{TableWrapper/index.js → TableWrapper.js} +6 -3
- package/dist/TableWrapper.js.map +1 -0
- package/dist/ThemeSidebar.js +1984 -0
- package/dist/ThemeSidebar.js.map +1 -0
- package/dist/TimeFormat.js +47 -0
- package/dist/TimeFormat.js.map +1 -0
- package/dist/TimezoneMismatchModal.js +168 -0
- package/dist/TimezoneMismatchModal.js.map +1 -0
- package/dist/ToggleFeatureCard.js +323 -0
- package/dist/ToggleFeatureCard.js.map +1 -0
- package/package.json +22 -13
- package/dist/AutoSaveInput/autosaveinput.scss +0 -15
- package/dist/AutoSaveInput/constants.js +0 -13
- package/dist/AutoSaveInput/index.js +0 -124
- package/dist/AutoSaveInput/utils.js +0 -10
- package/dist/Breadcrumbs/breadcrumbs.scss +0 -33
- package/dist/Breadcrumbs/index.js +0 -31
- package/dist/BrowserSupport/Callout.js +0 -15
- package/dist/BrowserSupport/ContactUs.js +0 -21
- package/dist/BrowserSupport/DownloadLink.js +0 -17
- package/dist/BrowserSupport/PartialSupportedBrowserVersion.js +0 -17
- package/dist/BrowserSupport/UnknownBrowser.js +0 -13
- package/dist/BrowserSupport/UnsupportedBrowser.js +0 -24
- package/dist/BrowserSupport/UnsupportedBrowserMessage.js +0 -22
- package/dist/BrowserSupport/UnsupportedBrowserVersion.js +0 -27
- package/dist/BrowserSupport/UnsupportedVersionMessage.js +0 -30
- package/dist/BrowserSupport/browsersupport.scss +0 -71
- package/dist/BrowserSupport/constants.js +0 -63
- package/dist/BrowserSupport/index.js +0 -58
- package/dist/BrowserSupport/utils.js +0 -32
- package/dist/Builder/Body.js +0 -9
- package/dist/Builder/ElementsPanel/ElementsList/Element.js +0 -27
- package/dist/Builder/ElementsPanel/ElementsList/Section.js +0 -28
- package/dist/Builder/ElementsPanel/ElementsList/TitleBar.js +0 -28
- package/dist/Builder/ElementsPanel/ElementsList/index.js +0 -63
- package/dist/Builder/ElementsPanel/SelectedElementsList/SelectedElement.js +0 -73
- package/dist/Builder/ElementsPanel/SelectedElementsList/TitleBar.js +0 -50
- package/dist/Builder/ElementsPanel/SelectedElementsList/index.js +0 -91
- package/dist/Builder/ElementsPanel/index.js +0 -70
- package/dist/Builder/PropertiesPanel/EmptyProperty.js +0 -21
- package/dist/Builder/PropertiesPanel/Skeleton.js +0 -24
- package/dist/Builder/PropertiesPanel/index.js +0 -12
- package/dist/Builder/index.js +0 -3
- package/dist/Builder/styles.scss +0 -84
- package/dist/CalendarView/CustomDatePicker.js +0 -87
- package/dist/CalendarView/Header.js +0 -53
- package/dist/CalendarView/constants.js +0 -19
- package/dist/CalendarView/index.js +0 -83
- package/dist/CalendarView/utils.js +0 -50
- package/dist/Codeblock/index.js +0 -30
- package/dist/Columns/utils.js +0 -20
- package/dist/ConfirmationModal/constants.js +0 -3
- package/dist/ConfirmationModal/utils.js +0 -6
- package/dist/Container/container.scss +0 -21
- package/dist/Container/index.js +0 -23
- package/dist/CopyToClipboardButton/constants.js +0 -13
- package/dist/CopyToClipboardButton/copyToClipboard.scss +0 -22
- package/dist/CopyToClipboardButton/index.js +0 -59
- package/dist/CustomDomain/index.js +0 -98
- package/dist/CustomDomainDashboard/DeleteAlert.js +0 -28
- package/dist/CustomDomainDashboard/Header.js +0 -32
- package/dist/CustomDomainDashboard/Manage/Record.js +0 -42
- package/dist/CustomDomainDashboard/Manage/StatusInfo.js +0 -21
- package/dist/CustomDomainDashboard/Manage/TagBlock.js +0 -36
- package/dist/CustomDomainDashboard/Manage/constants.js +0 -4
- package/dist/CustomDomainDashboard/Manage/index.js +0 -125
- package/dist/CustomDomainDashboard/Manage/utils.js +0 -8
- package/dist/CustomDomainDashboard/api.js +0 -35
- package/dist/CustomDomainDashboard/constants.js +0 -2
- package/dist/CustomDomainDashboard/index.js +0 -118
- package/dist/CustomDomainDashboard/useCustomDomainApi.js +0 -71
- package/dist/CustomDomainDashboard/utils.js +0 -84
- package/dist/DateRangeFilter/index.js +0 -60
- package/dist/DateRangeFilter/utils.js +0 -113
- package/dist/DynamicVariables/dynamic-variables.scss +0 -34
- package/dist/DynamicVariables/index.js +0 -59
- package/dist/DynamicVariables/utils.js +0 -37
- package/dist/EmailForm/EmailForm.js +0 -98
- package/dist/EmailForm/EmailFormProvider.js +0 -45
- package/dist/EmailForm/EmailPreview.js +0 -129
- package/dist/EmailForm/ReplyToField.js +0 -55
- package/dist/EmailForm/SendToField.js +0 -28
- package/dist/EmailForm/SubjectField.js +0 -64
- package/dist/EmailForm/constants.js +0 -33
- package/dist/EmailForm/contexts/EmailForm.js +0 -7
- package/dist/EmailForm/index.js +0 -4
- package/dist/EmailForm/utils.js +0 -10
- package/dist/EmailPreview/index.js +0 -2
- package/dist/ErrorPage/index.js +0 -78
- package/dist/Header/Breadcrumbs.js +0 -31
- package/dist/Header/Dropdown.js +0 -12
- package/dist/Header/constants.js +0 -6
- package/dist/Header/header.scss +0 -121
- package/dist/Header/index.js +0 -61
- package/dist/IconPicker/Icon.js +0 -34
- package/dist/IconPicker/NoResults.js +0 -12
- package/dist/IconPicker/constants.js +0 -8
- package/dist/IconPicker/icon-picker.scss +0 -1
- package/dist/IconPicker/index.js +0 -164
- package/dist/ImageWithFallback/ImagePlaceholder.js +0 -16
- package/dist/ImageWithFallback/index.js +0 -31
- package/dist/IntegrationCard/Dropdown.js +0 -45
- package/dist/IntegrationCard/Status.js +0 -25
- package/dist/IntegrationCard/index.js +0 -128
- package/dist/IntegrationDisconnectAlert/index.js +0 -36
- package/dist/IpRestriction/AllowedIpRanges.js +0 -75
- package/dist/IpRestriction/CurrentIp.js +0 -26
- package/dist/IpRestriction/FormRow.js +0 -84
- package/dist/IpRestriction/Row.js +0 -91
- package/dist/IpRestriction/apis/allowed_ip_ranges.js +0 -28
- package/dist/IpRestriction/apis/current_ip.js +0 -11
- package/dist/IpRestriction/apis/ip_restriction.js +0 -16
- package/dist/IpRestriction/constants.js +0 -20
- package/dist/IpRestriction/hooks/reactQuery/useAllowedIpRanges.js +0 -34
- package/dist/IpRestriction/hooks/reactQuery/useCurrentIp.js +0 -10
- package/dist/IpRestriction/hooks/reactQuery/useIpRestrictions.js +0 -18
- package/dist/IpRestriction/index.js +0 -102
- package/dist/IpRestriction/utils.js +0 -85
- package/dist/KeyboardShortcuts/Pane/HotKey.js +0 -44
- package/dist/KeyboardShortcuts/Pane/HotKeyList.js +0 -42
- package/dist/KeyboardShortcuts/Pane/constants.js +0 -25
- package/dist/KeyboardShortcuts/Pane/index.js +0 -61
- package/dist/KeyboardShortcuts/Pane/keyboard-shortcuts.scss +0 -5
- package/dist/KeyboardShortcuts/Pane/utils.js +0 -66
- package/dist/KeyboardShortcuts/hooks/useKeyboardShortcutsPaneState.js +0 -31
- package/dist/KeyboardShortcuts/index.js +0 -9
- package/dist/LoginPage/Form.js +0 -57
- package/dist/LoginPage/constants.js +0 -12
- package/dist/LoginPage/index.js +0 -103
- package/dist/MenuBar/AddNew.js +0 -25
- package/dist/MenuBar/Block.js +0 -60
- package/dist/MenuBar/Item.js +0 -32
- package/dist/MenuBar/Search.js +0 -39
- package/dist/MenuBar/SubTitle.js +0 -23
- package/dist/MenuBar/index.js +0 -46
- package/dist/MenuBar/menubar.scss +0 -154
- package/dist/Metadata/Block.js +0 -30
- package/dist/Metadata/DetailsBlock.js +0 -86
- package/dist/Metadata/constants.js +0 -9
- package/dist/Metadata/index.js +0 -29
- package/dist/Metadata/metadata.scss +0 -15
- package/dist/MoreDropdown/constants.js +0 -25
- package/dist/NavigationHeader/LeftBlock.js +0 -32
- package/dist/NavigationHeader/Navigation.js +0 -24
- package/dist/NavigationHeader/RightBlock.js +0 -68
- package/dist/NavigationHeader/constants.js +0 -11
- package/dist/NavigationHeader/index.js +0 -19
- package/dist/NavigationHeader/navigation-header.scss +0 -3
- package/dist/NeetoWidget/CodeBlock.js +0 -57
- package/dist/NeetoWidget/CodeSnippet.js +0 -119
- package/dist/NeetoWidget/EmbedCode.js +0 -281
- package/dist/NeetoWidget/Main.js +0 -19
- package/dist/NeetoWidget/SelectionSwitches/TooltipSwitch.js +0 -25
- package/dist/NeetoWidget/SelectionSwitches/index.js +0 -44
- package/dist/NeetoWidget/SyntaxHighlighter.js +0 -17
- package/dist/NeetoWidget/api.js +0 -20
- package/dist/NeetoWidget/constants.js +0 -62
- package/dist/NeetoWidget/hooks/useForceUpdate.js +0 -14
- package/dist/NeetoWidget/index.js +0 -7
- package/dist/NeetoWidget/mutations.js +0 -9
- package/dist/NeetoWidget/queries.js +0 -32
- package/dist/NeetoWidget/utils.js +0 -83
- package/dist/PageLoader/index.js +0 -81
- package/dist/PageLoader/page-loader.scss +0 -95
- package/dist/PhoneNumber/CountryPicker/SingleValue.js +0 -21
- package/dist/PhoneNumber/CountryPicker/constants.js +0 -26
- package/dist/PhoneNumber/CountryPicker/index.js +0 -59
- package/dist/PhoneNumber/FormikPhoneNumberInput.js +0 -21
- package/dist/PhoneNumber/PhoneNumber.js +0 -30
- package/dist/PhoneNumber/PhoneNumberInput.js +0 -79
- package/dist/PhoneNumber/index.js +0 -5
- package/dist/PhoneNumber/utils.js +0 -55
- package/dist/PublishBlock/AlertBlock.js +0 -14
- package/dist/PublishBlock/index.js +0 -100
- package/dist/PublishBlock/publish-block.scss +0 -25
- package/dist/Rename/DummySpan.js +0 -21
- package/dist/Rename/constants.js +0 -1
- package/dist/Rename/index.js +0 -191
- package/dist/Rename/rename.scss +0 -69
- package/dist/Rename/utils.js +0 -10
- package/dist/ResponsiveDevicePicker/constants.js +0 -19
- package/dist/ResponsiveDevicePicker/index.js +0 -36
- package/dist/Schedule/DisplayAvailability.js +0 -58
- package/dist/Schedule/Fields.js +0 -43
- package/dist/Schedule/Form/ScheduleRow.js +0 -125
- package/dist/Schedule/Form/constants.js +0 -20
- package/dist/Schedule/Form/index.js +0 -144
- package/dist/Schedule/Form/utils.js +0 -63
- package/dist/Schedule/Header.js +0 -76
- package/dist/Schedule/ScheduleContext.js +0 -8
- package/dist/Schedule/constants.js +0 -8
- package/dist/Schedule/dayjsExtended/constants.js +0 -1
- package/dist/Schedule/dayjsExtended/index.js +0 -14
- package/dist/Schedule/dayjsExtended/range.js +0 -73
- package/dist/Schedule/index.js +0 -80
- package/dist/Schedule/utils.js +0 -152
- package/dist/Scrollable/constants.js +0 -8
- package/dist/Scrollable/index.js +0 -26
- package/dist/Scrollable/scrollable.scss +0 -32
- package/dist/Search/index.js +0 -52
- package/dist/Security/AllowedKeywords/Add.js +0 -38
- package/dist/Security/AllowedKeywords/index.js +0 -38
- package/dist/Security/PasswordBlock.js +0 -31
- package/dist/Security/RadioBlock.js +0 -38
- package/dist/Security/api.js +0 -12
- package/dist/Security/constants.js +0 -58
- package/dist/Security/index.js +0 -68
- package/dist/Security/useSecurityApi.js +0 -22
- package/dist/Security/utils.js +0 -31
- package/dist/SendToFields/FilePicker.js +0 -34
- package/dist/SendToFields/constants.js +0 -6
- package/dist/SendToFields/index.js +0 -102
- package/dist/SendToFields/utils.js +0 -54
- package/dist/Settings/Category.js +0 -30
- package/dist/Settings/Item.js +0 -38
- package/dist/Settings/index.js +0 -37
- package/dist/Settings/utils.js +0 -4
- package/dist/ShareViaEmail/EmailBodyEditor.js +0 -22
- package/dist/ShareViaEmail/FilePicker.js +0 -43
- package/dist/ShareViaEmail/Form.js +0 -105
- package/dist/ShareViaEmail/FormikDatePicker.js +0 -24
- package/dist/ShareViaEmail/constants.js +0 -14
- package/dist/ShareViaEmail/index.js +0 -92
- package/dist/ShareViaEmail/utils.js +0 -72
- package/dist/ShareViaLink/EditURL.js +0 -74
- package/dist/ShareViaLink/Link.js +0 -105
- package/dist/ShareViaLink/QRCode.js +0 -41
- package/dist/ShareViaLink/RegenerateURL.js +0 -47
- package/dist/ShareViaLink/SocialMedia.js +0 -52
- package/dist/ShareViaLink/constants.js +0 -25
- package/dist/ShareViaLink/edit-url.scss +0 -8
- package/dist/ShareViaLink/index.js +0 -46
- package/dist/ShareViaLink/utils.js +0 -47
- package/dist/Sidebar/AppSwitcher/AppLink.js +0 -45
- package/dist/Sidebar/AppSwitcher/Backdrop.js +0 -13
- package/dist/Sidebar/AppSwitcher/Body.js +0 -65
- package/dist/Sidebar/AppSwitcher/Portal.js +0 -27
- package/dist/Sidebar/AppSwitcher/appswitcher.scss +0 -164
- package/dist/Sidebar/AppSwitcher/index.js +0 -47
- package/dist/Sidebar/AppSwitcher/utils.js +0 -25
- package/dist/Sidebar/Chevron.js +0 -14
- package/dist/Sidebar/FeaturedTooltip.js +0 -19
- package/dist/Sidebar/Footer/AppSwitcherButton.js +0 -48
- package/dist/Sidebar/Footer/ProfileButton.js +0 -30
- package/dist/Sidebar/Footer/index.js +0 -56
- package/dist/Sidebar/Footer/utils.js +0 -39
- package/dist/Sidebar/Header.js +0 -33
- package/dist/Sidebar/HelpSection/HelpSectionMenu.js +0 -52
- package/dist/Sidebar/HelpSection/index.js +0 -32
- package/dist/Sidebar/Links.js +0 -112
- package/dist/Sidebar/NavIconWrapper.js +0 -20
- package/dist/Sidebar/ProfileSection/LinkSection.js +0 -36
- package/dist/Sidebar/ProfileSection/ProfileMenu.js +0 -48
- package/dist/Sidebar/ProfileSection/index.js +0 -42
- package/dist/Sidebar/constants.js +0 -40
- package/dist/Sidebar/index.js +0 -94
- package/dist/Sidebar/sidebar.scss +0 -379
- package/dist/Sidebar/utils.js +0 -18
- package/dist/SubHeader/RightBlock/Columns.js +0 -35
- package/dist/SubHeader/RightBlock/Download.js +0 -28
- package/dist/SubHeader/RightBlock/Filter.js +0 -31
- package/dist/SubHeader/RightBlock/index.js +0 -21
- package/dist/SubHeader/RightBlock/utils.js +0 -13
- package/dist/SubHeader/index.js +0 -28
- package/dist/SubHeader/subheader.scss +0 -78
- package/dist/ThemeSidebar/Customize/Logo.js +0 -39
- package/dist/ThemeSidebar/Customize/Properties.js +0 -170
- package/dist/ThemeSidebar/Customize/index.js +0 -66
- package/dist/ThemeSidebar/Themes/ThemeCard.js +0 -135
- package/dist/ThemeSidebar/Themes/index.js +0 -110
- package/dist/ThemeSidebar/TitleBar.js +0 -62
- package/dist/ThemeSidebar/constants.js +0 -127
- package/dist/ThemeSidebar/fields/AlignmentBlock.js +0 -50
- package/dist/ThemeSidebar/fields/Card.js +0 -19
- package/dist/ThemeSidebar/fields/ColorBlock.js +0 -19
- package/dist/ThemeSidebar/fields/FontPickerBlock.js +0 -35
- package/dist/ThemeSidebar/fields/ImageBlock/ImageUploader.js +0 -67
- package/dist/ThemeSidebar/fields/ImageBlock/ProgressBar.js +0 -22
- package/dist/ThemeSidebar/fields/ImageBlock/index.js +0 -55
- package/dist/ThemeSidebar/fields/SelectBlock.js +0 -24
- package/dist/ThemeSidebar/fields/SliderBlock.js +0 -30
- package/dist/ThemeSidebar/fields/SwitchBlock.js +0 -17
- package/dist/ThemeSidebar/fields/TextBlock.js +0 -13
- package/dist/ThemeSidebar/fields/slider.scss +0 -199
- package/dist/ThemeSidebar/hooks/useDirectUploadDropzone.js +0 -149
- package/dist/ThemeSidebar/index.js +0 -118
- package/dist/ThemeSidebar/themeSidebar.scss +0 -45
- package/dist/ThemeSidebar/utils.js +0 -169
- package/dist/TimeFormat/index.js +0 -3
- package/dist/TimezoneMismatchModal/apis/time_zone.js +0 -9
- package/dist/TimezoneMismatchModal/index.js +0 -83
- package/dist/TimezoneMismatchModal/useTimeZoneApi.js +0 -10
- package/dist/TimezoneMismatchModal/utils.js +0 -12
- package/dist/ToggleFeatureCard/ToolTipSwitch.js +0 -31
- package/dist/ToggleFeatureCard/constants.js +0 -5
- package/dist/ToggleFeatureCard/hooks/useScrollIntoView.js +0 -11
- package/dist/ToggleFeatureCard/index.js +0 -148
- package/dist/ToggleFeatureCard/toggleFeatureCard.scss +0 -4
|
@@ -0,0 +1,857 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import React__default, { useState } from 'react';
|
|
3
|
+
import { useStateWithDependency } from '@bigbinary/neeto-commons-frontend/react-utils';
|
|
4
|
+
import { Check, Close, MenuVertical, MenuHorizontal, Warning } from '@bigbinary/neeto-icons';
|
|
5
|
+
import { Typography, Button as Button$1, Dropdown, Tooltip, Alert, Checkbox, Callout } from '@bigbinary/neetoui';
|
|
6
|
+
import { useTranslation, Trans } from 'react-i18next';
|
|
7
|
+
import { t as t$1 } from 'i18next';
|
|
8
|
+
import { Form, Input, Select, Button } from '@bigbinary/neetoui/formik';
|
|
9
|
+
import { isNil, isNotNil, assoc, mergeRight } from 'ramda';
|
|
10
|
+
import { useQuery, useQueryClient, useMutation } from 'react-query';
|
|
11
|
+
import axios from 'axios';
|
|
12
|
+
import { Validator, IPv4, IPv6 } from 'ip-num';
|
|
13
|
+
import * as yup from 'yup';
|
|
14
|
+
import { truncate } from '@bigbinary/neeto-commons-frontend/pure';
|
|
15
|
+
|
|
16
|
+
function _arrayWithHoles(arr) {
|
|
17
|
+
if (Array.isArray(arr)) return arr;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function _iterableToArrayLimit(arr, i) {
|
|
21
|
+
var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
|
|
22
|
+
if (null != _i) {
|
|
23
|
+
var _s,
|
|
24
|
+
_e,
|
|
25
|
+
_x,
|
|
26
|
+
_r,
|
|
27
|
+
_arr = [],
|
|
28
|
+
_n = !0,
|
|
29
|
+
_d = !1;
|
|
30
|
+
try {
|
|
31
|
+
if (_x = (_i = _i.call(arr)).next, 0 === i) {
|
|
32
|
+
if (Object(_i) !== _i) return;
|
|
33
|
+
_n = !1;
|
|
34
|
+
} else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
|
|
35
|
+
} catch (err) {
|
|
36
|
+
_d = !0, _e = err;
|
|
37
|
+
} finally {
|
|
38
|
+
try {
|
|
39
|
+
if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return;
|
|
40
|
+
} finally {
|
|
41
|
+
if (_d) throw _e;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return _arr;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function _arrayLikeToArray(arr, len) {
|
|
49
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
50
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
51
|
+
return arr2;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
55
|
+
if (!o) return;
|
|
56
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
57
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
58
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
59
|
+
if (n === "Map" || n === "Set") return Array.from(o);
|
|
60
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function _nonIterableRest() {
|
|
64
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function _slicedToArray(arr, i) {
|
|
68
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
function _extends$1() {
|
|
72
|
+
_extends$1 = Object.assign ? Object.assign.bind() : function (target) {
|
|
73
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
74
|
+
var source = arguments[i];
|
|
75
|
+
for (var key in source) {
|
|
76
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
77
|
+
target[key] = source[key];
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return target;
|
|
82
|
+
};
|
|
83
|
+
return _extends$1.apply(this, arguments);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
87
|
+
if (source == null) return {};
|
|
88
|
+
var target = {};
|
|
89
|
+
var sourceKeys = Object.keys(source);
|
|
90
|
+
var key, i;
|
|
91
|
+
for (i = 0; i < sourceKeys.length; i++) {
|
|
92
|
+
key = sourceKeys[i];
|
|
93
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
94
|
+
target[key] = source[key];
|
|
95
|
+
}
|
|
96
|
+
return target;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
function _objectWithoutProperties(source, excluded) {
|
|
100
|
+
if (source == null) return {};
|
|
101
|
+
var target = _objectWithoutPropertiesLoose(source, excluded);
|
|
102
|
+
var key, i;
|
|
103
|
+
if (Object.getOwnPropertySymbols) {
|
|
104
|
+
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
|
|
105
|
+
for (i = 0; i < sourceSymbolKeys.length; i++) {
|
|
106
|
+
key = sourceSymbolKeys[i];
|
|
107
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
108
|
+
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
|
|
109
|
+
target[key] = source[key];
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return target;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
var _path, _path2, _g, _defs;
|
|
116
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
117
|
+
var SvgNeeto = function SvgNeeto(props) {
|
|
118
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
119
|
+
width: 50,
|
|
120
|
+
height: 50,
|
|
121
|
+
viewBox: "0 0 415 415",
|
|
122
|
+
fill: "none",
|
|
123
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
124
|
+
}, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
|
|
125
|
+
d: "M414.989 207.495C414.989 92.899 322.091 0 207.495 0H0v414.989h414.989V207.495Z",
|
|
126
|
+
fill: "#0043AC"
|
|
127
|
+
})), /*#__PURE__*/React.createElement("mask", {
|
|
128
|
+
id: "neeto_svg__a",
|
|
129
|
+
style: {
|
|
130
|
+
maskType: "alpha"
|
|
131
|
+
},
|
|
132
|
+
maskUnits: "userSpaceOnUse",
|
|
133
|
+
x: 0,
|
|
134
|
+
y: 0,
|
|
135
|
+
width: 415,
|
|
136
|
+
height: 415
|
|
137
|
+
}, _path2 || (_path2 = /*#__PURE__*/React.createElement("path", {
|
|
138
|
+
d: "M414.989 207.495C414.989 92.899 322.091 0 207.495 0H0v414.989h414.989V207.495Z",
|
|
139
|
+
fill: "#0043AC"
|
|
140
|
+
}))), _g || (_g = /*#__PURE__*/React.createElement("g", {
|
|
141
|
+
mask: "url(#neeto_svg__a)"
|
|
142
|
+
}, /*#__PURE__*/React.createElement("path", {
|
|
143
|
+
d: "M233.747 348.74c88.579 101.145 172.015 116.411 202.661 111.401v32.491H-8.032V230.487c43.685-2.726 153.2 17.108 241.779 118.253Z",
|
|
144
|
+
fill: "url(#neeto_svg__b)"
|
|
145
|
+
}))), _defs || (_defs = /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("radialGradient", {
|
|
146
|
+
id: "neeto_svg__b",
|
|
147
|
+
cx: 0,
|
|
148
|
+
cy: 0,
|
|
149
|
+
r: 1,
|
|
150
|
+
gradientUnits: "userSpaceOnUse",
|
|
151
|
+
gradientTransform: "rotate(47.118 -220.556 214.818) scale(427.964 725.049)"
|
|
152
|
+
}, /*#__PURE__*/React.createElement("stop", {
|
|
153
|
+
stopColor: "#0043AC"
|
|
154
|
+
}), /*#__PURE__*/React.createElement("stop", {
|
|
155
|
+
offset: 1,
|
|
156
|
+
stopColor: "#3DB1CA",
|
|
157
|
+
stopOpacity: 0.8
|
|
158
|
+
})))));
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
|
|
162
|
+
|
|
163
|
+
var css = ".neeto-molecules-pageloader__wrapper{height:100%;position:relative;width:100%}.neeto-molecules-pageloader__wrapper .neeto-molecules-pageloader{height:100%;left:0;position:absolute;top:0;width:100%}.neeto-molecules-pageloader__wrapper .neeto-molecules-pageloader__content{height:66px;margin-bottom:16px;overflow:hidden;padding:8px;position:relative;width:66px}.neeto-molecules-pageloader__wrapper .neeto-molecules-pageloader__text{color:rgb(var(--neeto-ui-gray-800));font-size:1.25rem;line-height:1.75rem;margin-bottom:4rem;text-align:center}.neeto-molecules-pageloader__spinner{display:flex;gap:2px;height:25px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.neeto-molecules-pageloader__spinner>div{animation:neeto-ui-stretch-delay 1.2s ease-in-out infinite;background-color:#fff;border-radius:2px;display:inline-flex;height:100%;width:2px}.neeto-molecules-pageloader__spinner .neeto-molecules-pageloader__rect2{animation-delay:-1.1s}.neeto-molecules-pageloader__spinner .neeto-molecules-pageloader__rect3{animation-delay:-1s}.neeto-molecules-pageloader__spinner .neeto-molecules-pageloader__rect4{animation-delay:-.9s}.neeto-molecules-pageloader__spinner .neeto-molecules-pageloader__rect5{animation-delay:-.8s}@keyframes neeto-ui-stretch-delay{0%,40%,to{transform:scaleY(.4);-webkit-transform:scaleY(.4)}20%{transform:scaleY(1);-webkit-transform:scaleY(1)}}";
|
|
164
|
+
n(css,{});
|
|
165
|
+
|
|
166
|
+
var _excluded$1 = ["text"];
|
|
167
|
+
var PageLoader = function PageLoader(_ref) {
|
|
168
|
+
var _ref$text = _ref.text,
|
|
169
|
+
text = _ref$text === void 0 ? "" : _ref$text,
|
|
170
|
+
otherProps = _objectWithoutProperties(_ref, _excluded$1);
|
|
171
|
+
return /*#__PURE__*/React__default.createElement("div", _extends$1({
|
|
172
|
+
className: "neeto-molecules-pageloader__wrapper"
|
|
173
|
+
}, otherProps), /*#__PURE__*/React__default.createElement("div", {
|
|
174
|
+
className: "neeto-molecules-pageloader neeto-ui-flex neeto-ui-flex-col neeto-ui-items-center neeto-ui-justify-center"
|
|
175
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
176
|
+
className: "neeto-molecules-pageloader__content neeto-ui-flex neeto-ui-flex-shrink-0 neeto-ui-items-center neeto-ui-justify-center"
|
|
177
|
+
}, /*#__PURE__*/React__default.createElement(SvgNeeto, {
|
|
178
|
+
className: "neeto-molecules-pageloader__logo",
|
|
179
|
+
size: 50
|
|
180
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
181
|
+
className: "neeto-molecules-pageloader__spinner"
|
|
182
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
183
|
+
className: "neeto-molecules-pageloader__rect1"
|
|
184
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
185
|
+
className: "neeto-molecules-pageloader__rect2"
|
|
186
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
187
|
+
className: "neeto-molecules-pageloader__rect3"
|
|
188
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
189
|
+
className: "neeto-molecules-pageloader__rect4"
|
|
190
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
191
|
+
className: "neeto-molecules-pageloader__rect5"
|
|
192
|
+
}))), text && /*#__PURE__*/React__default.createElement(Typography, {
|
|
193
|
+
style: "h5",
|
|
194
|
+
weight: "semibold"
|
|
195
|
+
}, text)));
|
|
196
|
+
};
|
|
197
|
+
var PageLoader$1 = /*#__PURE__*/React__default.memo(PageLoader);
|
|
198
|
+
|
|
199
|
+
var IP_RESTRICTIONS_ENGINE_BASE_URL = "ip_restrictions/api/v1";
|
|
200
|
+
var QUERY_KEYS = {
|
|
201
|
+
IP_RESTRICTION: "IP_RESTRICTION",
|
|
202
|
+
ALLOWED_IP_RANGES: "ALLOWED_IP_RANGES",
|
|
203
|
+
CURRENT_IP: "CURRENT_IP"
|
|
204
|
+
};
|
|
205
|
+
var TRUNCATE_LENGTH = 18;
|
|
206
|
+
var ADDRESS_TYPE_SELECT_OPTIONS = [{
|
|
207
|
+
label: t$1("neetoMolecules.ipRestriction.ipv4"),
|
|
208
|
+
value: "ipv4"
|
|
209
|
+
}, {
|
|
210
|
+
label: t$1("neetoMolecules.ipRestriction.ipv6"),
|
|
211
|
+
value: "ipv6"
|
|
212
|
+
}];
|
|
213
|
+
var INITIAL_VALUES = {
|
|
214
|
+
ipStart: "",
|
|
215
|
+
ipEnd: "",
|
|
216
|
+
addressType: ADDRESS_TYPE_SELECT_OPTIONS[0].value
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
var allowedIpRangesUrl = "".concat(IP_RESTRICTIONS_ENGINE_BASE_URL, "/allowed_ips");
|
|
220
|
+
var fetch = function fetch() {
|
|
221
|
+
return axios.get(allowedIpRangesUrl);
|
|
222
|
+
};
|
|
223
|
+
var create = function create(payload) {
|
|
224
|
+
return axios.post(allowedIpRangesUrl, {
|
|
225
|
+
allowedIpRange: payload
|
|
226
|
+
});
|
|
227
|
+
};
|
|
228
|
+
var destroy = function destroy(id) {
|
|
229
|
+
return axios["delete"]("".concat(allowedIpRangesUrl, "/").concat(id));
|
|
230
|
+
};
|
|
231
|
+
var update$1 = function update(_ref) {
|
|
232
|
+
var id = _ref.id,
|
|
233
|
+
payload = _ref.payload;
|
|
234
|
+
return axios.patch("".concat(allowedIpRangesUrl, "/").concat(id), {
|
|
235
|
+
allowedIpRange: payload
|
|
236
|
+
});
|
|
237
|
+
};
|
|
238
|
+
var allowedIpRangesApi = {
|
|
239
|
+
fetch: fetch,
|
|
240
|
+
create: create,
|
|
241
|
+
destroy: destroy,
|
|
242
|
+
update: update$1
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
var ALLOWED_IP_RANGES = QUERY_KEYS.ALLOWED_IP_RANGES;
|
|
246
|
+
var useFetchAllowedIpRanges = function useFetchAllowedIpRanges() {
|
|
247
|
+
return useQuery([ALLOWED_IP_RANGES], function () {
|
|
248
|
+
return allowedIpRangesApi.fetch();
|
|
249
|
+
});
|
|
250
|
+
};
|
|
251
|
+
var useCreateAllowedIpRanges = function useCreateAllowedIpRanges() {
|
|
252
|
+
var queryClient = useQueryClient();
|
|
253
|
+
return useMutation(allowedIpRangesApi.create, {
|
|
254
|
+
onSuccess: function onSuccess() {
|
|
255
|
+
return queryClient.invalidateQueries(ALLOWED_IP_RANGES);
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
};
|
|
259
|
+
var useDestroyAllowedIpRanges = function useDestroyAllowedIpRanges() {
|
|
260
|
+
var queryClient = useQueryClient();
|
|
261
|
+
return useMutation(allowedIpRangesApi.destroy, {
|
|
262
|
+
onSuccess: function onSuccess() {
|
|
263
|
+
queryClient.invalidateQueries(ALLOWED_IP_RANGES);
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
};
|
|
267
|
+
var useUpdateAllowedIpRanges = function useUpdateAllowedIpRanges() {
|
|
268
|
+
var queryClient = useQueryClient();
|
|
269
|
+
return useMutation(allowedIpRangesApi.update, {
|
|
270
|
+
onSuccess: function onSuccess() {
|
|
271
|
+
queryClient.invalidateQueries(ALLOWED_IP_RANGES);
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
};
|
|
275
|
+
|
|
276
|
+
var isValidIPv4String = function isValidIPv4String(ip) {
|
|
277
|
+
return isNotNil(ip) && Validator.isValidIPv4String(ip)[0];
|
|
278
|
+
};
|
|
279
|
+
var isValidIPv6String = function isValidIPv6String(ip) {
|
|
280
|
+
return isNotNil(ip) && Validator.isValidIPv6String(ip)[0];
|
|
281
|
+
};
|
|
282
|
+
var isValidIpString = function isValidIpString(ip) {
|
|
283
|
+
return isValidIPv4String(ip) || isValidIPv6String(ip);
|
|
284
|
+
};
|
|
285
|
+
var areIpAddressesInSameFormat = function areIpAddressesInSameFormat(ipStart, ipEnd) {
|
|
286
|
+
return isValidIPv4String(ipStart) && isValidIPv4String(ipEnd) || isValidIPv6String(ipStart) && isValidIPv6String(ipEnd);
|
|
287
|
+
};
|
|
288
|
+
var isValidIPv4Range = function isValidIPv4Range(ipStart, ipEnd) {
|
|
289
|
+
var ipStartAddr = IPv4.fromDecimalDottedString(ipStart);
|
|
290
|
+
var ipEndAddr = IPv4.fromDecimalDottedString(ipEnd);
|
|
291
|
+
return ipStartAddr.isLessThanOrEquals(ipEndAddr);
|
|
292
|
+
};
|
|
293
|
+
var isValidIPv6Range = function isValidIPv6Range(ipStart, ipEnd) {
|
|
294
|
+
var ipStartAddr = IPv6.fromString(ipStart);
|
|
295
|
+
var ipEndAddr = IPv6.fromString(ipEnd);
|
|
296
|
+
return ipStartAddr.isLessThanOrEquals(ipEndAddr);
|
|
297
|
+
};
|
|
298
|
+
var isValidIPRange = function isValidIPRange(ipStart, ipEnd) {
|
|
299
|
+
if (isValidIPv4String(ipStart) && isValidIPv4String(ipEnd)) {
|
|
300
|
+
return isValidIPv4Range(ipStart, ipEnd);
|
|
301
|
+
}
|
|
302
|
+
if (isValidIPv6String(ipStart) && isValidIPv6String(ipEnd)) {
|
|
303
|
+
return isValidIPv6Range(ipStart, ipEnd);
|
|
304
|
+
}
|
|
305
|
+
return false;
|
|
306
|
+
};
|
|
307
|
+
yup.addMethod(yup.string, "validIp", function (errorMessage) {
|
|
308
|
+
return this.test("valid-ip", errorMessage, function (value) {
|
|
309
|
+
if (isNil(value)) {
|
|
310
|
+
return this;
|
|
311
|
+
}
|
|
312
|
+
var isValidIp = isValidIpString(value);
|
|
313
|
+
return isValidIp || this.createError({
|
|
314
|
+
path: this.path,
|
|
315
|
+
message: errorMessage
|
|
316
|
+
});
|
|
317
|
+
});
|
|
318
|
+
});
|
|
319
|
+
var getIpRestrictionValidationSchema = function getIpRestrictionValidationSchema() {
|
|
320
|
+
return yup.object().shape({
|
|
321
|
+
ipStart: yup.string().validIp(t$1("neetoMolecules.ipRestriction.validations.invalidIp")).required(t$1("neetoMolecules.ipRestriction.validations.ipStartRequired")),
|
|
322
|
+
ipEnd: yup.string().validIp(t$1("neetoMolecules.ipRestriction.validations.invalidIp")).when("ipStart", function (ipStart, schema) {
|
|
323
|
+
return schema.test({
|
|
324
|
+
test: function test(ipEnd) {
|
|
325
|
+
return areIpAddressesInSameFormat(ipStart, ipEnd);
|
|
326
|
+
},
|
|
327
|
+
message: t$1("neetoMolecules.ipRestriction.validations.eitherIpv4OrIpv6")
|
|
328
|
+
});
|
|
329
|
+
}).when("ipStart", function (ipStart, schema) {
|
|
330
|
+
return schema.test({
|
|
331
|
+
test: function test(ipEnd) {
|
|
332
|
+
return isValidIPRange(ipStart, ipEnd);
|
|
333
|
+
},
|
|
334
|
+
message: t$1("neetoMolecules.ipRestriction.validations.ipEndGreaterThanIpStart")
|
|
335
|
+
});
|
|
336
|
+
}).required(t$1("neetoMolecules.ipRestriction.validations.ipEndRequired")),
|
|
337
|
+
addressType: yup.object().shape({
|
|
338
|
+
value: yup.string().required(),
|
|
339
|
+
label: yup.string().required()
|
|
340
|
+
}).nullable().required(t$1("neetoMolecules.ipRestriction.validations.addressTypeRequired"))
|
|
341
|
+
});
|
|
342
|
+
};
|
|
343
|
+
var humanizeIpAddressFormat = function humanizeIpAddressFormat(addressFormat) {
|
|
344
|
+
var addressFormats = {
|
|
345
|
+
ipv4: "IPv4",
|
|
346
|
+
ipv6: "IPv6"
|
|
347
|
+
};
|
|
348
|
+
return addressFormats[addressFormat];
|
|
349
|
+
};
|
|
350
|
+
var buildInitialValue = function buildInitialValue(values) {
|
|
351
|
+
var labelAndValue = {
|
|
352
|
+
label: humanizeIpAddressFormat(values.addressType),
|
|
353
|
+
value: values.addressType
|
|
354
|
+
};
|
|
355
|
+
return assoc("addressType", labelAndValue, values);
|
|
356
|
+
};
|
|
357
|
+
|
|
358
|
+
var FormRow = function FormRow(_ref) {
|
|
359
|
+
var data = _ref.data,
|
|
360
|
+
isAddNew = _ref.isAddNew,
|
|
361
|
+
onCollapse = _ref.onCollapse;
|
|
362
|
+
var _useCreateAllowedIpRa = useCreateAllowedIpRanges(),
|
|
363
|
+
createAllowedIpRange = _useCreateAllowedIpRa.mutate;
|
|
364
|
+
var _useUpdateAllowedIpRa = useUpdateAllowedIpRanges(),
|
|
365
|
+
updateAllowedIpRange = _useUpdateAllowedIpRa.mutate;
|
|
366
|
+
var _useTranslation = useTranslation(),
|
|
367
|
+
t = _useTranslation.t;
|
|
368
|
+
var handleSubmit = function handleSubmit(values) {
|
|
369
|
+
var payload = assoc("addressType", values.addressType.value, values);
|
|
370
|
+
if (isAddNew) {
|
|
371
|
+
createAllowedIpRange(payload);
|
|
372
|
+
} else {
|
|
373
|
+
updateAllowedIpRange({
|
|
374
|
+
id: data.id,
|
|
375
|
+
payload: payload
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
onCollapse();
|
|
379
|
+
};
|
|
380
|
+
return /*#__PURE__*/React__default.createElement(Form, {
|
|
381
|
+
"data-cy": "allowed-ip-range-form",
|
|
382
|
+
formikProps: {
|
|
383
|
+
initialValues: buildInitialValue(data),
|
|
384
|
+
validationSchema: getIpRestrictionValidationSchema(),
|
|
385
|
+
onSubmit: handleSubmit
|
|
386
|
+
}
|
|
387
|
+
}, function (_ref2) {
|
|
388
|
+
var isSubmitting = _ref2.isSubmitting;
|
|
389
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
390
|
+
className: "neeto-ui-bg-white neeto-ui-rounded-lg grid grid-cols-12 gap-4 p-3"
|
|
391
|
+
}, /*#__PURE__*/React__default.createElement(Input, {
|
|
392
|
+
autoFocus: true,
|
|
393
|
+
className: "col-span-4 text-left",
|
|
394
|
+
"data-cy": "ip-start-text-field",
|
|
395
|
+
name: "ipStart",
|
|
396
|
+
placeholder: t("neetoMolecules.ipRestriction.ipStart")
|
|
397
|
+
}), /*#__PURE__*/React__default.createElement(Input, {
|
|
398
|
+
className: "col-span-4 text-left",
|
|
399
|
+
"data-cy": "ip-end-text-field",
|
|
400
|
+
name: "ipEnd",
|
|
401
|
+
placeholder: t("neetoMolecules.ipRestriction.ipEnd")
|
|
402
|
+
}), /*#__PURE__*/React__default.createElement(Select, {
|
|
403
|
+
className: "col-span-2 text-left",
|
|
404
|
+
name: "addressType",
|
|
405
|
+
options: ADDRESS_TYPE_SELECT_OPTIONS
|
|
406
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
407
|
+
className: "col-span-2 flex items-start justify-center gap-1"
|
|
408
|
+
}, /*#__PURE__*/React__default.createElement(Button, {
|
|
409
|
+
"data-cy": "save-changes-button",
|
|
410
|
+
"data-testid": "save-changes-button",
|
|
411
|
+
disabled: isSubmitting,
|
|
412
|
+
icon: Check,
|
|
413
|
+
style: "text",
|
|
414
|
+
tooltipProps: {
|
|
415
|
+
content: "Submit",
|
|
416
|
+
position: "top"
|
|
417
|
+
},
|
|
418
|
+
type: "submit"
|
|
419
|
+
}), /*#__PURE__*/React__default.createElement(Button$1, {
|
|
420
|
+
"data-cy": "ip-cancel-button",
|
|
421
|
+
icon: Close,
|
|
422
|
+
style: "text",
|
|
423
|
+
type: "reset",
|
|
424
|
+
tooltipProps: {
|
|
425
|
+
content: t("neetoMolecules.common.actions.cancel"),
|
|
426
|
+
position: "top"
|
|
427
|
+
},
|
|
428
|
+
onClick: onCollapse
|
|
429
|
+
})));
|
|
430
|
+
});
|
|
431
|
+
};
|
|
432
|
+
|
|
433
|
+
function _typeof(obj) {
|
|
434
|
+
"@babel/helpers - typeof";
|
|
435
|
+
|
|
436
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
|
|
437
|
+
return typeof obj;
|
|
438
|
+
} : function (obj) {
|
|
439
|
+
return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
|
|
440
|
+
}, _typeof(obj);
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
function _toPrimitive(input, hint) {
|
|
444
|
+
if (_typeof(input) !== "object" || input === null) return input;
|
|
445
|
+
var prim = input[Symbol.toPrimitive];
|
|
446
|
+
if (prim !== undefined) {
|
|
447
|
+
var res = prim.call(input, hint || "default");
|
|
448
|
+
if (_typeof(res) !== "object") return res;
|
|
449
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
450
|
+
}
|
|
451
|
+
return (hint === "string" ? String : Number)(input);
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
function _toPropertyKey(arg) {
|
|
455
|
+
var key = _toPrimitive(arg, "string");
|
|
456
|
+
return _typeof(key) === "symbol" ? key : String(key);
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
function _defineProperty(obj, key, value) {
|
|
460
|
+
key = _toPropertyKey(key);
|
|
461
|
+
if (key in obj) {
|
|
462
|
+
Object.defineProperty(obj, key, {
|
|
463
|
+
value: value,
|
|
464
|
+
enumerable: true,
|
|
465
|
+
configurable: true,
|
|
466
|
+
writable: true
|
|
467
|
+
});
|
|
468
|
+
} else {
|
|
469
|
+
obj[key] = value;
|
|
470
|
+
}
|
|
471
|
+
return obj;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
var MENU_ITEM_TYPES = {
|
|
475
|
+
menuItem: "menuItem",
|
|
476
|
+
divider: "divider"
|
|
477
|
+
};
|
|
478
|
+
var DEFAULT_TOOLTIP_PROPS = {
|
|
479
|
+
disabled: true,
|
|
480
|
+
position: "bottom"
|
|
481
|
+
};
|
|
482
|
+
|
|
483
|
+
var _excluded = ["key", "onClick", "label", "type", "isVisible"];
|
|
484
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
485
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
486
|
+
var Menu = Dropdown.Menu,
|
|
487
|
+
MenuItem = Dropdown.MenuItem,
|
|
488
|
+
Divider = Dropdown.Divider;
|
|
489
|
+
var MoreDropdown = function MoreDropdown(_ref) {
|
|
490
|
+
var _ref$dropdownButtonPr = _ref.dropdownButtonProps,
|
|
491
|
+
dropdownButtonProps = _ref$dropdownButtonPr === void 0 ? {} : _ref$dropdownButtonPr,
|
|
492
|
+
_ref$isVertical = _ref.isVertical,
|
|
493
|
+
isVertical = _ref$isVertical === void 0 ? false : _ref$isVertical,
|
|
494
|
+
_ref$isDisabled = _ref.isDisabled,
|
|
495
|
+
isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
|
|
496
|
+
_ref$dropdownProps = _ref.dropdownProps,
|
|
497
|
+
dropdownProps = _ref$dropdownProps === void 0 ? {} : _ref$dropdownProps,
|
|
498
|
+
menuTopChildren = _ref.menuTopChildren,
|
|
499
|
+
menuBottomChildren = _ref.menuBottomChildren,
|
|
500
|
+
_ref$menuItems = _ref.menuItems,
|
|
501
|
+
menuItems = _ref$menuItems === void 0 ? [] : _ref$menuItems;
|
|
502
|
+
var tooltipProps = mergeRight(DEFAULT_TOOLTIP_PROPS, dropdownButtonProps.tooltipProps);
|
|
503
|
+
var targetIcon = isVertical ? MenuVertical : MenuHorizontal;
|
|
504
|
+
var isDropdownDisabled = isDisabled || dropdownProps.disabled;
|
|
505
|
+
if (isDropdownDisabled && !tooltipProps.disabled) {
|
|
506
|
+
return /*#__PURE__*/React__default.createElement(Tooltip, tooltipProps, /*#__PURE__*/React__default.createElement("span", null, /*#__PURE__*/React__default.createElement(Button$1, _extends$1({
|
|
507
|
+
disabled: true,
|
|
508
|
+
"data-testid": "nui-dropdown-button",
|
|
509
|
+
icon: targetIcon,
|
|
510
|
+
iconPosition: "right",
|
|
511
|
+
size: "medium",
|
|
512
|
+
style: "text"
|
|
513
|
+
}, dropdownButtonProps))));
|
|
514
|
+
}
|
|
515
|
+
return /*#__PURE__*/React__default.createElement(Dropdown, _extends$1({
|
|
516
|
+
autoWidth: true,
|
|
517
|
+
className: "flex",
|
|
518
|
+
disabled: isDisabled,
|
|
519
|
+
icon: targetIcon,
|
|
520
|
+
buttonProps: _objectSpread({
|
|
521
|
+
className: "min-h-0 flex-shrink-0",
|
|
522
|
+
style: "text"
|
|
523
|
+
}, dropdownButtonProps)
|
|
524
|
+
}, dropdownProps), /*#__PURE__*/React__default.createElement(Menu, null, menuTopChildren, menuItems.map(function (_ref2) {
|
|
525
|
+
var key = _ref2.key,
|
|
526
|
+
onClick = _ref2.onClick,
|
|
527
|
+
label = _ref2.label,
|
|
528
|
+
_ref2$type = _ref2.type,
|
|
529
|
+
type = _ref2$type === void 0 ? MENU_ITEM_TYPES.menuItem : _ref2$type,
|
|
530
|
+
_ref2$isVisible = _ref2.isVisible,
|
|
531
|
+
isVisible = _ref2$isVisible === void 0 ? true : _ref2$isVisible,
|
|
532
|
+
menuItemProps = _objectWithoutProperties(_ref2, _excluded);
|
|
533
|
+
if (!isVisible) return null;
|
|
534
|
+
return type === MENU_ITEM_TYPES.menuItem ? /*#__PURE__*/React__default.createElement(MenuItem.Button, _extends$1({
|
|
535
|
+
key: key
|
|
536
|
+
}, _objectSpread({
|
|
537
|
+
onClick: onClick
|
|
538
|
+
}, menuItemProps)), label) : /*#__PURE__*/React__default.createElement(Divider, {
|
|
539
|
+
key: key
|
|
540
|
+
});
|
|
541
|
+
}), menuBottomChildren));
|
|
542
|
+
};
|
|
543
|
+
|
|
544
|
+
var Row = function Row(_ref) {
|
|
545
|
+
var data = _ref.data,
|
|
546
|
+
setEditingRow = _ref.setEditingRow;
|
|
547
|
+
var _useState = useState(false),
|
|
548
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
549
|
+
isDeleteIpRangeAlertOpen = _useState2[0],
|
|
550
|
+
setIsDeleteIpRangeAlertOpen = _useState2[1];
|
|
551
|
+
var _useDestroyAllowedIpR = useDestroyAllowedIpRanges(),
|
|
552
|
+
destroyAllowedIpRange = _useDestroyAllowedIpR.mutate;
|
|
553
|
+
var _useTranslation = useTranslation(),
|
|
554
|
+
t = _useTranslation.t;
|
|
555
|
+
var handleDelete = function handleDelete() {
|
|
556
|
+
destroyAllowedIpRange(data.id);
|
|
557
|
+
setIsDeleteIpRangeAlertOpen(false);
|
|
558
|
+
};
|
|
559
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
560
|
+
className: "neeto-ui-bg-white neeto-ui-rounded-lg grid grid-cols-12 items-center gap-4 p-3",
|
|
561
|
+
"data-cy": "ip-range-row"
|
|
562
|
+
}, /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
563
|
+
content: data.ipStart,
|
|
564
|
+
disabled: data.ipStart.length < TRUNCATE_LENGTH,
|
|
565
|
+
position: "top"
|
|
566
|
+
}, /*#__PURE__*/React__default.createElement(Typography, {
|
|
567
|
+
className: "col-span-4",
|
|
568
|
+
"data-cy": "ip-range-start-value",
|
|
569
|
+
style: "body2"
|
|
570
|
+
}, truncate(data.ipStart, TRUNCATE_LENGTH))), /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
571
|
+
content: data.ipEnd,
|
|
572
|
+
disabled: data.ipEnd.length < TRUNCATE_LENGTH,
|
|
573
|
+
position: "top"
|
|
574
|
+
}, /*#__PURE__*/React__default.createElement(Typography, {
|
|
575
|
+
className: "col-span-4",
|
|
576
|
+
"data-cy": "ip-range-end-value",
|
|
577
|
+
style: "body2"
|
|
578
|
+
}, truncate(data.ipEnd, TRUNCATE_LENGTH))), /*#__PURE__*/React__default.createElement(Typography, {
|
|
579
|
+
className: "col-span-2",
|
|
580
|
+
"data-cy": "ip-range-end-value",
|
|
581
|
+
style: "body2"
|
|
582
|
+
}, humanizeIpAddressFormat(data.addressType)), /*#__PURE__*/React__default.createElement("div", {
|
|
583
|
+
className: "col-span-2 flex justify-center"
|
|
584
|
+
}, /*#__PURE__*/React__default.createElement(MoreDropdown, {
|
|
585
|
+
dropdownButtonProps: {
|
|
586
|
+
"data-testid": "ip-range-actions-dropdown"
|
|
587
|
+
},
|
|
588
|
+
dropdownProps: {
|
|
589
|
+
position: "bottom-end"
|
|
590
|
+
},
|
|
591
|
+
menuItems: [{
|
|
592
|
+
"data-cy": "ip-range-edit-button",
|
|
593
|
+
key: "ip-range-edit-button",
|
|
594
|
+
label: t("neetoMolecules.common.actions.edit"),
|
|
595
|
+
onClick: function onClick() {
|
|
596
|
+
return setEditingRow(data.id);
|
|
597
|
+
}
|
|
598
|
+
}, {
|
|
599
|
+
"data-cy": "ip-range-delete-button",
|
|
600
|
+
key: "ip-range-delete-button",
|
|
601
|
+
label: t("neetoMolecules.common.actions.delete"),
|
|
602
|
+
onClick: function onClick() {
|
|
603
|
+
return setIsDeleteIpRangeAlertOpen(true);
|
|
604
|
+
}
|
|
605
|
+
}]
|
|
606
|
+
}), /*#__PURE__*/React__default.createElement(Alert, {
|
|
607
|
+
isOpen: isDeleteIpRangeAlertOpen,
|
|
608
|
+
submitButtonLabel: t("neetoMolecules.common.actions.delete"),
|
|
609
|
+
message: /*#__PURE__*/React__default.createElement(Trans, {
|
|
610
|
+
i18nKey: "neetoMolecules.ipRestriction.allowedIpRangeConfirmation",
|
|
611
|
+
values: {
|
|
612
|
+
ipStart: data.ipStart,
|
|
613
|
+
ipEnd: data.ipEnd
|
|
614
|
+
}
|
|
615
|
+
}),
|
|
616
|
+
title: t("neetoMolecules.common.deleteAlert.title", {
|
|
617
|
+
entity: t("neetoMolecules.ipRestriction.allowedIpRangeConfirmationTitle")
|
|
618
|
+
}),
|
|
619
|
+
onClose: function onClose() {
|
|
620
|
+
return setIsDeleteIpRangeAlertOpen(false);
|
|
621
|
+
},
|
|
622
|
+
onSubmit: handleDelete
|
|
623
|
+
})));
|
|
624
|
+
};
|
|
625
|
+
var Row$1 = /*#__PURE__*/React__default.memo(Row);
|
|
626
|
+
|
|
627
|
+
var AllowedIpRanges = function AllowedIpRanges() {
|
|
628
|
+
var _useState = useState(""),
|
|
629
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
630
|
+
editingRow = _useState2[0],
|
|
631
|
+
setEditingRow = _useState2[1];
|
|
632
|
+
var _useState3 = useState(false),
|
|
633
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
634
|
+
showAddNew = _useState4[0],
|
|
635
|
+
setShowAddNew = _useState4[1];
|
|
636
|
+
var _useTranslation = useTranslation(),
|
|
637
|
+
t = _useTranslation.t;
|
|
638
|
+
var _useFetchAllowedIpRan = useFetchAllowedIpRanges(),
|
|
639
|
+
allowedIpRanges = _useFetchAllowedIpRan.data;
|
|
640
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
641
|
+
className: "space-y-6",
|
|
642
|
+
"data-cy": "allowed-ip-range-container"
|
|
643
|
+
}, /*#__PURE__*/React__default.createElement(Typography, {
|
|
644
|
+
"data-cy": "allowed-ip-range-heading",
|
|
645
|
+
style: "h4"
|
|
646
|
+
}, t("neetoMolecules.ipRestriction.allowedIpRangeTitle")), /*#__PURE__*/React__default.createElement("div", {
|
|
647
|
+
className: "space-y-4"
|
|
648
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
649
|
+
className: "grid grid-cols-12 gap-4 px-3"
|
|
650
|
+
}, /*#__PURE__*/React__default.createElement(Typography, {
|
|
651
|
+
className: "neeto-ui-text-gray-700 col-span-4 uppercase",
|
|
652
|
+
style: "h6"
|
|
653
|
+
}, t("neetoMolecules.ipRestriction.ipStart")), /*#__PURE__*/React__default.createElement(Typography, {
|
|
654
|
+
className: "neeto-ui-text-gray-700 col-span-4 uppercase",
|
|
655
|
+
style: "h6"
|
|
656
|
+
}, t("neetoMolecules.ipRestriction.ipEnd")), /*#__PURE__*/React__default.createElement(Typography, {
|
|
657
|
+
className: "neeto-ui-text-gray-700 col-span-2 uppercase",
|
|
658
|
+
style: "h6"
|
|
659
|
+
}, t("neetoMolecules.ipRestriction.type")), /*#__PURE__*/React__default.createElement(Typography, {
|
|
660
|
+
className: "neeto-ui-text-gray-700 col-span-2 text-center uppercase",
|
|
661
|
+
style: "h6"
|
|
662
|
+
}, t("neetoMolecules.ipRestriction.actions"))), /*#__PURE__*/React__default.createElement("div", {
|
|
663
|
+
className: "w-full space-y-2"
|
|
664
|
+
}, allowedIpRanges === null || allowedIpRanges === void 0 ? void 0 : allowedIpRanges.map(function (allowedIpRange) {
|
|
665
|
+
return editingRow === allowedIpRange.id ? /*#__PURE__*/React__default.createElement(FormRow, {
|
|
666
|
+
data: allowedIpRange,
|
|
667
|
+
isAddNew: false,
|
|
668
|
+
key: allowedIpRange.id,
|
|
669
|
+
onCollapse: function onCollapse() {
|
|
670
|
+
return setEditingRow("");
|
|
671
|
+
}
|
|
672
|
+
}) : /*#__PURE__*/React__default.createElement(Row$1, {
|
|
673
|
+
data: allowedIpRange,
|
|
674
|
+
key: allowedIpRange.id,
|
|
675
|
+
setEditingRow: setEditingRow
|
|
676
|
+
});
|
|
677
|
+
}), showAddNew && /*#__PURE__*/React__default.createElement(FormRow, {
|
|
678
|
+
isAddNew: true,
|
|
679
|
+
data: INITIAL_VALUES,
|
|
680
|
+
onCollapse: function onCollapse() {
|
|
681
|
+
return setShowAddNew(false);
|
|
682
|
+
}
|
|
683
|
+
})), /*#__PURE__*/React__default.createElement(Button$1, {
|
|
684
|
+
"data-cy": "add-allowed-ip-range-button",
|
|
685
|
+
disabled: showAddNew,
|
|
686
|
+
label: t("neetoMolecules.ipRestriction.addNew"),
|
|
687
|
+
style: "link",
|
|
688
|
+
onClick: function onClick() {
|
|
689
|
+
return setShowAddNew(true);
|
|
690
|
+
}
|
|
691
|
+
})));
|
|
692
|
+
};
|
|
693
|
+
var AllowedIpRanges$1 = /*#__PURE__*/React__default.memo(AllowedIpRanges);
|
|
694
|
+
|
|
695
|
+
var show$1 = function show(params) {
|
|
696
|
+
return axios.get("".concat(IP_RESTRICTIONS_ENGINE_BASE_URL, "/current_ip"), {
|
|
697
|
+
params: params
|
|
698
|
+
});
|
|
699
|
+
};
|
|
700
|
+
var currentIpApi = {
|
|
701
|
+
show: show$1
|
|
702
|
+
};
|
|
703
|
+
|
|
704
|
+
var CURRENT_IP = QUERY_KEYS.CURRENT_IP;
|
|
705
|
+
var useShowCurrentIp = function useShowCurrentIp() {
|
|
706
|
+
return useQuery([CURRENT_IP], function () {
|
|
707
|
+
return currentIpApi.show();
|
|
708
|
+
});
|
|
709
|
+
};
|
|
710
|
+
|
|
711
|
+
var CurrentIp = function CurrentIp() {
|
|
712
|
+
var _useShowCurrentIp = useShowCurrentIp(),
|
|
713
|
+
data = _useShowCurrentIp.data,
|
|
714
|
+
isLoading = _useShowCurrentIp.isLoading;
|
|
715
|
+
var _useTranslation = useTranslation(),
|
|
716
|
+
t = _useTranslation.t;
|
|
717
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
718
|
+
className: "flex flex-wrap items-baseline gap-1",
|
|
719
|
+
"data-cy": "current-ip-container"
|
|
720
|
+
}, /*#__PURE__*/React__default.createElement(Typography, {
|
|
721
|
+
"data-cy": "current-ip-heading",
|
|
722
|
+
style: "body2"
|
|
723
|
+
}, t("neetoMolecules.ipRestriction.currentIpTitle")), /*#__PURE__*/React__default.createElement(Typography, {
|
|
724
|
+
"data-cy": "current-ip-value",
|
|
725
|
+
style: "h4",
|
|
726
|
+
weight: "semibold"
|
|
727
|
+
}, isLoading ? "..." : data.ip), /*#__PURE__*/React__default.createElement(Typography, {
|
|
728
|
+
"data-cy": "current-ip-description",
|
|
729
|
+
style: "body2"
|
|
730
|
+
}, t("neetoMolecules.ipRestriction.currentIpDescription")));
|
|
731
|
+
};
|
|
732
|
+
var CurrentIp$1 = /*#__PURE__*/React__default.memo(CurrentIp);
|
|
733
|
+
|
|
734
|
+
var ipRestrictionUrl = "".concat(IP_RESTRICTIONS_ENGINE_BASE_URL, "/ip_restriction");
|
|
735
|
+
var update = function update(params) {
|
|
736
|
+
return axios.patch(ipRestrictionUrl, {
|
|
737
|
+
ipRestriction: params
|
|
738
|
+
});
|
|
739
|
+
};
|
|
740
|
+
var show = function show() {
|
|
741
|
+
return axios.get(ipRestrictionUrl);
|
|
742
|
+
};
|
|
743
|
+
var ipRestrictionApi = {
|
|
744
|
+
update: update,
|
|
745
|
+
show: show
|
|
746
|
+
};
|
|
747
|
+
|
|
748
|
+
var IP_RESTRICTION = QUERY_KEYS.IP_RESTRICTION;
|
|
749
|
+
var useShowIpRestriction = function useShowIpRestriction() {
|
|
750
|
+
return useQuery([IP_RESTRICTION], function () {
|
|
751
|
+
return ipRestrictionApi.show();
|
|
752
|
+
});
|
|
753
|
+
};
|
|
754
|
+
var useUpdateIpRestriction = function useUpdateIpRestriction() {
|
|
755
|
+
var queryClient = useQueryClient();
|
|
756
|
+
return useMutation(ipRestrictionApi.update, {
|
|
757
|
+
onSuccess: function onSuccess() {
|
|
758
|
+
return queryClient.invalidateQueries(IP_RESTRICTION);
|
|
759
|
+
}
|
|
760
|
+
});
|
|
761
|
+
};
|
|
762
|
+
|
|
763
|
+
var IpRestriction = function IpRestriction() {
|
|
764
|
+
var _useTranslation = useTranslation(),
|
|
765
|
+
t = _useTranslation.t;
|
|
766
|
+
var _useShowIpRestriction = useShowIpRestriction(),
|
|
767
|
+
data = _useShowIpRestriction.data,
|
|
768
|
+
isFetching = _useShowIpRestriction.isLoading;
|
|
769
|
+
var _useState = useState(false),
|
|
770
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
771
|
+
isAlertOpen = _useState2[0],
|
|
772
|
+
setIsAlertOpen = _useState2[1];
|
|
773
|
+
var _useStateWithDependen = useStateWithDependency((data === null || data === void 0 ? void 0 : data.isIpRestrictionEnabled) || false, [data]),
|
|
774
|
+
_useStateWithDependen2 = _slicedToArray(_useStateWithDependen, 2),
|
|
775
|
+
isIpRestrictionVisible = _useStateWithDependen2[0],
|
|
776
|
+
setIsIpRestrictionVisible = _useStateWithDependen2[1];
|
|
777
|
+
var _useUpdateIpRestricti = useUpdateIpRestriction(),
|
|
778
|
+
updateIpRestriction = _useUpdateIpRestricti.mutate,
|
|
779
|
+
isUpdating = _useUpdateIpRestricti.isLoading;
|
|
780
|
+
if (isFetching) {
|
|
781
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
782
|
+
className: "h-screen"
|
|
783
|
+
}, /*#__PURE__*/React__default.createElement(PageLoader$1, null));
|
|
784
|
+
}
|
|
785
|
+
var updateIpRestrictionStatus = function updateIpRestrictionStatus() {
|
|
786
|
+
return updateIpRestriction({
|
|
787
|
+
isIpRestrictionEnabled: isIpRestrictionVisible
|
|
788
|
+
}, {
|
|
789
|
+
onSuccess: function onSuccess() {
|
|
790
|
+
return setIsAlertOpen(false);
|
|
791
|
+
}
|
|
792
|
+
});
|
|
793
|
+
};
|
|
794
|
+
var handleOnChange = function handleOnChange() {
|
|
795
|
+
if (data.isIpRestrictionEnabled) {
|
|
796
|
+
updateIpRestriction({
|
|
797
|
+
isIpRestrictionEnabled: false
|
|
798
|
+
}, {
|
|
799
|
+
onSuccess: function onSuccess() {
|
|
800
|
+
return setIsIpRestrictionVisible(false);
|
|
801
|
+
}
|
|
802
|
+
});
|
|
803
|
+
} else {
|
|
804
|
+
setIsIpRestrictionVisible(function (previousState) {
|
|
805
|
+
return !previousState;
|
|
806
|
+
});
|
|
807
|
+
}
|
|
808
|
+
};
|
|
809
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
810
|
+
className: "neeto-ui-bg-white neeto-ui-border-gray-200 neeto-ui-rounded-lg mx-auto mb-4 w-full overflow-hidden border sm:max-w-screen-sm md:max-w-screen-md lg:max-w-3xl",
|
|
811
|
+
"data-cy": "ip-restrictions-card"
|
|
812
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
813
|
+
className: "space-y-2 p-6"
|
|
814
|
+
}, /*#__PURE__*/React__default.createElement(Checkbox, {
|
|
815
|
+
checked: isIpRestrictionVisible,
|
|
816
|
+
className: "flex-grow-0",
|
|
817
|
+
"data-cy": "enable-ip-restriction-checkbox",
|
|
818
|
+
disabled: isFetching || isUpdating,
|
|
819
|
+
label: /*#__PURE__*/React__default.createElement(Typography, {
|
|
820
|
+
style: "h3"
|
|
821
|
+
}, t("neetoMolecules.ipRestriction.switchLabel")),
|
|
822
|
+
onChange: handleOnChange
|
|
823
|
+
}), /*#__PURE__*/React__default.createElement(Typography, {
|
|
824
|
+
"data-cy": "ip-restriction-description",
|
|
825
|
+
style: "body2"
|
|
826
|
+
}, t("neetoMolecules.ipRestriction.description"))), isIpRestrictionVisible && /*#__PURE__*/React__default.createElement("div", {
|
|
827
|
+
className: "neeto-ui-bg-gray-100 w-full space-y-6 p-6"
|
|
828
|
+
}, /*#__PURE__*/React__default.createElement(CurrentIp$1, null), /*#__PURE__*/React__default.createElement(AllowedIpRanges$1, null), /*#__PURE__*/React__default.createElement(Callout, {
|
|
829
|
+
icon: Warning,
|
|
830
|
+
style: "warning"
|
|
831
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
832
|
+
className: "leading-2 block whitespace-pre-wrap py-1"
|
|
833
|
+
}, /*#__PURE__*/React__default.createElement(Trans, {
|
|
834
|
+
i18nKey: "neetoMolecules.ipRestriction.warningMessage"
|
|
835
|
+
}))), /*#__PURE__*/React__default.createElement(Button$1, {
|
|
836
|
+
label: t("neetoMolecules.common.actions.saveChanges"),
|
|
837
|
+
onClick: function onClick() {
|
|
838
|
+
return setIsAlertOpen(true);
|
|
839
|
+
}
|
|
840
|
+
}), /*#__PURE__*/React__default.createElement(Alert, {
|
|
841
|
+
isOpen: isAlertOpen,
|
|
842
|
+
isSubmitting: isUpdating,
|
|
843
|
+
title: t("neetoMolecules.ipRestriction.enableAlert.title"),
|
|
844
|
+
message: /*#__PURE__*/React__default.createElement(Trans, {
|
|
845
|
+
i18nKey: "neetoMolecules.ipRestriction.enableAlert.message"
|
|
846
|
+
}),
|
|
847
|
+
submitButtonLabel: t("neetoMolecules.ipRestriction.enableAlert.submitButtonLabel"),
|
|
848
|
+
onClose: function onClose() {
|
|
849
|
+
return setIsAlertOpen(false);
|
|
850
|
+
},
|
|
851
|
+
onSubmit: updateIpRestrictionStatus
|
|
852
|
+
})));
|
|
853
|
+
};
|
|
854
|
+
var index = /*#__PURE__*/React__default.memo(IpRestriction);
|
|
855
|
+
|
|
856
|
+
export { index as default };
|
|
857
|
+
//# sourceMappingURL=IpRestriction.js.map
|