{"version":3,"sources":["resources/translations/index.js","store/locale/selectors.js","settings/IntlProvider/index.js","Styles/colors.js","Common/Components/Button/styled.jsx","webpack:///./src/Images/warning-delete.svg?ec10","Common/Components/Modal/styled.jsx","Common/Components/Modal/index.jsx","Hooks/useEscKey/index.jsx","Styles/effects.js","Hooks/useModal/styled.jsx","Hooks/useModal/index.jsx","store/errors/actions.js","Images/exclamation_error.svg","store/errors/selectors.js","Screens/Error/index.jsx","store/Preferences/selectors.js","store/Preferences/actions.js","store/Faraday/selectors.js","store/Filters/constants.js","Common/Components/Tour/helpers/mockVuln.js","store/Preferences/Tour/selectors.js","store/Filters/actions.js","store/Filters/types.js","store/Manage/types.js","store/Preferences/Tour/actions.js","Screens/Constants/index.js","store/Dashboard/selectors.js","Screens/Dashboard/actions/Actions.js","Screens/Faraday/functions.js","store/Preferences/workspace/selectors.js","store/WorkspaceEditCreate/selectors.js","store/modals/selectors.js","store/modals/actions.js","store/Global/selectors.js","store/Router/actions.js","store/Global/types.js","store/modals/modals.js","Screens/Workspaces/actions/Actions.js","store/FileUploaderContext/selector.js","Common/Functions/ToBase64.js","Screens/ManageEditCreate/actions/Actions.js","Images/evidence-default.svg","Common/Components/FileUploadContext/actions/index.js","Images/icon-trash-red.svg","Common/Components/EvidenceTab/components/UploadEvidence/styled.jsx","Common/Components/EvidenceTab/components/UploadEvidence/index.jsx","store/Manage/actions.js","utils/clipboard.js","Images/copy.svg","Images/unknown_filetype.svg","Images/download-icon.svg","Common/Components/EvidenceTab/components/Attachment/styled.jsx","Common/Components/EvidenceTab/components/Attachment/index.jsx","Common/Components/EvidenceTab/styled.jsx","Common/Components/EvidenceTab/index.jsx","store/CustomAttributes/selectors.js","Screens/Manage/components/CustomAttributesModal/constants.js","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/components/CustomFieldContainer/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/components/CustomFieldContainer/index.jsx","Common/Components/StandardTextField/styled.jsx","Common/Components/StandardTextField/index.jsx","Common/Components/BlueButton/styled.jsx","Common/Components/BlueButton/index.jsx","Common/Components/OutlinedButton/styled.jsx","Common/Components/OutlinedButton/index.jsx","Styles/styles.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/components/StringCustomField/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/components/StringCustomField/index.jsx","Common/Components/Md/styled.jsx","Common/Components/Md/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/components/MdCustomField/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/components/MdCustomField/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/components/IntegerCustomField/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/components/IntegerCustomField/index.jsx","Common/Components/CustomList/styled.jsx","Common/Components/CustomList/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/components/ListCustomField/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/components/ListCustomField/index.jsx","Common/Components/Dropdown/styled.jsx","Common/Components/Dropdown/index.jsx","Common/styles/style.js","Common/Components/StandarDropdown/styled.jsx","Common/Components/StandarDropdown/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/components/ChoiceCustomField/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/components/ChoiceCustomField/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/contents.js","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/components/CustomFieldContent/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/components/CustomField/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/styled.jsx","store/Global/actions.js","Screens/Manage/components/ToggleButtons/styled.jsx","Screens/Manage/components/ToggleButtons/index.jsx","Images/wf_arrow_collapsed.svg","Images/wf_arrow_expand.svg","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/ExpandableWrapper/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/ExpandableWrapper/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/functions.js","store/ManageEditCreate/selectors.js","store/Manage/fields.js","store/Preferences/manage/selectors.js","store/Preferences/manage/actions.js","store/CustomAttributes/actions.js","store/CustomAttributes/types.js","store/CustomAttributes/errors.js","Hooks/useExpandable/index.jsx","Images/resize_bottom_right.svg","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/index.jsx","Hooks/useResize/index.jsx","Common/Components/v2/MarkdownEditor/styled.jsx","Common/Components/v2/MarkdownEditor/MarkdownInput/components/MDPreview/styled.jsx","Common/Components/v2/MarkdownEditor/MarkdownInput/components/MDPreview/index.jsx","Common/Components/v2/MarkdownEditor/MarkdownInput/components/MDEditor/styled.jsx","Common/Components/v2/MarkdownEditor/MarkdownInput/components/MDEditor/index.jsx","Common/Components/v2/MarkdownEditor/MarkdownInput/index.jsx","Common/Components/v2/MarkdownEditor/index.jsx","Common/Components/StringField/styled.jsx","Common/Components/StringField/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/TechnicalTab/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/TechnicalTab/index.jsx","Images/copy_link.svg","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/Title/components/CopyLink/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/Title/components/CopyLink/index.jsx","Images/api_link.svg","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/Title/components/CopyApiLink/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/Title/components/CopyApiLink/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/Title/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/Title/index.jsx","Common/Components/SeverityIcon.jsx","utils/stringUtils.js","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/ActionBar/components/SeverityPicker/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/ActionBar/components/SeverityPicker/index.jsx","Common/Components/FlagIcon/styled.jsx","Common/Components/FlagIcon/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/ActionBar/components/DisplayConfirmed/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/ActionBar/components/DisplayConfirmed/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/ActionBar/components/EaseOfResolutionPicker/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/ActionBar/components/EaseOfResolutionPicker/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/ActionBar/components/StatusPicker/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/ActionBar/components/StatusPicker/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/ActionBar/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/ActionBar/index.jsx","Common/Components/DateFormatter/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/HostData/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/HostData/index.jsx","store/Sesion/selectors.js","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/Description/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/Resolution/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/References/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/References/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/Policies/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/Policies/index.jsx","Common/Components/Impacts/styled.jsx","Common/Components/Impacts/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/ImpactsTab/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/ImpactsTab/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/Owner/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/Owner/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/ExternalId/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/ExternalId/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/Tags/components/AddTagButton/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/Tags/components/AddTagButton/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/Tags/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/Tags/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/RiskAndCVE/styled.jsx","Images/icon-action-bar-trash.svg","Images/error-mark.svg","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/CVE/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/CVE/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/RiskAndCVE/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/TabSelector/tabs.jsx","store/Manage/selectors.js","store/Manage/filterActions.js","store/Host/fields.js","store/Host/initialState.js","store/Host/selectors.js","store/HostDetail/selectors.js","store/HostDetail/actions.js","store/HostDetail/types.js","store/Host/actions.js","store/Host/types.js","Screens/KnowledgeBaseEditCreate/actions/Actions.js","store/KnowledgeBase/selectors.js","Screens/KnowledgeBase/actions/Actions.js","store/Filters/entitiesConstants.js","store/Filters/selectors.js","store/Workspace/selectors.js","Screens/Faraday/actions/Actions.js","utils/validateWorkspace.js","services/api/connector.js","services/api/dashboard/index.js","services/api/manage/index.js","services/api/faraday/index.js","services/api/workspace/index.js","services/api/host/index.js","services/api/preferences/index.js","services/api/hostDetail/index.js","services/api/knowledgeBase/index.js","services/api/services/index.js","services/api/settings/index.js","services/api/customAttributes/index.js","services/api/agents/index.js","services/api/attachments/index.js","services/api/filters/index.js","services/api/auth/index.js","services/api/index.js","Screens/Wizard/actions/Actions.js","store/Router/selectors.js","Screens/Login/actions/Actions.js","Images/icon_close_error.svg","Screens/Wizard/constants/index.jsx","Common/Components/SearchBar/components/FilterError/styled.jsx","Common/Components/SearchBar/components/FilterError/index.jsx","Common/Components/SearchBar/styled.jsx","Common/Components/SearchBar/components/BasicFilter/functions.jsx","Common/Components/SearchBar/components/BasicFilter/components/Dropdown/styled.jsx","Common/Components/SearchBar/components/BasicFilter/components/Dropdown/index.jsx","Images/clear.svg","Common/Components/SearchBar/components/BasicFilter/components/FilterTags/styled.jsx","Images/icon_loupe.svg","Common/Components/SearchBar/components/BasicFilter/components/FilterTags/index.jsx","Images/icon_clearsearch.svg","Common/Components/SearchBar/components/BasicFilter/styled.jsx","Common/Components/SearchBar/components/BasicFilter/components/DateInput/styled.jsx","Images/icon_help.svg","Common/Components/SearchBar/components/BasicFilter/components/DateInput/index.jsx","Common/Components/SearchBar/components/BasicFilter/index.jsx","Common/Components/SearchBar/components/AdvancedFilter/index.jsx","Common/Components/SearchBar/components/AdvancedModeSelector/styled.jsx","Common/Components/SearchBar/components/AdvancedModeSelector/index.jsx","Common/Components/SearchBar/components/SaveFilter/styled.jsx","Common/Components/SearchBar/components/SaveFilter/index.jsx","Common/Components/SearchBar/index.jsx","Common/Components/Searcher/BasicSearcher/styled.jsx","Common/Components/Searcher/BasicSearcher/index.jsx","Common/Components/Searcher/index.jsx","Common/Components/CustomTextArea/styled.jsx","Common/Components/CustomTextArea/index.jsx","Common/Components/DateRangePicket/styled.jsx","Common/Components/DateRangePicket/index.jsx","Common/Components/ModalWrapper/styled.jsx","Common/Components/ModalWrapper/index.jsx","Screens/Workspaces/components/ModalCreation/styled.jsx","Images/star.svg","Common/Components/Importance/styled.jsx","Common/Components/Importance/index.jsx","Screens/Workspaces/components/ModalCreation/index.jsx","Hooks/useClickOutside/index.jsx","Screens/NavMenu/WorkspaceMenuSelector/styled.jsx","Screens/NavMenu/WorkspaceMenuSelector/index.jsx","store/Settings/loginSettingsSelectors.js","store/Settings/loginSettingsActions.js","Screens/Settings/components/Account/styled.jsx","Common/Components/Password/functions.js","store/Settings/changePasswordSelectors.js","Common/Components/Error/styled.jsx","Common/Components/Error/index.jsx","Common/Components/Success/styled.jsx","Common/Components/Success/index.jsx","Common/Components/Password/styled.jsx","Screens/Settings/components/Account/components/ChangePassword/styled.jsx","Screens/Settings/components/Account/components/ChangePassword/index.jsx","store/Settings/changePasswordActions.js","Common/Components/CustomCheckbox/index.jsx","Screens/Settings/common-styled.jsx","Screens/Settings/components/Account/components/LoginSettings/styled.jsx","Screens/Settings/components/Account/components/LoginSettings/index.jsx","Screens/Settings/components/Account/components/TwoFactor/styled.jsx","Images/icon-close.svg","Common/Components/UpgradeLicense/styled.jsx","Common/Components/UpgradeLicense/index.jsx","Screens/Settings/components/Account/components/TwoFactor/index.jsx","Screens/Settings/components/Header/styled.jsx","Screens/Settings/components/Header/index.jsx","Images/preferences_icons_Account.svg","Screens/Settings/components/Account/index.jsx","Images/preferences_icons_Authentication.svg","Images/customAttributes.svg","Screens/Settings/components/Saml/styled.jsx","Screens/Settings/components/UpgradeLicense/styled.jsx","Screens/Settings/components/UpgradeLicense/index.jsx","Screens/Settings/components/Saml/index.jsx","Screens/Settings/components/Ldap/styled.jsx","Screens/Settings/components/Ldap/index.jsx","Screens/Settings/components/Menu/styled.jsx","Images/icon_edit.svg","Images/icon_drag.svg","Screens/Manage/components/CustomAttributesModal/functions.js","Screens/Manage/components/CustomAttributesModal/components/CustomAttribute/styled.jsx","Screens/Manage/components/CustomAttributesModal/components/CustomAttribute/index.jsx","Screens/Manage/components/CustomAttributesModal/components/AttributeList/ConfirmationModal/styled.jsx","Screens/Manage/components/CustomAttributesModal/components/AttributeList/ConfirmationModal/index.jsx","Screens/Manage/components/CustomAttributesModal/components/AttributeList/styled.jsx","Images/icon-close-without-background.svg","Screens/Manage/components/CustomAttributesModal/components/AttributeList/index.jsx","Screens/Manage/components/CustomAttributesModal/components/Header/styled.jsx","Screens/Manage/components/CustomAttributesModal/components/Header/index.jsx","Screens/Manage/components/CustomAttributesModal/components/AddCustomAttribute/styled.jsx","Screens/Manage/components/CustomAttributesModal/components/AddCustomAttribute/DisplayAddCustomAttribute.jsx","Screens/Manage/components/CustomAttributesModal/components/AddCustomAttribute/index.jsx","Screens/Settings/components/CustomAttributes/index.jsx","Screens/Settings/components/Menu/index.jsx","Screens/Settings/index.jsx","Screens/NavMenu/User/styled.jsx","Screens/NavMenu/User/Modals/Extras/index.jsx","Screens/NavMenu/User/Modals/About/index.jsx","Screens/NavMenu/User/Modals/Help/index.jsx","Common/Functions/GetBackgroundColor.js","Common/Components/ColorImage/styled.jsx","Common/Components/ColorImage/index.jsx","Screens/NavMenu/User/Dropdown/styled.jsx","Screens/NavMenu/User/Dropdown/UserDropdownItem.jsx","Screens/NavMenu/User/Dropdown/index.jsx","Screens/NavMenu/User/index.jsx","Screens/NavMenu/User/userContainer.jsx","Screens/NavMenu/styled.jsx","Screens/NavMenu/index.jsx","Images/activity-dashboard.svg","Images/assets.svg","Images/automation.svg","Images/vulnerabilities.svg","Images/tasks_icon.svg","Images/reports.svg","Images/analytics.svg","Images/icon_users.svg","Images/faraday-logo-nav.svg","store/SideBar/selector.jsx","store/SideBar/actions.js","Hooks/useMouseHover/index.jsx","Screens/Sidebar/components/SideBarSubMenu/styled.jsx","Screens/Sidebar/components/SideBarSubMenu/index.jsx","Screens/Sidebar/components/SubPage/styled.jsx","Screens/Sidebar/components/SubPage/index.jsx","Screens/Sidebar/components/SideBarItem/styled.jsx","Screens/Sidebar/components/SideBarItem/index.jsx","Images/faraday_logo_product.svg","Images/laquo.svg","Screens/Sidebar/styled.jsx","Common/Components/ReduxModal/styled.jsx","Common/Components/ReduxModal/index.jsx","Screens/Sidebar/index.jsx","Common/Components/FileUploadContext/styled.jsx","Common/Components/FileUploadContext/components/Body/styled.jsx","Common/Components/FileUploadContext/components/Body/Status/components/styled.jsx","Common/Components/FileUploadContext/components/Body/Status/components/Processing/styled.jsx","Images/icon-toolbar-confirmed-on.svg","Common/Components/FileUploadContext/components/Body/Status/components/Processing/index.jsx","Common/Components/FileUploadContext/components/Body/Status/components/FinishedOk/styled.jsx","Common/Components/FileUploadContext/components/Body/Status/components/FinishedOk/index.jsx","Common/Components/FileUploadContext/components/Body/Status/components/FinishedWithError/styled.jsx","Common/Components/FileUploadContext/components/Body/Status/components/FinishedWithError/index.jsx","Common/Components/FileUploadContext/components/Body/Status/index.jsx","Common/Components/FileUploadContext/components/Body/index.jsx","Common/Components/FileUploadContext/components/Header/styled.jsx","Common/Components/FileUploadContext/components/Header/index.jsx","Common/Components/FileUploadContext/index.jsx","Common/Components/CommandValidator/index.jsx","Common/Components/ConfirmNavigationModal/styled.jsx","Common/Components/ConfirmNavigationModal/index.jsx","Common/Components/RedirectModal/index.jsx","styled.jsx","App.jsx","Common/Handlers/ErrorHandler.js","utils/breakpoints/rules.js","store/Reducers/breakpoints/types.js","utils/breakpoints/mediaListener.js","store/Reducers/breakpoints/actions.js","services/websocket/dispatchWSActions.js","services/websocket/socketsMiddleware.js","store/Reducers/breakpoints/initialState.js","store/Reducers/breakpoints/reducer.js","store/Dashboard/reducer.js","store/Dashboard/tools.js","store/locale/reducer.js","settings/constants/index.js","store/locale/types.js","Common/Functions/Copy.js","store/Host/reducer.js","store/HostEditCreate/types.js","store/Manage/initialState.js","store/Manage/reducer.js","store/Preferences/reducer.js","store/HostDetail/initialState.js","store/HostDetail/reducer.js","store/HostEditCreate/initialState.js","store/HostEditCreate/reducer.js","store/FileUploaderContext/reducer.js","store/KnowledgeBase/index.js","store/KnowledgeBaseEditCreate/index.js","store/Settings/reducer.js","store/Settings/settingsActions.js","store/CustomAttributes/reducer.js","store/Agents/types.js","store/Agents/reducer.js","store/errors/initialState.js","store/errors/reducer.js","store/Faraday/Faraday.js","store/Filters/initialState.js","store/Filters/reducer.js","store/modals/reducer.js","store/SideBar/reducer.js","store/Global/reducer.js","store/Sesion/Sesion.js","store/Reducers/ManageEditCreate.js","store/Reducers/Workspace.js","store/Reducers/WorkspaceEditCreate.js","store/Reducers/ExecutiveReport.js","store/Reducers/Tags.js","store/Reducers/Wizard.js","store/Reducers/index.js","store/Store.js","Common/Components/LogOutForced/index.jsx","Common/Components/MainContainer/styled.jsx","Common/Components/MainContainer/index.jsx","Images/icon_upload.svg","Common/Components/DragFile/styled.jsx","Common/Components/DragFile/index.jsx","Common/Components/FileUploader/styled.jsx","Common/Components/FileUploader/index.jsx","Screens/Wizard/components/StepFileSelector/styled.jsx","Screens/Wizard/components/StepFileSelector/index.jsx","Screens/Wizard/components/StepInitialMode/styled.jsx","Screens/Wizard/components/StepInitialMode/index.jsx","Screens/Wizard/components/StepSummary/styled.jsx","Screens/Wizard/components/StepSummary/index.jsx","Screens/Wizard/components/StepWorkspaceName/styled.jsx","Screens/Wizard/components/StepWorkspaceName/index.jsx","Screens/Wizard/components/StepWorkspaceSelection/components/SearchWs/styled.jsx","Screens/Wizard/components/StepWorkspaceSelection/components/SearchWs/index.jsx","Screens/Wizard/components/StepWorkspaceSelection/styled.jsx","Screens/Wizard/components/StepWorkspaceSelection/index.jsx","Common/Components/ErrorDialog/styled.jsx","Common/Components/ErrorDialog/index.jsx","Screens/Wizard/components/Main/index.jsx","Common/Components/EmailField/styled.jsx","Common/Components/EmailField/index.jsx","Common/Components/Loading/styled.jsx","Screens/ForgotPassword/styled.jsx","Screens/ForgotPassword/index.jsx","Screens/ResetPassword/styled.jsx","Screens/ResetPassword/index.jsx","Screens/Automation/Agents/styled.jsx","Images/icon-action-bar-token.svg","Common/Components/IconButton/styled.jsx","Common/Components/IconButton/index.jsx","Screens/Automation/Agents/components/ActionBar/components/TokenButton/styled.jsx","Screens/Automation/Agents/components/ActionBar/components/TokenButton/index.jsx","Screens/Automation/Agents/components/ActionBar/styled.jsx","Images/icon-clipboard.svg","store/Agents/selectors.js","store/Agents/actions.js","Common/Components/Generator/styled.jsx","Common/Components/Generator/index.jsx","Screens/Automation/Agents/components/ActionBar/components/TokenButton/components/Token/styled.jsx","Screens/Automation/Agents/components/ActionBar/components/TokenButton/components/Token/index.jsx","Images/icon-action-bar-plus.svg","Screens/Automation/Agents/components/ActionBar/components/CreateButton/styled.jsx","Screens/Automation/Agents/components/ActionBar/components/CreateButton/index.jsx","Screens/Automation/Agents/components/CreateNewAgent/components/Header/styled.jsx","Screens/Automation/Agents/components/CreateNewAgent/components/Header/index.jsx","Screens/Automation/Agents/components/CreateNewAgent/components/styled.jsx","Screens/Automation/Agents/components/CreateNewAgent/components/Configuration/index.jsx","Screens/Automation/Agents/components/CreateNewAgent/components/Tools/components/Card/styled.jsx","Screens/Automation/Agents/components/CreateNewAgent/components/Tools/components/Card/index.jsx","utils/breakpoints/index.js","Screens/Automation/Agents/components/CreateNewAgent/components/Tools/components/ToolCollection/styled.jsx","Screens/Automation/Agents/components/CreateNewAgent/components/Tools/components/WebsiteButton/styled.jsx","Screens/Automation/Agents/components/CreateNewAgent/components/Tools/components/WebsiteButton/index.jsx","Screens/Automation/Agents/components/CreateNewAgent/components/Tools/components/Toolbar/styled.jsx","Screens/Automation/Agents/components/CreateNewAgent/components/Tools/components/ToolCollection/index.jsx","Screens/Automation/Agents/components/CreateNewAgent/components/Tools/styled.jsx","Images/tool_wheel.svg","Screens/Automation/Agents/components/CreateNewAgent/components/Tools/components/EditButton/styled.jsx","Screens/Automation/Agents/components/CreateNewAgent/components/Tools/components/ConfigureTool/styled.jsx","Screens/Automation/Agents/components/CreateNewAgent/components/Tools/components/ConfigureTool/index.jsx","Images/cog.svg","Screens/Automation/Agents/components/CreateNewAgent/components/Tools/components/EditButton/index.jsx","Screens/Automation/Agents/components/CreateNewAgent/components/Tools/components/ConfigureButton/styled.jsx","Images/tool_trash.svg","Screens/Automation/Agents/components/CreateNewAgent/components/Tools/components/ConfigureButton/index.jsx","Screens/Automation/Agents/components/CreateNewAgent/components/Tools/components/DeleteButton/styled.jsx","Images/help-sysreq.svg","Screens/Automation/Agents/components/CreateNewAgent/components/Tools/components/DeleteButton/index.jsx","Screens/Automation/Agents/components/CreateNewAgent/components/Tools/index.jsx","Screens/Automation/Agents/components/CreateNewAgent/components/SaveFinish/styled.jsx","Screens/Automation/Agents/components/CreateNewAgent/components/SaveFinish/InfoTabs.jsx","Screens/Automation/Agents/components/CreateNewAgent/components/SaveFinish/dispatcher.jsx","Screens/Automation/Agents/components/CreateNewAgent/components/SaveFinish/index.jsx","Screens/Automation/Agents/components/CreateNewAgent/components/Requirements/styled.jsx","Screens/Automation/Agents/components/CreateNewAgent/styled.jsx","Screens/Automation/Agents/components/CreateNewAgent/components/Requirements/InfoTabs.jsx","Screens/Automation/Agents/components/CreateNewAgent/components/Requirements/index.jsx","Screens/Automation/Agents/components/CreateNewAgent/index.jsx","Screens/Automation/Agents/components/ActionBar/index.jsx","Screens/Automation/Agents/components/Grid/styled.jsx","Screens/Automation/Agents/components/Grid/components/EmptyAgents/styled.jsx","Screens/Automation/Agents/components/Grid/components/EmptyAgents/index.jsx","Images/icon-action-bar-trigger.svg","Images/icon-action-bar-trigger-disabled.svg","Screens/Automation/Agents/components/Grid/components/UserAgents/components/UserAgent/components/RunIcon/styled.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/UserAgent/components/RunIcon/index.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/UserAgent/components/ActionBar/styled.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/UserAgent/components/ActionBar/index.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/UserAgent/components/LastExecution/styled.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/UserAgent/components/LastExecution/index.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/UserAgent/components/AvailableTools/styled.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/UserAgent/components/AvailableTools/index.jsx","Styles/effects/text.js","Screens/Automation/Agents/components/Grid/components/UserAgents/components/UserAgent/styled.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/UserAgent/index.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/DeletionModal/index.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/styled.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/RunUserAgentModal/components/ToolParams/components/Content/styled.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/RunUserAgentModal/components/ToolParams/components/Content/components/NonBooleanField/styled.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/RunUserAgentModal/components/ToolParams/components/Content/components/NonBooleanField/index.jsx","Images/Checkbox.svg","Common/Components/Checkbox/styled.jsx","Common/Components/Checkbox/index.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/RunUserAgentModal/components/ToolParams/components/Content/components/BooleanField/styled.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/RunUserAgentModal/components/ToolParams/components/Content/components/BooleanField/index.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/RunUserAgentModal/components/ToolParams/components/Content/index.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/RunUserAgentModal/components/ToolParams/components/Website/styled.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/RunUserAgentModal/components/ToolParams/components/Website/index.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/RunUserAgentModal/components/ToolParams/styled.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/RunUserAgentModal/components/ToolParams/index.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/RunUserAgentModal/components/ExecutionParams/styled.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/RunUserAgentModal/components/ExecutionParams/BooleanField/styled.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/RunUserAgentModal/components/ExecutionParams/BooleanField/index.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/RunUserAgentModal/components/ExecutionParams/index.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/RunUserAgentModal/styled.jsx","Common/Components/SearchList/styled.jsx","Common/Components/SearchList/index.jsx","Common/Components/WorkspaceList/styled.jsx","Common/Components/WorkspaceList/index.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/RunUserAgentModal/components/WorkspaceSelector/styled.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/RunUserAgentModal/components/WorkspaceSelector/index.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/components/RunUserAgentModal/index.jsx","Screens/Automation/Agents/components/Grid/components/UserAgents/index.jsx","Screens/Automation/Agents/components/Grid/index.jsx","Screens/Automation/Agents/index.jsx","Common/Components/CustomReactTable/styled.jsx","store/Preferences/host/selectors.js","Common/Components/Skeleton/styled.jsx","Common/Components/Skeleton/index.jsx","Screens/Host/components/HostDetail/Severity/styled.jsx","Screens/Host/components/HostDetail/Severity/index.jsx","Screens/Host/components/Table/styled.jsx","Screens/Host/components/Table/components/CheckColum.jsx","Screens/Host/components/Table/components/CheckHeader.jsx","Screens/Host/components/Table/components/IPColumn.jsx","Screens/Host/components/Table/components/ImportanceColumn/styled.jsx","Screens/Host/components/Table/components/ImportanceColumn/index.jsx","Screens/Host/components/Table/Columns.jsx","Screens/Host/components/Table/index.jsx","Common/Components/AddButton/styled.jsx","Common/Components/AddButton/index.jsx","Screens/Host/components/CreateActions/index.jsx","Common/Components/CustomActionBar/styled.jsx","Common/Components/DeleteButton/index.jsx","Screens/Host/components/ActionBar/components/DeleteHostButton/index.jsx","Common/Components/EditButton/index.jsx","store/HostEditCreate/actions.js","Screens/Host/components/ActionBar/components/EditHostButton/index.jsx","Images/prev.svg","Images/next.svg","Common/Components/Pagination/styled.jsx","Common/Components/Pagination/index.jsx","Common/Components/ModalConfirmation/styled.jsx","Common/Components/ModalConfirmation/index.jsx","Screens/Host/components/ActionBar/components/DeleteConfirmationModal/index.jsx","Screens/Host/components/ActionBar/components/GroupBy/index.jsx","Images/icon_filter_off.svg","Images/icon_filter_on.svg","Screens/Manage/components/CustomActionBar/components/FilterSidebarIcon/styled.jsx","Screens/Manage/components/CustomActionBar/components/FilterSidebarIcon/index.jsx","Images/reload.svg","Screens/Host/components/RefreshButton/styled.jsx","Screens/Host/components/RefreshButton/index.jsx","Common/Components/ContextMenuButton/styled.jsx","Common/Components/ContextMenuButton/index.jsx","Common/Components/EditColumnContext/helper.js","Common/Components/EditColumnContext/components/NotIncludedList/styled.jsx","Common/Components/EditColumnContext/styled.jsx","Common/Components/EditColumnContext/components/NotIncludedList/index.jsx","Common/Components/EditColumnContext/components/DragList/styled.jsx","Common/Components/EditColumnContext/components/DragList/index.jsx","Common/Components/EditColumnContext/components/Header/styled.jsx","Common/Components/EditColumnContext/components/Header/index.jsx","Common/Components/EditColumnContext/components/Help/styled.jsx","Common/Components/EditColumnContext/components/Help/index.jsx","Images/icon-action-bar-edit.svg","Common/Components/EditColumnContext/index.jsx","Images/icon-action-bar-column.svg","Screens/Manage/components/CustomActionBar/styled.jsx","Screens/Host/components/ActionBar/components/AddRemoveColumnsButton/index.jsx","store/Preferences/host/actions.js","Screens/Host/components/ActionBar/index.jsx","Common/Components/StandardTextAreaField/styled.jsx","Common/Components/StandardTextAreaField/index.jsx","Images/icon_modal_asset.svg","Screens/HostEditCreate/components/HostModalEditCreate/styled.jsx","Screens/HostEditCreate/components/HostModalEditCreate/index.jsx","store/HostEditCreate/selectors.js","Common/Components/Tabs/styled.jsx","Common/Components/Tabs/Tab/styled.jsx","Common/Components/Tabs/Tab/index.jsx","Common/Components/Tabs/index.jsx","Screens/Host/components/HostDetail/styled.jsx","Screens/Host/components/HostDetail/Vulnerabilities/styled.jsx","Screens/Host/components/HostDetail/Name/index.jsx","Screens/Manage/components/ManageTable/components/Table/columns/Name/styled.jsx","Images/arrow-down.svg","Screens/Manage/components/ManageTable/components/Table/columns/Name/index.jsx","Screens/Manage/components/ManageTable/components/Table/columns/CheckColum.jsx","Screens/Manage/components/ManageTable/components/Table/columns/CheckHeader/ConfirmedDropdown/styled.jsx","Images/sort.svg","Screens/Manage/components/ManageTable/components/Table/columns/CheckHeader/ConfirmedDropdown/index.jsx","Screens/Manage/components/ManageTable/components/Table/columns/CheckHeader/index.jsx","Screens/Manage/components/ManageTable/components/Table/columns/Confirm.jsx","Screens/Manage/components/ManageTable/components/Table/columns/Severity.jsx","Screens/Manage/components/ManageTable/components/Table/columns/Expander/styled.jsx","Screens/Manage/components/ManageTable/components/Table/columns/Expander/index.jsx","Screens/Manage/components/ManageTable/components/Table/columns/SeverityHeader.jsx","Screens/Manage/components/ManageTable/components/Table/columns/CVE/styled.jsx","Screens/Manage/components/ManageTable/components/Table/columns/CVE/index.jsx","Screens/Manage/components/ManageTable/components/Table/columns/GenericCell/styled.jsx","Screens/Manage/components/ManageTable/components/Table/columns/GenericCell/index.jsx","Screens/Manage/components/ManageTable/components/Table/columns/Impact/styled.jsx","Screens/Manage/components/ManageTable/components/Table/columns/Impact/index.jsx","Screens/Manage/components/ManageTable/components/Table/columns/Risk/styled.jsx","Screens/Host/components/HostDetail/Vulnerabilities/Columns.jsx","Screens/Host/components/HostDetail/Vulnerabilities/index.jsx","Screens/Host/components/HostDetail/functions.js","Screens/Host/components/HostDetail/Services/components/Columns/styled.jsx","Screens/Host/components/HostDetail/Services/components/Columns/index.jsx","Screens/Host/components/HostDetail/Services/styled.jsx","Screens/Host/components/HostDetail/Services/getTrProps.jsx","Screens/Host/components/HostDetail/Services/index.jsx","Screens/Host/components/HostDetail/Ip/styled.jsx","Screens/Host/components/HostDetail/Ip/index.jsx","Screens/Host/components/HostDetail/General/styled.jsx","Screens/Host/components/HostDetail/General/Columns.jsx","Screens/Host/components/HostDetail/General/index.jsx","Screens/Host/components/HostDetail/index.jsx","Screens/Filters/styled.jsx","Screens/Filters/components/CustomFilterButton/styled.jsx","Screens/Filters/components/CustomFilterButton/index.jsx","Images/arrow-right.svg","Screens/Filters/components/styled.jsx","Screens/Filters/components/SavedFilters/styled.jsx","Images/services.svg","Screens/Filters/components/SavedFilters/index.jsx","Screens/Filters/components/QuickFilters/defaultFilters.js","Hooks/useFilterToggle/index.js","Screens/Filters/components/QuickFilters/filterTypes.jsx","Screens/Filters/components/QuickFilters/index.jsx","Screens/Filters/components/Header/index.jsx","Screens/Filters/index.jsx","Screens/Manage/components/FilterSideBar/index.jsx","Screens/Host/components/HostDetail/Services/components/AddEditService/styled.jsx","Screens/Host/components/HostDetail/Services/components/AddEditService/index.jsx","Screens/Host/styled.jsx","Screens/Host/index.jsx","Common/Components/Tour/styled.jsx","Common/Components/Tour/tourConfig.jsx","Common/Components/Tour/EnjoyPopup/styled.jsx","Common/Components/Tour/EnjoyPopup/index.jsx","Common/Components/Tour/CommonTour/styled.jsx","Common/Components/Tour/CommonTour/index.jsx","Common/Components/Tour/index.jsx","Screens/Dashboard/components/ToolbarItems/Vulnerabilities/styled.jsx","Screens/Dashboard/components/ToolbarItems/Vulnerabilities/index.jsx","Common/Components/Grid/index.jsx","Screens/Dashboard/components/ToolbarItems/TopServices/styled.jsx","Screens/Dashboard/components/ToolbarItems/TopServices/index.jsx","Screens/Dashboard/components/ToolbarItems/Common/ViewAll/styled.jsx","Screens/Dashboard/components/ToolbarItems/TopHosts/styled.jsx","Screens/Dashboard/components/ToolbarItems/TopHosts/index.jsx","Screens/Dashboard/components/ToolbarItems/Summary/styled.jsx","Screens/Dashboard/components/ToolbarItems/Summary/index.jsx","Common/styled/common.jsx","Screens/Dashboard/components/ToolbarItems/LatestVulns/styled.jsx","Screens/Dashboard/components/ToolbarItems/LatestVulns/index.jsx","Screens/Dashboard/components/ToolbarItems/StatusChart/styled.jsx","Screens/Dashboard/components/ToolbarItems/StatusChart/index.jsx","Screens/Dashboard/components/ToolbarItems/Common/Box/styled.jsx","Screens/Dashboard/components/Layout/styled.jsx","Images/agent_small.svg","Images/report_small.svg","Images/ico-web-shell.svg","Screens/Dashboard/components/ToolbarItems/ActivityFeed/styled.jsx","Common/Components/ButtonLink/styled.jsx","Screens/Dashboard/components/ToolbarItems/ActivityFeed/index.jsx","Screens/Dashboard/components/ToolbarItems/Card/components/Target/styled.jsx","Screens/Dashboard/components/ToolbarItems/Card/components/Clipboard/index.jsx","Screens/Dashboard/components/ToolbarItems/Card/components/Target/index.jsx","Screens/Dashboard/components/ToolbarItems/Card/styled.jsx","Screens/Dashboard/components/ToolbarItems/Card/index.jsx","Screens/Dashboard/components/ToolbarItems/CommandHistory/styled.jsx","Screens/Dashboard/components/ToolbarItems/CommandHistory/index.jsx","Screens/Dashboard/components/ToolbarItems/Feeds/styled.jsx","Screens/Dashboard/components/ToolbarItems/Feeds/index.jsx","Screens/Dashboard/components/Layout/index.jsx","Screens/ManageEditCreate/components/ImportFileCreationModal/styled.jsx","Screens/ManageEditCreate/components/ImportFileCreationModal/components/UploadSummary/styled.jsx","Screens/ManageEditCreate/components/ImportFileCreationModal/components/UploadSummary/index.jsx","Screens/ManageEditCreate/components/ImportFileCreationModal/components/DragStep/styled.jsx","Screens/ManageEditCreate/components/ImportFileCreationModal/components/AdvancedOptions/styled.jsx","Screens/ManageEditCreate/components/ImportFileCreationModal/components/AdvancedOptions/CheckboxField/styled.jsx","Screens/ManageEditCreate/components/ImportFileCreationModal/components/AdvancedOptions/CheckboxField/index.jsx","Screens/ManageEditCreate/components/ImportFileCreationModal/components/AdvancedOptions/index.jsx","Screens/ManageEditCreate/components/ImportFileCreationModal/components/DragStep/index.jsx","Screens/ManageEditCreate/components/ImportFileCreationModal/components/UploadStep/index.jsx","Common/Components/FilesList/styled.jsx","Common/Components/FilesList/index.jsx","Screens/ManageEditCreate/components/ImportFileCreationModal/components/ListStep/styled.jsx","Screens/ManageEditCreate/components/ImportFileCreationModal/components/ListStep/index.jsx","Screens/ManageEditCreate/components/ImportFileCreationModal/index.jsx","Common/Components/EmptyVulns/styled.jsx","Common/Components/EmptyVulns/index.jsx","Common/Components/InputFilter/styled.jsx","Common/Components/InputFilter/components/DataContainer/styled.jsx","Common/Components/InputFilter/components/DataContainer/index.jsx","Common/Components/InputFilter/index.jsx","Common/Components/SeverityDropdown/styled.jsx","Common/Components/SeverityDropdown/index.jsx","Common/Components/EORDropdown/styled.jsx","Common/Components/EORDropdown/index.jsx","Screens/ManageEditCreate/components/ManualCreationModal/components/MarkdownInput/styled.jsx","Screens/ManageEditCreate/components/ManualCreationModal/components/MarkdownInput/index.jsx","Screens/ManageEditCreate/components/ManualCreationModal/components/General/styled.jsx","Screens/ManageEditCreate/components/ManualCreationModal/components/General/InputCVE.jsx","Screens/ManageEditCreate/components/ManualCreationModal/components/General/index.jsx","Screens/ManageEditCreate/components/ManualCreationModal/components/TechnicalDetails/styled.jsx","Screens/ManageEditCreate/components/ManualCreationModal/components/TechnicalDetails/index.jsx","Screens/ManageEditCreate/components/ManualCreationModal/components/CustomFields/index.jsx","Screens/ManageEditCreate/components/ManualCreationModal/components/Evidence/index.jsx","Common/Components/InputSearch/styled.jsx","Common/Components/InputSearch/index.jsx","Screens/ManageEditCreate/components/ManualCreationModal/components/Assets/components/AddServicePanel/styled.jsx","Screens/ManageEditCreate/components/ManualCreationModal/components/Assets/components/AddServicePanel/index.jsx","Screens/ManageEditCreate/components/ManualCreationModal/components/Assets/styled.jsx","Images/new_vuln_modal_icon.svg","Screens/ManageEditCreate/components/ManualCreationModal/components/Assets/index.jsx","Screens/ManageEditCreate/components/ManualCreationModal/styled.jsx","Images/next_arrow.svg","Screens/ManageEditCreate/components/ManualCreationModal/components/Header/styled.jsx","Screens/ManageEditCreate/components/ManualCreationModal/components/Header/index.jsx","Common/Components/EvidenceTab/components/ModalWarning/styled.jsx","Common/Components/EvidenceTab/components/ModalWarning/index.jsx","Screens/ManageEditCreate/components/ManualCreationModal/index.jsx","Screens/Dashboard/components/Dashboard/styled.jsx","Screens/Dashboard/components/DashboardLayout.jsx","Screens/Dashboard/components/Dashboard/index.jsx","Screens/Errores/NotFound.jsx","Screens/Errores/NotFoundContainer.jsx","Screens/Login/components/styled.jsx","Screens/Login/components/Login.jsx","Screens/KnowledgeBase/components/ManualCreationModal/components/General/styled.jsx","Screens/KnowledgeBase/components/ManualCreationModal/components/General/index.jsx","Screens/KnowledgeBase/components/ManualCreationModal/components/TechnicalDetails/styled.jsx","Screens/KnowledgeBase/components/ManualCreationModal/components/TechnicalDetails/index.jsx","Screens/KnowledgeBase/components/ManualCreationModal/styled.jsx","Screens/KnowledgeBase/components/ManualCreationModal/components/CustomAttributes/styled.jsx","Screens/KnowledgeBase/components/ManualCreationModal/components/CustomAttributes/index.jsx","Screens/KnowledgeBase/components/ManualCreationModal/index.jsx","Screens/KnowledgeBase/components/CreateActions/styled.jsx","Common/Components/UploadSummary/styled.jsx","Common/Components/UploadSummary/index.jsx","Common/Components/ImportFileModal/styled.jsx","Common/Components/ImportFileModal/index.jsx","Screens/KnowledgeBase/components/ImportFileModalContainer/index.jsx","Screens/KnowledgeBase/components/CreateActions/index.jsx","Screens/KnowledgeBase/components/ActionBar/components/EditButton/index.jsx","Screens/KnowledgeBase/components/ActionBar/components/DeleteButton/index.jsx","Screens/KnowledgeBase/components/ActionBar/components/DeleteConfirmationModal/index.jsx","Screens/KnowledgeBase/components/RefreshButton/styled.jsx","Screens/KnowledgeBase/components/RefreshButton/index.jsx","Screens/KnowledgeBase/components/ActionBar/index.jsx","Screens/KnowledgeBase/components/styled.jsx","Common/Components/CustomReactTable/leftClickHelper.js","Screens/KnowledgeBase/components/Table/styled.jsx","Screens/KnowledgeBase/components/Table/Columns.jsx","Screens/KnowledgeBase/components/Table/index.jsx","Screens/KnowledgeBase/components/index.jsx","Screens/Manage/styled.jsx","Common/Components/Inputs/styled.jsx","Common/Components/Inputs/Dropdown/index.jsx","Screens/KnowledgeBase/components/EditVuln/styled.jsx","Screens/KnowledgeBase/components/EditVuln/components/ExpandableWrapper/styled.jsx","Screens/KnowledgeBase/components/EditVuln/components/ExpandableWrapper/index.jsx","Screens/KnowledgeBase/components/EditVuln/components/MarkdownEditor/styled.jsx","Screens/KnowledgeBase/components/EditVuln/components/MarkdownEditor/index.jsx","Screens/KnowledgeBase/components/EditVuln/components/ExternalId/index.jsx","Screens/KnowledgeBase/components/EditVuln/components/Policies/styled.jsx","Screens/KnowledgeBase/components/EditVuln/components/Policies/index.jsx","Screens/KnowledgeBase/components/EditVuln/components/ImpactsTab/styled.jsx","Screens/KnowledgeBase/components/EditVuln/components/ImpactsTab/index.jsx","Screens/KnowledgeBase/components/EditVuln/components/Resolution/index.jsx","Screens/KnowledgeBase/components/EditVuln/components/Description/index.jsx","Screens/KnowledgeBase/components/EditVuln/components/Severity/styled.jsx","Screens/KnowledgeBase/components/EditVuln/components/Severity/index.jsx","Screens/KnowledgeBase/components/EditVuln/components/Data/index.jsx","Screens/KnowledgeBase/components/EditVuln/components/CustomAttributes/styled.jsx","Screens/KnowledgeBase/components/EditVuln/components/CustomAttributes/index.jsx","Screens/KnowledgeBase/components/EditVuln/index.jsx","Screens/Manage/components/ManageTable/styled.jsx","Common/Components/ContextMenu/styled.jsx","Common/Components/ContextMenu/index.jsx","Common/Components/ContextMenu/components/MenuItem/styled.jsx","Common/Components/ContextMenu/components/MenuItem/index.jsx","Common/Components/ContextMenu/components/ContextSubMenu/styled.jsx","Common/Components/ContextMenu/components/ContextSubMenu/index.jsx","webpack:///./src/Images/shape.svg?f9a7","webpack:///./src/Images/icon-edit-enabled.svg?36e1","Images/icon-evidence.svg","Images/template.svg","Images/status.svg","Images/icon_severity.svg","Images/save_template.svg","Screens/Manage/components/ManageTable/components/ContextMenu/components/styled.jsx","Screens/Manage/components/ManageTable/components/ContextMenu/components/Filter/index.jsx","Screens/Manage/components/ManageTable/components/ContextMenu/components/Edit/components/EaseOfResolution/index.jsx","Screens/Manage/components/ManageTable/components/ContextMenu/components/Edit/components/ConfirmFalsePositive/index.jsx","Screens/Manage/components/ManageTable/components/ContextMenu/components/Edit/index.jsx","Screens/Manage/components/ManageTable/components/ContextMenu/components/Delete.jsx","Screens/Manage/components/ManageTable/components/ContextMenu/components/AddNewEvidence.jsx","Screens/Manage/components/ManageTable/components/ContextMenu/components/SaveAsTemplate.jsx","Screens/Manage/components/ManageTable/components/ContextMenu/components/Severity.jsx","Screens/Manage/components/ManageTable/components/ContextMenu/components/Status.jsx","Screens/Manage/components/ManageTable/components/ContextMenu/components/CopyLink.jsx","Screens/Manage/components/ManageTable/components/ContextMenu/components/CopyApiLink.jsx","Screens/Manage/components/ManageTable/components/ContextMenu/components/ApplyTemplate.jsx","Screens/Manage/components/ManageTable/components/ContextMenu/index.jsx","Common/Components/ConfirmationDialog/styled.jsx","Common/Kit/colors.jsx","Common/Kit/Typography/styled.jsx","Common/Kit/Button/styled.jsx","Common/Kit/Button/index.jsx","Common/Components/ConfirmationDialog/index.jsx","Screens/Manage/components/ManageTable/components/BulkUpdateConfirmationDialog/index.jsx","Screens/Manage/components/ManageTable/components/Table/columns/Columns.jsx","Screens/Manage/components/ManageTable/components/Table/Functions.js","Screens/Manage/components/ManageTable/components/Table/components/SubTable/index.jsx","Screens/Manage/components/ManageTable/components/Table/components/EmptyState/styled.jsx","Screens/Manage/components/ManageTable/components/Table/components/EmptyState/index.jsx","Screens/Manage/components/ManageTable/components/Table/index.jsx","Screens/Manage/components/ManageTable/components/BulkUpdateModal/components/BulkTitle/styled.jsx","Screens/Manage/components/ManageTable/components/BulkUpdateModal/components/BulkTitle/index.jsx","Screens/Manage/components/ManageTable/components/BulkUpdateModal/components/SubmitButtons/styled.jsx","Screens/Manage/components/ManageTable/components/BulkUpdateModal/components/SubmitButtons/index.jsx","Screens/Manage/components/ManageTable/components/BulkUpdateModal/styled.jsx","Screens/Manage/components/ManageTable/components/BulkUpdateModal/components/BulkMarkdownEditor/index.jsx","Common/Components/v2/DebouncedInput/index.jsx","Screens/Manage/components/ManageTable/components/BulkUpdateModal/components/NameInput/index.jsx","Screens/Manage/components/ManageTable/components/BulkUpdateModal/components/ItemList/index.jsx","Screens/Manage/components/ManageTable/components/BulkUpdateModal/components/Impact/index.jsx","Screens/Manage/components/ManageTable/components/BulkUpdateModal/components/components.jsx","Screens/Manage/components/ManageTable/components/BulkUpdateModal/index.jsx","Screens/Manage/components/ManageTable/components/SelecAll/styled.jsx","Screens/Manage/components/ManageTable/components/SelecAll/index.jsx","Screens/Manage/components/ManageTable/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/TabSelector/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/TabSelector/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Header/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Header/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/Tabs/index.jsx","Screens/Manage/components/VulnerabilityDetail/styled.jsx","Hooks/useWindowSize/index.jsx","Screens/Manage/components/VulnerabilityDetail/components/ImagePreviewModal/styled.jsx","Screens/Manage/components/VulnerabilityDetail/components/ImagePreviewModal/index.jsx","Screens/Manage/components/VulnerabilityDetail/index.jsx","Common/Components/VulnFlagFilter/styled.jsx","Common/Components/VulnFlagFilter/index.jsx","Screens/Manage/components/CreateActions/styled.jsx","Images/icon-action-bar-more.svg","Screens/Manage/components/CreateActions/index.jsx","Screens/Manage/components/CustomActionBar/components/DeleteConfirmationModal/index.jsx","Screens/Manage/components/CustomActionBar/components/EditButton/index.jsx","Screens/Manage/components/CustomActionBar/components/DeleteButton/index.jsx","Screens/Manage/components/CustomActionBar/components/OpenContextMenu/styled.jsx","Screens/Manage/components/CustomActionBar/components/OpenContextMenu/index.jsx","Images/icon-show-duplicates.svg","Screens/Manage/components/CustomActionBar/components/GroupFieldSelector/index.jsx","Screens/Manage/components/CustomActionBar/components/DuplicateButton/styled.jsx","Images/icon-action-bar-tags.svg","Screens/Manage/components/CustomActionBar/components/DuplicateButton/index.jsx","Screens/Manage/components/CustomActionBar/components/TagButton/styled.jsx","Screens/Manage/components/CustomActionBar/components/TagButton/index.jsx","Screens/Manage/components/CustomActionBar/components/RefreshButton/styled.jsx","Screens/Manage/components/CustomActionBar/components/RefreshButton/index.jsx","Screens/Manage/components/CustomAttributesModal/styled.jsx","Screens/Manage/components/CustomAttributesModal/index.jsx","Screens/Manage/components/CustomActionBar/components/AddRemoveColumnsButton/index.jsx","Screens/Manage/components/CustomActionBar/components/ActionBar/index.jsx","Screens/Manage/components/CustomActionBar/index.jsx","Common/Components/WarningModal/styled.jsx","Common/Components/WarningModal/index.jsx","Screens/Manage/components/ManageTable/components/ContextMenu/components/TemplateModal/styled.jsx","Screens/Manage/components/ManageTable/components/ContextMenu/components/TemplateModal/index.jsx","Screens/Manage/index.jsx","Screens/Workspaces/components/ContextMenuWorkspaceMassiveUpdate/styled.jsx","Screens/Workspaces/components/ContextMenuWorkspaceMassiveUpdate/index.jsx","Screens/Workspaces/components/Table/styled.jsx","Screens/Workspaces/components/Table/Name/styled.jsx","Screens/Workspaces/components/Table/Name/index.jsx","Screens/Workspaces/components/Table/ImportanceColumn/styled.jsx","Screens/Workspaces/components/Table/ImportanceColumn/index.jsx","Screens/Workspaces/components/Table/EnableDisableWs/index.jsx","Screens/Workspaces/components/Table/Columns.jsx","Screens/Workspaces/components/Table/index.jsx","Screens/Workspaces/components/WSActionBar/styled.jsx","Screens/Workspaces/components/WSActionBar/components/LeftGroup/WsAddButton/index.jsx","Screens/Workspaces/components/WSActionBar/components/LeftGroup/WsDeleteButton/styled.jsx","Screens/Workspaces/components/WSActionBar/components/DeleteConfirmationModal/index.jsx","Common/Components/ModalWarning/styled.jsx","Common/Components/ModalWarning/index.jsx","Screens/Workspaces/components/WSActionBar/components/LeftGroup/WsDeleteButton/index.jsx","Screens/Workspaces/components/WSActionBar/components/LeftGroup/WsEditButton/styled.jsx","Screens/Workspaces/components/WSActionBar/components/LeftGroup/WsEditButton/index.jsx","Screens/Workspaces/components/WSActionBar/components/LeftGroup/MoreOptionsButton/index.jsx","Common/Components/CustomButton/styled.jsx","Common/Components/CustomButton/index.jsx","Images/grid_view.svg","Screens/Workspaces/components/WSActionBar/components/RightGroup/GridViewButton/styled.jsx","Screens/Workspaces/components/WSActionBar/components/RightGroup/GridViewButton/index.jsx","Images/list_view.svg","Screens/Workspaces/components/WSActionBar/components/RightGroup/ListViewButton/styled.jsx","Screens/Workspaces/components/WSActionBar/components/RightGroup/ListViewButton/index.jsx","Screens/Workspaces/components/WSActionBar/components/RightGroup/ShowInactive/styled.jsx","Screens/Workspaces/components/WSActionBar/components/RightGroup/ShowInactive/index.jsx","Images/ws-lock.svg","Screens/Workspaces/components/WSActionBar/index.jsx","Screens/Workspaces/styled.jsx","Images/ws-unlock.svg","Styles/effects/click.js","Screens/Workspaces/components/GridView/components/WorkspaceItem/styled.jsx","Screens/Workspaces/components/GridView/components/Stats/styled.jsx","Screens/Workspaces/components/GridView/components/Stats/index.jsx","Screens/Workspaces/components/GridView/components/Histogram/styled.jsx","Screens/Workspaces/components/GridView/components/Histogram/components/Flyout/styled.jsx","Screens/Workspaces/components/GridView/components/Histogram/components/Flyout/index.jsx","Screens/Workspaces/components/GridView/components/Histogram/index.jsx","Screens/Workspaces/components/GridView/components/WorkspaceItem/index.jsx","Screens/Workspaces/components/GridView/styled.jsx","Screens/Workspaces/components/GridView/index.jsx","Screens/Workspaces/components/GridView/components/ DeactivateConfirmationModal/index.jsx","Screens/Workspaces/index.jsx","Routes/AppRoute.jsx","index.jsx","Routes/Routes.jsx","Screens/Swagger/index.jsx","Images/generic_file.svg","Images/ff_users.png","Images/faraday_loadingbar.gif","Images/ff_tags.png","Images/osx.png","Images/ff_pipelines.png","Images/tool_logo_wpscan.png","Images/tool_logo_openvas.png","Images/linux.png","Images/ff_2fa.png","Images/ff_saml.png","Images/ff_ldap.png","Images/mini-terminal.svg","Images/faraday-logo.svg","Images/help.svg","Images/ff_analytics.png","Images/ff_planner.png","Images/ff_reporting.png","Images/ff_scheduler.png","Images/faraday_logo.svg","Images/tool_logo_w3af.png","Images/tool_logo_burp.png","Images/tool_logo_arachni.png","Images/tool_logo_nikto.png","Images/tool_logo_nessus.png","Images/tool_logo_nmap.png","Images/tool_logo_nuclei.png","Images/tool_logo_cli.png","Images/tool_logo_insightVM.png","Images/tool_logo_qualys.png","Images/tool_logo_shodan.png","Images/tool_logo_sonarQube.jpeg","Images/tool_logo_sublist34.png","Images/tool_logo_tenable.png","Images/tool_logo_zap.png","Images/windows.png","Images/laptop_icon.svg","Images/shodan.png","Images/Checkbox_empty.svg","Images/Checkbox_ok.svg","Images/drag.svg","Images/noun-help.svg","Images/icon-edit.png","Images/command.svg","Images/empty-feed.png","Images/empty-vulns.png","Images/warning-delete.svg","Images/ff_duplicates.png","Images/shape.svg","Images/icon-edit-enabled.svg"],"names":["collection","locale","title","keys","getLocaleSelector","createSelector","state","messagesKeys","forEach","translation","IntlProviderContainer","connect","messages","IntlProvider","displayName","black","white","white1","dark1","dark2","dark3","dark4","dark5","dark6","purple1","purple2","purple3","warmPurple","light1","light2","light3","light4","paleGrey","grey1","grey2","grey3","grey4","grey5","grey6","grey7","grey8","grey9","grey10","grey11","grey12","grey13","grey14","grey15","grey16","grey17","grey18","grey19","grey20","grey21","grey25","grey26","grey27","grey30","grey31","blue1","blue2","blue3","blue4","blue5","blue6","blue7","blue8","blue9","blue10","blue11","blue12","darkBlueGrey","blueCerulean","softBlue","iceBlue","red1","red2","red3","redPink","orange1","orange2","green1","green2","green3","green4","apple","blueGrey","tangerine","yellow1","Default","styled","div","colors","props","disabled","css","Accept","_title","_g","Cancel","_excluded","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","_ref","svgRef","createElement","width","height","viewBox","ref","undefined","id","stroke","strokeWidth","fill","fillRule","transform","d","ForwardRef","forwardRef","Wrapper","WrapperTitle","show","Title","Message","Footer","warningIcon","Modal","icon","children","onAccept","onClose","acceptLabel","closeLabel","onClick","defaultProps","useKeypress","action","useEffect","onKeyup","e","window","addEventListener","removeEventListener","fadeInKeyframes","from","to","keyframes","slideInKeyframes","slideInRightKeyframes","slideInLeftKeyframes","slideInRight","slideInLeft","fadeIn","fadeOut","fadeOutKeyframes","spinnerKeyframes","spin","extend","slideIn","overlay","p","background","spinner","diameter","border","foreground","attrs","addEditServices","useModal","Element","useState","showModal","setShowModal","toggle","setError","message","type","_path","selectShowError","get","selectErrorMessage","Error","dispatch","useDispatch","ModalError","showModalError","toggleModalError","useSelector","showError","selectPreferences","updatePreferences","items","getState","preferences","newPreferences","api","save","data","selectCurrentWorkspace","selectUrlReturn","selectIsAdmin","selectUserName","selectApiVersion","selectWsPort","createNameKey","label","value","name","searchByFilterKey","autocomplete","operators","groupByKey","field","createFilter","op","val","createLabelName","FILTER_OPERATORS","eq","neq","like","ilike","greaterOrEqual","greater","lessOrEqual","less","has","any","in","notIn","isNull","isNotNull","and","or","isOneOf","isNotOneOf","notAny","SEARCH_BY_AUTOCOMPLETE_KEYS","critical","high","medium","low","informational","unclassified","true","false","trivial","simple","moderate","difficult","infeasible","vulnerability","vulnerability_web","open","closed","filtered","reOpened","riskAccepted","SEVERITY_AUTOCOMPLETE","BOOL_AUTOCOMPLETE","EASE_OF_RESOLUTION_AUTOCOMPLETE","VULN_TYPE_AUTOCOMPLETE","STATUS_AUTOCOMPLETE","SERVICES_STATUS_AUTOCOMPLETE","SEARCH_BY_FILTER_KEYS","asset","confirmed","createDate","creatorCommandId","cve_instances__name","cve_instances","cvss2","cvss3","description","easeOfResolution","externalId","hostnames__name","hostNames","ip","method","os","owned","path","request","resolution","response","service__name","service__port","serviceName","servicePort","services__name","services__port","services__status","services__version","servicesName","servicesPort","servicesStatus","servicesVersion","severity","status","tool","updateDate","GROUP_BY","none","filter","target_host_ip","cveAndTarget","CONTEXT_MENU_FILTER_KEYS","date","service","tags","VULNS_SEARCH_BY_FILTER_KEYS","VULNS_GROUP_BY_KEYS","VULNS_CONTEXT_MENU_FILTER_KEYS","ASSETS_SEARCH_BY_FILTER_KEYS","ASSETS_GROUP_BY_KEYS","KB_SEARCH_BY_FILTER_KEYS","CONFIRMED_FLAG_FILTERS","notConfirmed","CLOSED_FILTERS","KB_FILTERS","DASHBOARD_FILTERS","severityType","statusType","KEY_LABELS_MAP","entries","map","OPERATOR_LABELS_MAP","operator","AUTOCOMPLETE_LABELS_MAP","MOCK_VULN_LIST","obj_id","status_code","_rev","metadata","creator","command_id","update_user","update_controller_action","update_action","owner","create_time","update_time","vulnerability_template_id","_id","policyviolations","query","external_id","refs","desc","params","easeofresolution","parent_type","parent","pname","impact","availability","integrity","accountability","confidentiality","hostnames","childs","vulnerability_duplicate_id","host_os","custom_fields","choice_field","test","custom_name","list_field","issuetracker_json","_attachments","website","selectTourFinished","setSelectedEntity","selectedEntity","setAdvancedFilterValue","entity","clearAdvancedFilter","setFilterError","filterError","clearFilterError","setAdvancedMode","isAdvancedMode","setSaveEnabled","saveEnabled","resetFilters","setAdvancedFilter","setOrderBy","order_by","isEmpty","newOrderBy","individualOrderBy","direction","setPageNumber","pageNumber","addFilterHistory","overrideFilterHistory","filterHistory","overrideFilter","filters","clearFilters","concatenateFilters","actualFilters","selectFilters","concatenatedFilter","groupFiltersByName","reduce","result","item","rebuildFilters","selectFilterHistory","groupedFiltersObject","filterArray","group","grouped","some","includes","addFilter","isFilteringBy","removeFilter","newFilterHistory","f","isEqual","setFilter","clearGroupBy","setGroupBy","group_by","setExpandedFilter","expandedFilter","expandGroupBy","groupByField","selectGroupByField","isGroupingByService","isGroupingByHostname","isGroupingByCVE","filterValue","setCustomFilters","customFilters","getMappedCustomFilters","JSON","parse","user_query","json_query","isAdvancedFilter","getCustomFilters","vulnMappedCustomFilters","assetMappedCustomFilters","storeDashboardFilter","setTourFinished","tourFinished","severities","methodOptions","selectActiveFeeds","tools","selectCommandHistory","selectIsFetching","getLatestVulnsSuccedCallback","showModalImportDashboard","getStatsFiltered","workspace","getWsStatsFiltered","error","workspaceIsInWorkspaceActivity","workspaceActivity","ws","removeWorkspaceFromWorkspaceActivity","selectWorkspaceActivity","selectAutoSelectWs","selectWorkspaceSaved","selectWsEditCreateName","selectWsEditCreateDescription","selectWsEditCreateStart","selectWsEditCreateEnd","selectWsEditCreateLocale","selectWsEditCreateErrorMessage","selectWsEditCreateId","selectCurrentWsName","selectScope","selectWsEditActive","selectWsEditCustomer","selectWsEditReadonly","selectWsEditCreatePublic","selectWsEditCreateImportance","selectModal","modal","closeModal","modalName","payload","openModal","selectRedirectPathname","selectRedirectSearch","selectRedirectSaveHistory","selectHasPendingChanges","setHasPendingChanges","hasPendingChanges","redirectStart","redirectFinished","ignorePendingChanges","performRedirect","pathname","saveHistory","search","push","replace","redirect","getWorkspaces","fetchWorkspaces","getData","selectQueryParam","enableDisable","workspaceList","updateWorkspace","active","newWs","changeReadOnly","readonly","getWsStats","selectWorkspace","vulnsSelectedInfo","getUpdatedFields","existingObj","newObj","acc","Array","isArray","stringify","updatedNestedObj","setVisibilityCreateModal","moreStatusChange","workspaceSelectedFromTable","workspaceName","vulns","setWorkspaceFilter","string","newFilter","toogleGridView","showGridView","setField","updateWS","find","selectCommands","selectUnfinishedCommands","c","finished","selectIsProcessingFiles","fileType","toBase64","file","Promise","resolve","reject","reader","FileReader","readAsDataURL","onload","onerror","fieldName","getTemplates","manage","setFileIndex","index","setUploadState","uploadFile","fileName","faraday","getSession","cancelTokenSource","CancelToken","fdParams","csrf_token","fd","FormData","append","axios","post","CURRENT_API_VERSION","headers","onUploadProgress","progressEvent","Math","round","loaded","total","manageEditCreate","fileIndex","cancelToken","token","commandIdResponse","command","currentIndex","filesToUpload","ImageWrapper","EvidenceDefault","_EvidenceDefault","BlueText","UploadEvidence","getEvidences","isEditing","useFilePicker","multiple","readFilesContent","maxFileSize","openFileSelector","plainFiles","clear","errors","attachments","attachment","uploadImage","content_type","split","evidences","selectVulnDetailId","csrfToken","selectCsrfToken","workspaceSelected","promises","evidence","newEvidenceName","renameEvidence","File","saveAttachments","all","addEvidences","onUpload","copyToClipboard","text","clipboard","navigator","writeText","opacity","EvidenceImg","img","ImagePlaceholder","_ImagePlaceholder","Options","AttachmentWrapper","FileNameWrapper","FileName","FileExtension","DeleteEvidenceIcon","_DeleteEvidenceIcon","Clipboard","ClipboardIcon","DownloadIcon","_DownloadIcon","Attachment","deleteEvidence","vulnDetailId","contentType","isAnImage","imageSrc","filename","slice","join","extension","last","setImagePreview","src","alt","Base64","extendString","u8arr","toUint8Array","FileSaver","EvidenceTab","setEvidences","selectAttachments","readOnly","selectReadOnly","permissions","selectPermissions","allowed","update","files","useCallback","getAttachments","removeAttachments","newEvidences","selectCustomAttributes","selectHasCustomAttributes","selectCAToEdit","selectParsedCustomAttributes","unParsedCustomFields","customFields","field_display_name","visible","order","selectCustomAttributesList","attr","field_name","CustomAttribute","color","FIELD_TYPES","COLOR_BY_CUSTOM_ATTRIBUTE_TYPE","str","int","list","choice","CUSTOM_ATTRIBUTE_TYPES","STRING","INTEGER","LIST","CHOICE","NAME_TO_TYPE","integer","TYPE_TO_NAME","TYPE_TO_PLACEHOLDER","PlaceholderText","span","CustomFieldContainer","onShow","showContent","isChoiceField","field_type","types","canShowContent","showPlaceholder","placeholders","errorStyle","Input","input","boldTitle","Asterisk","Texts","ErrorMessage","Warning","WarningIcon","StandardTextField","onChange","placeholder","mandatory","errorMessage","className","min","max","step","onBlur","Button","button","isLoading","BlueButton","OutlinedButton","customFieldContent","ellipsisText","Buttons","Content","StringCustomField","vuln","onCancel","onSave","initialValue","trim","toString","setValue","editMode","setEditMode","StyledReactMarkdown","ReactMarkdown","GlobalStyle","createGlobalStyle","MarkdownStyles","PreviewWrapper","DataContainer","EditorContainer","ButtonsWrapper","EmptyWrapper","RedAster","SaveButton","CancelButton","Md","markdown","editable","temp","handleEditorChange","toogleShowPreview","cancelEdition","calculateHeight","setState","hidePlaceholder","toggleEditable","prevProps","it","prevState","showPreview","saveAction","size","isRequired","mdParser","MarkdownIt","style","flexDirection","paddingBottom","renderHTML","render","plugins","config","view","menu","md","html","fullScreen","hideMenu","canView","saveMarkdown","React","Component","withRouter","MdCustomField","finalValue","IntegerCustomField","responsive","DataItem","isOdd","Text","Span","hasTitle","TrashIcon","Trash","CustomList","onChangeHandler","onAddHandler","onRemoveHandler","handleKeyPress","v","setItem","listData","removeItem","addItem","event","toLowerCase","onKeyPress","onKeyDown","role","aria-label","tabIndex","random","substr","n","List","ul","Item","li","CustomListWrapper","ListCustomField","options","setOptions","option","newOptions","optionIndex","newItems","splice","isDisabled","capitalize","charAt","toUpperCase","Dropdown","defaultValue","strValue","updateValue","customStyle","menuPortalTarget","menuPlacement","styles","isSearchable","getSeverityColor","severitySelect","control","provided","borderRadius","boxShadow","getValue","backgroundColor","left","valueContainer","padding","indicatorSeparator","display","dropdownIndicator","position","top","right","fontSize","textAlign","cursor","isSelected","paddingLeft","textTransform","fontWeight","selectProps","isFocused","marginTop","zIndex","minWidth","menuList","maxHeight","overflowX","paddingTop","singleValue","transition","basicSelect","severityDropdownStyle","hasValue","alignItems","maxWidth","eorDropdownStyle","borderColor","borderWidth","borderStyle","groupSelect","letterSpacing","marginLeft","statusSelect","standardDropdownStyle","borderBottomWidth","borderRightWidth","textOverflow","paddingRight","whiteSpace","overflow","normal","StandardDropdown","newValue","selectObject","o","newWidth","newStyle","newControl","changeStyle","dropdownOptions","element","ChoiceCustomField","setOptionsList","selectedOption","setSelectedOption","formattedList","field_metadata","replaceAll","unshift","TYPE_TO_CONTENT","MARKDOWN","CustomFieldContent","onSaveCallback","onSaveCustomAttribute","fieldValue","CustomField","dataSelected","setShowContent","onShowContent","isInteger","NoFieldsText","toggleExpandCollapse","tab","fields","CustomButton","ToggleButtons","intl","useIntl","fieldGroups","general","technical","customAttributes","toggleAll","fieldValues","expanded","formatMessage","Header","Counter","IconWrapper","ExpandedIcon","ArrowExpanded","greyBlue","CollapsedIcon","ArrowCollapsed","ChildWrapper","$isExpanded","ExpandableWrapper","count","isExpanded","setIsExpanded","showCount","memo","getCustomFieldValueFromVuln","customField","selectTemplates","templates","template","doc","selectManageEditCreate","selectDataField","selectNameField","selectDescriptionField","selectSeverityField","selectTargetsField","selectRequestField","selectResponseField","selectIsWebVuln","selectWebsiteField","selectStatusCodeField","selectParamNameField","selectParamsField","selectQueryField","selectMethodField","selectPathField","selectReadonly","selectServicesAndHosts","services","host","host_id","serv","hostname","hostnameData","selectUploadState","selectFileIndex","selectErrorFilesList","selectCurrentUploadState","selectCurrentUploadError","selectError","defaultFields","selected","defaultMin","locked","cvss","cve","cwe","create_date","host__os","references","web","owasp","risk","update_date","selectManageFields","removeColumn","manage_table","cloneDeep","renameColumn","newColumn","newManageTable","newFieldName","actualFieldName","setCustomAttributeToEdit","ca","renameCustomAttributeColumn","caToEdit","currentAttributes","dragCustomAttribute","dragResult","destination","destDroppableId","sourceDroppableId","sourceIndex","destIndex","fieldToRelocate","newAttributes","attributes","reorderedAttributes","field_order","updateCustomAttribute","useExpandable","isExpandedBase","selectTabToggleValue","vulnId","fieldHasValue","ID","CustomFieldWrapper","selectVulnDetail","editValue","selectField","newCustomAttribute","updateVuln","setVulnCustomAttribute","CustomFieldsTab","useResizeY","elemRef","resizerRef","def","isInitialValueSet","initialValueSet","setHeight","current","initialHeight","dragging","useRef","previousClientY","handleMouseDown","document","body","clientY","handleMouseUp","handleMouseMove","change","newHeight","resizerNodeRef","cx","cy","r","InputWrapper","containerHeight","MDButtonsWrapper","Resizer","_Resizer","PlainText","Preview","plainText","MDPreview","setEditing","selectedWorkspace","selectCurrentlySelectedWorkspace","textBlock","regex","match","parseMD","StyledMdEditor","MdEditor","mdConfig","MDEditor","setMarkdown","onImageUpload","editorRef","editorWrapperRef","handleClickOutside","contains","nodeMdText","setSelectionRange","focus","MarkdownInput","MarkdownEditor","defHeight","minHeight","wrapperRef","CustomInput","StringField","debouncedOnChangeHandler","debounce","validateEnter","keyCode","submit","FieldWrapper","TAB","TechnicalTab","queryString","statusCode","parameterName","parameter","isWeb","isExpandedData","isExpandedWebsite","isExpandedRequest","isExpandedResponse","isExpandedMethod","isExpandedPath","isExpandedQueryString","isExpandedStatusCode","isExpandedParameterName","isExpandedParameter","CopyLinkWrapper","CopyLinkIcon","_CopyLink","CopyLink","link","CopyApiLinkWrapper","CopyApiLinkIcon","_CopyApiLink","CopyApiLink","vulnPath","getRequestUrl","InputTitle","blueGrey2","vulnDetail","vulnName","setVulnName","updateName","sevColor","C","H","M","L","I","U","disable","SeverityIcon","SeverityName","SeverityItem","SeverityPicker","themes","allVulns","Icon","svg","theme","FlagIcon","Label","DisplayConfirmed","EaseOfResolutionPicker","vulnEaseOfResolution","StatusPicker","statusList","ActionBar","DateFormatter","today","moment","dateFormatted","isSame","format","shortDateFormat","longDateFormat","FieldContainer","FieldName","FieldValue","HostData","Target","Hostname","h","head","Date","createTime","selectRememberMe","selectIsLoggedIn","selectIsValidatingSession","Description","currentVuln","success","Resolution","References","selectCurrentReferences","refsList","valueAdded","newRefs","indexToRemove","Policies","selectCurrentPolicies","newPolicies","pol","margin","ImpactItem","Row","Impacts","onChangeAccountabilityHandler","onChangeAvailabilityHandler","onChangeConfidentialityHandler","onChangeIntegrityHandler","impacts","selectCheckbox","hideTitle","ImpactsTab","selectCurrentImpacts","setImpacts","impactChanged","newImpacts","OwnerWrapper","Owner","ExternalId","selectCurrentExternalId","AddTagButton","editLabel","Tags","Risk","td","bold","big","pb","Line","tr","_style","Link","a","x","y","enableBackground","xmlSpace","TrashWrapper","Placeholder","InputComp","Plus","FaPlus","ErrorIcon","_Error","CVE","showRiskInfo","setList","onAdd","newList","onRemove","filterList","useVulnFieldPatch","validator","addCVE","isValid","href","rel","RiskAndCVE","useMemo","base_score","isV3","score","vector_string","Fields","GeneralTab","TABS","intlId","component","selectImagePreview","selectVulnsList","selectVulnsCount","selectVulnsSelected","selectVulnDetailSelectedTab","selectedTabId","selectVulnDetailSelectedTabId","defaultTab","selectShowDetail","selectShowManageLeftFilters","selectIsFetchingExpandedData","detail","sortBy","allVulnsAreSelected","vulnList","every","testVuln","someVulnIsSelected","selectShowContextMenu","selectContextMenuXPos","selectContextMenuYPos","selectModalBulkUpdateField","selectModalBulkUpdateValue","selectTemplatesCreated","selectFailedTemplates","selectStatusTemplateMessage","templatesCreated","failedTemplates","createdSuccessfully","singlePartialSuccess","multiplePartialSuccess","singleFailure","multipleFailure","modalData","subtitle","selectShowDeleteConfirmation","selectSelectAll","imagePreview","addDeleteController","selectCalculator","areVulnsSelected","pivot","findIndex","el","vulnsSelected","shiftKey","start","end","selectRow","isGroupingBy","selectIsGrouping","g","groupData","vulnGroup","selectAllVulns","vulnsList","vulnCount","pageSize","selectRowsPerPage","exportCsv","_","Blob","showManageLeftFilters","breakpoint","redirectToVulnDetail","currentWorkspace","redirectToManage","setVulnerabilityDetailTab","vulnDetailSelectedTab","showVulnerabilityDetail","vulnPreviewEditSuccedCallback","vulnBefore","vulnAfter","groupBy","indexGroupDataAfter","indexVulnAfter","indexGroupDataBefore","indexVulnBefore","vulnPreviewEditErrorCallback","set","setBulkUpdateField","setBulkUpdateValue","addBulkUpdateValue","removeBulkUpdateValue","refreshVulnsList","vulnsCount","getImpactData","selectedVulns","keyNames","imp","bulkUpdateVulns","selectAll","vulnIDs","advancedFilterQueryParam","selectAdvancedFilterQueryParam","hasAdvancedFilter","standardQueryParam","queryParam","isDetailVulnSelected","selectedVuln","updatedVulnDetail","updateAllVulns","updatedVulnsList","updatedSelectedVulns","ids","updateVulns","showBulkUpdateModal","bulkUpdateField","bulkUpdateValue","onGetVulnsFail","endTour","newVulnsList","showContextMenu","XPos","YPos","currentXPos","currentYPos","contextMenuXPos","contextMenuYPos","setVulnsFilterError","newGetVulns","vulnsCountArray","vulnsCountGroupBy","prev","cur","isTourFinished","getExpandedGroupByData","selectAdvancedExpandedQueryParam","selectExpandedQueryParam","vulnerabilities","contextMenufilteringFunctions","nameValue","targetValue","date_parsed","dateValue","getFullYear","getMonth","getDate","serviceValue","setPage","important","open_services","mac","creation_time","severity_counts","last_modified","initialState","isFetching","hostList","hostCount","addColumnsOpened","mapGroupByIndex","showModalEditCreate","hostsSelected","lastSelected","lastHostSelected","lastIndexForRange","showLeftFilters","showDeleteConfirmation","selectMapGroupByIndex","selectHostList","selectHostCount","selectHostsSelected","selectShowHostLeftFilters","allHostsAreSelected","hosts","testHost","selectHostDetail","selectVulns","selectFields","selectShowHostDetail","selectSelectedService","selectIsFetchingServices","selectServices","selectServicesFields","getVulns","getServices","hostId","hostDetail","fetchServices","showHostDetail","hideHostDetail","setPageNumberVulnAssets","setHostsFilterError","getDataStartCallback","getDataSuccedCallback","getDataFailureCallback","fetchHosts","rows","updateHostList","appendHostListRow","hostRow","updateHostListRow","newHostList","hostIndex","setPageNumberAssets","toggleModalEditCreate","showHostLeftFilters","areHostSelected","allHost","hostSelected","hostGroup","updateHost","valueObj","hostDetailId","newHost","selectKnowledgeBaseProps","templatesSelected","showModalCreate","routeList","selectRoutes","totalVulnTemplate","rowsPerPage","page","updated","selectTemplateEditCreate","exploitation","customfields","knowledgeBase","fetchTemplates","total_rows","vulnTemplateCount","showVulnTemplateModalEdit","deleteVulnTemplateSelected","templateIds","deleteTemplates","setFilterTemplates","ENTITIES","values","advancedPlaceholder","documentationUrl","searchFunction","wsDependant","assets","getAssetsData","getKBData","SEARCH_BY_ENTITIES","getSelectedEntity","selectSelectedEntityLabel","selectSelectedEntityPathname","selectSearchFunction","selectIsAdvancedMode","selectSaveEnabled","searchKeyLabel","searchOperatorLabel","searchAutocompleteLabel","selectPage","selectGroupBy","selectFilterError","selectExpandedFilter","selectAdvancedFilter","selectEntity","selectIsFiltering","isDownloadQuery","entityFilters","offset","parsedFilter","limit","isOrdering","isGrouping","isFiltering","advancedFilter","orderBy","queryToParse","parsedQuery","filtersToParse","selectCustomFilters","selectCustomFilter","customFilter","selectStoredDashboardFilter","workspaces","vulnerability_template","selectWorkspacesSelected","selectLastWorkspaceSelected","selectLastIndexForRange","selectLastSelected","selectShowGridView","selectWorkspaceList","selectRedirect","selectMoreOptionsOpened","selectShowInactive","selectActiveWorkspaces","selectTotalVulns","activeWorkspaces","selectWorkspacesOrdered","selectOrderBy","sort","b","stats","critical_vulns","selectCurrentWorkspaceData","setUrlReturn","urlReturn","updateCurrentWorkspaceOnEdit","newWsName","oldWsName","workspaceSelectedForWorking","checkWorkspace","w","validateWorkspace","startsWith","version","url","baseUrl","processResponse","parseErrorMessage","htmlResponse","fetchApi","redirectTo","base","rest","withCredentials","isCancel","location","failureSessionValidationCallback","fetchLatestVulns","getVulnsCountByStatus","getVulnsCountBySeverity","getTopHostsDashboard","getVulnsCountByMultiWs","param","getTopServicesByName","getVulnsTimeline","getActivitiesList","getCommandHistory","encodeURI","exportCSV","fetchManifest","getSearchFilter","fetchById","createVuln","deleteVulns","deleteAllVulns","fetchApiConfig","forgotPassword","email","resetPassword","password","repeatPassword","password_confirm","getLicense","ver","addWorkspace","deleteWorkspace","getReportStatus","commandId","createWorkspace","escape","getHosts","createHost","deleteHost","fetch","fetchVulns","fetchTools","addService","ports","protocol","editService","createTemplate","updateTemplate","createService","changePassword","new_password","new_password_confirm","addCustomAttribute","getCustomAttributes","bulkRemove","removeCustomAttribute","fetchUserAgents","removeAgent","fetchToken","fetchAgentTools","runUserAgentTool","agentId","getActiveAgents","processData","createCustomFilter","removeCustomFilter","searchCustomFilter","updateCustomFilter","replaceCustomFilter","login","logout","dashboard","fileUploaderContext","settings","agents","auth","gcancelTokenSource","toggleAutoSelectWs","autoSelectWs","setStep","selectLocation","selectPathname","selectAction","startWizard","validateAutoLoginWs","workspaceToLogIn","setUser","user","roles","successSessionCallback","gitInfo","licenseStatus","hash","commit","shortHash","apiVersion","userName","wsPort","websocket_port","createSession","loginRedirect","autoSelect","firstLogin","FilterErrorContainer","FilterErrorLabel","CloseErrorIcon","CloseError","FilterError","SearchBarWrapper","shouldRedirect","selectedEntityPathname","currentLocationEntity","useKeyPress","targetKey","keyPressed","setKeyPressed","downHandler","upHandler","useFocus","htmlElRef","blur","filterByInput","inputValue","filterResult","DropdownOptionContainer","DropdownOptionLabel","isActive","DropdownOptions","onSelect","onSearch","defaultSelect","isLastDropdown","setCursor","downPress","upPress","enterPress","hovered","setHovered","elRefs","setElRefs","createRef","executeScroll","scrollIntoView","maxIndex","newCursor","onMouseEnter","onMouseLeave","_defs","colorInterpolationFilters","CloseIcon","Close","FilterTagContainer","TagContainer","valSelected","TagLabel","Tag","showDelete","onDelete","filterKey","valueParsed","FilterTags","labeledFilters","isObject","subKeyName","selectLabeledHistory","DraftTag","draftTag","SearchInput","TagsContainer","DropdownContainer","Backdrop","SearchIcon","Loupe","ClearIcon","Clear","SearchButton","DateInput","onValueSelect","showPicker","BasicFilter","basicInputValue","setBasicInputValue","showDropdown","setShowDropdown","setDraftTag","selectedKey","setSelectedKey","selectedOp","setSelectedOp","selectedVal","setSelectedVal","inputRef","setInputFocus","setInputBlur","tagsContainerRef","selectedEntityLabel","subKey","isSubKey","primaryKeyOperators","primaryKeyAutocomplete","subKeyOperators","subKeyAutocomplete","entityFilterKeys","filterKeyOperators","filterKeyAutocomplete","filteredEntities","filteredEntityKeys","filteredKeyOperators","filteredKeyAutocomplete","parsed","autocompleteInputSugestion","resetFilterIndexes","onDropdownSearch","elementName","elementValue","filterTag","isComplexSearch","tagsContainerWidth","clientWidth","dropdownPosition","isVisible","showDateInput","onFocus","filterHistoryCount","AdvancedFilter","advancedFilterValue","storedAdvancedFilter","validateFilterSyntax","onKeyUp","entityName","AdvancedModeWrapper","Help","AdvancedModeLabel","AdvancedModeSelector","basicFilters","ButtonContainer","ButtonLabel","FilterLabelContainer","FilterLabel","NameInput","ModalContainer","flipPos","SaveFilter","setInputValue","inputFocus","invertedDisplayPos","setInvertDisplayPost","isFilteringByAdvanced","disableSave","onBackdropClickHandler","saveFilter","standardFilter","getBoundingClientRect","viewWidth","FilterBar","SearchBar","BasicSearcher","filterText","setFilterText","clearFilter","trimmedValue","Searcher","totalVulns","canShowNewSearcher","canShowOldSearcher","TextArea","textarea","CustomTextArea","onBlurHandler","deflt","hardUpdate","CalendarWrapper","StringFieldContainer","highlight","CloseButton","CleanButton","extendMoment","originalMoment","DateRangePicket","context","isOpen","onToggle","clone","range","singleDateRange","helpMessage","cleanDates","Background","ModalWrapper","Body","TopRow","FieldTitle","FieldTitleDescription","Field","FieldDescription","FieldScope","CheckboxText","TextAreaContainer","TextField","Star","StarIcon","Importance","importance","callback","handleClick","stars","stopPropagation","ModalCreation","handleClose","workspaceSaved","scope","isValidWsName","setIsValidWsName","nameField","handleChange","validateWsName","onChangeDebounce","currentWsName","currentWorkspaceData","customer","isPublic","wsActivity","duration","start_date","getTime","end_date","public","updatedWorkspace","setFaradayWorkspace","startDate","endDate","newScope","useClickOutside","handler","listener","Toggle","Menu","lastelement","NoItems","WorkspaceSelectedName","ArrowDown","ChevronDown","WorkspaceOptionName","datk2","ActionsContainer","ViewAll","CreateNew","WorkspaceVulns","saveWorkspaceHistoryProp","newWsActivity","filteredWs","saveWorkspaceHistory","noWorkspaces","showNoItem","dropdownRef","isAdmin","isManage","isAssets","total_vulns","selectLogMeLastWorkspaceUsed","Username","validate","RegExp","selectMessage","Success","Password","PasswordSection","CustomPassword","Rule","ChangePassword","currentPassword","setCurrentPassword","newPassword","setNewPassword","repeatNewPassword","setRepeatNewPassword","valid","isValidPassword","CustomCheckbox","isChecked","toggleCheckboxChange","handleCheckboxChange","checked","WrapperCheckbox","CheckboxLabel","LoginSettings","logMeLastWorkspaceUsed","setLoginSettingsField","FeatureImage","TextWrapper","TitleWrapper","BoldDescription","FeatureWrapper","CloseIconImage","TitleBold","URL_PRICING","UpgradeLicense","image","descriptionIntlId","chunks","br","TwoFactor","FF2FA","Account","close","Saml","FFSaml","Ldap","FFLdap","Tabs","TabGroup","Subtitle","TabContent","parseOptions","formatOptions","listOfStrings","Container","Name","Type","DescriptionContainer","Icons","onEdit","draggableId","innerRef","draggableProps","dragHandleProps","fieldMetadata","ModalContent","ModalTitle","_Warning","ModalBody","BodyText","ButtonsContainer","ConfirmButton","ConfirmationModal","handleSubmit","AttributeList","fieldToDelete","setFieldToDelete","hasCustomAttributes","idToDelete","columnToDelete","droppableId","droppableProps","Head","CloseSVG","CloseIconWrapper","customHeader","TextFieldContainer","DisplayAddCustomAttribute","onSubmit","handleChangeType","handleChangeName","onAddItem","onRemoveItem","nameIsDuplicated","newName","formattedNewName","canCreate","isChoice","buttonLabel","getElementById","AddCustomAttribute","setName","setType","currentCustomAttributes","clearFields","parsedOptions","caToUpdate","newField","currentCa","updatedCa","newCaList","oldFields","currentOptions","table_name","createdCa","CustomAttributes","onDragEnd","visibleComponent","setVisibleComponent","setActive","click","menuItems","Settings","PrimaryTitle","SecondaryTitle","TertiaryTitle","Logo","UserContainer","Extras","Shell","About","HelpIcon","ColorRole","admin","pentester","client","asset_owner","getBackgroundColor","ColorImage","word","GetBackgroundColor","letter","DropdownMenu","UserDropdownItem","CustomLink","toggleModal","generateDropdownAction","generateDropdownLink","UserDropdown","modals","Preferences","User","userRole","dropdown","ModalPreferences","showModalPreferences","toggleModalPreferences","ModalExtras","showModalExtras","toggleModalExtras","ModalAbout","showModalAbout","toggleModalAbout","ModalHelp","showModalHelp","toggleModalHelp","setDropdown","s","handleOutsideClick","NavMenu","loggedIn","showWorkspaceSelector","selectIsOpen","selectPagesData","subMenu","enabledByRole","enabledByFeature","FF","FFAnalytics","FFPlanner","FFReports","FFScheduler","FFPipelines","FFUsers","setSideBarOpen","useMouseHover","delay","mouseEnterTimer","mouseLeaveTimer","mouseLeaveDebounced","clearTimeout","setTimeout","mouseEnterDebounced","cancelEvent","SideBarSubMenuItem","SubMenuHeader","SideBarSubMenu","showFF","hasMoreThanOneItem","loc","SubPage","ItemWrapper","SideBarItem","showMenu","setShowMenu","hasSelectedItem","hasOneChild","canShowMenu","canShowSubPages","enabledItems","data-tour","CompressedLogo","ShortLogo","FullLogo","LongLogo","Arrow","_Arrow","$isOpen","ReduxModal","SideBar","FFImage","setFFImage","FFDescription","setFFDescription","pages","process","FileWrapper","StyledLabel","LoadingIcon","LoadingWrapper","_polygon","Processing","LoadingGif","points","CustomCheckMark","CheckMark","FinishedOk","CustomErrorMark","ErrorMark","FinishedWithError","Status","commands","isShowingBody","HeaderMessage","ArrowExpandedSVG","ArrowCollapsedSVG","showBody","setShowBody","toggleBodyVisibility","FileUploadContext","CommandValidator","previousTimeout","setPreviousTimeout","timeout","unfinishedCommands","results","commandListUpdated","commandStatus","Done","ConfirmNavigationModal","onDone","cancel","done","RedirectModal","onbeforeunload","App","logOut","isValidatingSession","showImportModal","mounted","setMounted","isLoggedIn","ValidationFailedError","NotifyFailedValidations","modelState","raiseError","userMessage","alert","BlockedOrRestrictedEndpointError","ServerSideUnhandledExceptionError","NotFoundError","VerbNotAllowedOrMethodNotFoundError","ApplicationStoreMisconfiguredError","NotAuthorized","AccessDenied","NotAcceptable","constructor","column","errorObj","failureCallback","errorHandler","xsm","sm","lg","xlg","NS","ADD","REMOVE","mediaQueries","check","matches","add","remove","dispatchWSAction","store","socketMiddleware","socket","next","io","onAny","args","emit","breakpoints","bp","extraWorkspaces","reloadSummary","reloadActivityFeed","reloadTopHosts","reloadTopService","reloadVulnerabilities","reloadLatestVulns","showImportFileModal","vulnCountByStatus","reopen","vulnCountBySeverity","commandHistory","groups","copy","mainObj","objCopy","copyArray","mainArray","arrayCopy","newMapGroupByIndex","uniq","filterByID","array","newHostsSelected","hostToDelete","hostsList","isFetchingExpandedData","showVulnDetail","usesMockVulns","newVulnsSelected","vulnToDelete","lastVulnSelected","vulnGroupIndex","vulnSelected","vulnsSelectedArray","vulnUpdatedId","isFetchingPreview","groupVulns","createOrEditService","saved","selectedService","credentials","port","vulnsGrouped","selectedRow","mode","report","importSuccess","successMessage","ownder","default_gateway","hostnameToAdd","hostEditCreate","newHostnames","commandsInProcess","vulnTemplateList","showModalNew","allSelected","customfieldsData","showModalImport","csv","lastTemplateSelected","moreData","uploadState","errorFilesList","currentUploadState","currentUploadPercent","currentUploadError","selectionInfo","newRowsSelected","indexForRange","rowSelected","lastWorkspaceSelected","sorting","reference","policy","create_at","knowledgeBaseEditCreate","checkName","templatenames","loginSettings","tokenDuration","userAgents","triggerAgent","ignoreInfo","resolveHostname","agentTypes","draftNewAgent","server","tokenExpiresIn","newItem","toolName","variables","obj","errorReducer","showWorkspaceValidator","vulnsAssets","entityInitialState","entityState","sideBar","redirectPathname","redirectSearch","redirectSaveHistory","redirectHasPendingChanges","global","tabs","rememberMe","emailSent","currentEmail","submitted","sesion","validatingSession","paramName","policies","targets","t","tempTargets","tempFiles","shift","workspacesSelected","moreOptionsOpened","showInactive","workspaceCount","indexWorkspaces","wspace","indexWorkspacesSelected","users","currentName","workspaceEditCreate","executiveReport","initialStep","isSuccess","userHasBeenInWizard","summary","hostsCount","servicesCount","wizard","createRootReducer","history","combineReducers","router","connectRouter","createBrowserHistory","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","persistConfig","storage","session","blacklist","stateReconciler","autoMergeLevel1","pReducer","persistReducer","middlewares","routerMiddleware","socketsMiddleware","thunkMiddleware","createStore","applyMiddleware","matchMedia","console","hook","q","addListener","subscribe","persistor","persistStore","LogOutForced","Cookies","ContainerBox","Box","LoginLogoContainer","SubTitle","BackButton","ButtonWithoutBackground","PullLeft","logo","DrageableZone","onManage","DragableZoneActive","DragableZoneActiveContent","TextInactive","SubTextInactive","DragableZoneInActiveContent","FileSelectorButton","DropInput","Cloud","CloudIcon","dropRef","handleDrag","preventDefault","DragFile","handleDragIn","handleDragOut","handleDrop","dragCounter","dataTransfer","clearData","cover","marginRight","bottom","marginBottom","justifyContent","htmlFor","FileUploaderContainer","LongTimeMessage","CustomProgressBar","FileUploader","filenames","fileImg","CustomBlueButton","StepFileSelector","uploadFileWizard","resetFileState","fileList","lineHeight","onStep","cancelRequest","createManually","res","intervalId","setInterval","responseReport","clearInterval","responseStats","InfoText","OptionsWrapper","Option","OptionText","OptionIcon","HoverIcon","SubTitleWs","OptionTextWs","StepInitialMode","SummaryContainer","SummaryItem","ButtonWithoutBackgroundRight","ButtonsContainerCustom","StepSummary","resetSummary","StepWorkspaceName","wsName","workspaceData","SearchWs","onSelectHandler","showData","filteredData","onMouseDown","WsSelect","isWsListLong","WsItem","CheckWrapper","CheckText","WsName","StepWorkspaceSelection","selectWorkSpace","otherWorkspaces","wsList","ErrorDialog","resetError","Main","setUserHasBeenInWizard","child","hideErrorModal","MainContainer","resetInitialStep","EmailField","validateEmail","Spinner","Loading","BtnResetLink","BtnEmailSent","BtnGoBack","ForgotPassword","setEmail","setSubmitted","isValidEmail","onHandleAction","PasswordChanged","Login","ResetPass","ResetPassword","setPassword","setRepeatPassword","summitPassword","isPasswordMatch","emptyAgents","xlinkHref","mask","IconButton","TokenButton","ButtonWrapper","selectUserAgents","selectTriggerAgentTools","selectTriggerAgentId","selectTriggerAgentWs","selectTriggerIgnoreInfo","selectTriggerResolveHostname","selectAgentTypes","selectToolsByCategory","groupedTools","categoryName","selectDraftNewAgentName","selectDraftNewAgentServer","selectDraftNewAgentTools","selectToolsSelected","toolsSelected","fromEntries","selectToolHasEnvVars","allTools","toolSelected","pickBy","environment_variables","selectToolHasOptionalEnvVars","optional_environment_variables","selectToolHasBeenConfigured","currentTool","enviromentVariables","draftNewAgentTools","isConfigured","envVarConfigured","hasOwn","selectToolsVariables","selectToken","selectTokenExpiration","fetching","somethingWentWrong","getUserAgents","getToken","responseSession","responseToken","expires_in","total_duration","getManifest","setTriggerAgentWs","setIgnoreInfo","setResolveHostname","Token","WrapperCountDown","CountDown","anim","setAnim","alpha","setAlpha","timeOut","π","PI","α","sin","cos","newAnim","Generator","expiresIn","Documentation","CreateButton","SecondContainer","Next","back","finish","nextDisable","h2","h3","TextItem","TextInfo","TextInput","ContentWrapper","Code","code","CodeWrapper","PurpleColor","Add","AddIcon","Flex","SelectTitle","Configuration","nextStep","draftNewAgentName","agentName","setAgentName","nextEnable","origin","setAgent","Arachni","Burp","Openvas","Insightvm","Nessus","Nikto","Nmap","Nuclei","Qualys","Shodan","Sonarqube","Sublist3r","Tenableio","W3af","Wpscan","Zap","Cli","Card","toolbar","warn","bpd","ToolContainer","ToolCategory","Tools","WrapperButton","WrapperAdded","WebSiteButton","Toolbar","added","onAdded","Added","ToolCollection","toolsByCategory","setTools","isAdded","newTool","newTools","AddTools","WrapperField","ConfigureTool","setFields","optionalEnvVar","newFields","filledFields","setFieldsTool","EditButton","toolHasEnvVars","toolHasBeenConfigured","toolHasOptionalEnvVar","ModalConfigureTool","showModalConfigureTool","toggleModalConfigureTool","ConfigureButton","DeleteButton","removeTool","prevStep","ModalBrowseTools","showModalBrowseTools","toggleModalBrowseTools","toolsConfigured","checkForConfiguredTools","Download","EnableText","DownloadTitle","LoadTitle","DockerTab","script","PythonTab","Dispatcher","draftNewAgentServer","stepChooseTools","getToolConf","getParams","variableList","getEnvVars","getFileAsString","agentServer","newUrl","Url","ssl","apiPort","getApiPort","webSocketPort","getWebSocketPort","startCase","fileTxt","URL","createObjectURL","download","appendChild","saveAgent","SaveFinish","isDockerSelected","setIsDockerSelected","_SubTitle","_Title","Dashed","MenuList","FooterLink","QuestionMark","QuestionIcon","Requirements","backStep","CreateAgentMenu","newStep","EmptyAgents","enabled","RunIcon","agent","isOnline","executors","getAgentTools","TrashSVG","markToDelete","LastExecution","lastExecution","noExecution","AvailableTools","noTools","commaSeparatedTools","disableTextSelection","UserAgent","statusLabel","DeletionModal","agentToDelete","ModalWarning","deleteTitle","deleteMessage","AgentsWrapper","failed","_path2","_path3","_path4","fieldType","boolean","NonBooleanField","parameters","onChangeField","required","paramType","paramError","selectToolError","checkboxTheme","green","on","off","grey","selectColor","atribute","CheckBox","StyledCheckbox","CheckboxIcon","$partialChecked","Checkbox","partialChecked","setCheck","getCheckBox","CheckboxWrapper","BooleanField","currentTarget","defaultParams","booleanParams","nonBooleanParams","parameters_metadata","Here","Website","currentToolName","storedTool","toolWebsite","hereMessage","ToolParams","ExecutionParams","ignoreInfoLabel","resolveHostnameLabel","WrapperButtons","InputContainer","DownArrow","Primary","Secondary","SearchList","showList","setShowList","filterBy","setFilterBy","primary","onItemClicked","secondary","ellipsis","baseFontStyle","Workspace","TotalVulns","CriticalVulns","WorkspaceList","totalVulnsText","criticalVulnsText","workspaceNumber","WorkspaceSelector","addedWorkspaces","addTriggerAgentWs","removeTriggerAgentWs","RunUserAgentModal","mappedTools","cancelLabel","runLabel","setCurrentTool","toolParams","setToolParams","newParams","ignore_info","resolve_hostname","workspaces_names","executor_data","agent_id","executor","UserAgents","setAgentToDelete","showRunUserAgent","Grid","noAgents","Agents","CustomReactTable","ReactTable","defaultField","Skeleton","x1","y1","x2","y2","stopColor","attributeName","dur","repeatCount","rx","Critical","High","Medium","Severity","med","Expander","Linux","OSX","Windows","Unknown","CenteredIcon","CenteredText","Ip","NumericRow","CenteredNumericRow","Hostnames","SeverityColumn","TimeAgo","CheckColum","CheckHeader","allHostSelected","IpColumn","ImportanceColumn","oss","getDataOrPlaceholder","getNumericDataOrPlaceholder","number","getColumns","isPivot","sortable","filterable","expander","custom_order","original","groupingBy","accessor","resizable","Cell","rowInfo","tooltip","service_summaries","getProps","hostnameArray","getHostnameString","accesor","row","Table","table","getTrProps","fetchData","clearSelectedEntity","showLeftMenuFilters","showSidebarFilters","resetState","resetHostDetail","sorted","importantVulnsSortIndex","sortCriticalCount","sortHighCount","sortMediumCount","newSorting","getSorting","mockData","columns","manual","onFetchData","minRows","showPagination","noDataText","onExpandedChange","SubComponent","TheadComponent","groupDataByIndex","expandGroupByAssets","AddButton","CreateActions","addText","Separator","Group","LeftGroup","RightGroup","selectedEntities","openConfirmationModal","deleteDisabledReason","delete","reason","Tooltip","DeleteHostButton","isHostDetailVisible","editFunction","showEditModal","EditHostButton","Summary","Prev","PrevIcon","NextIcon","Pagination","onPrev","onNext","getOffset","isLastPage","ModalConfirmation","loading","upperCaseTitle","DeleteConfirmationModal","hostselected","hostSelectedID","GroupBy","opt","components","SingleValue","DisabledFilterIcon","FiltersOff","EnabledFilterIcon","FiltersOn","FilterSideBarIcon","showFilters","RefreshIcon","RefreshImage","RefreshButton","ContextMenuButton","opened","trigger","holdToDisplay","matchField","ToAddColumn","CustomContextMenu","ContextMenu","Columns","AddedColumnsWrapper","NotIncludedList","setFieldVisibility","columnsNotIncluded","checkBox","ColumnsAddedList","AddedColumn","FieldTitleLocked","DragList","setNewOrderColumns","handleHover","elements","querySelectorAll","removeAttribute","columnsIncluded","nodeSelector","handleSelector","fromIndex","toIndex","setNewOrderCol","lineClassName","drag","checkbox","CustomAttributeButton","ResetButton","resetDefault","canShow","IconHelp","EditColumnContext","onHide","EditColumns","ColumnIcon","Edit","EditIcon","AddRemoveColumnsButton","showContext","toggleContext","addRemoveColumns","fieldObj","host_table","cont","f2","fixedColumns","showHostsActionButtons","hasHosts","showGroupBy","StandardTextAreaField","resize","TitleContainer","ModalIcon","_ModalIcon","LeftSide","RightSide","WrapperCustomList","HostnameTitle","HostModalEditCreate","selectHostEditCreateId","selectHostEditCreateIp","selectHostEditCreateOs","selectHostEditCreateMac","selectHostEditCreateDescription","selectHostEditCreateOwned","selectHostEditCreateHostnames","selectHostEditCreateErrorMessage","selectShowModalEditCreate","isValidMacAddress","setIsValidMacAddress","validateMacAddress","TabList","TabListContent","Tab","activeTab","onClickTabItem","VulnsGrouped","severityMapColors","info","unclasified","statusMapColors","level","DateRow","RowName","PaginationWrapper","showSkeleton","ConfirmedDropdown","hideDropdown","select","ArrowIcon","ArrowContainer","CheckHeaderContainer","allVulnsSelected","someVulnSelected","Confirm","onAsset","confirm","newVuln","updateVulnFromAsset","parsedSeverity","capitalizedSeverity","substring","severityLetter","Capitalized","vulnsCountString","ExpandIcon","FieldText","SeverityHeader","cves","GenericCell","attrib","defVal","Impact","commaSeparatedImpacts","alias","Vulnerabilities","setOrderServices","AddServiceButton","onSelectService","onDoubleClick","WrapperTable","Services","HostIp","edit","Command","CommandIcon","Params","dark","CreateDate","Detail","DetailTitle","DetailContent","General","HostDetail","CustomFiltersOptions","PlusIcon","settingIconStyles","SettingIcon","FiltersContainer","CFContainer","CFLabel","RemoveIcon","CustomFilterButton","entityPathname","applyCustomFilter","FiltersHeader","vertical","HeaderTitle","h4","ClearAll","CheckboxOption","SavedFiltersWrapper","CFListContainer","NoFilterLabel","Heading","h5","SavedFilters","vulnsCustomFilters","assetsCustomFilters","getFilterVal","defaultFilters","displayOptions","showClear","useFilterToggle","isFilterActive","SeverityFilter","toggleFilter","CheckBoxFilter","QuickFilterItem","anyFilterApplied","toggleExpanded","QuickFilters","useLocation","Filters","childRef","resizerHeight","FilterSideBar","GearIcon","WrapperRow","Port","Protocol","Version","AddEditService","getService","elem","setPorts","setProtocol","setVersion","setDescription","setStatus","setOwned","texts","serviceId","TableContainer","Host","addRemoveColumnsOpened","actionBar","getTableContainerHeight","parseInt","showHostDetailById","handleParamId","actionBarHeight","Br","manageTourConfig","showEnjoyPopup","selector","content","dashboardTourConfig","LinkDescription","EnjoyPopup","Image","mail","NextBtn","PrevBtn","CommonTour","isTourOpen","setTour","steps","enabledSteps","querySelector","onRequestClose","lastStepNextButton","nextButton","prevButton","onBeforeClose","showNavigation","showNumber","showCloseButton","maskClassName","startAt","DashboardTour","ManageTour","WrapperSeverity","Empty","FilterIcon","$active","FilterWrapper","Selector","Filter","setIsOpen","storeFilters","isFilteringByConfirm","isFilteringByClosed","totalCount","curr","filterArr","arr","filterBySeverity","filterByConfirmed","rootManage","centered","Col","fit","StyledCol","TopServices","TopHosts","getHost","Value","StyledRow","ClickableRow","goToAssets","goToManage","web_vulns","TextOpacity","LatestVulnEntry","LatestVulns","getLatestVulnsStartCallback","humps","camelizeKeys","getLatestVulns","PieWrapper","Reference","FlyoutWrapper","StatusChart","opened_vulns","closed_vulns","re_opened_vulns","risk_accepted_vulns","CustomSlice","events","datum","onMouseOver","onMouseOut","Flyout","CustomLabel","flyoutComponent","defaultEvents","VictoryTooltip","dataComponent","radius","innerRadius","labels","labelComponent","eventHandlers","evt","Selection","getSVGEventCoordinates","mutation","onMouseMove","containerComponent","BoxLatestVulns","BoxSummary","SummaryStyledCol","strokeLinecap","strokeMiterlimit","HostsAndServices","Time","Author","Dark","Light","Tool","WrapperActivity","ActivityDescription","ActivityFooter","AgentIcon","ReportIcon","Reports","ShellIcon","Center","ButtonLink","ActivityFeed","feeds","activities","getActivityFeed","hosts_count","services_count","vulnerabilities_count","activity","isAgent","import_source","isReport","isShell","author","criticalIssue","highIssue","mediumIssue","lowIssue","infoIssue","serverity","ClipboardWrapper","Data","RunBy","Duration","DateTime","isSkeleton","minPeriod","CommandHistory","Feeds","tabActive","setActiveTab","Layout","LeftTitle","BackBtn","Filenames","SubText","ErrorText","UploadSummary","Click","CheckboxField","AdvancedOptions","resolveHost","setResolveHost","resolveHostLabel","DragStep","setFiles","filesUploading","UploadStep","setFilesCount","FilesContainer","FilesItem","FileSize","FilesList","toFixed","removeFile","AddMore","ListStep","handleNewFile","ImportFileCreationModal","titleLabel","backLabel","doneLabel","uploadLabel","onHandleClose","stepComponent","DRAG","UPLOAD","SUMMARY","EmptyVulns","toggleModalUploadVulns","toggleModalCreateVuln","customStyles","InputFilter","getObjects","cleanOnSelect","setShowData","autoComplete","SeverityDropdown","EORDropdown","NewColumn","Column","Gap","applyTemplate","setPolicyViolations","setReferences","setExternalId","saveDescription","saveResolution","debouncedSetField","setVulnField","getAllTemplates","addPolicyViolation","removePolicyViolation","addReference","removeReference","removeCVE","setValueFieldPreview","removePolicy","MethodTitle","TechnicalDetails","saveField","isWebVuln","CustomFields","Evidence","SearchAction","InputSearch","parseTitle","raw","hData","searchAction","functionAction","TitleField","FieldsWrapper","FieldItem","BtnCancel","BtnCreate","AddServicePanel","cancelAction","setPort","AddService","serviceData","pattern","validity","onChangeHandlerPort","Number","AddAssets","AddedAssets","AssetItem","AssetItemWrapper","RemoveAssetIcon","CreateAsset","AssetTitle","EmptyInfoText","AddServiceWarning","ServiceLink","Assets","actionValue","showAddServicePanel","selectedAsset","addAsset","removeAsset","onChangeActionValueHandler","addVulnAsset","removeVulnAsset","servicesAndHost","createHostAsAsset","selectedWs","_modalIcon","NextSVG","ManualCreationModal","hasTargets","validTargets","mandatoryFieldsFilled","RenderTab","technicalDetails","DashboardLayout","showModalUploadVulns","showModalCreateVuln","emptyFeed","Dashboard","NotFound","OptionsContainer","RememberMe","RememberMeLabel","AcceptButton","fetched","nextProps","loginStart","setRememberMe","remember","DropdownsContainer","RedDot","Black","PolicyColumn","saveData","ListWraper","templateSelected","setCustomAttribute","hasCustomFields","onHandleSubmitClose","saveDisabled","DropdownText","DropdownItem","_PlusIcon","DropdownWrapper","subText","transactional","CLink","ImportFileModal","dragCount","removeFileFromList","uploadFileManage","resetFileUploadState","ImportFileModalContainer","onSetFileIndex","onSetUploadState","onSetFilesCount","onResetFileUploadState","showImportFromFile","setShowImportFromFile","handleDropdown","knowledgeBaseProps","showKbActionButtons","hasTemplates","TableWrapper","isGrouped","handleLeftClick","rowList","currentSelectedRows","lastRowSelected","groupContainingCurrentSelection","ctrlKey","metaKey","processCtrl","lastRowSelectedGroup","rowsAreGrouped","selectingRowInSameGroup","validateShiftForProcessing","arrayToWork","concat","processShift","processSingle","ColKbName","ColKbDescription","ColKbReferences","ColKbResolution","ColKbPolicyViolations","ColKbCreator","ColKbCreatedDate","addLocale","en","tableBody","leftClickResponse","vulnTemplateSelected","onContextMenu","sortData","scrollTo","selectKnowledgeBaseTableProps","KnowledgeBase","withBreakpoints","LabelWrapper","OptionsCount","backgroundColorFunc","dropdownStyle","flexWrap","multiValue","multiValueLabel","multiValueRemove","inputDropdownStyle","borderLeft","isMulti","parsedTitle","formatGroupLabel","closeMenuOnSelect","canResize","ListItem","isNumber","getContent","ApplyTemplateModal","savedTemplates","selectedTemplate","setSelectedTemplate","selectedFields","setSelectedFields","vulnsText","toggleFn","customAttribute","vulnPromises","allSettled","TemplateField","MenuWrapper","yPos","xPos","displayFunction","disableOutsideClick","contextMenuRef","outsideClickHandler","node","insideRightClickHandler","capture","totalWidth","totalHeight","clientHeight","contextMenuHeight","newXPos","newYPos","setRef","StyledMenuItem","ArrowSVG","MenuItem","hasSubMenu","SubMenuWrapper","RelativeWrapper","AbsoluteWrapper","ContextSubMenu","showSubmenu","setShowSubmenu","subMenuWidth","setXPos","setYPos","measuredRef","viewHeight","isInitialXPos","SeverityLetter","SeverityComponent","FilterSVG","DeleteIcon","DeleteSVG","EditSVG","StatusIcon","StatusSVG","SeveritySVG","EvidenceIcon","EvidenceSVG","TemplateIcon","TemplateSVG","CopyLinkSVG","CopyApiLinkSVG","SaveTemplateIcon","SaveTemplateSVG","isBulk","noVulnsSelected","filterName","EaseOfResolution","ConfirmFalsePositive","onConfirmedEdit","selectedVulnID","goToTabDetail","selectedTab","inputName","Delete","singleDelete","bulkDelete","AddNewEvidence","SaveAsTemplate","filteredReferences","filteredRef","then","object","oneVulnSelected","StatusItem","ApplyTemplate","VulnsContextMenu","displayContextMenu","cantUpdate","purple","orange","lightBlue","yellow","H1","DefaultParagraph","TableLabel","ButtonText","MenuText","buttonColors","blue","default","hover","red","StyledButton","narrow_sides","ConfirmationDialog","BulkUpdateConfirmationDialog","currentBreakpoint","hasGroupedData","extendFieldName","headerStyle","headerClassName","updateTime","cf","selectVuln","unSelectAll","pageX","pageY","rowCount","groupedData","selectVulnsGroupedData","selectRowAction","unSelectAllAction","showContextMenuAction","emptyState","defaultPageSize","EmptyState","setShowModalUploadVulns","setShowModalCreateVuln","empty","setExpanded","subTableColumns","setFieldWidthAction","tableName","currentPreferences","currentTable","updatedTable","setFieldWidth","tableState","getTheadThProps","__","isDisplayingContextMenu","getThProps","onResizedChange","newResized","changes","pSetFieldWidth","parseId","roundedValue","abs","handleResizedChange","expandData","expandGroupByVulns","BulkTitle","selectedVulnsCount","SubmitButtons","saveLabel","EditorWrapper","BulkMarkdownEditor","DebouncedInput","focusOnMount","setFieldValue","currentRef","ItemList","setNewItem","impactType","BULK_UPDATE_COMPONENTS","BulkUpdateModal","bulkUpdateComponent","Bold","Blue","SelectAll","allVisualVulnsSelected","vulnPageLimit","handleSelectAll","handleClear","ManageTable","showTemplateModal","TabSelectorWrapper","TabButton","getLabel","Transparency","showTransparency","TabSelector","onScroll","tabRef","DetailWrapper","wrapperWidth","ResizerWrapper","getWindowDimensions","innerWidth","innerHeight","useWindowDimensions","windowDimensions","setWindowDimensions","handleResize","CloseWrapper","ImagePreviewModal","previewSrc","VulnerabilityDetail","setShowTransparency","setWidth","initialWidth","previousClientX","clientX","useResizeX","FFTags","scrollTop","VulnFlagFilter","setTheme","isFilteringByNotConfirm","isFilteringByConfirmAndNotConfirmed","showModalCreation","setShowModalCreation","setShowModalImport","newGroupedData","OpenContextMenuButton","showingContextMenu","GroupFieldSelector","setGroupByVulns","DuplicateIcon","DuplicateSVG","dipslayName","DuplicateButton","setFF","multipleVulnsSelected","FFDuplicates","TagIcon","TagSVG","TagButton","CustomAttributesModal","showCustomAttributesModal","sortingFunc","isEnrichmentField","enrichmentFieldsOrder","visibleKeys","fieldOrder","hasVulns","showVulnsActionButtons","OpenContextMenu","CustomActionBar","BoldSubtitle","sub","middle","WarningModal","firstSubtitleBold","secondSubtitleBold","showIcon","listWithDoubleQuotes","renderList","SaveTemplateModal","getIntl","selecListTemplates","partialSuccess","numTemplatesCreated","onlyOneFailed","nameFailedTemplate","TemplateModal","Manage","showHostFilters","showDetail","loadVulnerabilityDetail","orderedFields","MenuItemContent","IconActiveInactive","IconEdit","SubMenuStatus","SubMenu","StatusText","ContextMenuWorkspaceMassiveUpdate","setReadOnly","workspacesUpdated","wsCopy","ColWorkspaceDescription","ColWorkspaceNumeric","SwitchContainer","ColWorkspaceStatus","ColWorkspaceBetweenTime","isWsActive","EnableDisableWs","setShowConfirmation","setShowWarning","currrentWorkspace","changeWsStatus","onColor","offColor","onHandleColor","offHandleColor","activeBoxShadow","handleDiameter","uncheckedIcon","checkedIcon","handleSingleClick","formattedDate","String","padStart","getHours","getMinutes","getSeconds","tbody","handleScroll","getElementsByClassName","vulnsSortIndex","sortTotalCount","reset","shiftPressed","setOrderByWorkspaces","WsAddButton","onCloseCallback","WsDeleteButton","currentWs","showWarning","showConfirmation","WsEditButton","MoreOptionsButton","hasSelectedWs","GridViewIcon","GridViewImage","GridViewButton","ListViewIcon","ListViewImage","ListViewButton","ShowInactive","WSActionBar","pressed","ReadOnlyContainer","ActiveContainer","LockIcon","LockImage","UnlockIcon","UnlockImage","WrapperItem","TotalBlack","TotalGrey","TotalPurple","Stats","totalAssets","totalServices","totalConfirmed","totalCritical","totalOpen","StringDate","VulnsWrapper","VulnType","VulnCount","hr","xmlns","dateFormatter","Histogram","colorScale","barWidth","WorkspaceItem","lastRunAgent","toggleReadOnly","parseDate","parsedDateRange","confirmed_vulns","histogram","GridView","DeactivateConfirmationModal","AppRoute","exact","matchPath","strict","onEnter","Routes","isPrivate","requireWorkspace","Wizard","Sentry","dsn","integrations","Integrations","BrowserTracing","beforeNavigate","tracesSampleRate","ReactDOM","first","second","third","fourth","route","module","exports"],"mappings":"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QAAU,IAA0B,6C,oBCA3CD,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,4C,kBCA3CD,EAAOC,QAAU,00U,kBCAjBD,EAAOC,QAAU,0vL,oBCAjBD,EAAOC,QAAU,IAA0B,iD,oBCA3CD,EAAOC,QAAU,IAA0B,8C,kBCA3CD,EAAOC,QAAU,0/I,oBCAjBD,EAAOC,QAAU,IAA0B,kD,kBCA3CD,EAAOC,QAAU,8xY,oBCAjBD,EAAOC,QAAU,IAA0B,+C,oBCA3CD,EAAOC,QAAU,IAA0B,2C,kBCA3CD,EAAOC,QAAU,kqB,oBCAjBD,EAAOC,QAAU,IAA0B,yC,kBCA3CD,EAAOC,QAAU,85B,oBCAjBD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,yC,oBCA3CD,EAAOC,QAAU,IAA0B,kC,oBCA3CD,EAAOC,QAAU,IAA0B,uC,kBCA3CD,EAAOC,QAAU,81B,oBCAjBD,EAAOC,QAAU,IAA0B,qC,oBCA3CD,EAAOC,QAAU,IAA0B,wC,oBCA3CD,EAAOC,QAAU,IAA0B,yC,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,2C,oBCA3CD,EAAOC,QAAU,IAA0B,mC,oBCA3CD,EAAOC,QAAU,IAA0B,+C","file":"static/js/main.c6161765.chunk.js","sourcesContent":["import enTranslations from './en.json';\nimport esTranslations from './es.json';\n\n/**\n * Available translations\n * @type array\n */\nconst collection = [\n {\n locale: 'en',\n title: 'English',\n keys: enTranslations\n },\n {\n locale: 'es',\n title: 'Español',\n keys: esTranslations\n }\n];\n\nexport default collection;\n","import { createSelector } from 'reselect';\n\nexport const selectLocale = (state) => state.locale;\n\nexport const getLocaleSelector = createSelector(\n selectLocale,\n (locale) => locale\n);\n","import { connect } from 'react-redux';\nimport { IntlProvider } from 'react-intl';\nimport collection from 'resources/translations';\nimport { getLocaleSelector } from 'store/locale/selectors';\n\nconst messagesKeys = {};\n\ncollection.forEach((translation) => {\n messagesKeys[translation.locale] = translation.keys;\n});\n\nconst mapStateToProps = (state) => {\n const locale = getLocaleSelector(state);\n return {\n locale,\n messages: messagesKeys[locale]\n };\n};\n\nconst IntlProviderContainer = connect(\n mapStateToProps\n)(IntlProvider);\n\nIntlProviderContainer.displayName = 'IntlProvider';\n\nexport default IntlProviderContainer;\n","// Colors\n\nexport default {\n black: '#000',\n white: '#fff',\n white1: '#fafbfc',\n dark1: '#273e55',\n dark2: '#1c2243',\n dark3: '#292929',\n dark4: '#426485',\n dark5: '#53686f',\n dark6: '#707070',\n purple1: '#9b72ea',\n purple2: '#a581eb',\n purple3: '#c846ce',\n warmPurple: '#a4247a',\n light1: '#fafcfd',\n light2: '#ededed',\n light3: '#e9e9e9',\n light4: '#eff1f4',\n paleGrey: '#fafbfc',\n grey1: '#c2cbd5',\n grey2: '#82b8e5',\n grey3: '#aea3a3',\n grey4: '#989898',\n grey5: '#8da6be',\n grey6: '#7c97b2',\n grey7: '#a6bcd1',\n grey8: '#afb3b8',\n grey9: '#adb6c1',\n grey10: '#b7b7b7',\n grey11: '#7a7e8f',\n grey12: '#bec8d2',\n grey13: '#dcdcdc',\n grey14: '#ececec',\n grey15: '#bdbdbd',\n grey16: '#cfcfcf',\n grey17: '#afb1bc',\n grey18: '#c6c5c4',\n grey19: '#63758d',\n grey20: '#c5c5c5',\n grey21: '#dbe2e7',\n grey25: '#e3e7ec',\n grey26: '#d6d6d6',\n grey27: '#B0C8DF',\n grey30: '#afafaf',\n grey31: '#f7fbff',\n blue1: '#33495e',\n blue2: '#586f85',\n blue3: '#e7e8e9',\n blue4: '#ebeef2',\n blue5: '#8da6be',\n blue6: '#1c2243',\n blue7: '#e2f0fb',\n blue8: '#edf2f7',\n blue9: '#419bf9',\n blue10: '#7ebbfb',\n blue11: '#2996f0',\n blue12: '#ebeff3',\n darkBlueGrey: '#1c2243',\n blueCerulean: '#0082ed',\n softBlue: '#53a9ff',\n iceBlue: '#edf2f7',\n red1: '#dc4a4a',\n red2: '#e26464',\n red3: '#ea3158',\n redPink: '#ea3158',\n orange1: '#f1ae62',\n orange2: '#f59220',\n green1: '#88cc3f',\n green2: '#a1ce31',\n green3: '#74ab39',\n green4: '#d5f3b5',\n apple: '#88cc3f',\n blueGrey: '#90a9c0',\n tangerine: '#f59220',\n yellow1: '#fffced'\n};\n","import styled, { css } from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Default = styled.div`\n user-select: none;\n border: solid 1px ${colors.dark6};\n text-align: center;\n min-width: 89px;\n width: auto;\n height: 34px;\n line-height: 24px;\n border-radius: 2px;\n font-size: 14px;\n font-weight: 500;\n padding: 4px;\n cursor: pointer;\n display: inline-block;\n user-select: none;\n ${(props) => props.disabled && css`\n opacity: 0.4;\n pointer-events: none;\n `}\n`;\nDefault.displayName = 'Default';\n\nexport const Accept = styled(Default)`\n user-select: none;\n background-color: ${({ disabled }) => (disabled ? '#d6d6d6' : `${colors.blueCerulean}`)};\n color: ${colors.white};\n border-color: ${({ disabled }) => (disabled ? '#ebeff3' : `${colors.blueCerulean}`)};\n`;\nAccept.displayName = 'Accept';\n\nexport const Cancel = styled(Default)`\n user-select: none;\n background-color: ${colors.white};\n color: ${colors.blue6};\n border: solid 1px ${colors.dark6};\n`;\nCancel.displayName = 'Cancel';\n","var _title, _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgWarningDelete = function SvgWarningDelete(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"26px\",\n height: \"25px\",\n viewBox: \"0 0 26 25\",\n ref: svgRef\n }, props), title === undefined ? _title || (_title = /*#__PURE__*/React.createElement(\"title\", null, \"warning-svgrepo-com\")) : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Page-1\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"admin_users_settings_delete_user-02\",\n transform: \"translate(-471.000000, -308.000000)\",\n fill: \"#1C2243\",\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-21\",\n transform: \"translate(436.000000, 265.000000)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-20\",\n transform: \"translate(35.000000, 41.000000)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"warning-svgrepo-com\",\n transform: \"translate(0.000000, 2.000000)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.0146916,17.6129032 C12.3223123,17.6129032 11.7419355,18.1865806 11.7419355,18.8709677 C11.7419355,19.5553548 12.3223123,20.1290323 13.0146916,20.1290323 C13.6816158,20.1290323 14.2874477,19.5553548 14.2569015,18.9011613 C14.2874477,18.1815484 13.7121619,17.6129032 13.0146916,17.6129032 Z\",\n id: \"Path\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25.3673068,21.9379067 C26.2064246,20.4556896 26.2117693,18.6890619 25.3779962,17.2123142 L17.0081963,2.37920454 C16.1797679,0.886048587 14.6832519,0 13.0050162,0 C11.3267805,0 9.83026456,0.891518022 9.0018361,2.3737351 L0.621346879,17.2232531 C-0.212426283,18.716409 -0.207081584,20.4939756 0.637380978,21.9761927 C1.47115414,23.4420015 2.96232537,24.3225806 4.6298717,24.3225806 L21.3480925,24.3225806 C23.0209836,24.3225806 24.5228442,23.4310626 25.3673068,21.9379067 Z M23.5501088,20.8658973 C23.08512,21.6863126 22.2620362,22.1730924 21.3427478,22.1730924 L4.624527,22.1730924 C3.71592804,22.1730924 2.89818898,21.6972515 2.4438895,20.8932444 C1.98424532,20.0782985 1.97890062,19.104739 2.4385448,18.2843236 L10.819034,3.44027507 C11.2733335,2.62532915 12.0857279,2.1440188 13.0050162,2.1440188 C13.9189599,2.1440188 14.7366989,2.63079858 15.1909984,3.4457445 L23.5661429,18.289793 C24.0150977,19.0883307 24.009753,20.0509513 23.5501088,20.8658973 Z\",\n id: \"Shape\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.7035452,6.74688241 C12.1106356,6.92610988 11.7419355,7.49542069 11.7419355,8.18597361 C11.7718301,8.60241392 11.7967423,9.02412562 11.8266369,9.44056593 C11.9113382,11.0272562 11.9960396,12.5823181 12.080741,14.1690084 C12.1106356,14.7066909 12.5042478,15.0967742 13.0124561,15.0967742 C13.5206643,15.0967742 13.919259,14.6803339 13.9441712,14.1373801 C13.9441712,13.8105535 13.9441712,13.5100839 13.9740658,13.1779859 C14.0288726,12.1606064 14.0886618,11.1432269 14.1434685,10.1258475 C14.1733631,9.46692291 14.2281699,8.80799837 14.2580645,8.14907383 C14.2580645,7.911861 14.2281699,7.70100514 14.1434685,7.49014929 C13.8893644,6.8997529 13.2964548,6.59928331 12.7035452,6.74688241 Z\",\n id: \"Path\"\n }))))))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgWarningDelete, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/warning-delete.33357364.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as warningIcon } from 'Images/warning-delete.svg';\n\nexport const Wrapper = styled.div`\n background: ${colors.white};\n text-align: left;\n font-size: 12.5px;\n font-weight: normal;\n line-height: 1.44;\n color: ${colors.grey19};\n border: solid 1px ${colors.blue4};\n min-width: 500px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const WrapperTitle = styled.div`\n display: ${({ show }) => (show ? 'flex' : 'none')};\n padding-bottom: 22px;\n align-items: center;\n & > *:not(:last-child) {\n margin-right: 8px;\n }\n`;\nWrapperTitle.displayName = 'WrapperTitle';\n\nexport const Title = styled.div`\n user-select: none;\n display: inline-block;\n font-size: 21.5px;\n font-weight: 600;\n line-height: 1.49;\n color: #1c2243;\n * > svg { \n margin-right: 10px;\n }\n`;\nTitle.displayName = 'Title';\n\nexport const Message = styled.div`\n user-select: none;\n display: block;\n`;\nMessage.displayName = 'Message';\n\nexport const Icon = styled.div`\n display: inline-block;\n margin-right: 10px;\n`;\nIcon.displayName = 'Icon';\n\nexport const Footer = styled.div`\n display: ${({ show }) => (show ? 'flex' : 'none')};\n width: 100%;\n margin-top: 35px;\n justify-content: flex-end;\n & > *:not(:last-child) {\n margin-right: 10px;\n }\n & > * {\n flex: 1 1 0px;\n max-width: 50%;\n }\n`;\nFooter.displayName = 'Footer';\n\nexport const WarningIcon = styled(warningIcon)`\n width: 27px;\n margin-right: 13px;\n height: 27px;\n`;\nWarningIcon.displayName = 'WarningIcon';\n","/* eslint-disable react/no-children-prop */\nimport React from 'react';\nimport { PropTypes } from 'prop-types';\nimport { Accept, Cancel } from '../Button/styled';\nimport {\n Wrapper, WrapperTitle, Title, Footer, Message\n} from './styled';\n\nconst Modal = ({\n title, icon, children, onAccept, onClose, acceptLabel, closeLabel\n}) => (\n \n \n {icon}\n \n </WrapperTitle>\n <Message children={ children } />\n <Footer show={ onClose || onAccept }>\n { onClose && <Cancel onClick={ onClose } children={ closeLabel } /> }\n { onAccept && <Accept onClick={ onAccept } children={ acceptLabel } /> }\n </Footer>\n </Wrapper>\n);\n\nModal.propTypes = {\n acceptLabel: PropTypes.string,\n closeLabel: PropTypes.string,\n title: PropTypes.string\n};\n\nModal.defaultProps = {\n acceptLabel: 'Accept',\n closeLabel: 'Close',\n title: ''\n};\n\nexport default Modal;\n","import { useEffect } from 'react';\n\nconst useKeypress = (key, action) => {\n useEffect(() => {\n function onKeyup (e) {\n if (e.key === key) action();\n }\n window.addEventListener('keyup', onKeyup);\n return () => window.removeEventListener('keyup', onKeyup);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n};\n\nexport default useKeypress;\n","import { css, keyframes } from 'styled-components';\n\nconst fadeInKeyframes = (from = 0, to = 1) => keyframes`\n from { opacity: ${from}; }\n to { opacity: ${to}; }\n`;\n\nconst fadeOutKeyframes = (from = 1, to = 0) => keyframes`\n from { opacity: ${from}; }\n to { opacity: ${to}; }\n`;\n\nconst slideInKeyframes = keyframes`\n from {\n opacity: 0;\n transform: translate3d(0, -30px, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n\nconst slideInRightKeyframes = keyframes`\n from {\n opacity: 0;\n transform: translate3d(-30px, 0, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\n\nconst slideInLeftKeyframes = keyframes`\n from {\n opacity: 0;\n transform: translate3d(30px, 0, 0);\n }\n\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n`;\nexport const slideInRight = css`\n animation: ${slideInRightKeyframes} 0.5s forwards ease;\n`;\n\nexport const slideInLeft = css`\n animation: ${slideInLeftKeyframes} 0.5s forwards ease;\n`;\n\nexport const fadeIn = (from, to) => css`\n animation: ${fadeInKeyframes(from, to)} 0.5s forwards ease;\n`;\n\nexport const fadeOut = (from, to) => css`\n animation: ${fadeOutKeyframes(from, to)} 0.5s forwards ease;\n`;\n\nconst spinnerKeyframes = keyframes`\n to { transform: rotate(1turn); }\n`;\n\nexport const spin = css`\n animation: ${spinnerKeyframes} 0.86s cubic-bezier(0.4, 0.15, 0.6, 0.85) infinite;\n`;\n\nexport const extend = css`\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n`;\n\nexport const slideIn = css`\n animation: ${slideInKeyframes} 0.2s forwards ease-out;\n`;\n\nexport const overlay = (p = {}) => css`\n position: relative;\n\n * {\n pointer-events: none;\n }\n\n &::before {\n ${fadeIn}\n ${extend}\n content: '';\n position: absolute;\n background: ${p.background || 'hsla(0, 0%, 100%, 0.8)'};\n z-index: 1;\n }\n`;\n\nexport const spinner = (p = {}) => css`\n ${overlay(p)}\n\n &::after {\n ${fadeIn};\n ${spin};\n content: '';\n position: absolute;\n left: calc(50% - ${p.diameter || '30px'} / 2);\n top: calc(50% - ${p.diameter || '30px'} / 2);\n width: ${p.diameter || '30px'};\n height: ${p.diameter || '30px'};\n border-radius: 50%;\n border: ${p.border || '2px'} solid ${p.foreground || 'hsla(0, 0%, 0%, 0.25)'};\n border-top-color: transparent;\n z-index: 2;\n }\n`;\n\nexport const fastFadeIn = css`\n animation: ${fadeInKeyframes(0, 1)} .2s forwards ease;\n`;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { slideIn } from 'Styles/effects';\n\nconst Wrapper = styled.div.attrs((props) => ({\n id: props.id ? props.id : ''\n}))`\n display: flex;\n justify-content: center;\n align-items: center;\n position: fixed;\n top: 0;\n left: 0;\n width: ${(props) => (props.addEditServices ? '100%' : '100vw')};\n height: ${(props) => (props.addEditServices ? '100%' : '100vh')};\n background: rgb(39, 39, 39, 0.2);\n z-index: 500;\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n & > :first-child {\n box-shadow: 18px 43px 50px 0 rgba(167, 167, 167, 0.5);\n border-top: 10px solid ${colors.softBlue};\n border-radius: 2px 2px 0 0;\n padding: 36px 40px;\n overflow: auto;\n max-height: 85%;\n }\n ${slideIn}\n`;\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n","import React, { useState } from 'react';\nimport useKeypress from 'Hooks/useEscKey';\nimport Wrapper from './styled';\n\nconst useModal = (Element, id = '') => {\n const [showModal, setShowModal] = useState(false);\n const toggle = () => setShowModal(!showModal);\n\n useKeypress('Escape', () => {\n setShowModal(false);\n });\n\n /* eslint-disable react/jsx-props-no-spreading */\n // eslint-disable-next-line react/destructuring-assignment\n const Modal = (props) => <Wrapper id={ id } addEditServices={ props.addEditServices }><Element { ...props } /></Wrapper>;\n\n return [Modal, showModal, toggle];\n};\n\nexport default useModal;\n","export const SHOW_ERROR = 'SHOW_ERROR';\nexport const HIDE_ERROR = 'HIDE_ERROR';\n\nexport function setError (message) {\n return {\n type: SHOW_ERROR,\n message\n };\n}\n\nexport function hideError () {\n return {\n type: HIDE_ERROR\n };\n}\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgExclamationError = function SvgExclamationError(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm1 15H9v-2h2v2zm0-4H9V5h2v6z\",\n fill: \"#EA3158\",\n fillRule: \"nonzero\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgExclamationError, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/exclamation_error.73360ffd.svg\";\nexport { ForwardRef as ReactComponent };","import get from 'lodash/get';\n\nexport const selectShowError = (state) => get(state, 'errors.showError', false);\nexport const selectErrorMessage = (state) => get(state, 'errors.message', 'An error has occured.');\n","import Modal from 'Common/Components/Modal';\nimport useModal from 'Hooks/useModal';\nimport React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { hideError } from 'store/errors/actions';\nimport { selectErrorMessage, selectShowError } from 'store/errors/selectors';\nimport { ReactComponent as ErrorIcon } from 'Images/exclamation_error.svg';\n\nconst Error = () => {\n const dispatch = useDispatch();\n const [ModalError, showModalError, toggleModalError] = useModal(Modal);\n\n const props = useSelector((state) => ({\n showError: selectShowError(state),\n message: selectErrorMessage(state)\n }));\n\n useEffect(() => {\n if (showModalError !== props.showError) toggleModalError(props.showError);\n }, [props.showError, showModalError, toggleModalError]);\n\n const onClose = () => {\n dispatch(hideError());\n };\n\n return showModalError && props.message && (\n <ModalError icon={ <ErrorIcon /> } title=\"Error\" onClose={ onClose }>\n { props.message }\n </ModalError>\n );\n};\n\nexport default Error;\n","import get from 'lodash/get';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const selectPreferences = (state) => get(state, 'preferences', {});\n","import api from 'services/api';\nimport { selectPreferences } from 'store/Preferences/selectors';\n\nexport const SAVE_PREFERENCES_SUCCESS = 'SAVE_PREFERENCES_SUCCESS';\nexport const SAVE_PREFERENCES_FAIL = 'SAVE_PREFERENCES_FAIL';\n\n// Update Preferences\nexport function updatePreferences (items) {\n return async (dispatch, getState) => {\n const preferences = selectPreferences(getState());\n const newPreferences = { ...preferences, ...items };\n\n try {\n await api.preferences.save({ preferences: newPreferences });\n return dispatch({ type: SAVE_PREFERENCES_SUCCESS, preferences: newPreferences });\n } catch (e) {\n return dispatch({ type: SAVE_PREFERENCES_FAIL, data: e.message });\n }\n };\n}\n","import get from 'lodash/get';\n\nexport const selectCurrentWorkspace = (state) => get(state, 'faraday.workspaceSelected', '');\nexport const selectShowWorkspaceValidator = (state) => get(state, 'faraday.showWorkspaceValidator', false);\nexport const selectEmail = (state) => get(state, 'faraday.email', '');\nexport const selectUrlReturn = (state) => get(state, 'faraday.urlReturn', ''); // url que determina a donde ir luego de loguearse.\nexport const selectIsAdmin = (state) => get(state, 'faraday.role', '') === 'admin';\nexport const selectUserName = (state) => get(state, 'faraday.userName', '');\nexport const selectApiVersion = (state) => get(state, 'faraday.apiVersion', '');\nexport const selectWsPort = (state) => get(state, 'faraday.wsPort', 0);\n","// --- Aux functions to create keys\nexport const createNameKey = (label, value) => ({\n name: {\n label,\n value\n }\n});\nconst searchByFilterKey = (name, autocomplete, operators) => ({\n name,\n autocomplete,\n operators\n});\nconst groupByKey = (label, field) => ({\n label,\n value: [\n {\n field\n }\n ]\n});\nconst createFilter = (name, op, val) => ({\n name,\n op,\n val\n});\nconst createLabelName = (label, name) => ({\n label,\n name\n});\n\nconst FILTER_OPERATORS = {\n eq: createNameKey('=', '=='),\n neq: createNameKey('!=', '!='),\n like: createNameKey('contains', 'like'),\n ilike: createNameKey('contains', 'ilike'),\n greaterOrEqual: createNameKey('>=', '>='),\n greater: createNameKey('>', '>'),\n lessOrEqual: createNameKey('<=', '<='),\n less: createNameKey('<', '<'),\n has: createNameKey('has', 'has'),\n any: createNameKey('any', 'any'),\n in: createNameKey('in', 'in'),\n notIn: createNameKey('not in', 'not_in'),\n isNull: createNameKey('is null', 'is_null'),\n isNotNull: createNameKey('is not null', 'is_not_null'),\n and: createNameKey('&', 'and'),\n or: createNameKey('||', 'or'),\n isOneOf: createNameKey('is one of', '=='),\n isNotOneOf: createNameKey('is not one of', 'eq'),\n notAny: createNameKey('notAny', 'not_any')\n};\n\nexport const {\n eq, neq, ilike, greaterOrEqual, greater, lessOrEqual, less, has, any, and, or, isOneOf, isNotOneOf, notAny\n} = FILTER_OPERATORS;\n\nconst commandIdFilter = (id) => ({\n name: 'creator_command_id',\n op: eq.name.value,\n val: id\n});\n\nconst vulnerabilitiesBySeverity = (severityType) => ({\n name: 'severity',\n op: eq.name.value,\n val: severityType\n});\n\nconst vulnerabilitiesByStatus = (statusType) => ({\n name: 'status',\n op: eq.name.value,\n val: statusType\n});\n\nconst vulnerabilityById = (id) => ({\n name: 'id',\n op: eq.name.value,\n val: id\n});\n\nconst vulnerabilitiesByType = (type) => ({\n name: 'type',\n op: eq.name.value,\n val: type\n});\n\nconst assetsByIp = (ip) => ({\n name: 'ip',\n op: eq.name.value,\n val: ip\n});\n\nconst assetsByServiceName = (serviceName) => ({\n name: 'services',\n op: 'any',\n val: {\n name: 'name',\n op: eq.name.value,\n val: serviceName\n }\n});\n\n// ------------------------------------\n\nconst SEARCH_BY_AUTOCOMPLETE_KEYS = {\n critical: createNameKey('Critical', 'critical'),\n high: createNameKey('High', 'high'),\n medium: createNameKey('Medium', 'medium'),\n low: createNameKey('Low', 'low'),\n informational: createNameKey('Informational', 'informational'),\n unclassified: createNameKey('Unclassified', 'unclassified'),\n true: createNameKey('True', 'true'),\n false: createNameKey('False', 'false'),\n trivial: createNameKey('Trivial', 'trivial'),\n simple: createNameKey('Simple', 'simple'),\n moderate: createNameKey('Moderate', 'moderate'),\n difficult: createNameKey('Difficult', 'difficult'),\n infeasible: createNameKey('Infeasible', 'infeasible'),\n vulnerability: createNameKey('Vulnerability', 'vulnerability'),\n vulnerability_web: createNameKey('Vulnerability Web', 'vulnerability_web'),\n open: createNameKey('Open', 'open'),\n closed: createNameKey('Closed', 'closed'),\n filtered: createNameKey('Filtered', 'filtered'),\n reOpened: createNameKey('Re-Opened', 're-opened'),\n riskAccepted: createNameKey('Risk Accepted', 'risk-accepted')\n};\n\nconst SEVERITY_AUTOCOMPLETE = [\n SEARCH_BY_AUTOCOMPLETE_KEYS.critical,\n SEARCH_BY_AUTOCOMPLETE_KEYS.high,\n SEARCH_BY_AUTOCOMPLETE_KEYS.medium,\n SEARCH_BY_AUTOCOMPLETE_KEYS.low,\n SEARCH_BY_AUTOCOMPLETE_KEYS.informational,\n SEARCH_BY_AUTOCOMPLETE_KEYS.unclassified\n];\n\nconst BOOL_AUTOCOMPLETE = [\n SEARCH_BY_AUTOCOMPLETE_KEYS.true,\n SEARCH_BY_AUTOCOMPLETE_KEYS.false\n];\n\nconst EASE_OF_RESOLUTION_AUTOCOMPLETE = [\n SEARCH_BY_AUTOCOMPLETE_KEYS.trivial,\n SEARCH_BY_AUTOCOMPLETE_KEYS.simple,\n SEARCH_BY_AUTOCOMPLETE_KEYS.moderate,\n SEARCH_BY_AUTOCOMPLETE_KEYS.difficult,\n SEARCH_BY_AUTOCOMPLETE_KEYS.infeasible\n];\n\nconst VULN_TYPE_AUTOCOMPLETE = [\n SEARCH_BY_AUTOCOMPLETE_KEYS.vulnerability,\n SEARCH_BY_AUTOCOMPLETE_KEYS.vulnerability_web\n];\n\nconst STATUS_AUTOCOMPLETE = [\n SEARCH_BY_AUTOCOMPLETE_KEYS.open,\n SEARCH_BY_AUTOCOMPLETE_KEYS.closed,\n SEARCH_BY_AUTOCOMPLETE_KEYS.reOpened,\n SEARCH_BY_AUTOCOMPLETE_KEYS.riskAccepted\n];\n\nconst SERVICES_STATUS_AUTOCOMPLETE = [\n SEARCH_BY_AUTOCOMPLETE_KEYS.open,\n SEARCH_BY_AUTOCOMPLETE_KEYS.closed,\n SEARCH_BY_AUTOCOMPLETE_KEYS.filtered\n];\n\nexport const SEARCH_BY_FILTER_KEYS = {\n asset: searchByFilterKey({ label: 'Asset', value: 'target' }, [], [eq, neq, ilike]),\n confirmed: searchByFilterKey({ label: 'Confirmed', value: 'confirmed' }, BOOL_AUTOCOMPLETE, [eq]),\n createDate: searchByFilterKey({ label: 'Creation Date', value: 'create_date' }, [], [eq, lessOrEqual, greaterOrEqual, less, greater]),\n creatorCommandId: searchByFilterKey({ label: 'Creator command ID', value: 'creator_command_id' }, [], [eq, neq]),\n cve_instances__name: searchByFilterKey({ label: 'Name', value: 'name' }, [], [isOneOf, isNotOneOf, ilike]),\n cve_instances: searchByFilterKey({ label: 'CVE', value: 'cve_instances__name' }, [], [any, notAny]),\n cvss2: searchByFilterKey({ label: 'CVSS2', value: 'cvss2_base_score' }, [], [eq, neq, greaterOrEqual, greater, lessOrEqual, less]),\n cvss3: searchByFilterKey({ label: 'CVSS3', value: 'cvss3_base_score' }, [], [eq, neq, greaterOrEqual, greater, lessOrEqual, less]),\n data: searchByFilterKey({ label: 'Data', value: 'data' }, [], [eq, neq, ilike]),\n description: searchByFilterKey({ label: 'Description', value: 'description' }, [], [eq, neq, ilike]),\n easeOfResolution: searchByFilterKey({ label: 'Ease of Resolution', value: 'ease_of_resolution' }, EASE_OF_RESOLUTION_AUTOCOMPLETE, [eq, neq]),\n externalId: searchByFilterKey({ label: 'External ID', value: 'external_id' }, [], [eq, neq, ilike]),\n hostnames__name: searchByFilterKey({ label: 'Name', value: 'name' }, [], [ilike]),\n hostNames: searchByFilterKey({ label: 'Hostnames', value: 'hostnames__name' }, [], [any]),\n id: searchByFilterKey({ label: 'ID', value: 'id' }, [], [eq, neq, greaterOrEqual, greater, lessOrEqual, less]),\n ip: searchByFilterKey({ label: 'Asset', value: 'ip' }, [], [eq, neq, ilike]),\n method: searchByFilterKey({ label: 'Method', value: 'method' }, [], [eq, neq, ilike]),\n name: searchByFilterKey({ label: 'Name', value: 'name' }, [], [eq, neq, ilike]),\n os: searchByFilterKey({ label: 'OS', value: 'os' }, [], [eq, neq, ilike]),\n owned: searchByFilterKey({ label: 'Owned', value: 'owned' }, BOOL_AUTOCOMPLETE, [eq]),\n path: searchByFilterKey({ label: 'Path', value: 'path' }, [], [eq, neq, ilike]),\n request: searchByFilterKey({ label: 'Request', value: 'request' }, [], [eq, neq, ilike]),\n resolution: searchByFilterKey({ label: 'Resolution', value: 'resolution' }, [], [eq, neq, ilike]),\n response: searchByFilterKey({ label: 'Response', value: 'response' }, [], [eq, neq, ilike]),\n service__name: searchByFilterKey({ label: 'Name', value: 'name' }, [], [eq, neq, ilike]),\n service__port: searchByFilterKey({ label: 'Port', value: 'port' }, [], [eq, neq, greaterOrEqual, greater, lessOrEqual, less]),\n serviceName: searchByFilterKey({ label: 'Service name', value: 'service__name' }, [], [has]),\n servicePort: searchByFilterKey({ label: 'Service port', value: 'service__port' }, [], [has]),\n services__name: searchByFilterKey({ label: 'Name', value: 'name' }, [], [eq, neq, ilike]),\n services__port: searchByFilterKey({ label: 'Port', value: 'port' }, [], [eq, neq, greaterOrEqual, greater, lessOrEqual, less]),\n services__status: searchByFilterKey({ label: 'Status', value: 'status' }, SERVICES_STATUS_AUTOCOMPLETE, [eq, neq]),\n services__version: searchByFilterKey({ label: 'Version', value: 'version' }, [], [eq, neq, ilike]),\n servicesName: searchByFilterKey({ label: 'Services name', value: 'services__name' }, [], [any]),\n servicesPort: searchByFilterKey({ label: 'Services port', value: 'services__port' }, [], [any]),\n servicesStatus: searchByFilterKey({ label: 'Services status', value: 'services__status' }, [], [any]),\n servicesVersion: searchByFilterKey({ label: 'Services version', value: 'services__version' }, [], [any]),\n severity: searchByFilterKey({ label: 'Severity', value: 'severity' }, SEVERITY_AUTOCOMPLETE, [eq, neq]),\n status: searchByFilterKey({ label: 'Status', value: 'status' }, STATUS_AUTOCOMPLETE, [eq, neq]),\n tool: searchByFilterKey({ label: 'Tool', value: 'tool' }, [], [eq, neq, ilike]),\n type: searchByFilterKey({ label: 'Type', value: 'type' }, VULN_TYPE_AUTOCOMPLETE, [eq, neq]),\n updateDate: searchByFilterKey({ label: 'Update Date', value: 'update_date' }, [], [eq, greaterOrEqual, lessOrEqual, greater, less])\n};\n\nexport const GROUP_BY = {\n none: {\n key: groupByKey('None', ''),\n filter: null\n },\n name: {\n key: groupByKey('Name', 'name'),\n filter: createFilter('name', ilike.name.value, '')\n },\n severity: {\n key: groupByKey('Severity', 'severity'),\n filter: createFilter('severity', eq.name.value, '')\n },\n services__name: {\n key: groupByKey('Service name', 'services__name'),\n filter: createFilter('services', any.name.value, '')\n },\n status: {\n key: groupByKey('Status', 'status'),\n filter: createFilter('status', eq.name.value, '')\n },\n hostnames__name: {\n key: groupByKey('Hostnames', 'hostnames__name'),\n filter: createFilter('hostnames', any.name.value, '')\n },\n target_host_ip: {\n key: groupByKey('Asset', 'target_host_ip'),\n filter: createFilter('target_host_ip', ilike.name.value, '')\n },\n os: {\n key: groupByKey('OS', 'os'),\n filter: createFilter('os', eq.name.value, '')\n },\n cveAndTarget: {\n key: {\n label: 'CVE & Asset',\n value: [\n {\n field: 'cve_instances__name'\n },\n {\n field: 'target'\n }\n ]\n },\n filter: createFilter('cve_instances__name', eq.name.value, '')\n }\n};\n\nexport const CONTEXT_MENU_FILTER_KEYS = {\n asset: {\n key: createLabelName('Asset', 'target'),\n filter: createFilter('target', eq.name.value, '')\n },\n date: {\n key: createLabelName('Date', 'create_date'),\n filter: createFilter('create_date', eq.name.value, '')\n },\n name: {\n key: createLabelName('Name', 'name'),\n filter: createFilter('name', ilike.name.value, '')\n },\n service: {\n key: createLabelName('Service name', 'service'),\n filter: createFilter('service', has.name.value, '')\n },\n status: {\n key: createLabelName('Status', 'status'),\n filter: createFilter('status', eq.name.value, '')\n },\n tags: {\n key: createLabelName('Tags', 'tags'),\n filter: createFilter('tags', has.value, '')\n }\n};\n\n// --- VULN KEYS ---\n\nexport const VULNS_SEARCH_BY_FILTER_KEYS = [\n SEARCH_BY_FILTER_KEYS.asset,\n SEARCH_BY_FILTER_KEYS.confirmed,\n SEARCH_BY_FILTER_KEYS.createDate,\n SEARCH_BY_FILTER_KEYS.creatorCommandId,\n SEARCH_BY_FILTER_KEYS.cve_instances,\n SEARCH_BY_FILTER_KEYS.cvss2,\n SEARCH_BY_FILTER_KEYS.cvss3,\n SEARCH_BY_FILTER_KEYS.data,\n SEARCH_BY_FILTER_KEYS.description,\n SEARCH_BY_FILTER_KEYS.easeOfResolution,\n SEARCH_BY_FILTER_KEYS.externalId,\n SEARCH_BY_FILTER_KEYS.id,\n SEARCH_BY_FILTER_KEYS.method,\n SEARCH_BY_FILTER_KEYS.name,\n SEARCH_BY_FILTER_KEYS.path,\n SEARCH_BY_FILTER_KEYS.request,\n SEARCH_BY_FILTER_KEYS.resolution,\n SEARCH_BY_FILTER_KEYS.response,\n\n SEARCH_BY_FILTER_KEYS.serviceName,\n SEARCH_BY_FILTER_KEYS.servicePort,\n SEARCH_BY_FILTER_KEYS.severity,\n SEARCH_BY_FILTER_KEYS.status,\n SEARCH_BY_FILTER_KEYS.tool,\n SEARCH_BY_FILTER_KEYS.type,\n SEARCH_BY_FILTER_KEYS.updateDate\n];\n\nexport const VULNS_GROUP_BY_KEYS = [\n GROUP_BY.none.key,\n GROUP_BY.name.key,\n GROUP_BY.severity.key,\n GROUP_BY.status.key,\n GROUP_BY.target_host_ip.key,\n GROUP_BY.cveAndTarget.key\n];\n\nexport const VULNS_CONTEXT_MENU_FILTER_KEYS = [\n CONTEXT_MENU_FILTER_KEYS.name.key,\n CONTEXT_MENU_FILTER_KEYS.service.key,\n CONTEXT_MENU_FILTER_KEYS.asset.key,\n CONTEXT_MENU_FILTER_KEYS.date.key,\n CONTEXT_MENU_FILTER_KEYS.status.key\n];\n\n// --- ASSETS KEYS ---\n\nexport const ASSETS_SEARCH_BY_FILTER_KEYS = [\n SEARCH_BY_FILTER_KEYS.hostNames,\n SEARCH_BY_FILTER_KEYS.ip,\n SEARCH_BY_FILTER_KEYS.os,\n SEARCH_BY_FILTER_KEYS.owned,\n SEARCH_BY_FILTER_KEYS.servicesName,\n SEARCH_BY_FILTER_KEYS.servicesPort,\n SEARCH_BY_FILTER_KEYS.servicesStatus,\n SEARCH_BY_FILTER_KEYS.servicesVersion\n];\n\nexport const ASSETS_GROUP_BY_KEYS = [\n GROUP_BY.none.key,\n GROUP_BY.os.key,\n GROUP_BY.services__name.key,\n GROUP_BY.hostnames__name.key\n];\n\n// --- KB KEYS ---\n\nexport const KB_SEARCH_BY_FILTER_KEYS = [\n SEARCH_BY_FILTER_KEYS.data,\n SEARCH_BY_FILTER_KEYS.description,\n SEARCH_BY_FILTER_KEYS.easeOfResolution,\n SEARCH_BY_FILTER_KEYS.externalId,\n SEARCH_BY_FILTER_KEYS.id,\n SEARCH_BY_FILTER_KEYS.name,\n SEARCH_BY_FILTER_KEYS.resolution,\n SEARCH_BY_FILTER_KEYS.severity\n];\n\nexport const CONFIRMED_FLAG_FILTERS = {\n confirmed: {\n name: 'confirmed',\n op: eq.name.value,\n val: 'true'\n },\n notConfirmed: {\n name: 'confirmed',\n op: eq.name.value,\n val: 'false'\n }\n};\n\nexport const CLOSED_FILTERS = {\n closed: {\n name: 'status',\n op: neq.name.value,\n val: 'closed'\n }\n};\n\nconst kbByName = (name) => ({\n name: 'name',\n op: ilike.name.value,\n val: name\n});\n\nexport const KB_FILTERS = {\n kbByName\n};\n\nexport const DASHBOARD_FILTERS = {\n commandIdFilter,\n vulnerabilitiesBySeverity,\n vulnerabilitiesByStatus,\n vulnerabilityById,\n assetsByIp,\n assetsByServiceName,\n vulnerabilitiesByType\n};\n\nexport const KEY_LABELS_MAP = Object.entries(SEARCH_BY_FILTER_KEYS).map((key) => key[1].name);\nexport const OPERATOR_LABELS_MAP = Object.entries(FILTER_OPERATORS).map((operator) => operator[1].name);\nexport const AUTOCOMPLETE_LABELS_MAP = Object.entries(SEARCH_BY_AUTOCOMPLETE_KEYS).map((autocomplete) => autocomplete[1].name);\n","export const MOCK_VULN_ID = 0;\nexport const mockVuln = {\n description: 'This is a sample vulnerability',\n resolution: '',\n method: '',\n obj_id: 'MOCK_VULN_ID',\n status_code: null,\n id: MOCK_VULN_ID,\n response: '',\n _rev: '',\n metadata: {\n creator: 'Web UI',\n command_id: null,\n update_user: null,\n update_controller_action: '',\n update_action: 0,\n owner: 'faraday',\n create_time: '2021-04-12T19:56:53.512785+00:00',\n update_time: '2021-04-12T19:56:53.512795+00:00'\n },\n vulnerability_template_id: null,\n _id: MOCK_VULN_ID,\n policyviolations: [],\n query: '',\n external_id: '',\n date: '2021-04-12T19:56:53.512785+00:00',\n refs: [],\n request: '',\n desc: 'This is a sample vulnerability for your App Tour',\n params: '',\n easeofresolution: null,\n parent_type: 'Host',\n parent: 3162,\n tags: [],\n pname: '',\n impact: {\n availability: false,\n integrity: false,\n accountability: false,\n confidentiality: false\n },\n type: 'Vulnerability',\n tool: 'Web UI',\n owned: false,\n path: '',\n hostnames: [],\n data: '',\n status: 'open',\n childs: [],\n vulnerability_duplicate_id: null,\n host_os: '',\n custom_fields: {\n choice_field: null,\n test: null,\n custom_name: null,\n list_field: null\n },\n issuetracker_json: {},\n severity: 'med',\n service: null,\n name: 'Sample Vulnerability',\n owner: 'faraday',\n confirmed: true,\n _attachments: {},\n target: '168.0.0.1',\n website: ''\n};\nexport const MOCK_VULN_LIST = [mockVuln];\n","import get from 'lodash/get';\n\nconst selectTourFinished = (state) => get(state, 'preferences.tourFinished', false);\n\nexport default selectTourFinished;\n","import api from 'services/api';\nimport isEmpty from 'lodash/isEmpty';\nimport isEqual from 'lodash/isEqual';\nimport * as types from './types';\nimport {\n selectFilters, selectGroupByField, selectFilterHistory, selectAdvancedFilter, selectCustomFilter, isFilteringBy\n} from './selectors';\nimport { GROUP_BY } from './constants';\n\nexport const setSelectedEntity = (selectedEntity) => async (dispatch) => dispatch({ type: types.SET_SELECTED_ENTITY, selectedEntity });\nconst setAdvancedFilterValue = (entity, value) => async (dispatch) => dispatch({ type: types.SET_ADVANCED_FILTER, value, entity });\nexport const clearAdvancedFilter = (entity) => async (dispatch) => dispatch({ type: types.SET_ADVANCED_FILTER, value: '', entity });\nexport const setFilterError = (entity, filterError) => async (dispatch) => dispatch({ type: types.SET_FILTER_ERROR, filterError, entity });\nexport const clearFilterError = (entity) => async (dispatch) => dispatch({ type: types.SET_FILTER_ERROR, filterError: '', entity });\nexport const setAdvancedMode = (isAdvancedMode) => async (dispatch) => dispatch({ type: types.SET_ADVANCED_MODE, isAdvancedMode });\nexport const setSaveEnabled = (saveEnabled) => async (dispatch) => dispatch({ type: types.SET_SAVE_STATUS, saveEnabled });\n\nexport const resetFilters = (entity) => async (dispatch) => dispatch({ type: types.RESET_FILTERS, entity });\n\nexport function setAdvancedFilter (entity, value) {\n return async (dispatch) => {\n dispatch(setSelectedEntity(entity));\n dispatch(setAdvancedFilterValue(entity, value));\n };\n}\n\nexport function setOrderBy (entity, order_by) {\n return (dispatch) => {\n if (!isEmpty(order_by)) {\n const newOrderBy = order_by.map((individualOrderBy) => {\n const { id, desc } = individualOrderBy;\n const orderByIndividualObject = {\n field: id,\n direction: desc ? 'desc' : 'asc'\n };\n return orderByIndividualObject;\n });\n dispatch({ type: types.SET_ORDER_BY, entity, order_by: newOrderBy });\n }\n };\n}\n\nexport const clearOrderBy = (entity) => async (dispatch) => dispatch({ type: types.CLEAR_ORDER_BY, entity });\nexport const setPageNumber = (entity, pageNumber) => async (dispatch) => dispatch({ type: types.SET_PAGE_NUMBER, entity, pageNumber });\nexport const setKeys = (entity, keys) => async (dispatch) => dispatch({ type: types.SET_KEYS, entity, keys });\nexport const clearKeys = (entity) => async (dispatch) => dispatch({ type: types.CLEAR_KEYS, entity });\n\nexport const addFilterHistory = (entity, filter) => async (dispatch) => dispatch({ type: types.ADD_FILTER_TO_HISTORY, entity, filter });\nconst overrideFilterHistory = (entity, filterHistory) => async (dispatch) => dispatch({ type: types.SET_FILTER_HISTORY, filterHistory, entity });\n\nfunction overrideFilter (entity, filters) {\n return async (dispatch) => {\n dispatch(setSelectedEntity(entity));\n dispatch(setPageNumber(entity, 1));\n dispatch({ type: types.SET_FILTERS, entity, filters });\n };\n}\n\nexport const clearFilters = (entity) => async (dispatch) => dispatch({ type: types.CLEAR_FILTERS, entity });\n\nfunction concatenateFilters (entity, filter) {\n return async (dispatch, getState) => {\n const state = getState();\n const actualFilters = selectFilters(entity, state);\n dispatch(clearAdvancedFilter(entity));\n\n if (actualFilters.length === 0) {\n dispatch(overrideFilter(entity, [filter]));\n } else {\n const concatenatedFilter = [\n {\n and: [\n ...actualFilters,\n filter\n ]\n }\n ];\n dispatch(overrideFilter(entity, concatenatedFilter));\n }\n };\n}\n\nconst groupFiltersByName = (filterHistory) => filterHistory.reduce(\n (result, item) => {\n if (item.name === 'service' || item.name === 'services') {\n const name = `service__${item.val.name}`;\n return ({\n ...result,\n [name]: [\n ...(result[name] || []),\n item\n ]\n });\n }\n return ({\n ...result,\n [item.name]: [\n ...(result[item.name] || []),\n item\n ]\n });\n },\n {}\n);\n\nexport function rebuildFilters (entity) {\n return async (dispatch, getState) => {\n const state = getState();\n const filterHistory = selectFilterHistory(entity, state);\n dispatch({ type: types.REMOVE_FILTERS, entity });\n\n const groupedFiltersObject = groupFiltersByName(filterHistory);\n\n const groupedFiltersArray = Object.entries(groupedFiltersObject).map((filterArray) => filterArray[1]);\n\n groupedFiltersArray.forEach((group) => {\n let grouped = {};\n if (!isEmpty(group)) {\n if (group.length === 1) grouped = group[0];\n else if (group.some((filter) => filter.name.includes('date'))) grouped = { and: group };\n else grouped = { or: group };\n }\n dispatch(concatenateFilters(entity, grouped));\n });\n };\n}\n\nexport function addFilter (entity, filter) {\n return async (dispatch, getState) => {\n const state = getState();\n const isFilterApplied = isFilteringBy(state, entity, filter);\n\n if (!isFilterApplied) {\n dispatch(addFilterHistory(entity, filter));\n dispatch(rebuildFilters(entity));\n }\n };\n}\n\nexport function removeFilter (entity, filter) {\n return async (dispatch, getState) => {\n const state = getState();\n const filterHistory = selectFilterHistory(entity, state);\n const newFilterHistory = filterHistory.filter((f) => f.name !== filter.name || f.op !== filter.op || !isEqual(f.val, filter.val));\n dispatch(overrideFilterHistory(entity, newFilterHistory));\n dispatch(rebuildFilters(entity));\n };\n}\n\nexport function setFilter (entity, filter) {\n return async (dispatch) => {\n dispatch(clearFilters(entity));\n dispatch(addFilter(entity, filter));\n };\n}\n\n// GROUP BY ACTIONS\n\nexport const clearGroupBy = (entity) => async (dispatch) => dispatch({ type: types.CLEAR_GROUP_BY, entity });\n\nexport function setGroupBy (entity, group_by) {\n return async (dispatch) => {\n if (group_by === GROUP_BY.none.key.value) {\n dispatch(setPageNumber(entity, 1));\n dispatch(clearGroupBy(entity));\n dispatch(clearFilters(entity));\n } else {\n dispatch(setPageNumber(entity, null));\n dispatch({ type: types.SET_GROUP_BY, entity, group_by });\n }\n };\n}\n\nexport function setExpandedFilter (entity, expandedFilter) {\n return async (dispatch) => {\n dispatch({ type: types.SET_EXPANDED_FILTER, entity, expandedFilter });\n };\n}\n\nexport function expandGroupBy (entity, data) {\n return async (dispatch, getState) => {\n const state = getState();\n const groupByField = selectGroupByField(entity, state);\n const isGroupingByService = groupByField === GROUP_BY.services__name.key.value[0].field;\n const isGroupingByHostname = groupByField === GROUP_BY.hostnames__name.key.value[0].field;\n const isGroupingByCVE = groupByField === 'cve_instances__name';\n let filterValue = data[groupByField];\n\n if (isGroupingByService || isGroupingByHostname) {\n filterValue = {\n name: 'name',\n op: 'eq',\n val: data[groupByField]\n };\n }\n let filter = [];\n\n if (isGroupingByCVE) {\n filter = [\n {\n name: 'cve_instances',\n op: 'any',\n val: {\n name: 'name',\n op: 'eq',\n val: data.cve_instances__name\n }\n },\n {\n name: 'target',\n op: 'eq',\n val: data.target\n }\n ];\n } else {\n filter = [\n {\n ...GROUP_BY[groupByField].filter,\n val: filterValue\n }\n ];\n }\n\n dispatch(setExpandedFilter(entity, filter));\n };\n}\n\nexport function removeFiltersByKey (entity, key) {\n return async (dispatch, getState) => {\n const state = getState();\n const filterHistory = selectFilterHistory(entity, state);\n const newFilterHistory = filterHistory.filter((f) => f.name !== key);\n dispatch(overrideFilterHistory(entity, newFilterHistory));\n dispatch(rebuildFilters(entity));\n };\n}\n\n// CUSTOM FILTER ACTIONS\n\nexport const setCustomFilters = (entity, customFilters) => async (dispatch) => dispatch({ type: types.SET_CUSTOM_FILTERS, entity, customFilters });\n\nexport function applyCustomFilter (entity, id) {\n return async (dispatch, getState) => {\n const state = getState();\n const customFilter = selectCustomFilter(state, entity, id);\n\n if (!isEmpty(customFilter)) {\n const { isAdvancedFilter, filterHistory, json_query } = customFilter;\n\n dispatch(clearFilters(entity));\n\n if (isAdvancedFilter) {\n dispatch(setAdvancedMode(true));\n dispatch(setAdvancedFilter(entity, json_query));\n } else {\n dispatch(setAdvancedMode(false));\n dispatch(overrideFilterHistory(entity, filterHistory));\n dispatch(rebuildFilters(entity));\n }\n }\n };\n}\n\nconst getMappedCustomFilters = (response, entity) => {\n const filteredEntityFilters = response.filter((filter) => (JSON.parse(filter.user_query).entity === entity));\n\n return filteredEntityFilters.map((filter) => {\n // eslint-disable-next-line object-curly-newline\n const { id, name, json_query, user_query } = filter;\n const { isAdvancedFilter, filterHistory } = JSON.parse(user_query);\n // eslint-disable-next-line object-curly-newline\n const formedCustomFilter = { id, name, isAdvancedFilter, filterHistory, json_query };\n\n return formedCustomFilter;\n });\n};\n\nexport function getCustomFilters () {\n return async (dispatch) => {\n try {\n const response = await api.filters.getCustomFilters();\n const vulnMappedCustomFilters = getMappedCustomFilters(response, 'vulns');\n const assetMappedCustomFilters = getMappedCustomFilters(response, 'assets');\n\n dispatch(setCustomFilters('vulns', vulnMappedCustomFilters));\n dispatch(setCustomFilters('assets', assetMappedCustomFilters));\n } catch (e) {\n dispatch(setFilterError('vulns', 'There was a problem when fetching custom filters. Please try again.'));\n dispatch(setFilterError('assets', 'There was a problem when fetching custom filters. Please try again.'));\n }\n };\n}\n\nexport function createCustomFilter (entity, name) {\n return async (dispatch, getState) => {\n const state = getState();\n const standardFilter = selectFilters(entity, state);\n const advancedFilter = selectAdvancedFilter(state, entity);\n const filterHistory = selectFilterHistory(entity, state);\n\n let json_query = {};\n let user_query = {};\n\n if (advancedFilter) {\n json_query = JSON.parse(`${advancedFilter}`);\n user_query = {\n entity,\n isAdvancedFilter: true,\n filterHistory: []\n };\n } else {\n json_query = standardFilter[0];\n user_query = {\n entity,\n isAdvancedFilter: false,\n filterHistory\n };\n }\n\n const data = {\n name,\n json_query: JSON.stringify(json_query),\n user_query: JSON.stringify(user_query)\n };\n\n try {\n await api.filters.createCustomFilter(data);\n dispatch(getCustomFilters());\n } catch (e) {\n dispatch(setFilterError(entity, 'There was a problem when saving custom filter. Please try again.'));\n }\n };\n}\n\nexport function removeCustomFilter (entity, id) {\n return async (dispatch) => {\n if (id) {\n try {\n await api.filters.removeCustomFilter(id);\n dispatch(getCustomFilters());\n } catch (e) {\n dispatch(setFilterError(entity, 'There was a problem when removing custom filter. Please try again.'));\n }\n }\n };\n}\n\nexport function storeDashboardFilter (filter, status) {\n return dispatch => {\n dispatch({ type: types.SAVE_DASHBOARD_TEMPLATE, filter, status });\n };\n}\n","// Reset entity\nexport const RESET_FILTERS = 'RESET_FILTERS';\n\n// Group By filter\nexport const SET_GROUP_BY = 'SET_GROUP_BY';\nexport const CLEAR_GROUP_BY = 'CLEAR_GROUP_BY';\n\n// Sort By filter\nexport const SET_ORDER_BY = 'SET_ORDER_BY';\nexport const CLEAR_ORDER_BY = 'CLEAR_ORDER_BY';\n\n// Data fetch page\nexport const SET_PAGE_NUMBER = 'SET_PAGE_NUMBER';\n\n// Filters\nexport const SET_FILTERS = 'SET_FILTERS';\nexport const REMOVE_FILTERS = 'REMOVE_FILTERS';\nexport const SET_ADVANCED_FILTER = 'SET_ADVANCED_FILTER';\nexport const SET_EXPANDED_FILTER = 'SET_EXPANDED_FILTER';\nexport const CLEAR_FILTERS = 'CLEAR_FILTERS';\nexport const SET_FILTER_ERROR = 'SET_FILTER_ERROR';\nexport const SET_KEYS = 'SET_KEYS';\nexport const CLEAR_KEYS = 'CLEAR_KEYS';\n\n// History\nexport const ADD_FILTER_TO_HISTORY = 'ADD_FILTER_TO_HISTORY';\nexport const SET_FILTER_HISTORY = 'SET_FILTER_HISTORY';\n\n// Custom Filters\nexport const SET_CUSTOM_FILTERS = 'SET_CUSTOM_FILTERS';\n\n// Search bar functionality\nexport const SET_SELECTED_ENTITY = 'SET_SELECTED_ENTITY';\nexport const SET_ADVANCED_MODE = 'SET_ADVANCED_MODE';\nexport const SET_SAVE_STATUS = 'SET_SAVE_STATUS';\n\nexport const SAVE_DASHBOARD_TEMPLATE = 'SAVE_DASHBOARD_TEMPLATE';\n","export const SET_IMAGE_PREVIEW = 'SET_IMAGE_PREVIEW';\nexport const UPDATE_VULNS_LIST = 'UPDATE_VULNS_LIST';\nexport const SET_VULNS_FILTER_ERROR = 'SET_VULNS_FILTER_ERROR';\nexport const SEARCH_VULNS_START = 'SEARCH_VULNS_START';\nexport const SEARCH_VULNS_FAIL = 'SEARCH_VULNS_FAIL';\nexport const VULN_SELECTED = 'VULN_SELECTED';\nexport const VULN_UNSELECTED = 'VULN_UNSELECTED';\nexport const SHOW_MODAL_DELETE_CONFIRMATION_VULNS = 'SHOW_MODAL_DELETE_CONFIRMATION_VULNS';\nexport const HIDE_MODAL_DELETE_CONFIRMATION_VULNS = 'HIDE_MODAL_DELETE_CONFIRMATION_VULNS';\nexport const DELETE_VULNS = 'DELETE_VULNS';\nexport const HIDE_MODAL_DELETE_CONFIRMATION_VULNS_SUCCEED = 'HIDE_MODAL_DELETE_CONFIRMATION_VULNS_SUCCEED';\nexport const RESET_STATE_MANAGE = 'RESET_STATE_MANAGE';\nexport const EXPORT_CSV_MANAGE_SUCCESS = 'EXPORT_CSV_MANAGE_SUCCESS';\nexport const EXPORT_CSV_MANAGE_FAILURE = 'EXPORT_CSV_MANAGE_FAILURE';\nexport const CONFIRMATION_CHANGE_START = 'CONFIRMATION_CHANGE_START';\nexport const CONFIRMATION_CHANGE_SUCCESS = 'CONFIRMATION_CHANGE_SUCCESS';\nexport const CONFIRMATION_CHANGE_FAIL = 'CONFIRMATION_CHANGE_FAIL';\nexport const GET_GROUPED_DATA_START = 'GET_GROUPED_DATA_START';\nexport const GET_GROUPED_DATA_SUCCESS = 'GET_GROUPED_DATA_SUCCESS';\nexport const RESET_ERROR_VALUE = 'RESET_ERROR_VALUE';\nexport const SHOW_MANAGE_LEFT_FILTERS = 'SHOW_MANAGE_LEFT_FILTERS';\nexport const SHOW_VULNERABILITY_DETAIL = 'SHOW_VULNERABILITY_DETAIL';\nexport const HIDE_VULNERABILITY_DETAIL = 'HIDE_VULNERABILITY_DETAIL';\nexport const SET_VULNERABILITY_DETAIL_TAB = 'SET_VULNERABILITY_DETAIL_TAB';\nexport const UPDATE_VULN_MANAGE_PREVIEW_SUCCESS = 'UPDATE_VULN_MANAGE_PREVIEW_SUCCESS';\nexport const UPDATE_VULN_MANAGE_PREVIEW_FAILURE = 'UPDATE_VULN_MANAGE_PREVIEW_FAILURE';\nexport const SELECT_GROUP_MANAGE = 'SELECT_GROUP_MANAGE';\nexport const SELECT_VULN_GROUP_MANAGE = 'SELECT_VULN_GROUP_MANAGE';\nexport const MANAGE_SET_BULK_UPDATE_FIELD = 'MANAGE_SET_BULK_UPDATE_FIELD';\nexport const MANAGE_SET_BULK_UPDATE_SUCCESS = 'MANAGE_SET_BULK_UPDATE_SUCCESS';\nexport const MANAGE_SET_BULK_UPDATE_VALUE = 'MANAGE_SET_BULK_UPDATE_VALUE';\nexport const MANAGE_ADD_BULK_UPDATE_VALUE = 'MANAGE_ADD_BULK_UPDATE_VALUE';\nexport const MANAGE_REMOVE_BULK_UPDATE_VALUE = 'MANAGE_REMOVE_BULK_UPDATE_VALUE';\nexport const MANAGE_BULK_UPDATE_FINISHED = 'MANAGE_BULK_UPDATE_FINISHED';\nexport const MANAGE_BULK_SAVE_TEMPLATE_FINISHED = 'MANAGE_BULK_SAVE_TEMPLATE_FINISHED';\nexport const GET_TEMPLATES_BULK_START = 'GET_TEMPLATES_BULK_START';\nexport const GET_TEMPLATES_BULK_SUCCESS = 'GET_TEMPLATES_BULK_SUCCESS';\nexport const GET_TEMPLATES_BULK_FAIL = 'GET_TEMPLATES_BULK_FAIL';\nexport const GET_VULNS_SUCCESS_MANAGE = 'GET_VULNS_SUCCESS_MANAGE';\nexport const ADD_MOCK_VULN = 'ADD_MOCK_VULN';\nexport const REMOVE_MOCK_VULN = 'REMOVE_MOCK_VULN';\nexport const MANAGE_VULN_ERROR = 'MANAGE_VULN_ERROR';\nexport const REFRESH_VULNS = 'REFRESH_VULNS';\nexport const READ_ONLY_ERROR = 'READ_ONLY_ERROR';\nexport const NEW_PIVOT = 'NEW_PIVOT';\nexport const SELECT_ALL_VULN = 'SELECT_ALL_VULN';\nexport const UNSELECT_ALL_VULN = 'UNSELECT_ALL_VULN';\nexport const SHOW_CONTEXT_MENU = 'SHOW_CONTEXT_MENU';\nexport const SAVE_TEMPLATE_MANAGE = 'SAVE_TEMPLATE_MANAGE';\nexport const CLOSE_TEMPLATE_MODAL_MESSAGE = 'CLOSE_TEMPLATE_MODAL_MESSAGE';\nexport const SELECT_TOTAL_VULNS = 'SELECT_TOTAL_VULNS';\nexport const UNSELECT_TOTAL_VULNS = 'UNSELECT_TOTAL_VULNS';\nexport const SET_ERROR = 'SET_ERROR';\n","import { updatePreferences } from 'store/Preferences/actions';\n\nfunction setTourFinished (status) {\n return async (dispatch) => {\n const preferences = { tourFinished: status };\n dispatch(updatePreferences(preferences));\n };\n}\n\nexport default setTourFinished;\n","export const impact = [\n { name: 'accountability', value: false },\n { name: 'availability', value: false },\n { name: 'confidentiality', value: false },\n { name: 'integrity', value: false }\n];\n\nexport const easeOfResolution = [\n { name: 'trivial', desc: 'Trivial' },\n { name: 'simple', desc: 'Simple' },\n { name: 'moderate', desc: 'Moderate' },\n { name: 'difficult', desc: 'Difficult' },\n { name: 'infeasible', desc: 'Infeasible' }\n];\n\nexport const severities = [\n { name: 'critical', desc: 'CRITICAL' },\n { name: 'high', desc: 'HIGH' },\n { name: 'medium', desc: 'MEDIUM' },\n { name: 'low', desc: 'LOW' },\n { name: 'informational', desc: 'INFORMATIONAL' },\n { name: 'unclassified', desc: 'UNCLASSIFIED' }\n];\n\nexport const vulnerabilityTypes = [\n { name: 'Vulnerability', desc: ' Vulnerability' },\n { name: 'VulnerabilityWeb', desc: ' Web Vulnerability' }\n];\n\nexport const products = [\n { name: 'Faraday', desc: 'Faraday' },\n { name: 'Metasploit', desc: 'Metasploit' },\n { name: 'Nessus', desc: 'Nessus' },\n { name: 'Acunetix', desc: 'Acunetix' },\n { name: 'Burp', desc: 'Burp' },\n { name: 'Canvas', desc: 'Canvas' },\n { name: 'Maltego', desc: 'Maltego' },\n { name: 'Core', desc: 'label' },\n { name: 'Nexpose', desc: 'Nexpose' },\n { name: 'Netsparker', desc: 'Netsparker' },\n { name: 'Retina', desc: 'Retina' },\n { name: 'Onapsis', desc: ' Platform' },\n { name: 'Qualys', desc: 'Qualys' },\n { name: 'Fortify', desc: 'Fortify' },\n { name: 'Checkmarx', desc: 'Checkmarx' },\n { name: 'Other', desc: 'Other' }\n];\n\nexport const status = [\n { name: 'open', desc: 'Open' },\n { name: 'closed', desc: 'Closed' },\n { name: 're-opened', desc: 'Re-Opened' },\n { name: 'risk-accepted', desc: 'Risk-Accepted' }\n];\n\nexport const tableMaxPages = 3;\n\nexport const methodOptions = [\n { name: 'GET', desc: 'GET' },\n { name: 'POST', desc: 'POST' },\n { name: 'PUT', desc: 'PUT' },\n { name: 'DELETE', desc: 'DELETE' },\n { name: 'PATCH', desc: 'PATCH' },\n { name: 'HEAD', desc: 'HEAD' },\n { name: 'CONNECT', desc: 'CONNECT' },\n { name: 'OPTIONS', desc: 'OPTIONS' }\n];\n","import get from 'lodash/get';\n\nexport const selectActiveFeeds = (state) => {\n const tools = get(state, 'dashboard.tools', []);\n return tools.length >= 5 ? tools[4].data : null;\n};\n\nexport const selectCommandHistory = (state) => get(state, 'dashboard.commandHistory', []);\nexport const selectIsFetching = (state) => get(state, 'dashboard.isFetching', false);\n","import humps from 'humps';\nimport api from 'services/api';\nimport get from 'lodash/get';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport { selectActiveFeeds, selectCommandHistory } from 'store/Dashboard/selectors';\n\nexport const GET_VULNS_COUNT = 'GET_VULNS_COUNT';\nexport const GET_VULNS_COUNT_SUCCEED_DASHBOARD = 'GET_VULNS_COUNT_SUCCEED_DASHBOARD';\nexport const GET_VULNS_COUNT_FAILURE_DASHBOARD = 'GET_VULNS_COUNT_FAILURE_DASHBOARD';\n\nexport const GET_TOP_SERVICES = 'GET_TOP_SERVICES';\nexport const GET_TOP_SERVICES_FAILURE_DASHBOARD = 'GET_TOP_SERVICES_FAILURE_DASHBOARD';\nexport const GET_TOP_SERVICES_SUCCEED_DASHBOARD = 'GET_TOP_SERVICES_SUCCEED_DASHBOARD';\n\nexport const GET_TOP_HOSTS = 'GET_TOP_HOSTS';\nexport const GET_TOP_HOSTS_FAILURE_DASHBOARD = 'GET_TOP_HOSTS_FAILURE_DASHBOARD';\nexport const GET_TOP_HOSTS_SUCCEED_DASHBOARD = 'GET_TOP_HOSTS_SUCCEED_DASHBOARD';\n\nexport const GET_SUMMARY_DASHBOARD = 'GET_SUMMARY_DASHBOARD';\nexport const GET_SUMMARY_SUCCEED_DASHBOARD = 'GET_SUMMARY_SUCCEED_DASHBOARD';\nexport const GET_SUMMARY_FAILURE_DASHBOARD = 'GET_SUMMARY_FAILURE_DASHBOARD';\n\nexport const GET_ACTIVITY_FEED = 'GET_ACTIVITY_FEED';\nexport const GET_ACTIVITY_FEED_SUCCEED_DASHBOARD = 'GET_ACTIVITY_FEED_SUCCEED_DASHBOARD';\nexport const GET_ACTIVITY_FEED_FAILURE_DASHBOARD = 'GET_ACTIVITY_FEED_FAILURE_DASHBOARD';\n\nexport const GET_COMMAND_HISTORY_START = 'GET_COMMAND_HISTORY_START';\nexport const GET_COMMAND_HISTORY_SUCCEED = 'GET_COMMAND_HISTORY_SUCCEED';\nexport const GET_COMMAND_HISTORY_FAILURE = 'GET_COMMAND_HISTORY_FAILURE';\n\nexport const GET_TIMELINE = 'GET_TIMELINE';\nexport const GET_TIMELINE_SUCCEED_DASHBOARD = 'GET_TIMELINE_SUCCEED_DASHBOARD';\nexport const GET_TIMELINE_FAILURE_DASHBOARD = 'GET_TIMELINE_FAILURE_DASHBOARD';\n\nexport const GET_LATEST_VULNS_START_DASHBOARD = 'GET_LATEST_VULNS_START_DASHBOARD';\nexport const GET_LATEST_VULNS_SUCCEED_DASHBOARD = 'GET_LATEST_VULNS_SUCCEED_DASHBOARD';\nexport const GET_LATEST_VULNS_FAILURE_DASHBOARD = 'GET_LATEST_VULNS_FAILURE_DASHBOARD';\n\nexport const GET_LATEST_TAGS_START_DASHBOARD = 'GET_LATEST_TAGS_START_DASHBOARD';\nexport const GET_LATEST_TAGS_SUCCEED_DASHBOARD = 'GET_LATEST_TAGS_SUCCEED_DASHBOARD';\nexport const GET_LATEST_TAGS_FAILURE_DASHBOARD = 'GET_LATEST_TAGS_FAILURE_DASHBOARD';\n\nexport const GET_VULNS_BY_STATUS_REQUEST = 'GET_VULNS_BY_STATUS_REQUEST';\nexport const GET_VULNS_BY_STATUS_SUCCESS = 'GET_VULNS_BY_STATUS_SUCCESS';\nexport const GET_VULNS_BY_STATUS_FAILURE = 'GET_VULNS_BY_STATUS_FAILURE';\n\nexport const GET_VULNS_BY_SEVERITY_REQUEST = 'GET_VULNS_BY_SEVERITY_REQUEST';\nexport const GET_VULNS_BY_SEVERITY_SUCCESS = 'GET_VULNS_BY_SEVERITY_SUCCESS';\nexport const GET_VULNS_BY_SEVERITY_FAILURE = 'GET_VULNS_BY_SEVERITY_FAILURE';\n\nexport const SHOW_MODAL_IMPORT_DASHBOARD = 'SHOW_MODAL_IMPORT_DASHBOARD';\n\nexport const RELOAD_FEED = 'RELOAD_FEED';\n\nexport const GET_STATS_FILTERED_START = 'GET_STATS_FILTERED_START';\nexport const GET_STATS_FILTERED_SUCCESS = 'GET_STATS_FILTERED_SUCCESS';\nexport const GET_STATS_FILTERED_FAILURE = 'GET_STATS_FILTERED_FAILURE';\n\nconst getVulnsCountFailureCallback = (error) => ({\n type: GET_VULNS_COUNT_FAILURE_DASHBOARD, error\n});\n\nconst getVulnsCountSuccedCallback = (data) => ({\n type: GET_VULNS_COUNT_SUCCEED_DASHBOARD, data\n});\n\nexport function getVulnsCount () {\n return async (dispatch, getState) => {\n try {\n dispatch({ type: GET_VULNS_COUNT });\n const workspace = selectCurrentWorkspace(getState());\n\n const response = await api.dashboard.getVulnsCountBySeverity(workspace);\n return dispatch(getVulnsCountSuccedCallback(response));\n } catch (e) {\n return dispatch(getVulnsCountFailureCallback(get(e, 'message', 'An error has occurred.')));\n }\n };\n}\n\nexport function getTopServices () {\n return async (dispatch, getState) => {\n try {\n dispatch({ type: GET_TOP_SERVICES });\n const workspace = selectCurrentWorkspace(getState());\n const response = await api.dashboard.getTopServicesByName(workspace);\n return dispatch({ type: GET_TOP_SERVICES_SUCCEED_DASHBOARD, data: response });\n } catch (e) {\n return dispatch({ type: GET_TOP_SERVICES_FAILURE_DASHBOARD, error: e.message || 'An error has occurred.' });\n }\n };\n}\n\nexport function getTopHosts () {\n return async (dispatch, getState) => {\n try {\n dispatch({ type: GET_TOP_HOSTS });\n const workspace = selectCurrentWorkspace(getState());\n const response = await api.dashboard.getTopHostsDashboard(workspace);\n return dispatch({ type: GET_TOP_HOSTS_SUCCEED_DASHBOARD, data: response });\n } catch (e) {\n return dispatch({ type: GET_TOP_HOSTS_FAILURE_DASHBOARD, error: e.message || 'An error has occurred.' });\n }\n };\n}\n\nexport function getSummary () {\n return async (dispatch, getState) => {\n try {\n dispatch({ type: GET_SUMMARY_DASHBOARD });\n const workspace = selectCurrentWorkspace(getState());\n const response = await api.workspace.getWsStats(workspace);\n return dispatch({ type: GET_SUMMARY_SUCCEED_DASHBOARD, data: response });\n } catch (e) {\n return dispatch({ type: GET_SUMMARY_FAILURE_DASHBOARD, error: e.message || 'An error has occurred.' });\n }\n };\n}\n\nconst getLatestVulnsStartCallback = (data) => ({\n type: GET_LATEST_VULNS_START_DASHBOARD,\n data\n});\n\nconst getLatestVulnsSuccedCallback = (data) => ({\n type: GET_LATEST_VULNS_SUCCEED_DASHBOARD,\n data\n});\n\nconst getLatestVulnsFailureCallback = (error) => ({\n type: GET_LATEST_VULNS_FAILURE_DASHBOARD,\n error\n});\n\nexport function getLatestVulns (confirmed) {\n return async (dispatch, getState) => {\n try {\n dispatch(getLatestVulnsStartCallback());\n const workspace = selectCurrentWorkspace(getState());\n const response = await api.dashboard.fetchLatestVulns(workspace, confirmed);\n return dispatch(getLatestVulnsSuccedCallback(humps.camelizeKeys(response)));\n } catch (e) {\n return dispatch(getLatestVulnsFailureCallback(get(e, 'message', 'Failed to obtain latest vulns')));\n }\n };\n}\n\nconst getLatestTagsStartCallback = (data) => ({\n type: GET_LATEST_TAGS_START_DASHBOARD,\n data\n});\n\nconst getLatestTagsSuccedCallback = (data) => ({\n type: GET_LATEST_TAGS_SUCCEED_DASHBOARD,\n data\n});\n\nconst getLatestTagsFailureCallback = (error) => ({\n type: GET_LATEST_TAGS_FAILURE_DASHBOARD,\n error\n});\n\nexport function getLatestTags () {\n return async (dispatch, getState) => {\n try {\n dispatch(getLatestTagsStartCallback());\n const workspace = selectCurrentWorkspace(getState());\n const response = await api.dashboard.fetchLatestTags(workspace);\n return dispatch(getLatestTagsSuccedCallback(response));\n } catch (e) {\n return dispatch(getLatestTagsFailureCallback(e));\n }\n };\n}\n\nexport function getActivityFeed (page = 1) {\n return async (dispatch, getState) => {\n try {\n dispatch({ type: GET_ACTIVITY_FEED });\n const ws = selectCurrentWorkspace(getState());\n const feeds = selectActiveFeeds(getState());\n\n const response = await api.dashboard.getActivitiesList(ws, page);\n const parsed = response.activities;\n\n const data = page === 1 ? parsed : [...parsed, ...feeds.activities];\n\n return dispatch({\n type: GET_ACTIVITY_FEED_SUCCEED_DASHBOARD,\n data: {\n activities: [\n ...data\n ]\n }\n });\n } catch (e) {\n return dispatch({ type: GET_ACTIVITY_FEED_FAILURE_DASHBOARD, error: e.message || 'An error has occurred.' });\n }\n };\n}\n\nexport function getCommandHistory (page = 1) {\n return async (dispatch, getState) => {\n try {\n dispatch({ type: GET_COMMAND_HISTORY_START });\n\n const ws = selectCurrentWorkspace(getState());\n const history = selectCommandHistory(getState());\n\n const response = await api.dashboard.getCommandHistory(ws, page);\n const parsed = response.commands.map((c) => c.value);\n\n const data = page === 1 ? parsed : [...history, ...parsed];\n\n dispatch({ type: GET_COMMAND_HISTORY_SUCCEED, data });\n } catch (e) {\n dispatch({ type: GET_COMMAND_HISTORY_FAILURE, error: e.message || 'An error has occurred.' });\n }\n };\n}\n\nexport function getTimeline () {\n return async (dispatch, getState) => {\n try {\n dispatch({ type: GET_TIMELINE });\n const workspace = selectCurrentWorkspace(getState());\n const response = await api.dashboard.getVulnsTimeline(workspace);\n return dispatch({ type: GET_TIMELINE_SUCCEED_DASHBOARD, data: response });\n } catch (e) {\n return dispatch({ type: GET_TIMELINE_FAILURE_DASHBOARD, error: e.message || 'An error has occurred.' });\n }\n };\n}\nexport function showModalImportDashboard (value) {\n return (dispatch) => {\n dispatch({ type: SHOW_MODAL_IMPORT_DASHBOARD, value });\n };\n}\n\nexport function refreshDashboard () {\n return (dispatch) => {\n dispatch({ type: RELOAD_FEED });\n };\n}\n\nexport function onGetVulnsByStatusFail (e) {\n return (dispatch) => {\n dispatch({ type: GET_VULNS_BY_STATUS_FAILURE, error: e });\n };\n}\n\nexport function getVulnsCountByStatus () {\n return async (dispatch, getState) => {\n try {\n dispatch({ type: GET_VULNS_BY_STATUS_REQUEST });\n const workspace = selectCurrentWorkspace(getState());\n const response = await api.dashboard.getVulnsCountByStatus(workspace);\n return dispatch({ type: GET_VULNS_BY_STATUS_SUCCESS, data: response });\n } catch (e) {\n return dispatch(onGetVulnsByStatusFail(get(e, 'message', 'Failed to obtain Vuln count by Status.')));\n }\n };\n}\n\nexport function onGetVulnsBySeverityFail (e) {\n return (dispatch) => {\n dispatch({ type: GET_VULNS_BY_SEVERITY_FAILURE, error: e });\n };\n}\n\nexport function getVulnsCountBySeverity () {\n return async (dispatch, getState) => {\n try {\n dispatch({ type: GET_VULNS_BY_SEVERITY_REQUEST });\n const workspace = selectCurrentWorkspace(getState());\n const response = await api.dashboard.getVulnsCountBySeverity(workspace);\n return dispatch({ type: GET_VULNS_BY_SEVERITY_SUCCESS, data: response });\n } catch (e) {\n return dispatch(onGetVulnsBySeverityFail(get(e, 'message', 'Failed to obtain Vuln count by Severity.')));\n }\n };\n}\n\nexport function getStatsFiltered (filter) {\n return async (dispatch, getState) => {\n try {\n dispatch({ type: GET_STATS_FILTERED_START });\n const workspace = selectCurrentWorkspace(getState());\n const response = await api.workspace.getWsStatsFiltered(workspace, filter);\n return dispatch({ type: GET_STATS_FILTERED_SUCCESS, data: response });\n } catch (e) {\n return dispatch({ type: GET_STATS_FILTERED_FAILURE, error: e.message || 'Failed to obtain filtered stats.' });\n }\n };\n}\n","export const workspaceIsInWorkspaceActivity = (workspaceActivity, workspace) => workspaceActivity.some((ws) => ws === workspace);\n\nexport const removeWorkspaceFromWorkspaceActivity = (workspaceActivity, workspace) => workspaceActivity.filter((ws) => ws !== workspace);\n","import get from 'lodash/get';\n\nexport const selectWorkspaceActivity = (state) => get(state, 'preferences.workspaceActivity', []);\nexport const selectAutoSelectWs = (state) => get(state, 'preferences.autoSelectWs', false);\n","import get from 'lodash/get';\n\nexport const selectIsSaving = (state) => get(state, 'workspaceEditCreate.isSaving', false);\nexport const selectWorkspaceSaved = (state) => get(state, 'workspaceEditCreate.workspaceSaved', false);\nexport const selectWsEditCreateName = (state) => get(state, 'workspaceEditCreate.name', '');\nexport const selectWsEditCreateDescription = (state) => get(state, 'workspaceEditCreate.description', '');\nexport const selectWsEditCreateUsers = (state) => get(state, 'workspaceEditCreate.users', []);\nexport const selectWsEditCreateStart = (state) => get(state, 'workspaceEditCreate.start', '');\nexport const selectWsEditCreateEnd = (state) => get(state, 'workspaceEditCreate.end', '');\nexport const selectWsEditCreateLocale = (state) => get(state, 'locale', '');\nexport const selectWsEditCreateErrorMessage = (state) => get(state, 'workspaceEditCreate.errorMessage', '');\nexport const selectWsEditCreateId = (state) => get(state, 'workspaceEditCreate.id');\nexport const selectCurrentWsName = (state) => get(state, 'workspaceEditCreate.currentName', '');\nexport const selectIsFetching = (state) => get(state, 'workspaceEditCreate.isFetching', false);\nexport const selectScope = (state) => get(state, 'workspaceEditCreate.scope', []);\nexport const selectWsEditActive = (state) => get(state, 'workspaceEditCreate.active', false);\nexport const selectWsEditCustomer = (state) => get(state, 'workspaceEditCreate.customer', '');\nexport const selectWsEditReadonly = (state) => get(state, 'workspaceEditCreate.readonly', true);\nexport const selectWsEditCreatePublic = (state) => get(state, 'workspaceEditCreate.public', false);\nexport const selectWsEditCreateImportance = (state) => get(state, 'workspaceEditCreate.importance', 0);\n","import get from 'lodash/get';\n\nconst selectModal = (state, modal) => get(state, `modals.${modal}`, false);\n\nexport default selectModal;\n","import selectModal from './selectors';\n\nexport const OPEN_MODAL = 'OPEN_MODAL';\nexport const CLOSE_MODAL = 'CLOSE_MODAL';\n\nexport const closeModal = (modalName) => (dispatch, getState) => {\n const opened = selectModal(getState(), modalName);\n if (opened) dispatch({ type: CLOSE_MODAL, payload: modalName });\n};\n\nexport const openModal = (modalName) => (dispatch, getState) => {\n const opened = selectModal(getState(), modalName);\n if (!opened) dispatch({ type: OPEN_MODAL, payload: modalName });\n};\n","import get from 'lodash/get';\n\nexport const selectRedirectPathname = (state) => get(state, 'global.redirectPathname', '');\nexport const selectRedirectSearch = (state) => get(state, 'global.redirectSearch', '');\nexport const selectRedirectSaveHistory = (state) => get(state, 'global.redirectSaveHistory', false);\nexport const selectHasPendingChanges = (state) => get(state, 'global.redirectHasPendingChanges', false);\nexport const selectTabToggleValue = (state, tab, field) => get(state, `global.tabs.${tab}.${field}.expanded`, false);\n","import { push, replace } from 'connected-react-router';\nimport { openModal, closeModal } from 'store/modals/actions';\nimport { MODAL_REDIRECT_CONFIRMATION } from 'store/modals/modals';\nimport {\n selectRedirectPathname,\n selectRedirectSearch,\n selectRedirectSaveHistory,\n selectHasPendingChanges\n} from 'store/Global/selectors';\nimport * as types from '../Global/types';\n\nexport function setHasPendingChanges (hasPendingChanges) {\n return { type: types.SET_HAS_PENDING_CHANGES, hasPendingChanges };\n}\n\nfunction redirectStart (payload) {\n return async (dispatch) => {\n dispatch({ type: types.REDIRECT_START, ...payload });\n };\n}\n\nfunction redirectFinished (ignorePendingChanges) {\n return async (dispatch) => {\n dispatch({ type: types.REDIRECT_CLEAR });\n if (!ignorePendingChanges) dispatch(setHasPendingChanges(false));\n dispatch(closeModal(MODAL_REDIRECT_CONFIRMATION));\n };\n}\n\nexport function redirectClear () {\n return async (dispatch) => {\n dispatch({ type: types.REDIRECT_CLEAR });\n dispatch(closeModal(MODAL_REDIRECT_CONFIRMATION));\n };\n}\n\nexport function performRedirect (ignorePendingChanges) {\n return async (dispatch, getState) => {\n const state = getState();\n const pathname = selectRedirectPathname(state);\n const saveHistory = selectRedirectSaveHistory(state);\n const search = selectRedirectSearch(state);\n const payload = { pathname, search };\n\n if (saveHistory) dispatch(push(payload));\n else dispatch(replace(payload));\n\n dispatch(redirectFinished(ignorePendingChanges));\n };\n}\n\nexport function redirect (pathname, saveHistory = true, search = '', ignorePendingChanges = false) {\n return async (dispatch, getState) => {\n const hasPendingChanges = selectHasPendingChanges(getState());\n dispatch(redirectStart({ pathname, saveHistory, search }));\n if (hasPendingChanges && !ignorePendingChanges) dispatch(openModal(MODAL_REDIRECT_CONFIRMATION));\n else dispatch(performRedirect(ignorePendingChanges));\n };\n}\n","export const REDIRECT_START = 'REDIRECT_START';\nexport const REDIRECT_CLEAR = 'REDIRECT_CLEAR';\nexport const SET_HAS_PENDING_CHANGES = 'SET_HAS_PENDING_CHANGES';\nexport const EXPAND_COLLAPSE = 'EXPAND_COLLAPSE';\n","export const MODAL_MANAGE_BULK_UPDATE = 'MODAL_MANAGE_BULK_UPDATE';\nexport const MODAL_MANAGE_BULK_UPDATE_CONFIRMATION = 'MODAL_MANAGE_BULK_UPDATE_CONFIRMATION';\nexport const MODAL_RUN_USER_AGENT = 'modalRunAgent';\nexport const MODAL_AGENT_TOKEN = 'modalAgentToken';\nexport const MODAL_AGENT_CREATE = 'modalAgentCreate';\nexport const MODAL_WORKSPACE_CREATE_EDIT = 'modalWorkspaceCreateEdit';\nexport const MODAL_EVIDENCE = 'MODAL_EVIDENCE';\nexport const MODAL_CREATE_SERVICE = 'MODAL_CREATE_SERVICE';\nexport const MODAL_REDIRECT_CONFIRMATION = 'MODAL_REDIRECT_CONFIRMATION';\nexport const MODAL_APPLY_TEMPLATE = 'MODAL_APPLY_TEMPLATE';\nexport const MODAL_CUSTOM_ATTRIBUTES = 'MODAL_CUSTOM_ATTRIBUTES';\nexport const MODAL_UPGRADE_LICENSE_SIDEBAR = 'modalUpgradeLicenseSidebar';\nexport const MODAL_UPGRADE_LICENSE_ACTION_BAR = 'modalUpgradeLicenseActionBar';\nexport const MODAL_UPGRADE_LICENSE_VULN_DETAIL = 'modalUpgradeLicenseVulnDetail';\nexport const MODAL_TOUR_FINISHED = 'MODAL_TOUR_FINISHED';\nexport const MODAL_EVIDENCE_WARNING_UPLOAD = 'MODAL_EVIDENCE_WARNING_UPLOAD';\n","import api from 'services/api';\nimport { showModalImportDashboard } from 'Screens/Dashboard/actions/Actions';\nimport { selectCurrentWorkspaceData, selectWorkspacesSelected } from 'store/Workspace/selectors';\nimport { updateCurrentWorkspaceOnEdit as setFaradayWorkspace } from 'Screens/Faraday/actions/Actions';\nimport { workspaceIsInWorkspaceActivity, removeWorkspaceFromWorkspaceActivity } from 'Screens/Faraday/functions';\nimport { updatePreferences } from 'store/Preferences/actions';\nimport { selectWorkspaceActivity } from 'store/Preferences/workspace/selectors';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport {\n selectCurrentWsName,\n selectWsEditCreateName,\n selectWsEditCreateDescription,\n selectWsEditCreateStart,\n selectWsEditCreateEnd,\n selectWsEditCreateId,\n selectScope,\n selectWsEditActive,\n selectWsEditCustomer,\n selectWsEditReadonly,\n selectWsEditCreatePublic,\n selectWsEditCreateImportance\n} from 'store/WorkspaceEditCreate/selectors';\nimport { redirect } from 'store/Router/actions';\nimport {\n setPageNumber, clearFilters,\n setFilter, setOrderBy\n} from 'store/Filters/actions';\nimport { selectQueryParam } from 'store/Filters/selectors';\nimport { setError } from 'store/errors/actions';\n\nexport const SET_FIELD = 'SET_FIELD';\nexport const GET_DATA_WORKSPACE_START = 'GET_DATA_WORKSPACE_START';\nexport const GET_DATA_WORKSPACE_FAIL = 'GET_DATA_WORKSPACE_FAIL';\nexport const GET_DATA_WORKSPACE_SUCCESS = 'GET_DATA_WORKSPACE_SUCCESS';\nexport const WORKSPACE_SELECTED_FOR_WORKING = 'WORKSPACE_SELECTED_FOR_WORKING';\nexport const GET_WORKSPACES_FOR_WORKING_STARTED = 'GET_WORKSPACES_FOR_WORKING_STARTED';\nexport const GET_WORKSPACES_FOR_WORKING_SUCCESS = 'GET_WORKSPACES_FOR_WORKING_SUCCESS';\nexport const GET_WORKSPACES_FOR_WORKING_FAILURE = 'GET_WORKSPACES_FOR_WORKING_FAILURE';\nexport const WORKSPACE_CREATE_UPDATE_START = 'WORKSPACE_CREATE_UPDATE_START';\nexport const WORKSPACE_CREATE_UPDATE_SUCCESS = 'WORKSPACE_CREATE_UPDATE_SUCCESS';\nexport const WORKSPACE_ENABLE_DISABLE = 'WORKSPACE_ENABLE_DISABLE';\nexport const STOP_REDIRECT = 'STOP_REDIRECT';\nexport const WORKSPACE_SELECTED = 'WORKSPACE_SELECTED';\nexport const DELETE_WORKSPACES = 'DELETE_WORKSPACES';\nexport const WORKSPACE_UPDATE_SUCCESS = 'WORKSPACE_UPDATE_SUCCESS';\nexport const SET_VISIBILITY_CREATE_MODAL_WORKSPACE = 'SET_VISIBILITY_CREATE_MODAL_WORKSPACE';\nexport const WORKSPACE_CREATION_ERROR = 'WORKSPACE_CREATION_ERROR';\nexport const SET_WORKSPACE_FOR_EDIT = 'SET_WORKSPACE_FOR_EDIT';\nexport const WORKSPACE_MASSIVE_UPDATE_FAIL = 'WORKSPACE_MASSIVE_UPDATE_FAIL';\nexport const WORKSPACE_MASSIVE_UPDATE_SUCCESS = 'WORKSPACE_MASSIVE_UPDATE_SUCCESS';\nexport const MORE_OPTIONS_STATUS_CHANGE_WORKSPACE = 'MORE_OPTIONS_STATUS_CHANGE_WORKSPACE';\nexport const TOGGLE_INACTIVE_FLAG = 'TOGGLE_INACTIVE_FLAG';\nexport const GET_DATA_WORKSPACES_SUCCESS = 'GET_DATA_WORKSPACES_SUCCESS';\nexport const WORKSPACE_SHOW_GRID_VIEW = 'WORKSPACE_SHOW_GRID_VIEW';\nexport const CURRENT_WORKSPACE_EDITED_UPDATE = 'CURRENT_WORKSPACE_EDITED_UPDATE';\nexport const SET_CURRENT_WORKSPACE_AS_INVALID = 'SET_CURRENT_WORKSPACE_AS_INVALID';\nexport const SET_SHOW_WORKSPACE_VALIDATOR = 'SET_SHOW_WORKSPACE_VALIDATOR';\n\nexport const RESET_STATE_WORKSPACE_CREATE_UPDATE = 'RESET_STATE_WORKSPACE_CREATE_UPDATE';\nexport const WORKSPACE_CREATE_UPDATE_FAIL = 'WORKSPACE_CREATE_UPDATE_FAIL';\n\nexport function resetCreationState () {\n return (dispatch) => {\n dispatch({\n type: RESET_STATE_WORKSPACE_CREATE_UPDATE\n });\n };\n}\n\nexport function getWorkspaces () {\n return async (dispatch) => {\n try {\n dispatch({ type: GET_WORKSPACES_FOR_WORKING_STARTED });\n const data = await api.workspace.fetchWorkspaces({});\n dispatch({ type: GET_WORKSPACES_FOR_WORKING_SUCCESS, data });\n } catch (e) {\n dispatch({ type: GET_WORKSPACES_FOR_WORKING_FAILURE, data: e.message || 'Failed to obtain workspaces.' });\n }\n };\n}\n\n// Summary: select a workspace for user to work\nexport function workspaceSelectedForWorking (workspace) {\n return (dispatch) => {\n dispatch({ type: WORKSPACE_SELECTED_FOR_WORKING, workspace, redirect: true });\n };\n}\n\nexport function stopRedirect () {\n return (dispatch) => {\n dispatch({ type: STOP_REDIRECT });\n };\n}\n\nexport function getData () {\n return async (dispatch, getState) => {\n dispatch({ type: GET_DATA_WORKSPACE_START });\n const state = getState();\n const params = selectQueryParam('workspaces', state);\n try {\n const data = await api.workspace.fetchWorkspaces(params);\n return dispatch({ type: GET_DATA_WORKSPACES_SUCCESS, data });\n } catch (error) {\n return dispatch({ type: GET_DATA_WORKSPACE_FAIL, error });\n }\n };\n}\n\nexport function enableDisable (ws, value) {\n return async (dispatch, getState) => {\n try {\n const currentWorkspace = selectCurrentWorkspace(getState());\n if (currentWorkspace !== ws) {\n dispatch({ type: WORKSPACE_ENABLE_DISABLE });\n\n const { workspaceList } = getState().workspace;\n\n if (value) {\n await api.workspace.updateWorkspace(ws, { active: false });\n } else {\n await api.workspace.updateWorkspace(ws, { active: true });\n }\n\n const newWs = workspaceList.filter((workspace) => workspace.name === ws)[0];\n newWs.active = !value;\n\n dispatch({ type: WORKSPACE_UPDATE_SUCCESS, ws: newWs });\n dispatch(getWorkspaces());\n dispatch(getData());\n }\n } catch (e) {\n dispatch({ type: WORKSPACE_CREATE_UPDATE_FAIL, data: 'An error has occurred.' });\n }\n };\n}\n\nexport function changeReadOnly (ws, readonly) {\n return async (dispatch) => {\n try {\n dispatch({ type: WORKSPACE_ENABLE_DISABLE, ws });\n await api.workspace.updateWorkspace(ws, { readonly });\n const newWs = await api.workspace.getWsStats(ws);\n\n if (newWs) dispatch({ type: WORKSPACE_UPDATE_SUCCESS, ws: newWs });\n\n dispatch(getWorkspaces());\n dispatch(getData());\n } catch (e) {\n dispatch({ type: WORKSPACE_CREATE_UPDATE_FAIL, error: 'An error has occurred' });\n }\n };\n}\n\n// Summary: Add workspace selected to state. // se usa para la tabla\nexport function selectWorkspace (vulnsSelectedInfo) {\n return (dispatch) => {\n dispatch({\n type: WORKSPACE_SELECTED, vulnsSelectedInfo\n });\n };\n}\n\n// Summary: delete workspace/s from database\nexport function deleteWorkspaceSelected () {\n return async (dispatch, getState) => {\n const state = getState();\n const workspacesSelected = selectWorkspacesSelected(state);\n const wsActivity = selectWorkspaceActivity(state);\n dispatch({ type: DELETE_WORKSPACES });\n\n // TODO: Modify backend, so it should receive an array and return message\n // when some workspaces could not be deleted. Then, add request.\n try {\n const promises = workspacesSelected.map((ws) => api.workspace.deleteWorkspace(ws.name));\n await Promise.all(promises);\n const newWsActivity = wsActivity.filter((ws) => workspacesSelected.every((selected) => ws !== selected.name));\n dispatch(updatePreferences({ workspaceActivity: newWsActivity }));\n } catch (e) {\n dispatch(setError(e?.message || 'There was an error, please try again'));\n }\n\n await dispatch(getWorkspaces());\n await dispatch(getData());\n };\n}\n\nfunction getUpdatedFields (existingObj, newObj) {\n return Object.keys(newObj).reduce((acc, key) => {\n if (typeof newObj[key] === 'object' && newObj[key] !== null && !Array.isArray(newObj[key])) {\n const updatedNestedObj = getUpdatedFields(existingObj[key], newObj[key]);\n if (Object.keys(updatedNestedObj).length > 0) {\n acc[key] = updatedNestedObj;\n }\n } else if (JSON.stringify(existingObj[key]) !== JSON.stringify(newObj[key])) {\n acc[key] = newObj[key];\n }\n return acc;\n }, {});\n}\n\nexport function createUpdateWorkspace () {\n return async (dispatch, getState) => {\n try {\n const state = getState();\n const currentWsName = selectCurrentWsName(state);\n const name = selectWsEditCreateName(state);\n const description = selectWsEditCreateDescription(state);\n const start = selectWsEditCreateStart(state);\n const end = selectWsEditCreateEnd(state);\n const id = selectWsEditCreateId(state);\n const scope = selectScope(state);\n const currentWorkspace = selectCurrentWorkspace(state);\n const currentWorkspaceData = selectCurrentWorkspaceData(state);\n const active = selectWsEditActive(state);\n const customer = selectWsEditCustomer(state);\n const readonly = selectWsEditReadonly(state);\n const isPublic = selectWsEditCreatePublic(state);\n const importance = selectWsEditCreateImportance(state);\n\n let wsActivity = selectWorkspaceActivity(state);\n\n dispatch({ type: WORKSPACE_CREATE_UPDATE_START });\n\n // eslint-disable-next-line no-useless-escape\n if (!/[^A-Za-z0-9@._-]/.test(name)) {\n let workspace = {\n name,\n description,\n scope,\n duration: {\n start_date: start ? new Date(start).getTime() : '',\n end_date: end ? new Date(end).getTime() : ''\n },\n importance\n };\n\n if (id) {\n workspace = {\n ...workspace,\n active,\n customer,\n readonly,\n public: isPublic\n };\n\n // Compare the new data with the existing data and include only the changed fields\n const updatedWorkspace = getUpdatedFields(currentWorkspaceData, workspace);\n\n // Include the ID in the updated workspace\n updatedWorkspace.id = id;\n\n // Send the PATCH request with only the changed fields\n const newWs = await api.workspace.updateWorkspace(currentWsName, updatedWorkspace);\n dispatch({ type: WORKSPACE_UPDATE_SUCCESS, ws: newWs });\n } else {\n await api.workspace.createWorkspace(workspace);\n }\n\n dispatch({ type: WORKSPACE_CREATE_UPDATE_SUCCESS });\n\n if (id && workspaceIsInWorkspaceActivity(wsActivity, currentWorkspace)) {\n wsActivity = removeWorkspaceFromWorkspaceActivity(wsActivity, currentWorkspace);\n dispatch(updatePreferences({ workspaceActivity: wsActivity }));\n }\n\n if (currentWsName === currentWorkspace && currentWsName !== name) {\n dispatch(setFaradayWorkspace(name, currentWorkspace));\n }\n\n dispatch(setVisibilityCreateModal(false));\n dispatch(getWorkspaces());\n // Remove when add pagination and filter functionality\n return dispatch(getData());\n }\n return dispatch({ type: WORKSPACE_CREATE_UPDATE_FAIL, error: 'Workspace name can not contain white spaces, uppercase letters or special characters.' });\n } catch (e) {\n return dispatch({ type: WORKSPACE_CREATE_UPDATE_FAIL, error: e.message ? e.message : 'An error has occurred.' });\n }\n };\n}\n\nexport function setVisibilityCreateModal (value) {\n return (dispatch) => {\n dispatch({ type: SET_VISIBILITY_CREATE_MODAL_WORKSPACE, value });\n if (!value) dispatch({ type: RESET_STATE_WORKSPACE_CREATE_UPDATE, value });\n };\n}\n\nexport function showEditModal () {\n return async (dispatch, getState) => {\n const { workspacesSelected } = getState().workspace;\n try {\n const workspace = await api.workspace.getWsStats(workspacesSelected[0].name);\n dispatch(setVisibilityCreateModal(true));\n return dispatch({ type: SET_WORKSPACE_FOR_EDIT, workspace });\n } catch (e) {\n return dispatch({ type: WORKSPACE_CREATE_UPDATE_FAIL, error: e.message ? e.message : 'An error has occurred.' });\n }\n };\n}\n\nexport function massiveUpdateWorkspacesActive () {\n return async (dispatch, getState) => {\n const { workspacesSelected, workspaces } = getState().workspace;\n const currentWorkspace = selectCurrentWorkspace(getState());\n\n try {\n const workspacesUpdated = workspaces;\n\n workspacesSelected.forEach(async (ws) => {\n if (currentWorkspace !== ws.name) {\n const index = workspacesUpdated.findIndex((workspace) => workspace.id === ws.id);\n const wsCopy = ws;\n wsCopy.active = !wsCopy.active;\n workspacesUpdated[index] = wsCopy;\n\n if (wsCopy.active) {\n await api.workspace.updateWorkspace(wsCopy.name, { active: true });\n } else {\n await api.workspace.updateWorkspace(wsCopy.name, { active: false });\n }\n }\n });\n\n return dispatch({ type: WORKSPACE_MASSIVE_UPDATE_SUCCESS, workspaces: workspacesUpdated });\n } catch (e) {\n return dispatch({ type: WORKSPACE_MASSIVE_UPDATE_FAIL, error: e.message ? e.message : 'An error has occurred.' });\n }\n };\n}\n\nexport function moreStatusChange (value) {\n return (dispatch) => {\n dispatch({ type: MORE_OPTIONS_STATUS_CHANGE_WORKSPACE, value });\n };\n}\nexport function toggleInactive () {\n return (dispatch) => {\n dispatch({ type: TOGGLE_INACTIVE_FLAG });\n };\n}\n\nexport function workspaceSelectedFromTable (workspaceName, vulns) {\n return async (dispatch) => {\n dispatch({ type: WORKSPACE_SELECTED_FOR_WORKING, workspace: workspaceName });\n dispatch(redirect(`/feed/${workspaceName}`));\n\n if (vulns === 0) dispatch(showModalImportDashboard(true));\n };\n}\n\nexport function setPage (page) {\n return (dispatch) => {\n dispatch(setPageNumber('workspaces', page));\n dispatch(getData());\n };\n}\n\nexport function setWorkspaceFilter (string) {\n return (dispatch) => {\n const newFilter = { name: 'name', op: 'ilike', val: `%${string}%` };\n if (string) dispatch(setFilter('workspaces', newFilter));\n else dispatch(clearFilters('workspaces'));\n dispatch(getData());\n };\n}\n\nexport function setOrderByWorkspaces (sorting) {\n return (dispatch) => {\n dispatch(setOrderBy('workspaces', sorting));\n dispatch(getData());\n };\n}\n\nexport function toogleGridView (showGridView) {\n return (dispatch) => {\n dispatch({\n type: WORKSPACE_SHOW_GRID_VIEW, showGridView\n });\n };\n}\n\nexport function setField (field, value) {\n return (dispatch) => {\n dispatch({\n type: SET_FIELD, field, value\n });\n };\n}\n\nexport function updateWS (ws, value) {\n return async (dispatch, getState) => {\n try {\n await api.workspace.updateWorkspace(ws, value);\n const { workspaceList } = getState().workspace;\n\n let newWs = workspaceList.find((workspace) => workspace.name === ws);\n newWs = { ...newWs, ...value };\n\n dispatch({ type: WORKSPACE_UPDATE_SUCCESS, ws: newWs });\n dispatch(getWorkspaces());\n dispatch(getData());\n } catch (e) {\n dispatch({ type: WORKSPACE_CREATE_UPDATE_FAIL, data: 'An error has occurred.' });\n }\n };\n}\n","import get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\n\nexport const selectCommands = (state) => get(state, 'fileUploaderContext.commandsInProcess', []);\nexport const selectUnfinishedCommands = (state) => selectCommands(state).filter((c) => !c.finished);\nexport const selectIsProcessingFiles = (state) => !isEmpty(selectCommands(state).filter((c) => c.fileType === 'file'));\n","const toBase64 = (file) => new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result);\n reader.onerror = (error) => reject(error);\n});\n\nexport default toBase64;\n","import get from 'lodash/get';\nimport find from 'lodash/find';\nimport api from 'services/api';\nimport axios, { CancelToken } from 'axios';\nimport { CURRENT_API_VERSION } from 'services/api/connector';\nimport { getWorkspaces } from 'Screens/Workspaces/actions/Actions';\nimport { ADD_COMMAND } from 'Common/Components/FileUploadContext/actions';\nimport toBase64 from 'Common/Functions/ToBase64';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\n\nexport const ADD_REFERENCE_MANAGE_CREATE_UPDATE = 'ADD_REFERENCE_MANAGE_CREATE_UPDATE';\nexport const REMOVE_REFERENCE_MANAGE_CREATE_UPDATE = 'REMOVE_REFERENCE_MANAGE_CREATE_UPDATE';\nexport const ADD_CVE_MANAGE_CREATE_UPDATE = 'ADD_CVE_MANAGE_CREATE_UPDATE';\nexport const REMOVE_CVE_MANAGE_CREATE_UPDATE = 'REMOVE_CVE_MANAGE_CREATE_UPDATE';\nexport const ADD_POLICY_MANAGE_CREATE_UPDATE = 'ADD_POLICY_MANAGE_CREATE_UPDATE';\nexport const REMOVE_POLICY_MANAGE_CREATE_UPDATE = 'REMOVE_POLICY_MANAGE_CREATE_UPDATE';\nexport const SELECT_CHECK_BOX_MANAGE_CREATE_UPDATE = 'SELECT_CHECK_BOX_MANAGE_CREATE_UPDATE';\nexport const SET_FIELD_NAME_MANAGE_CREATE_UPDATE = 'SET_FIELD_NAME_MANAGE_CREATE_UPDATE';\nexport const REMOVE_FILE_MANAGE_CREATE_UPDATE = 'REMOVE_FILE_MANAGE_CREATE_UPDATE';\nexport const SET_CUSTOM_FIELD_MANAGE_CREATE_UPDATE = 'SET_CUSTOM_FIELD_MANAGE_CREATE_UPDATE';\nexport const MANAGE_CREATE_UPDATE_START = 'MANAGE_CREATE_UPDATE_START';\nexport const MANAGE_CREATE_UPDATE_SUCCESS = 'MANAGE_CREATE_UPDATE_SUCCESS';\nexport const MANAGE_CREATE_UPDATE_FAIL = 'MANAGE_CREATE_UPDATE_FAIL';\nexport const RESET_STATE_MANAGE_CREATE_UPDATE = 'RESET_STATE_MANAGE_CREATE_UPDATE';\nexport const SET_MODE_MANAGE_CREATE_UPDATE = 'SET_MODE_MANAGE_CREATE_UPDATE';\nexport const SET_REDIRECT_MANAGE_CREATE_UPDATE = 'SET_REDIRECT_MANAGE_CREATE_UPDATE';\nexport const GET_TEMPLATES_MANAGE_EDIT_CREATE = 'GET_TEMPLATES_MANAGE_EDIT_CREATE';\nexport const GET_TEMPLATES_MANAGE_EDIT_SUCCESS = 'GET_TEMPLATES_MANAGE_EDIT_SUCCESS';\nexport const GET_TEMPLATES_MANAGE_EDIT_FAIL = 'GET_TEMPLATES_MANAGE_EDIT_FAIL';\nexport const SET_VALUE_FIELD_PREVIEW_MANAGE_EDIT_CREATE = 'SET_VALUE_FIELD_PREVIEW_MANAGE_EDIT_CREATE';\nexport const GET_HOSTS_REQUEST = 'GET_HOSTS_REQUEST';\nexport const GET_HOSTS_SUCCESS = 'GET_HOSTS_SUCCESS';\nexport const GET_HOSTS_FAIL = 'GET_HOSTS_FAIL';\nexport const GET_SERVICES_REQUEST = 'GET_SERVICES_REQUEST';\nexport const GET_SERVICES_SUCCESS = 'GET_SERVICES_SUCCESS';\nexport const GET_SERVICES_FAIL = 'GET_SERVICES_FAIL';\nexport const CREATE_SERVICES_REQUEST = 'CREATE_SERVICES_REQUEST';\nexport const CREATE_SERVICES_SUCCESS = 'CREATE_SERVICES_SUCCESS';\nexport const CREATE_SERVICES_FAIL = 'CREATE_SERVICES_FAIL';\nexport const HOST_CREATE_SUCCESS = 'HOST_CREATE_SUCCESS';\nexport const HOST_CREATE_REQUEST = 'HOST_CREATE_REQUEST';\nexport const HOST_CREATE_FAIL = 'HOST_CREATE_FAIL';\nexport const ADD_TARGET = 'ADD_TARGET';\nexport const REMOVE_ASSET = 'REMOVE_ASSET';\n\nexport const UPLOAD_REPORT_MANAGE_UPDATE_PERCENT = 'UPLOAD_REPORT_MANAGE_UPDATE_PERCENT';\nexport const UPLOAD_REPORT_ERROR_MANAGE = 'UPLOAD_REPORT_ERROR_MANAGE';\nexport const CANCEL_REQUEST_MANAGE = 'CANCEL_REQUEST_MANAGE';\nexport const SET_FILES_TO_UPLOAD_MANAGE = 'SET_FILES_TO_UPLOAD_MANAGE';\nexport const SET_UPLOAD_STATE_MANAGE = 'SET_UPLOAD_STATE_MANAGE';\nexport const UPDATE_FILES_TO_UPLOAD = 'UPDATE_FILES_TO_UPLOAD';\nexport const RESET_FILE_STATE_MANAGE = 'RESET_FILE_STATE_MANAGE';\nexport const SET_FILE_INDEX_MANAGE = 'SET_FILE_INDEX_MANAGE';\nexport const SET_NAME_INTO_FILE_ERROR_LIST = 'SET_NAME_INTO_FILE_ERROR_LIST';\nexport const SET_ATTACHMENT_MANAGE_CREATE_UPDATE = 'SET_ATTACHMENT_MANAGE_CREATE_UPDATE';\nexport const DELETE_ATTACHMENT_MANAGE_CREATE_UPDATE = 'DELETE_ATTACHMENT_MANAGE_CREATE_UPDATE';\nexport const RESET_ERROR_VALUE = 'RESET_ERROR_VALUE';\n\nexport function addReference (reference) {\n return (dispatch) => {\n dispatch({\n type: ADD_REFERENCE_MANAGE_CREATE_UPDATE, reference\n });\n };\n}\n\nexport function removeReference (index) {\n return (dispatch) => {\n dispatch({\n type: REMOVE_REFERENCE_MANAGE_CREATE_UPDATE, index\n });\n };\n}\n\nexport function addCVE (CVE) {\n return (dispatch) => {\n dispatch({\n type: ADD_CVE_MANAGE_CREATE_UPDATE, CVE\n });\n };\n}\n\nexport function removeCVE (CVE) {\n return (dispatch) => {\n dispatch({\n type: REMOVE_CVE_MANAGE_CREATE_UPDATE, CVE\n });\n };\n}\n\nexport function addPolicy (policy) {\n return (dispatch) => {\n dispatch({\n type: ADD_POLICY_MANAGE_CREATE_UPDATE, policy\n });\n };\n}\n\nexport function removePolicy (index) {\n return (dispatch) => {\n dispatch({\n type: REMOVE_POLICY_MANAGE_CREATE_UPDATE, index\n });\n };\n}\n\nexport function selectCheckbox (checkName) {\n return (dispatch) => {\n dispatch({\n type: SELECT_CHECK_BOX_MANAGE_CREATE_UPDATE, checkName\n });\n };\n}\n\nexport function setField (fieldName, value) {\n return (dispatch) => {\n dispatch({\n type: SET_FIELD_NAME_MANAGE_CREATE_UPDATE, fieldName, value\n });\n };\n}\n\n// Summary: Set new value for custom field in state\nexport function setCustomField (key, value) {\n return (dispatch) => {\n dispatch({\n type: SET_CUSTOM_FIELD_MANAGE_CREATE_UPDATE, key, value\n });\n };\n}\n\nexport function setAttachments (attachments) {\n return async (dispatch) => {\n attachments.forEach(async (attachment) => {\n const uploadImage = await toBase64(attachment);\n dispatch({\n type: SET_ATTACHMENT_MANAGE_CREATE_UPDATE,\n name: attachment.name,\n content_type: attachment.type,\n data: uploadImage.split(';base64,')[1]\n });\n });\n };\n}\n\nexport function deleteAttachment (key) {\n return (dispatch) => {\n dispatch({\n type: DELETE_ATTACHMENT_MANAGE_CREATE_UPDATE, key\n });\n };\n}\n\nexport function createVulnerability () {\n return async (dispatch, getState) => {\n dispatch({ type: MANAGE_CREATE_UPDATE_START });\n\n const state = getState().manageEditCreate;\n const selectedWs = selectCurrentWorkspace(getState());\n const newRefs = state.references.map((ref) => ({ name: ref, type: 'other' }));\n\n try {\n const promises = state.targets.map((target) => {\n const vuln = {\n _id: state.id,\n confirmed: state.confirmed,\n custom_fields: state.customFields,\n data: state.data,\n desc: state.description,\n description: state.description,\n easeofresolution: state.easeOfResolution,\n external_id: state.externalId,\n impact: {\n accountability: get(state, 'accountability', false),\n availability: get(state, 'availability', false),\n confidentiality: get(state, 'confidentiality', false),\n integrity: get(state, 'integrity', false)\n },\n method: state.method,\n name: state.name,\n pname: state.paramName,\n params: state.params,\n parent: target.id,\n parent_type: target.type,\n path: state.path,\n policyviolations: state.policies,\n query: state.query,\n refs: newRefs,\n request: state.request,\n resolution: state.resolution,\n response: state.response,\n severity: state.severity,\n status_code: state.status_code ? state.status_code : 0,\n type: state.isWebVuln ? 'VulnerabilityWeb' : 'Vulnerability',\n website: state.website,\n _attachments: state._attachments, // eslint-disable-line no-underscore-dangle\n cve: state.CVE\n };\n return api.manage.createVuln(selectedWs, vuln);\n });\n const res = await Promise.all(promises);\n const vuln = res[0];\n // dispatch(newGetVulns());\n dispatch(getWorkspaces());\n dispatch({ type: MANAGE_CREATE_UPDATE_SUCCESS, vuln });\n dispatch({ type: RESET_STATE_MANAGE_CREATE_UPDATE });\n } catch (error) {\n return dispatch({ type: MANAGE_CREATE_UPDATE_FAIL, errorMessage: error.message });\n }\n };\n}\n\nexport function resetState () {\n return (dispatch) => {\n dispatch({ type: RESET_STATE_MANAGE_CREATE_UPDATE });\n };\n}\n\nexport function getTemplates () {\n return async (dispatch) => {\n dispatch({ type: GET_TEMPLATES_MANAGE_EDIT_CREATE });\n try {\n const response = await api.manage.getTemplates();\n return dispatch({ type: GET_TEMPLATES_MANAGE_EDIT_SUCCESS, data: response });\n } catch (e) {\n return dispatch({ type: GET_TEMPLATES_MANAGE_EDIT_FAIL });\n }\n };\n}\n\nexport function setValueFieldPreview (vuln, field, value) {\n return (dispatch) => {\n dispatch({\n type: SET_VALUE_FIELD_PREVIEW_MANAGE_EDIT_CREATE, field, value\n });\n };\n}\n\nexport function getHosts () {\n return async (dispatch, getState) => {\n dispatch({ type: GET_HOSTS_REQUEST });\n const workspace = selectCurrentWorkspace(getState());\n try {\n const response = await api.host.getHosts(workspace);\n return dispatch({ type: GET_HOSTS_SUCCESS, data: response });\n } catch (error) {\n return dispatch({ type: GET_HOSTS_FAIL, error: error || 'An error has occurred.' });\n }\n };\n}\n\nexport function getServices () {\n return async (dispatch, getState) => {\n dispatch({ type: GET_SERVICES_REQUEST });\n const workspace = selectCurrentWorkspace(getState());\n try {\n const response = await api.service.getServices(workspace);\n return dispatch({ type: GET_SERVICES_SUCCESS, data: response });\n } catch (error) {\n return dispatch({ type: GET_SERVICES_FAIL, error: error || 'An error has occurred.' });\n }\n };\n}\n\nexport function createHost (ip) {\n return async (dispatch, getState) => {\n const selectedWs = selectCurrentWorkspace(getState());\n dispatch({ type: HOST_CREATE_REQUEST });\n try {\n const host = { ip, owned: false, description: '' };\n const response = await api.host.createHost(selectedWs, host);\n\n dispatch({ type: HOST_CREATE_SUCCESS, data: response });\n return dispatch({ type: ADD_TARGET, data: response });\n } catch (error) {\n return dispatch({ type: HOST_CREATE_FAIL, error });\n }\n };\n}\n\nexport function createService (data) {\n return async (dispatch, getState) => {\n dispatch({ type: CREATE_SERVICES_REQUEST });\n const serviceData = {\n description: '',\n metadata: {},\n name: data.name,\n owned: false,\n owner: '',\n parent: data.parent,\n ports: [data.port],\n protocol: data.protocol,\n status: 'open',\n type: 'Service',\n version: ''\n };\n\n try {\n const ws = selectCurrentWorkspace(getState());\n const response = await api.service.createService(ws, serviceData);\n dispatch({ type: CREATE_SERVICES_SUCCESS, service: response });\n } catch (e) {\n dispatch({ type: CREATE_SERVICES_FAIL, error: e.message });\n }\n };\n}\n\nexport function addAsset (data) {\n return (dispatch) => {\n dispatch({ type: ADD_TARGET, data });\n };\n}\n\nexport function removeAsset (data) {\n return (dispatch) => {\n dispatch({ type: REMOVE_ASSET, data });\n };\n}\n\nexport function setFilesCount (files) {\n return (dispatch) => {\n dispatch({ type: SET_FILES_TO_UPLOAD_MANAGE, files });\n };\n}\n\nexport function setFileIndex (index) {\n return (dispatch) => {\n dispatch({ type: SET_FILE_INDEX_MANAGE, index });\n };\n}\n\nexport function setUploadState (state) {\n return (dispatch) => {\n dispatch({ type: SET_UPLOAD_STATE_MANAGE, state });\n };\n}\n\nexport function resetFileUploadState () {\n return (dispatch) => {\n dispatch({ type: RESET_FILE_STATE_MANAGE });\n };\n}\n\nexport function uploadFile (params) {\n return async (dispatch, getState) => {\n const fileName = get(find(params, ['name', 'file']), 'value.name', '');\n const setUploadState = (index) => {\n if (index < 0) {\n dispatch({ type: SET_UPLOAD_STATE_MANAGE, state: 'FINISHED' });\n dispatch(getWorkspaces());\n } else {\n dispatch({ type: SET_UPLOAD_STATE_MANAGE, state: 'PROCESSED' });\n }\n };\n\n try {\n dispatch({ type: SET_UPLOAD_STATE_MANAGE, state: 'PROCESSING' });\n const ws = selectCurrentWorkspace(getState());\n const response = await api.faraday.getSession();\n\n const cancelTokenSource = CancelToken.source();\n\n const fdParams = [...params, { name: 'csrf_token', value: response.csrf_token }];\n\n const fd = new FormData();\n fdParams.forEach((p) => fd.append(p.name, p.value));\n\n const commandIdResponse = await axios.post(`/_api/${CURRENT_API_VERSION}/ws/${ws}/upload_report`, fd, {\n headers: {\n 'Content-Type': 'multipart/form-data'\n },\n onUploadProgress: async (progressEvent) => {\n dispatch({ type: UPLOAD_REPORT_MANAGE_UPDATE_PERCENT, progressEvent });\n if (Math.round((100 * progressEvent.loaded) / progressEvent.total) === 100) {\n const index = getState().manageEditCreate.fileIndex - 1;\n dispatch({ type: SET_FILE_INDEX_MANAGE, index });\n }\n },\n cancelToken: cancelTokenSource.token\n });\n\n dispatch({\n type: ADD_COMMAND,\n command: {\n command_id: commandIdResponse.data.command_id,\n name: fileName,\n fileType: 'file',\n error: false,\n finished: false\n }\n });\n\n const currentIndex = getState().manageEditCreate.fileIndex;\n setUploadState(currentIndex);\n } catch (e) {\n if (!e.message || e.message !== 'cancel') {\n const currentIndex = getState().manageEditCreate.fileIndex;\n dispatch({ type: SET_NAME_INTO_FILE_ERROR_LIST, name: fileName });\n const filesCount = getState().manageEditCreate.filesToUpload.length;\n if (filesCount === 1) {\n dispatch({ type: UPLOAD_REPORT_ERROR_MANAGE, error: e.response && e.response.data.message ? e.response.data.message : 'Couldn\\'t upload your file. Please try again.' });\n }\n setUploadState(currentIndex);\n } else {\n dispatch({ type: CANCEL_REQUEST_MANAGE });\n }\n }\n };\n}\n\nexport function resetErrorValue () {\n return (dispatch) => {\n dispatch({ type: RESET_ERROR_VALUE });\n };\n}\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgEvidenceDefault = function SvgEvidenceDefault(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 94,\n height: 85,\n viewBox: \"0 0 94 85\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#C6D3DF\",\n d: \"M1 19.75V3.083C1 1.933 1.933 1 3.083 1H19.75c1.15 0 2.083.933 2.083 2.083 0 1.15-.932 2.084-2.083 2.084H5.167V19.75c0 1.15-.933 2.083-2.084 2.083-1.15 0-2.083-.932-2.083-2.083zm25-6.25c4.602 0 8.333 3.731 8.333 8.333 0 4.603-3.73 8.334-8.333 8.334-4.602 0-8.333-3.731-8.333-8.334 0-4.602 3.73-8.333 8.333-8.333zm-4.167 8.333C21.833 24.135 23.7 26 26 26c2.301 0 4.167-1.865 4.167-4.167 0-2.3-1.866-4.166-4.167-4.166-2.301 0-4.167 1.865-4.167 4.166zM90.583 1H73.917c-1.15 0-2.084.933-2.084 2.083 0 1.15.933 2.084 2.084 2.084H88.5V19.75c0 1.15.933 2.083 2.083 2.083 1.15 0 2.084-.932 2.084-2.083V3.083c0-1.15-.933-2.083-2.084-2.083zM19.75 80.167H5.167V65.583c0-1.15-.933-2.083-2.084-2.083-1.15 0-2.083.933-2.083 2.083V82.25c0 1.15.933 2.083 2.083 2.083H19.75c1.15 0 2.083-.932 2.083-2.083 0-1.15-.932-2.083-2.083-2.083zM90.583 63.5c-1.15 0-2.083.933-2.083 2.083v14.584H73.917c-1.15 0-2.084.932-2.084 2.083 0 1.15.933 2.083 2.084 2.083h16.666c1.15 0 2.084-.932 2.084-2.083V65.583c0-1.15-.933-2.083-2.084-2.083zm-12.5 8.333c.915-.02 1.71-.635 1.959-1.516.249-.88-.106-1.82-.875-2.317L42.875 45.625l14.458-10.833 23.75 15.875c.626.416 1.426.468 2.1.135.673-.333 1.118-1 1.166-1.75.048-.75-.307-1.469-.932-1.885l-25-16.667c-.727-.503-1.69-.503-2.417 0L39.333 43l-.25.208L25 34.625c-.82-.5-1.878-.362-2.542.333L5.792 51.625c-.521.521-.725 1.28-.534 1.992.19.712.746 1.268 1.458 1.458.712.191 1.471-.012 1.992-.533l15.5-15.5L77 71.542c.326.198.702.3 1.083.291h0z\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgEvidenceDefault, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/evidence-default.2dcc3b35.svg\";\nexport { ForwardRef as ReactComponent };","import api from 'services/api';\nimport { refreshDashboard } from 'Screens/Dashboard/actions/Actions';\nimport { getWorkspaces } from 'Screens/Workspaces/actions/Actions';\nimport { newGetVulns } from 'store/Manage/filterActions';\nimport isEmpty from 'lodash/isEmpty';\nimport { selectCommands, selectUnfinishedCommands } from 'store/FileUploaderContext/selector';\n\nexport const HIDE_FILE_UPLOAD_CONTEXT = 'HIDE_FILE_UPLOAD_CONTEXT';\nexport const ADD_COMMAND = 'ADD_COMMAND';\nexport const UPDATE_COMMAND_LIST_STATUS = 'UPDATE_COMMAND_LIST_STATUS';\n\nexport function hideUploadContextMenu () {\n return (dispatch) => {\n dispatch({ type: HIDE_FILE_UPLOAD_CONTEXT });\n };\n}\n\nexport function updateCommandsStatus () {\n return async (dispatch, getState) => {\n try {\n const state = getState();\n const commands = selectCommands(state);\n const unfinishedCommands = selectUnfinishedCommands(state);\n\n const promises = unfinishedCommands.map((c) => api.workspace.getReportStatus(c.command_id));\n const results = await Promise.all(promises);\n\n const commandListUpdated = commands.map((command) => {\n if (command.finished) return command;\n else {\n const commandStatus = results.find((updated) => updated._id === command.command_id);\n const finished = commandStatus.duration !== 'In progress';\n const error = commandStatus.duration === 'Error';\n return ({ ...command, finished, error });\n }\n });\n\n if (isEmpty(promises)) {\n if (window.location.href.includes('/manage')) dispatch(newGetVulns());\n else if (window.location.href.includes('/feed')) dispatch(refreshDashboard());\n dispatch(getWorkspaces());\n }\n\n return dispatch({ type: UPDATE_COMMAND_LIST_STATUS, data: commandListUpdated });\n } catch (error) {\n return dispatch({ type: '', error });\n }\n };\n}\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconTrashRed = function SvgIconTrashRed(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 15,\n height: 16,\n viewBox: \"0 0 15 16\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E02020\",\n stroke: \"#E02020\",\n strokeWidth: 0.5,\n d: \"M9.779 14.813c1.278 0 2.304-1.027 2.354-2.349l.27-8.594h1.26c.186 0 .337-.156.337-.348 0-.19-.151-.347-.336-.347h-3.532v-.783C10.132 1.626 9.527 1 8.787 1H6.23c-.74 0-1.345.626-1.345 1.392v.783H1.336c-.185 0-.336.156-.336.347 0 .192.151.348.336.348h1.262l.269 8.594c.05 1.322 1.076 2.348 2.354 2.348H9.78zM5.558 2.392c0-.383.302-.696.672-.696h2.557c.37 0 .672.313.672.696v.783H5.558v-.783zM3.556 12.429l-.269-8.576h8.46l-.286 8.576c-.034.94-.774 1.688-1.682 1.688H5.238c-.908 0-1.648-.731-1.682-1.688zm4.048-.383c.185 0 .336-.157.336-.348V6.497c0-.192-.151-.348-.336-.348-.185 0-.337.156-.337.348v5.2c0 .192.152.349.337.349zm-1.819 0c.185 0 .337-.157.337-.348V6.497c0-.192-.152-.348-.337-.348-.185 0-.336.156-.336.348v5.2c0 .192.151.349.336.349zm3.637 0c.185 0 .336-.157.336-.348V6.497c0-.192-.151-.348-.336-.348-.185 0-.336.156-.336.348v5.2c0 .192.15.349.336.349z\",\n opacity: 0.707\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconTrashRed, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon-trash-red.1ebe0df4.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\nimport { ReactComponent as _EvidenceDefault } from 'Images/evidence-default.svg';\n\nexport const ImageWrapper = styled.div`\n width: 140px;\n height: 140px;\n border-radius: 3px;\n box-shadow: 0 2px 30px 0 rgba(0, 0, 0, 0.06);\n border: solid 1px #dbdbdb;\n background-color: #ffffff;\n padding: 7px;\n margin: 10px 22px 0px 22px;\n cursor: pointer;\n position: relative;\n\n &:hover{\n background-color: #eeeeee;\n }\n`;\n\nexport const EvidenceDefault = styled(_EvidenceDefault)`\n margin: 15px;\n`;\n\nexport const BlueText = styled.p`\n color: #0082ed;\n font-size: 13px;\n font-weight: 600;\n width: fit-content;\n margin: 5px auto auto auto;\n cursor: pointer;\n`;\n","import React, { useEffect } from 'react';\nimport { useFilePicker } from 'use-file-picker';\nimport { useDispatch } from 'react-redux';\nimport { setAttachments } from 'Screens/ManageEditCreate/actions/Actions';\nimport { addEvidences } from 'store/Manage/actions';\nimport { openModal } from 'store/modals/actions';\nimport { MODAL_EVIDENCE_WARNING_UPLOAD } from 'store/modals/modals';\nimport { ImageWrapper, EvidenceDefault, BlueText } from './styled';\nimport { isEmpty } from 'lodash';\n\nconst UploadEvidence = ({ getEvidences, isEditing }) => {\n const dispatch = useDispatch();\n const [openFileSelector, { plainFiles, clear, errors }] = useFilePicker({ multiple: true, readFilesContent: false, maxFileSize: 20 });\n\n useEffect(() => {\n const onUpload = (plainFiles) => {\n if (isEditing) dispatch(setAttachments(plainFiles));\n else dispatch(addEvidences(plainFiles, getEvidences));\n clear();\n };\n\n if (!isEmpty(plainFiles)) onUpload(plainFiles);\n }, [getEvidences, plainFiles, dispatch, isEditing, clear]);\n\n if (errors.length) {\n dispatch(openModal(MODAL_EVIDENCE_WARNING_UPLOAD));\n clear();\n }\n\n return (\n <div onClick={ openFileSelector }>\n <ImageWrapper title=\"File size: 20MB max.\">\n <EvidenceDefault />\n </ImageWrapper>\n <BlueText>Add Evidence</BlueText>\n </div>\n );\n};\n\nexport default UploadEvidence;\n","import * as types from 'store/Manage/types';\nimport * as FileSaver from 'file-saver';\nimport api from 'services/api';\nimport isEmpty from 'lodash/isEmpty';\nimport get from 'lodash/get';\nimport set from 'lodash/set';\nimport { MOCK_VULN_ID } from 'Common/Components/Tour/helpers/mockVuln';\nimport setTourFinished from 'store/Preferences/Tour/actions';\nimport {\n selectVulnDetailId,\n selectVulnsList,\n selectVulnDetail,\n selectUsesMockVulns,\n selectVulnsCount,\n selectLastSelected,\n selectVulnsSelected,\n selectShowDetail,\n selectModalBulkUpdateField,\n selectModalBulkUpdateValue,\n selectContextMenuXPos,\n selectContextMenuYPos,\n selectSelectAll\n} from 'store/Manage/selectors';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport { getData } from 'Screens/Workspaces/actions/Actions';\nimport {\n selectGroupByField, selectIsGrouping, selectRowsPerPage,\n selectQueryParam, selectAdvancedFilterQueryParam\n} from 'store/Filters/selectors';\nimport { redirect } from 'store/Router/actions';\nimport { selectCsrfToken } from 'store/Sesion/selectors';\nimport { MODAL_MANAGE_BULK_UPDATE, MODAL_MANAGE_BULK_UPDATE_CONFIRMATION } from 'store/modals/modals';\nimport { closeModal, openModal } from 'store/modals/actions';\nimport { setFilterError } from 'store/Filters/actions';\nimport { newGetVulns, setVulnsFilterError } from './filterActions';\n\nexport function setImagePreview (imagePreview) {\n return (dispatch, getState) => {\n dispatch({\n type: types.SET_IMAGE_PREVIEW, imagePreview\n });\n };\n}\n\nconst addDeleteController = (vulns, vulnList) => { // if all vulns are in vulnList then unselect then if not\n const allVulnsAreSelected = vulns.every((testVuln) => vulnList.some((vuln) => vuln._id === testVuln._id));\n\n if (allVulnsAreSelected) return [types.VULN_UNSELECTED, vulns];\n return [types.VULN_SELECTED, vulns];\n};\n\nconst selectCalculator = (e, vuln, vulnList, areVulnsSelected) => (dispatch, getState) => {\n const pivot = selectLastSelected(getState());\n const index = vulnList.findIndex((el) => el._id === vuln._id);\n const vulnsSelected = selectVulnsSelected(getState());\n\n dispatch({ type: types.NEW_PIVOT, payload: index });\n if (e.shiftKey && pivot !== -1 && areVulnsSelected) { // if already had vuln selected and shift key is pressed\n const start = Math.min(pivot, index);\n const end = Math.max(pivot, index) + 1;\n const vulns = vulnList.slice(start, end);\n const [type, payload] = addDeleteController(vulns, vulnsSelected);\n return dispatch({ type, payload });\n }\n const [type, payload] = addDeleteController([vuln], vulnsSelected);\n return dispatch({ type, payload });\n};\n\nexport const selectRow = (e, vuln) => (dispatch, getState) => {\n const allVulns = selectVulnsList(getState());\n const isGroupingBy = selectIsGrouping('vulns', getState());\n const vulnsSelected = selectVulnsSelected(getState());\n\n if (isGroupingBy) {\n const group = allVulns.find((g) => g.groupData && g.groupData.find((el) => el._id === vuln._id));\n if (!group) return; // si no hay groupData no se puede hacer calculos con las vulns\n const vulnGroup = group.groupData;\n const areVulnsSelected = vulnsSelected.length > 0 && vulnGroup.some((el) => el.id === vuln.id);\n dispatch(selectCalculator(e, vuln, vulnGroup, areVulnsSelected, vulnsSelected));\n } else {\n dispatch(selectCalculator(e, vuln, allVulns, vulnsSelected.length > 0));\n }\n};\n\nexport const unSelectAll = () => (dispatch) => dispatch({ type: types.UNSELECT_ALL_VULN });\n\nexport const selectAllVulns = () => (dispatch, getState) => {\n const vulnsList = selectVulnsList(getState());\n const vulnsSelected = selectVulnsSelected(getState());\n const vulnCount = selectVulnsCount(getState());\n const pageSize = selectRowsPerPage('vulns', getState());\n\n if (vulnsSelected.length === vulnCount || vulnsSelected.length >= pageSize) return dispatch(unSelectAll());\n\n return dispatch({ type: types.SELECT_ALL_VULN, vulnsList });\n};\n\nexport const selectTotalVulns = () => (dispatch, getState) => { // includes server vulns\n return dispatch({ type: types.SELECT_TOTAL_VULNS });\n};\n\nexport const unselectTotalVulns = () => (dispatch, getState) => { // includes server vulns\n return dispatch({ type: types.UNSELECT_TOTAL_VULNS });\n};\n\nexport const selectConfirmedVulns = () => (dispatch, getState) => {\n const state = getState();\n const vulnsList = selectVulnsList(state).filter((vuln) => (vuln.confirmed));\n\n return dispatch({ type: types.SELECT_ALL_VULN, vulnsList });\n};\n\nexport const selectNotConfirmedVulns = () => (dispatch, getState) => {\n const state = getState();\n const vulnsList = selectVulnsList(state).filter((vuln) => (!vuln.confirmed));\n return dispatch({ type: types.SELECT_ALL_VULN, vulnsList });\n};\n\n// Summary: Show confirmation modal when user delete vuln/s\nexport function showVulnModalDelete () {\n return (dispatch) => {\n dispatch({ type: types.SHOW_MODAL_DELETE_CONFIRMATION_VULNS });\n };\n}\n\n// Summary: Hide confirmation modal when user delete vuln/s\nexport function hideVulnModalDelete () {\n return (dispatch) => {\n dispatch({ type: types.HIDE_MODAL_DELETE_CONFIRMATION_VULNS });\n };\n}\n\n// Summary: reset state of manage screen\nexport function resetState () {\n return (dispatch) => {\n dispatch({ type: types.RESET_STATE_MANAGE });\n };\n}\n\nfunction exportCsv (result) {\n return async (_, getState) => {\n const workspaceSelected = selectCurrentWorkspace(getState());\n let title = '';\n\n if (workspaceSelected) title = `SR-${workspaceSelected}`;\n else title = 'Vulnerability Model CSV';\n\n const fileType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\n const fileExtension = '.csv';\n\n const data = new Blob([result], { type: fileType });\n FileSaver.saveAs(data, title + fileExtension);\n };\n}\n\nexport function resetErrorValue () {\n return (dispatch) => {\n dispatch({ type: types.RESET_ERROR_VALUE });\n };\n}\n\nexport function showManageLeftFilters (visible, breakpoint) {\n return (dispatch) => {\n dispatch({ type: types.SHOW_MANAGE_LEFT_FILTERS, visible, breakpoint });\n };\n}\n\nexport function redirectToVulnDetail (id) {\n return (dispatch, getState) => {\n const currentWorkspace = selectCurrentWorkspace(getState());\n dispatch(redirect(`/manage/${currentWorkspace}/${id}`));\n };\n}\n\nexport function redirectToManage () {\n return (dispatch, getState) => {\n const currentWorkspace = selectCurrentWorkspace(getState());\n dispatch(redirect(`/manage/${currentWorkspace}`));\n };\n}\n\nexport function setVulnerabilityDetailTab (vulnDetailSelectedTab) {\n return (dispatch) => {\n dispatch({ type: types.SET_VULNERABILITY_DETAIL_TAB, vulnDetailSelectedTab });\n };\n}\n\nexport function showVulnerabilityDetail (id, vulnDetailSelectedTab) {\n return (dispatch, getState) => {\n const currentWorkspace = selectCurrentWorkspace(getState());\n if (id > 0) {\n dispatch(redirect(`/manage/${currentWorkspace}/${id}`));\n // Redirecting to manage/id calls loadVulnerabilityDetail, fetching the detail and showing it.\n dispatch(setVulnerabilityDetailTab(vulnDetailSelectedTab));\n }\n };\n}\n\nexport function loadVulnerabilityDetail (id) {\n return async (dispatch, getState) => {\n if (id > 0) {\n const currentWorkspace = selectCurrentWorkspace(getState());\n try {\n const vuln = await api.manage.fetchById(currentWorkspace, id);\n dispatch({ type: types.SHOW_VULNERABILITY_DETAIL, vuln });\n } catch (e) {\n dispatch(redirectToManage());\n }\n }\n };\n}\n\nexport function hideVulnerabilityDetail () {\n return (dispatch, getState) => {\n const showVulnDetail = selectShowDetail(getState());\n if (showVulnDetail) dispatch({ type: types.HIDE_VULNERABILITY_DETAIL });\n };\n}\n\nexport function addEvidences (evidences, getEvidences) {\n return async (dispatch, getState) => {\n const id = selectVulnDetailId(getState());\n const csrfToken = selectCsrfToken(getState());\n const workspaceSelected = selectCurrentWorkspace(getState());\n\n const promises = evidences.map((evidence) => {\n const newEvidenceName = evidence.name.replace(/\\s+/g, '');\n const renameEvidence = new File([evidence], newEvidenceName);\n const fd = new FormData();\n fd.append('csrf_token', csrfToken);\n fd.append('file', renameEvidence);\n return api.attachments.saveAttachments(workspaceSelected, id, fd);\n });\n\n try {\n await Promise.all(promises);\n } catch (e) {\n // error\n }\n getEvidences();\n };\n}\n\nfunction vulnPreviewEditSuccedCallback (vulnBefore, vulnAfter) {\n return (dispatch, getState) => {\n const groupBy = selectGroupByField('vulns', getState());\n const vulnsList = selectVulnsList(getState());\n\n if (groupBy) {\n // se actualiza la tabla agrupada\n const indexGroupDataAfter = vulnsList.findIndex((x) => x[groupBy] === vulnAfter[groupBy]);\n const groupDataAfter = vulnsList[indexGroupDataAfter].groupData || [];\n const indexVulnAfter = groupDataAfter.findIndex((x) => vulnAfter._id === x.id || vulnAfter._id === x._id);\n if (indexVulnAfter < 0) { // no lo encontro, lo borro\n const indexGroupDataBefore = vulnsList.findIndex((x) => x[groupBy] === vulnBefore[groupBy]);\n const groupDataBefore = vulnsList[indexGroupDataBefore].groupData || {};\n const indexVulnBefore = groupDataBefore.findIndex((x) => vulnAfter._id === x.id || vulnAfter._id === x._id);\n // lo quito del grupo.\n vulnsList[indexGroupDataBefore].groupData.splice(indexVulnBefore, 1);\n // eslint-disable-next-line no-negated-condition\n if (!vulnsList[indexGroupDataAfter].groupData) vulnsList[indexGroupDataAfter].count += 1;\n else vulnsList[indexGroupDataAfter].groupData.push(vulnAfter);\n } else {\n vulnsList[indexGroupDataAfter].groupData[indexVulnAfter] = vulnAfter;\n }\n } else {\n // se actualiza la tabla\n const index = vulnsList.findIndex((x) => vulnAfter._id === x.id || vulnAfter._id === x._id);\n vulnsList[index] = vulnAfter;\n }\n\n dispatch({ type: types.UPDATE_VULN_MANAGE_PREVIEW_SUCCESS, vuln: vulnAfter, vulnsList });\n };\n}\n\nfunction vulnPreviewEditErrorCallback (error) {\n return (dispatch) => {\n dispatch({ type: types.UPDATE_VULN_MANAGE_PREVIEW_FAILURE, error: error.message || 'An error has occurred' });\n };\n}\n\nexport function updateVuln (vulnBefore, field, value) {\n return async (dispatch, getState) => {\n const workspaceSelected = selectCurrentWorkspace(getState());\n let vulnAfter = { ...vulnBefore };\n set(vulnAfter, field, value);\n\n try {\n let newRefs = [];\n if (field === 'refs') {\n newRefs = value.map((ref) => ({ name: ref, type: 'other' }));\n vulnAfter = await api.manage.updateVuln(workspaceSelected, { _id: vulnBefore._id, refs: newRefs });\n } else {\n vulnAfter = await api.manage.updateVuln(workspaceSelected, { _id: vulnBefore._id, [field]: value });\n }\n\n dispatch(vulnPreviewEditSuccedCallback(vulnBefore, vulnAfter));\n } catch (error) {\n dispatch(vulnPreviewEditErrorCallback(error));\n }\n };\n}\n\nexport function selectGroup (index, selected) {\n return (dispatch) => {\n dispatch({ type: types.SELECT_GROUP_MANAGE, index, selected });\n };\n}\n\nexport function selectVulnGroup (vuln, selected) {\n return (dispatch) => {\n dispatch({ type: types.SELECT_VULN_GROUP_MANAGE, vuln, selected });\n };\n}\n\nexport function setBulkUpdateField (field) {\n return (dispatch) => {\n dispatch({ type: types.MANAGE_SET_BULK_UPDATE_FIELD, field });\n };\n}\n\nexport function setBulkUpdateValue (value) {\n return (dispatch) => {\n dispatch({ type: types.MANAGE_SET_BULK_UPDATE_VALUE, value });\n };\n}\n\nexport function addBulkUpdateValue (value) {\n return (dispatch) => {\n dispatch({ type: types.MANAGE_ADD_BULK_UPDATE_VALUE, value });\n };\n}\n\nexport function removeBulkUpdateValue (value) {\n return (dispatch) => {\n dispatch({ type: types.MANAGE_REMOVE_BULK_UPDATE_VALUE, value });\n };\n}\n\nexport function refreshVulnsList (vulnsList, vulnsSelected, vulnDetail) {\n return (dispatch, getState) => {\n dispatch({\n type: types.REFRESH_VULNS, vulnsList, vulnsSelected, vulnDetail, vulnsCount: selectVulnsCount(getState())\n });\n };\n}\n\nconst getImpactData = (value, selectedVulns) => {\n const keyNames = Object.keys(selectedVulns[0].impact);\n let impact = {};\n keyNames.forEach((imp) => {\n impact = {\n ...impact,\n [imp]: value.some((x) => x === imp)\n };\n });\n return { impact };\n};\n\nexport function bulkUpdateVulns () {\n return async (dispatch, getState) => {\n const state = getState();\n\n dispatch({ type: types.CONFIRMATION_CHANGE_START });\n\n try {\n const vulnsList = selectVulnsList(state);\n const vulnsSelected = selectVulnsSelected(state);\n const vulnDetail = selectVulnDetail(state);\n const field = selectModalBulkUpdateField(state);\n const value = selectModalBulkUpdateValue(state);\n const workspaceSelected = selectCurrentWorkspace(state);\n const selectAll = selectSelectAll(state);\n const vulnIDs = vulnsSelected.map((v) => v._id);\n\n const advancedFilterQueryParam = selectAdvancedFilterQueryParam(state, 'vulns');\n const hasAdvancedFilter = advancedFilterQueryParam.filters.length > 0;\n const standardQueryParam = selectQueryParam('vulns', state);\n const queryParam = hasAdvancedFilter ? advancedFilterQueryParam : standardQueryParam;\n\n let data = {};\n\n if (field === 'references') data = { refs: value.map((v) => ({ name: v, type: 'other' })) };\n else if (field === 'policy violations') data = { policyviolations: value };\n else if (field === 'description') data = { description: value, desc: value };\n else if (field === 'impact') data = getImpactData(value, vulnsSelected);\n else data = { [field]: value };\n\n const isDetailVulnSelected = vulnsSelected.some((selectedVuln) => !isEmpty(vulnDetail) && selectedVuln._id === vulnDetail._id);\n\n const updatedVulnDetail = isDetailVulnSelected ? { ...vulnDetail, ...data } : { ...vulnDetail };\n\n if (selectAll) {\n await api.manage.updateAllVulns(workspaceSelected, { filters: queryParam.filters }, data);\n\n const updatedVulnsList = vulnsList.map((vuln) => ({ ...vuln, ...data }));\n const updatedSelectedVulns = vulnsSelected.map((vuln) => ({ ...vuln, ...data }));\n\n dispatch(refreshVulnsList(updatedVulnsList, updatedSelectedVulns, updatedVulnDetail));\n } else {\n const payload = { ids: vulnIDs, ...data };\n\n await api.manage.updateVulns(workspaceSelected, payload);\n\n const updatedVulnsList = vulnsList.map((vuln) => {\n const isSelected = vulnsSelected.some((selectedVuln) => selectedVuln._id === vuln._id);\n if (isSelected) return { ...vuln, ...data };\n return vuln;\n });\n\n const updatedSelectedVulns = vulnsSelected.map((vuln) => ({ ...vuln, ...data }));\n\n dispatch({ type: types.MANAGE_SET_BULK_UPDATE_SUCCESS });\n dispatch(refreshVulnsList(updatedVulnsList, updatedSelectedVulns, updatedVulnDetail));\n }\n\n dispatch(closeModal(MODAL_MANAGE_BULK_UPDATE));\n dispatch(closeModal(MODAL_MANAGE_BULK_UPDATE_CONFIRMATION));\n dispatch({ type: types.MANAGE_BULK_UPDATE_FINISHED });\n } catch (e) {\n dispatch(closeModal(MODAL_MANAGE_BULK_UPDATE));\n dispatch(closeModal(MODAL_MANAGE_BULK_UPDATE_CONFIRMATION));\n dispatch({ type: types.MANAGE_VULN_ERROR, errorMessage: e.message || 'An error occured while updating vulns' });\n }\n };\n}\n\nexport function saveTemplateFromVuln () {\n return (dispatch, getState) => {\n const vulnsSelected = selectVulnsSelected(getState());\n\n const save = async (template) => {\n const response = await api.knowledgeBase.createTemplate(template);\n return response;\n };\n\n const data = vulnsSelected.map((vuln) => {\n const filteredReferences = vuln.refs.filter(ref => ref.name).map(filteredRef => filteredRef.name);\n const template = {\n cwe: '',\n description: vuln.desc,\n desc: vuln.desc,\n data: vuln.data,\n exploitation: vuln.severity,\n name: vuln.name,\n references: filteredReferences,\n refs: filteredReferences,\n resolution: vuln.resolution,\n impact: vuln.impact,\n policyviolations: vuln.policyviolations,\n customfields: vuln.custom_fields,\n easeofresolution: vuln.easeofresolution,\n external_id: vuln.external_id,\n type: 'vulnerability_template'\n };\n return save(template);\n });\n\n Promise.allSettled(data).then((results) => {\n const templatesCreated = results ? results.filter((template) => template.status === 'fulfilled').map((t) => t.value) : [];\n const errors = results ? results.filter((template) => template.status === 'rejected').map((t) => t.reason.object) : [];\n dispatch({ type: types.SAVE_TEMPLATE_MANAGE, templatesCreated, errors });\n });\n };\n}\n\nexport function getTemplatesMassiveUpdate () {\n return async (dispatch) => {\n dispatch({ type: types.GET_TEMPLATES_BULK_START });\n\n try {\n const data = await api.manage.getTemplates();\n dispatch({ type: types.GET_TEMPLATES_BULK_SUCCESS, data });\n } catch (e) {\n dispatch({ type: types.GET_TEMPLATES_BULK_FAIL });\n }\n };\n}\n\nexport function showBulkUpdateModal (bulkUpdateField, bulkUpdateValue) {\n return (dispatch) => {\n dispatch(setBulkUpdateField(bulkUpdateField));\n dispatch(setBulkUpdateValue(bulkUpdateValue));\n dispatch(openModal(MODAL_MANAGE_BULK_UPDATE));\n };\n}\n\nexport function onGetVulnsFail (errorMessage) {\n return (dispatch) => {\n dispatch({ type: types.SEARCH_VULNS_FAIL, data: errorMessage });\n };\n}\n\n// Summary: Delete vuln/s database\nexport function deleteSelectedVulns () {\n return async (dispatch, getState) => {\n const workspaceSelected = selectCurrentWorkspace(getState());\n const vulnsSelected = selectVulnsSelected(getState());\n const vulnIDs = vulnsSelected.map((vuln) => vuln._id);\n const groupByField = selectGroupByField('vulns', getState());\n const vulnsList = selectVulnsList(getState());\n const selectAll = selectSelectAll(getState());\n\n const advancedFilterQueryParam = selectAdvancedFilterQueryParam(getState(), 'vulns');\n const hasAdvancedFilter = advancedFilterQueryParam.filters.length > 0;\n const standardQueryParam = selectQueryParam('vulns', getState());\n const queryParam = hasAdvancedFilter ? advancedFilterQueryParam : standardQueryParam;\n\n dispatch({ type: types.HIDE_MODAL_DELETE_CONFIRMATION_VULNS_SUCCEED });\n dispatch({ type: types.DELETE_VULNS });\n\n try {\n if (selectAll) {\n await api.manage.deleteAllVulns(workspaceSelected, { filters: queryParam.filters });\n } else {\n await api.manage.deleteVulns(workspaceSelected, vulnIDs);\n }\n dispatch(getData());\n if (groupByField) {\n const newVulnsList = vulnsList.map((group) => {\n const groupedData = get(group, 'groupData', null);\n if (groupedData) {\n const newGroupedData = groupedData.filter((vuln) => !vulnIDs.includes(vuln._id));\n return {\n ...group,\n count: newGroupedData.length,\n groupData: newGroupedData\n };\n }\n return group;\n });\n dispatch({ type: types.UPDATE_VULNS_LIST, vulnsList: newVulnsList });\n } else dispatch(newGetVulns());\n } catch (e) {\n dispatch({ type: types.MANAGE_VULN_ERROR, errorMessage: e.message || 'An error occured while deleting vulns' });\n }\n };\n}\n\nexport function removeMockVuln () {\n return (dispatch, getState) => {\n const vulnList = selectVulnsList(getState());\n const newVulnsList = vulnList.filter((vuln) => vuln._id !== MOCK_VULN_ID);\n const vulnsCount = newVulnsList.length > 0 ? newVulnsList.length - 1 : 0;\n dispatch({ type: types.REMOVE_MOCK_VULN, vulnsList: newVulnsList, vulnsCount });\n };\n}\n\nexport function endTour () {\n return async (dispatch, getState) => {\n const usesMockVulns = selectUsesMockVulns(getState());\n if (usesMockVulns) dispatch(removeMockVuln());\n dispatch(setTourFinished(true));\n };\n}\n\nexport function downloadVulns () {\n return async (dispatch, getState) => {\n const workspace = selectCurrentWorkspace(getState());\n\n const state = getState();\n let advancedFilterQueryParam = [];\n try {\n advancedFilterQueryParam = selectAdvancedFilterQueryParam(state, 'vulns', true);\n } catch (e) {\n dispatch(setFilterError('vulns', 'Syntax error. Please try again. For further help check our documentation'));\n return dispatch(setVulnsFilterError());\n }\n\n const hasAdvancedFilter = advancedFilterQueryParam.filters.length > 0;\n const standardQueryParam = selectQueryParam('vulns', state, true);\n const queryParam = hasAdvancedFilter ? advancedFilterQueryParam : standardQueryParam;\n\n try {\n const response = await api.manage.exportCSV(workspace, queryParam);\n dispatch(exportCsv(response));\n } catch (err) {\n dispatch({ type: types.EXPORT_CSV_MANAGE_FAILURE });\n }\n\n return dispatch({ type: types.EXPORT_CSV_MANAGE_SUCCESS });\n };\n}\n\nexport function showContextMenu (show, XPos, YPos) {\n return (dispatch, getState) => {\n const state = getState();\n const currentXPos = selectContextMenuXPos(state);\n const currentYPos = selectContextMenuYPos(state);\n const newXPos = XPos ? (XPos + 1) : currentXPos;\n const newYPos = YPos ? (YPos + 1) : currentYPos;\n\n dispatch({\n type: types.SHOW_CONTEXT_MENU, show, contextMenuXPos: newXPos, contextMenuYPos: newYPos\n });\n };\n}\n\nexport function closeTemplateModalMessage () {\n return (dispatch) => {\n dispatch({ type: types.CLOSE_TEMPLATE_MODAL_MESSAGE });\n };\n}\n\nexport function setError (errorMessage) {\n return (dispatch) => {\n dispatch({ type: types.SET_ERROR, data: errorMessage });\n };\n}\n","import get from 'lodash/get';\n\nconst copyToClipboard = (text) => {\n const clipboard = get(navigator, 'clipboard', null);\n if (clipboard) clipboard.writeText(text);\n};\n\nexport default copyToClipboard;\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgCopy = function SvgCopy(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 15,\n height: 17,\n viewBox: \"0 0 15 17\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.647 0H1.521C.684 0 0 .695 0 1.545v10.819h1.521V1.545h9.126V0Zm2.282 3.09H4.563c-.836 0-1.52.696-1.52 1.546v10.819c0 .85.684 1.545 1.52 1.545h8.366c.837 0 1.521-.695 1.521-1.545V4.636c0-.85-.684-1.545-1.521-1.545Zm0 12.365H4.563V4.636h8.366v10.819Z\",\n fill: \"#90A9C0\",\n fillRule: \"nonzero\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgCopy, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/copy.7e1b1006.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgUnknownFiletype = function SvgUnknownFiletype(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 68,\n height: 86,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59 82a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm0-27.998c2.66 0 4.991.843 6.574 2.425C67.157 58.01 68 60.341 68 63.001c0 1.469-.62 2.932-1.59 4.023-.188.21-.385.411-.594.607l-.322.288-.288.243-.284.224-.21.156-.244.174-1.493 1.033-.365.261-.316.235-.27.21-.118.099-.109.093-.189.174-.08.082-.139.146-.127.145a1.096 1.096 0 0 0-.257.552l-.012.139.007.159v3.957l-.004.168a2 2 0 0 1-3.991.011L57 76.015V72l.008-.263c.076-1.315.717-2.63 1.652-3.609l.254-.255.354-.33.326-.283.244-.196.184-.139.335-.24 1.272-.878c.738-.515 1.303-.965 1.662-1.334l.112-.12.183-.207.117-.14.041-.057.035-.052.06-.111.03-.067c.11-.242.131-.417.131-.719 0-1.718-.429-2.937-1.262-3.77-.826-.825-2.01-1.23-3.738-1.23-1.612 0-2.7.509-3.614 1.613-.82.992-1.32 2.437-1.38 4.06l-.006.327a2 2 0 1 1-4 .014c0-2.698.793-5.146 2.302-6.97 1.572-1.9 4.036-3.043 6.698-3.043ZM18.804-.002l.17.006H56l.15.006a2 2 0 0 1 1.844 1.837l.006.157v45.998l-.004.168a2 2 0 0 1-3.991.011L54 48.016V5.004l-.007-.117a1 1 0 0 0-.876-.876L53 4.004H22l-.117.007a1 1 0 0 0-.876.876L21 5.004v14l-.006.148a2 2 0 0 1-1.837 1.845l-.157.006H5l-.117.007a1 1 0 0 0-.876.876L4 22.003v44.998l.007.117a1 1 0 0 0 .876.876l.117.007h39l.169.004a2 2 0 0 1 .011 3.991l-.166.005H2l-.15-.006a2 2 0 0 1-1.844-1.838L0 70.001V19.003l.007-.177c.035-.41.195-.797.458-1.112l.118-.13 17-16.998.127-.118c.264-.226.579-.378.92-.444l.174-.026Zm-.837 6.318L6.007 17.995h11.96V6.315Z\",\n fill: \"#C6D3DF\",\n fillRule: \"nonzero\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgUnknownFiletype, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/unknown_filetype.f6b0014d.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgDownloadIcon = function SvgDownloadIcon(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 17,\n viewBox: \"0 0 18 17\",\n fill: \"#264D6D\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.498.007c-.369.05-.652.372-.652.76L7.845 10.91 5.211 8.225c-.295-.3-.773-.3-1.068 0-.294.3-.294.783 0 1.083l3.923 4c.144.146.335.225.534.225s.39-.079.534-.225l3.923-4c.294-.3.294-.783 0-1.083l-.085-.074c-.295-.224-.715-.199-.983.074l-2.637 2.687L9.354.767C9.354.344 9.017 0 8.6 0l-.102.007zM16.446 14.667H.754c-.417 0-.754.343-.754.766s.337.767.754.767h15.692c.417 0 .754-.344.754-.767 0-.423-.337-.766-.754-.766z\",\n transform: \"translate(-1352 -95) translate(1065.58 85) translate(286.42) translate(0 10)\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgDownloadIcon, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/download-icon.eadbcf9c.svg\";\nexport { ForwardRef as ReactComponent };","import { ReactComponent as _DeleteEvidenceIcon } from 'Images/icon-trash-red.svg';\nimport { ReactComponent as ClipboardIcon } from 'Images/copy.svg';\nimport { ReactComponent as _ImagePlaceholder } from 'Images/unknown_filetype.svg';\nimport { ReactComponent as _DownloadIcon } from 'Images/download-icon.svg';\n\nimport styled from 'styled-components';\n\nexport const EvidenceImg = styled.img`\n object-fit: scale-down;\n`;\n\nexport const ImagePlaceholder = styled(_ImagePlaceholder)`\n margin: 16px 28px;\n`;\n\nexport const Options = styled.div`\n background-color: #ffffff;\n position: absolute;\n right: 7px;\n bottom: 7px;\n padding: 3px;\n border-radius: 4px;\n border: solid 1px #d9e4ef;\n display: none;\n\n & svg {\n margin: 0 5px;\n }\n`;\n\nexport const AttachmentWrapper = styled.div`\n display: flex;\n flex-direction: column;\n height: 165px;\n width: 140px;\n margin: 10px 22px 0px 22px;\n`;\n\nexport const ImageWrapper = styled.div`\n height: 140px;\n width: 100%;\n border-radius: 3px;\n box-shadow: 0 2px 30px 0 rgba(0, 0, 0, 0.06);\n border: solid 1px #dbdbdb;\n background-color: #ffffff;\n padding: 7px;\n cursor: pointer;\n position: relative;\n\n &:hover{\n background-color: #eeeeee;\n\n & ${Options}{\n display:block;\n }\n }\n`;\n\nexport const FileNameWrapper = styled.div`\n flex: 0 0 20px;\n user-select: none;\n display: flex;\n flex-direction: row;\n overflow: hidden;\n width: 100%;\n margin-top: 5px;\n`;\n\nexport const FileName = styled.div`\n flex: 0 1 auto;\n font-size: 13px;\n word-break: break-all;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport const FileExtension = styled(FileName)`\n flex: 0 0 auto;\n`;\n\nexport const DeleteEvidenceIcon = styled(_DeleteEvidenceIcon)`\n& path{\n fill: #000000;\n stroke: #90a9c0;\n}\n`;\n\nexport const Clipboard = styled(ClipboardIcon)``;\n\nexport const DownloadIcon = styled(_DownloadIcon)`\n fill: #90A9C0;\n`;\n","import React from 'react';\nimport get from 'lodash/get';\nimport last from 'lodash/last';\nimport { useDispatch, useSelector } from 'react-redux';\nimport * as FileSaver from 'file-saver';\nimport { Base64 } from 'js-base64';\nimport { deleteAttachment } from 'Screens/ManageEditCreate/actions/Actions';\nimport { selectVulnDetailId } from 'store/Manage/selectors';\nimport copyToClipboard from 'utils/clipboard';\nimport {\n EvidenceImg, ImageWrapper, FileName, Options, AttachmentWrapper, DeleteEvidenceIcon,\n Clipboard, ImagePlaceholder, FileNameWrapper, FileExtension, DownloadIcon\n} from './styled';\nimport { setImagePreview } from 'store/Manage/actions';\n\nconst Attachment = ({ deleteEvidence, evidence, name, isEditing }) => {\n const dispatch = useDispatch();\n const vulnDetailId = useSelector(selectVulnDetailId);\n\n const contentType = get(evidence, 'content_type', '');\n const data = get(evidence, 'data', '');\n\n const isAnImage = contentType.includes('image');\n const imageSrc = `data:${contentType};base64,${data}`;\n\n const filename = name.split('.').slice(0, -1).join('.');\n const extension = `.${last(name.split('.'))}`;\n\n const copyTextToClipboard = () => copyToClipboard(`(evidence:vulnerability:${vulnDetailId}:${name})`);\n\n const onDelete = () => {\n if (isEditing) dispatch(deleteAttachment(name));\n else deleteEvidence(name);\n };\n\n const download = () => {\n if (contentType.includes('image')) {\n Base64.extendString();\n const u8arr = Base64.toUint8Array(data);\n const file = new File([u8arr], filename, { type: contentType });\n FileSaver.saveAs(file, name);\n } else {\n Base64.extendString();\n const u8arr = data.toUint8Array();\n const file = new File([u8arr], filename, { type: contentType });\n FileSaver.saveAs(file, name);\n }\n };\n\n return (\n <AttachmentWrapper key={ `attachement_vuln_detail_${name}` }>\n <ImageWrapper>\n {isAnImage ? <EvidenceImg onClick={ () => dispatch(setImagePreview(imageSrc)) } src={ imageSrc } alt={ name } /> : <ImagePlaceholder />}\n <Options>\n { !isEditing && <DownloadIcon onClick={ download } title=\"Download\" /> }\n { (!isEditing && isAnImage) && <Clipboard onClick={ copyTextToClipboard } title=\"Copy markdown reference\" /> }\n <DeleteEvidenceIcon onClick={ onDelete } />\n </Options>\n </ImageWrapper>\n <FileNameWrapper>\n <FileName children={ filename } />\n <FileExtension children={ extension } />\n </FileNameWrapper>\n </AttachmentWrapper>\n );\n};\n\nexport default Attachment;\n","import styled from 'styled-components';\n\nconst Wrapper = styled.div`\n display: flex;\n flex-wrap: wrap;\n`;\n\nexport default Wrapper;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport {\n selectReadOnly, selectPermissions, selectVulnDetailId, selectAttachments\n} from 'store/Manage/selectors';\nimport UploadEvidence from './components/UploadEvidence';\nimport Attachment from './components/Attachment';\nimport Wrapper from './styled';\nimport api from 'services/api';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\n\nconst EvidenceTab = ({ isEditing }) => {\n const [evidences, setEvidences] = useState({});\n const attachments = useSelector(selectAttachments);\n const vulnDetailId = useSelector(selectVulnDetailId);\n const readOnly = useSelector(selectReadOnly);\n const permissions = useSelector(selectPermissions);\n const allowed = isEditing || permissions.update.allowed;\n const workspace = useSelector(selectCurrentWorkspace);\n const files = isEditing ? attachments : evidences;\n\n const getEvidences = useCallback(async () => {\n try {\n const data = await api.attachments.getAttachments(workspace, vulnDetailId);\n setEvidences(data);\n } catch (e) {\n setEvidences({});\n }\n }, [workspace, vulnDetailId]);\n\n const deleteEvidence = useCallback(async (name) => {\n try {\n await api.attachments.removeAttachments(workspace, vulnDetailId, name);\n const newEvidences = { ...evidences };\n delete newEvidences[name];\n setEvidences(newEvidences);\n } catch (e) {\n setEvidences(evidences);\n }\n }, [evidences, workspace, vulnDetailId]);\n\n useEffect(() => {\n getEvidences();\n }, [getEvidences]);\n\n return (\n <>\n <Wrapper>\n {!readOnly && allowed && <UploadEvidence getEvidences={ getEvidences } isEditing={ isEditing } /> }\n {Object.keys(files).map((key) => <Attachment key={ key } deleteEvidence={ deleteEvidence } evidence={ evidences[key] } name={ key } isEditing={ isEditing } />)}\n </Wrapper>\n </>\n );\n};\n\nexport default EvidenceTab;\n","import get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\n\nexport const selectCustomAttributes = (state) => get(state, 'customAttributes.attributes', []);\nexport const selectHasCustomAttributes = (state) => !isEmpty(selectCustomAttributes(state));\nexport const selectCAToEdit = (state) => get(state, 'customAttributes.caToEdit', null);\nexport const selectParsedCustomAttributes = (state) => {\n const unParsedCustomFields = selectCustomAttributes(state);\n const customFields = {};\n\n unParsedCustomFields.map((field) => {\n customFields[field.field_display_name] = {\n visible: false,\n order: -1\n };\n\n return customFields;\n });\n return customFields;\n};\nexport const selectCustomAttributesList = (state) => {\n const attributes = get(state, 'customAttributes.attributes', []);\n return attributes.map((attr) => attr.field_name);\n};\n","import colors from 'Styles/colors';\n\nconst CustomAttribute = (name, desc, color) => ({\n name,\n desc,\n color\n});\n\nexport const FIELD_TYPES = [\n CustomAttribute('String', 'String', colors.warmPurple),\n CustomAttribute('Integer', 'Integer', colors.softBlue),\n CustomAttribute('List', 'List', colors.redPink),\n CustomAttribute('Choice', 'Choice', colors.apple)\n];\n\nexport const COLOR_BY_CUSTOM_ATTRIBUTE_TYPE = {\n str: colors.warmPurple,\n int: colors.softBlue,\n list: colors.redPink,\n choice: colors.apple\n};\n\nexport const CUSTOM_ATTRIBUTE_TYPES = {\n STRING: 'str',\n INTEGER: 'int',\n LIST: 'list',\n CHOICE: 'choice'\n};\n\nexport const NAME_TO_TYPE = {\n string: CUSTOM_ATTRIBUTE_TYPES.STRING,\n integer: CUSTOM_ATTRIBUTE_TYPES.INTEGER,\n list: CUSTOM_ATTRIBUTE_TYPES.LIST,\n choice: CUSTOM_ATTRIBUTE_TYPES.CHOICE\n};\n\nexport const TYPE_TO_NAME = {\n [CUSTOM_ATTRIBUTE_TYPES.STRING]: 'String',\n [CUSTOM_ATTRIBUTE_TYPES.INTEGER]: 'Integer',\n [CUSTOM_ATTRIBUTE_TYPES.LIST]: 'List',\n [CUSTOM_ATTRIBUTE_TYPES.CHOICE]: 'Choice'\n};\n\nexport const TYPE_TO_PLACEHOLDER = {\n [CUSTOM_ATTRIBUTE_TYPES.STRING]: 'customAttributes.string.placeholder',\n [CUSTOM_ATTRIBUTE_TYPES.INTEGER]: 'customAttributes.integer.placeholder',\n [CUSTOM_ATTRIBUTE_TYPES.LIST]: 'customAttributes.list.placeholder',\n [CUSTOM_ATTRIBUTE_TYPES.CHOICE]: 'customAttributes.choice.placeholder'\n};\n\nexport const CUSTOM_ATTRIBUTES_MODAL_ID = 'create-custom-attribute-modal-id';\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n background-color: ${colors.white};\n min-height: 93px;\n padding: 9px 21px 20px 21px;\n`;\n\nWrapper.displayName = 'PlaceholderWrapper';\n\nexport const PlaceholderText = styled.span`\n font-size: 12.5px;\n line-height: 1.76;\n color: ${colors.blueGrey};\n background-color: ${colors.yellow1};\n cursor: pointer;\n`;\n\nPlaceholderText.displayName = 'PlaceholderText';\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport PropTypes from 'prop-types';\nimport { CUSTOM_ATTRIBUTE_TYPES as types, TYPE_TO_PLACEHOLDER as placeholders } from 'Screens/Manage/components/CustomAttributesModal/constants';\nimport { Wrapper, PlaceholderText } from './styled';\n\nconst CustomFieldContainer = ({ children, onShow, field, showContent }) => {\n const isChoiceField = field.field_type === types.CHOICE;\n const canShowContent = isChoiceField || showContent;\n const showPlaceholder = !isChoiceField && !showContent;\n\n return (\n <Wrapper>\n {showPlaceholder &&\n (\n <PlaceholderText onClick={ () => onShow() }>\n <FormattedMessage id={ placeholders[field.field_type] } />\n </PlaceholderText>\n )}\n {canShowContent && children}\n </Wrapper>\n );\n};\nCustomFieldContainer.propTypes = {\n field: PropTypes.shape({\n field_type: PropTypes.string,\n field_metadata: PropTypes.string\n }).isRequired\n};\n\nexport default CustomFieldContainer;\n","import styled, { css } from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as WarningIcon } from 'Images/exclamation_error.svg';\n\nconst errorStyle = css`\n box-shadow: 2px 2px 5px 0 rgb(0 0 0 / 6%), inset 0 -1px 0 0 ${colors.redPink};\n`;\n\nexport const Input = styled.input`\n width: 100%;\n height: 34px;\n border: 1px solid transparent;\n border-bottom: none;\n box-shadow: 2px 2px 5px 0 rgb(0 0 0 / 6%), inset 0 -1px 0 0 ${colors.grey30};\n background-color: ${(props) => (props.isEmpty ? colors.blue8 : colors.white)};\n ${(props) => (props.error ? errorStyle : '')};\n padding-left: 15px;\n padding-right: 15px;\n font-size: 14.5px;\n font-weight: 300;\n line-height: 2.48;\n display: inline-block;\n \n &::-webkit-input-placeholder {\n color: ${colors.grey17};\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: 0.11px;\n }\n\n &::placeholder {\n font-size: 13px;\n font-weight: 300;\n }\n`;\n\nInput.displayName = 'Input';\n\nexport const Title = styled.span`\n text-transform: capitalize;\n text-align: left;\n font-size: 12.5px;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.08;\n letter-spacing: normal;\n font-weight: 600;\n margin-bottom: 1px;\n color: ${(props) => (props.boldTitle ? colors.darkBlueGrey : colors.grey17)};\n padding-left: ${(props) => (props.boldTitle ? '15px' : '')};\n`;\nTitle.displayName = 'Title';\n\n/* .input-list-title{\n @extend .text-black-13;\n color: #0b2128;\n font-weight: 600;\n margin-bottom: 12px;\n} */\n\nexport const Asterisk = styled.span`\n text-align: left;\n font-size: 12.5px;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.08;\n letter-spacing: normal;\n color: ${colors.redPink};\n margin-bottom: 1px;\n`;\nAsterisk.displayName = 'Asterisk';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n position: relative;\n height: 85px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Texts = styled.div`\n display: flex;\n height: 26px;\n`;\nTexts.displayName = 'Texts';\n\nexport const ErrorMessage = styled.span`\n font-size: 10.5px;\n letter-spacing: 0.08px;\n color: ${colors.redPink};\n margin-left: 1px;\n margin-top: 8px;\n`;\nErrorMessage.displayName = 'ErrorMessage';\n\nexport const Warning = styled(WarningIcon)`\n cursor: default;\n position: absolute;\n right: 10px;\n top: 33px;\n`;\n\nWarning.displayName = 'Warning';\n","import React from 'react';\nimport PropType from 'prop-types';\nimport {\n Input, Title, Wrapper, Asterisk, Texts, ErrorMessage, Warning\n} from 'Common/Components/StandardTextField/styled';\n\nconst StandardTextField = ({\n value, name, disabled, onChange, placeholder, title, mandatory, error, errorMessage, className, boldTitle, type, min, max, step, onBlur\n}) => (\n <Wrapper className={ className }>\n <Texts>\n {title && <Title boldTitle={ boldTitle }>{title}}\n {mandatory && *}\n \n onChange(e.target.value) }\n isEmpty={ value.length === 0 }\n placeholder={ placeholder }\n error={ error }\n type={ type }\n min={ min }\n max={ max }\n step={ step }\n onBlur={ onBlur }\n />\n {error && }\n {error && { errorMessage }}\n \n);\n\nStandardTextField.defaultProps = {\n disabled: false,\n placeholder: '',\n mandatory: false,\n error: false,\n className: '',\n boldTitle: false,\n type: 'text',\n onBlur: () => {}\n};\n\nStandardTextField.propTypes = {\n value: PropType.string.isRequired,\n name: PropType.string.isRequired,\n disabled: PropType.bool,\n onChange: PropType.func.isRequired,\n placeholder: PropType.string,\n mandatory: PropType.bool,\n error: PropType.bool,\n className: PropType.string,\n boldTitle: PropType.bool,\n type: PropType.string,\n onBlur: PropType.func\n};\n\nexport default StandardTextField;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { spinner } from 'Styles/effects';\n\nconst Button = styled.button`\n height: 34px;\n border-radius: 2px;\n background-color: ${(props) => (props.disabled ? colors.blue12 : colors.blueCerulean)};\n padding: 7px 22px;\n color: ${(props) => (props.isLoading ? 'transparent' : colors.white)};\n text-transform: none;\n border: none;\n font-size: 14px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n text-align: center;\n pointer-events: ${(props) => props.isLoading && 'none'};\n ${(props) => props.isLoading && spinner({ diameter: '15px' })};\n\n &:hover {\n background-color: ${(props) => (props.disabled ? '' : colors.blue11)};\n }\n\n &:active {\n background-color: ${(props) => (props.disabled ? '' : colors.softBlue)};\n }\n`;\n\nButton.displayName = 'Button';\n\nexport default Button;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from 'Common/Components/BlueButton/styled';\n\nconst BlueButton = ({\n onClick, label, disabled, className, isLoading, id, children\n}) => (\n \n);\n\nBlueButton.defaultProps = {\n disabled: false,\n isLoading: false,\n className: '',\n id: ''\n};\n\nBlueButton.propTypes = {\n onClick: PropTypes.func.isRequired,\n disabled: PropTypes.bool,\n isLoading: PropTypes.bool,\n className: PropTypes.string,\n id: PropTypes.string\n};\n\nexport default BlueButton;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nconst OutlinedButton = styled.button`\n height: 34px;\n min-width: 89px;\n border-radius: 2px;\n background-color: ${(props) => (props.disabled ? colors.grey26 : colors.white1)};\n border: solid 1px ${(props) => (props.disabled ? colors.grey27 : colors.dark2)};\n color: ${(props) => (props.disabled ? colors.grey27 : colors.dark2)};\n padding: 8px 21px 9px 22px;\n text-transform: none;\n font-size: 12.5px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n text-align: center;\n \n &:hover {\n background-color: ${(props) => (props.disabled ? '' : colors.iceBlue)};\n }\n\n &:active {\n background-color: ${colors.grey31};\n }\n`;\n\nOutlinedButton.displayName = 'OutlinedButton';\n\nexport default OutlinedButton;\n","import React from 'react';\nimport Button from 'Common/Components/OutlinedButton/styled';\n\nconst OutlinedButton = ({\n onClick, label, disabled, className\n}) => (\n \n);\n\nexport default OutlinedButton;\n","import { css } from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const navMenuButton = css`\n height: 17px;\n`;\n\nexport const customFieldContent = css`\n font-size: 12.5px;\n line-height: 1.76;\n color: ${colors.grey19};\n cursor: pointer;\n`;\n\nexport const ellipsisText = css`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n","import styled from 'styled-components';\nimport { customFieldContent } from 'Styles/styles';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nWrapper.displayName = 'Wrapper';\n\nexport const Buttons = styled.div`\n display: flex;\n justify-content: flex-end;\n margin-top: 34px;\n > :nth-child(1){\n margin-right: 8px;\n }\n`;\n\nButtons.displayName = 'Buttons';\n\nexport const Content = styled.span`\n ${customFieldContent}\n`;\n\nContent.displayName = 'Content';\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport StandardTextField from 'Common/Components/StandardTextField/index';\nimport BlueButton from 'Common/Components/BlueButton/index';\nimport OutlinedButton from 'Common/Components/OutlinedButton/index';\nimport { CUSTOM_ATTRIBUTE_TYPES } from 'Screens/Manage/components/CustomAttributesModal/constants';\nimport toString from 'lodash/toString';\nimport trim from 'lodash/trim';\nimport { Wrapper, Buttons, Content } from './styled';\n\nconst StringCustomField = ({\n field, vuln, onCancel, onSave, initialValue\n}) => {\n const [value, setValue] = useState(trim(toString(initialValue)));\n const [editMode, setEditMode] = useState(!initialValue);\n\n const handleSave = () => {\n onSave(vuln, field.field_name, value);\n setEditMode(false);\n };\n\n const handleCancel = () => {\n setEditMode(false);\n if (initialValue) {\n setValue(initialValue);\n } else {\n onCancel();\n }\n };\n\n useEffect(() => {\n if (value !== initialValue) {\n setValue(initialValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return (\n \n {editMode\n ? (\n \n )\n : setEditMode(true) }>{initialValue} }\n\n {editMode &&\n (\n \n \n \n \n )}\n \n );\n};\n\nStringCustomField.defaultProps = {\n initialValue: ''\n};\n\nStringCustomField.propTypes = {\n field: PropTypes.shape({\n field_display_name: PropTypes.string,\n field_type: PropTypes.oneOf([CUSTOM_ATTRIBUTE_TYPES.STRING])\n }).isRequired,\n onCancel: PropTypes.func.isRequired,\n onSave: PropTypes.func.isRequired,\n vuln: PropTypes.shape({\n id: PropTypes.number.isRequired\n }).isRequired,\n initialValue: PropTypes.string\n};\n\nexport default StringCustomField;\n","import styled, { createGlobalStyle } from 'styled-components';\nimport colors from 'Styles/colors';\nimport MarkdownStyles from 'react-markdown-editor-lite/lib/index.css';\nimport BlueButton from 'Common/Components/BlueButton/index';\nimport OutlinedButton from 'Common/Components/OutlinedButton/index';\nimport ReactMarkdown from 'react-markdown';\n\nexport const StyledReactMarkdown = styled(ReactMarkdown)`\n padding-left: 5px;\n h1 {\n font-size: 21px;\n font-weight: bold;\n }\n \n h2 {\n font-size: 17px;\n font-weight: bold;\n }\n \n h3 {\n font-size: 15px;\n font-weight: bold;\n }\n \n h4 {\n font-size: 14px;\n font-weight: bold;\n }\n \n h5 {\n font-size: 13px;\n font-weight: bold;\n } \n`;\nStyledReactMarkdown.displayName = 'StyledReactMarkdown';\n\nexport const GlobalStyle = createGlobalStyle`\n ${MarkdownStyles}\n`;\nGlobalStyle.displayName = 'MarkdownStyles';\n\nexport const Wrapper = styled.div`\n width: ${(props) => (props.width ? `${props.width}` : '405px')};\n height: ${(props) => (props.height ? `${props.height}` : '232px')};\n margin-bottom: 26px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n font-size: 12.5px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.08;\n letter-spacing: normal;\n color: #0b2128;\n margin-bottom: 10px;\n margin-left: 15px;\n font-weight: 600;\n`;\nTitle.displayName = 'Title';\n\nexport const PreviewWrapper = styled.div`\n width: ${(props) => (props.width ? `${props.width}` : '405px')};\n height: ${(props) => (props.height ? `${props.height}` : '232px')};\n border-radius: 3px;\n box-shadow: 0 1px 0 0 #afafaf;\n padding: 10px 15px 15px 15px;\n overflow-y: auto;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n border-style: solid;\n border-color: transparent;\n border-width: 1px 1px 0px 1px;\n\n &:hover {\n border-color: #afb1bc;\n }\n\n p {\n margin: 0px;\n }\n`;\n\nPreviewWrapper.displayName = 'PreviewWrapper';\n\nexport const DataContainer = styled.div`\n \n`;\n\nDataContainer.displayName = 'DataContainer';\n\nexport const EditorContainer = styled.div`\n \n`;\n\nEditorContainer.displayName = 'EditorContainer';\n\nexport const ButtonsWrapper = styled.div`\n display: inline-flex;\n margin-top: 3px;\n position: relative;\n float: right;\n bottom: 33px;\n margin-right: 10px;\n z-index: 2;\n .cancel-button {\n width: 60px;\n height: 22px;\n font-size: 0.6em !important;\n }\n\n .save-button {\n width: 40px;\n height: 22px;\n font-size: 0.6em !important;\n }\n\n`;\n\nButtonsWrapper.displayName = 'ButtonsWrapper';\n\nexport const EmptyWrapper = styled.div`\n width: ${(props) => (props.width ? `${props.width}` : '405px')};\n height: ${(props) => (props.height ? `${props.height}` : '232px')};\n border-radius: 3px;\n box-shadow: 0 1px 0 0 #afafaf;\n background-color: ${colors.paleGrey};\n padding-left: 17px;\n font-size: 13.5px;\n font-weight: 300;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.67;\n letter-spacing: 0.1px;\n color: #afb1bc;\n padding-top: 8px;\n cursor: pointer;\n border: 1px solid transparent;\n\n p{\n cursor: pointer;\n }\n\n &:hover {\n border-style: solid;\n border-color: #afb1bc;\n border-width: 1px 1px 0px 1px;\n }\n`;\n\nEmptyWrapper.displayName = 'EmptyWrapper';\n\nexport const RedAster = styled.span`\n color: #ea3158; \n`;\nRedAster.displayName = 'RedAster';\n\nexport const SaveButton = styled(BlueButton)`\n width: 50px;\n min-width: 50px;\n height: 22px;\n font-size: 10px;\n padding: 0;\n`;\nSaveButton.displayName = 'Save';\n\nexport const CancelButton = styled(OutlinedButton)`\n width: 63px;\n min-width: 63px;\n margin-right: 8px;\n height: 22px;\n font-size: 10px;\n padding: 0;\n`;\nCancelButton.displayName = 'CancelButton';\n","/* eslint-disable no-negated-condition */\n/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport MdEditor from 'react-markdown-editor-lite';\nimport MarkdownIt from 'markdown-it';\nimport './styles.scss';\nimport {\n Wrapper,\n PreviewWrapper,\n EmptyWrapper,\n DataContainer,\n EditorContainer,\n ButtonsWrapper,\n GlobalStyle,\n CancelButton,\n RedAster,\n SaveButton,\n StyledReactMarkdown\n} from './styled';\n\nclass Md extends React.Component {\n constructor (props) {\n super(props);\n\n this.state = {\n markdown: '',\n editable: false,\n temp: ''\n };\n\n this.handleEditorChange = this.handleEditorChange.bind(this);\n this.toogleShowPreview = this.toogleShowPreview.bind(this);\n this.cancelEdition = this.cancelEdition.bind(this);\n this.calculateHeight = this.calculateHeight.bind(this);\n }\n\n componentDidMount () {\n this.setState({ markdown: this.props.value }, () => {\n if (this.props.hidePlaceholder && this.state.markdown.length === 0) {\n this.toggleEditable();\n }\n });\n }\n\n componentDidUpdate (prevProps) {\n if (prevProps.value !== this.props.value) {\n this.setState({ markdown: this.props.value });\n }\n }\n\n handleEditorChange (it) {\n this.setState({\n markdown: it.text\n });\n }\n\n toogleShowPreview () {\n this.setState((prevState) => ({ showPreview: !prevState.showPreview }));\n }\n\n toggleEditable () {\n if (!this.state.editable) {\n this.setState((prevState) => ({ temp: prevState.markdown }));\n }\n\n this.setState((prevState) => ({ editable: !prevState.editable }));\n }\n\n cancelEdition () {\n this.setState((prevState) => ({ markdown: prevState.temp }));\n if (this.props.onCancel) {\n this.props.onCancel();\n }\n this.toggleEditable();\n }\n\n saveMarkdown () {\n this.props.saveAction(this.state.markdown);\n this.toggleEditable();\n this.setState({ temp: '' });\n }\n\n calculateHeight () {\n const { size } = this.props;\n switch (size) {\n case 'md':\n return '232px';\n case 'sm':\n return '180px';\n case 'lg':\n return '225px';\n default:\n return '328px';\n }\n }\n\n render () {\n const {\n placeholder,\n size,\n title,\n isRequired,\n hidePlaceholder,\n width\n } = this.props;\n const { markdown, editable } = this.state;\n const mdParser = new MarkdownIt(/* Markdown-it options */);\n const height = this.calculateHeight(size);\n const PLUGINS = [\n 'header',\n 'font-bold',\n 'font-italic',\n 'block-code-inline',\n 'block-code-block',\n 'block-quote',\n 'table',\n 'link'\n ];\n return (\n \n \n
\n {title}\n { isRequired && * }\n
\n {\n !editable\n ? (\n \n {\n (markdown === '' && !hidePlaceholder)\n ? (\n { this.toggleEditable(); } } width={ width } height={ height }>\n

{ placeholder }

\n
\n )\n : (\n { this.toggleEditable(); } } width={ width } height={ height }>\n \n { this.state.markdown }\n \n \n )\n }\n
\n )\n : (\n \n mdParser.render(text) }\n plugins={ PLUGINS }\n config={ {\n view: {\n menu: true,\n md: true,\n html: false,\n fullScreen: false,\n hideMenu: false\n },\n canView: {\n menu: true,\n md: true,\n html: false,\n fullScreen: true,\n hideMenu: false\n }\n } }\n onChange={ this.handleEditorChange }\n />\n \n { this.cancelEdition(); } } label=\"Cancel\" />\n { this.saveMarkdown(); } } label=\"Save\" />\n \n \n )\n }\n
\n );\n }\n}\n\nMd.propTypes = {\n value: PropTypes.string,\n saveAction: PropTypes.func.isRequired,\n placeholder: PropTypes.string,\n size: PropTypes.oneOf(['md', 'lg', 'sm']),\n title: PropTypes.string.isRequired,\n isRequired: PropTypes.bool,\n hidePlaceholder: PropTypes.bool,\n width: PropTypes.string,\n onCancel: PropTypes.func\n};\n\nMd.defaultProps = {\n value: '',\n placeholder: 'This field is empty. Click to edit.',\n size: 'md',\n isRequired: false,\n hidePlaceholder: false,\n width: '405px',\n onCancel: null\n};\n\nconst mapDispatchToProps = () => ({\n\n});\n\nconst mapStateToProps = () => ({\n\n});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Md));\n","import styled from 'styled-components';\n\nconst Wrapper = styled.div`\n width: 100%;\n`;\n\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Md from 'Common/Components/Md';\nimport { CUSTOM_ATTRIBUTE_TYPES } from 'Screens/Manage/components/CustomAttributesModal/constants';\n\nimport Wrapper from './styled';\n\nconst MdCustomField = ({\n field, vuln, onCancel, onSave, initialValue\n}) => {\n const [value, setValue] = useState(initialValue);\n\n const handleSave = (finalValue) => onSave(vuln, field.field_name, finalValue);\n\n const handleCancel = () => {\n if (initialValue) {\n setValue(initialValue);\n } else {\n onCancel();\n }\n };\n\n return (\n \n \n \n );\n};\n\nMdCustomField.defaultProps = {\n initialValue: ''\n};\n\nMdCustomField.propTypes = {\n field: PropTypes.shape({\n field_display_name: PropTypes.string,\n field_type: PropTypes.oneOf([CUSTOM_ATTRIBUTE_TYPES.MARKDOWN])\n }).isRequired,\n vuln: PropTypes.shape({\n id: PropTypes.number.isRequired\n }).isRequired,\n onCancel: PropTypes.func.isRequired,\n onSave: PropTypes.func.isRequired,\n initialValue: PropTypes.string\n};\n\nexport default MdCustomField;\n","import styled from 'styled-components';\nimport { customFieldContent } from 'Styles/styles';\n\nexport const Wrapper = styled.div`\n width: 100%;\n`;\n\nWrapper.displayName = 'Wrapper';\n\nexport const Buttons = styled.div`\n display: flex;\n justify-content: flex-end;\n margin-top: 34px;\n > :nth-child(1){\n margin-right: 8px;\n }\n`;\n\nButtons.displayName = 'Buttons';\n\nexport const Content = styled.span`\n ${customFieldContent}\n`;\n\nContent.displayName = 'Content';\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport StandardTextField from 'Common/Components/StandardTextField/index';\nimport BlueButton from 'Common/Components/BlueButton/index';\nimport OutlinedButton from 'Common/Components/OutlinedButton/index';\nimport { CUSTOM_ATTRIBUTE_TYPES } from 'Screens/Manage/components/CustomAttributesModal/constants';\nimport { Wrapper, Buttons, Content } from './styled';\n\nconst IntegerCustomField = ({\n field, onCancel, onSave, vuln, initialValue\n}) => {\n const [value, setValue] = useState(initialValue);\n const [editMode, setEditMode] = useState(!initialValue);\n useEffect(() => {\n if (value !== initialValue) {\n setValue(initialValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleSave = () => {\n onSave(vuln, field.field_name, value);\n setEditMode(false);\n };\n const handleCancel = () => {\n setEditMode(false);\n if (initialValue) {\n setValue(initialValue);\n } else {\n onCancel();\n }\n };\n\n const hasNonNumericValues = () => {\n const pattern = /^\\d+$/;\n return value.length > 0 && !pattern.test(value);\n };\n\n const error = hasNonNumericValues();\n\n return (\n \n {editMode\n ? (\n \n )\n : setEditMode(true) }>{initialValue} }\n {editMode &&\n (\n \n \n \n \n )}\n \n );\n};\n\nIntegerCustomField.defaultProps = {\n initialValue: null\n};\n\nIntegerCustomField.propTypes = {\n field: PropTypes.shape({\n field_display_name: PropTypes.string,\n field_type: PropTypes.oneOf([CUSTOM_ATTRIBUTE_TYPES.INTEGER])\n }).isRequired,\n vuln: PropTypes.shape({\n id: PropTypes.number.isRequired\n }).isRequired,\n onCancel: PropTypes.func.isRequired,\n onSave: PropTypes.func.isRequired,\n initialValue: PropTypes.number\n};\n\nexport default IntegerCustomField;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { FiTrash2 as Trash } from 'react-icons/fi';\nimport { ellipsisText } from 'Styles/styles';\n\nexport const Wrapper = styled.div`\n position: relative;\n width: 100%;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const DataContainer = styled.div`\n width: ${(props) => (props.responsive ? '100%' : '400px')}; \n margin-top: 21px;\n background-color: ${colors.white};\n box-shadow: 0 2px 50px 0 ${colors.iceBlue};\n max-height: 117px;\n overflow-y: auto;\n`;\nDataContainer.displayName = 'DataContainer';\n\nexport const DataItem = styled.div` \n font-size: 13px;\n color: #1c2243;\n cursor: pointer;\n padding: 7px 5px 7px 20px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: ${(props) => {\n if (props.responsive) { return '100%;'; }\n if (props.width) { return `${props.width};`; }\n return '400px';\n }}; \n background-color: ${(props) => (props.isOdd ? `${colors.iceBlue}` : '')};\n`;\nDataItem.displayName = 'DataItem';\n\nexport const Text = styled.div`\n text-align: left;\n ${ellipsisText}\n`;\nText.displayName = 'Text';\n\nexport const Span = styled.span`\n position: ${(props) => (props.responsive ? 'absolute' : 'relative')};\n top: ${(props) => {\n if (props.responsive) {\n return props.hasTitle ? '36px' : '9px';\n }\n return '';\n }};\n right: ${(props) => (props.responsive ? '15px' : '')};\n display: inline-flex;\n justify-content: center;\n align-items: center;\n`;\nSpan.displayName = 'Span';\n\nexport const TrashIcon = styled(Trash)` \n width: 16px;\n height: 17px;\n align-self: flex-end;\n color: ${colors.grey12};\n`;\n\nTrashIcon.displayName = 'TrashIcon';\n\nexport const Input = styled.input`\n height: ${(props) => (props.height)};\n`;\nInput.displayName = 'Input';\n","/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport { FaPlus as Plus } from 'react-icons/fa';\nimport {\n Wrapper, DataContainer, DataItem, Text, Span, TrashIcon, Input\n} from './styled';\nimport './styles.scss';\n\nconst isOdd = (n) => n % 2 !== 0;\n\nclass CustomList extends React.Component {\n constructor (props) {\n super(props);\n this.onChangeHandler = this.onChangeHandler.bind(this);\n this.onAddHandler = this.onAddHandler.bind(this);\n this.onRemoveHandler = this.onRemoveHandler.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n\n this.state = {\n value: ''\n };\n }\n\n componentWillUnmount () {\n this.setState({ value: '' });\n }\n\n onChangeHandler (v) {\n this.setState({ value: v });\n if (this.props.setItem) this.props.setItem(v);\n }\n\n onRemoveHandler (v) {\n const index = this.props.listData.indexOf(v);\n this.props.removeItem(index);\n }\n\n onAddHandler () {\n if (this.state.value !== '') {\n this.props.addItem(this.state.value);\n this.setState({ value: '' });\n }\n }\n\n handleKeyPress (event) {\n if (event.key === 'Enter') {\n this.onAddHandler();\n }\n }\n\n render () {\n const { value } = this.state;\n const {\n type,\n placeholder,\n title,\n width,\n listData,\n responsive,\n height,\n className\n } = this.props;\n\n return (\n \n { title &&
{title}
}\n 0 ? 'full' : ''}` }\n value={ value }\n placeholder={ placeholder }\n type={ type }\n onChange={ (e) => this.onChangeHandler(e.target.value) }\n onKeyPress={ this.handleKeyPress }\n height={ height }\n />\n this.onAddHandler() }\n onKeyDown={ () => { } }\n role=\"button\"\n aria-label=\"Add Option\"\n tabIndex=\"0\"\n type=\"button\"\n responsive={ responsive }\n hasTitle={ title }\n >\n \n \n {\n listData.length > 0 &&\n (\n \n { listData.map((item, i) => (\n item && \n {item}\n { this.onRemoveHandler(item); } }\n onKeyDown={ () => {} }\n role=\"button\"\n aria-label=\"Remove Option\"\n tabIndex=\"0\"\n type=\"button\"\n >\n \n \n \n )) }\n \n )\n }\n
\n );\n }\n}\n\nCustomList.propTypes = {\n type: PropTypes.string,\n placeholder: PropTypes.string,\n title: PropTypes.string,\n width: PropTypes.string,\n addItem: PropTypes.func,\n removeItem: PropTypes.func,\n setItem: PropTypes.func,\n listData: PropTypes.array,\n responsive: PropTypes.bool\n};\n\nCustomList.defaultProps = {\n type: 'text',\n placeholder: 'Add a value',\n title: '',\n width: '400px',\n addItem: null,\n removeItem: null,\n setItem: null,\n listData: [],\n responsive: false\n};\n\nexport default withRouter(CustomList);\n","import styled from 'styled-components';\nimport { customFieldContent } from 'Styles/styles';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nWrapper.displayName = 'Wrapper';\n\nexport const Buttons = styled.div`\n display: flex;\n justify-content: flex-end;\n margin-top: 34px;\n > :nth-child(1){\n margin-right: 8px;\n }\n`;\n\nButtons.displayName = 'Buttons';\n\nexport const List = styled.ul`\n cursor: pointer;\n margin-left: 33px;\n`;\n\nList.displayName = 'List';\n\nexport const Item = styled.li`\n ${customFieldContent};\n`;\n\nItem.displayName = 'Item';\n\nexport const CustomListWrapper = styled.div`\n width: 430px; \n`;\nCustomListWrapper.displayName = 'CustomListWrapper';\n","/* eslint-disable react/jsx-key */\nimport React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport BlueButton from 'Common/Components/BlueButton';\nimport OutlinedButton from 'Common/Components/OutlinedButton';\nimport CustomList from 'Common/Components/CustomList';\nimport { CUSTOM_ATTRIBUTE_TYPES } from 'Screens/Manage/components/CustomAttributesModal/constants';\n\nimport {\n Wrapper, Buttons, List, Item, CustomListWrapper\n} from './styled';\n\nconst ListCustomField = ({\n field, vuln, onCancel, onSave, initialValue\n}) => {\n const [options, setOptions] = useState(initialValue);\n const [editMode, setEditMode] = useState(!initialValue);\n\n useEffect(() => {\n if (options !== initialValue) {\n setOptions(initialValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleSave = () => {\n onSave(vuln, field.field_name, options);\n setEditMode(false);\n };\n\n const handleCancel = () => {\n setEditMode(false);\n if (initialValue) {\n setOptions(initialValue);\n } else {\n onCancel();\n }\n };\n\n const onAddItem = (option) => {\n const newOptions = [...options];\n newOptions.push(option);\n setOptions(newOptions);\n };\n\n const onRemoveItem = (optionIndex) => {\n const newItems = [...options];\n newItems.splice(optionIndex, 1);\n setOptions(newItems);\n };\n\n return (\n \n {editMode && (\n \n {} }\n listData={ options }\n width=\"430px\"\n responsive\n />\n \n )}\n {!editMode &&\n (\n setEditMode(true) }>\n {options && options.map((option) => ({option}))}\n \n )}\n {editMode &&\n (\n \n \n \n \n )}\n \n );\n};\n\nListCustomField.defaultProps = {\n initialValue: []\n};\n\nListCustomField.propTypes = {\n field: PropTypes.shape({\n field_display_name: PropTypes.string,\n field_type: PropTypes.oneOf([CUSTOM_ATTRIBUTE_TYPES.LIST])\n }).isRequired,\n vuln: PropTypes.shape({\n id: PropTypes.number.isRequired\n }).isRequired,\n onCancel: PropTypes.func.isRequired,\n onSave: PropTypes.func.isRequired,\n initialValue: PropTypes.arrayOf(PropTypes.string)\n};\n\nexport default ListCustomField;\n","import styled from 'styled-components';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const Wrapper = styled.div`\n ${({ isDisabled }) => isDisabled && 'cursor: not-allowed'};\n`;\nWrapper.displayName = 'Wrapper';\n","/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport Select from 'react-select';\nimport { Wrapper } from './styled';\n\nconst capitalize = (string) => (string ? string.charAt(0).toUpperCase() + string.slice(1) : string);\n\nclass Dropdown extends React.Component {\n constructor (props) {\n super(props);\n this.onChangeHandler = this.onChangeHandler.bind(this);\n\n this.state = {\n value: undefined\n };\n }\n\n componentDidMount () {\n if (this.props.defaultValue !== null && this.props.defaultValue !== '') {\n const option = { label: capitalize(this.props.defaultValue), value: this.props.defaultValue };\n this.setState({ value: option });\n }\n }\n\n componentDidUpdate (prevProps) {\n if (prevProps.defaultValue !== this.props.defaultValue) {\n if (this.props.defaultValue !== null && this.props.defaultValue !== '') {\n const option = { label: capitalize(this.props.defaultValue), value: this.props.defaultValue };\n this.setState({ value: option });\n } else {\n this.setState({ value: this.props.defaultValue });\n }\n }\n }\n\n onChangeHandler (strValue) {\n const option = { label: strValue, value: strValue };\n this.setState({ value: option });\n this.props.updateValue(strValue);\n }\n\n render () {\n const { value } = this.state;\n const {\n customStyle,\n options,\n disabled,\n placeholder,\n className,\n menuPortalTarget\n } = this.props;\n\n return (\n \n { this.onChangeHandler(e.value); } }\n options={ options }\n placeholder={ placeholder }\n className={ className }\n menuPortalTarget={ menuPortalTarget }\n />\n \n );\n }\n}\n\nDropdown.propTypes = {\n customStyle: PropTypes.object.isRequired,\n options: PropTypes.arrayOf(PropTypes.shape({\n label: PropTypes.any,\n value: PropTypes.string\n })).isRequired,\n disabled: PropTypes.bool,\n updateValue: PropTypes.func.isRequired,\n defaultValue: PropTypes.string,\n placeholder: PropTypes.string,\n className: PropTypes.string,\n menuPortalTarget: PropTypes.node\n};\n\nDropdown.defaultProps = {\n disabled: false,\n defaultValue: null,\n placeholder: '',\n className: '',\n menuPortalTarget: undefined\n};\n\nexport default withRouter(Dropdown);\n","import colors from 'Styles/colors';\nimport './variables.scss';\n\nfunction getSeverityColor (value) {\n switch (value) {\n case 'critical':\n return colors.warmPurple;\n case 'high':\n return colors.redPink;\n case 'medium':\n return colors.tangerine;\n case 'med':\n return colors.tangerine;\n case 'low':\n return colors.apple;\n case 'informational':\n return colors.grey2;\n case 'info':\n return colors.grey2;\n case 'unclassified':\n return colors.grey4;\n default:\n return colors.grey4;\n }\n}\n\nexport const severitySelect = {\n control: (provided, state) => ({\n height: '34px',\n borderRadius: '2px',\n boxShadow: '2px 2px 5px 0 rgb(0 0 0 / 6%), inset 0 -2px 0 0 #696969',\n border: `solid 1px ${getSeverityColor(state.getValue()[0].value)}`,\n backgroundColor: state.getValue()[0] ? getSeverityColor(state.getValue()[0].value) : '#fff',\n color: 'white',\n left: '16px',\n width: '148px'\n }),\n\n valueContainer: () => ({\n padding: '7px 8px 2px 8px'\n }),\n\n indicatorSeparator: () => ({\n display: 'none'\n }),\n\n dropdownIndicator: () => ({\n position: 'absolute',\n top: '3px',\n right: '11px'\n }),\n\n option: (provided, state) => ({\n ...provided,\n fontSize: '14px',\n textAlign: 'left',\n color: '#1c2243',\n cursor: state.isSelected ? 'default' : 'pointer',\n paddingLeft: '22px',\n height: '36px',\n textTransform: 'capitalize',\n fontWeight: state.selectProps.value.value === state.value ? 500 : 300,\n backgroundColor: state.isFocused /* || state.isSelected */ ? '#f1f4f7' : 'white'\n }),\n\n menu: () => ({\n position: 'absolute',\n marginTop: '6px',\n zIndex: 5000,\n width: '100%',\n border: 'none',\n borderRadius: '3px',\n backgroundColor: '#fff',\n boxShadow: '2px 2px 30px 0 #d5dee6',\n minWidth: '190px'\n }),\n\n menuList: () => ({\n maxHeight: '250px',\n overflowX: 'auto',\n borderRadius: '3px',\n paddingTop: '17px',\n paddingBottom: '13px'\n }),\n\n singleValue: (provided, state) => {\n const opacity = state.isDisabled ? 0.5 : 1;\n const transition = 'opacity 300ms';\n return {\n ...provided, opacity, transition, color: 'white', width: 'fit-content', height: '21px', fontSize: '13.5px', fontWeight: 500, left: '12px', textTransform: 'capitalize'\n };\n }\n};\n\nexport const basicSelect = {\n control: () => ({\n height: '34px',\n border: 'solid 1px #dbdbdb',\n boxShadow: '2px 2px 5px 0 rgba(0, 0, 0, 0.06), inset 0 -2px 0 0 #696969',\n backgroundColor: '#ffffff',\n opacity: '0.6',\n left: '16px',\n fontSize: '12.5px',\n fontWeight: '500',\n color: '#082731',\n width: '162px'\n }),\n\n indicatorSeparator: () => ({\n display: 'none'\n }),\n\n dropdownIndicator: () => ({\n position: 'absolute',\n top: '7px',\n right: '6px'\n }),\n\n option: (provided, state) => ({\n ...provided,\n // backgroundColor: state.isSelected ? '#f1f4f7' : 'white',\n fontSize: '14px',\n textAlign: 'left',\n color: '#1c2243',\n cursor: state.isSelected ? 'default' : 'pointer',\n paddingLeft: '22px',\n height: '36px',\n fontWeight: state.selectProps.value.value === state.value ? 900 : 400,\n backgroundColor: state.isFocused /* || state.isSelected */ ? '#f1f4f7' : 'white'\n }),\n\n menu: () => ({\n position: 'absolute',\n zIndex: 5000,\n border: 'none',\n borderRadius: '3px',\n backgroundColor: '#fff',\n boxShadow: '2px 2px 30px 0 #d5dee6',\n minWidth: '150px',\n width: '100%'\n }),\n\n valueContainer: () => ({\n top: '4px'\n }),\n\n menuList: () => ({\n maxHeight: '250px',\n overflowX: 'auto',\n borderRadius: '3px',\n paddingTop: '17px',\n paddingBottom: '13px'\n }),\n\n singleValue: (provided, state) => {\n const opacity = state.isDisabled ? 0.5 : 1;\n const transition = 'opacity 300ms';\n return {\n ...provided, opacity, transition, color: '#082731', width: 'fit-content', fontSize: '13.5px', fontWeight: 500, left: '16px'\n };\n }\n};\n\n// Modal Dropdown styles\nexport const severityDropdownStyle = {\n control: (provided, state) => ({\n height: '35px',\n width: '140px',\n borderRadius: '2px',\n boxShadow: '2px 2px 5px 0 rgba(0, 0, 0, 0.06), inset 0 -2px 0 0 #696969',\n backgroundColor: state.getValue()[0] ? getSeverityColor(state.getValue()[0].value) : '#fff',\n border: 'solid 1px #fafbfc',\n color: 'white',\n paddingLeft: '10px',\n fontWeight: '700'\n }),\n\n indicatorSeparator: () => ({\n display: 'none'\n }),\n\n placeholder: () => ({\n fontSize: '13px',\n color: '#1c2243',\n position: 'relative',\n fontWeight: 400\n }),\n\n dropdownIndicator: (provided, state) => ({\n ...provided,\n position: 'absolute',\n top: '0px',\n right: '4px',\n color: state.hasValue ? 'white' : '#515a65',\n width: '30px'\n }),\n\n option: (provided, state) => ({\n ...provided,\n backgroundColor: 'white',\n fontSize: '14px',\n textAlign: 'left',\n color: '#1c2243',\n cursor: state.isSelected ? 'default' : 'pointer',\n paddingLeft: '22px',\n height: '36px',\n textTransform: 'capitalize',\n fontWeight: state.isSelected ? 600 : 300\n }),\n\n valueContainer: () => ({\n height: '33px',\n display: 'flex',\n alignItems: 'center'\n }),\n\n menu: () => ({\n position: 'absolute',\n marginTop: '6px',\n zIndex: 5000,\n width: '100%',\n border: 'none',\n borderRadius: '3px',\n backgroundColor: '#fff',\n boxShadow: '2px 2px 30px 0 #d5dee6',\n minWidth: '190px'\n }),\n\n menuList: () => ({\n maxHeight: '250px',\n overflowX: 'auto',\n borderRadius: '3px',\n paddingTop: '17px',\n paddingBottom: '13px'\n }),\n\n singleValue: (provided, state) => {\n const opacity = state.isDisabled ? 0.5 : 1;\n const transition = 'opacity 300ms';\n return {\n ...provided, opacity, transition, color: 'white', width: 'fit-content', height: '19px', fontSize: '14px', fontWeight: 400, top: '8px', position: 'relative', maxWidth: 'calc(100% - 24px)'\n };\n }\n};\n\nexport const eorDropdownStyle = {\n control: () => ({\n height: '35px',\n width: '196px',\n borderRadius: '2px',\n boxShadow: '2px 2px 5px 0 rgba(0, 0, 0, 0.06), inset 0 -2px 0 0 #696969',\n borderColor: '#d6d6d6',\n color: 'white',\n paddingLeft: '10px',\n fontWeight: '700',\n borderWidth: '0px',\n borderStyle: 'solid'\n }),\n\n indicatorSeparator: () => ({\n display: 'none'\n }),\n\n placeholder: () => ({\n fontSize: '13px',\n color: '#1c2243',\n position: 'relative',\n fontWeight: 400\n }),\n\n dropdownIndicator: (provided) => ({\n ...provided,\n position: 'absolute',\n top: '0px',\n right: '4px',\n color: '#515a65',\n width: '30px'\n }),\n\n valueContainer: () => ({\n height: '33px',\n display: 'flex',\n alignItems: 'center'\n }),\n\n option: (provided, state) => ({\n ...provided,\n backgroundColor: 'white',\n fontSize: '14px',\n textAlign: 'left',\n color: '#1c2243',\n cursor: state.isSelected ? 'default' : 'pointer',\n paddingLeft: '22px',\n height: '36px',\n textTransform: 'capitalize',\n fontWeight: state.isSelected ? 600 : 300\n }),\n\n menu: () => ({\n position: 'absolute',\n marginTop: '6px',\n zIndex: 5000,\n width: '100%',\n border: 'none',\n borderRadius: '3px',\n backgroundColor: '#fff',\n boxShadow: '2px 2px 30px 0 #d5dee6',\n minWidth: '190px'\n }),\n\n menuList: () => ({\n maxHeight: '250px',\n overflowX: 'auto',\n borderRadius: '3px',\n paddingTop: '17px',\n paddingBottom: '13px'\n }),\n\n singleValue: (provided, state) => {\n const opacity = state.isDisabled ? 0.5 : 1;\n const transition = 'opacity 300ms';\n return {\n ...provided, opacity, transition, color: '#1c2243', width: 'fit-content', height: '21px', fontSize: '14px', fontWeight: 400, top: '7px', position: 'relative', maxWidth: 'calc(100% - 24px)'\n };\n }\n};\n\nexport const groupSelect = {\n control: () => ({\n width: '175px',\n height: '34px',\n opacity: 0.6,\n borderRadius: '2px',\n boxShadow: '2px 2px 5px 0 rgba(0, 0, 0, 0.06)',\n border: 'solid 1px #dbdbdb',\n backgroundColor: '#ffffff',\n cursor: 'pointer'\n }),\n\n indicatorSeparator: () => ({\n display: 'none'\n }),\n\n dropdownIndicator: () => ({\n position: 'absolute',\n top: '4px',\n right: '20px',\n width: '6px',\n color: '#8da6be'\n }),\n\n option: (provided, state) => ({\n ...provided,\n backgroundColor: state.isFocused || state.isSelected ? '#f1f4f7' : 'white',\n fontSize: '14px',\n textAlign: 'left',\n color: '#1c2243',\n cursor: state.isSelected ? 'default' : 'pointer',\n paddingLeft: '22px',\n height: '36px',\n fontWeight: 300\n }),\n\n menu: () => ({\n position: 'absolute',\n zIndex: 5000,\n border: 'none',\n borderRadius: '3px',\n backgroundColor: '#fff',\n boxShadow: '2px 2px 30px 0 #d5dee6',\n minWidth: '150px',\n width: '100%'\n }),\n\n valueContainer: () => ({\n width: '96px',\n height: '26px',\n fontSize: '12px',\n fontWeight: 300,\n letterSpacing: 'normal',\n textAlign: 'center',\n color: '#1c2243',\n marginLeft: '13px'\n }),\n\n menuList: () => ({\n maxHeight: '250px',\n overflowX: 'auto',\n borderRadius: '3px',\n paddingTop: '17px',\n paddingBottom: '13px'\n }),\n\n singleValue: (provided, state) => {\n const opacity = state.isDisabled ? 0.5 : 1;\n const transition = 'opacity 300ms';\n return {\n ...provided, opacity, transition, color: '#1c2243', width: 'fit-content', fontSize: '12px', fontWeight: 300, left: '16px'\n };\n }\n};\n\nexport const statusSelect = {\n control: () => ({\n height: '34px',\n border: 'solid 1px #dbdbdb',\n boxShadow: '2px 2px 5px 0 rgba(0, 0, 0, 0.06), inset 0 -2px 0 0 #696969',\n backgroundColor: '#ffffff',\n opacity: '0.6',\n left: '16px',\n fontSize: '12.5px',\n fontWeight: 500,\n color: '#082731',\n width: '149px'\n }),\n\n indicatorSeparator: () => ({\n display: 'none'\n }),\n\n dropdownIndicator: (provided, state) => {\n const children = state.selectProps.value.label;\n const color = () => {\n if (children === 'Re-opened') return '#e26464';\n if (children === 'Risk-accepted') return colors.apple;\n if (children === 'Open') return colors.warmPurple;\n return '#90a9c0';\n };\n\n return {\n position: 'absolute',\n top: '7px',\n right: '6px',\n color: color()\n };\n },\n\n option: (provided, state) => {\n const { children } = state;\n const color = () => {\n if (children === 'Re-Opened') return '#e26464';\n if (children === 'Risk-Accepted') return colors.apple;\n if (children === 'Open') return colors.warmPurple;\n return '#90a9c0';\n };\n\n return {\n ...provided,\n fontSize: '14px',\n textAlign: 'left',\n color: color(),\n cursor: state.isSelected ? 'default' : 'pointer',\n paddingLeft: '22px',\n height: '36px',\n fontWeight: state.selectProps.value.value === state.value ? 900 : 400,\n backgroundColor: state.isFocused /* || state.isSelected */ ? '#f1f4f7' : 'white'\n };\n },\n\n menu: () => ({\n position: 'absolute',\n zIndex: 5000,\n border: 'none',\n borderRadius: '3px',\n backgroundColor: '#fff',\n boxShadow: '2px 2px 30px 0 #d5dee6',\n minWidth: '150px',\n width: '100%'\n }),\n\n valueContainer: () => ({\n top: '4px'\n }),\n\n menuList: () => ({\n maxHeight: '250px',\n overflowX: 'auto',\n borderRadius: '3px',\n paddingTop: '17px',\n paddingBottom: '13px'\n }),\n\n singleValue: (provided, state) => {\n const { children } = state;\n const opacity = state.isDisabled ? 0.5 : 1;\n const transition = 'opacity 300ms';\n const color = () => {\n if (children === 'Re-opened') return '#e26464';\n if (children === 'Risk-accepted') return colors.apple;\n if (children === 'Open') return colors.warmPurple;\n return '#90a9c0';\n };\n return {\n ...provided, opacity, transition, color: color(), width: 'fit-content', fontSize: '13.5px', fontWeight: 600, left: '16px'\n };\n }\n};\n\nexport const standardDropdownStyle = {\n control: () => ({\n height: '35px',\n width: '227px',\n borderRadius: '1px',\n boxShadow: '2px 2px 5px 0 rgba(0, 0, 0, 0.06), inset 0 -1px 0 0 #afafaf',\n backgroundColor: '#ffffff',\n border: 'solid 1px #fafbfc',\n borderBottomWidth: '0px',\n borderRightWidth: '0px',\n color: 'white',\n paddingLeft: '10px',\n fontWeight: '700',\n textOverflow: 'ellipsis'\n }),\n indicatorSeparator: () => ({\n display: 'none'\n }),\n placeholder: () => ({\n fontSize: '13px',\n color: '#1c2243',\n position: 'relative',\n fontWeight: 400\n }),\n dropdownIndicator: (provided) => ({\n ...provided,\n position: 'absolute',\n top: '0px',\n right: '4px',\n color: '#505965',\n width: '30px'\n }),\n option: (provided, state) => ({\n ...provided,\n backgroundColor: 'white',\n fontSize: '14px',\n textAlign: 'left',\n color: '#1c2243',\n cursor: state.isSelected ? 'default' : 'pointer',\n paddingLeft: '22px',\n paddingRight: '22px',\n height: '36px',\n textTransform: 'capitalize',\n textOverflow: 'ellipsis',\n fontWeight: state.isSelected ? 600 : 300,\n whiteSpace: 'nowrap',\n overflow: 'hidden'\n }),\n valueContainer: () => ({\n height: '33px',\n display: 'flex',\n alignItems: 'center'\n }),\n menu: () => ({\n position: 'absolute',\n marginTop: '6px',\n zIndex: 5000,\n width: '100%',\n border: 'none',\n borderRadius: '3px',\n backgroundColor: '#fff',\n boxShadow: '2px 2px 30px 0 #d5dee6',\n minWidth: '190px'\n }),\n menuList: () => ({\n maxHeight: '250px',\n overflowX: 'auto',\n borderRadius: '3px',\n paddingTop: '17px',\n paddingBottom: '13px'\n }),\n singleValue: (provided, state) => {\n const opacity = state.isDisabled ? 0.5 : 1;\n const transition = 'opacity 300ms';\n return {\n ...provided, opacity, transition, color: '#1c2243', width: 'fit-content', height: '19px', fontSize: '14px', fontWeight: 400, top: '8px', position: 'relative', maxWidth: 'calc(100% - 24px)'\n };\n }\n};\n","import styled from 'styled-components';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const Wrapper = styled.div`\n display: inline-flex;\n`;\nWrapper.displayName = 'Wrapper';\n","/* eslint-disable no-useless-constructor */\nimport React from 'react';\nimport capitalize from 'lodash/capitalize';\nimport PropTypes from 'prop-types';\nimport Dropdown from 'Common/Components/Dropdown';\nimport { standardDropdownStyle } from 'Common/styles/style';\nimport { Wrapper } from './styled';\n\nconst changeStyle = (newWidth) => {\n const newStyle = { ...standardDropdownStyle };\n const newControl = { ...newStyle.control(), width: newWidth };\n newStyle.control = () => newControl;\n return newStyle;\n};\n\nconst Item = ({ title, normal }) => (\n
\n {normal ? title : capitalize(title)}\n
\n);\n\nItem.propTypes = {\n title: PropTypes.string.isRequired\n};\n\nexport default class StandardDropdown extends React.Component {\n constructor (props) {\n super(props);\n this.onChange = this.onChange.bind(this);\n }\n\n onChange (newValue) {\n const {\n field, updateValue, selectObject, options\n } = this.props;\n if (selectObject) {\n const selected = options.find((o) => o.name === newValue);\n updateValue(field, selected);\n } else {\n updateValue(field, newValue);\n }\n }\n\n render () {\n const {\n options, width, defaultValue, placeholder, disabled, menuPortalTarget, normal\n } = this.props;\n const style = width ? changeStyle(width) : standardDropdownStyle;\n const dropdownOptions = options.map((element) => ({ label: , value: element.name }));\n return (\n \n \n \n );\n }\n}\n\nStandardDropdown.propTypes = {\n options: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string,\n desc: PropTypes.string\n })).isRequired,\n width: PropTypes.string,\n field: PropTypes.string.isRequired,\n updateValue: PropTypes.func.isRequired,\n selectObject: PropTypes.bool,\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n menuPortalTarget: PropTypes.node,\n normal: PropTypes.bool\n};\n\nStandardDropdown.defaultProps = {\n width: '',\n selectObject: false,\n placeholder: 'Select',\n disabled: false,\n menuPortalTarget: undefined,\n normal: false\n};\n","import styled from 'styled-components';\nimport { customFieldContent } from 'Styles/styles';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nWrapper.displayName = 'Wrapper';\n\nexport const Buttons = styled.div`\n display: flex;\n justify-content: flex-end;\n margin-top: 34px;\n > :nth-child(1){\n margin-right: 8px;\n }\n`;\n\nButtons.displayName = 'Buttons';\n\nexport const Content = styled.span`\n ${customFieldContent}\n`;\n\nContent.displayName = 'Content';\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { CUSTOM_ATTRIBUTE_TYPES } from 'Screens/Manage/components/CustomAttributesModal/constants';\nimport StandardDropdown from 'Common/Components/StandarDropdown/index';\nimport BlueButton from 'Common/Components/BlueButton';\nimport OutlinedButton from 'Common/Components/OutlinedButton';\n\nimport { Wrapper, Buttons, Content } from './styled';\n\nconst ChoiceCustomField = ({\n field, onCancel, onSave, vuln, initialValue\n}) => {\n const [options, setOptionsList] = useState([{ desc: '', name: '' }]);\n const [selectedOption, setSelectedOption] = useState('');\n const [editMode, setEditMode] = useState(false);\n\n useEffect(() => {\n // eslint-disable-next-line no-useless-escape\n const list = field && field.field_metadata ? field.field_metadata.replace(/[\\[\\]']+/g, '').replaceAll('\"', '').split(',') : [];\n const formattedList = list.map((option) => ({ desc: option, name: option }));\n formattedList.unshift({ name: '(Empty)', desc: '(Empty)' });\n setOptionsList(formattedList);\n }, [field]);\n\n useEffect(() => {\n if (selectedOption !== initialValue) {\n setSelectedOption(initialValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [vuln]);\n\n const handleSave = () => {\n onSave(vuln, field.field_name, selectedOption);\n setEditMode(false);\n };\n\n const handleCancel = () => {\n setEditMode(false);\n if (initialValue || initialValue.length === 0) {\n setSelectedOption(initialValue);\n } else {\n onCancel();\n }\n };\n\n const onSelectType = (field, option) => {\n setSelectedOption(option);\n setEditMode(true);\n };\n\n return (\n \n {(editMode || !initialValue) &&\n (\n \n )}\n {!editMode && initialValue &&\n setEditMode(true) }>{initialValue}}\n {editMode && selectedOption &&\n (\n \n \n \n \n )}\n \n );\n};\n\nChoiceCustomField.defaultProps = {\n initialValue: ''\n};\n\nChoiceCustomField.propTypes = {\n field: PropTypes.shape({\n field_display_name: PropTypes.string,\n field_type: PropTypes.oneOf([CUSTOM_ATTRIBUTE_TYPES.CHOICE]),\n field_metadata: PropTypes.string.isRequired\n }).isRequired,\n vuln: PropTypes.shape({\n _id: PropTypes.number.isRequired\n }).isRequired,\n onCancel: PropTypes.func.isRequired,\n onSave: PropTypes.func.isRequired,\n initialValue: PropTypes.string\n};\n\nexport default ChoiceCustomField;\n","import { CUSTOM_ATTRIBUTE_TYPES } from 'Screens/Manage/components/CustomAttributesModal/constants';\nimport StringCustomField from 'Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/components/StringCustomField/index';\nimport MdCustomField from 'Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/components/MdCustomField/index';\nimport IntegerCustomField from 'Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/components/IntegerCustomField/index';\nimport ListCustomField from 'Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/components/ListCustomField/index';\nimport ChoiceCustomField from 'Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/components/ChoiceCustomField/index';\n\nconst TYPE_TO_CONTENT = {\n [CUSTOM_ATTRIBUTE_TYPES.STRING]: StringCustomField,\n [CUSTOM_ATTRIBUTE_TYPES.INTEGER]: IntegerCustomField,\n [CUSTOM_ATTRIBUTE_TYPES.LIST]: ListCustomField,\n [CUSTOM_ATTRIBUTE_TYPES.MARKDOWN]: MdCustomField,\n [CUSTOM_ATTRIBUTE_TYPES.CHOICE]: ChoiceCustomField\n};\n\nexport default TYPE_TO_CONTENT;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { CUSTOM_ATTRIBUTE_TYPES as types } from 'Screens/Manage/components/CustomAttributesModal/constants';\nimport TYPE_TO_CONTENT from 'Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/contents';\n\nconst CustomFieldContent = ({\n field, onCancel, vuln, initialValue, onSaveCallback, onSaveCustomAttribute, entity\n}) => {\n const onSave = (vuln, fieldName, fieldValue) => {\n if (entity === 'vuln') {\n onSaveCustomAttribute(vuln, fieldName, fieldValue);\n } else {\n onSaveCustomAttribute(fieldName, fieldValue);\n }\n\n if (onSaveCallback) onSaveCallback();\n };\n const Content = TYPE_TO_CONTENT[field.field_type];\n return (\n \n );\n};\n\nCustomFieldContent.propTypes = {\n field: PropTypes.shape({\n field_type: PropTypes.oneOf([types.STRING, types.INTEGER,\n types.LIST, types.MARKDOWN, types.CHOICE]).isRequired\n }).isRequired,\n onCancel: PropTypes.func.isRequired,\n onSaveCallback: PropTypes.func.isRequired,\n vuln: PropTypes.shape({\n _id: PropTypes.number.isRequired\n }).isRequired,\n initialValue: PropTypes.oneOfType([\n PropTypes.string, PropTypes.number, PropTypes.arrayOf(PropTypes.string)\n ]),\n onSaveCustomAttribute: PropTypes.func,\n entity: PropTypes.string\n};\n\nCustomFieldContent.defaultProps = {\n initialValue: '',\n onSaveCustomAttribute: null,\n entity: ''\n};\nexport default CustomFieldContent;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport CustomFieldContainer from 'Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/components/CustomFieldContainer/index';\nimport CustomFieldContent from 'Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/components/CustomFieldContent/index';\nimport { CUSTOM_ATTRIBUTE_TYPES as types } from 'Screens/Manage/components/CustomAttributesModal/constants';\nimport toString from 'lodash/toString';\nimport isInteger from 'lodash/isInteger';\nimport trim from 'lodash/trim';\n\nconst CustomField = ({ field, initialValue, dataSelected, onSave, entity }) => {\n const [showContent, setShowContent] = useState(false);\n const onShowContent = () => setShowContent(true);\n const onHideContent = () => setShowContent(false);\n\n const onSaveCallback = () => {\n onShowContent(!!initialValue || isInteger(initialValue));\n };\n\n useEffect(() => {\n setShowContent(!!(trim(toString(initialValue))) || isInteger(initialValue));\n }, [field, initialValue]);\n\n return (\n <>\n \n \n \n \n );\n};\n\nCustomField.propTypes = {\n field: PropTypes.shape({\n field_display_name: PropTypes.string,\n field_type: PropTypes.oneOf([types.STRING, types.INTEGER, types.LIST,\n types.MARKDOWN, types.CHOICE]).isRequired,\n field_metadata: PropTypes.string\n }).isRequired,\n initialValue: PropTypes.string,\n dataSelected: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.object\n ]),\n onSave: PropTypes.func,\n entity: PropTypes.string\n};\n\nCustomField.defaultProps = {\n initialValue: '',\n dataSelected: [],\n onSave: null,\n entity: ''\n};\n\nexport default CustomField;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n\n > :not(:last-child) {\n margin-bottom: 21px;\n }\n`;\n\nWrapper.displayName = 'Wrapper';\n\nexport const NoFieldsText = styled.span`\n font-size: 12.5px;\n line-height: 1.76;\n color: ${colors.grey19};\n user-select: none;\n`;\n\nNoFieldsText.displayName = 'NoFieldsText';\n","import * as p from 'store/Global/types';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const toggleExpandCollapse = (tab, fields) => {\n return async (dispatch) => {\n dispatch({ type: p.EXPAND_COLLAPSE, tab, fields });\n };\n};\n","import styled from 'styled-components';\nimport { Default } from 'Common/Components/Button/styled';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n display: flex;\n margin-bottom: 10px;\n justify-content: end;\n & > *:not(:last-child) {\n margin-right: 13px;\n }\n`;\n\nWrapper.displayName = 'Wrapper';\n\nexport const CustomButton = styled(Default)`\n min-width: 100px;\n color: ${colors.darkBlueGrey};\n`;\n\nCustomButton.displayName = 'CustomButton';\n","import React from 'react';\nimport { useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectCustomAttributesList } from 'store/CustomAttributes/selectors';\nimport { toggleExpandCollapse } from 'store/Global/actions';\nimport { Wrapper, CustomButton } from './styled';\n\nconst ToggleButtons = ({ id }) => {\n const intl = useIntl();\n const dispatch = useDispatch();\n const customAttributes = useSelector(selectCustomAttributesList);\n\n const fieldGroups = {\n general: [\n 'tags', 'description', 'resolution', 'references', 'impact', 'policies', 'externalID', 'owner', 'risk', 'cve'\n ],\n technical: [\n 'data', 'website', 'request', 'response', 'method', 'path', 'queryString', 'statusCode', 'parameterName', 'parameter'\n ],\n customAttributes\n };\n\n const toggleAll = (value) => {\n const fields = fieldGroups[id];\n if (fields) {\n const fieldValues = Object.assign({}, ...fields.map((field) => ({\n [field]: {\n expanded: value\n }\n })));\n dispatch(toggleExpandCollapse(id, fieldValues));\n }\n };\n\n const onExpand = () => {\n toggleAll(true);\n };\n\n const onCollapse = () => {\n toggleAll(false);\n };\n\n return id && (\n \n {intl.formatMessage({ id: 'app.expand' })}\n {intl.formatMessage({ id: 'app.collapse' })}\n \n );\n};\n\nexport default ToggleButtons;\n","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgWfArrowCollapsed = function SvgWfArrowCollapsed(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"9px\",\n height: \"15px\",\n viewBox: \"0 0 9 15\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Page-1\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.376165801,2.29977682 L4.94730303,7.0598822 L0.376165801,11.8185761 C-0.1253886,12.3450459 -0.1253886,13.1968542 0.376165801,13.723324 C0.883098802,14.2490881 1.70199057,14.2490881 2.20892357,13.723324 L7.69106109,8.01119756 C8.19261549,7.48472778 8.19261549,6.63221373 7.69106109,6.1071554 L2.20892357,0.394323215 C1.70199057,-0.132146558 0.883098802,-0.130735111 0.376165801,0.394323215 C-0.1253886,0.921498711 -0.1253886,1.77330704 0.376165801,2.29977682 Z\",\n id: \"Path\",\n fill: \"#BEC8D2\",\n fillRule: \"nonzero\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgWfArrowCollapsed, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/wf_arrow_collapsed.51829f9b.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgWfArrowExpand = function SvgWfArrowExpand(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"15px\",\n height: \"9px\",\n viewBox: \"0 0 15 9\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Page-1\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.3171742,5.57042158 C11.818645,5.04392548 11.818645,4.19136881 11.3171742,3.66628424 L5.83527808,-2.04683354 C5.32842956,-2.57332964 4.50900205,-2.57191812 4.00215353,-2.04683354 C3.50068272,-1.52033745 3.50068272,-0.668486536 4.00215353,-0.141990444 L8.57320118,4.61835291 L4.00215353,9.37728474 C3.50068272,9.90378083 3.50068272,10.7556317 4.00215353,11.2821278 C4.50900205,11.8079182 5.32842956,11.8079182 5.83527808,11.2821278 L11.3171742,5.57042158 Z\",\n id: \"Path\",\n fill: \"#BEC8D2\",\n fillRule: \"nonzero\",\n transform: \"translate(7.659664, 4.617647) rotate(-270.000000) translate(-7.659664, -4.617647) \"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgWfArrowExpand, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/wf_arrow_expand.06e6e9bd.svg\";\nexport { ForwardRef as ReactComponent };","import styled, { css } from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as ArrowCollapsed } from 'Images/wf_arrow_collapsed.svg';\nimport { ReactComponent as ArrowExpanded } from 'Images/wf_arrow_expand.svg';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n background-color: #fff;\n position: relative;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n font-size: 16px;\n font-weight: 600;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.73;\n letter-spacing: normal;\n color: #1c2243;\n user-select: none;\n text-align: left;\n`;\nTitle.displayName = 'Title';\n\nexport const Header = styled.div`\n display: flex;\n flex: 0 0 44px;\n padding: 9px 20px;\n align-items: center;\n cursor: pointer;\n`;\nHeader.displayName = 'Header';\n\nexport const Counter = styled.div`\n ${({ show }) => !show && 'display: none'};\n user-select: none;\n padding: 3px 12px 3px 12px;\n color: ${colors.darkBlueGrey};\n font-size: 10px;\n font-weight: 900;\n border-radius: 9px;\n box-shadow: inset 0 0 12px 0 rgba(0, 0, 0, 0.13);\n background-color: ${colors.iceBlue};\n margin-left: 14px;\n`;\nCounter.displayName = 'Counter';\n\nconst IconWrapper = css`\n position: absolute;\n top: 17px;\n right: 15px;\n`;\n\nexport const ExpandedIcon = styled(ArrowExpanded)`\n ${IconWrapper};\n margin: auto 0px auto auto;\n width: 12px;\n color: #63758d;\n path {\n fill: ${colors.greyBlue};\n }\n`;\nExpandedIcon.displayName = 'ExpandedIcon';\n\nexport const CollapsedIcon = styled(ArrowCollapsed)`\n ${IconWrapper};\n margin: auto 0px auto auto;\n height: 12px;\n path {\n fill: ${colors.greyBlue};\n }\n`;\nCollapsedIcon.displayName = 'CollapsedIcon';\n\nexport const ChildWrapper = styled.div`\n ${({ $isExpanded }) => (!$isExpanded && 'display: none')};\n overflow: visible;\n`;\nChildWrapper.displayName = 'ChildWrapper';\n","import React, { useEffect, useState } from 'react';\nimport { PropTypes } from 'prop-types';\nimport {\n Wrapper, Title, ChildWrapper,\n Header, ExpandedIcon, CollapsedIcon, Counter\n} from './styled';\nimport { useDispatch } from 'react-redux';\nimport { toggleExpandCollapse } from 'store/Global/actions';\n\nconst ExpandableWrapper = ({\n children, title, count, defaultValue, tab, id\n}) => {\n const [isExpanded, setIsExpanded] = useState(defaultValue);\n const dispatch = useDispatch();\n\n useEffect(() => {\n setIsExpanded(defaultValue);\n }, [defaultValue]);\n\n const handleClick = () => {\n setIsExpanded(!isExpanded);\n dispatch(toggleExpandCollapse(tab, {\n [id]: {\n expanded: !isExpanded\n }\n }));\n };\n\n const showCount = count >= 0;\n\n return (\n \n
\n \n <Counter show={ showCount } children={ count } />\n { isExpanded ? <ExpandedIcon /> : <CollapsedIcon /> }\n </Header>\n <ChildWrapper $isExpanded={ isExpanded } children={ children } />\n </Wrapper>\n );\n};\n\nExpandableWrapper.propTypes = {\n children: PropTypes.node.isRequired,\n title: PropTypes.string,\n count: PropTypes.number,\n defaultValue: PropTypes.bool,\n id: PropTypes.string.isRequired,\n tab: PropTypes.string.isRequired\n};\n\nExpandableWrapper.defaultProps = {\n title: '',\n count: -1,\n defaultValue: false\n};\n\nexport default React.memo(ExpandableWrapper);\n","import get from 'lodash/get';\n\nconst getCustomFieldValueFromVuln = (data, customField, entity) => {\n const fieldName = get(customField, 'field_name', '');\n let value = '';\n if (entity === 'vuln') {\n value = get(data, `custom_fields.${fieldName}`, '');\n } else {\n value = get(data, `customfields.${fieldName}`, '');\n }\n\n return value || '';\n};\n\nexport default getCustomFieldValueFromVuln;\n","import get from 'lodash/get';\n\nexport const selectTemplates = (state) => {\n let templates = get(state, 'manageEditCreate.templates.rows', []);\n templates = templates.map((template) => template.doc);\n return templates;\n};\n\nexport const selectManageEditCreate = (state) => {\n const manageEditCreate = get(state, 'manageEditCreate', {});\n return manageEditCreate;\n};\n\nexport const selectDataField = (state) => get(state, 'manageEditCreate.data', '');\nexport const selectNameField = (state) => get(state, 'manageEditCreate.name', '');\nexport const selectDescriptionField = (state) => get(state, 'manageEditCreate.description', '');\nexport const selectSeverityField = (state) => get(state, 'manageEditCreate.severity', '');\nexport const selectTargetsField = (state) => get(state, 'manageEditCreate.targets', []);\nexport const selectRequestField = (state) => get(state, 'manageEditCreate.request', '');\nexport const selectResponseField = (state) => get(state, 'manageEditCreate.response', '');\nexport const selectIsWebVuln = (state) => get(state, 'manageEditCreate.isWebVuln', false);\nexport const selectWebsiteField = (state) => get(state, 'manageEditCreate.website', '');\nexport const selectStatusCodeField = (state) => get(state, 'manageEditCreate.status_code', '');\nexport const selectParamNameField = (state) => get(state, 'manageEditCreate.paramName', '');\nexport const selectParamsField = (state) => get(state, 'manageEditCreate.params', '');\nexport const selectQueryField = (state) => get(state, 'manageEditCreate.query', '');\nexport const selectMethodField = (state) => get(state, 'manageEditCreate.method', '');\nexport const selectPathField = (state) => get(state, 'manageEditCreate.path', '');\n\nexport const selectReadonly = (state) => {\n const readonly = get(state, 'faraday.readonly', false);\n return readonly;\n};\n\nexport const selectPermissions = (state) => {\n const permissions = get(state, 'faraday.permissions.vulns', {});\n return permissions;\n};\n\nexport const selectServicesAndHosts = (state) => {\n let services = get(state, 'manageEditCreate.services', []);\n const hosts = get(state, 'manageEditCreate.hosts', []);\n\n const data = hosts.map((host) => host.value);\n services = services.map((service) => service.value);\n services.forEach((service) => {\n const host = data.find((item) => item.id === service.host_id);\n if (host) {\n const serv = { ...service, hostname: host.name, hostnameData: host.hostnames.length > 0 ? host.hostnames : '' };\n data.push(serv);\n }\n });\n\n return data;\n};\n\nexport const selectField = (state, field) => get(state, `manageEditCreate.customFields.${field.field_name}`, '');\n\nexport const selectFilesToUpload = (state) => get(state, 'manageEditCreate.filesToUpload', []);\nexport const selectUploadState = (state) => get(state, 'manageEditCreate.uploadState', '');\nexport const selectFileIndex = (state) => get(state, 'manageEditCreate.fileIndex', -1);\nexport const selectErrorFilesList = (state) => get(state, 'manageEditCreate.errorFilesList', []);\nexport const selectCurrentUploadState = (state) => get(state, 'manageEditCreate.currentUploadState', '');\nexport const selectCurrentUploadError = (state) => get(state, 'manageEditCreate.currentUploadError', '');\n\nexport const selectError = (state) => get(state, 'manageEditCreate.error', false);\nexport const selectErrorMessage = (state) => get(state, 'manageEditCreate.errorMessage', false);\n","const defaultFields = {\n selected: {\n order: 1, visible: true, maxWidth: 38, minWidth: 38, defaultMin: 38, locked: true\n },\n severity: {\n order: 2, visible: true, maxWidth: 55, minWidth: 55, defaultMin: 55, locked: true\n },\n confirmed: {\n order: 3, visible: true, maxWidth: 39, minWidth: 39, defaultMin: 39, locked: true\n },\n name: {\n order: 4, visible: true, maxWidth: 600, minWidth: 200, defaultMin: 400, locked: true\n },\n asset: {\n order: 5, visible: true, maxWidth: 150, minWidth: 120, defaultMin: 120\n },\n cvss: {\n order: 6, visible: false, maxWidth: 120, minWidth: 120, defaultMin: 120\n },\n cve: {\n order: 7, visible: false, maxWidth: 120, minWidth: 120, defaultMin: 120\n },\n cwe: {\n order: 8, visible: false, maxWidth: 120, minWidth: 120, defaultMin: 120\n },\n hostnames: {\n order: 9, visible: true, maxWidth: 120, minWidth: 120, defaultMin: 120\n },\n create_date: {\n order: 10, visible: true, maxWidth: 150, minWidth: 150, defaultMin: 150\n },\n service__name: {\n order: 11, visible: true, maxWidth: 150, minWidth: 120, defaultMin: 120\n },\n tool: {\n order: 12, visible: true, maxWidth: 120, minWidth: 120, defaultMin: 120\n },\n status: {\n order: 13, visible: true, maxWidth: 110, minWidth: 110, defaultMin: 110\n },\n description: {\n order: -1, visible: false, maxWidth: 500, minWidth: 300, defaultMin: 300\n },\n data: {\n order: -1, visible: false, maxWidth: 350, minWidth: 250, defaultMin: 250\n },\n id: {\n order: -1, visible: false, maxWidth: 70, minWidth: 70, defaultMin: 70\n },\n host__os: {\n order: -1, visible: false, maxWidth: 350, minWidth: 250, defaultMin: 250\n },\n resolution: {\n order: -1, visible: false, maxWidth: 350, minWidth: 250, defaultMin: 250\n },\n easeofresolution: {\n order: -1, visible: false, maxWidth: 170, minWidth: 170, defaultMin: 170\n },\n website: {\n order: -1, visible: false, maxWidth: 350, minWidth: 250, defaultMin: 250\n },\n path: {\n order: -1, visible: false, maxWidth: 350, minWidth: 250, defaultMin: 250\n },\n status_code: {\n order: -1, visible: false, maxWidth: 150, minWidth: 150, defaultMin: 150\n },\n request: {\n order: -1, visible: false, maxWidth: 350, minWidth: 250, defaultMin: 250\n },\n references: {\n order: -1, visible: false, maxWidth: 150, minWidth: 150, defaultMin: 150\n },\n evidence: {\n order: -1, visible: false, maxWidth: 100, minWidth: 100, defaultMin: 100\n },\n impact: {\n order: -1, visible: false, maxWidth: 120, minWidth: 120, defaultMin: 120\n },\n method: {\n order: -1, visible: false, maxWidth: 350, minWidth: 250, defaultMin: 250\n },\n params: {\n order: -1, visible: false, maxWidth: 350, minWidth: 250, defaultMin: 250\n },\n pname: {\n order: -1, visible: false, maxWidth: 350, minWidth: 250, defaultMin: 250\n },\n query: {\n order: -1, visible: false, maxWidth: 350, minWidth: 250, defaultMin: 250\n },\n response: {\n order: -1, visible: false, maxWidth: 350, minWidth: 250, defaultMin: 250\n },\n web: {\n order: -1, visible: false, maxWidth: 50, minWidth: 50, defaultMin: 50\n },\n policyviolations: {\n order: -1, visible: false, maxWidth: 250, minWidth: 150, defaultMin: 150\n },\n external_id: {\n order: -1, visible: false, maxWidth: 120, minWidth: 120, defaultMin: 120\n },\n owasp: {\n order: -1, visible: false, maxWidth: 120, minWidth: 120, defaultMin: 120\n },\n risk: {\n order: -1, visible: false, maxWidth: 350, minWidth: 120, defaultMin: 120\n },\n update_date: {\n order: -1, visible: false, maxWidth: 150, minWidth: 150, defaultMin: 150\n }\n};\n\nexport default defaultFields;\n","import get from 'lodash/get';\nimport { selectParsedCustomAttributes } from 'store/CustomAttributes/selectors';\nimport defaultFields from 'store/Manage/fields';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const selectManageFields = (state) => {\n const fields = get(state, 'preferences.manage_table', defaultFields);\n\n Object.keys(defaultFields).forEach((field) => {\n if (!fields[field]) {\n fields[field] = defaultFields[field];\n }\n });\n\n const customFields = selectParsedCustomAttributes(state);\n\n return {\n ...customFields,\n ...fields\n };\n};\n","import cloneDeep from 'lodash/cloneDeep';\nimport filter from 'lodash/filter';\nimport get from 'lodash/get';\nimport size from 'lodash/size';\n\nimport defaultFields from 'store/Manage/fields';\nimport { selectPreferences } from 'store/Preferences/selectors';\nimport { updatePreferences } from 'store/Preferences/actions';\nimport { selectParsedCustomAttributes } from 'store/CustomAttributes/selectors';\nimport { selectManageFields } from './selectors';\n\nexport function setFieldVisibility (field, show) {\n return async (dispatch, getState) => {\n let newManageTable = cloneDeep(selectManageFields(getState()));\n const column = get(newManageTable, field, null);\n\n const sortingFunc = (a, b) => {\n const aOrder = get(newManageTable, `${a}.order`, 0);\n const bOrder = get(newManageTable, `${b}.order`, 0);\n return aOrder - bOrder;\n };\n\n const enrichmentFields = ['cvss', 'cve', 'cwe'];\n const isEnrichmentField = enrichmentFields.includes(field);\n\n const enrichmentFieldsOrder = { cvss: 7, cve: 8, cwe: 9 };\n\n if (column) {\n const visibleKeys = Object\n .keys(newManageTable)\n .filter((key) => newManageTable[key].visible)\n .sort(sortingFunc);\n\n let fieldOrder;\n\n if (show) {\n if (isEnrichmentField) {\n fieldOrder = enrichmentFieldsOrder[field];\n } else {\n fieldOrder = visibleKeys.length + 1;\n }\n } else {\n let count = 1;\n visibleKeys.forEach((key) => {\n newManageTable[key].order = count;\n count += 1;\n });\n fieldOrder = -1;\n }\n\n newManageTable = {\n ...newManageTable,\n [field]: {\n ...column,\n order: fieldOrder,\n visible: show\n }\n };\n\n dispatch(updatePreferences({ manage_table: newManageTable }));\n }\n };\n}\n\nexport function removeColumn (field) {\n return async (dispatch, getState) => {\n const manage_table = cloneDeep(selectManageFields(getState()));\n delete manage_table[field];\n dispatch(updatePreferences({ manage_table }));\n };\n}\n\nexport function renameColumn (newColumn) {\n return async (dispatch, getState) => {\n const manage_table = cloneDeep(selectManageFields(getState()));\n let newManageTable = { ...manage_table };\n newManageTable = { ...newManageTable, [newColumn.newFieldName]: manage_table[newColumn.actualFieldName] };\n delete newManageTable[newColumn.actualFieldName];\n dispatch(updatePreferences({ manage_table: newManageTable }));\n };\n}\n\nexport function setNewOrderColumns (columns) {\n return async (dispatch, getState) => {\n let manage_table = cloneDeep(selectManageFields(getState()));\n if (!manage_table) manage_table = { ...defaultFields };\n\n const fixedColumns = size(filter(manage_table, { locked: true }));\n\n columns.forEach((column) => {\n if (column) {\n if (!get(manage_table, `${column}.locked`, false)) {\n manage_table[column].order = columns.indexOf(column) + 1 + fixedColumns;\n }\n }\n });\n\n dispatch(updatePreferences({ manage_table }));\n };\n}\n\nexport function setFieldWidth (field, value, tableName) {\n return async (dispatch, getState) => {\n const state = getState();\n const currentPreferences = selectPreferences(state);\n const currentTable = get(currentPreferences, `${tableName}`, {});\n const preferences = cloneDeep(currentPreferences);\n const updatedTable = cloneDeep(currentTable);\n\n if (!preferences[tableName]) preferences[tableName] = {};\n updatedTable[field].maxWidth = value;\n updatedTable[field].minWidth = value;\n preferences[tableName] = updatedTable;\n dispatch(updatePreferences(preferences));\n };\n}\n\nexport function resetDefault () {\n return async (dispatch, getState) => {\n const fields = {\n ...defaultFields,\n ...selectParsedCustomAttributes(getState())\n };\n dispatch(updatePreferences({ manage_table: fields }));\n };\n}\n","import api from 'services/api';\nimport get from 'lodash/get';\nimport { updateVuln } from 'store/Manage/actions';\nimport { SEARCH_VULNS_FAIL } from 'store/Manage/types';\nimport { selectCustomAttributes } from 'store/CustomAttributes/selectors';\nimport { removeColumn, renameColumn } from 'store/Preferences/manage/actions';\nimport * as types from './types';\nimport * as errors from './errors';\n\nexport function getCustomAttributes () {\n return async (dispatch) => {\n try {\n const response = await api.customAttributes.getCustomAttributes();\n const orderedFields = response.sort((a, b) => a.field_order - b.field_order);\n return dispatch({ type: types.GET_CUSTOM_ATTRIBUTES, attributes: orderedFields });\n } catch (e) {\n dispatch({ type: SEARCH_VULNS_FAIL, data: errors.GET_CUSTOM_ATTRIBUTES_FAILED });\n return dispatch({ type: types.GET_CUSTOM_ATTRIBUTES, attributes: [] });\n }\n };\n}\n\nexport function addCustomAttribute (ca) {\n return async (dispatch) => {\n try {\n const createdCa = await api.customAttributes.addCustomAttribute(ca);\n return dispatch({ type: types.ADD_CUSTOM_ATTRIBUTE, ca: createdCa });\n } catch (e) {\n return dispatch({ type: SEARCH_VULNS_FAIL, data: errors.ADD_CUSTOM_ATTRIBUTES_FAILED });\n }\n };\n}\n\nexport function setCustomAttributeToEdit (ca) {\n return (dispatch) => {\n dispatch({ type: types.SET_CUSTOM_ATTRIBUTE_TO_EDIT, ca });\n };\n}\n\nexport function removeCustomAttribute (ca) {\n return async (dispatch) => {\n try {\n const idToDelete = get(ca, 'id', null);\n const columnToDelete = get(ca, 'field_display_name', null);\n if (idToDelete && columnToDelete) {\n await api.customAttributes.removeCustomAttribute(ca);\n dispatch({ type: types.DELETE_CUSTOM_ATTRIBUTE, idToDelete });\n dispatch(removeColumn(columnToDelete));\n }\n } catch (e) {\n dispatch({ type: SEARCH_VULNS_FAIL, data: errors.REMOVE_CUSTOM_ATTRIBUTE_FAILED });\n }\n };\n}\n\nexport function renameCustomAttributeColumn (caToEdit) {\n return async (dispatch, getState) => {\n const state = getState();\n const currentAttributes = selectCustomAttributes(state);\n const actualFieldName = get(currentAttributes.find((f) => f.id === caToEdit.id), 'field_display_name', '');\n const newFieldName = get(caToEdit, 'field_display_name', '');\n const newColumn = {\n actualFieldName,\n newFieldName\n };\n dispatch(renameColumn(newColumn));\n };\n}\n\nexport function editCustomAttribute (caToUpdate) {\n return async (dispatch, getState) => {\n const state = getState();\n const currentCa = selectCustomAttributes(state);\n\n try {\n const updatedCa = await api.customAttributes.updateCustomAttribute(caToUpdate);\n const newCaList = currentCa.map((ca) => {\n if (ca.id === updatedCa.id) return updatedCa;\n return ca;\n });\n dispatch(renameCustomAttributeColumn(caToUpdate));\n return dispatch({ type: types.EDIT_CUSTOM_ATTRIBUTE, newCaList });\n } catch (e) {\n return dispatch({ type: SEARCH_VULNS_FAIL, data: errors.EDIT_CUSTOM_ATTRIBUTES_FAILED });\n }\n };\n}\n\nexport function setVulnCustomAttribute (vuln, fieldName, fieldValue) {\n return (dispatch) => {\n const { custom_fields } = vuln;\n const value = fieldValue === '(Empty)' ? '' : fieldValue;\n const newCustomAttribute = { ...custom_fields, [fieldName]: value };\n dispatch(updateVuln(vuln, 'custom_fields', newCustomAttribute));\n };\n}\n\nfunction setCustomAttributes (attributes) {\n return async (dispatch) => {\n try {\n dispatch({ type: types.SET_CUSTOM_ATTRIBUTES, attributes });\n const promises = attributes.map((ca) => api.customAttributes.updateCustomAttribute(ca));\n return await Promise.all(promises);\n } catch (e) {\n return dispatch({ type: SEARCH_VULNS_FAIL, data: errors.EDIT_CUSTOM_ATTRIBUTES_FAILED });\n }\n };\n}\n\nexport function dragCustomAttribute (dragResult) {\n return (dispatch, getState) => {\n const state = getState();\n const customAttributes = selectCustomAttributes(state);\n\n const destination = get(dragResult, 'destination', null);\n const source = get(dragResult, 'source', null);\n const destDroppableId = get(destination, 'droppableId', null);\n const sourceDroppableId = get(source, 'droppableId', null);\n const sourceIndex = get(source, 'index', null);\n const destIndex = get(destination, 'index', null);\n\n if (!destination) return;\n if (destDroppableId === sourceDroppableId && destIndex === sourceIndex) return;\n\n const fieldToRelocate = customAttributes[sourceIndex];\n const newAttributes = [...customAttributes];\n // Starting from the index of the action dragged, remove one element\n newAttributes.splice(sourceIndex, 1);\n // Add the action to relocate on the destination index\n newAttributes.splice(destIndex, 0, fieldToRelocate);\n // update the local order index of all fields starting from 1\n const reorderedAttributes = newAttributes.map((f, i) => ({ ...f, field_order: i + 1 }));\n // get only the elements whose order index was changed\n dispatch(setCustomAttributes(reorderedAttributes));\n };\n}\n","export const SET_CUSTOM_ATTRIBUTES = 'SET_CUSTOM_ATTRIBUTES';\nexport const GET_CUSTOM_ATTRIBUTES = 'GET_CUSTOM_ATTRIBUTES';\nexport const ADD_CUSTOM_ATTRIBUTE = 'ADD_CUSTOM_ATTRIBUTE';\nexport const EDIT_CUSTOM_ATTRIBUTE = 'EDIT_CUSTOM_ATTRIBUTE';\nexport const DELETE_CUSTOM_ATTRIBUTE = 'DELETE_CUSTOM_ATTRIBUTE';\nexport const SET_CUSTOM_ATTRIBUTE_TO_EDIT = 'SET_CUSTOM_ATTRIBUTE_TO_EDIT';\n","export const GET_CUSTOM_ATTRIBUTES_FAILED = 'Failed to obtain Custom Attributes';\nexport const ADD_CUSTOM_ATTRIBUTES_FAILED = 'Failed to add Custom Attributes';\nexport const EDIT_CUSTOM_ATTRIBUTES_FAILED = 'Failed to edit Custom Attributes';\nexport const REMOVE_CUSTOM_ATTRIBUTE_FAILED = 'Failed to remove Custom Attributes';\nexport const APPLY_CHANGES_FAILED = 'Failed to save changes';\n","import { useEffect, useState } from 'react';\nimport { selectTabToggleValue } from 'store/Global/selectors';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { toggleExpandCollapse } from 'store/Global/actions';\nimport { isEmpty } from 'lodash';\nimport { selectVulnDetailId } from 'store/Manage/selectors';\n\nconst useExpandable = (tab, fieldName, fieldValue) => {\n const dispatch = useDispatch();\n const isExpandedBase = useSelector((state) => selectTabToggleValue(state, tab, fieldName));\n const vulnId = useSelector(selectVulnDetailId);\n const [isExpanded, setIsExpanded] = useState(isExpandedBase);\n const fieldHasValue = !isEmpty(fieldValue) || !!fieldValue;\n\n useEffect(() => {\n setIsExpanded(isExpandedBase);\n }, [isExpandedBase]);\n\n useEffect(() => {\n setIsExpanded(fieldHasValue);\n if (fieldHasValue !== isExpandedBase) {\n dispatch(toggleExpandCollapse(tab, {\n [fieldName]: {\n expanded: fieldHasValue\n }\n }));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [vulnId]);\n\n return isExpanded;\n};\n\nexport default useExpandable;\n","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgResizeBottomRight = function SvgResizeBottomRight(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 13,\n height: 13,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#90A9C0\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 1.5,\n cy: 11.5,\n r: 1.5\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 6.5,\n cy: 11.5,\n r: 1.5\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 11.5,\n cy: 11.5,\n r: 1.5\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 11.5,\n cy: 6.5,\n r: 1.5\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 11.5,\n cy: 1.5,\n r: 1.5\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 6.5,\n cy: 6.5,\n r: 1.5\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgResizeBottomRight, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/resize_bottom_right.eced93cf.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectCustomAttributes } from 'store/CustomAttributes/selectors';\nimport CustomField from 'Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/components/CustomField/index';\nimport { Wrapper, NoFieldsText } from './styled';\nimport ToggleButtons from 'Screens/Manage/components/ToggleButtons';\nimport ExpandableWrapper from 'Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/ExpandableWrapper';\nimport getCustomFieldValueFromVuln from 'Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/functions';\nimport { selectVulnDetail } from 'store/Manage/selectors';\nimport { selectField } from 'store/ManageEditCreate/selectors';\nimport { setVulnCustomAttribute } from 'store/CustomAttributes/actions';\nimport { setCustomField } from 'Screens/ManageEditCreate/actions/Actions';\nimport useExpandable from 'Hooks/useExpandable';\nimport isEmpty from 'lodash/isEmpty';\n\nconst ID = 'customAttributes';\n\nconst CustomFieldWrapper = ({ field }) => {\n const vuln = useSelector(selectVulnDetail);\n const editValue = useSelector((state) => selectField(state, field));\n const initialValue = vuln ? getCustomFieldValueFromVuln(vuln, field, 'vuln') : editValue;\n const isExpanded = useExpandable(ID, field.field_name, initialValue);\n const dispatch = useDispatch();\n const onSaveCustomAttribute = (vuln, fieldName, fieldValue) => {\n if (vuln) {\n dispatch(setVulnCustomAttribute(vuln, fieldName, fieldValue));\n } else {\n dispatch(setCustomField(fieldName, fieldValue));\n }\n };\n return (\n <ExpandableWrapper defaultValue={ isExpanded } key={ `expandible_custom_${field.id}` } id={ field.field_name } title={ field.field_display_name } tab=\"customAttributes\">\n <CustomField field={ field } key={ `Custom_Field_${field.id}` } initialValue={ initialValue } dataSelected={ vuln } onSave={ onSaveCustomAttribute } entity=\"vuln\" />\n </ExpandableWrapper>\n );\n};\n\nconst CustomFieldsTab = () => {\n const intl = useIntl();\n const customAttributes = useSelector(selectCustomAttributes);\n\n return (\n <Wrapper>\n <ToggleButtons id={ ID } />\n { customAttributes.map((ca) => <CustomFieldWrapper key={ `custom_field_wrapper_${ca.id}` } field={ ca } />) }\n { isEmpty(customAttributes) && <NoFieldsText children={ intl.formatMessage({ id: 'customAttributes.empty' }) } /> }\n </Wrapper>\n );\n};\n\nexport default CustomFieldsTab;\n","import {\n useState, useEffect, useRef, useCallback\n} from 'react';\nimport get from 'lodash/get';\n\nexport const useResizeY = (elemRef, resizerRef, def = 0, min = 0, max = 0) => {\n const [isInitialValueSet, initialValueSet] = useState(false);\n const [height, setHeight] = useState(0);\n\n useEffect(() => {\n if (!isInitialValueSet && elemRef.current) {\n const initialHeight = get(elemRef, 'current.clientHeight', 0);\n setHeight(() => {\n if (min && min > initialHeight) return min;\n if (def && def < initialHeight) return def;\n if (max && max < initialHeight) return max;\n return initialHeight;\n });\n initialValueSet(true);\n }\n }, [def, isInitialValueSet, max, min, elemRef]);\n\n const dragging = useRef(false);\n const previousClientY = useRef(0);\n\n const handleMouseDown = useCallback((e) => {\n document.body.style['user-select'] = 'none';\n previousClientY.current = e.clientY;\n dragging.current = true;\n }, []);\n\n const handleMouseUp = useCallback(() => {\n document.body.style['user-select'] = '';\n dragging.current = false;\n }, []);\n\n const handleMouseMove = useCallback((e) => {\n if (!dragging.current) return;\n setHeight((result) => {\n const change = e.clientY - previousClientY.current;\n previousClientY.current = e.clientY;\n const newHeight = result + change;\n if (min && newHeight < min) return min;\n if (max && newHeight > max) return max;\n return newHeight;\n });\n }, [min, max]);\n\n useEffect(() => {\n const resizerNodeRef = resizerRef.current;\n if (resizerNodeRef) {\n window.addEventListener('mouseup', handleMouseUp);\n resizerNodeRef.addEventListener('mousedown', handleMouseDown);\n window.addEventListener('mousemove', handleMouseMove);\n }\n return () => {\n if (resizerNodeRef) {\n window.removeEventListener('mouseup', handleMouseUp);\n resizerNodeRef.removeEventListener('mousedown', handleMouseDown);\n window.removeEventListener('mousemove', handleMouseMove);\n }\n };\n }, [resizerRef, handleMouseUp, handleMouseDown, handleMouseMove]);\n\n return height;\n};\n\nexport const useResizeX = (elemRef, resizerRef, def = 0, min = 0, max = 0) => {\n const [isInitialValueSet, initialValueSet] = useState(false);\n const [width, setWidth] = useState(0);\n\n useEffect(() => {\n if (!isInitialValueSet && elemRef.current) {\n const initialWidth = get(elemRef, 'current.clientWidth', 0);\n setWidth(() => {\n if (min && min > initialWidth) return min;\n if (def && def < initialWidth) return def;\n if (max && max < initialWidth) return max;\n return initialWidth;\n });\n initialValueSet(true);\n }\n }, [def, isInitialValueSet, max, min, elemRef]);\n\n const dragging = useRef(false);\n const previousClientX = useRef(0);\n\n const handleMouseDown = useCallback((e) => {\n document.body.style['user-select'] = 'none';\n previousClientX.current = e.clientX;\n dragging.current = true;\n }, []);\n\n const handleMouseUp = useCallback(() => {\n document.body.style['user-select'] = '';\n dragging.current = false;\n }, []);\n\n const handleMouseMove = useCallback((e) => {\n if (!dragging.current) return;\n setWidth((result) => {\n const change = previousClientX.current - e.clientX;\n previousClientX.current = e.clientX;\n const newWidth = result + change;\n if (min && newWidth < min) return min;\n if (max && newWidth > max) return max;\n return newWidth;\n });\n }, [min, max]);\n\n useEffect(() => {\n const resizerNodeRef = resizerRef.current;\n if (resizerNodeRef) {\n window.addEventListener('mouseup', handleMouseUp);\n resizerNodeRef.addEventListener('mousedown', handleMouseDown);\n window.addEventListener('mousemove', handleMouseMove);\n }\n return () => {\n if (resizerNodeRef) {\n window.removeEventListener('mouseup', handleMouseUp);\n resizerNodeRef.removeEventListener('mousedown', handleMouseDown);\n window.removeEventListener('mousemove', handleMouseMove);\n }\n };\n }, [resizerRef, handleMouseUp, handleMouseDown, handleMouseMove]);\n\n return width;\n};\n","import styled from 'styled-components';\n\nimport { ReactComponent as _Resizer } from 'Images/resize_bottom_right.svg';\nimport colors from 'Styles/colors';\n\nexport const InputWrapper = styled.div.attrs(({ containerHeight }) => {\n let height = '';\n if (containerHeight) height = `${containerHeight}px`;\n return ({ style: { height } });\n})`\n width: 100%;\n`;\nInputWrapper.displayName = 'InputWrapper';\n\nexport const Wrapper = styled.div`\n width: 100%;\n position: relative;\n display: flex;\n flex-direction: column;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n display: ${({ children }) => (children ? 'flex' : 'none')};\n text-transform: capitalize;\n flex: 0 0 44px;\n padding: 9px 20px;\n align-items: center;\n font-size: 15px;\n font-weight: 600;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.73;\n letter-spacing: normal;\n color: #1c2243;\n user-select: none;\n text-align: left;\n`;\nTitle.displayName = 'Title';\n\nexport const MDButtonsWrapper = styled.div`\n height: 40px;\n width: 100%;\n background-color: ${colors.white};\n`;\nMDButtonsWrapper.displayName = 'MDButtonsWrapper';\n\nexport const Resizer = styled(_Resizer)`\n cursor: ns-resize;\n position: absolute;\n bottom: 50px;\n right: 10px;\n`;\nResizer.displayName = 'Resizer';\n","import styled from 'styled-components';\nimport ReactMarkdown from 'react-markdown';\n\nexport const PreviewWrapper = styled.div`\n height: 100%;\n width: 100%;\n background-color: #F4F7FA;\n padding: 18px 22px;\n cursor: ${({ disabled }) => (disabled ? 'not-allowed' : 'pointer')};\n overflow: auto;\n ul, ol {\n padding-left: 0;\n list-style-position: inside;\n }\n code {\n color: inherit;\n }\n pre {\n display: block;\n padding: 20px;\n line-height: 28px;\n background-color: #f5f5f5;\n }\n\n blockquote {\n position: relative;\n margin: 16px 0;\n padding: 5px 8px 5px 30px;\n background: none repeat scroll 0 0 rgba(102,128,153,.05);\n border: none;\n color: #333;\n border-left: 10px solid #d6dbdf;\n }\n\n a {\n color: #007bff;\n }\n`;\nPreviewWrapper.displayName = 'PreviewWrapper';\n\nexport const StyledReactMarkdown = styled(ReactMarkdown)`\n word-break: break-word;\n white-space: pre-wrap;\n line-height: 1.69;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: normal;\n font-weight: normal;\n font-size: ${({ isEmpty }) => (isEmpty ? '12.5px' : '13px')};\n color: ${({ isEmpty }) => (isEmpty ? '#90a9c0' : '#63758d')};\n h1 { font-size: 21px; font-weight: bold; }\n h2 { font-size: 17px; font-weight: bold; }\n h3 { font-size: 15px; font-weight: bold; }\n h4 { font-size: 14px; font-weight: bold; }\n h5 { font-size: 13px; font-weight: bold; }\n`;\nStyledReactMarkdown.displayName = 'StyledReactMarkdown';\n\nexport const PlainText = styled.div`\n word-break: break-word;\n white-space: pre-wrap;\n line-height: 1.69;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: normal;\n font-weight: normal;\n font-size: ${({ isEmpty }) => (isEmpty ? '12.5px' : '13px')};\n color: ${({ isEmpty }) => (isEmpty ? '#90a9c0' : '#63758d')};\n`;\nPlainText.displayName = 'PlainText';\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector } from 'react-redux';\nimport { selectCurrentlySelectedWorkspace } from 'store/Workspace/selectors';\nimport {\n PreviewWrapper,\n StyledReactMarkdown,\n PlainText\n} from './styled';\n\nconst Preview = ({ plainText, isEmpty, text }) => {\n if (plainText) return <PlainText isEmpty={ isEmpty } children={ text } />;\n return <StyledReactMarkdown isEmpty={ isEmpty } children={ text } />;\n};\n\nconst MDPreview = ({\n plainText, placeholder, disabled, setEditing, markdown\n}) => {\n const selectedWorkspace = useSelector(selectCurrentlySelectedWorkspace);\n\n const parseMD = (textBlock) => {\n // eslint-disable-next-line no-useless-escape\n const regex = /\\(evidence\\:(\\w+)\\:(\\d+)\\:([a-zA-Z0-9\\s_\\\\.\\-\\(:]+\\.\\w+)\\)/g;\n\n return textBlock.replace(regex, (match) => {\n const filename = match.split(':')[3].slice(0, -1);\n const content = match.replace(regex, `![$1 With Id $2 Evidence ](/_api/v3/ws/${selectedWorkspace}/vulns/$2/attachment/${filename})`);\n return content;\n });\n };\n\n const text = () => {\n if (disabled && !markdown) return 'This field is disabled';\n if (markdown) {\n if (plainText) return markdown;\n return parseMD(markdown);\n }\n return placeholder;\n };\n\n return (\n <PreviewWrapper disabled={ disabled } onClick={ () => !disabled && setEditing(true) }>\n <Preview plainText={ plainText } isEmpty={ !markdown } text={ text() } />\n </PreviewWrapper>\n );\n};\n\nMDPreview.propTypes = {\n setEditing: PropTypes.func.isRequired,\n markdown: PropTypes.string,\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n plainText: PropTypes.bool\n};\n\nMDPreview.defaultProps = {\n markdown: '',\n placeholder: '',\n disabled: false,\n plainText: false\n};\n\nexport default MDPreview;\n","import styled from 'styled-components';\nimport MdEditor from 'react-markdown-editor-lite';\n\nexport const EditorContainer = styled.div`\n height: 100%;\n width: 100%;\n position: relative;\n background-color: #EDF2F7;\n`;\nEditorContainer.displayName = 'EditorContainer';\n\nexport const StyledMdEditor = styled(MdEditor)`\n display: block;\n position: relative;\n height: 100%;\n background-color: #EDF2F7;\n border: none;\n\n .editor-container {\n height: 100%;\n top: 0px;\n .sec-md .input {\n background-color: #EDF2F7;\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.69;\n letter-spacing: normal;\n color: #63758d;\n padding: 18px 22px;\n }\n }\n\n .rc-md-navigation {\n position: absolute;\n height: 20px;\n min-height: 20px !important;\n bottom: -30px;\n background-color: transparent;\n width: fit-content !important;\n border-bottom: none;\n }\n\n .drop-wrap {\n h1 { font-size: 21px; font-weight: bold; }\n h2 { font-size: 17px; font-weight: bold; }\n h3 { font-size: 15px; font-weight: bold; }\n h4 { font-size: 14px; font-weight: bold; }\n h5 { font-size: 13px; font-weight: bold; }\n }\n`;\nStyledMdEditor.displayName = 'StyledMdEditor';\n","import React, { useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport MarkdownIt from 'markdown-it';\nimport {\n EditorContainer,\n StyledMdEditor\n} from './styled';\n\nconst mdConfig = {\n view: {\n menu: true,\n md: true,\n html: false,\n fullScreen: false,\n hideMenu: false\n },\n canView: {\n menu: true,\n md: true,\n html: true,\n fullScreen: true,\n hideMenu: false\n }\n};\n\nconst MDEditor = ({\n onBlur, markdown, setMarkdown, isEditing, setEditing, plainText, uploadImage, onImageUpload\n}) => {\n const editorRef = useRef(null);\n const editorWrapperRef = useRef(null);\n\n const handleClickOutside = useCallback((event) => {\n if (editorWrapperRef.current && !editorWrapperRef.current.contains(event.target)) {\n setEditing(false);\n onBlur(markdown);\n }\n }, [markdown, onBlur, setEditing]);\n\n useEffect(() => {\n if (isEditing && editorRef.current) {\n editorRef.current.nodeMdText.current.setSelectionRange(markdown.length, markdown.length);\n editorRef.current.nodeMdText.current.focus();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isEditing]);\n\n useEffect(() => {\n if (isEditing) document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, [handleClickOutside, isEditing, markdown]);\n\n const handleEditorChange = (it) => setMarkdown(it.text);\n\n const handleImageUpload = (file) => onImageUpload(file);\n\n const mdParser = new MarkdownIt();\n const plugins = [\n 'header',\n 'font-bold',\n 'font-italic',\n 'block-code-inline',\n 'block-code-block',\n 'block-quote',\n 'table',\n 'link'\n ];\n\n const getPlugins = () => {\n if (plainText) return [];\n else if (uploadImage) return [...plugins, 'image'];\n else return plugins;\n };\n\n return (\n <EditorContainer ref={ editorWrapperRef }>\n <StyledMdEditor\n ref={ editorRef }\n value={ markdown }\n renderHTML={ (text) => mdParser.render(text) }\n plugins={ getPlugins() }\n onChange={ handleEditorChange }\n config={ mdConfig }\n onImageUpload={ uploadImage ? handleImageUpload : () => {} }\n />\n </EditorContainer>\n );\n};\n\nMDEditor.propTypes = {\n onBlur: PropTypes.func.isRequired,\n markdown: PropTypes.string,\n setMarkdown: PropTypes.func.isRequired,\n isEditing: PropTypes.bool,\n setEditing: PropTypes.func.isRequired,\n uploadImage: PropTypes.bool\n};\n\nMDEditor.defaultProps = {\n markdown: '',\n isEditing: false,\n uploadImage: false\n};\n\nexport default MDEditor;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport MDPreview from './components/MDPreview';\nimport MDEditor from './components/MDEditor';\n\nconst MarkdownInput = ({\n placeholder, value, onBlur, markdown, plainText,\n setMarkdown, isEditing, setEditing, disabled,\n uploadImage, onImageUpload\n}) => {\n useEffect(() => {\n setMarkdown(value);\n }, [setMarkdown, value]);\n\n if (!isEditing) {\n return (\n <MDPreview\n plainText={ plainText }\n setEditing={ setEditing }\n markdown={ markdown }\n placeholder={ placeholder }\n disabled={ disabled }\n />\n );\n }\n\n return (\n <MDEditor\n onBlur={ onBlur }\n markdown={ markdown }\n setMarkdown={ setMarkdown }\n isEditing={ isEditing }\n setEditing={ setEditing }\n plainText={ plainText }\n uploadImage={ uploadImage }\n onImageUpload={ onImageUpload }\n />\n );\n};\n\nMarkdownInput.propTypes = {\n value: PropTypes.string,\n onBlur: PropTypes.func.isRequired,\n placeholder: PropTypes.string,\n markdown: PropTypes.string,\n setMarkdown: PropTypes.func.isRequired,\n isEditing: PropTypes.bool,\n setEditing: PropTypes.func.isRequired,\n disabled: PropTypes.bool,\n plainText: PropTypes.bool,\n uploadImage: PropTypes.bool\n};\n\nMarkdownInput.defaultProps = {\n value: '',\n placeholder: '',\n markdown: '',\n isEditing: false,\n disabled: false,\n plainText: false,\n uploadImage: false\n};\n\nexport default MarkdownInput;\n","import React, { useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useResizeY } from 'Hooks/useResize';\nimport {\n MDButtonsWrapper,\n InputWrapper,\n Wrapper,\n Resizer,\n Title\n} from './styled';\nimport MarkdownInput from './MarkdownInput';\n\nconst MarkdownEditor = ({\n title, value, placeholder, onBlur, disabled, plainText, defHeight = 270, minHeight = 60, uploadImage, onImageUpload\n}) => {\n const [markdown, setMarkdown] = useState(value);\n const [isEditing, setEditing] = useState(false);\n\n const wrapperRef = useRef(null);\n const resizerRef = useRef(null);\n\n const height = useResizeY(wrapperRef, resizerRef, defHeight, minHeight);\n\n return (\n <Wrapper>\n <Title children={ title } />\n <InputWrapper containerHeight={ height } ref={ wrapperRef }>\n <MarkdownInput\n value={ value }\n onBlur={ onBlur }\n markdown={ markdown }\n setMarkdown={ setMarkdown }\n isEditing={ isEditing }\n setEditing={ setEditing }\n placeholder={ placeholder }\n disabled={ disabled }\n plainText={ plainText }\n uploadImage={ uploadImage }\n onImageUpload={ onImageUpload }\n />\n </InputWrapper>\n <Resizer ref={ resizerRef } />\n <MDButtonsWrapper />\n </Wrapper>\n );\n};\n\nMarkdownEditor.propTypes = {\n value: PropTypes.string,\n onBlur: PropTypes.func.isRequired,\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n title: PropTypes.string,\n plainText: PropTypes.bool,\n uploadImage: PropTypes.bool\n};\n\nMarkdownEditor.defaultProps = {\n value: '',\n placeholder: 'This field is empty. Click to edit.',\n disabled: false,\n title: '',\n plainText: false,\n uploadImage: false\n};\n\nexport default MarkdownEditor;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n margin-bottom: 3px;\n text-align: initial; \n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n font-size: 12.5px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.08;\n letter-spacing: normal;\n color: #0b2128;\n font-weight: 600;\n margin-bottom: 12px;\n opacity: ${(props) => (props.disabled ? '0.3' : '1')};\n`;\nTitle.displayName = 'Title';\n\nexport const CustomInput = styled.input`\n width: ${(props) => (props.width ? `${props.width}` : '224px')};\n height: ${(props) => (props.height ? `${props.height}` : '38px')};\n border: 1px solid transparent;\n box-shadow: 0 1px 0 0 #afafaf;\n border-bottom: ${(props) => (props.error ? '1px solid red' : 'none')};\n background-color: ${colors.iceBlue};\n padding-left: 15px;\n padding-right: 15px;\n font-size: 14.5px;\n font-weight: 300;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.48;\n letter-spacing: normal;\n color: #1c2243;\n margin-top:13\n\n &.full{\n background-color: white; \n }\n\n &::placeholder {\n color: #afb1bc;\n font-size: 13.5px;\n font-weight: 300;\n }\n\n &:hover{\n border-style: solid;\n border-color: #afb1bc;\n border-width: 1px 1px 0px 1px;\n }\n\n &:focus{\n background-color: white; \n\n &::placeholder {\n color: transparent;\n }\n }\n`;\nCustomInput.displayName = 'CustomInput';\n","/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash/debounce';\nimport { Wrapper, Title, CustomInput } from './styled';\n\nclass StringField extends React.Component {\n constructor (props) {\n super(props);\n this.onChangeHandler = this.onChangeHandler.bind(this);\n this.debouncedOnChangeHandler = debounce((text) => this.props.onChange(text), 300);\n this.validateEnter = this.validateEnter.bind(this);\n\n this.state = {\n value: ''\n };\n }\n\n componentDidMount () {\n if (this.props.defaultValue) {\n this.setState({ value: this.props.defaultValue });\n }\n }\n\n componentDidUpdate (prevProps) {\n if (prevProps.defaultValue !== this.props.defaultValue) {\n this.setState({ value: this.props.defaultValue });\n }\n }\n\n onChangeHandler (v) {\n this.setState({ value: v });\n this.debouncedOnChangeHandler(v);\n }\n\n validateEnter (e) {\n if (e.key === 'Enter' || e.keyCode === 13) {\n if (this.props.onBlur) {\n this.props.onBlur();\n } else if (this.props.submit) {\n this.props.submit();\n }\n }\n }\n\n render () {\n const { value } = this.state;\n const {\n placeholder,\n title,\n width,\n height,\n disabled,\n type,\n error,\n id,\n readOnly,\n className\n } = this.props;\n\n return (\n <Wrapper className={ className }>\n <Title disabled={ disabled }>{ title }\n this.onChangeHandler(e.target.value) } disabled={ disabled } onBlur={ () => (this.props.onBlur ? this.props.onBlur() : () => {}) } onKeyPress={ this.validateEnter } error={ error } />\n \n );\n }\n}\n\nStringField.propTypes = {\n placeholder: PropTypes.string,\n title: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n width: PropTypes.string,\n height: PropTypes.string,\n disabled: PropTypes.bool,\n type: PropTypes.string,\n error: PropTypes.bool,\n id: PropTypes.string,\n className: PropTypes.string,\n readOnly: PropTypes.bool,\n defaultValue: PropTypes.string,\n onBlur: PropTypes.func,\n submit: PropTypes.func\n};\n\nStringField.defaultProps = {\n placeholder: '',\n title: '',\n width: '224px',\n height: '34px',\n disabled: false,\n type: 'text',\n error: false,\n id: '',\n className: '',\n readOnly: false,\n defaultValue: '',\n onBlur: null,\n submit: null\n};\n\nexport default StringField;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n & > *:not(:last-child) {\n margin-bottom: 26px;\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const FieldWrapper = styled.div`\n padding: 9px 20px;\n`;\nFieldWrapper.displayName = 'FieldWrapper';\n","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { updateVuln } from 'store/Manage/actions';\nimport { selectVulnDetail, selectReadOnly, selectPermissions } from 'store/Manage/selectors';\nimport get from 'lodash/get';\nimport { useIntl } from 'react-intl';\nimport MarkdownEditor from 'Common/Components/v2/MarkdownEditor';\nimport ExpandableWrapper from '../GeneralTab/components/ExpandableWrapper';\nimport ToggleButtons from 'Screens/Manage/components/ToggleButtons';\nimport useExpandable from 'Hooks/useExpandable';\nimport { methodOptions } from 'Screens/Constants';\nimport StandardDropdown from 'Common/Components/StandarDropdown';\nimport StringField from 'Common/Components/StringField';\nimport { Wrapper, FieldWrapper } from './styled';\n\nconst TAB = 'technical';\n\nconst TechnicalTab = () => {\n const dispatch = useDispatch();\n const intl = useIntl();\n const vuln = useSelector(selectVulnDetail);\n const data = get(vuln, 'data', '');\n const website = get(vuln, 'website', '');\n const request = get(vuln, 'request', '');\n const response = get(vuln, 'response', '');\n const method = get(vuln, 'method', '');\n const path = get(vuln, 'path', '');\n const queryString = get(vuln, 'query', '');\n const statusCode = get(vuln, 'status_code', '');\n const parameterName = get(vuln, 'pname', '');\n const parameter = get(vuln, 'params', '');\n const isWeb = get(vuln, 'type', '') === 'VulnerabilityWeb';\n\n const isExpandedData = useExpandable(TAB, 'data', data);\n const isExpandedWebsite = useExpandable(TAB, 'website', website);\n const isExpandedRequest = useExpandable(TAB, 'request', request);\n const isExpandedResponse = useExpandable(TAB, 'response', response);\n const isExpandedMethod = useExpandable(TAB, 'method', method);\n const isExpandedPath = useExpandable(TAB, 'path', path);\n const isExpandedQueryString = useExpandable(TAB, 'queryString', queryString);\n const isExpandedStatusCode = useExpandable(TAB, 'statusCode', statusCode);\n const isExpandedParameterName = useExpandable(TAB, 'parameterName', parameterName);\n const isExpandedParameter = useExpandable(TAB, 'parameter', parameter);\n\n const updateValue = (field, value) => dispatch(updateVuln(vuln, field, value));\n\n const readOnly = useSelector(selectReadOnly);\n const permissions = useSelector(selectPermissions);\n const disabled = readOnly || !permissions.update.allowed;\n\n return (\n \n \n \n updateValue('data', value) }\n disabled={ disabled }\n />\n \n {isWeb && (\n <>\n \n updateValue('website', value) }\n disabled={ disabled }\n />\n \n \n updateValue('request', value) }\n disabled={ disabled }\n />\n \n \n updateValue('response', value) }\n disabled={ disabled }\n />\n \n \n \n updateValue('method', value) }\n placeholder=\"Method\"\n width=\"154px\"\n disabled={ disabled }\n />\n \n \n \n \n updateValue('path', value) }\n />\n \n \n \n updateValue('queryString', value) }\n disabled={ disabled }\n />\n \n \n \n updateValue('status_code', value) }\n type=\"number\"\n />\n \n \n \n \n updateValue('parameterName', value) }\n />\n \n \n \n \n updateValue('parameter', value) }\n />\n \n \n \n )}\n \n );\n};\n\nexport default TechnicalTab;\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgCopyLink = function SvgCopyLink(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 17,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.485 15.89a3.808 3.808 0 0 1-5.375 0 3.808 3.808 0 0 1 0-5.375l3.36-3.359a3.802 3.802 0 0 1 5.159-.204.715.715 0 0 1-.93 1.086 2.354 2.354 0 0 0-3.222.126l-3.36 3.36c-.938.939-.938 2.42 0 3.358.94.94 2.42.94 3.36 0l3.19-3.19a.714.714 0 1 1 1.009 1.007l-3.191 3.19Zm6.046-6.046a3.802 3.802 0 0 1-5.16.204.715.715 0 1 1 .93-1.086c.939.808 2.326.77 3.222-.126l3.36-3.36c.939-.938.939-2.419 0-3.358-.94-.94-2.42-.94-3.36 0l-3.19 3.19a.712.712 0 1 1-1.009-1.007l3.191-3.19a3.808 3.808 0 0 1 5.375 0 3.808 3.808 0 0 1 0 5.374l-3.36 3.359Z\",\n fill: \"#90A9C0\",\n fillRule: \"nonzero\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgCopyLink, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/copy_link.852fb400.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\nimport { ReactComponent as _CopyLink } from 'Images/copy_link.svg';\n\nexport const CopyLinkWrapper = styled.div`\n position: relative;\n cursor: pointer;\n width: 34px;\n height: 34px;\n border-radius: 4px;\n box-shadow: 0 2px 8px 0 rgba(28, 34, 67, 0.03);\n border: solid 1px #d9e4ef;\n background-color: #fff;\n &:hover {\n background-color: #f1f4f7 ;\n }\n &:active{\n background-color: #63758d ;\n & > svg {\n & > path {\n fill: #fff;\n }\n }\n }\n \n`;\nCopyLinkWrapper.displayName = 'CopyLink';\n\nexport const CopyLinkIcon = styled(_CopyLink)`\n position: absolute;\n cursor: pointer;\n left: 8px;\n top: 8px;\n`;\nCopyLinkIcon.displayName = 'CopyLinkIcon';\n","import React from 'react';\nimport get from 'lodash/get';\nimport { useIntl } from 'react-intl';\nimport copyToClipboard from 'utils/clipboard';\nimport { CopyLinkWrapper, CopyLinkIcon } from './styled';\n\nconst CopyLink = () => {\n const intl = useIntl();\n const title = intl.formatMessage({ id: 'manage.detail.tab.copyLink' });\n const link = get(window, 'location.href', '');\n const copyLink = () => { if (link) copyToClipboard(link); };\n return (\n \n \n \n );\n};\n\nexport default CopyLink;\n","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgApiLink = function SvgApiLink(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#90A9C0\",\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.33 2.672h3.34V.668c0-.371.297-.668.668-.668.361 0 .668.297.668.668v2.004h1.326V.668C9.332.297 9.638 0 10 0c.371 0 .668.297.668.668v2.004h1.336V.668c0-.371.297-.668.668-.668.361 0 .668.297.668.668v2.004h3.33c.37 0 .668.296.668.658v3.34h2.003a.67.67 0 0 1 0 1.336h-2.003v1.326h2.003a.67.67 0 0 1 0 1.336h-2.003v1.336h2.003a.67.67 0 0 1 0 1.336h-2.003v3.33a.665.665 0 0 1-.668.668h-3.33v2.003a.67.67 0 0 1-1.336 0v-2.003h-1.336v2.003a.67.67 0 0 1-1.336 0v-2.003H8.006v2.003a.67.67 0 0 1-1.336 0v-2.003H3.33a.663.663 0 0 1-.658-.668v-3.33H.668A.671.671 0 0 1 0 12.672c0-.371.297-.668.668-.668h2.004v-1.336H.668A.665.665 0 0 1 0 10c0-.362.297-.668.668-.668h2.004V8.006H.668A.671.671 0 0 1 0 7.338c0-.371.297-.668.668-.668h2.004V3.33c0-.362.296-.658.658-.658Zm12.671 1.326H3.998v12.004H16V3.998Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m6.86 10.77-.265.8H5.7L7 8h1.135l1.3 3.57h-.91l-.27-.8H6.86Zm.705-2.06h-.02l-.475 1.44h.98l-.485-1.44ZM11.435 8c.417 0 .74.104.972.313.232.208.348.495.348.862 0 .37-.116.66-.348.867-.231.209-.555.313-.972.313h-.86v1.215h-.85V8h1.71Zm-.15 1.695c.197 0 .346-.046.447-.137a.489.489 0 0 0 .153-.383.477.477 0 0 0-.155-.38c-.103-.09-.252-.135-.445-.135h-.71v1.035h.71ZM13.16 8h.85v3.57h-.85z\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgApiLink, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/api_link.dcbdf06d.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\nimport { ReactComponent as _CopyApiLink } from 'Images/api_link.svg';\n\nexport const CopyApiLinkWrapper = styled.div`\n position: relative;\n cursor: pointer;\n width: 34px;\n height: 34px;\n border-radius: 4px;\n box-shadow: 0 2px 8px 0 rgba(28, 34, 67, 0.03);\n border: solid 1px #d9e4ef;\n background-color: #fff;\n &:hover {\n background-color: #f1f4f7 ;\n }\n &:active{\n background-color: #63758d ;\n & > svg {\n & > g {\n fill: #fff;\n }\n }\n }\n \n`;\nCopyApiLinkWrapper.displayName = 'CopyApiLink';\n\nexport const CopyApiLinkIcon = styled(_CopyApiLink)`\n position: absolute;\n cursor: pointer;\n left: 6px;\n top: 6px;\n`;\nCopyApiLinkIcon.displayName = 'CopyApiLinkIcon';\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { getRequestUrl } from 'services/api/connector';\nimport { useIntl } from 'react-intl';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport { selectVulnDetailId } from 'store/Manage/selectors';\nimport copyToClipboard from 'utils/clipboard';\nimport { CopyApiLinkWrapper, CopyApiLinkIcon } from './styled';\n\nconst CopyApiLink = () => {\n const intl = useIntl();\n const title = intl.formatMessage({ id: 'manage.detail.tab.copyApiLink' });\n const workspaceSelected = useSelector(selectCurrentWorkspace);\n const vulnDetailId = useSelector(selectVulnDetailId);\n\n const copyApiLink = () => {\n if (vulnDetailId && workspaceSelected) {\n const vulnPath = `ws/${workspaceSelected}/vulns/${vulnDetailId}`;\n const link = getRequestUrl(vulnPath);\n copyToClipboard(link);\n }\n };\n\n return (\n \n \n \n );\n};\n\nexport default CopyApiLink;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: row;\n height: 34px;\n align-items: center;\n & > :not(:last-child) {\n margin-right: 5px;\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const InputTitle = styled.input`\n padding-right: 10px;\n margin: auto 5px auto 0px;\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 16px;\n font-weight: 600;\n color: ${colors.blueGrey2};\n border: none;\n cursor: pointer;\n border-radius: 5px;\n background-color: transparent;\n\n &:focus {\n cursor: text;\n color: ${colors.blueGrey2};\n }\n\n &:not(:focus) {\n &:hover {\n color: ${colors.blueGrey2};\n background-color: #EDF2F7;\n }\n }\n\n`;\nInputTitle.displayName = 'InputTitle';\n\nexport const DuplicateWrapper = styled.div`\n display: flex;\n flex-direction: row;\n height: 25px;\n border-radius: 6px;\n background-color: #bec8d2;\n padding: 3px 8px;\n margin-right: 10px;\n`;\nDuplicateWrapper.displayName = 'DuplicateWrapper';\n","import React, { useState, useRef, useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport {\n selectVulnDetail\n} from 'store/Manage/selectors';\nimport debounce from 'lodash/debounce';\nimport { updateVuln } from 'store/Manage/actions';\nimport CopyLink from './components/CopyLink';\nimport CopyApiLink from './components/CopyApiLink';\nimport { Wrapper, InputTitle } from './styled';\n\nconst Title = () => {\n const dispatch = useDispatch();\n const vulnDetail = useSelector(selectVulnDetail);\n const [vulnName, setVulnName] = useState(vulnDetail.name);\n\n useEffect(() => {\n setVulnName(vulnDetail.name);\n }, [vulnDetail]);\n\n const updateName = useRef(debounce((name, vuln) => {\n if (name) {\n dispatch(updateVuln(vuln, 'name', name));\n }\n }, 1000));\n\n const handleChange = (e) => {\n const name = e.target.value;\n setVulnName(name);\n updateName.current(name, vulnDetail);\n };\n\n return (\n \n \n \n \n \n );\n};\n\nexport default Title;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nconst sevColor = {\n C: colors.warmPurple,\n H: colors.redPink,\n M: colors.tangerine,\n L: colors.apple,\n I: colors.grey2,\n U: colors.grey4,\n disable: '#d6d6d6'\n};\n\nconst SeverityIcon = styled.div`\n width: 24px;\n height: 18px;\n border-radius: 2px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n\n background-color:${({ type }) => sevColor[type]};\n border: solid 1px ${({ type }) => sevColor[type]};\n box-shadow: inset 0 0 12px 0 rgba(0, 0, 0, 0.13);\n\n font-size: 9px;\n font-weight: 900;\n text-align: center;\n color: ${colors.white};\n`;\n\nexport default SeverityIcon;\n","// eslint-disable-next-line import/prefer-default-export\nexport const capitalize = (string) => (string ? string.charAt(0).toUpperCase() + string.slice(1) : string);\n","import styled from 'styled-components';\n\nconst SeverityName = styled.span`\nmargin-left: 7px;\n`;\nSeverityName.displayName = 'SeverityName';\n\nexport default SeverityName;\n","import React from 'react';\nimport Select from 'react-select';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { severitySelect } from 'Common/styles/style';\nimport { updateVuln } from 'store/Manage/actions';\nimport SeverityIcon from 'Common/Components/SeverityIcon';\nimport { selectVulnDetail, selectReadOnly, selectPermissions } from 'store/Manage/selectors';\nimport { capitalize } from 'utils/stringUtils';\nimport get from 'lodash/get';\nimport { severities } from 'Screens/Constants';\nimport SeverityName from './styled';\n\nconst SeverityItem = ({ title }) => (\n
\n {title.charAt(0).toUpperCase()}\n { capitalize(title) }\n
\n);\n\nconst SeverityPicker = () => {\n const dispatch = useDispatch();\n const vuln = useSelector(selectVulnDetail);\n const readOnly = useSelector(selectReadOnly);\n const permissions = useSelector(selectPermissions);\n const severity = get(vuln, 'severity', '');\n const value = {\n label: severity,\n value: severity\n };\n\n return (\n dispatch(updateVuln(vuln, 'severity', e.value)) }\n options={ severities.map((element) => ({ label: , value: element.name })) }\n />\n );\n};\n\nexport default SeverityPicker;\n","import styled from 'styled-components';\n\nconst themes = {\n allVulns: {\n border: '#90a9c0',\n body: '#90a9c0'\n },\n notConfirmed: {\n border: '#90a9c0',\n body: '#fafbfc'\n },\n confirmed: {\n border: '#f59220',\n body: '#ffd76b'\n }\n};\n\nconst Icon = styled.svg`\n width: 24px;\n height: 24px;\n\n & #flag-border {\n fill: ${(props) => themes[props.theme].border};\n }\n\n & #flag-body {\n fill: ${(props) => themes[props.theme].body};\n }\n`;\n\nexport default Icon;\n","import React from 'react';\nimport Icon from './styled';\n\nconst FlagIcon = ({ theme, onClick, title }) => (\n
\n \n \n \n \n \n \n \n
\n);\n\nexport default FlagIcon;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n margin-left: 10px;\n width: 120px;\n display: flex;\n align-items: baseline;\n`;\n\nexport const Label = styled.label`\n font-size: 13.5px;\n font-weight: 400;\n letter-spacing: normal;\n color: #63758d;\n margin: 0 0 0 5px;\n`;\n","import React from 'react';\nimport FlagIcon from 'Common/Components/FlagIcon/index';\nimport { updateVuln } from 'store/Manage/actions';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { selectVulnDetail } from 'store/Manage/selectors';\nimport get from 'lodash/get';\nimport { Wrapper, Label } from './styled';\n\nconst DisplayConfirmed = () => {\n const dispatch = useDispatch();\n const vuln = useSelector(selectVulnDetail);\n const confirmed = get(vuln, 'confirmed', false);\n return (\n \n dispatch(updateVuln(vuln, 'confirmed', !confirmed)) }\n aria-label={ confirmed ? 'Confirmed' : 'Not confirmed' }\n />\n \n \n );\n};\n\nexport default DisplayConfirmed;\n","import styled from 'styled-components';\n\nconst Wrapper = styled.div`\n margin-left: 16px;\n width: 162px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n","import React from 'react';\nimport Select from 'react-select';\nimport get from 'lodash/get';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { updateVuln } from 'store/Manage/actions';\nimport { selectVulnDetail, selectReadOnly, selectPermissions } from 'store/Manage/selectors';\nimport { basicSelect } from 'Common/styles/style';\nimport { capitalize } from 'utils/stringUtils';\nimport { easeOfResolution } from 'Screens/Constants';\nimport Wrapper from './styled';\n\nconst EaseOfResolutionPicker = () => {\n const dispatch = useDispatch();\n const vuln = useSelector(selectVulnDetail);\n\n const readOnly = useSelector(selectReadOnly);\n const permissions = useSelector(selectPermissions);\n const vulnEaseOfResolution = get(vuln, 'easeofresolution', '');\n const value = {\n label: capitalize(vulnEaseOfResolution) || 'Ease of resolution',\n value: vulnEaseOfResolution || 'Ease of resolution'\n };\n return (\n \n dispatch(updateVuln(vuln, 'easeofresolution', e.value)) }\n options={ easeOfResolution.map((element) => ({ label: element.desc, value: element.name })) }\n />\n \n );\n};\n\nexport default EaseOfResolutionPicker;\n","import styled from 'styled-components';\n\nconst Wrapper = styled.div`\n margin-left: 11px;\n width: 149px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n","import React from 'react';\nimport Select from 'react-select';\nimport get from 'lodash/get';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { updateVuln } from 'store/Manage/actions';\nimport { selectVulnDetail, selectReadOnly, selectPermissions } from 'store/Manage/selectors';\nimport { statusSelect } from 'Common/styles/style';\nimport { capitalize } from 'utils/stringUtils';\nimport { status as statusList } from 'Screens/Constants';\nimport Wrapper from './styled';\n\nconst StatusPicker = () => {\n const dispatch = useDispatch();\n const vuln = useSelector(selectVulnDetail);\n\n const readOnly = useSelector(selectReadOnly);\n const permissions = useSelector(selectPermissions);\n const status = get(vuln, 'status', '');\n const value = {\n label: capitalize(status),\n value: status\n };\n\n return (\n \n dispatch(updateVuln(vuln, 'status', e.value)) }\n options={ statusList.map((element) => ({ label: element.desc, value: element.name })) }\n />\n \n );\n};\n\nexport default StatusPicker;\n","import styled from 'styled-components';\n\nconst Wrapper = styled.div`\n display: flex;\n flex-direction: row;\n margin-top: 5px;\n margin-bottom: 10px;\n align-items: center;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n","import React from 'react';\nimport SeverityPicker from './components/SeverityPicker';\nimport DisplayConfirmed from './components/DisplayConfirmed';\nimport EaseOfResolutionPicker from './components/EaseOfResolutionPicker';\nimport StatusPicker from './components/StatusPicker';\nimport Wrapper from './styled';\n\nconst ActionBar = () => (\n \n \n \n \n \n \n);\nexport default ActionBar;\n","import React from 'react';\nimport moment from 'moment';\n\nconst DateFormatter = ({ date }) => {\n const today = moment();\n\n const isToday = (d) => moment(d).isSame(today, 'day');\n\n const shortDateFormat = (d) => moment(d).format('LT');\n const longDateFormat = (d) => moment(d).format('lll');\n\n const dateFormatted = isToday(date) ? `Today, ${shortDateFormat(date)}` : longDateFormat(date);\n\n return (\n

{dateFormatted}

\n );\n};\n\nexport default DateFormatter;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n display: flex;\n width: 100%;\n background-color: ${colors.grey19};\n padding: 12px 20px 13px 20px;\n margin-bottom: 10px;\n border-radius: 2px;\n box-shadow: 0 2px 50px 0 rgba(0, 0, 0, 0.03);\n align-items: center;\n flex-direction: row;\n flex-wrap: wrap;\n & > *:not(:last-child) {\n /* margin-right: auto; */\n border-right: 1px dashed #c3c3c3;\n height: 23px;\n padding-right: 13.5px;\n margin-right: 13.5px;\n }\n & > :first-child {\n /* padding-right: 30px; */\n }\n /* & > :last-child {\n width: 100%;\n } */\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const FieldContainer = styled.div`\n display: flex;\n flex-direction: row;\n`;\nFieldContainer.displayName = 'FieldContainer';\n\nexport const FieldName = styled.div`\n color: ${colors.grey12};\n flex: 0 1 0;\n font-size: 13.5px;\n font-weight: 500;\n`;\nFieldName.displayName = 'FieldName';\n\nexport const FieldValue = styled.div`\n padding-left: 5px;\n color: ${colors.white1};\n font-size: 13.5px;\n font-weight: 300;\n vertical-align: sub;\n`;\nFieldValue.displayName = 'FieldValue';\n","import React from 'react';\nimport head from 'lodash/head';\nimport get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport { useSelector } from 'react-redux';\nimport { selectVulnDetail } from 'store/Manage/selectors';\nimport DateFormatter from 'Common/Components/DateFormatter';\nimport { FormattedMessage } from 'react-intl';\nimport {\n Wrapper, FieldContainer, FieldName, FieldValue\n} from './styled';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const HostData = () => (\n \n \n \n \n \n);\n\nconst Target = () => {\n const vuln = useSelector(selectVulnDetail);\n const target = get(vuln, 'target', '');\n\n return (\n \n \n \n \n {target}\n \n );\n};\n\nconst Hostname = () => {\n const vuln = useSelector(selectVulnDetail);\n const hostnames = get(vuln, 'hostnames', []).filter((h) => !isEmpty(h));\n const hostname = head(hostnames);\n\n if (!hostname) return null;\n return (\n \n \n \n \n {hostname}\n \n );\n};\n\nconst Date = () => {\n const vuln = useSelector(selectVulnDetail);\n const createTime = get(vuln, 'metadata.create_time', '');\n\n return (\n \n \n \n \n \n \n );\n};\n","import get from 'lodash/get';\n\nexport const selectIsFetching = (state) => get(state, 'sesion.isFetching', false);\nexport const selectRememberMe = (state) => get(state, 'sesion.rememberMe', false);\nexport const selectIsLoggedIn = (state) => get(state, 'sesion.loggedIn', false);\nexport const selectErrorMessage = (state) => get(state, 'sesion.errorMessage', '');\nexport const selectUser = (state) => get(state, 'sesion.user', '');\nexport const selectUserRoles = (state) => get(state, 'sesion.roles', []);\nexport const selectIsValidatingSession = (state) => get(state, 'sesion.validatingSession', false);\nexport const selectCsrfToken = (state) => get(state, 'sesion.csrfToken', '');\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useIntl } from 'react-intl';\nimport get from 'lodash/get';\nimport api from 'services/api';\nimport { setError, updateVuln } from 'store/Manage/actions';\nimport { selectVulnDetail, selectReadOnly, selectPermissions } from 'store/Manage/selectors';\nimport MarkdownEditor from 'Common/Components/v2/MarkdownEditor';\nimport ExpandableWrapper from '../ExpandableWrapper';\nimport useExpandable from 'Hooks/useExpandable';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport { selectCsrfToken } from 'store/Sesion/selectors';\n\nconst TAB = 'general';\nconst ID = 'description';\n\nconst Description = () => {\n const intl = useIntl();\n const dispatch = useDispatch();\n const currentVuln = useSelector(selectVulnDetail);\n const description = get(currentVuln, ID, '');\n const updateValue = (field, value) => dispatch(updateVuln(currentVuln, field, value));\n const readOnly = useSelector(selectReadOnly);\n const permissions = useSelector(selectPermissions);\n const disabled = readOnly || !permissions.update.allowed;\n const isExpanded = useExpandable(TAB, ID, description);\n const vulnId = get(currentVuln, '_id', 0);\n const workspaceSelected = useSelector(selectCurrentWorkspace);\n const csrfToken = useSelector(selectCsrfToken);\n\n const onImageUpload = async (file) => {\n try {\n const filename = file.name.replace(/\\s+/g, '');\n const renameEvidence = new File([file], filename);\n const fd = new FormData();\n fd.append('csrf_token', csrfToken);\n fd.append('file', renameEvidence);\n const response = await api.attachments.saveAttachments(workspaceSelected, vulnId, fd);\n if (response && (response.success !== false)) {\n return `/_api/v3/ws/${workspaceSelected}/vulns/${vulnId}/attachment/${filename}`;\n }\n } catch (e) {\n dispatch(setError(e.message));\n }\n };\n\n return (\n \n updateValue('desc', value) }\n disabled={ disabled }\n minHeight={ 170 }\n uploadImage\n onImageUpload={ onImageUpload }\n />\n \n );\n};\n\nexport default Description;\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useIntl } from 'react-intl';\nimport get from 'lodash/get';\nimport { updateVuln } from 'store/Manage/actions';\nimport { selectVulnDetail, selectReadOnly, selectPermissions } from 'store/Manage/selectors';\nimport MarkdownEditor from 'Common/Components/v2/MarkdownEditor';\nimport ExpandableWrapper from '../ExpandableWrapper';\nimport useExpandable from 'Hooks/useExpandable';\n\nconst TAB = 'general';\nconst ID = 'resolution';\n\nconst Resolution = () => {\n const intl = useIntl();\n const dispatch = useDispatch();\n const currentVuln = useSelector(selectVulnDetail);\n const resolution = get(currentVuln, 'resolution', '');\n const updateValue = (field, value) => dispatch(updateVuln(currentVuln, field, value));\n const isExpanded = useExpandable(TAB, ID, resolution);\n\n const readOnly = useSelector(selectReadOnly);\n const permissions = useSelector(selectPermissions);\n const disabled = readOnly || !permissions.update.allowed;\n\n return (\n \n updateValue('resolution', value) }\n disabled={ disabled }\n minHeight={ 170 }\n />\n \n );\n};\n\nexport default Resolution;\n","import styled from 'styled-components';\n\nconst Wrapper = styled.div`\n padding: 0px 20px 20px 20px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n","import React from 'react';\nimport { useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectCurrentReferences, selectVulnDetail } from 'store/Manage/selectors';\nimport { updateVuln } from 'store/Manage/actions';\nimport CustomList from 'Common/Components/CustomList';\nimport ExpandableWrapper from '../ExpandableWrapper';\nimport Wrapper from './styled';\nimport useExpandable from 'Hooks/useExpandable';\n\nconst TAB = 'general';\nconst ID = 'references';\n\nconst References = () => {\n const dispatch = useDispatch();\n const list = useSelector(selectCurrentReferences);\n const currentVuln = useSelector(selectVulnDetail);\n const intl = useIntl();\n const isExpanded = useExpandable(TAB, ID, list);\n\n const refsList = list.map((ref) => ref && ref.name);\n const onAdd = (valueAdded) => {\n const newRefs = [...refsList, valueAdded];\n dispatch(updateVuln(currentVuln, 'refs', newRefs));\n };\n const onRemove = (indexToRemove) => {\n const newRefs = refsList.filter((ref, index) => index !== indexToRemove);\n dispatch(updateVuln(currentVuln, 'refs', newRefs));\n };\n\n return (\n \n \n \n \n \n );\n};\n\nexport default References;\n","import styled from 'styled-components';\n\nconst Wrapper = styled.div`\n padding: 0px 20px 20px 20px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n","import React from 'react';\nimport { useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectCurrentPolicies, selectVulnDetail } from 'store/Manage/selectors';\nimport { updateVuln } from 'store/Manage/actions';\nimport CustomList from 'Common/Components/CustomList';\nimport Wrapper from './styled';\nimport ExpandableWrapper from '../ExpandableWrapper';\nimport useExpandable from 'Hooks/useExpandable';\n\nconst TAB = 'general';\nconst ID = 'policies';\n\nconst Policies = () => {\n const dispatch = useDispatch();\n const intl = useIntl();\n const list = useSelector(selectCurrentPolicies);\n const currentVuln = useSelector(selectVulnDetail);\n const isExpanded = useExpandable(TAB, ID, list);\n\n const onAdd = (valueAdded) => {\n const newRefs = [...list, valueAdded];\n dispatch(updateVuln(currentVuln, 'policyviolations', newRefs));\n };\n\n const onRemove = (indexToRemove) => {\n const newPolicies = list.filter((pol, index) => index !== indexToRemove);\n dispatch(updateVuln(currentVuln, 'policyviolations', newPolicies));\n };\n\n return (\n \n \n \n \n \n );\n};\n\nexport default Policies;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n width: ${(props) => (props.width ? `${props.width}` : '400px')}; \n margin: ${(props) => (props.margin ? 'auto' : '0')};\n user-select: none;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const ImpactItem = styled.div`\n width: 195px;\n height: 24px;\n border-radius: 3px;\n box-shadow: inset 0 -1px 0 0 #acbdd2; \n font-size: 12.5px;\n font-weight: 400;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.08;\n letter-spacing: normal;\n text-align: center; \n margin-right: 2px;\n margin-bottom: 3px;\n background-color: ${(props) => (props.active ? '#686A76' : '#edf2f7')};\n color: ${(props) => (props.active ? 'white' : '#0b2128')};\n\n &:hover {\n background-color: ${(props) => (props.active ? '#787a87' : '#f1f4f7')};\n cursor: pointer;\n color: ${(props) => (props.active ? 'white' : '#0b2128')};\n }\n`;\nImpactItem.displayName = 'ImpactItem';\n\nexport const Row = styled.div`\n display: flex;\n flex-wrap: wrap;\n`;\n","/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport { Wrapper, ImpactItem, Row } from './styled';\n\nclass Impacts extends React.Component {\n constructor (props) {\n super(props);\n this.onChangeAccountabilityHandler = this.onChangeAccountabilityHandler.bind(this);\n this.onChangeAvailabilityHandler = this.onChangeAvailabilityHandler.bind(this);\n this.onChangeConfidentialityHandler = this.onChangeConfidentialityHandler.bind(this);\n this.onChangeIntegrityHandler = this.onChangeIntegrityHandler.bind(this);\n\n this.state = { ...props.impacts };\n }\n\n componentDidUpdate (prevProps) {\n const { impacts } = this.props;\n if (prevProps.impacts !== impacts) {\n this.setState({ ...impacts });\n }\n }\n\n onChangeAccountabilityHandler () {\n this.setState((prevState) => ({ accountability: !prevState.accountability }));\n this.props.selectCheckbox('accountability');\n }\n\n onChangeAvailabilityHandler () {\n this.setState((prevState) => ({ availability: !prevState.availability }));\n this.props.selectCheckbox('availability');\n }\n\n onChangeConfidentialityHandler () {\n this.setState((prevState) => ({ confidentiality: !prevState.confidentiality }));\n this.props.selectCheckbox('confidentiality');\n }\n\n onChangeIntegrityHandler () {\n this.setState((prevState) => ({ integrity: !prevState.integrity }));\n this.props.selectCheckbox('integrity');\n }\n\n render () {\n const {\n accountability,\n availability,\n confidentiality,\n integrity\n } = this.state;\n\n const { hideTitle, title, width, margin } = this.props;\n\n return (\n \n {!hideTitle && title &&
{title}
}\n \n this.onChangeAccountabilityHandler() } className=\"impact-item\">Accountability\n this.onChangeAvailabilityHandler() } className=\"impact-item\">Availability\n this.onChangeIntegrityHandler() } className=\"impact-item\">Integrity\n this.onChangeConfidentialityHandler() } className=\"impact-item\">Confidentiality\n \n
\n );\n }\n}\n\nImpacts.propTypes = {\n title: PropTypes.string,\n width: PropTypes.string,\n margin: PropTypes.bool,\n selectCheckbox: PropTypes.func.isRequired,\n impacts: PropTypes.shape({\n accountability: PropTypes.bool.isRequired,\n availability: PropTypes.bool.isRequired,\n confidentiality: PropTypes.bool.isRequired,\n integrity: PropTypes.bool.isRequired\n })\n};\n\nImpacts.defaultProps = {\n title: 'Impact',\n width: '400px',\n margin: true,\n impacts: {\n accountability: false,\n availability: false,\n confidentiality: false,\n integrity: false\n }\n};\n\nexport default withRouter(Impacts);\n","import styled from 'styled-components';\n\nconst Wrapper = styled.div`\n height: 80px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n","import React, { useState, useEffect } from 'react';\nimport { useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectCurrentImpacts, selectVulnDetail } from 'store/Manage/selectors';\nimport { updateVuln } from 'store/Manage/actions';\nimport Impacts from 'Common/Components/Impacts';\nimport ExpandableWrapper from '../ExpandableWrapper';\nimport Wrapper from './styled';\nimport useExpandable from 'Hooks/useExpandable';\n\nconst TAB = 'general';\nconst ID = 'impact';\n\nconst ImpactsTab = () => {\n const dispatch = useDispatch();\n const intl = useIntl();\n const initialValue = useSelector(selectCurrentImpacts);\n const currentVuln = useSelector(selectVulnDetail);\n const [impacts, setImpacts] = useState(initialValue);\n\n const getDefaultValue = () => {\n return (\n impacts.accountability ||\n impacts.availability ||\n impacts.integrity ||\n impacts.accountability\n );\n };\n\n const isExpanded = useExpandable(TAB, ID, getDefaultValue());\n\n useEffect(() => {\n setImpacts(initialValue);\n }, [initialValue]);\n\n const onSelectCheckbox = (impactChanged) => {\n const newImpacts = { ...impacts, [impactChanged]: !impacts[impactChanged] };\n setImpacts(newImpacts);\n dispatch(updateVuln(currentVuln, 'impact', newImpacts));\n };\n\n return (\n \n \n \n \n \n );\n};\n\nexport default ImpactsTab;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nconst OwnerWrapper = styled.div`\n border-radius: 3px;\n background-color: ${colors.white};\n padding: 14px 20px 26px 20px;\n user-select: none;\n font-size: 13px;\n font-weight: 300;\n color: #5E6667;\n padding: 0px 20px 20px 20px;\n`;\nOwnerWrapper.displayName = 'OwnerWrapper';\n\nexport default OwnerWrapper;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { useIntl } from 'react-intl';\nimport get from 'lodash/get';\nimport { selectVulnDetail } from 'store/Manage/selectors';\nimport ExpandableWrapper from '../ExpandableWrapper';\nimport OwnerWrapper from './styled';\nimport useExpandable from 'Hooks/useExpandable';\n\nconst TAB = 'general';\nconst ID = 'owner';\n\nconst Owner = () => {\n const intl = useIntl();\n const currentVuln = useSelector(selectVulnDetail);\n const owner = get(currentVuln, 'owner', '');\n const isExpanded = useExpandable(TAB, ID, owner);\n\n return (\n \n \n \n );\n};\n\nexport default Owner;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nconst Wrapper = styled.div`\nborder-radius: 3px;\nbackground-color: ${colors.white};\npadding: 14px 20px 26px 20px;\nuser-select: none;\nfont-size: 13px;\nfont-weight: 300;\ncolor: #5E6667;\npadding: 0px 20px 20px 20px;\n`;\n\nexport default Wrapper;\n","import React from 'react';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport {\n selectCurrentExternalId\n} from 'store/Manage/selectors';\nimport ExpandableWrapper from '../ExpandableWrapper';\nimport useExpandable from 'Hooks/useExpandable';\nimport Wrapper from './styled';\n\nconst TAB = 'general';\nconst ID = 'externalID';\n\nconst ExternalId = () => {\n const intl = useIntl();\n const externalId = useSelector(selectCurrentExternalId);\n const isExpanded = useExpandable(TAB, ID, externalId);\n\n return (\n \n \n { externalId || '' }\n \n \n );\n};\n\nexport default ExternalId;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n position: relative;\n width: 100px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Button = styled.button`\n border-radius: 2px;\n border: solid 1px #707070;\n background-color: ${colors.white};\n color: ${colors.darkBlueGrey};\n text-align: center;\n min-width: 89px;\n width: auto;\n height: 34px;\n border-radius: 2px;\n font-size: 14px;\n font-weight: 500;\n padding: 4px;\n cursor: pointer;\n\n`;\nButton.displayName = 'Button';\n","import React from 'react';\nimport { useIntl } from 'react-intl';\nimport { Wrapper, Button } from './styled';\nimport { useDispatch } from 'react-redux';\nimport { openModal } from 'store/modals/actions';\nimport { MODAL_UPGRADE_LICENSE_VULN_DETAIL } from 'store/modals/modals';\n\nconst AddTagButton = () => {\n const dispatch = useDispatch();\n const intl = useIntl();\n const editLabel = intl.formatMessage({ id: 'manage.detail.tab.general.tags.edit' });\n const onClick = () => dispatch(openModal(MODAL_UPGRADE_LICENSE_VULN_DETAIL));\n return (\n \n \n \n );\n};\n\nexport default AddTagButton;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n padding: 0px 20px 20px 20px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Subtitle = styled.div`\n margin-top: 8px;\n margin-bottom: 14px;\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: #1c4566;\n user-select: none;\n text-align: left;\n`;\nSubtitle.displayName = 'Subtitle';\n","/* eslint-disable react/no-children-prop */\nimport useExpandable from 'Hooks/useExpandable';\nimport React from 'react';\nimport { useIntl } from 'react-intl';\nimport ExpandableWrapper from '../ExpandableWrapper';\nimport AddTagButton from './components/AddTagButton';\nimport { Wrapper } from './styled';\n\nconst TAB = 'general';\nconst ID = 'tags';\n\nconst Tags = () => {\n const intl = useIntl();\n const isExpanded = useExpandable(TAB, ID, false);\n\n return (\n \n \n \n \n \n );\n};\n\nexport default Tags;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nconst sevColor = {\n critical: colors.warmPurple,\n high: colors.redPink,\n medium: colors.tangerine,\n low: colors.apple,\n informational: colors.grey2,\n disable: '#d6d6d6'\n};\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n padding: 0px 20px 20px 20px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Risk = styled.div`\n display: flex;\n flex-direction: column;\n padding: 0px 20px 20px 20px;\n`;\nRisk.displayName = 'Risk';\n\nexport const RiskScoreInfo = styled.td`\n display: flex;\n padding-bottom: 5px;\n`;\nRiskScoreInfo.displayName = 'RiskScoreInfo';\n\nexport const Text = styled.td`\n font-weight: ${({ bold }) => bold ? '600' : 'normal'};\n font-size: ${({ big }) => big ? '16px' : '13.5px'};\n padding-bottom: ${({ pb }) => pb ? '5px' : '0px'};\n color: ${({ color }) => color ? sevColor[color] : '#1c4566'};\n`;\nText.displayName = 'Text';\n\nexport const Title = styled.td`\n font-weight: 600;\n font-size: 16px;\n padding-bottom: 10px;\n color: #1c4566;\n`;\n\nexport const Line = styled.tr`\n font-size: 13px;\n & >:first-child {\n width: 180px;\n }\n`;\nLine.displayName = 'Line';\n\nexport const Link = styled.a`\n font-weight: normal;\n font-size: 13.5px;\n color: #1c4566;\n`;\n","var _style, _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconActionBarTrash = function SvgIconActionBarTrash(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 16.5 17.5\",\n style: {\n enableBackground: \"new 0 0 16.5 17.5\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\\n\\t.st0{fill:#1C4566;}\\n\")), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M6.1,14.1c0.4,0,0.7-0.3,0.7-0.7V7c0-0.4-0.3-0.7-0.7-0.7S5.5,6.6,5.5,7v6.4C5.5,13.8,5.8,14.1,6.1,14.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M15.8,2.7h-4.1V2c0-1.1-0.9-2-1.9-2H6.7C5.6,0,4.8,0.9,4.8,2v0.7H0.7C0.3,2.7,0,3,0,3.4S0.3,4,0.7,4H2 l0.3,10.3c0.1,1.8,1.4,3.1,3.1,3.1h5.6c1.7,0,3.1-1.4,3.1-3.1L14.5,4h1.3c0.4,0,0.7-0.3,0.7-0.7S16.2,2.7,15.8,2.7z M10.4,2v0.7 H6.1V2c0-0.3,0.3-0.6,0.6-0.6h3.1C10.2,1.4,10.4,1.6,10.4,2z M12.9,14.3c0,1-0.8,1.8-1.8,1.8H5.5c-1,0-1.8-0.8-1.8-1.8L3.3,4h9.9 L12.9,14.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M8.4,14.1c0.4,0,0.7-0.3,0.7-0.7V7c0-0.4-0.3-0.7-0.7-0.7S7.7,6.6,7.7,7v6.4C7.7,13.8,8,14.1,8.4,14.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M10.6,14.1c0.4,0,0.7-0.3,0.7-0.7V7c0-0.4-0.3-0.7-0.7-0.7S10,6.6,10,7v6.4C10,13.8,10.2,14.1,10.6,14.1z\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconActionBarTrash, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon-action-bar-trash.b1589206.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgErrorMark = function SvgErrorMark(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#EA3158\",\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M243 29c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm1 15h-2v-2h2v2zm0-4h-2v-6h2v6z\",\n transform: \"translate(-260 -218) translate(27 189)\"\n }))))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgErrorMark, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/error-mark.364d0169.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ellipsisText } from 'Styles/styles';\nimport { ReactComponent as TrashIcon } from 'Images/icon-action-bar-trash.svg';\nimport { ReactComponent as _Error } from 'Images/error-mark.svg';\nimport { FaPlus } from 'react-icons/fa';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n padding: 0px 20px 26px 20px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const TrashWrapper = styled.div`\n margin-left: auto;\n padding-left: 20px;\n opacity: 0;\n`;\n\nexport const DataContainer = styled.div`\n //width: 400px; \n background-color: ${colors.white};\n box-shadow: 0 2px 50px 0 ${colors.iceBlue};\n //max-height: 117px;\n overflow-y: auto;\n`;\nDataContainer.displayName = 'DataContainer';\n\nexport const DataItem = styled.div` \n font-size: 13px;\n color: #1c2243;\n cursor: pointer;\n padding: 0 14px;\n height: 34px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n background-color: ${(props) => (props.isOdd ? `${colors.iceBlue}` : '')};\n\n &:hover{\n background-color: #f1f4f7;\n font-weight: 500;\n\n & ${TrashWrapper}{\n opacity: 1;\n }\n }\n`;\nDataItem.displayName = 'DataItem';\n\nexport const Placeholder = styled.a`\n text-align: left;\n font-size: 13.5px;\n line-height: 2.52;\n margin-right: auto;\n ${ellipsisText}\n`;\nPlaceholder.displayName = 'Placeholder';\n\nexport const InputComp = styled.input`\n width: 100%;\n height: 100%;\n border-style: solid;\n border-color: transparent;\n border-width: 1px 1px 0px 1px;\n box-shadow: 0 1px 0 0 #afafaf;\n background-color: #edf2f7;\n padding-left: 15px;\n padding-right: 42px;\n font-weight: 300 !important;\n margin-bottom: 2px;\n\n &.full{\n background-color: white; \n }\n\n &.responsive {\n width:100%;\n }\n\n &::placeholder {\n color: #afb1bc;\n font-size: 13.5px;\n }\n\n &:hover{\n border-style: solid;\n border-color: #afb1bc;\n border-width: 1px 1px 0px 1px;\n }\n\n &:focus{\n background-color: white;\n\n &::placeholder {\n color: transparent;\n }\n }\n`;\nInputComp.displayName = 'InputComp';\n\nexport const Plus = styled(FaPlus)`\n position: absolute;\n right: 14px;\n top: 14px;\n height: 12px;\n width: 12px;\n cursor: pointer;\n color: #515a65;\n &:hover{\n color: white; \n }\n`;\n\nexport const Trash = styled(TrashIcon)` \n width: 16px;\n height: 17px;\n align-self: flex-end;\n color: ${colors.grey12};\n`;\n\nexport const Error = styled.div`\n color: #ea3158;\n position: absolute;\n font-size: 10.5px;\n letter-spacing: 0.08px;\n top: 12px;\n right: 35px;\n`;\n\nexport const InputWrapper = styled.div`\n //width: 400px;\n height: 38px;\n position: relative;\n //margin-top: 14px;\n`;\n\nexport const ErrorIcon = styled(_Error)`\n margin-right: 5px;\n`;\nErrorIcon.displayName = 'ErrorIcon';\n","import React, { useEffect, useState } from 'react';\nimport { useIntl } from 'react-intl';\nimport {\n updateVuln\n} from 'store/Manage/actions';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectVulnDetail } from 'store/Manage/selectors';\nimport {\n Wrapper,\n DataContainer,\n DataItem,\n Placeholder,\n InputComp,\n Trash,\n TrashWrapper,\n Error,\n InputWrapper,\n ErrorIcon,\n Plus\n} from './styled';\nimport { Title } from '../ExpandableWrapper/styled';\n\nconst useVulnFieldPatch = (key) => {\n const dispatch = useDispatch();\n const currentVuln = useSelector(selectVulnDetail);\n const [list, setList] = useState(currentVuln[key]);\n\n useEffect(() => {\n setList(currentVuln[key]);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentVuln._id, key]);\n\n const onAdd = (name) => {\n const newList = [...list, name];\n setList(newList);\n dispatch(updateVuln(currentVuln, key, newList));\n };\n\n const onRemove = (name) => {\n const filterList = list.filter((key) => key !== name);\n setList(filterList);\n dispatch(updateVuln(currentVuln, key, filterList));\n };\n\n return { list, onAdd, onRemove };\n};\n\nconst CVE = ({ showRiskInfo }) => {\n const intl = useIntl();\n const { list, onAdd, onRemove } = useVulnFieldPatch('cve');\n\n return (\n \n { showRiskInfo ? : null }\n <Input\n placeholder=\"CVE-YYYY-NNNN\"\n errorMessage=\"CVE not valid\"\n validator={ /^(CVE-(1999|2\\d{3})-(\\d{4,7}))$/ }\n onAdd={ onAdd }\n onRemove={ onRemove }\n listData={ list }\n />\n </Wrapper>\n );\n};\n\nexport default CVE;\n\nexport const Input = ({ validator, placeholder, errorMessage, listData, onAdd, onRemove }) => {\n const [value, setValue] = useState('');\n const [error, setError] = useState(false);\n const isOdd = (n) => n % 2 !== 0;\n\n const isValid = (value) => {\n if (!validator) return true;\n return validator.test(value);\n };\n\n const addCVE = () => {\n if (!isValid(value.toUpperCase())) {\n setError(true);\n return;\n }\n onAdd(value);\n setValue('');\n };\n const handleKeyPress = (e) => {\n if (e.key === 'Enter') {\n addCVE();\n }\n };\n\n const handleChange = (e) => {\n setError(false);\n setValue(e.target.value);\n };\n\n return (\n <>\n <InputWrapper>\n <InputComp\n value={ value }\n placeholder={ placeholder }\n onChange={ handleChange }\n onKeyPress={ handleKeyPress }\n />\n <Plus onClick={ addCVE } />\n {error && (\n <Error>\n <ErrorIcon />\n {errorMessage}\n </Error>\n )}\n </InputWrapper>\n <DataContainer>\n { listData && listData.map((name, i) => (\n <DataItem\n key={ `di_${Math.random().toString(36).substr(2, 9)}` }\n isOdd={ isOdd(i) }\n >\n <Placeholder href={ `https://www.cve.org/CVERecord?id=${name.toUpperCase()}` } target=\"_blank\" rel=\"noopener noreferrer\">{name}</Placeholder>\n <TrashWrapper\n onClick={ () => onRemove(name) }\n >\n <Trash />\n </TrashWrapper>\n </DataItem>\n )) }\n </DataContainer>\n </>\n );\n};\n","import React, { useMemo } from 'react';\nimport ExpandableWrapper from '../ExpandableWrapper';\nimport { useIntl } from 'react-intl';\nimport {\n Risk, Text, Line, Link\n} from './styled';\nimport { useSelector } from 'react-redux';\nimport { selectVulnDetail } from 'store/Manage/selectors';\nimport useExpandable from 'Hooks/useExpandable';\nimport CVE from '../CVE';\n\nconst TAB = 'general';\nconst ID = 'risk';\n\nconst RiskAndCVE = () => {\n const intl = useIntl();\n const currentVuln = useSelector(selectVulnDetail);\n const isExpanded = useExpandable(TAB, ID, currentVuln.cve);\n\n const vulnCvss = () => {\n if (!currentVuln.cvss3) return null;\n if (currentVuln.cvss3.base_score) return { ...currentVuln.cvss3, isV3: true };\n else if (currentVuln.cvss2.base_score) return { ...currentVuln.cvss2, isV3: false };\n else return null;\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const cvss = useMemo(() => vulnCvss(), [currentVuln.cvss3, currentVuln.cvss2]);\n const cwe = useMemo(() => currentVuln.cwe[0], [currentVuln.cwe]);\n const owasp = useMemo(() => currentVuln.owasp[0], [currentVuln.owasp]);\n const risk = useMemo(() => currentVuln.risk, [currentVuln.risk]);\n\n const title = (!cvss && !cwe && !owasp && !risk?.score) ? intl.formatMessage({ id: 'manage.detail.tab.general.cve' }) : intl.formatMessage({ id: 'manage.detail.tab.general.risk' });\n const showRiskInfo = cvss || cwe || owasp || risk?.score;\n\n return (\n <ExpandableWrapper id={ ID } title={ title } defaultValue={ isExpanded } tab={ TAB }>\n { showRiskInfo &&\n <Risk>\n <table>\n {cvss && <Line>\n <Text bold>CVSS {cvss.isV3 ? 'v3.0' : 'v2.0'} Base Score</Text>\n <Text>{cvss.base_score}</Text>\n </Line>}\n {cvss && <Line>\n <Text pb bold>CVSS {cvss.isV3 ? 'v3.0' : 'v2.0'} Vector</Text>\n <Text pb>{cvss.vector_string}</Text>\n </Line>}\n {cwe && <Line >\n <Text pb bold>CWE Weakness Type</Text>\n <Text pb ><Link target=\"_blank\" href={ `https://cwe.mitre.org/data/definitions/${cwe.split('-')[1]}.html` } rel=\"noopener noreferrer\">{cwe}</Link></Text>\n </Line>}\n </table>\n\n </Risk>}\n <CVE showRiskInfo={ showRiskInfo } />\n </ExpandableWrapper>\n );\n};\n\nexport default RiskAndCVE;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div``;\nWrapper.displayName = 'Wrapper';\n\nexport const Fields = styled.div`\n & > * {\n margin-bottom: 20px;\n }\n`;\nFields.displayName = 'Fields';\n","import React from 'react';\nimport Title from './components/Title';\nimport ActionBar from './components/ActionBar';\nimport { HostData } from './components/HostData';\nimport Description from './components/Description';\nimport Resolution from './components/Resolution';\nimport References from './components/References';\nimport Policies from './components/Policies';\nimport ImpactsTab from './components/ImpactsTab';\nimport Owner from './components/Owner';\nimport ExternalId from './components/ExternalId';\nimport Tags from './components/Tags';\nimport RiskAndCVE from './components/RiskAndCVE';\nimport ToggleButtons from 'Screens/Manage/components/ToggleButtons';\nimport { Wrapper, Fields } from './styled';\n\nconst GeneralTab = () => (\n <Wrapper>\n <Title />\n <ActionBar />\n <HostData />\n <ToggleButtons id=\"general\" />\n <Fields>\n <RiskAndCVE />\n <Description />\n <Resolution />\n <Tags />\n <References />\n <ImpactsTab />\n <Policies />\n <ExternalId />\n <Owner />\n </Fields>\n </Wrapper>\n);\n\nexport default GeneralTab;\n","import React from 'react';\nimport EvidenceTab from 'Common/Components/EvidenceTab';\nimport CustomFieldsTab from '../CustomFieldsTab';\nimport TechnicalTab from '../TechnicalTab';\nimport GeneralTab from '../GeneralTab';\n\nconst TABS = [\n {\n id: 'general',\n intlId: 'manage.detail.tab.general',\n component: <GeneralTab />\n },\n {\n id: 'technicalDetails',\n intlId: 'manage.detail.tab.technicalDetails',\n component: <TechnicalTab />\n },\n {\n id: 'evidence',\n intlId: 'manage.detail.tab.evidence',\n component: <EvidenceTab />\n },\n {\n id: 'customFields',\n intlId: 'manage.detail.tab.customAttributes',\n component: <CustomFieldsTab />\n }\n];\n\nexport default TABS;\n","import get from 'lodash/get';\nimport sortBy from 'lodash/sortBy';\nimport { tableMaxPages } from 'Screens/Constants';\nimport TABS from 'Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/TabSelector/tabs';\n\nexport const selectImagePreview = (state) => get(state, 'manage.imagePreview', '');\nexport const selectError = (state) => get(state, 'manage.error', false);\nexport const selectErrorMessage = (state) => get(state, 'manage.errorMessage', '');\nexport const selectHasVulns = (state) => get(state, 'manage.vulnsList', []).length > 0;\nexport const selectVulnsList = (state) => get(state, 'manage.vulnsList', []);\nexport const selectVulnsGroupedData = (state, index) => get(state, `manage.vulnsList.${index}.groupData`, []);\nexport const selectVulnsCount = (state) => get(state, 'manage.vulnsCount', 0);\nexport const selectVulnsSelected = (state) => get(state, 'manage.vulnsSelected', []);\nexport const selectVulnDetail = (state) => get(state, 'manage.vulnDetail', false);\nexport const selectVulnDetailId = (state) => get(state, 'manage.vulnDetail._id', 0);\nexport const selectVulnDetailSelectedTabId = (state) => get(state, 'manage.vulnDetailSelectedTab', 'general');\nexport const selectVulnDetailSelectedTab = (state) => {\n const selectedTabId = selectVulnDetailSelectedTabId(state);\n const defaultTab = TABS.find((tab) => tab.id === 'general');\n const selectedTab = TABS.find((tab) => tab.id === selectedTabId) || defaultTab;\n return selectedTab;\n};\nexport const selectShowDetail = (state) => get(state, 'manage.showVulnDetail', false);\nexport const selectLastSelected = (state) => get(state, 'manage.lastSelected', -1);\nexport const selectLastIndexForRange = (state) => get(state, 'manage.lastIndexForRange', 1);\nexport const selectReadOnly = (state) => get(state, 'manage.readonly', false);\nexport const selectPermissions = (state) => get(state, 'faraday.permissions.vulns', []);\nexport const selectShowManageLeftFilters = (state) => get(state, 'manage.showLeftFilters', false);\n\nexport const selectIsFetching = (state) => get(state, 'manage.isFetching', false);\nexport const selectIsFetchingExpandedData = (state) => get(state, 'manage.isFetchingExpandedData', false);\n\nexport const selectVisiblePages = (state) => {\n const pagesMap = get(state, 'manage.pagesMap', {});\n const currentPage = get(state, 'manage.page', 1);\n const group_by = get(state, 'manage.group_by', '');\n const vulnsList = get(state, 'manage.vulnsList', []);\n let arrayResponse = [];\n\n if (!group_by || group_by.length === 0) {\n const initialPage = currentPage <= tableMaxPages ? 1 : (currentPage - tableMaxPages) + 1;\n\n for (let i = initialPage; i <= currentPage; i += 1) {\n if (pagesMap[i]) arrayResponse = arrayResponse.concat(pagesMap[i]);\n }\n return arrayResponse;\n }\n return vulnsList;\n};\n\nexport const selectRoutes = (state) => {\n const permissions = get(state, 'faraday.permissions', []);\n const routeList = [];\n\n if (permissions) {\n if (permissions.vulns && permissions.vulns.view.allowed) routeList.push({ name: '/manage', desc: 'Vulnerabilities', requireWorkspace: true });\n if (permissions.hosts && permissions.hosts.view.allowed) routeList.push({ name: '/host', desc: 'Assets', requireWorkspace: true });\n // if (this.props.faraday.permissions.credentials && this.props.faraday.permissions.credentials.view.allowed) routeList.push({ name: '/credential/workspaceSelected/', desc: 'Credentials' });\n }\n return routeList;\n};\n\nexport const selectCurrentExternalId = (state) => {\n const detail = selectVulnDetail(state);\n return get(detail, 'external_id', '');\n};\nexport const selectCurrentReferences = (state) => {\n const detail = selectVulnDetail(state);\n return sortBy(get(detail, 'refs', []));\n};\nexport const selectCurrentPolicies = (state) => {\n const detail = selectVulnDetail(state);\n return get(detail, 'policyviolations', []);\n};\nexport const selectCurrentImpacts = (state) => {\n const detail = selectVulnDetail(state);\n return get(detail, 'impact', []);\n};\nexport const selectUsesMockVulns = (state) => get(state, 'manage.usesMockVulns', false);\n\nexport const allVulnsAreSelected = (state) => {\n const vulns = selectVulnsList(state);\n const vulnList = selectVulnsSelected(state);\n return vulns.every((testVuln) => vulnList.some((vuln) => vuln._id === testVuln._id)) && vulnList.length > 0;\n};\n\nexport const someVulnIsSelected = (state) => (selectVulnsSelected(state).length > 0);\n\nexport const selectAttachments = (state) => get(state, 'manageEditCreate._attachments', {});\n\nexport const selectShowContextMenu = (state) => get(state, 'manage.showContextMenu', false);\nexport const selectContextMenuXPos = (state) => get(state, 'manage.contextMenuXPos', 0);\nexport const selectContextMenuYPos = (state) => get(state, 'manage.contextMenuYPos', 0);\n\nexport const selectModalBulkUpdateField = (state) => get(state, 'manage.bulkUpdateField', '');\nexport const selectModalBulkUpdateValue = (state) => get(state, 'manage.bulkUpdateValue', '');\n\nexport const selectTemplatesCreated = (state) => get(state, 'manage.templatesCreated', []);\nexport const selectFailedTemplates = (state) => get(state, 'manage.failedTemplates', []);\n\nexport const selectStatusTemplateMessage = (state) => {\n const templatesCreated = selectTemplatesCreated(state);\n const failedTemplates = selectFailedTemplates(state);\n\n const createdSuccessfully = (templatesCreated.length > 0) && (failedTemplates.length === 0);\n const singlePartialSuccess = (templatesCreated.length > 0) && (failedTemplates.length === 1);\n const multiplePartialSuccess = (templatesCreated.length > 0) && (failedTemplates.length > 0);\n const singleFailure = (templatesCreated.length === 0) && (failedTemplates.length === 1);\n const multipleFailure = (templatesCreated.length === 0) && (failedTemplates.length > 0);\n\n const type = (createdSuccessfully && 'success') ||\n (singlePartialSuccess && 'singlePartialSuccess') ||\n (multiplePartialSuccess && 'multiplePartialSuccess') ||\n (singleFailure && 'singleFailure') ||\n (multipleFailure && 'multipleFailure');\n\n return type;\n};\n\nexport const modalData = {\n success: {\n title: 'success',\n subtitle: 'success'\n },\n singlePartialSuccess: {\n title: 'partialSuccess'\n },\n multiplePartialSuccess: {\n title: 'partialSuccess',\n subtitle: 'multiFail'\n },\n singleFailure: {\n title: 'failure'\n },\n multipleFailure: {\n title: 'failure',\n subtitle: 'multiFail'\n }\n};\n\nexport const selecListTemplates = (state, status) => {\n const templatesCreated = selectTemplatesCreated(state);\n const failedTemplates = selectFailedTemplates(state);\n let list = [];\n if (status === 'success') {\n list = templatesCreated.map((t) => t.name);\n } else if (status === 'multiplePartialSuccess' || status === 'multipleFailure') {\n list = failedTemplates.map((t) => t.name);\n } else {\n list = [];\n }\n\n return list;\n};\n\nexport const selectShowDeleteConfirmation = (state) => get(state, 'manage.showDeleteConfirmation', false);\n\nexport const selectSelectAll = (state) => get(state, 'manage.selectAll', false);\n","import api from 'services/api';\nimport get from 'lodash/get';\n\nimport { MOCK_VULN_LIST } from 'Common/Components/Tour/helpers/mockVuln';\nimport selectTourFinished from 'store/Preferences/Tour/selectors';\nimport {\n CONTEXT_MENU_FILTER_KEYS, eq\n} from 'store/Filters/constants';\nimport {\n selectQueryParam, selectIsGrouping, selectExpandedQueryParam, selectAdvancedFilterQueryParam, selectAdvancedExpandedQueryParam\n} from 'store/Filters/selectors';\nimport {\n setPageNumber,\n setFilter,\n setOrderBy,\n setGroupBy,\n clearGroupBy,\n expandGroupBy,\n setFilterError\n} from 'store/Filters/actions';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport {\n SEARCH_VULNS_START,\n GET_VULNS_SUCCESS_MANAGE,\n GET_GROUPED_DATA_SUCCESS,\n GET_GROUPED_DATA_START,\n ADD_MOCK_VULN,\n SET_VULNS_FILTER_ERROR\n} from 'store/Manage/types';\n\nimport { onGetVulnsFail } from './actions';\n\nexport const setVulnsFilterError = () => async (dispatch) => dispatch({ type: SET_VULNS_FILTER_ERROR });\n\nexport function newGetVulns () {\n return async (dispatch, getState) => {\n dispatch({ type: SEARCH_VULNS_START });\n const state = getState();\n const workspaceSelected = selectCurrentWorkspace(state);\n let advancedFilterQueryParam = [];\n\n try {\n advancedFilterQueryParam = selectAdvancedFilterQueryParam(state, 'vulns');\n } catch (e) {\n dispatch(setFilterError('vulns', 'Syntax error. Please try again. For further help check our documentation'));\n return dispatch(setVulnsFilterError());\n }\n\n const hasAdvancedFilter = advancedFilterQueryParam.filters.length > 0;\n const standardQueryParam = selectQueryParam('vulns', state);\n const queryParam = hasAdvancedFilter ? advancedFilterQueryParam : standardQueryParam;\n\n const groupBy = selectIsGrouping('vulns', state);\n\n try {\n const response = await api.manage.newGetVulns(workspaceSelected, queryParam);\n\n if (!response.status || response.status !== 'canceled') {\n const vulns = get(response, 'vulnerabilities', []);\n const result = vulns.map((vuln) => vuln.value);\n const vulnsCountArray = vulns.map((vuln) => vuln.value.count);\n const vulnsCountGroupBy = vulnsCountArray.reduce((prev, cur) => prev + cur, 0);\n // si es tour y no tiene vulns\n const isTourFinished = selectTourFinished(state);\n const vulnsCount = response.count || 0;\n\n if (vulnsCount === 0 && !isTourFinished) {\n return dispatch({\n type: ADD_MOCK_VULN,\n data: MOCK_VULN_LIST,\n vulnsCount: 1\n });\n }\n return dispatch({\n type: GET_VULNS_SUCCESS_MANAGE,\n data: result,\n vulnsCount: groupBy ? vulnsCountGroupBy : response.count\n });\n }\n } catch (e) {\n const errorMessage = get(e, 'message', 'Failed to obtain vulnerabilities.');\n if (errorMessage.includes('filter')) {\n dispatch(setFilterError('vulns', 'Invalid filters. Please try again. For further help check our documentation'));\n return dispatch(setVulnsFilterError());\n }\n return dispatch(onGetVulnsFail(errorMessage));\n }\n };\n}\n\nfunction getExpandedGroupByData (index) {\n return async (dispatch, getState) => {\n dispatch({ type: GET_GROUPED_DATA_START });\n const state = getState();\n\n let advancedFilterQueryParam = [];\n try {\n advancedFilterQueryParam = selectAdvancedExpandedQueryParam(state, 'vulns');\n } catch (e) {\n dispatch(setFilterError('vulns', 'Syntax error. Please try again. For further help check our documentation'));\n return dispatch(setVulnsFilterError());\n }\n const hasAdvancedFilter = advancedFilterQueryParam.filters.length > 0;\n const standardQueryParam = selectExpandedQueryParam('vulns', state);\n const queryParam = hasAdvancedFilter ? advancedFilterQueryParam : standardQueryParam;\n\n const { faraday } = state;\n\n try {\n const response = await api.manage.newGetVulns(faraday.workspaceSelected, queryParam);\n\n if (!response.status || response.status !== 'canceled') {\n const result = response.vulnerabilities.map((vuln) => vuln.value);\n\n return dispatch({\n type: GET_GROUPED_DATA_SUCCESS,\n data: result,\n index\n });\n }\n } catch (e) {\n const errorMessage = get(e, 'message', 'Failed to obtain vulnerabilities.');\n if (errorMessage.includes('filter')) {\n dispatch(setFilterError('vulns', 'Invalid filters. Please try again. For further help check our documentation'));\n return dispatch(setVulnsFilterError());\n }\n return dispatch(onGetVulnsFail(errorMessage));\n }\n };\n}\n\n// CONTEXT MENU FILTERING FUNCTIONS -------------------------------------------------\n\nconst contextMenuFilterByName = (selectedVuln) => {\n const filter = get(CONTEXT_MENU_FILTER_KEYS, 'name.filter', null);\n const nameValue = get(selectedVuln, 'name', '');\n filter.val = nameValue;\n return filter;\n};\nconst contextMenuFilterByAsset = (selectedVuln) => {\n const filter = get(CONTEXT_MENU_FILTER_KEYS, 'asset.filter', null);\n const targetValue = get(selectedVuln, 'target', '');\n filter.val = targetValue;\n return filter;\n};\nconst contextMenuFilterByDate = (selectedVuln) => {\n const filter = get(CONTEXT_MENU_FILTER_KEYS, 'date.filter', null);\n const date_parsed = new Date(get(selectedVuln, 'date', ''));\n const dateValue = `${date_parsed.getFullYear()}-${date_parsed.getMonth() + 1}-${date_parsed.getDate()}`;\n filter.val = dateValue;\n return filter;\n};\nconst contextMenuFilterByStatus = (selectedVuln) => {\n const filter = get(CONTEXT_MENU_FILTER_KEYS, 'status.filter', null);\n filter.val = selectedVuln.status;\n return filter;\n};\nconst contextMenuFilterByService = (selectedVuln) => {\n const filter = get(CONTEXT_MENU_FILTER_KEYS, 'service.filter', null);\n const serviceValue = get(selectedVuln, 'service.name', '');\n filter.val = {\n name: 'name',\n op: eq.name.value,\n val: serviceValue\n };\n return filter;\n};\n\nconst contextMenufilteringFunctions = {\n [CONTEXT_MENU_FILTER_KEYS.name.key.name]: contextMenuFilterByName,\n [CONTEXT_MENU_FILTER_KEYS.asset.key.name]: contextMenuFilterByAsset,\n [CONTEXT_MENU_FILTER_KEYS.date.key.name]: contextMenuFilterByDate,\n [CONTEXT_MENU_FILTER_KEYS.status.key.name]: contextMenuFilterByStatus,\n [CONTEXT_MENU_FILTER_KEYS.service.key.name]: contextMenuFilterByService\n};\n\nexport function setContextMenuFilter (filterKey, selectedVuln) {\n return (dispatch) => {\n const newFilter = contextMenufilteringFunctions[filterKey](selectedVuln);\n if (newFilter) dispatch(setFilter('vulns', newFilter));\n dispatch(newGetVulns());\n };\n}\n// ------------------------------------------------------------------------------\n\nexport function setPage (pageNumber) {\n return (dispatch) => {\n dispatch(setPageNumber('vulns', pageNumber));\n dispatch(newGetVulns());\n };\n}\n\nexport function setOrderByVulns (sorting) {\n return (dispatch, getState) => {\n const state = getState();\n const isGrouping = selectIsGrouping('vulns', state);\n\n dispatch(setOrderBy('vulns', sorting));\n if (!isGrouping) dispatch(newGetVulns());\n };\n}\n\nexport function setGroupByVulns (group_by) {\n return async (dispatch) => {\n const field = get(group_by, '[0].field', '');\n await dispatch(setGroupBy('vulns', group_by));\n if (field) await dispatch(setOrderBy('vulns', [{ id: field, desc: field === 'severity' }]));\n dispatch(newGetVulns());\n };\n}\n\nexport function clearGroupByVulns () {\n return async (dispatch) => {\n await dispatch(clearGroupBy('vulns'));\n };\n}\n\nexport function expandGroupByVulns (index, data) {\n return async (dispatch) => {\n await dispatch(expandGroupBy('vulns', data));\n dispatch(getExpandedGroupByData(index));\n };\n}\n","const defaultFields = {\n id: {\n visible: false, order: -1, maxWidth: 80, minWidth: 80, defaultMin: 80\n },\n asset: {\n visible: true, order: 1, locked: true, maxWidth: 150, minWidth: 150, defaultMin: 150\n },\n important: {\n visible: true, order: 2, locked: true, maxWidth: 90, minWidth: 90, defaultMin: 90\n },\n search: {\n visible: true, order: 3, maxWidth: 60, minWidth: 60, defaultMin: 60\n },\n os: {\n visible: true, order: 4, maxWidth: 38, minWidth: 38, defaultMin: 38\n },\n hostnames: {\n visible: true, order: 5, maxWidth: 300, minWidth: 200, defaultMin: 200\n },\n open_services: {\n visible: true, order: 7, maxWidth: 135, minWidth: 40, defaultMin: 40\n },\n vulns: {\n visible: true, order: 6, minWidth: 60, defaultMin: 60\n },\n owned: {\n visible: true, order: 8, maxWidth: 80, minWidth: 80, defaultMin: 80\n },\n description: {\n visible: false, order: -1, maxWidth: 210, minWidth: 165, defaultMin: 165\n },\n mac: {\n visible: false, order: -1, maxWidth: 150, minWidth: 120, defaultMin: 120\n },\n owner: {\n visible: false, order: -1, minWidth: 70, defaultMin: 70\n },\n creation_time: {\n visible: true, order: 9, maxWidth: 150, minWidth: 110, defaultMin: 110\n },\n severity_counts: {\n visible: true, order: 10, maxWidth: 475, minWidth: 280, defaultMin: 280\n },\n last_modified: {\n visible: false, order: -1, maxWidth: 350, minWidth: 140, defaultMin: 140\n },\n services: {\n visible: false, order: -1, minWidth: 150, defaultMin: 150\n }\n};\n\nexport default defaultFields;\n","import defaultFields from './fields';\n\nconst initialState = {\n isFetching: false,\n error: false,\n errorMessage: '',\n hostList: [],\n hostCount: 0,\n addColumnsOpened: false,\n mapGroupByIndex: {},\n fields: defaultFields,\n showModalEditCreate: false,\n hostsSelected: [],\n lastSelected: -1,\n lastHostSelected: {},\n lastIndexForRange: -1,\n showLeftFilters: false,\n showDeleteConfirmation: false\n};\n\nexport default initialState;\n","import get from 'lodash/get';\nimport initialState from './initialState';\n\nexport const selectMapGroupByIndex = (state) => get(state, 'host.mapGroupByIndex', initialState.mapGroupByIndex);\nexport const selectHostList = (state) => get(state, 'host.hostList', initialState.hostList);\nexport const selectHostCount = (state) => get(state, 'host.hostCount', initialState.hostCount);\nexport const selectHostsSelected = (state) => get(state, 'host.hostsSelected', initialState.hostsSelected);\nexport const selectIsFetching = (state) => get(state, 'host.isFetching', initialState.isFetching);\nexport const selectShowDeleteConfirmation = (state) => get(state, 'host.showDeleteConfirmation', initialState.showDeleteConfirmation);\nexport const selectShowModalEditCreate = (state) => get(state, 'host.showModalEditCreate', initialState.showModalEditCreate);\nexport const selectAddColumnsOpened = (state) => get(state, 'host.addColumnsOpened', initialState.addColumnsOpened);\nexport const selectShowHostLeftFilters = (state) => get(state, 'host.showLeftFilters', false);\nexport const selectLastSelected = (state) => get(state, 'host.lastSelected', -1);\nexport const allHostsAreSelected = (state) => {\n const hosts = selectHostList(state);\n const hostList = selectHostsSelected(state);\n return hosts.every((testHost) => hostList.some((host) => host._id === testHost._id));\n};\nexport const selectPermissions = (state) => get(state, 'faraday.permissions.hosts', []);\n","import get from 'lodash/get';\n\nexport const selectHostDetail = (state) => get(state, 'hostDetail.host', null);\nexport const selectHostDetailId = (state) => get(state, 'hostDetail.host._id', null);\n\nexport const selectIsFetching = (state) => get(state, 'hostDetail.vulns.isFetching', false);\nexport const selectVulns = (state) => get(state, 'hostDetail.vulns.data', []);\nexport const selectFields = (state) => get(state, 'hostDetail.vulns.fields', []);\nexport const selectVulnsCount = (state) => get(state, 'hostDetail.vulns.count', 0);\n\nexport const selectShowHostDetail = (state) => {\n const show = get(state, 'hostDetail.host', null);\n return !!show;\n};\n\nexport const selectSelectedService = (state) => get(state, 'hostDetail.createOrEditService.selectedService', null);\n\nexport const selectIsFetchingServices = (state) => get(state, 'hostDetail.services.isFetching', false);\nexport const selectServices = (state) => get(state, 'hostDetail.services.data', []);\nexport const selectServicesFields = (state) => get(state, 'hostDetail.services.fields', []);\n","import get from 'lodash/get';\nimport api from 'services/api';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport * as types from 'store/HostDetail/types';\nimport { redirect } from 'store/Router/actions';\nimport { setOrderBy, setPageNumber } from 'store/Filters/actions';\nimport { selectShowHostDetail, selectVulnsCount } from './selectors';\nimport { selectQueryParam } from 'store/Filters/selectors';\nimport { selectVulns } from 'store/HostDetail/selectors';\n\nconst getVulnsSuccedCallback = (data) => ({\n type: types.GET_DATA_VULNS_SUCCESS,\n data: data && data.vulnerabilities.length > 0 ? data.vulnerabilities.map((x) => x.value) : [],\n count: data.count\n});\n\nconst getVulnsFailureCallback = (error) => ({\n type: types.GET_DATA_VULNS_FAIL,\n error\n});\n\nexport function resetHostDetail () {\n return (dispatch) => {\n dispatch({ type: types.RESET_STATE_HOST_DETAIL });\n };\n}\n\nexport function getVulns (ip) {\n return async (dispatch, getState) => {\n dispatch({ type: types.GET_DATA_VULNS_START });\n const workspaceSelected = selectCurrentWorkspace(getState());\n const filters = [\n {\n name: 'target',\n op: '==',\n val: ip\n }\n ];\n const queryParam = selectQueryParam('vulnsAssets', getState());\n try {\n const response = await api.manage.newGetVulns(workspaceSelected, { ...queryParam, filters });\n return dispatch(getVulnsSuccedCallback(response));\n } catch (e) {\n return dispatch(getVulnsFailureCallback(e));\n }\n };\n}\n\nconst getServicesSuccedCallback = (data) => ({\n type: types.GET_DATA_SERVICES_SUCCESS,\n data\n});\n\nconst getServicesFailureCallback = (error) => ({\n type: types.GET_DATA_SERVICES_FAIL,\n error\n});\n\nexport function getServices (hostId) {\n return async (dispatch, getState) => {\n dispatch({ type: types.GET_DATA_SERVICES_START });\n try {\n const workspace = selectCurrentWorkspace(getState());\n const response = await api.hostDetail.fetchServices(workspace, hostId);\n return dispatch(getServicesSuccedCallback(response));\n } catch (e) {\n return dispatch(getServicesFailureCallback(e));\n }\n };\n}\n\nexport function getTools () {\n return async (dispatch, getState) => {\n try {\n dispatch({ type: types.GET_DATA_TOOLS_START });\n const workspace = selectCurrentWorkspace(getState());\n const { host } = getState().hostDetail;\n const data = await api.hostDetail.fetchTools(workspace, host.id);\n return dispatch({ type: types.GET_DATA_TOOLS_SUCCESS, data: data.tools });\n } catch (e) {\n return dispatch({ type: types.GET_DATA_TOOLS_FAIL, e });\n }\n };\n}\n\nexport function redirectToHostDetail (id) {\n return (dispatch, getState) => {\n const currentWorkspace = selectCurrentWorkspace(getState());\n dispatch(redirect(`/host/${currentWorkspace}/${id}`));\n };\n}\n\nexport function redirectToHost () {\n return (dispatch, getState) => {\n const currentWorkspace = selectCurrentWorkspace(getState());\n dispatch(redirect(`/host/${currentWorkspace}`));\n };\n}\n\nexport function showHostDetail (host) {\n return (dispatch) => {\n dispatch({ type: types.SHOW_HOST_DETAIL, host });\n };\n}\n\nexport function showHostDetailById (id) {\n return async (dispatch, getState) => {\n if (id > 0) {\n const currentWorkspace = selectCurrentWorkspace(getState());\n try {\n const host = await api.hostDetail.fetchById(currentWorkspace, id);\n dispatch(showHostDetail(host));\n } catch (e) {\n dispatch(redirectToHost());\n }\n }\n };\n}\n\nexport function hideHostDetail () {\n return (dispatch, getState) => {\n const showHostDetail = selectShowHostDetail(getState());\n if (showHostDetail) dispatch({ type: types.HIDE_HOST_DETAIL });\n };\n}\n\nexport function resetAddEditService () {\n return async (dispatch) => dispatch({ type: types.HOST_ADD_EDIT_SERVICE_RESET });\n}\n\nexport function addService (name, hostId, status, ports, protocol, version, description, owned) {\n return async (dispatch, getState) => {\n try {\n const { workspaceSelected } = getState().faraday;\n await api.hostDetail.addService(workspaceSelected, hostId, name, status, ports, protocol, version, description, owned);\n dispatch({ type: types.HOST_ADD_EDIT_SERVICE_SUCCESS });\n\n return dispatch(getServices(hostId));\n } catch (e) {\n const message = get(e, 'message', 'There was an error, please try again.');\n return dispatch({ type: types.HOST_ADD_EDIT_SERVICE_FAIL, message });\n }\n };\n}\n\nexport function editService (name, hostId, serviceId, status, ports, protocol, version, description, owned) {\n return async (dispatch, getState) => {\n try {\n const { workspaceSelected } = getState().faraday;\n await api.hostDetail.editService(workspaceSelected, serviceId, name, status, ports, protocol, version, description, owned);\n dispatch({ type: types.HOST_ADD_EDIT_SERVICE_SUCCESS });\n\n return dispatch(getServices(hostId));\n } catch (e) {\n const message = get(e, 'message', 'There was an error, please try again.');\n return dispatch({ type: types.HOST_ADD_EDIT_SERVICE_FAIL, message });\n }\n };\n}\n\nexport function selectService (selectedRow) {\n return (dispatch) => {\n dispatch({ type: types.SELECT_SERVICE, selectedRow });\n };\n}\n\nexport function setOrderByVulnsAssets (sorting, ip) {\n return async (dispatch, getState) => {\n const workspaceSelected = selectCurrentWorkspace(getState());\n const filters = [\n {\n name: 'target',\n op: '==',\n val: ip\n }\n ];\n dispatch(setOrderBy('vulnsAssets', sorting));\n const queryParam = selectQueryParam('vulnsAssets', getState());\n const data = await api.manage.newGetVulns(workspaceSelected, { ...queryParam, filters });\n\n dispatch({\n type: types.GET_DATA_VULNS_SUCCESS,\n data: data && data.vulnerabilities.length > 0 ? data.vulnerabilities.map((x) => x.value) : [],\n count: data.count\n });\n };\n\n // return (dispatch) => {\n // dispatch(setOrderBy('vulnsAssets', sorting));\n // dispatch(getVulns(ip))\n // };\n}\n\nexport function updateVulnFromAsset (vulnBefore, field, value) {\n return async (dispatch, getState) => {\n dispatch({ type: types.UPDATE_VULN_ASSET_PREVIEW_START });\n const workspaceSelected = selectCurrentWorkspace(getState());\n const vulnsList = selectVulns(getState());\n const vulnsCount = selectVulnsCount(getState());\n\n try {\n const newList = vulnsList;\n const newVuln = await api.manage.updateVuln(workspaceSelected, { _id: vulnBefore._id, [field]: value });\n\n const index = vulnsList.findIndex((x) => newVuln._id === x.id || newVuln._id === x._id);\n newList[index] = newVuln;\n\n dispatch({ type: types.UPDATE_VULN_ASSET_PREVIEW_SUCCESS, data: newList, vulnsCount });\n } catch (e) {\n dispatch({ type: types.UPDATE_VULN_ASSET_PREVIEW_FAIL, errorMessage: e.message });\n }\n };\n}\n\nexport function setPageNumberVulnAssets (pageNumber, host) {\n return (dispatch) => {\n dispatch(setPageNumber('vulnsAssets', pageNumber));\n dispatch(getVulns(host));\n };\n}\n","export const GET_DATA_VULNS_SUCCESS = 'GET_DATA_VULNS_SUCCESS';\nexport const GET_DATA_VULNS_FAIL = 'GET_DATA_VULNS_FAIL';\nexport const GET_DATA_VULNS_START = 'GET_DATA_VULNS_START';\nexport const GET_DATA_SERVICES_SUCCESS = 'GET_DATA_SERVICES_SUCCESS';\nexport const GET_DATA_SERVICES_FAIL = 'GET_DATA_SERVICES_FAIL';\nexport const GET_DATA_SERVICES_START = 'GET_DATA_SERVICES_START';\nexport const GET_DATA_TOOLS_SUCCESS = 'GET_DATA_TOOLS_SUCCESS';\nexport const GET_DATA_TOOLS_FAIL = 'GET_DATA_TOOLS_FAIL';\nexport const GET_DATA_TOOLS_START = 'GET_DATA_TOOLS_START';\nexport const SHOW_HOST_DETAIL = 'SHOW_HOST_DETAIL';\nexport const HIDE_HOST_DETAIL = 'HIDE_HOST_DETAIL';\nexport const RESET_STATE_HOST_DETAIL = 'RESET_STATE_HOST_DETAIL';\nexport const HOST_ADD_EDIT_SERVICE_FAIL = 'HOST_ADD_EDIT_SERVICE_FAIL';\nexport const HOST_ADD_EDIT_SERVICE_RESET = 'HOST_ADD_EDIT_SERVICE_RESET';\nexport const HOST_ADD_EDIT_SERVICE_SUCCESS = 'HOST_ADD_EDIT_SERVICE_SUCCESS';\nexport const SELECT_SERVICE = 'SELECT_SERVICE';\nexport const UPDATE_VULN_ASSET_PREVIEW_SUCCESS = 'UPDATE_VULN_ASSET_PREVIEW_SUCCESS';\nexport const UPDATE_VULN_ASSET_PREVIEW_FAIL = 'UPDATE_VULN_ASSET_PREVIEW_FAIL';\nexport const UPDATE_VULN_ASSET_PREVIEW_START = 'UPDATE_VULN_ASSET_PREVIEW_START';\n","import api from 'services/api';\nimport {\n selectHostList, selectHostsSelected, selectHostCount, selectLastSelected\n} from 'store/Host/selectors';\nimport {\n selectQueryParam,\n selectExpandedQueryParam,\n selectIsGrouping,\n selectRowsPerPage,\n selectAdvancedFilterQueryParam,\n selectAdvancedExpandedQueryParam\n} from 'store/Filters/selectors';\nimport {\n expandGroupBy,\n setGroupBy,\n clearGroupBy,\n setOrderBy,\n setPageNumber,\n setFilterError\n} from 'store/Filters/actions';\nimport get from 'lodash/get';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport * as types from './types';\nimport { showHostDetail } from 'store/HostDetail/actions';\nimport { selectHostDetailId } from 'store/HostDetail/selectors';\n\nconst setHostsFilterError = () => async (dispatch) => dispatch({ type: types.SET_HOSTS_FILTER_ERROR });\n\nconst getDataStartCallback = () => async (dispatch) => dispatch({ type: types.GET_DATA_HOST_START });\nconst getDataSuccedCallback = (data, hostCount) => async (dispatch) => dispatch({ type: types.GET_DATA_HOST_SUCCESS, data, hostCount });\nconst getDataFailureCallback = (error) => async (dispatch) => dispatch({ type: types.GET_DATA_HOST_FAIL, error });\n\n// Summary: Get data to populate on table, with pagination and/or sort.\nexport function getData () {\n return async (dispatch, getState) => {\n dispatch(getDataStartCallback());\n\n const state = getState();\n\n let advancedFilterQueryParam = [];\n try {\n advancedFilterQueryParam = selectAdvancedFilterQueryParam(state, 'assets');\n } catch (e) {\n dispatch(setFilterError('assets', 'Syntax error. Please try again. For further help check our documentation'));\n return dispatch(setHostsFilterError());\n }\n const hasAdvancedFilter = advancedFilterQueryParam.filters.length > 0;\n const standardQueryParam = selectQueryParam('assets', state);\n const queryParam = hasAdvancedFilter ? advancedFilterQueryParam : standardQueryParam;\n\n try {\n const workspace = selectCurrentWorkspace(getState());\n const response = await api.host.fetchHosts(workspace, queryParam);\n const data = response.rows.map((x) => x.value);\n\n return dispatch(getDataSuccedCallback(data, response.count));\n } catch (e) {\n const errorMessage = get(e, 'message', 'Failed to obtain hosts.');\n if (errorMessage.includes('filter')) {\n dispatch(setFilterError('assets', 'Invalid filters. Please try again. For further help check our documentation'));\n return dispatch(setHostsFilterError());\n }\n return dispatch(getDataFailureCallback(errorMessage));\n }\n };\n}\n\nexport function updateHostList (hostList) {\n return (dispatch) => {\n dispatch({ type: types.UPDATE_DATA_HOST_LIST, hostList });\n };\n}\n\nexport function appendHostListRow (hostRow) {\n return (dispatch) => {\n dispatch({ type: types.APPEND_DATA_HOST_LIST, hostRow });\n };\n}\n\nexport function updateHostListRow (hostRow) {\n return async (dispatch, getState) => {\n const state = getState();\n const hostList = selectHostList(state);\n const newHostList = [...hostList];\n const hostIndex = newHostList.findIndex((h) => h.id === hostRow.id);\n if (hostIndex >= 0) {\n newHostList[hostIndex] = hostRow;\n dispatch(updateHostList(newHostList));\n }\n };\n}\n\nexport function setOrderByAssets (sorting) {\n return (dispatch, getState) => {\n const state = getState();\n const isGrouping = selectIsGrouping('assets', state);\n\n dispatch(setOrderBy('assets', sorting));\n if (!isGrouping) dispatch(getData());\n };\n}\n\nexport function setPageNumberAssets (pageNumber) {\n return (dispatch) => {\n dispatch(setPageNumber('assets', pageNumber));\n dispatch(getData());\n };\n}\n\n// ------------- GROUP BY ACTIONS -------------\n\nexport function getExpandedGroupByData (index) {\n return async (dispatch, getState) => {\n const state = getState();\n dispatch(getDataStartCallback());\n\n let advancedFilterQueryParam = [];\n try {\n advancedFilterQueryParam = selectAdvancedExpandedQueryParam(state, 'assets');\n } catch (e) {\n dispatch(setFilterError('assets', 'Syntax error. Please try again. For further help check our documentation'));\n return dispatch(setHostsFilterError());\n }\n const hasAdvancedFilter = advancedFilterQueryParam.filters.length > 0;\n const standardQueryParam = selectExpandedQueryParam('assets', state);\n const queryParam = hasAdvancedFilter ? advancedFilterQueryParam : standardQueryParam;\n\n try {\n const workspace = selectCurrentWorkspace(getState());\n const response = await api.host.fetchHosts(workspace, queryParam);\n const data = response && response.rows ? response.rows.map((data) => data.value) : [];\n return dispatch({ type: types.GET_DATA_HOST_GROUP_BY_EXPAND, index, data });\n } catch (e) {\n const errorMessage = get(e, 'message', 'Failed to obtain hosts.');\n if (errorMessage.includes('filter')) {\n dispatch(setFilterError('assets', 'Invalid filters. Please try again. For further help check our documentation'));\n return dispatch(setHostsFilterError());\n }\n return dispatch(getDataFailureCallback(errorMessage));\n }\n };\n}\n\nexport function clearExpandedGroupByData () {\n return async (dispatch) => dispatch({ type: types.GET_DATA_HOST_GROUP_BY_RESET });\n}\n\nexport function clearGroupByAssets () {\n return async (dispatch) => {\n await dispatch(clearGroupBy('assets'));\n };\n}\n\nexport function setGroupByAssets (group_by) {\n return async (dispatch) => {\n const field = get(group_by, '[0].field', '');\n await dispatch(setGroupBy('assets', group_by));\n if (field) await dispatch(setOrderBy('assets', [{ id: field, desc: false }]));\n dispatch(getData());\n };\n}\n\nexport function expandGroupByAssets (index, value) {\n return async (dispatch) => {\n await dispatch(expandGroupBy('assets', value));\n dispatch(getExpandedGroupByData(index));\n };\n}\n\n// ------------- -------------\n\nexport function toggleModalEditCreate (value, host) {\n return (dispatch) => {\n dispatch({ type: types.TOGGLE_MODAL_EDIT_CREATE_HOST, value, host });\n };\n}\n\nexport function resetState () {\n return (dispatch) => {\n dispatch({ type: types.RESET_STATE_HOST });\n };\n}\n\n// Summary: Show confirmation modal when user delete host/s\nexport function showHostModalDelete () {\n return (dispatch) => {\n dispatch({ type: types.SHOW_MODAL_DELETE_HOSTS });\n };\n}\n\n// Summary: Hide confirmation modal when user delete host/s\nexport function hideHostModalDelete () {\n return (dispatch) => {\n dispatch({ type: types.HIDE_MODAL_DELETE_HOSTS });\n };\n}\n\nexport function deleteHostsSelected () {\n return async (dispatch, getState) => {\n dispatch({ type: types.DELETE_HOSTS_START });\n const { workspaceSelected } = getState().faraday;\n const hostselected = selectHostsSelected(getState());\n const hostSelectedID = hostselected.map(host => host._id);\n try {\n const response = await api.host.deleteHost(workspaceSelected, hostSelectedID);\n dispatch({ type: types.DELETE_HOSTS_SUCCESS, response });\n\n dispatch(hideHostModalDelete());\n return dispatch(getData());\n } catch (err) {\n dispatch({ type: types.DELETE_HOSTS_FAIL });\n }\n };\n}\n\nexport function showHostLeftFilters (visible) {\n return (dispatch) => {\n dispatch({ type: types.SHOW_HOST_LEFT_FILTERS, visible });\n };\n}\n\n// Click Logic\n\nconst addDeleteController = (hosts, hostList) => { // if all hosts are in hostList then unselect then if not\n const allHostsAreSelected = hosts.every((testHost) => hostList.some((host) => host._id === testHost._id));\n\n if (allHostsAreSelected) return [types.HOST_UNSELECTED, hosts];\n return [types.HOST_SELECTED, hosts];\n};\n\nconst selectCalculator = (e, host, hostList, areHostSelected) => (dispatch, getState) => {\n const pivot = selectLastSelected(getState());\n const index = hostList.findIndex((el) => el._id === host._id);\n const hostsSelected = selectHostsSelected(getState());\n\n dispatch({ type: types.NEW_PIVOT, payload: index });\n if (e.shiftKey && pivot !== -1 && areHostSelected) { // if already had hosts selected and shift key is pressed\n const start = Math.min(pivot, index);\n const end = Math.max(pivot, index) + 1;\n const hosts = hostList.slice(start, end);\n const [type, payload] = addDeleteController(hosts, hostsSelected);\n return dispatch({ type, payload });\n }\n const [type, payload] = addDeleteController([host], hostsSelected);\n return dispatch({ type, payload });\n};\n\nexport const selectRow = (e, host) => (dispatch, getState) => {\n const allHost = selectHostList(getState());\n const isGroupingBy = selectIsGrouping('assets', getState());\n const hostSelected = selectHostsSelected(getState());\n\n if (isGroupingBy) {\n const group = allHost.find((g) => g.groupData && g.groupData.find((el) => el._id === host._id));\n if (!group) return; // si no hay groupData no se puede hacer calculos con las hosts\n const hostGroup = group.groupData;\n const areHostSelected = hostSelected.length > 0 && hostGroup.some((el) => el.id === host.id);\n dispatch(selectCalculator(e, host, hostGroup, areHostSelected, hostSelected));\n } else {\n dispatch(selectCalculator(e, host, allHost, hostSelected.length > 0));\n }\n};\n\nexport const unSelectAll = () => (dispatch) => dispatch({ type: types.UNSELECT_ALL_HOST });\n\nexport const selectAllHost = () => (dispatch, getState) => {\n const hostsList = selectHostList(getState());\n const hostsSelected = selectHostsSelected(getState());\n const hostCount = selectHostCount(getState());\n const pageSize = selectRowsPerPage('assets', getState());\n\n if (hostsSelected.length === hostCount || hostsSelected.length >= pageSize) return dispatch(unSelectAll());\n\n return dispatch({ type: types.SELECT_ALL_HOST, hostsList });\n};\n\nexport function updateHost (hostId, valueObj) {\n return async (dispatch, getState) => {\n const workspaceSelected = selectCurrentWorkspace(getState());\n const hostList = selectHostList(getState());\n const hostCount = selectHostCount(getState());\n const hostDetailId = selectHostDetailId(getState());\n const newHost = await api.host.updateHost(workspaceSelected, { id: hostId, ...valueObj });\n const index = hostList.findIndex((x) => hostId === x.id || hostId === x._id);\n hostList[index] = { ...newHost, severity_counts: hostList[index].severity_counts };\n dispatch({ type: types.GET_DATA_HOST_SUCCESS, data: hostList, hostCount });\n if (hostDetailId && newHost._id === hostDetailId) dispatch(showHostDetail(newHost));\n };\n}\n","export const SET_HOSTS_FILTER_ERROR = 'SET_HOSTS_FILTER_ERROR';\nexport const GET_DATA_HOST_START = 'GET_DATA_HOST_START';\nexport const GET_DATA_HOST_FAIL = 'GET_DATA_HOST_FAIL';\nexport const GET_DATA_HOST_SUCCESS = 'GET_DATA_HOST_SUCCESS';\nexport const UPDATE_DATA_HOST_LIST = 'UPDATE_DATA_HOST_LIST';\nexport const APPEND_DATA_HOST_LIST = 'APPEND_DATA_HOST_LIST';\nexport const TOGGLE_MODAL_EDIT_CREATE_HOST = 'TOGGLE_MODAL_EDIT_CREATE_HOST';\nexport const GET_DATA_HOST_GROUP_BY_RESET = 'GET_DATA_HOST_GROUP_BY_RESET';\nexport const GET_DATA_HOST_GROUP_BY_EXPAND = 'GET_DATA_HOST_GROUP_BY_EXPAND';\nexport const GET_DATA_HOST_SEARCH = 'GET_DATA_HOST_SEARCH';\nexport const HOST_SELECTED = 'HOST_SELECTED';\nexport const HOST_UNSELECTED = 'HOST_UNSELECTED';\nexport const RESET_STATE_HOST = 'RESET_STATE_HOST';\nexport const SHOW_MODAL_DELETE_HOSTS = 'SHOW_MODAL_DELETE_HOSTS';\nexport const HIDE_MODAL_DELETE_HOSTS = 'HIDE_MODAL_DELETE_HOSTS';\nexport const DELETE_HOSTS_START = 'DELETE_HOSTS_START';\nexport const DELETE_HOSTS_SUCCESS = 'DELETE_HOSTS_SUCCESS';\nexport const DELETE_HOSTS_FAIL = 'DELETE_HOSTS_FAIL';\nexport const SHOW_HOST_LEFT_FILTERS = 'SHOW_HOST_LEFT_FILTERS';\n\nexport const NEW_PIVOT = 'NEW_PIVOT';\nexport const SELECT_ALL_HOST = 'SELECT_ALL_HOST';\nexport const UNSELECT_ALL_HOST = 'UNSELECT_ALL_HOST';\n\nexport const UPDATE_HOST_SELECTED = 'UPDATE_HOST_SELECTED';\n","import api from 'services/api';\nimport { getData } from 'Screens/KnowledgeBase/actions/Actions';\n\nexport const SET_MODE_TEMPLATE_CREATE_UPDATE = 'SET_MODE_TEMPLATE_CREATE_UPDATE';\nexport const RESET_STATE_TEMPLATE_CREATE_UPDATE = 'RESET_STATE_TEMPLATE_CREATE_UPDATE';\nexport const ADD_REPORT_TEMPLATE_CREATE_UPDATE = 'ADD_REPORT_TEMPLATE_CREATE_UPDATE';\nexport const REMOVE_REPORT_TEMPLATE_CREATE_UPDATE = 'REMOVE_REPORT_TEMPLATE_CREATE_UPDATE';\nexport const SET_REDIRECT_TEMPLATE_CREATE_UPDATE = 'SET_REDIRECT_TEMPLATE_CREATE_UPDATE';\nexport const SET_FIELD_NAME_TEMPLATE_CREATE_UPDATE = 'SET_FIELD_NAME_TEMPLATE_CREATE_UPDATE';\nexport const SELECT_CHECK_BOX_TEMPLATE_CREATE_UPDATE = 'SELECT_CHECK_BOX_TEMPLATE_CREATE_UPDATE';\nexport const REMOVE_REFERENCE_CREATE_UPDATE = 'REMOVE_REFERENCE_CREATE_UPDATE';\nexport const REMOVE_POLICY_CREATE_UPDATE = 'REMOVE_POLICY_CREATE_UPDATE';\nexport const ADD_REFERENCE_CREATE_UPDATE = 'ADD_REFERENCE_CREATE_UPDATE';\nexport const ADD_POLICY_CREATE_UPDATE = 'ADD_POLICY_CREATE_UPDATE';\nexport const SET_TEMPLATE_NAME_TEMPLATE_CREATE_UPDATE = 'SET_TEMPLATE_NAME_TEMPLATE_CREATE_UPDATE';\nexport const TEMPLATE_CREATE_UPDATE_START = 'TEMPLATE_CREATE_UPDATE_START';\nexport const TEMPLATE_CREATE_UPDATE_FAIL = 'TEMPLATE_CREATE_UPDATE_FAIL';\nexport const TEMPLATE_CREATE_UPDATE_SUCCESS = 'TEMPLATE_CREATE_UPDATE_SUCCESS';\nexport const SET_TEMPLATE_CREATE_UPDATE = 'SET_TEMPLATE_CREATE_UPDATE';\nexport const SET_CUSTOM_ATTRIBUTE_KB_CREATE_UPDATE = 'SET_CUSTOM_ATTRIBUTE_KB_CREATE_UPDATE';\n\nexport function resetState () {\n return (dispatch) => {\n dispatch({\n type: RESET_STATE_TEMPLATE_CREATE_UPDATE\n });\n };\n}\n\nexport function setField (fieldName, value) {\n return (dispatch) => {\n dispatch({\n type: SET_FIELD_NAME_TEMPLATE_CREATE_UPDATE, fieldName, value\n });\n };\n}\n\nexport function selectCheckbox (checkName) {\n return (dispatch) => {\n dispatch({\n type: SELECT_CHECK_BOX_TEMPLATE_CREATE_UPDATE, checkName\n });\n };\n}\n\nexport function removeReference (index) {\n return (dispatch) => {\n dispatch({\n type: REMOVE_REFERENCE_CREATE_UPDATE, index\n });\n };\n}\n\nexport function removePolicy (index) {\n return (dispatch) => {\n dispatch({\n type: REMOVE_POLICY_CREATE_UPDATE, index\n });\n };\n}\n\nexport function addReference () {\n return (dispatch) => {\n dispatch({\n type: ADD_REFERENCE_CREATE_UPDATE\n });\n };\n}\n\nexport function addPolicy () {\n return (dispatch) => {\n dispatch({\n type: ADD_POLICY_CREATE_UPDATE\n });\n };\n}\n\nexport function setTemplateName (index, value) {\n return (dispatch) => {\n dispatch({\n type: SET_TEMPLATE_NAME_TEMPLATE_CREATE_UPDATE, index, value\n });\n };\n}\n\nexport function createTemplate () {\n return async (dispatch, getState) => {\n dispatch({ type: TEMPLATE_CREATE_UPDATE_START });\n\n const { knowledgeBaseEditCreate } = getState();\n\n const template = {\n id: knowledgeBaseEditCreate.id,\n name: knowledgeBaseEditCreate.name,\n exploitation: knowledgeBaseEditCreate.exploitation,\n impact: {\n accountability: knowledgeBaseEditCreate.accountability,\n availability: knowledgeBaseEditCreate.availability,\n integrity: knowledgeBaseEditCreate.integrity,\n confidentiality: knowledgeBaseEditCreate.confidentiality\n },\n easeofresolution: knowledgeBaseEditCreate.easeofresolution ? knowledgeBaseEditCreate.easeofresolution : null,\n desc: knowledgeBaseEditCreate.description,\n description: knowledgeBaseEditCreate.description,\n resolution: knowledgeBaseEditCreate.resolution,\n external_id: knowledgeBaseEditCreate.external_id,\n data: knowledgeBaseEditCreate.data,\n create_at: '',\n creator: '',\n customfields: knowledgeBaseEditCreate.customfields,\n cwe: '',\n policyviolations: knowledgeBaseEditCreate.policyviolations,\n references: knowledgeBaseEditCreate.references,\n refs: knowledgeBaseEditCreate.references,\n type: 'vulnerability_template'\n };\n\n try {\n if (knowledgeBaseEditCreate.id) await api.knowledgeBase.updateTemplate(template.id, template);\n else await api.knowledgeBase.createTemplate(template);\n\n // TODO, replace when api supports filters\n dispatch({ type: TEMPLATE_CREATE_UPDATE_SUCCESS, template });\n return dispatch(getData());\n } catch (error) {\n return dispatch({ type: TEMPLATE_CREATE_UPDATE_FAIL, error: error.message });\n }\n };\n}\n\nexport function setCustomAttribute (key, value) {\n return (dispatch) => {\n dispatch({\n type: SET_CUSTOM_ATTRIBUTE_KB_CREATE_UPDATE, key, value\n });\n };\n}\n","import get from 'lodash/get';\nimport selectRoutes from 'store/Workspace/selectors';\n\nexport const selectKnowledgeBaseProps = (state) => {\n const showDeleteConfirmation = get(state, 'knowledgeBase.showDeleteConfirmation', {});\n const templatesSelected = get(state, 'knowledgeBase.templatesSelected', {});\n const permissions = get(state, 'faraday.permissions.vulnerability_template', {});\n const readonly = get(state, 'faraday.readonly', false);\n const showModalCreate = get(state, 'knowledgeBase.showModalCreate', false);\n const routeList = selectRoutes(state);\n const totalVulnTemplate = get(state, 'knowledgeBase.totalVulnTemplate', 0);\n const rowsPerPage = get(state, 'filters.knowledgeBase.rowsPerPage', 0);\n const page = get(state, 'filters.knowledgeBase.page', 0);\n const updated = get(state, 'knowledgeBase.updated', false);\n return {\n showDeleteConfirmation,\n templatesSelected,\n permissions,\n readonly,\n showModalCreate,\n routeList,\n totalVulnTemplate,\n rowsPerPage,\n page,\n updated\n };\n};\n\nexport const selectKnowledgeBaseTableProps = (state) => {\n const templatesSelected = get(state, 'knowledgeBase.templatesSelected', {});\n const data = get(state, 'knowledgeBase.vulnTemplateList', []);\n const lastTemplateSelected = get(state, 'knowledgeBase.vulnTemplateList', {});\n const lastIndexForRange = get(state, 'knowledgeBase.lastIndexForRange', -1);\n const lastSelected = get(state, 'knowledgeBase.lastSelected', -1);\n const isFetching = get(state, 'knowledgeBase.isFetching', false);\n return {\n templatesSelected, data, lastTemplateSelected, lastIndexForRange, lastSelected, isFetching\n };\n};\n\nexport const selectTemplateEditCreate = (state) => {\n const name = get(state, 'knowledgeBaseEditCreate.name', '');\n const description = get(state, 'knowledgeBaseEditCreate.description', '');\n const exploitation = get(state, 'knowledgeBaseEditCreate.exploitation', '');\n const policyviolations = get(state, 'knowledgeBaseEditCreate.policyviolations', []);\n const accountability = get(state, 'knowledgeBaseEditCreate.accountability', false);\n const availability = get(state, 'knowledgeBaseEditCreate.availability', false);\n const confidentiality = get(state, 'knowledgeBaseEditCreate.confidentiality', false);\n const integrity = get(state, 'knowledgeBaseEditCreate.integrity', false);\n const errorMessage = get(state, 'knowledgeBaseEditCreate.errorMessage', false);\n const external_id = get(state, 'knowledgeBaseEditCreate.external_id', false);\n const references = get(state, 'knowledgeBaseEditCreate.references', false);\n const resolution = get(state, 'knowledgeBaseEditCreate.resolution', false);\n const easeofresolution = get(state, 'knowledgeBaseEditCreate.easeofresolution', '');\n const data = get(state, 'knowledgeBaseEditCreate.data', false);\n const id = get(state, 'knowledgeBaseEditCreate.id', 0);\n const customfields = get(state, 'knowledgeBaseEditCreate.customfields', {});\n\n return {\n name,\n description,\n exploitation,\n policyviolations,\n accountability,\n availability,\n confidentiality,\n integrity,\n errorMessage,\n external_id,\n references,\n resolution,\n easeofresolution,\n data,\n id,\n customfields\n };\n};\n\nexport const selectPermissions = (state) => {\n const permissions = get(state, 'faraday.permissions.vulnerability_template', {});\n return { permissions };\n};\n\nexport const selectReadonly = (state) => {\n const readonly = get(state, 'faraday.readonly', false);\n return { readonly };\n};\n\nexport const selectRowsPerPage = (state) => get(state, 'knowledgeBase.rowsPerPage', 0);\n\nexport const selectFilters = (state) => get(state, 'knowledgeBase.filters', '');\n\nexport const selectField = (state, field) => get(state, `knowledgeBaseEditCreate.customfields.${field.field_name}`, '');\n\nexport const templatesSelected = (state) => get(state, 'knowledgeBaseEditCreate', {});\n\nexport const selectTemplatesSelected = (state) => get(state, 'knowledgeBase.templatesSelected', []);\n","import * as Papa from 'papaparse';\nimport { RESET_STATE_TEMPLATE_CREATE_UPDATE, SET_TEMPLATE_CREATE_UPDATE } from 'Screens/KnowledgeBaseEditCreate/actions/Actions';\nimport api from 'services/api';\nimport axios, { CancelToken } from 'axios';\nimport { getWorkspaces } from 'Screens/Workspaces/actions/Actions';\nimport head from 'lodash/head';\nimport { CURRENT_API_VERSION } from 'services/api/connector';\nimport { selectQueryParam } from 'store/Filters/selectors';\nimport {\n resetFilters, setFilter, setOrderBy, setPageNumber\n} from 'store/Filters/actions';\nimport { selectVulnsList, selectVulnsSelected } from 'store/Manage/selectors';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport { KB_FILTERS } from 'store/Filters/constants';\nimport { newGetVulns } from 'store/Manage/filterActions';\nimport { selectTemplatesSelected } from 'store/KnowledgeBase/selectors';\n\nexport const GET_DATA_VULN_TEMPLATE_START = 'GET_DATA_VULN_TEMPLATE_START';\nexport const GET_DATA_VULN_TEMPLATE_SUCCESS = 'GET_DATA_VULN_TEMPLATE_SUCCESS';\nexport const GET_DATA_VULN_TEMPLATE_FAIL = 'GET_DATA_VULN_TEMPLATE_FAIL';\nexport const SHOW_VULN_TEMPLATE_MODAL_NEW = 'SHOW_VULN_TEMPLATE_MODAL_NEW';\nexport const SHOW_VULN_TEMPLATE_MODAL_EDIT = 'SHOW_VULN_TEMPLATE_MODAL_EDIT';\nexport const HIDE_VULN_TEMPLATE_MODAL = 'HIDE_VULN_TEMPLATE_MODAL';\nexport const IMPACT_SELECTED_VULN_TEMPLATE = 'IMPACT_SELECTED_VULN_TEMPLATE';\nexport const CREATE_UPDATE_VULN_TEMPLATE_START = 'CREATE_UPDATE_VULN_TEMPLATE_START';\nexport const CREATE_UPDATE_VULN_TEMPLATE_ERROR = 'CREATE_UPDATE_VULN_TEMPLATE_ERROR';\nexport const CREATE_UPDATE_VULN_TEMPLATE_SUCCESS = 'CREATE_UPDATE_VULN_TEMPLATE_SUCCESS';\nexport const HIDE_ERROR_VULN_TEMPLATE_NEW_UPDATE = 'HIDE_ERROR_VULN_TEMPLATE_NEW_UPDATE';\nexport const VULN_TEMPLATE_SELECTED = 'VULN_TEMPLATE_SELECTED';\nexport const VULN_TEMPLATE_SELECTED_ALL = 'VULN_TEMPLATE_SELECTED_ALL';\nexport const SHOW_MODAL_DELETE_CONFIRMATION_VULN_TEMPLATE = 'SHOW_MODAL_DELETE_CONFIRMATION_VULN_TEMPLATE';\nexport const HIDE_MODAL_DELETE_CONFIRMATION_VULN_TEMPLATE = 'HIDE_MODAL_DELETE_CONFIRMATION_VULN_TEMPLATE';\nexport const DELETE_VULN_TEMPLATE = 'DELETE_VULN_TEMPLATE';\nexport const HIDE_MODAL_DELETE_CONFIRMATION_VULN_TEMPLATE_SUCCEED = 'HIDE_MODAL_DELETE_CONFIRMATION_VULN_TEMPLATE_SUCCEED';\nexport const SHOW_MODAL_IMPORT_VULN_TEMPLATE = 'SHOW_MODAL_IMPORT_VULN_TEMPLATE';\nexport const HIDE_MODAL_IMPORT_VULN_TEMPLATE = 'HIDE_MODAL_IMPORT_VULN_TEMPLATE';\nexport const IMPORT_FILE_VULN_TEMPLATE = 'IMPORT_FILE_VULN_TEMPLATE';\nexport const IMPORT_FILE_VULN_TEMPLATE_SUCCESS = 'IMPORT_FILE_VULN_TEMPLATE_SUCCESS';\nexport const IMPORT_FILE_VULN_TEMPLATE_ERROR = 'IMPORT_FILE_VULN_TEMPLATE_ERROR';\nexport const SET_VISIBILITY_CREATE_MODAL_KB = 'SET_VISIBILITY_CREATE_MODAL_KB';\nexport const GET_DATA_TEMPLATES_SORT = 'GET_DATA_TEMPLATES_SORT';\nexport const GET_DATA_TEMPLATES_FILTER = 'GET_DATA_TEMPLATES_FILTER';\nexport const GET_VULNS_COUNT_SUCCESS = 'GET_VULNS_COUNT_SUCCESS';\nexport const GET_VULNS_COUNT_FAIL = 'GET_VULNS_COUNT_FAIL';\nexport const SET_KNOWLEDGE_BASE_PAGE = 'SET_KNOWLEDGE_BASE_PAGE';\n// Template CSV uploading\nexport const SET_CSV_KB_FILE_INDEX_MANAGE = 'SET_CSV_KB_FILE_INDEX_MANAGE';\nexport const SET_UPLOAD_STATE_KB = 'SET_UPLOAD_STATE_KB';\nexport const UPLOAD_CSV_KB_UPDATE_PERCENT = 'UPLOAD_CSV_KB_UPDATE_PERCENT';\nexport const UPLOAD_CSV_KB_ERROR = 'UPLOAD_CSV_KB_ERROR';\nexport const CANCEL_REQUEST_UPLOAD_CSV_KB = 'CANCEL_REQUEST_UPLOAD_CSV_KB';\nexport const SET_NAME_INTO_FILE_ERROR_LIST_CSV_KB = 'SET_NAME_INTO_FILE_ERROR_LIST_CSV_KB';\nexport const RESET_FILE_STATE_KB = 'RESET_FILE_STATE_KB';\nexport const SET_FILES_TO_UPLOAD_KB = 'SET_FILES_TO_UPLOAD_KB';\n\n// Summary: Validate csv headers\nfunction equalAsSets (a, b) {\n if (a.length !== b.length) return false;\n let flag = true;\n\n a.forEach((elem) => {\n if (b.indexOf(elem) === -1) flag = false;\n });\n\n b.forEach((elem) => {\n if (a.indexOf(elem) === -1) flag = false;\n });\n\n return flag;\n}\n\n// Summary: Insert vuln templates in the csv file\nfunction loadCSV (data, dispatch) {\n const datas = [];\n const url = `/_api/${CURRENT_API_VERSION}/vulnerability_template`;\n\n Papa.parse(data, {\n worker: true,\n header: true,\n skipEmptyLines: true,\n step (results) {\n if (results.data) {\n datas.push(results.data);\n }\n },\n complete () {\n const { length } = datas;\n let counter = 0;\n // TODO: Modify backend for use only one request, so add api call.\n datas.forEach((vulnt) => {\n const vulntCopy = vulnt;\n\n if (!vulntCopy.easeofresolution || vulntCopy.easeofresolution === '') vulntCopy.easeofresolution = null;\n\n fetch(url, {\n method: 'POST',\n body: JSON.stringify(vulntCopy),\n headers: {\n 'Content-type': 'application/json'\n }\n }).then((result) => {\n if (result.ok) {\n counter += 1;\n if (length === counter) {\n dispatch({ type: IMPORT_FILE_VULN_TEMPLATE_SUCCESS });\n }\n } else {\n dispatch({ type: IMPORT_FILE_VULN_TEMPLATE_ERROR, errorMessage: `Some templates could not be imported. Error: ${result.statusText}` });\n }\n }).catch((error) => {\n dispatch({ type: IMPORT_FILE_VULN_TEMPLATE_ERROR, errorMessage: `Some templates could not be imported. Error: ${error}` });\n });\n });\n }\n });\n}\n\nconst getTemplateRowsFailureCallback = (error) => ({\n type: GET_DATA_VULN_TEMPLATE_FAIL,\n data: error\n});\n\nconst getWorkspaceRowsSuccedCallback = (data) => ({\n type: GET_DATA_VULN_TEMPLATE_SUCCESS,\n data: data.rows,\n vulnTemplateCount: data.total_rows\n});\n\nexport function getVulnsTemplateCount () {\n return async (dispatch) => {\n try {\n const data = await api.manage.getTemplates();\n dispatch({ type: GET_VULNS_COUNT_SUCCESS, total: data.total_rows });\n } catch (e) {\n dispatch({ type: GET_VULNS_COUNT_FAIL, error: e.response || 'An error has occurred.' });\n }\n };\n}\n\nexport function getData () {\n return async (dispatch, getState) => {\n dispatch({ type: GET_DATA_VULN_TEMPLATE_START });\n const state = getState();\n const params = selectQueryParam('knowledgeBase', state);\n try {\n const response = await api.knowledgeBase.fetchTemplates(params);\n dispatch(getVulnsTemplateCount());\n\n return dispatch(getWorkspaceRowsSuccedCallback(response));\n } catch (e) {\n return dispatch(getTemplateRowsFailureCallback(e));\n }\n };\n}\n\nexport function setVisibilityCreateModal (value) {\n return (dispatch) => {\n dispatch({ type: SET_VISIBILITY_CREATE_MODAL_KB, value });\n\n if (!value) dispatch({ type: RESET_STATE_TEMPLATE_CREATE_UPDATE, value });\n };\n}\n\nexport function showVulnTemplateModalEdit () {\n return (dispatch, getState) => {\n const { templatesSelected } = getState().knowledgeBase;\n dispatch({ type: SET_TEMPLATE_CREATE_UPDATE, template: head(templatesSelected).doc });\n dispatch({ type: SET_VISIBILITY_CREATE_MODAL_KB, value: true });\n };\n}\n\nexport function vulnTemplateSelected (selectionInfo) {\n return (dispatch) => {\n dispatch({\n type: VULN_TEMPLATE_SELECTED, selectionInfo\n });\n };\n}\n\n// Summary: Show confirmation modal when user delete vuln template/s\nexport function showVulnTemplateModalDelete () {\n return (dispatch) => {\n dispatch({ type: SHOW_MODAL_DELETE_CONFIRMATION_VULN_TEMPLATE });\n };\n}\n\n// Summary: Hide confirmation modal when user delete vuln template/s\nexport function hideVulnTemplateModalDelete () {\n return (dispatch) => {\n dispatch({ type: HIDE_MODAL_DELETE_CONFIRMATION_VULN_TEMPLATE });\n };\n}\n\n// Summary: Delete vuln template from database\nexport function deleteVulnTemplateSelected () {\n return (dispatch, getState) => {\n const templatesSelected = selectTemplatesSelected(getState());\n const templateIds = templatesSelected.map(temp => temp.id);\n dispatch({ type: DELETE_VULN_TEMPLATE });\n try {\n api.knowledgeBase.deleteTemplates({ ids: templateIds });\n dispatch({ type: HIDE_MODAL_DELETE_CONFIRMATION_VULN_TEMPLATE_SUCCEED });\n } catch {\n dispatch({ type: HIDE_MODAL_DELETE_CONFIRMATION_VULN_TEMPLATE_SUCCEED });\n }\n dispatch(getData());\n };\n}\n\n// Summary: Show popup for csv import\nexport function showVulnTemplateModalImport () {\n return (dispatch) => {\n dispatch({ type: SHOW_MODAL_IMPORT_VULN_TEMPLATE });\n };\n}\n\n// Summary: Hide popup for csv import\nexport function hideVulnTemplateModalImport () {\n return (dispatch) => {\n dispatch({ type: HIDE_MODAL_IMPORT_VULN_TEMPLATE });\n };\n}\n\n// Summary: Init the csv import process\nexport function importFile (csv) {\n return (dispatch) => {\n dispatch({ type: IMPORT_FILE_VULN_TEMPLATE });\n\n const reader = new FileReader();\n reader.onload = function () {\n const text = reader.result;\n const expectedHeader = ['cwe', 'description', 'exploitation', 'name', 'references', 'resolution'];\n const actualHeader = text.split('\\n').shift().trim().toLowerCase()\n .split(',');\n\n if (equalAsSets(expectedHeader, actualHeader)) {\n loadCSV(csv, dispatch);\n } else {\n document.body.style.cursor = 'default';\n dispatch({ type: IMPORT_FILE_VULN_TEMPLATE_ERROR, errorMessage: 'It appears your CSV has the wrong headers. Headers MUST be present.' });\n }\n };\n reader.readAsText(csv);\n };\n}\n\nexport function sortData (sorting) {\n return (dispatch) => {\n dispatch(setOrderBy('knowledgeBase', sorting));\n dispatch(getData());\n };\n}\n\nexport function setFilterTemplates (filter) {\n return (dispatch) => {\n dispatch({ type: GET_DATA_TEMPLATES_FILTER, filter });\n if (filter) dispatch(setFilter('knowledgeBase', KB_FILTERS.kbByName(`%${filter}%`)));\n else dispatch(resetFilters('knowledgeBase'));\n\n dispatch(getData());\n };\n}\n\nexport function setFilesCount (files) {\n return (dispatch) => {\n dispatch({ type: SET_FILES_TO_UPLOAD_KB, files });\n };\n}\n\nexport function setFileIndex (index) {\n return (dispatch) => {\n dispatch({ type: SET_CSV_KB_FILE_INDEX_MANAGE, index });\n };\n}\n\nexport function setUploadState (state) {\n return (dispatch) => {\n dispatch({ type: SET_UPLOAD_STATE_KB, state });\n };\n}\n\nexport function resetFileUploadState () {\n return (dispatch) => {\n dispatch({ type: RESET_FILE_STATE_KB });\n };\n}\n\nexport function uploadFile (file) {\n return async (dispatch, getState) => {\n try {\n dispatch({ type: SET_UPLOAD_STATE_KB, state: 'PROCESSING' });\n const response = await api.faraday.getSession();\n\n const cancelTokenSource = CancelToken.source();\n\n const fd = new FormData();\n fd.append('csrf_token', response.csrf_token);\n fd.append('file', file);\n\n await axios.post(`/_api/${CURRENT_API_VERSION}/vulnerability_template/bulk_create`, fd, {\n headers: {\n 'Content-Type': 'multipart/form-data'\n },\n onUploadProgress: async (progressEvent) => {\n dispatch({ type: UPLOAD_CSV_KB_UPDATE_PERCENT, progressEvent });\n if (Math.round((100 * progressEvent.loaded) / progressEvent.total) === 100) {\n const index = getState().knowledgeBase.fileIndex - 1;\n dispatch({ type: SET_CSV_KB_FILE_INDEX_MANAGE, index });\n }\n },\n cancelToken: cancelTokenSource.token\n });\n\n const currentIndex = getState().knowledgeBase.fileIndex;\n if (currentIndex < 0) {\n dispatch({ type: SET_UPLOAD_STATE_KB, state: 'FINISHED' });\n dispatch(getWorkspaces());\n dispatch(getData());\n } else {\n dispatch({ type: SET_UPLOAD_STATE_KB, state: 'PROCESSED' });\n }\n } catch (e) {\n if (!e.message || e.message !== 'cancel') {\n const currentIndex = getState().knowledgeBase.fileIndex;\n dispatch({ type: SET_NAME_INTO_FILE_ERROR_LIST_CSV_KB, name: file.name });\n const filesCount = getState().knowledgeBase.filesToUpload.length;\n if (filesCount === 1) {\n dispatch({ type: UPLOAD_CSV_KB_ERROR, error: e.response && e.response.data.message ? e.response.data.message : 'Couldn\\'t upload your file. Please try again.' });\n }\n if (currentIndex < 0) {\n dispatch({ type: SET_UPLOAD_STATE_KB, state: 'FINISHED' });\n dispatch(getWorkspaces());\n } else {\n dispatch({ type: SET_UPLOAD_STATE_KB, state: 'PROCESSED' });\n }\n } else {\n dispatch({ type: CANCEL_REQUEST_UPLOAD_CSV_KB });\n }\n }\n };\n}\n\nexport function setPage (page) {\n return async (dispatch) => {\n dispatch(setPageNumber('knowledgeBase', page));\n dispatch(getData());\n };\n}\n\nexport const applyTemplate = (template, fields) => async (dispatch, getState) => {\n const vulnsSelected = selectVulnsSelected(getState());\n const workspaceSelected = selectCurrentWorkspace(getState());\n const vulnsList = selectVulnsList(getState());\n\n const data = {};\n // eslint-disable-next-line no-restricted-syntax\n for (const field in fields) {\n if (fields[field]) {\n if (field === 'exploitation') data.severity = template[field];\n if (field === 'refs') {\n template[field] = template[field].map(name => { return { name, type: 'other' }; });\n }\n if (field === 'customfields') {\n data.custom_fields = template[field];\n }\n data[field] = template[field];\n }\n }\n\n const vulnPromises = vulnsSelected.map((vuln) => api.manage.updateVuln(workspaceSelected, { _id: vuln._id, ...data }));\n try {\n const res = await Promise.allSettled(vulnPromises);\n res.forEach(({ value }) => {\n const index = vulnsList.findIndex((x) => value._id === x.id || value._id === x._id);\n vulnsList[index] = value;\n });\n dispatch(newGetVulns());\n } catch (error) { }\n};\n","import { newGetVulns } from 'store/Manage/filterActions';\nimport { getData as getAssetsData } from 'store/Host/actions';\nimport { getData as getKBData } from 'Screens/KnowledgeBase/actions/Actions';\nimport { VULNS_SEARCH_BY_FILTER_KEYS, ASSETS_SEARCH_BY_FILTER_KEYS, KB_SEARCH_BY_FILTER_KEYS } from './constants';\n\nexport const ENTITIES = {\n vulns: {\n name: {\n label: 'Vulnerabilities',\n value: 'vulns'\n },\n pathname: 'manage',\n values: VULNS_SEARCH_BY_FILTER_KEYS,\n placeholder: 'Search vulns',\n advancedPlaceholder: 'e.g. {\"name\":\"severity\",\"op\":\"==\",\"val\":\"critical\"}',\n documentationUrl: 'https://docs.faradaysec.com/Filters/#manage-vulns-aka-status-report-fields',\n searchFunction: newGetVulns,\n wsDependant: true\n },\n assets: {\n name: {\n label: 'Assets',\n value: 'assets'\n },\n pathname: 'host',\n values: ASSETS_SEARCH_BY_FILTER_KEYS,\n placeholder: 'Search assets',\n advancedPlaceholder: 'e.g. {\"name\":\"os\",\"op\":\"ilike\",\"val\":\"%Win%\"}',\n documentationUrl: 'https://docs.faradaysec.com/Filters/#manage-hosts-fields',\n searchFunction: getAssetsData,\n wsDependant: true\n },\n knowledgeBase: {\n name: {\n label: 'Vuln Templates',\n value: 'knowledgeBase'\n },\n pathname: 'knowledge_base',\n values: KB_SEARCH_BY_FILTER_KEYS,\n placeholder: 'Search vuln templates',\n advancedPlaceholder: 'e.g. {\"name\":\"name\",\"op\":\"ilike\",\"val\":\"%SQL%\"}',\n documentationUrl: 'https://docs.faradaysec.com/Filters/#search',\n searchFunction: getKBData,\n wsDependant: false\n }\n};\n\nexport const SEARCH_BY_ENTITIES = [\n ENTITIES.vulns,\n ENTITIES.assets,\n ENTITIES.knowledgeBase\n];\n","import get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport isEqual from 'lodash/isEqual';\nimport isObject from 'lodash/isObject';\nimport {\n AUTOCOMPLETE_LABELS_MAP, GROUP_BY, KEY_LABELS_MAP, OPERATOR_LABELS_MAP\n} from './constants';\nimport { ENTITIES } from './entitiesConstants';\n\nexport const getSelectedEntity = (state) => get(state, 'filters.selectedEntity', '');\n\nexport const selectSelectedEntityLabel = (state) => get(ENTITIES, `${getSelectedEntity(state)}.name.label`, '');\nexport const selectSelectedEntityPathname = (state) => get(ENTITIES, `${getSelectedEntity(state)}.pathname`, '');\nexport const selectSearchFunction = (state) => get(ENTITIES, `${getSelectedEntity(state)}.searchFunction`, null);\n\nexport const selectIsAdvancedMode = (state) => get(state, 'filters.isAdvancedMode', false);\n\nexport const selectSaveEnabled = (state) => get(state, 'filters.saveEnabled', false);\n\nexport const selectFilterHistory = (entity, state) => get(state, `filters.${entity}.filterHistory`, []);\n\nconst searchKeyLabel = (name) => get(KEY_LABELS_MAP.find((key) => key.value === name), 'label', name);\n\nconst searchOperatorLabel = (op) => get(OPERATOR_LABELS_MAP.find((operator) => operator.value === op), 'label', op);\n\nconst searchAutocompleteLabel = (val) => get(AUTOCOMPLETE_LABELS_MAP.find((autocomplete) => autocomplete.value === val), 'label', val);\n\nexport const selectLabeledHistory = (entity, state) => {\n const filterHistory = selectFilterHistory(entity, state);\n\n const labeledFilters = filterHistory.map((filter) => {\n const { name, op, val } = filter;\n\n if (isObject(val)) {\n const subKeyName = `${name}__${val.name}`;\n return {\n name: searchKeyLabel(subKeyName),\n op: searchOperatorLabel(val.op),\n val: searchAutocompleteLabel(val.val).toString().replace(/%/g, '')\n };\n }\n return {\n name: searchKeyLabel(name),\n op: searchOperatorLabel(op),\n val: searchAutocompleteLabel(val).toString().replace(/%/g, '')\n };\n });\n\n return labeledFilters;\n};\n\nexport const selectRowsPerPage = (entity, state) => get(state, `filters.${entity}.rowsPerPage`, 50);\n\nexport const selectPage = (entity, state) => get(state, `filters.${entity}.page`, 1);\n\nexport const selectOrderBy = (entity, state) => get(state, `filters.${entity}.order_by`, []);\n\nexport const selectGroupBy = (entity, state) => get(state, `filters.${entity}.group_by`, GROUP_BY.none.key.value);\n\nexport const selectGroupByField = (entity, state) => get(state, `filters.${entity}.group_by[0].field`, '');\n\nexport const selectFilters = (entity, state) => get(state, `filters.${entity}.filters`, []);\n\nexport const selectFilterError = (entity, state) => get(state, `filters.${entity}.filterError`, false);\n\nexport const selectExpandedFilter = (entity, state) => get(state, `filters.${entity}.expandedFilter`, []);\n\nexport const selectAdvancedFilter = (state, entity) => get(state, `filters.${entity}.advancedFilter`, '');\n\nexport const selectEntity = (entity, state) => get(state, `filters.${entity}`, '');\n\nexport const selectIsFiltering = (entity, state) => selectFilters(entity, state).length > 0;\n\nexport const isFilteringBy = (state, entity, filter) => {\n const history = selectFilterHistory(entity, state);\n return !!history.find((el) => el.name === filter.name && el.op === filter.op && isEqual(el.val, filter.val));\n};\n\nexport const selectIsGrouping = (entity, state) => {\n const group_by = selectGroupBy(entity, state);\n return !isEmpty(group_by) && group_by !== GROUP_BY.none.key.value;\n};\n\nexport const selectQueryParam = (entity, state, isDownloadQuery = false) => {\n const entityFilters = get(state, `filters.${entity}`, null);\n\n if (entityFilters) {\n const {\n page, rowsPerPage, order_by, group_by, filters\n } = entityFilters;\n const offset = (page - 1) * rowsPerPage;\n\n let parsedFilter = isDownloadQuery ? {} : { offset, limit: rowsPerPage };\n const isOrdering = !isEmpty(order_by);\n const isGrouping = !isEmpty(group_by) && group_by !== GROUP_BY.none.key.value;\n const isFiltering = !isEmpty(filters);\n\n if (isOrdering) parsedFilter = Object.assign(parsedFilter, { order_by });\n if (isGrouping && !isDownloadQuery) parsedFilter = isOrdering ? { group_by, order_by } : { group_by };\n if (isFiltering) parsedFilter = Object.assign(parsedFilter, { filters });\n\n return parsedFilter;\n }\n return [];\n};\n\nexport const selectAdvancedFilterQueryParam = (state, entity, isDownloadQuery = false) => {\n const {\n page, rowsPerPage, group_by, order_by\n } = selectEntity(entity, state);\n const advancedFilter = selectAdvancedFilter(state, entity);\n const orderBy = JSON.stringify(order_by);\n const groupBy = JSON.stringify(group_by);\n const offset = (page - 1) * rowsPerPage;\n const isGrouping = !isEmpty(group_by) && group_by !== GROUP_BY.none.key.value;\n\n let queryToParse = '';\n if (isDownloadQuery) queryToParse = `{\"order_by\":${orderBy},\"filters\":[${advancedFilter}]}`;\n else if (isGrouping) queryToParse = `{\"order_by\":${orderBy},\"group_by\":${groupBy},\"filters\":[${advancedFilter}]}`;\n else queryToParse = `{\"offset\":${offset},\"limit\":${rowsPerPage},\"order_by\":${orderBy},\"filters\":[${advancedFilter}]}`;\n const parsedQuery = JSON.parse(queryToParse);\n return parsedQuery;\n};\n\nexport const selectExpandedQueryParam = (entity, state) => {\n const filters = selectFilters(entity, state);\n const expandedFilter = selectExpandedFilter(entity, state);\n\n if (filters.length > 0) {\n const concatenatedFilter = [\n {\n and: [\n ...filters,\n expandedFilter[0]\n ]\n }\n ];\n return { filters: concatenatedFilter };\n }\n\n return { filters: expandedFilter };\n};\n\nexport const selectAdvancedExpandedQueryParam = (state, entity) => {\n const advancedFilter = selectAdvancedFilter(state, entity);\n const expandedFilter = selectExpandedFilter(entity, state);\n\n let filters = [];\n if (advancedFilter) {\n try {\n const filtersToParse = `{\"filters\":[${advancedFilter}]}`;\n const parsedFilter = JSON.parse(filtersToParse);\n filters = parsedFilter.filters;\n } catch (e) {\n return { filters: [] };\n }\n\n if (filters.length > 0) {\n const concatenatedFilter = [\n {\n and: [\n ...filters,\n expandedFilter[0]\n ]\n }\n ];\n return { filters: concatenatedFilter };\n }\n return { filters: expandedFilter };\n }\n\n return { filters };\n};\n\nexport const selectCustomFilters = (state, entity) => get(state, `filters.${entity}.customFilters`, []);\n\nexport const selectCustomFilter = (state, entity, id) => {\n const customFilters = selectCustomFilters(state, entity);\n const customFilter = customFilters.find((customFilter) => (customFilter.id === id));\n if (customFilter) return customFilter;\n return {};\n};\n\nexport const selectStoredDashboardFilter = (state) => {\n return get(state, 'filters.dashboard', {});\n};\n","import get from 'lodash/get';\nimport filter from 'lodash/filter';\nimport find from 'lodash/find';\n\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport { selectOrderBy } from 'store/Filters/selectors';\nimport { selectWsEditCreateId } from 'store/WorkspaceEditCreate/selectors';\n\nconst selectRoutes = (state) => {\n const permissions = get(state, 'faraday.permissions', []);\n const routeList = [];\n\n if (permissions) {\n // TODO: Add validation and when custom attributes exists in permissions\n /* if (this.props.faraday.permissions.custom_fields && this.props.faraday.permissions.custom_fields.view.allowed) */\n if (permissions.workspaces && permissions.workspaces.view.allowed) routeList.push({ name: '/workspaces', desc: 'Workspaces' });\n if (permissions.vulnerability_template && permissions.vulnerability_template.view.allowed) routeList.push({ name: '/knowledge_base', desc: 'Knowledge Base' });\n }\n return routeList;\n};\nexport default selectRoutes;\n\nexport const selectWorkspacesSelected = (state) => get(state, 'workspace.workspacesSelected', []);\nexport const selectCurrentlySelectedWorkspace = (state) => get(state, 'workspace.workspaceSelected', []);\nexport const selectWorkspacesCount = (state) => get(state, 'workspace.workspaceCount', 0);\nexport const selectLastWorkspaceSelected = (state) => get(state, 'workspace.lastWorkspaceSelected', {});\nexport const selectLastIndexForRange = (state) => get(state, 'workspace.lastIndexForRange', -1);\nexport const selectLastSelected = (state) => get(state, 'workspace.lastSelected', -1);\nexport const selectShowGridView = (state) => get(state, 'workspace.showGridView', true);\nexport const selectWorkspaceList = (state) => get(state, 'workspace.workspaceList', []);\nexport const selectRedirect = (state) => get(state, 'workspace.redirect', false);\nexport const selectShowModalCreate = (state) => get(state, 'workspace.showModalCreate', false);\nexport const selectMoreOptionsOpened = (state) => get(state, 'workspace.moreOptionsOpened', false);\nexport const selectIsFetching = (state) => get(state, 'workspace.isFetching', false);\nexport const selectShowInactive = (state) => get(state, 'workspace.showInactive', false);\nexport const selectActiveWorkspaces = (state) => {\n const workspaces = get(state, 'faraday.workspaces');\n return filter(workspaces, { active: true });\n};\nexport const selectTotalVulns = (state) => {\n const currentWorkspace = selectCurrentWorkspace(state);\n const activeWorkspaces = selectActiveWorkspaces(state);\n const ws = find(activeWorkspaces, { name: currentWorkspace });\n return get(ws, 'stats.total_vulns', 0);\n};\n\nexport const selectWorkspacesOrdered = (state) => {\n const workspaces = selectWorkspaceList(state);\n const orderBy = selectOrderBy('workspaces', state);\n const orderedWorkspaces = orderBy.length > 0 ? workspaces : workspaces.sort((a, b) => b.stats.critical_vulns - a.stats.critical_vulns);\n return orderedWorkspaces;\n};\n\nexport const selectCurrentWorkspaceData = (state) => {\n const workspaces = selectWorkspaceList(state);\n const id = selectWsEditCreateId(state);\n const currentWs = workspaces.find((ws) => ws.id === id);\n return currentWs || null;\n};\n","import { updatePreferences } from 'store/Preferences/actions';\nimport { selectActiveWorkspaces } from 'store/Workspace/selectors';\nimport isEmpty from 'lodash/isEmpty';\nimport find from 'lodash/find';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport { redirect } from 'store/Router/actions';\nimport { selectWorkspaceActivity } from 'store/Preferences/workspace/selectors';\nimport {\n WORKSPACE_SELECTED_FOR_WORKING, CURRENT_WORKSPACE_EDITED_UPDATE,\n SET_CURRENT_WORKSPACE_AS_INVALID, SET_SHOW_WORKSPACE_VALIDATOR\n} from 'Screens/Workspaces/actions/Actions';\n\nexport const SET_URL_RETURN = 'SET_URL_RETURN';\n\nexport function setUrlReturn (urlReturn) {\n return (dispatch) => {\n dispatch({ type: SET_URL_RETURN, urlReturn });\n };\n}\n\nexport function updateCurrentWorkspaceOnEdit (newWsName, oldWsName) {\n return (dispatch) => {\n dispatch({\n type: CURRENT_WORKSPACE_EDITED_UPDATE, newWsName, oldWsName, redirect: false\n });\n };\n}\n\n// Summary: select a workspace for user to work\nexport function workspaceSelectedForWorking (workspace) {\n return async (dispatch, getState) => {\n const workspaces = selectActiveWorkspaces(getState());\n if (find(workspaces, { name: workspace })) await dispatch({ type: WORKSPACE_SELECTED_FOR_WORKING, workspace, redirect: false });\n };\n}\n\nexport function saveWorkspaceHistory (ws) {\n return async (dispatch, getState) => {\n const workspaceActivity = selectWorkspaceActivity(getState());\n let newWsActivity = [];\n\n if (isEmpty(workspaceActivity)) newWsActivity = [ws];\n\n else {\n const filteredWs = workspaceActivity.filter((workspace) => workspace !== ws);\n newWsActivity = [ws, ...filteredWs];\n if (newWsActivity.length > 3) newWsActivity = [...newWsActivity.slice(0, 3)];\n }\n\n dispatch(updatePreferences({ workspaceActivity: newWsActivity }));\n dispatch({ type: WORKSPACE_SELECTED_FOR_WORKING, workspace: ws, redirect: true });\n };\n}\n\nexport function setCurrentWorkspaceAsInvalid () {\n return (dispatch) => {\n dispatch({ type: SET_CURRENT_WORKSPACE_AS_INVALID });\n };\n}\n\nexport function setShowWorkspaceValidator (show) {\n return (dispatch) => {\n dispatch({ type: SET_SHOW_WORKSPACE_VALIDATOR, show });\n };\n}\n\nexport function checkWorkspace (ws) {\n return async (dispatch, getState) => {\n const workspaces = selectActiveWorkspaces(getState());\n const currentWorkspace = selectCurrentWorkspace(getState());\n\n if (ws && ws !== currentWorkspace) {\n if (workspaces.find((w) => w.name === ws)) {\n dispatch(workspaceSelectedForWorking(ws));\n } else {\n dispatch(redirect('/'));\n }\n }\n };\n}\n","import { setCurrentWorkspaceAsInvalid } from 'Screens/Faraday/actions/Actions';\nimport { READ_ONLY_ERROR } from 'store/Manage/types';\nimport get from 'lodash/get';\n\nconst DEFAULT_ERROR = 'Something went wrong. Please try again later.';\n\n// eslint-disable-next-line react/display-name\nconst validateWorkspace = (error) => (dispatch) => {\n const errorMessage = get(error, 'message', DEFAULT_ERROR);\n // If the error is caused due to the workspace no longer existing\n if (errorMessage.toLowerCase().startsWith('no such workspace')) { // TODO: Refactor with actual error code from BE once we have one\n return dispatch(setCurrentWorkspaceAsInvalid());\n } if (errorMessage.startsWith('Altering a readonly workspace is not allowed')) {\n return dispatch({ type: READ_ONLY_ERROR, error: errorMessage });\n }\n return null;\n};\n\nexport default validateWorkspace;\n","import axios from 'axios';\nimport get from 'lodash/get';\nimport head from 'lodash/head';\nimport validateWorkspace from 'utils/validateWorkspace';\nimport { failureSessionValidationCallback } from 'Screens/Login/actions/Actions';\nimport { redirect } from 'store/Router/actions';\n\nexport const CURRENT_API_VERSION = 'v3';\nexport const path = (version, url) => `/_api/${version}${url}`;\n\nexport const getRequestUrl = (url) => {\n const baseUrl = get(window, 'location.origin', '');\n const version = CURRENT_API_VERSION === 'v1' ? '' : `${CURRENT_API_VERSION}/`;\n return `${baseUrl}/_api/${version}${url}`;\n};\n\nfunction processResponse (response) {\n if (response.status > 299) throw (response);\n return response.data;\n}\n\nconst parseErrorMessage = (htmlResponse) => head(htmlResponse.match(/<p>(.*?)<\\/p>/g).map((val) => val.replace(/<\\/?p>/g, ''))) || '';\n\nconst fetchApi = () => async (url, config = {}, cancelToken, redirectTo = true, base = false) => {\n const dispatch = get(window, 'store.dispatch', null);\n const {\n headers,\n method = 'GET',\n data,\n version,\n ...rest\n } = config;\n\n const options = {\n withCredentials: true,\n method,\n headers,\n data,\n ...rest\n };\n\n if (cancelToken) {\n options.cancelToken = cancelToken;\n }\n\n try {\n if (base) {\n return processResponse(await axios(url, { ...options, withCredentials: false }));\n }\n let v = `${CURRENT_API_VERSION}/`;\n if (version) v = version === 'v1' ? '' : `${version}/`;\n return processResponse(await axios(path(v, url), options));\n } catch (e) {\n if (axios.isCancel(e)) return { status: 'canceled' };\n else {\n const status = get(e, 'response.status');\n // Logout functionality disabled disabled by default (redirectTo). Use actions to show the ErrorDialog from App.jsx instead\n if ((status === 401) && !window.location.pathname.includes('/login') && redirectTo) {\n if (dispatch) dispatch(failureSessionValidationCallback());\n dispatch(redirect('/login'));\n }\n const data = get(e, 'response.data', null);\n if (data && typeof data === 'string') {\n const error = { message: parseErrorMessage(data), status };\n if (dispatch) dispatch(validateWorkspace(error));\n throw (error) || e;\n } else {\n throw ({ ...data, status }) || e;\n }\n }\n }\n};\n\nexport default fetchApi();\n","import fetchApi from 'services/api/connector';\n\nexport const fetchLatestVulns = (ws, confirmed) => fetchApi(`ws/${ws}/vulns?page=0&page_size=5&sort=date&sort_dir=desc${confirmed ? '&confirmed=1' : ''}`);\n\nexport const getVulnsCountByStatus = (ws) => fetchApi(`ws/${ws}/vulns/count?group_by=status`);\n\nexport const getVulnsCountBySeverity = (ws) => fetchApi(`ws/${ws}/vulns/count?group_by=severity`);\n\nexport const getTopHostsDashboard = (ws) => fetchApi(`ws/${ws}/hosts?page=1&page_size=10&sort=services&sort_dir=desc`);\n\nexport const getVulnsCountByMultiWs = (ws, param) => fetchApi(`ws/${ws}/vulns/count_multi_workspace?group_by=severity&workspaces=${ws}${param}`);\n\nexport const getTopServicesByName = (ws) => fetchApi(`ws/${ws}/services/count?group_by=name`);\n\nexport const getVulnsTimeline = (ws) => fetchApi(`ws/${ws}/vulns/timeline`);\n\nexport const getActivitiesList = (ws, page) => fetchApi(`ws/${ws}/activities?page_size=16&page=${page}`);\n\nexport const getCommandHistory = (ws, page) => fetchApi(`ws/${ws}/commands?page_size=16&page=${page}`);\n","import fetchApi from 'services/api/connector';\n\nexport const newGetVulns = (ws, queryParam) => fetchApi(`ws/${ws}/vulns/filter?q=${encodeURI(JSON.stringify(queryParam))}`);\n\nexport const getVulns = (workspace, queryParam) => fetchApi(`ws/${workspace}/vulns/filter?q=${queryParam}`);\n\nexport const updateVuln = (ws, vuln) => fetchApi(`ws/${ws}/vulns/${vuln._id}`, { method: 'PATCH', data: vuln, version: 'v3' });\n\nexport const exportCSV = (ws, queryParam) => fetchApi(`ws/${ws}/vulns/filter?export_csv=true&q=${encodeURI(JSON.stringify(queryParam))}`);\n\nexport const fetchManifest = () => fetchApi('agents/get_manifests');\n\nexport const getSearchFilter = () => fetchApi('searchfilter');\n\nexport const getTemplates = () => fetchApi('vulnerability_template');\n\nexport const fetchById = (ws, id) => fetchApi(`ws/${ws}/vulns/${id}`);\n\nexport const createVuln = (ws, data) => fetchApi(`ws/${ws}/vulns`, { method: 'POST', data, version: 'v3' });\n\nexport const deleteVulns = (ws, ids) => fetchApi(`ws/${ws}/vulns`, { method: 'DELETE', data: { ids }, version: 'v3' });\n\nexport const updateVulns = (ws, data) => fetchApi(`ws/${ws}/vulns`, { method: 'PATCH', data, version: 'v3' });\n\nexport const updateAllVulns = (ws, queryParam, data) => fetchApi(`ws/${ws}/vulns?q=${encodeURI(JSON.stringify(queryParam))}`, { method: 'PATCH', data, version: 'v3' });\n\nexport const deleteAllVulns = (ws, queryParam) => fetchApi(`ws/${ws}/vulns?q=${encodeURI(JSON.stringify(queryParam))}`, { method: 'DELETE', version: 'v3' });\n","import fetchApi from 'services/api/connector';\n\nexport const fetchApiConfig = () => fetchApi('config', { version: 'v1' });\n\nexport const getSession = () => fetchApi('session', { version: 'v1' });\n\nexport const forgotPassword = (email) => fetchApi('auth/forgot_password', { version: 'v1', method: 'POST', data: { email } }, null, false);\n\nexport const resetPassword = (token, password, repeatPassword) => fetchApi(`auth/reset_password/${token}`, { version: 'v1', method: 'POST', data: { password, password_confirm: repeatPassword } }, null, false);\n\nexport const getLicense = ({ ver }) => {\n const host = 'portal.faradaysec.com';\n const clientKey = 'white';\n fetchApi(`https://${host}/api/v1/license_check?version=${ver}&key=${clientKey}`, {}, null, true, true);\n};\n","import fetchApi from 'services/api/connector';\n\nexport const addWorkspace = (data) => fetchApi('ws', { method: 'POST', data });\n\nexport const deleteWorkspace = (ws) => fetchApi(`ws/${ws}`, { method: 'DELETE' });\n\nexport const getReportStatus = (commandId) => fetchApi(`global_commands/${commandId}`);\n\nexport const getWsStats = (ws) => fetchApi(`ws/${ws}`);\n\nexport const createWorkspace = (data) => fetchApi('ws', { method: 'POST', data });\n\nexport const updateWorkspace = (ws, data) => fetchApi(`ws/${ws}`, { method: 'PATCH', data });\n\nexport const fetchWorkspaces = (queryParam) => fetchApi(`ws/filter?offset=0&limit=500&q=${escape(JSON.stringify(queryParam))}&histogram=true`);\n\nexport const getWsStatsFiltered = (ws, queryParam) => fetchApi(`ws/${ws}?${queryParam}`);\n","import fetchApi from 'services/api/connector';\n\nexport const fetchHosts = (ws, queryParam) => fetchApi(`ws/${ws}/hosts/filter?q=${escape(JSON.stringify(queryParam))}`);\n\nexport const getHosts = (ws) => fetchApi(`ws/${ws}/hosts`);\n\nexport const createHost = (ws, data) => fetchApi(`ws/${ws}/hosts`, { method: 'POST', data });\n\nexport const updateHost = (ws, data) => fetchApi(`ws/${ws}/hosts/${data.id}`, { method: 'PATCH', data });\n\nexport const deleteHost = (ws, ids) => fetchApi(`ws/${ws}/hosts`, { method: 'DELETE', data: { ids }, version: 'v3' });\n","import fetchApi from 'services/api/connector';\n\nexport const save = (data) => fetchApi('preferences', { method: 'POST', data });\nexport const fetch = () => fetchApi('preferences', { method: 'GET' });\n","import fetchApi from 'services/api/connector';\n\nexport const fetchVulns = (ws, target) => fetchApi(`ws/${ws}/vulns?target=${target}`);\n\nexport const fetchServices = (ws, host) => fetchApi(`ws/${ws}/hosts/${host}/services`);\n\nexport const fetchTools = (ws, host) => fetchApi(`ws/${ws}/hosts/${host}/tools_history`);\n\nexport const addService = (ws, parent, name, status, ports, protocol, version, description, owned) => fetchApi(`ws/${ws}/services`, {\n method: 'POST',\n data: {\n description,\n name,\n owned,\n owner: '',\n parent,\n ports,\n protocol,\n status,\n type: 'Service',\n version\n }\n});\n\nexport const editService = (ws, id, name, status, ports, protocol, version, description, owned) => fetchApi(`ws/${ws}/services/${id}`, {\n method: 'PATCH',\n data: {\n name,\n status,\n ports,\n protocol,\n version,\n description,\n owned\n },\n version: 'v3'\n});\n\nexport const fetchById = (ws, id) => fetchApi(`ws/${ws}/hosts/${id}`);\n","import fetchApi from 'services/api/connector';\n\nexport const createTemplate = (data) => fetchApi('vulnerability_template', { method: 'POST', data });\n\nexport const updateTemplate = (id, data) => fetchApi(`vulnerability_template/${id}`, { method: 'PATCH', data });\n\nexport const fetchTemplates = (queryParam) => fetchApi(`vulnerability_template/filter?q=${escape(JSON.stringify(queryParam))}`);\n\nexport const deleteTemplates = (data) => fetchApi('vulnerability_template', { method: 'DELETE', data });\n","import fetchApi from 'services/api/connector';\n\nexport const getServices = (ws) => fetchApi(`ws/${ws}/services`);\n\nexport const createService = (ws, data) => fetchApi(`ws/${ws}/services`, { method: 'POST', data });\n","import fetchApi from 'services/api/connector';\n\n//\n// CHANGE PASSWORD section\n//\n/* eslint-disable import/prefer-default-export */\nexport const changePassword = (password, new_password, new_password_confirm) => fetchApi('change', { version: 'v1', method: 'POST', data: { password, new_password, new_password_confirm } });\n","import fetchApi from 'services/api/connector';\n\nexport const addCustomAttribute = (data) => fetchApi('custom_fields_schema', { method: 'POST', data });\n\nexport const getCustomAttributes = () => fetchApi('custom_fields_schema');\n\nexport const bulkRemove = (data) => fetchApi('custom_fields_schema', { method: 'DELETE', data });\n\nexport const updateCustomAttribute = (data) => fetchApi(`custom_fields_schema/${data.id}`, { method: 'PATCH', data });\n\nexport const removeCustomAttribute = (data) => fetchApi(`custom_fields_schema/${data.id}`, { method: 'DELETE', data });\n","import fetchApi from 'services/api/connector';\n\nexport const fetchUserAgents = () => fetchApi('agents', { method: 'GET' });\nexport const removeAgent = (id) => fetchApi(`agents/${id}`, { method: 'DELETE' });\nexport const fetchToken = (data) => fetchApi('agent_token', {\n method: 'GET',\n headers: { 'Content-Type': 'multipart/form-data' },\n data\n});\nexport const fetchAgentTools = (id) => fetchApi(`agents/${id}`);\n\nexport const runUserAgentTool = (agentId, payload) => fetchApi(`agents/${agentId}/run`, {\n method: 'POST',\n headers: { 'Content-type': 'application/json' },\n data: { ...payload }\n});\n\nexport const getActiveAgents = () => fetchApi('agents/active_agents', { method: 'GET' });\n","import fetchApi from 'services/api/connector';\n\nexport const getAttachments = (ws, id) => fetchApi(`ws/${ws}/vulns/${id}/attachment`, { method: 'GET', version: 'v3' });\nexport const saveAttachments = (ws, id, data) => fetchApi(`ws/${ws}/vulns/${id}/attachment`, {\n method: 'POST', data, contentType: false, processData: false\n});\nexport const removeAttachments = (ws, id, name) => fetchApi(`ws/${ws}/vulns/${id}/attachment/${name}`, { method: 'DELETE', contentType: false, processData: false });\n","import fetchApi from 'services/api/connector';\n\nexport const getCustomFilters = () => fetchApi('searchfilter');\nexport const createCustomFilter = (data) => fetchApi('searchfilter', { method: 'POST', data });\nexport const removeCustomFilter = (id) => fetchApi(`searchfilter/${id}`, { method: 'DELETE' });\nexport const searchCustomFilter = (id) => fetchApi(`searchfilter/${id}`);\nexport const updateCustomFilter = (id, data) => fetchApi(`searchfilter/${id}`, { method: 'PATCH', data });\nexport const replaceCustomFilter = (id, data) => fetchApi(`searchfilter/${id}`, { method: 'PUT', data });\n","import fetchApi from 'services/api/connector';\n\nexport const login = (data) => fetchApi('login', { method: 'POST', data, version: 'v1' });\nexport const logout = (data) => fetchApi('logout', { method: 'POST', data, version: 'v1' });\n","import * as dashboard from './dashboard';\nimport * as manage from './manage';\nimport * as faraday from './faraday';\nimport * as workspace from './workspace';\nimport * as host from './host';\nimport * as preferences from './preferences';\nimport * as hostDetail from './hostDetail';\nimport * as knowledgeBase from './knowledgeBase';\nimport * as service from './services';\nimport * as fileUploaderContext from './fileUploaderContext';\nimport * as settings from './settings';\nimport * as customAttributes from './customAttributes';\nimport * as agents from './agents';\nimport * as attachments from './attachments';\nimport * as filters from './filters';\nimport * as auth from './auth';\n\nexport default {\n dashboard,\n manage,\n faraday,\n workspace,\n host,\n preferences,\n hostDetail,\n knowledgeBase,\n service,\n fileUploaderContext,\n settings,\n customAttributes,\n agents,\n attachments,\n filters,\n auth\n};\n","import api from 'services/api';\nimport axios, { CancelToken } from 'axios';\nimport { selectWorkspaceActivity } from 'store/Preferences/workspace/selectors';\nimport { updatePreferences } from 'store/Preferences/actions';\nimport { getWorkspaces, WORKSPACE_SELECTED_FOR_WORKING } from 'Screens/Workspaces/actions/Actions';\nimport { SUMMARY } from 'Screens/Wizard/constants';\nimport { CURRENT_API_VERSION } from 'services/api/connector';\nimport { redirect } from 'store/Router/actions';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\n\nexport const ADD_WORKSPACE_REQUEST = 'ADD_WORKSPACE_REQUEST';\nexport const ADD_WORKSPACE_SUCCESS = 'ADD_WORKSPACE_SUCCESS';\nexport const ADD_WORKSPACE_FAIL = 'ADD_WORKSPACE_FAIL';\nexport const RESET_STATE_WIZARD = 'RESET_STATE_WIZARD';\nexport const RESET_INITIAL_STEP_WIZARD = 'RESET_INITIAL_STEP_WIZARD';\nexport const SET_STEP_WIZARD = 'SET_STEP_WIZARD';\nexport const SET_WORKSPACE_NAME_WIZARD = 'SET_WORKSPACE_NAME_WIZARD';\nexport const UPLOAD_REPORT_ERROR_WIZARD = 'UPLOAD_REPORT_ERROR_WIZARD';\nexport const UPLOAD_REPORT_WIZARD_UPDATE_PERCENT = 'UPLOAD_REPORT_WIZARD_UPDATE_PERCENT';\nexport const SET_WIZARD_COMMAND_ID = 'SET_WIZARD_COMMAND_ID';\nexport const RESET_FILE_STATE_WIZARD = 'RESET_FILE_STATE_WIZARD';\nexport const CANCEL_REQUEST_WIZARD = 'CANCEL_REQUEST_WIZARD';\nexport const SET_USER_HAS_BEEN_IN_WIZARD = 'SET_USER_HAS_BEEN_IN_WIZARD';\nexport const SET_SUMMARY_VALUES_IN_WIZARD = 'SET_SUMMARY_VALUES_IN_WIZARD';\nexport const RESET_STATE_SUMMARY_WIZARD = 'RESET_STATE_SUMMARY_WIZARD';\nexport const HIDE_ERROR_MODAL_WIZARD = 'HIDE_ERROR_MODAL_WIZARD';\n\nlet gcancelTokenSource;\n\nexport function resetInitialStep () {\n return (dispatch) => {\n dispatch({\n type: RESET_INITIAL_STEP_WIZARD\n });\n };\n}\n\nexport function resetState () {\n return (dispatch) => {\n dispatch({ type: RESET_STATE_WIZARD });\n };\n}\n\nexport function resetSummary () {\n return (dispatch) => {\n dispatch({ type: RESET_STATE_SUMMARY_WIZARD });\n };\n}\n\nexport function addWorkspace (wsName) {\n return async (dispatch, getState) => {\n let workspaceActivity = selectWorkspaceActivity(getState());\n\n const workspaceData = {\n _id: wsName,\n customer: '',\n name: wsName,\n type: 'Workspace',\n users: ['faraday'],\n public: false,\n children: [],\n description: '',\n duration: { start_date: '', end_date: '' },\n scope: []\n };\n\n workspaceActivity = workspaceActivity.filter((workspace) => workspace !== wsName);\n workspaceActivity.unshift(wsName);\n\n if (workspaceActivity.length > 3) { workspaceActivity = workspaceActivity.slice(0, 3); }\n\n try {\n dispatch({ type: ADD_WORKSPACE_REQUEST });\n const data = await api.workspace.addWorkspace(workspaceData);\n dispatch({ type: ADD_WORKSPACE_SUCCESS, data });\n dispatch(updatePreferences({ workspaceActivity }));\n } catch (e) {\n dispatch({ type: ADD_WORKSPACE_FAIL, data: e.message || (e.messages ? 'Invalid workspace name' : 'An error has occurred') });\n }\n };\n}\n\nexport function selectWorkspace (ws) {\n return async (dispatch, getState) => {\n const state = getState();\n let workspaceActivity = selectWorkspaceActivity(state);\n if (workspaceActivity.includes(ws)) {\n const otherWorkspaces = workspaceActivity.filter((w) => w !== ws);\n workspaceActivity = [ws, ...otherWorkspaces];\n } else {\n workspaceActivity.unshift(ws);\n if (workspaceActivity.length > 3) {\n workspaceActivity = workspaceActivity.slice(0, 3);\n }\n }\n dispatch(updatePreferences({ workspaceActivity }));\n };\n}\n\nexport function toggleAutoSelectWs (value) {\n return async (dispatch) => {\n dispatch(updatePreferences({ autoSelectWs: value }));\n };\n}\n\nexport function setStep (step) {\n return (dispatch) => {\n dispatch({\n type: SET_STEP_WIZARD, step\n });\n };\n}\n\nexport function setWorkspaceName (ws) {\n return (dispatch) => {\n dispatch({\n type: SET_WORKSPACE_NAME_WIZARD, ws\n });\n };\n}\n\nexport function uploadFile (file) {\n return async (dispatch, getState) => {\n try {\n const ws = selectCurrentWorkspace(getState());\n const response = await api.faraday.getSession();\n\n const cancelTokenSource = CancelToken.source();\n gcancelTokenSource = cancelTokenSource;\n\n const fd = new FormData();\n fd.append('csrf_token', response.csrf_token);\n fd.append('file', file);\n\n const res = await axios.post(`/_api/${CURRENT_API_VERSION}/ws/${ws}/upload_report`, fd, {\n headers: {\n 'Content-Type': 'multipart/form-data'\n },\n onUploadProgress: async (progressEvent) => {\n dispatch({ type: UPLOAD_REPORT_WIZARD_UPDATE_PERCENT, progressEvent });\n },\n cancelToken: cancelTokenSource.token\n });\n dispatch({ type: SET_WIZARD_COMMAND_ID, commandId: res.data.command_id });\n\n const intervalId = setInterval(async () => {\n const responseReport = await api.workspace.getReportStatus(res.data.command_id);\n\n /* THIS CAN BE DONE USING WEBSOCKETS */\n if (responseReport.duration !== 'In progress' && responseReport.params !== 'In progress') {\n clearInterval(intervalId);\n\n const filename = responseReport.params.replace(/^.*[\\\\/]/, '');\n const responseStats = await api.workspace.getWsStats(ws);\n const data = {\n filename,\n vulnCount: responseStats.stats.total_vulns,\n hostsCount: responseStats.stats.hosts,\n servicesCount: responseStats.stats.services\n };\n\n dispatch({ type: SET_SUMMARY_VALUES_IN_WIZARD, data });\n dispatch({ type: SET_STEP_WIZARD, step: SUMMARY });\n dispatch(getWorkspaces());\n }\n }, 2000);\n } catch (e) {\n if (!e.message || e.message !== 'cancel') dispatch({ type: UPLOAD_REPORT_ERROR_WIZARD, error: e.response && e.response.data.message ? e.response.data.message : 'Couldn\\'t upload your file. Please try again.' });\n else dispatch({ type: CANCEL_REQUEST_WIZARD });\n }\n };\n}\n\nexport function resetFileState () {\n return (dispatch) => {\n dispatch({ type: RESET_FILE_STATE_WIZARD });\n };\n}\n\nexport function createManually () {\n return async (dispatch, getState) => {\n const ws = selectCurrentWorkspace(getState());\n dispatch({ type: WORKSPACE_SELECTED_FOR_WORKING, workspace: ws, redirect: true });\n dispatch(redirect(`/feed/${ws}`));\n };\n}\n\nexport function cancelRequest () {\n return async () => {\n if (gcancelTokenSource) {\n gcancelTokenSource.cancel('cancel');\n }\n };\n}\n\nexport function setUserHasBeenInWizard (value) {\n return (dispatch) => {\n dispatch({ type: SET_USER_HAS_BEEN_IN_WIZARD, value });\n };\n}\n\nexport function hideWizardErrorModal () {\n return (dispatch) => {\n dispatch({ type: HIDE_ERROR_MODAL_WIZARD });\n };\n}\n","import get from 'lodash/get';\n\nexport const selectLocation = (state) => get(state, 'router.location', {});\n\nexport const selectPathname = (state) => get(state, 'router.location.pathname', '');\n\nexport const selectAction = (state) => get(state, 'router.action', '');\n\nexport const selectHash = (state) => get(state, 'router.location.hash', '');\n\nexport const selectQuery = (state) => get(state, 'router.location.query', {});\n","import GitInfo from 'react-git-info/macro';\nimport api from 'services/api';\nimport { WORKSPACE_SELECTION } from 'Screens/Wizard/constants/index';\nimport {\n workspaceSelectedForWorking,\n setUrlReturn\n} from 'Screens/Faraday/actions/Actions';\nimport { getWorkspaces, WORKSPACE_SELECTED_FOR_WORKING } from 'Screens/Workspaces/actions/Actions';\nimport { toggleAutoSelectWs } from 'Screens/Wizard/actions/Actions';\nimport Cookies from 'universal-cookie';\nimport get from 'lodash/get';\nimport head from 'lodash/head';\nimport includes from 'lodash/includes';\nimport isEmpty from 'lodash/isEmpty';\n\nimport { SAVE_PREFERENCES_SUCCESS } from 'store/Preferences/actions';\nimport { selectAutoSelectWs, selectWorkspaceActivity } from 'store/Preferences/workspace/selectors';\nimport { selectIsLoggedIn, selectRememberMe, selectUserRoles } from 'store/Sesion/selectors';\nimport { selectActiveWorkspaces } from 'store/Workspace/selectors';\nimport { selectLocation } from 'store/Router/selectors';\nimport { redirect } from 'store/Router/actions';\nimport { selectUrlReturn } from 'store/Faraday/selectors';\nimport { setError } from 'store/errors/actions';\n\nexport const LOGIN_START = 'LOGIN_START';\nexport const LOGIN_SUCCESS = 'LOGIN_SUCCESS';\nexport const LOGIN_FAIL = 'LOGIN_FAIL';\nexport const LOGIN_FETCH_FINISHED = 'LOGIN_FETCH_FINISHED';\nexport const LOGOUT_SUCCESS = 'LOGOUT_SUCCESS';\nexport const HIDE_ERROR_MESSAGE_LOGIN = 'HIDE_ERROR_MESSAGE_LOGIN';\nexport const LOGOUT_SUCCESS_REDIRECT = 'LOGOUT_SUCCESS_REDIRECT';\nexport const NOT_LOGGED = 'NOT_LOGGED';\nexport const LOAD_PREFERENCES = 'LOAD_PREFERENCES';\nexport const SET_INITIAL_STEP_WIZARD = 'SET_INITIAL_STEP_WIZARD';\nexport const SET_FIRST_LOGIN = 'SET_FIRST_LOGIN';\nexport const SET_REMEMBER_ME = 'SET_REMEMBER_ME';\nexport const LOGIN_TO_INACTIVE_WORKSPACE_ERROR = 'LOGIN_TO_INACTIVE_WORKSPACE_ERROR';\n\nexport const FORGOT_PASSWORD_REQUEST = 'FORGOT_PASSWORD_REQUEST';\nexport const FORGOT_PASSWORD_SUCCESS = 'FORGOT_PASSWORD_SUCCESS';\nexport const FORGOT_PASSWORD_FAILURE = 'FORGOT_PASSWORD_FAILURE';\n\nexport const RESET_PASSWORD_REQUEST = 'RESET_PASSWORD_REQUEST';\nexport const RESET_PASSWORD_SUCCESS = 'RESET_PASSWORD_SUCCESS';\nexport const RESET_PASSWORD_FAILURE = 'RESET_PASSWORD_FAILURE';\n\nexport const VALIDATING_SESSION_START = 'VALIDATING_SESSION_START';\nexport const VALIDATING_SESSION_END = 'VALIDATING_SESSION_END';\n\n/* Callbacks */\n\nfunction failureLoginCallback () {\n return (dispatch) => {\n dispatch({ type: LOGIN_FAIL, data: { message: 'An error has occurred.' } });\n };\n}\n\nexport function failureSessionValidationCallback () {\n return (dispatch) => {\n dispatch({ type: NOT_LOGGED });\n };\n}\n\nexport function startWizard (workspaces) {\n return (dispatch) => {\n dispatch({\n type: SET_INITIAL_STEP_WIZARD, step: WORKSPACE_SELECTION, workspaces, width: '450px', height: '506px'\n });\n dispatch(redirect('/wizard', false));\n };\n}\n\nfunction validateAutoLoginWs (workspaceName) {\n return (dispatch, getState) => {\n const { workspaces } = getState().workspace;\n const workspaceToLogIn = workspaces.find((ws) => ws.name === workspaceName);\n\n if (workspaceToLogIn) {\n const isActive = get(workspaceToLogIn, 'active', false);\n if (isActive) {\n dispatch({ type: WORKSPACE_SELECTED_FOR_WORKING, workspace: workspaceName, redirect: true });\n dispatch(redirect(`/feed/${workspaceName}`));\n } else {\n dispatch(toggleAutoSelectWs(false));\n dispatch({ type: LOGIN_TO_INACTIVE_WORKSPACE_ERROR, errorMessage: 'Attempted to log into an inactive Workspace' });\n dispatch(startWizard(workspaces));\n }\n }\n };\n}\n\nexport function setUser (user, roles, csrfToken) {\n return (dispatch) => {\n dispatch({\n type: LOGIN_SUCCESS, user, roles, csrfToken\n });\n };\n}\n\nfunction successSessionCallback (data) {\n return async (dispatch) => {\n const gitInfo = GitInfo();\n const config = await api.faraday.fetchApiConfig();\n\n let licenseStatus;\n try {\n licenseStatus = await api.faraday.getLicense(config);\n } catch (e) {\n setError('There was an error while fetching licence config');\n }\n\n await dispatch({\n type: LOAD_PREFERENCES,\n permissions: data.permissions,\n hash: gitInfo.commit.shortHash,\n apiVersion: config.ver,\n role: data.roles[0],\n email: config.email,\n userName: data.name,\n wsPort: config.websocket_port,\n licenseStatus\n });\n\n await dispatch({ type: SAVE_PREFERENCES_SUCCESS, preferences: data.preferences || {} });\n\n await dispatch(setUser(data.name, data.roles, data.csrf_token));\n\n // obtengo workspaces, esto se usa en todos lados.\n await dispatch(getWorkspaces());\n };\n}\n\nexport function createSession () {\n return async (dispatch) => {\n try {\n const data = await api.faraday.getSession();\n await dispatch(successSessionCallback(data));\n } catch (e) {\n await dispatch(failureSessionValidationCallback());\n }\n };\n}\n\nexport function setFirstLogin () {\n return async (dispatch) => {\n await dispatch({ type: SET_FIRST_LOGIN, firstLogin: true });\n await dispatch(workspaceSelectedForWorking('faraday_beta'));\n dispatch(redirect('/wizard', false));\n };\n}\n\nexport function loginRedirect () {\n return async (dispatch, getState) => {\n const autoSelect = selectAutoSelectWs(getState()); // opcion autoselec, true|false\n const workspaceActivity = selectWorkspaceActivity(getState()); // ultimos workspaces usados\n const workspaces = selectActiveWorkspaces(getState()); // listado de todos los workspaces\n const roles = selectUserRoles(getState()); // roles del usuario\n const urlReturn = selectUrlReturn(getState());\n\n if (urlReturn && urlReturn !== '/login' && urlReturn !== '/logout' && urlReturn !== '/') {\n dispatch(redirect(urlReturn));\n dispatch(setUrlReturn(''));\n } else if (includes(roles, 'admin') && workspaces.length === 0) {\n // setea el primer login, y muestra workspace por default.\n dispatch(setFirstLogin());\n } else if (autoSelect && !isEmpty(workspaceActivity)) {\n // se auto loguea en el ultimo workspace.\n dispatch(validateAutoLoginWs(head(workspaceActivity)));\n } else {\n // muestra wizard\n dispatch(startWizard(workspaces));\n }\n };\n}\n\nexport function validateSession () {\n return async (dispatch, getState) => {\n const location = selectLocation(getState());\n let isLoggedIn = selectIsLoggedIn(getState());\n\n dispatch({ type: VALIDATING_SESSION_START });\n if (!isLoggedIn && !includes(['/logout'], location.pathname)) {\n await dispatch(createSession()); // valido y creo la sesion usando la cookie del browser.\n }\n dispatch({ type: VALIDATING_SESSION_END });\n\n isLoggedIn = selectIsLoggedIn(getState());\n\n if (isLoggedIn && includes(['/login', '/'], location.pathname)) {\n dispatch(loginRedirect()); // si esta logueado lo redirecciono a donde corresponde\n } else if (!isLoggedIn && !includes(['/login'], location.pathname)) {\n dispatch(redirect('/login')); // si no esta logueado va al login\n }\n // por default queda donde está\n };\n}\n\nexport function loginStart () {\n return (dispatch) => {\n dispatch({ type: LOGIN_START });\n };\n}\n\nexport function login (user, password) {\n return async (dispatch, getState) => {\n try {\n const remember = selectRememberMe(getState());\n\n await api.auth.login({ email: user || '', password: password || '', remember });\n\n // reconstruye sesion\n await dispatch(createSession());\n\n // todo ok => redirecciona a donde corresponda\n dispatch(loginRedirect());\n\n // Force loading spinner of the Login button to change after the redirect\n dispatch({ type: LOGIN_FETCH_FINISHED });\n } catch (e) {\n dispatch(failureLoginCallback());\n }\n };\n}\n\n// TODO: Must comment line 196 in app.py of faraday\nexport function logOut () {\n return async (dispatch) => {\n try {\n const cookies = new Cookies();\n cookies.remove('remember_token');\n await api.auth.logout();\n dispatch({ type: LOGOUT_SUCCESS });\n } catch (e) {\n dispatch({ type: LOGOUT_SUCCESS_REDIRECT });\n }\n dispatch(redirect('/login', false));\n };\n}\n\nexport function hideErrorMessage () {\n return (dispatch) => {\n dispatch({ type: HIDE_ERROR_MESSAGE_LOGIN });\n };\n}\n\nexport function setRememberMe (value) {\n return (dispatch) => {\n dispatch({ type: SET_REMEMBER_ME, value });\n };\n}\n\nexport function forgotPassword (email) {\n return async (dispatch) => {\n dispatch({ type: FORGOT_PASSWORD_REQUEST });\n try {\n await api.faraday.forgotPassword(email);\n return dispatch({ type: FORGOT_PASSWORD_SUCCESS, email });\n } catch (e) {\n return dispatch({ type: FORGOT_PASSWORD_FAILURE, data: { message: 'An error has occurred.' } });\n }\n };\n}\n\nexport function resetPassword (hash, password, repeatPassword) {\n return async (dispatch) => {\n dispatch({ type: RESET_PASSWORD_REQUEST });\n try {\n await api.faraday.resetPassword(hash, password, repeatPassword);\n return dispatch({ type: RESET_PASSWORD_SUCCESS });\n } catch (e) {\n return dispatch({ type: RESET_PASSWORD_FAILURE, data: { message: 'An error has occurred.' } });\n }\n };\n}\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconCloseError = function SvgIconCloseError(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 14,\n height: 14,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.929 7.497l5.2-5.2c.1441184-.14008493.2254311-.33251768.2254311-.5335S13.2731184 1.37008493 13.129 1.23c-.291119-.29771495-.76817-.3039743-1.067-.014l-5.2 5.2-5.2-5.2c-.29850991-.2985099-.78249009-.2985099-1.081 1e-8-.2985099.2985099-.2985099.78249008 0 1.08099999l5.2 5.2-5.2 5.2c-.14411837.1400849-.22543106.3325177-.22543106.5335 0 .2009823.0813127.3934151.22543106.5335.1362375.1508081.33078465.2356948.534.2330623.20019523.0016535.39265627-.0772772.534-.2190623l5.2-5.2 5.2 5.2c.2975877.2763362.7604523.2677695 1.0476109-.0193891.2871586-.2871586.2957253-.7500232.0193891-1.0476109L7.929 7.497z\",\n fill: \"#EA3158\",\n fillRule: \"nonzero\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconCloseError, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon_close_error.459e6ef9.svg\";\nexport { ForwardRef as ReactComponent };","export const CREATION_TYPE = 'CREATION_TYPE';\nexport const FILE_SELECTOR = 'FILE_SELECTOR';\nexport const INITIAL_MODE = 'INITIAL_MODE';\nexport const SUMMARY = 'SUMMARY';\nexport const WORKSPACE_NAME = 'WORKSPACE_NAME';\nexport const WORKSPACE_SELECTION = 'WORKSPACE_SELECTION';\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as CloseError } from 'Images/icon_close_error.svg';\n\nexport const FilterErrorContainer = styled.div`\n position: absolute;\n width: 100%;\n display: flex;\n flex-direction: row;\n top: 48px;\n height: 36px;\n flex: 1 1 0;\n border-radius: 3px;\n background-color: rgba(234, 49, 88, 0.1);\n`;\n\nexport const FilterErrorLabel = styled.div`\n overflow: hidden;\n margin-top: auto;\n margin-bottom: auto;\n margin-left: 21px;\n font-size: 12.5px;\n height: 14px;\n text-align: left;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: ${colors.redPink};\n`;\n\nexport const CloseErrorIcon = styled(CloseError)`\n min-width: 37px;\n margin-left: auto;\n padding-left: 12px;\n padding-right: 12px;\n cursor: pointer;\n margin-top: auto;\n margin-bottom: auto;\n `;\nCloseErrorIcon.displayName = 'CloseErrorIcon';\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { getSelectedEntity, selectFilterError } from 'store/Filters/selectors';\nimport { clearFilterError, setSaveEnabled } from 'store/Filters/actions';\nimport { FilterErrorContainer, FilterErrorLabel, CloseErrorIcon } from './styled';\n\nconst FilterError = () => {\n const selectedEntity = useSelector(getSelectedEntity);\n const error = useSelector((state) => selectFilterError(selectedEntity, state));\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (error) dispatch(setSaveEnabled(false));\n }, [error, dispatch]);\n\n return error && (\n <FilterErrorContainer>\n <FilterErrorLabel>\n { error }\n </FilterErrorLabel>\n <CloseErrorIcon onClick={ () => dispatch(clearFilterError(selectedEntity)) } />\n </FilterErrorContainer>\n );\n};\n\nexport default FilterError;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: row;\n margin: auto;\n margin-left: 0;\n align-items: center;\n`;\n\nexport const SearchBarWrapper = styled.div`\n min-width: 490px;\n height: 40px;\n position: relative;\n display: flex;\n margin-top: auto;\n margin-bottom: auto;\n border-radius: 2px;\n box-shadow: 3px 15px 50px 0 '#edf2f7';\n border: solid 1px rgba(144, 169, 192, 0.3);\n background-color: '#fafbfc';\n box-shadow: 3px 15px 50px 0 '#edf2f7';\n background-color: white;\n`;\n","import { useRef, useState, useEffect } from 'react';\nimport { SEARCH_BY_ENTITIES } from 'store/Filters/entitiesConstants';\nimport { redirect } from 'store/Router/actions';\nimport { selectPathname } from 'store/Router/selectors';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\n\nexport function shouldRedirect (selectedEntityPathname) {\n return (dispatch, getState) => {\n const pathname = selectPathname(getState());\n const selectedWorkspace = selectCurrentWorkspace(getState());\n const currentLocationEntity = SEARCH_BY_ENTITIES.find((e) => pathname.includes(e.pathname));\n const selectedEntity = SEARCH_BY_ENTITIES.find((e) => selectedEntityPathname.includes(e.pathname));\n if (selectedEntityPathname && (currentLocationEntity.pathname !== selectedEntityPathname)) {\n let url = '';\n if (selectedEntity.wsDependant) url = `/${selectedEntityPathname}/${selectedWorkspace}`;\n else url = `/${selectedEntityPathname}`;\n dispatch(redirect(url));\n }\n };\n}\n\nexport const useKeyPress = function (targetKey) {\n const [keyPressed, setKeyPressed] = useState(false);\n\n useEffect(() => {\n const downHandler = ({ key }) => {\n if (key === targetKey) {\n setKeyPressed(true);\n }\n };\n\n const upHandler = ({ key }) => {\n if (key === targetKey) {\n setKeyPressed(false);\n }\n };\n\n window.addEventListener('keydown', downHandler);\n window.addEventListener('keyup', upHandler);\n\n return () => {\n window.removeEventListener('keydown', downHandler);\n window.removeEventListener('keyup', upHandler);\n };\n });\n\n return keyPressed;\n};\n\nexport const useFocus = () => {\n const htmlElRef = useRef(null);\n const setFocus = () => { htmlElRef.current && htmlElRef.current.focus(); };\n const setBlur = () => { htmlElRef.current && htmlElRef.current.blur(); };\n return [htmlElRef, setFocus, setBlur];\n};\n\nexport const filterByInput = (options, inputValue) => {\n const filterCriteria = (option) => (\n option.name.value.includes(inputValue.toLowerCase()) ||\n option.name.label.includes(inputValue.toLowerCase())\n );\n\n const filterResult = options.filter(filterCriteria);\n if (filterResult.length > 0) return filterResult;\n return options;\n};\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Dropdown = styled.div`\nmargin-top: ${(props) => (props.paddingTop ? `${(props.paddingTop) * 34}px` : `${0}px`)};\nmax-height: 314px;\nmin-width: 171px;\nmax-width: 300px;\nmargin-bottom: auto;\noverflow: hidden;\nz-index: 4;\nborder-radius: 3px;\nbox-shadow: 0 2px 50px 0 rgba(28, 34, 67, 0.1);\nbackground-color: #ffffff;\n`;\n\nexport const DropdownOptionContainer = styled.div`\ndisplay: flex;\nflex-direction: column;\noverflow-y: auto;\noverflow-x: hidden;\nmargin-top: 8px;\nmargin-bottom: 9px;\nmax-height: 276px;\n`;\n\nexport const DropdownOptionLabel = styled.div`\ncursor: pointer;\npadding-right: 13px;\npadding-left: 21px;\nfont-size: 13.5px;\nfont-weight: normal;\nfont-stretch: normal;\nfont-style: normal;\nline-height: 2.52;\nletter-spacing: normal;\ncolor: #1c2243;\nheight: 34px;\ntext-align: left;\nbackground-color: ${(props) => (`${props.isActive ? colors.iceBlue : ''}`)};\n`;\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useState, useEffect, createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useKeyPress } from 'Common/Components/SearchBar/components/BasicFilter/functions';\nimport get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport { Dropdown, DropdownOptionContainer, DropdownOptionLabel } from './styled';\n\nconst DropdownOptions = ({\n options, onSelect, onSearch, defaultSelect, isLastDropdown\n}) => {\n const [cursor, setCursor] = useState(defaultSelect ? 0 : -1);\n const downPress = useKeyPress('ArrowDown');\n const upPress = useKeyPress('ArrowUp');\n const enterPress = useKeyPress('Enter');\n const [hovered, setHovered] = useState(undefined);\n const [elRefs, setElRefs] = React.useState([]);\n\n useEffect(() => {\n setElRefs((elRefs) => (\n Array(options.length).fill().map((_, i) => elRefs[i] || createRef())\n ));\n }, [options.length]);\n\n const executeScroll = (cursor) => {\n const ref = get(elRefs, `[${cursor}].current`, null);\n if (ref) ref.scrollIntoView(false);\n };\n\n useEffect(() => {\n const maxIndex = options.length - 1;\n if (cursor > maxIndex) {\n setCursor(maxIndex);\n executeScroll(maxIndex);\n }\n if (options.length === 1) {\n if (defaultSelect) setCursor(0);\n else setCursor(-1);\n }\n }, [options]);\n\n useEffect(() => {\n if (downPress) {\n const maxIndex = options.length - 1;\n if (cursor < maxIndex) {\n const newCursor = cursor + 1;\n setCursor(newCursor);\n executeScroll(newCursor);\n } else if (cursor === maxIndex) {\n setCursor(0);\n executeScroll(0);\n }\n }\n }, [downPress]);\n\n useEffect(() => {\n if (upPress) {\n if (cursor > 0) {\n const newCursor = cursor - 1;\n setCursor(newCursor);\n executeScroll(newCursor);\n } else if (cursor === 0) {\n if (defaultSelect) {\n const newCursor = options.length - 1;\n setCursor(newCursor);\n executeScroll(newCursor);\n } else {\n setCursor(-1);\n executeScroll(0);\n }\n }\n }\n }, [upPress]);\n\n useEffect(() => {\n if (enterPress) {\n if (cursor === -1) onSearch();\n else onSelect(options[cursor]);\n }\n }, [enterPress]);\n\n useEffect(() => {\n if (hovered && options.length) {\n setCursor(options.indexOf(hovered));\n }\n }, [hovered]);\n\n if (isEmpty(options)) return null;\n return (\n <Dropdown>\n <DropdownOptionContainer>\n {options.map((option, index) => (\n <DropdownOptionLabel\n ref={ elRefs[index] }\n isActive={ index === cursor }\n key={ option.name.value }\n onMouseEnter={ () => setHovered(option) }\n onMouseLeave={ () => setHovered(undefined) }\n onClick={ () => {\n onSelect(option);\n if (isLastDropdown && (option.name.value !== '')) onSearch();\n } }\n children={ `${option.name.label}` }\n />\n ))}\n </DropdownOptionContainer>\n </Dropdown>\n );\n};\n\nDropdownOptions.propTypes = {\n options: PropTypes.array.isRequired,\n onSelect: PropTypes.func.isRequired,\n isLastDropdown: PropTypes.bool\n};\n\nDropdownOptions.defaultProps = {\n isLastDropdown: false\n};\n\nexport default DropdownOptions;\n","var _defs, _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgClear = function SvgClear(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 8,\n height: 8,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n colorInterpolationFilters: \"auto\",\n id: \"a\"\n }, /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceGraphic\",\n values: \"0 0 0 0 0.388235 0 0 0 0 0.458824 0 0 0 0 0.552941 0 0 0 1.000000 0\"\n })))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#a)\",\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#515A65\",\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.63620523 4.42263207L1.47647628 7.8236949c-.21839303.23507347-.5715392.23507347-.7876089 0l-.52507261-.56517661c-.21839303-.23507346-.21839303-.61519225 0-.84776493L2.403485 4 .16379477 1.58924664c-.21839303-.23507346-.21839303-.61519225 0-.84776493L.68886738.1763051c.21839303-.23507347.5715392-.23507347.7876089 0l3.15972895 3.40106283c.21839303.23007189.21839303.61019068 0 .84526414z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.36379477 4.42263207L6.52352372 7.8236949c.21839303.23507347.5715392.23507347.7876089 0l.52507261-.56517661c.21839303-.23507346.21839303-.61519225 0-.84776493L5.596515 4l2.23969023-2.41075336c.21839303-.23507346.21839303-.61519225 0-.84776493L7.31113262.1763051c-.21839303-.23507347-.5715392-.23507347-.7876089 0L3.36379477 3.57736793c-.21839303.23007189-.21839303.61019068 0 .84526414z\"\n })))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgClear, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/clear.26371e5f.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as Close } from 'Images/clear.svg';\n\nexport const CloseIcon = styled(Close)`\n margin-left: 6px;\n cursor: pointer;\n `;\nCloseIcon.displayName = 'CloseIcon';\n\nconst opShadow = 'inset 0 0 12px 0 rgba(144, 169, 192, 0.16)';\nconst normalShadow = '0 0 5px 0 rgba(0, 0, 0, 0.06)';\nconst borderStyle = `solid 1px ${colors.grey12}`;\n\nexport const FilterTagContainer = styled.div`\n display:flex;\n flex-direction: row;\n`;\n\nexport const TagContainer = styled.div`\n cursor: default;\n display:flex;\n flex-direction: row;\n align-items: center;\n height: 24px;\n padding: 6px 7px 5.5px 7px;\n margin-right: ${({ type }) => (type === 'val' && '5px')};\n background-color: ${({ type }) => (type === 'op' ? `${colors.iceBlue}` : `${colors.paleGrey}`)};\n box-shadow: ${({ type }) => (type === 'op' ? opShadow : normalShadow)};\n border-top: ${({ type }) => (type === 'op' && borderStyle)};\n border-bottom: ${({ type }) => (type === 'op' && borderStyle)};\n border-right: ${({ valSelected }) => (!valSelected && borderStyle)};\n border: ${({ type }) => (type !== 'op' && borderStyle)};\n border-radius: ${({ type }) => {\n if (type === 'key') return '2px 0px 0px 2px';\n if (type === 'val') return '0px 2px 2px 0px';\n return '0px';\n }};\n`;\n\nexport const TagLabel = styled.div`\n text-align: left;\n font-size: 11.5px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: #63758d;\n white-space: nowrap;\n`;\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconLoupe = function SvgIconLoupe(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 18,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.75618 16.4425957l-3.359277-3.3244593c2.549451-3.1747088 2.309503-7.8469218-.599871-10.7520798C12.267361.83860233 10.257793 0 8.098258 0 5.938722 0 3.899161.83860233 2.36949 2.3660566.839819 3.8935108 0 5.9001664 0 8.0865225c0 2.186356.839819 4.1930116 2.36949 5.7204659 1.529671 1.4975041 3.539239 2.3660565 5.728768 2.3660565 1.829606 0 3.629219-.6289517 5.038916-1.7670549l3.329284 3.3244593c.179961.1797005.389916.2695507.629864.2695507s.479897-.0898502.629865-.2695507c.359922-.359401.359922-.9284526.029993-1.2878536zm-3.359277-8.3560732c0 1.6772046-.659858 3.264559-1.8596 4.4326123-1.199742 1.1680532-2.759407 1.8569051-4.439045 1.8569051-1.679639 0-3.269297-.6589018-4.439045-1.8569051-1.169749-1.1980034-1.8596-2.7554077-1.8596-4.4326123 0-1.6772047.659858-3.2645591 1.8596-4.4326124 1.199742-1.1680532 2.729413-1.85690511 4.439045-1.85690511 1.679638 0 3.269297.65890181 4.439045 1.85690511 1.169748 1.1980034 1.8596 2.7254576 1.8596 4.4326124z\",\n fill: \"#FFFFFF\",\n fillRule: \"nonzero\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconLoupe, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon_loupe.663ddfdd.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { getSelectedEntity, selectFilterHistory, selectLabeledHistory } from 'store/Filters/selectors';\nimport { removeFilter } from 'store/Filters/actions';\nimport PropTypes from 'prop-types';\nimport {\n CloseIcon, TagContainer, TagLabel, FilterTagContainer\n} from './styled';\nimport moment from 'moment';\n\nexport const Tag = ({\n showDelete, value, onDelete, type, valSelected, filterKey\n}) => {\n const isDate = type === 'val' && filterKey.toLowerCase().includes('date');\n const valueParsed = isDate ? moment(value).format('L') : value;\n if (!value) return null;\n return (\n <TagContainer type={ type } valSelected={ valSelected }>\n <TagLabel>\n {valueParsed}\n </TagLabel>\n { showDelete && <CloseIcon onClick={ onDelete } />}\n </TagContainer>\n );\n};\n\nexport const FilterTags = ({ onSearch }) => {\n const dispatch = useDispatch();\n const selectedEntity = useSelector(getSelectedEntity);\n const filterHistory = useSelector((state) => selectFilterHistory(selectedEntity, state));\n const labeledFilters = useSelector((state) => selectLabeledHistory(selectedEntity, state));\n const deleteTag = (filterIndex) => {\n dispatch(removeFilter(selectedEntity, filterHistory[filterIndex]));\n onSearch();\n };\n\n return (\n labeledFilters.map((filter, i) => (\n <FilterTagContainer key={ JSON.stringify(filter) }>\n <Tag type=\"key\" filterKey={ filter.name } value={ filter.name } />\n <Tag type=\"op\" filterKey={ filter.name } value={ filter.op } valSelected={ filter.val } />\n <Tag type=\"val\" filterKey={ filter.name } value={ filter.val } showDelete onDelete={ () => deleteTag(i) } />\n </FilterTagContainer>\n )));\n};\n\nexport const DraftTag = ({ draftTag }) => (\n <>\n <Tag type=\"key\" value={ draftTag.name } />\n <Tag type=\"op\" value={ draftTag.op } />\n </>\n);\n\nTag.propTypes = {\n showDelete: PropTypes.bool,\n type: PropTypes.string.isRequired,\n onDelete: PropTypes.func,\n value: PropTypes.string,\n filterKey: PropTypes.string\n};\n\nTag.defaultProps = {\n onDelete: null,\n showDelete: false,\n value: '',\n filterKey: ''\n};\n\nDraftTag.propTypes = {\n draftTag: PropTypes.object.isRequired\n};\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconClearsearch = function SvgIconClearsearch(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 14,\n height: 14,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M.38062.3664103c.47874-.455365 1.23304-.4868652 1.748522-.0913015l.106617.0913015 4.375698 4.1874353L10.988396.3664103c.512935-.4892026 1.342204-.4878911 1.855139 0 .507493.4892026.507493 1.280714 0 1.7699166L8.217592 6.559479l4.625943 4.421841c.507493.489202.507493 1.280714 0 1.769916-.512935.488547-1.342204.488547-1.855139 0L6.611457 8.564129l-4.375698 4.187107c-.47874.455977-1.233041.486376-1.748522.091196l-.106617-.091196c-.47366-.456589-.505238-1.176522-.094732-1.668224l.094732-.101692 4.625943-4.421841L.38062 2.1363269c-.507493-.4892026-.507493-1.280714 0-1.7699166z\",\n fill: \"#A1B4B6\",\n fillRule: \"nonzero\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconClearsearch, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon_clearsearch.e7b18936.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as Loupe } from 'Images/icon_loupe.svg';\nimport { ReactComponent as Clear } from 'Images/icon_clearsearch.svg';\nimport BlueButton from 'Common/Components/BlueButton';\n\nconst zIndex = 2;\n\nexport const SearchInput = styled.div`\n max-width: 550px;\n flex: 1 1 0;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: left;\n flex-direction: row;\n padding: 11px 8px 5px 10px;\n overflow-x: scroll;\n overflow-y: hidden;\n scroll-snap-align: end;\n z-index: ${zIndex + 2};\n`;\n\nexport const TagsContainer = styled.div`\n display: flex;\n flex-direction: row;\n`;\n\nexport const Input = styled.input`\n min-width: 40px;\n flex: 1 1 0;\n padding-left: 5.5px;\n border: solid 0px rgba(255, 255, 255, 0);\n background-color: rgba(255, 255, 255, 0);\n\n font-size: 13px;\n letter-spacing: 0.1px;\n color: ${colors.darkBlueGrey};\n \n :-ms-input-placeholder {\n color: rgb(222,229,236);\n }\n ::-webkit-input-placeholder {\n color: rgb(222,229,236);\n }\n`;\n\nexport const DropdownContainer = styled.div`\n left: ${(props) => (`${props.x + 48}px`)};\n position: absolute;\n display: flex;\n flex-direction: row;\n top: 45px;\n z-index: ${zIndex + 2};\n`;\n\nexport const Backdrop = styled.div`\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: ${zIndex + 1};\n`;\nBackdrop.displayName = 'PopupBackdrop';\n\nexport const SearchIcon = styled(Loupe)`\n width: 18px;\n`;\nSearchIcon.displayName = 'SearchIcon';\n\nexport const ClearIcon = styled(Clear)`\n margin-left: auto;\n margin-left: 13px;\n margin-top: auto;\n margin-bottom: auto;\n margin-right: 13px;\n color: #a1b4b6;\n cursor: pointer;\n background-color: white;\n `;\nClearIcon.displayName = 'ClearIcon';\n\nexport const SearchButton = styled(BlueButton)`\n width: 38px;\n height: 38px;\n padding: 0px;\n`;\nSearchButton.displayName = 'SearchButton';\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nconst Input = styled.input`\n min-width: 150px;\n flex: 1 1 0;\n padding-left: 5.5px;\n border: solid 0px rgba(255, 255, 255, 0);\n background-color: rgba(255, 255, 255, 0);\n\n font-size: 13px;\n letter-spacing: 0.1px;\n color: ${colors.darkBlueGrey};\n \n :-ms-input-placeholder {\n color: rgb(222,229,236);\n }\n ::-webkit-input-placeholder {\n color: rgb(222,229,236);\n }\n ::-webkit-calendar-picker-indicator {\n background: transparent;\n bottom: 0;\n color: transparent;\n cursor: pointer;\n height: auto;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n width: auto;\n }\n`;\n\nexport default Input;\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconHelp = function SvgIconHelp(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 18,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 0C4.029437 0 0 4.029437 0 9s4.029437 9 9 9 9-4.029437 9-9c0-2.386948-.948212-4.676134-2.636039-6.363961C13.676134.948212 11.386948 0 9 0zm0 13.752l-.0876.018h-.18c-.054-.0108-.108-.0192-.1596-.0348-.492268-.1281-.809223-.60618-.735556-1.10948.073667-.503299.514343-.870487 1.022674-.852131.50833.018357.921373.416373.958547.923675.037173.507302-.31344.961276-.813665 1.053536L9 13.752zm2.88-6.5352c-.102818.331046-.28157.633487-.522.8832a5.95921827 5.95921827 0 01-.9.7392c-.18.12-.3408.2544-.51.384-.152768.126448-.26777.292517-.3324.48-.036.0972-.0768.1944-.12.2916-.09508.264678-.34517.441945-.6264.444-.155308.016986-.312333-.007873-.4548-.072-.219543-.107161-.372488-.315274-.4092-.5568-.059016-.336003.018756-.681655.216-.96.155572-.228561.346331-.431065.5652-.6.24-.192.48-.3756.72-.5688.200234-.15337.367899-.345103.4932-.564.200651-.37831.153268-.840297-.12-1.17-.142761-.155617-.33232-.260506-.54-.2988-.276879-.064774-.565504-.059826-.84.0144-.284622.077604-.521777.274504-.6504.54-.0852.1584-.1584.3204-.24.48-.058201.121409-.136962.231836-.2328.3264-.167432.146652-.388099.217456-.6096.1956-.134923-.003349-.267052-.03916-.3852-.1044-.223859-.115775-.363191-.347995-.36-.6-.009211-.39752.117819-.786234.36-1.1016.279985-.378473.651637-.67951 1.08-.8748.322923-.153288.668643-.252991 1.0236-.2952l.2016-.0192h.36l.1944.018c.481534.030291.952817.152491 1.3884.36.389699.178501.722081.461857.96.8184.18414.287026.296124.614332.3264.954.048153.284968.035888.576875-.036.8568z\",\n fill: \"#0082ED\",\n fillRule: \"nonzero\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconHelp, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon_help.1b34b217.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useRef, useEffect } from 'react';\nimport Input from './styled';\n\nconst DateInput = ({ onValueSelect }) => {\n const ref = useRef(null);\n\n useEffect(() => {\n if (ref?.current) ref.current.showPicker();\n }, []);\n\n return <Input ref={ ref } type='date' onChange={ (e) => onValueSelect(e.target.value) } />;\n};\n\nexport default DateInput;\n","import React, { useState, useRef } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n getSelectedEntity, selectFilterError, selectFilterHistory, selectIsFiltering, selectSearchFunction, selectSelectedEntityLabel, selectSelectedEntityPathname\n} from 'store/Filters/selectors';\nimport { SEARCH_BY_ENTITIES, ENTITIES } from 'store/Filters/entitiesConstants';\nimport get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport moment from 'moment';\nimport {\n addFilter, removeFilter, setSelectedEntity, clearFilterError, clearFilters, setSaveEnabled\n} from 'store/Filters/actions';\nimport { createNameKey, SEARCH_BY_FILTER_KEYS } from 'store/Filters/constants';\nimport { selectLocation } from 'store/Router/selectors';\nimport DropdownOptions from './components/Dropdown';\nimport { FilterTags, DraftTag, Tag } from './components/FilterTags';\nimport {\n DropdownContainer, Input, SearchInput,\n TagsContainer, Backdrop, SearchIcon, ClearIcon, SearchButton\n} from './styled';\nimport { filterByInput, shouldRedirect, useFocus } from './functions';\nimport DateInput from './components/DateInput';\n\nconst BasicFilter = () => {\n const [basicInputValue, setBasicInputValue] = useState('');\n const [showDropdown, setShowDropdown] = useState(false);\n const [draftTag, setDraftTag] = useState({});\n const [selectedKey, setSelectedKey] = useState(null);\n const [selectedOp, setSelectedOp] = useState(null);\n const [selectedVal, setSelectedVal] = useState(null);\n const [inputRef, setInputFocus, setInputBlur] = useFocus();\n const tagsContainerRef = useRef(null);\n const dispatch = useDispatch();\n const location = useSelector(selectLocation);\n const currentLocationEntity = SEARCH_BY_ENTITIES.find((e) => location.pathname.includes(e.pathname));\n const selectedEntity = useSelector(getSelectedEntity);\n const selectedEntityLabel = useSelector(selectSelectedEntityLabel);\n const selectedEntityPathname = useSelector(selectSelectedEntityPathname);\n const searchFunction = useSelector(selectSearchFunction);\n const isFiltering = useSelector((state) => selectIsFiltering(selectedEntity, state));\n const filterError = useSelector((state) => selectFilterError(selectedEntity, state));\n const filterHistory = useSelector((state) => selectFilterHistory(selectedEntity, state));\n const subKey = get(selectedKey, 'name.value', '');\n const isSubKey = subKey.includes('__');\n\n const primaryKeyOperators = get(selectedKey, 'operators', []);\n const primaryKeyAutocomplete = get(selectedKey, 'autocomplete', []);\n const subKeyOperators = get(SEARCH_BY_FILTER_KEYS, `${subKey}.operators`, []);\n const subKeyAutocomplete = get(SEARCH_BY_FILTER_KEYS, `${subKey}.autocomplete`, []);\n\n const entityFilterKeys = get(ENTITIES, `${selectedEntity}.values`, []);\n const filterKeyOperators = isSubKey ? subKeyOperators : primaryKeyOperators;\n const filterKeyAutocomplete = isSubKey ? subKeyAutocomplete : primaryKeyAutocomplete;\n\n const filteredEntities = filterByInput(SEARCH_BY_ENTITIES, basicInputValue);\n const filteredEntityKeys = filterByInput(entityFilterKeys, basicInputValue);\n const filteredKeyOperators = filterByInput(filterKeyOperators, basicInputValue);\n\n const autocompleteInputSugestion = () => {\n const isDate = subKey.includes('date');\n const parsed = isDate ? moment(basicInputValue).format('L') : basicInputValue;\n return ([createNameKey(parsed || 'Type your query', basicInputValue)]);\n };\n\n const filteredKeyAutocomplete = filterByInput(filterKeyAutocomplete, basicInputValue).length > 0 ? filterByInput(filterKeyAutocomplete, basicInputValue) : autocompleteInputSugestion();\n\n const onSearchGlassClick = () => {\n if (selectedEntity) {\n dispatch(shouldRedirect(selectedEntityPathname));\n dispatch(searchFunction());\n dispatch(setSaveEnabled(true));\n }\n };\n\n const resetFilterIndexes = () => {\n setDraftTag({});\n setSelectedKey(null);\n setSelectedOp(null);\n setSelectedVal(null);\n };\n\n const onDropdownSearch = () => {\n dispatch(shouldRedirect(selectedEntityPathname));\n dispatch(searchFunction());\n setShowDropdown(false);\n dispatch(setSaveEnabled(true));\n setInputBlur();\n };\n\n const onKeyDown = (e) => {\n if (e.key === 'Escape') {\n setBasicInputValue('');\n setShowDropdown(false);\n setInputBlur();\n resetFilterIndexes();\n if (!isFiltering) dispatch(setSelectedEntity(''));\n }\n if (e.key === 'Backspace') {\n const filterHistoryCount = filterHistory.length;\n\n if (!basicInputValue) {\n if (!isEmpty(draftTag)) resetFilterIndexes();\n else if (filterHistoryCount > 0) dispatch(removeFilter(selectedEntity, filterHistory[filterHistoryCount - 1]));\n else if (filterHistoryCount === 0) {\n if (selectedEntity) dispatch(setSelectedEntity(''));\n dispatch(setSaveEnabled(false));\n }\n }\n }\n };\n\n const onSelect = (elementName, elementValue) => {\n let filterTag = {};\n\n if (elementName === 'entity') {\n dispatch(setSelectedEntity(elementValue.name.value));\n } else if (elementName === 'key') {\n setSelectedKey(elementValue);\n filterTag = { name: elementValue.name.label };\n } else if (elementName === 'val') {\n onValueSelect(elementValue);\n } else {\n setSelectedOp(elementValue);\n filterTag = { ...draftTag, op: elementValue.name.label };\n }\n\n setBasicInputValue('');\n setInputFocus();\n setDraftTag(filterTag);\n };\n\n const onValueSelect = (selectedVal) => {\n const name = selectedKey.name.value;\n const op = selectedOp.name.value;\n const val = op === 'ilike' ? `%${selectedVal.name.value}%` : selectedVal.name.value;\n\n let filter = {};\n\n if (selectedVal.name.value !== '') {\n setSelectedVal(selectedVal);\n\n if (isSubKey) {\n const value = (name === 'cve_instances__name') ? val.toUpperCase() : val;\n const complexKeys = ['cve_instances__name'];\n const isComplexSearch = complexKeys.includes(name);\n const isNotOneOf = (draftTag) && (draftTag.op === 'is not one of');\n filter = {\n name: name.split('__')[0],\n op: (isComplexSearch && isNotOneOf) ? primaryKeyOperators[1].name.value : primaryKeyOperators[0].name.value,\n val: {\n name: name.split('__')[1],\n op,\n val: value\n }\n };\n } else {\n filter = {\n name,\n op,\n val\n };\n }\n\n setBasicInputValue('');\n\n dispatch(addFilter(selectedEntity, filter));\n resetFilterIndexes();\n\n dispatch(setSaveEnabled(true));\n }\n setInputFocus();\n };\n\n const clearAllFilters = () => {\n if (selectedEntity) {\n if (filterError) dispatch(clearFilterError(selectedEntity));\n if (isFiltering) dispatch(clearFilters(selectedEntity));\n dispatch(searchFunction());\n dispatch(setSelectedEntity(''));\n }\n setBasicInputValue('');\n setInputBlur();\n resetFilterIndexes();\n };\n\n const onTagDelete = () => {\n resetFilterIndexes();\n if (!isFiltering) dispatch(setSelectedEntity(''));\n };\n\n const onBackdropClickHandler = () => {\n setShowDropdown(false);\n resetFilterIndexes();\n setBasicInputValue('');\n };\n\n const tagsContainerWidth = tagsContainerRef.current ? tagsContainerRef.current.clientWidth : 44;\n const dropdownPosition = (tagsContainerWidth < 415) ? tagsContainerWidth : 415;\n\n const isVisible = {\n entity: showDropdown && !selectedEntity,\n key: showDropdown && selectedEntity && !selectedKey,\n op: showDropdown && selectedKey && !selectedOp,\n val: showDropdown && selectedOp && !selectedVal\n };\n\n const showDateInput = subKey.includes('date') && isVisible.val;\n\n return (\n <>\n <SearchInput>\n <TagsContainer ref={ tagsContainerRef }>\n <Tag type=\"val\" value={ selectedEntityLabel ? `${selectedEntityLabel}: ` : '' } showDelete={ !isFiltering } onDelete={ onTagDelete } />\n <FilterTags entity={ selectedEntity } onSearch={ () => dispatch(searchFunction()) } />\n <DraftTag draftTag={ draftTag } />\n </TagsContainer>\n { !showDateInput && (<Input\n ref={ inputRef }\n placeholder={ isFiltering ? '' : currentLocationEntity.placeholder }\n value={ basicInputValue }\n onChange={ (e) => setBasicInputValue(e.target.value) }\n onFocus={ () => setShowDropdown(true) }\n onKeyDown={ onKeyDown }\n />)}\n { showDateInput && <DateInput onValueSelect={ (val) => onSelect('val', createNameKey(val, val)) } />}\n </SearchInput>\n <DropdownContainer x={ dropdownPosition }>\n { isVisible.entity && <DropdownOptions defaultSelect onSearch={ onDropdownSearch } options={ filteredEntities } onSelect={ (val) => onSelect('entity', val) } /> }\n { isVisible.key && <DropdownOptions onSearch={ onDropdownSearch } options={ filteredEntityKeys } onSelect={ (val) => onSelect('key', val) } /> }\n { isVisible.op && <DropdownOptions defaultSelect onSearch={ onDropdownSearch } options={ filteredKeyOperators } onSelect={ (val) => onSelect('op', val) } /> }\n { isVisible.val && <DropdownOptions isLastDropdown defaultSelect onSearch={ onDropdownSearch } options={ filteredKeyAutocomplete } onSelect={ onValueSelect } /> }\n </DropdownContainer>\n { selectedEntityLabel && <ClearIcon onClick={ clearAllFilters } /> }\n { showDropdown && <Backdrop onClick={ onBackdropClickHandler } /> }\n <SearchButton onClick={ onSearchGlassClick } label={ <SearchIcon /> } />\n </>\n );\n};\n\nexport default BasicFilter;\n","import React, { useState, useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n getSelectedEntity, selectFilterError, selectAdvancedFilter, selectSaveEnabled\n} from 'store/Filters/selectors';\nimport {\n setSelectedEntity, setAdvancedFilter, setFilterError, clearFilterError, setSaveEnabled, clearAdvancedFilter\n} from 'store/Filters/actions';\nimport { SEARCH_BY_ENTITIES, ENTITIES } from 'store/Filters/entitiesConstants';\nimport get from 'lodash/get';\nimport { selectLocation } from 'store/Router/selectors';\nimport DropdownOptions from '../BasicFilter/components/Dropdown';\nimport { Tag } from '../BasicFilter/components/FilterTags';\nimport { filterByInput, shouldRedirect, useFocus } from '../BasicFilter/functions';\nimport {\n DropdownContainer, Input, SearchInput,\n TagsContainer, Backdrop, SearchIcon, ClearIcon, SearchButton\n} from '../BasicFilter/styled';\n\nconst AdvancedFilter = () => {\n const [advancedFilterValue, setAdvancedFilterValue] = useState('');\n const [showDropdown, setShowDropdown] = useState(false);\n const [inputRef, setInputFocus, setInputBlur] = useFocus();\n const dispatch = useDispatch();\n const location = useSelector(selectLocation);\n const currentLocationEntity = SEARCH_BY_ENTITIES.find((e) => location.pathname.includes(e.pathname));\n const selectedEntity = useSelector(getSelectedEntity);\n const selectedEntityLabel = get(ENTITIES, `${selectedEntity}.name.label`, '');\n const selectedEntityPathname = get(ENTITIES, `${selectedEntity}.pathname`, '');\n const searchFunction = get(ENTITIES, `${selectedEntity}.searchFunction`, null);\n const storedAdvancedFilter = useSelector((state) => selectAdvancedFilter(state, selectedEntity));\n const filterError = useSelector((state) => selectFilterError(selectedEntity, state));\n const filteredEntities = filterByInput(SEARCH_BY_ENTITIES, advancedFilterValue);\n const saveEnabled = useSelector(selectSaveEnabled);\n\n useEffect(() => {\n setAdvancedFilterValue(storedAdvancedFilter);\n }, [storedAdvancedFilter]);\n\n useEffect(() => {\n if (saveEnabled) dispatch(setSaveEnabled(false));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dispatch, advancedFilterValue]);\n\n const onSelect = (entityName) => {\n dispatch(setSelectedEntity(entityName));\n setAdvancedFilterValue('');\n setInputFocus();\n };\n\n const validateFilterSyntax = () => {\n if (filterError) dispatch(clearFilterError(selectedEntity));\n try {\n const queryToParse = `{\"filters\":[${advancedFilterValue}]}`;\n JSON.parse(queryToParse);\n dispatch(shouldRedirect(selectedEntityPathname));\n dispatch(setAdvancedFilter(selectedEntity, advancedFilterValue));\n dispatch(setSaveEnabled(true));\n dispatch(searchFunction());\n setShowDropdown(false);\n setInputBlur();\n } catch (e) {\n dispatch(setFilterError(selectedEntity, 'Syntax error. Please try again. For further help check our documentation'));\n }\n };\n\n const onAdvancedKeyUp = (e) => {\n if (e.key === 'Enter') {\n if (selectedEntity && advancedFilterValue) validateFilterSyntax();\n } else if (e.key === 'Escape') {\n setInputBlur();\n setShowDropdown(false);\n }\n };\n\n const onAdvancedKeyDown = (e) => {\n if (e.key === 'Escape') {\n setAdvancedFilterValue('');\n dispatch(setSelectedEntity(''));\n } else if (e.key === 'Backspace') {\n if (!advancedFilterValue) {\n dispatch(setSelectedEntity(''));\n dispatch(setSaveEnabled(false));\n }\n }\n };\n\n const onDelete = () => {\n setAdvancedFilterValue('');\n setInputBlur();\n setShowDropdown(false);\n if (selectedEntity) {\n dispatch(clearFilterError(selectedEntity));\n dispatch(clearAdvancedFilter(selectedEntity));\n dispatch(searchFunction());\n dispatch(setSelectedEntity(''));\n }\n };\n\n return (\n <>\n <SearchInput>\n <TagsContainer>\n <Tag type=\"val\" value={ selectedEntityLabel } showDelete={ !storedAdvancedFilter } onDelete={ onDelete } />\n </TagsContainer>\n <Input\n ref={ inputRef }\n value={ advancedFilterValue }\n type=\"text\"\n placeholder={ currentLocationEntity.advancedPlaceholder }\n onChange={ ({ target }) => setAdvancedFilterValue(target.value) }\n onBlur={ ({ target }) => setAdvancedFilterValue(target.value) }\n onKeyDown={ onAdvancedKeyDown }\n onKeyUp={ onAdvancedKeyUp }\n onFocus={ () => setShowDropdown(true) }\n />\n </SearchInput>\n <DropdownContainer x={ 0 }>\n {showDropdown && !selectedEntity && <DropdownOptions defaultSelect options={ filteredEntities } onSelect={ (entity) => onSelect(entity.name.value) } /> }\n </DropdownContainer>\n { selectedEntityLabel && <ClearIcon onClick={ onDelete } /> }\n { showDropdown && <Backdrop onClick={ () => setShowDropdown(false) } /> }\n <SearchButton onClick={ () => { if (selectedEntity && advancedFilterValue) validateFilterSyntax(); } } label={ <SearchIcon /> } />\n </>\n );\n};\n\nexport default AdvancedFilter;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as Help } from 'Images/icon_help.svg';\n\nexport const AdvancedModeWrapper = styled.div`\n position: absolute;\n display: flex;\n flex-direction: row;\n top: 48px;\n right: 0px;\n`;\n\nexport const HelpIcon = styled(Help)`\n margin-right: 9px;\n background-color: ${colors.blueCerulean};\n cursor: pointer;\n`;\nHelpIcon.displayName = 'HelpIcon';\n\nexport const AdvancedModeLabel = styled.div`\n user-select: none;\n margin-left: auto;\n font-size: 13px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: ${colors.blueCerulean};\n cursor: pointer;\n`;\n","import React from 'react';\nimport {\n getSelectedEntity, selectIsAdvancedMode, selectFilterError, selectFilters\n} from 'store/Filters/selectors';\nimport {\n setAdvancedFilter, setAdvancedMode, clearFilters, clearAdvancedFilter\n} from 'store/Filters/actions';\nimport { useSelector, useDispatch } from 'react-redux';\nimport get from 'lodash/get';\nimport { ENTITIES } from 'store/Filters/entitiesConstants';\nimport { AdvancedModeWrapper, AdvancedModeLabel } from './styled';\n\nconst AdvancedModeSelector = () => {\n const isAdvancedMode = useSelector(selectIsAdvancedMode);\n const dispatch = useDispatch();\n const selectedEntity = useSelector(getSelectedEntity);\n const filterError = useSelector((state) => selectFilterError(selectedEntity, state));\n const searchFunction = get(ENTITIES, `${selectedEntity}.searchFunction`, null);\n const basicFilters = useSelector((state) => selectFilters(selectedEntity, state));\n\n const toggleMode = () => {\n if (selectedEntity) {\n if (isAdvancedMode) {\n dispatch(clearAdvancedFilter(selectedEntity));\n } else if (basicFilters.length > 0) {\n // We have to 'translate' basic filter into an advanced one\n dispatch(setAdvancedFilter(selectedEntity, JSON.stringify(basicFilters[0])));\n dispatch(clearFilters(selectedEntity));\n }\n dispatch(searchFunction());\n }\n dispatch(setAdvancedMode(!isAdvancedMode));\n };\n\n return !filterError && (\n <AdvancedModeWrapper>\n <AdvancedModeLabel onClick={ toggleMode }>\n { isAdvancedMode ? 'Basic search' : 'Advanced search' }\n </AdvancedModeLabel>\n </AdvancedModeWrapper>\n );\n};\n\nexport default AdvancedModeSelector;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { fadeIn } from 'Styles/effects';\n\nexport const Backdrop = styled.div`\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 3;\n`;\nBackdrop.displayName = 'PopupBackdrop';\n\nexport const Wrapper = styled.div`\n margin-right: 13px;\n margin-left: 13px;\n position: relative;\n`;\n\nexport const ButtonContainer = styled.div`\n cursor: ${({ disabled }) => (disabled ? 'default' : 'pointer')};\n width: 87px;\n height: 34px;\n border-radius: 2px;\n border: solid 1px ${colors.grey12};\n border: ${({ disabled }) => (disabled ? `solid 1px ${colors.grey26}` : `solid 1px ${colors.darkBlueGrey}`)};\n background-color: #fff;\n`;\n\nexport const ButtonLabel = styled.div`\n user-select: none;\n height: 34px;\n padding: 7px 15px 10px 15px;\n width: 87px;\n font-size: 11.5px;\n font-weight: 500;\n color: ${({ disabled }) => (disabled ? `${colors.grey26}` : `${colors.darkBlueGrey}`)};\n`;\n\nexport const FilterLabelContainer = styled.div`\n display: flex;\n flex-direction: row;\n flex: 1 0 0;\n height: 13px;\n`;\n\nexport const RedAster = styled.span`\n color: #ea3158; \n`;\nRedAster.displayName = 'RedAster';\n\nexport const FilterLabel = styled.div`\n text-align: left;\n font-size: 12.5px;\n letter-spacing: 0.09px;\n color: #afb1bc;\n`;\n\nexport const NameInput = styled.input`\n width: 265px;\n height: 34px;\n font-size: 14.5px;\n letter-spacing: 0.11px;\n padding-top: 9px;\n padding-bottom: 9px;\n padding-left: 15px;\n border-top-style: hidden;\n border-right-style: hidden;\n border-left-style: hidden;\n border-bottom-style: hidden;\n box-shadow: inset 0 -1px 0 0 #afafaf;\n color: ${({ isSelected, value }) => ((isSelected || value) ? ' #1c2243' : `${colors.grey12}`)};\n background-color: ${({ isSelected, value }) => ((isSelected || value) ? '#fff' : '#EDF2F7')} ;\n &::placeholder {\n color: ${colors.grey12};\n font-size: 14.5px;\n }\n`;\n\nexport const ModalContainer = styled.div`\n ${({ flipPos }) => {\n if (flipPos) return 'right: 0';\n return 'left: 0';\n }};\n padding: 21px;\n z-index: 4;\n display: flex;\n flex-direction: column;\n border-radius: 3px;\n box-shadow: 0 2px 50px 0 rgba(28, 34, 67, 0.1);\n background-color: #fff;\n position: absolute;\n top: 40px;\n width: 306px;\n height: 145px;\n ${fadeIn(0, 1)};\n\n >:nth-child(2){\n margin-top: 8px;\n margin-left: auto;\n margin-right: auto;\n }\n >:nth-child(3){\n width: 89px;\n height: 34px;\n margin-top: 13px;\n margin-left: auto;\n }\n`;\n","import React, { useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport BlueButton from 'Common/Components/BlueButton';\nimport { getCustomFilters, createCustomFilter } from 'store/Filters/actions';\nimport {\n getSelectedEntity, selectIsFiltering, selectAdvancedFilter, selectSaveEnabled\n} from 'store/Filters/selectors';\nimport {\n ButtonContainer, ButtonLabel, ModalContainer, RedAster,\n FilterLabelContainer, FilterLabel, NameInput, Wrapper, Backdrop\n} from './styled';\n\nconst SaveFilter = () => {\n const [showModal, setShowModal] = useState(false);\n const [inputValue, setInputValue] = useState('');\n const [inputFocus, setInputFocus] = useState(false);\n const [invertedDisplayPos, setInvertDisplayPost] = useState(false);\n\n const selectedEntity = useSelector(getSelectedEntity);\n const isFiltering = useSelector((state) => selectIsFiltering(selectedEntity, state));\n const isFilteringByAdvanced = useSelector((state) => selectAdvancedFilter(state, selectedEntity));\n const dispatch = useDispatch();\n const enabled = useSelector(selectSaveEnabled);\n const disableSave = !enabled || (!isFiltering && !isFilteringByAdvanced);\n\n const onBackdropClickHandler = () => {\n setShowModal(false);\n setInputFocus(false);\n setInputValue('');\n };\n\n const saveFilter = () => {\n dispatch(createCustomFilter(selectedEntity, inputValue));\n dispatch(getCustomFilters());\n onBackdropClickHandler();\n };\n\n const onKeyUp = ({ key }) => {\n if (key === 'Enter') {\n saveFilter();\n }\n };\n\n const measuredRef = (ref) => {\n if (ref !== null) {\n const { width, x } = ref.getBoundingClientRect();\n const viewWidth = document.body.clientWidth;\n const spaceLeftToPlace = invertedDisplayPos ? (viewWidth - x - width) : (viewWidth - x);\n if (spaceLeftToPlace < width) setInvertDisplayPost(true);\n else setInvertDisplayPost(false);\n }\n };\n\n return (\n <Wrapper>\n <ButtonContainer disabled={ disableSave } onClick={ disableSave ? null : () => setShowModal(!showModal) }>\n <ButtonLabel disabled={ disableSave }>\n Save Filter\n </ButtonLabel>\n </ButtonContainer>\n { showModal && (\n <>\n <Backdrop onClick={ onBackdropClickHandler } />\n <ModalContainer ref={ measuredRef } flipPos={ invertedDisplayPos }>\n <FilterLabelContainer>\n <FilterLabel>\n Filter Name\n <RedAster> *</RedAster>\n </FilterLabel>\n </FilterLabelContainer>\n <NameInput\n isSelected={ inputFocus }\n onBlur={ () => setInputFocus(false) }\n onFocus={ () => setInputFocus(true) }\n placeholder=\"My New Filter\"\n value={ inputValue }\n onChange={ (e) => setInputValue(e.target.value) }\n onKeyUp={ onKeyUp }\n />\n <BlueButton label=\"Save\" disabled={ !inputValue } onClick={ saveFilter } />\n </ModalContainer>\n </>\n )}\n </Wrapper>\n );\n};\n\nexport default SaveFilter;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { selectIsAdvancedMode } from 'store/Filters/selectors';\nimport FilterError from './components/FilterError';\nimport { SearchBarWrapper, Wrapper } from './styled';\nimport BasicFilter from './components/BasicFilter';\nimport AdvancedFilter from './components/AdvancedFilter';\nimport AdvancedModeSelector from './components/AdvancedModeSelector';\nimport SaveFilter from './components/SaveFilter';\n\nconst FilterBar = () => {\n const isAdvancedMode = useSelector(selectIsAdvancedMode);\n return isAdvancedMode ? <AdvancedFilter /> : <BasicFilter />;\n};\n\nconst SearchBar = () => (\n <Wrapper>\n <SearchBarWrapper>\n <FilterBar />\n <FilterError />\n <AdvancedModeSelector />\n </SearchBarWrapper>\n <SaveFilter />\n </Wrapper>\n);\n\nexport default SearchBar;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as Loupe } from 'Images/icon_loupe.svg';\nimport { ReactComponent as Clear } from 'Images/icon_clearsearch.svg';\nimport BlueButton from 'Common/Components/BlueButton';\n\nconst zIndex = 2;\n\nexport const SearchInput = styled.div`\n max-width: 550px;\n flex: 1 1 0;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: left;\n flex-direction: row;\n padding: 11px 8px 5px 10px;\n overflow-x: scroll;\n overflow-y: hidden;\n scroll-snap-align: end;\n z-index: ${zIndex + 2};\n`;\n\nexport const Input = styled.input`\n min-width: 150px;\n flex: 1 1 0;\n padding-left: 5.5px;\n border: solid 0px rgba(255, 255, 255, 0);\n background-color: rgba(255, 255, 255, 0);\n\n font-size: 13px;\n letter-spacing: 0.1px;\n color: ${colors.darkBlueGrey};\n \n :-ms-input-placeholder {\n color: rgb(222,229,236);\n }\n ::-webkit-input-placeholder {\n color: rgb(222,229,236);\n }\n`;\n\nexport const SearchIcon = styled(Loupe)`\n width: 18px;\n`;\nSearchIcon.displayName = 'SearchIcon';\n\nexport const ClearIcon = styled(Clear)`\n margin-left: auto;\n margin-left: 13px;\n margin-top: auto;\n margin-bottom: auto;\n margin-right: 13px;\n color: #a1b4b6;\n cursor: pointer;\n background-color: white;\n `;\nClearIcon.displayName = 'ClearIcon';\n\nexport const SearchButton = styled(BlueButton)`\n width: 38px;\n height: 38px;\n padding: 0px;\n`;\nSearchButton.displayName = 'SearchButton';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: row;\n margin: auto;\n margin-left: 0;\n align-items: center;\n min-width: 490px;\n height: 40px;\n position: relative;\n display: flex;\n margin-top: auto;\n margin-bottom: auto;\n border-radius: 2px;\n box-shadow: 3px 15px 50px 0 '#edf2f7';\n border: solid 1px rgba(144, 169, 192, 0.3);\n background-color: '#fafbfc';\n box-shadow: 3px 15px 50px 0 '#edf2f7';\n background-color: white;\n\n .btn-loupe {\n padding: 7px 10px;\n }\n`;\n","import React, { useCallback, useState } from 'react';\nimport 'Common/styles/commonStyles.scss';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { setWorkspaceFilter } from 'Screens/Workspaces/actions/Actions';\nimport { setFilterTemplates } from 'Screens/KnowledgeBase/actions/Actions';\nimport { selectLocation } from 'store/Router/selectors';\nimport {\n Wrapper, Input, SearchInput,\n SearchIcon, ClearIcon, SearchButton\n} from './styled';\nimport get from 'lodash/get';\n\nconst BasicSearcher = () => {\n const [filterText, setFilterText] = useState('');\n const dispatch = useDispatch();\n const pathname = get(useSelector(selectLocation), 'pathname', '');\n\n const onChangeHandler = (text) => {\n if (text === '') clearFilter();\n else setFilterText(text);\n };\n\n const getPlaceholder = () => {\n if (pathname.includes('/workspaces')) return 'Search Workspaces';\n if (pathname.includes('/knowledge_base')) return 'Search Templates';\n return 'Search';\n };\n\n const clearFilter = useCallback(() => {\n setFilterText('');\n if (pathname.includes('/workspaces')) dispatch(setWorkspaceFilter(''));\n if (pathname.includes('/knowledge_base')) dispatch(setFilterTemplates(''));\n }, [dispatch, pathname]);\n\n const searchFunction = () => {\n const trimmedValue = filterText.trim();\n if (pathname.includes('/workspaces')) dispatch(setWorkspaceFilter(trimmedValue));\n if (pathname.includes('/knowledge_base')) dispatch(setFilterTemplates(trimmedValue));\n };\n\n const onEnterSearch = (e) => e.key === 'Enter' && searchFunction();\n\n return (\n <Wrapper>\n <SearchInput>\n <Input placeholder={ getPlaceholder() } value={ filterText } onChange={ (e) => onChangeHandler(e.target.value) } onKeyDown={ onEnterSearch } />\n </SearchInput>\n <ClearIcon onClick={ clearFilter } />\n <SearchButton onClick={ searchFunction } label={ <SearchIcon /> } />\n </Wrapper>\n );\n};\n\nexport default BasicSearcher;\n","import React from 'react';\nimport SearchBar from 'Common/Components/SearchBar/index';\nimport 'Common/styles/commonStyles.scss';\nimport { useSelector } from 'react-redux';\nimport { selectTotalVulns } from 'store/Workspace/selectors';\nimport { selectPathname } from 'store/Router/selectors';\nimport BasicSearcher from './BasicSearcher';\n\nconst Searcher = () => {\n const pathname = useSelector(selectPathname);\n const totalVulns = useSelector(selectTotalVulns);\n\n const canShowNewSearcher = (pathname.includes('/manage') && totalVulns > 0) || (pathname.includes('/host')) || (pathname.includes('/knowledge_base'));\n const canShowOldSearcher = pathname.includes('/workspaces');\n\n if (canShowNewSearcher) return <SearchBar />;\n if (canShowOldSearcher) return <BasicSearcher />;\n\n return null;\n};\n\nexport default Searcher;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n width: ${(props) => (props.width ? `${props.width}` : '400px')};\n margin-bottom: 20px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const TextArea = styled.textarea` \n border-radius: 3px;\n box-shadow: 0 1px 0 0 #afafaf;\n padding: 14px;\n background-color: ${colors.iceBlue};\n font-size: 14.5px;\n font-weight: 300;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: normal;\n color: #1c2243;\n width: ${(props) => (props.width ? `${props.width}` : '392px')};\n height: ${(props) => (props.height ? `${props.height}` : '137px')};\n background-color: ${(props) => (props.value ? 'white' : colors.iceBlue)};\n border: 1px solid transparent;\n\n &::placeholder {\n color: #afb1bc;\n font-size: 13.5px;\n font-weight: 300;\n }\n\n &:hover{\n border-style: solid;\n border-color: #afb1bc;\n border-width: 1px 1px 0px 1px;\n }\n\n &:focus{\n background-color: white;\n\n &::placeholder {\n color: transparent;\n }\n }\n`;\nTextArea.displayName = 'TextArea';\n","/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport { Wrapper, TextArea } from './styled';\n\nclass CustomTextArea extends React.Component {\n constructor (props) {\n super(props);\n this.onChangeHandler = this.onChangeHandler.bind(this);\n this.onBlurHandler = this.onBlurHandler.bind(this);\n\n this.state = {\n value: ''\n };\n }\n\n componentDidMount () {\n if (this.props.defaultValue !== null) {\n this.setState({ value: this.props.defaultValue });\n }\n }\n\n componentDidUpdate (prevProps) {\n const deflt = this.props.defaultValue ? this.props.defaultValue : '';\n const prevDeflt = prevProps.defaultValue ? prevProps.defaultValue : '';\n if (prevDeflt !== deflt) {\n this.setState({ value: deflt });\n }\n }\n\n onChangeHandler (v) {\n this.setState({ value: v });\n if (!this.props.hardUpdate) {\n this.props.updateValue(v);\n }\n }\n\n onBlurHandler (v) {\n if (this.props.hardUpdate) {\n this.props.updateValue(v);\n }\n }\n\n render () {\n const {\n title,\n width,\n height,\n placeholder,\n id\n } = this.props;\n\n const { value } = this.state;\n\n return (\n <Wrapper width={ width } className={ title.toLowerCase().replace(' ', '-') }>\n <div className=\"input-list-title\">{title}</div>\n <TextArea id={ id } value={ value } width={ width } height={ height } placeholder={ placeholder } onChange={ (e) => this.onChangeHandler(e.target.value) } onBlur={ (e) => this.onBlurHandler(e.target.value) } />\n </Wrapper>\n );\n }\n}\n\nCustomTextArea.propTypes = {\n title: PropTypes.string,\n placeholder: PropTypes.string,\n width: PropTypes.string,\n height: PropTypes.string,\n updateValue: PropTypes.func.isRequired,\n hardUpdate: PropTypes.bool,\n defaultValue: PropTypes.string,\n id: PropTypes.string\n};\n\nCustomTextArea.defaultProps = {\n title: '',\n width: '392px',\n height: '137px',\n placeholder: 'Write Here',\n hardUpdate: false,\n defaultValue: '',\n id: ''\n};\n\nconst mapDispatchToProps = () => ({\n\n});\n\nconst mapStateToProps = () => ({\n\n});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(CustomTextArea));\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const CalendarWrapper = styled.div`\n position: fixed;\n background-color: white;\n box-shadow: 2px 2px 30px 0 #d5dee6;\n height: 300px;\n z-index: 1;\n \n .DateRangePicker__CalendarSelection {\n background-color: ${colors.softBlue};\n border: 1px solid ${colors.softBlue};\n }\n\n .DateRangePicker__CalendarHighlight {\n background-color: ${colors.softBlue};\n border: ${colors.softBlue};\n color: white;\n }\n\n .DateRangePicker__Date--is-selected{\n .DateRangePicker__DateLabel {\n color: white !important;\n }\n }\n\n .DateRangePicker__Date--is-highlighted{\n .DateRangePicker__DateLabel {\n color: black;\n }\n\n .DateRangePicker__CalendarHighlight--single {\n background-color: transparent;\n }\n }\n\n .DateRangePicker__PaginationArrow--next{\n &:hover {\n background-color: transparent;\n color: black;\n }\n }\n\n .DateRangePicker__PaginationArrow--previous{\n &:hover {\n background-color: transparent;\n color: black;\n }\n }\n\n .DateRangePicker__Month{\n width: ${(props) => props.width}px;\n }\n\n .DateRangePicker__Date--is-selected {\n background-color: ${colors.softBlue};\n }\n\n .DateRangePicker__PaginationArrow{\n height: 25px;\n }\n\n .DateRangePicker__WeekdayHeading {\n font-size: 11px;\n }\n\n .DateRangePicker__MonthHeaderLabel{\n font-size: 12px;\n }\n\n .DateRangePicker__DateLabel{\n font-size: 11px;\n }\n`;\nCalendarWrapper.displayName = 'CalendarWrapper';\n\nexport const StringFieldContainer = styled.div`\n\n input {\n background-color: ${colors.iceBlue} !important;\n }\n\n input::placeholder {\n color: ${({ highlight }) => (highlight ? 'black' : '')};\n font-weight: 300;\n font-size: 14.5px;\n }\n\n input:-ms-input-placeholder {\n color: ${({ highlight }) => (highlight ? 'black' : '')};\n }\n\n input::-ms-input-placeholder {\n color: ${({ highlight }) => (highlight ? 'black' : '')};\n }\n\n input:focus::placeholder { \n background-color: ${colors.iceBlue} !important;\n color: ${({ highlight }) => (highlight ? 'black' : '#afb1bc')} !important;\n }\n`;\nStringFieldContainer.displayName = 'StringFieldContainer';\n\nexport const Wrapper = styled.div`\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const CloseButton = styled.button`\n position: absolute;\n width: 50px;\n height: 25px;\n bottom: 8px;\n right: 19px;\n border: 0;\n background-color: ${colors.softBlue};\n color: white;\n font-size: 12px;\n border-radius: 2px;\n`;\nCloseButton.displayName = 'CloseButton';\n\nexport const CleanButton = styled.button`\n position: absolute;\n width: 50px;\n height: 25px;\n bottom: 8px;\n left: 19px;\n color: white;\n font-size: 12px;\n border: solid 1px ${colors.dark6};\n color: ${colors.dark2};\n background-color: white;\n border-radius: 2px;\n`;\nCleanButton.displayName = 'CleanButton';\n","/* eslint-disable no-nested-ternary */\n/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\nimport DateRangePicker from 'react-daterange-picker';\nimport 'react-daterange-picker/dist/css/react-calendar.css';\nimport originalMoment from 'moment';\nimport { extendMoment } from 'moment-range';\nimport StringField from 'Common/Components/StringField';\nimport {\n CalendarWrapper, StringFieldContainer, Wrapper, CleanButton, CloseButton\n} from './styled';\n\nconst moment = extendMoment(originalMoment);\n\nclass DateRangePicket extends React.Component {\n constructor (props, context) {\n super(props, context);\n\n this.state = {\n isOpen: false,\n value: null\n };\n\n this.wrapperRef = React.createRef();\n this.handleClickOutside = this.handleClickOutside.bind(this);\n this.onToggle = this.onToggle.bind(this);\n this.onSelect = this.onSelect.bind(this);\n }\n\n componentDidMount () {\n document.addEventListener('mousedown', this.handleClickOutside);\n }\n\n componentWillUnmount () {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n onSelect (value) {\n this.setState({ value });\n // if (value.end) this.onToggle();\n }\n\n onToggle () {\n const { isOpen, value } = this.state;\n\n if (isOpen && value) this.props.onClose(value.start, value.end);\n\n this.setState({ isOpen: !isOpen });\n }\n\n handleClickOutside (event) {\n if (this.wrapperRef && !this.wrapperRef.current.contains(event.target)) {\n if (this.state.isOpen) this.onToggle();\n }\n }\n\n render () {\n const today = moment();\n const {\n width, height, locale, start, end, id\n } = this.props;\n\n const value = this.state.value\n // eslint-disable-next-line no-negated-condition\n ? (this.state.value.start.format('YYYY/MM/DD') !== this.state.value.end.format('YYYY/MM/DD') ? `${this.state.value.start.format('YYYY/MM/DD')} - ${this.state.value.end.format('YYYY/MM/DD')}` : `${this.state.value.start.format('YYYY/MM/DD')}`)\n : (start && end ? `${moment(start).format('YYYY/MM/DD')} - ${moment(end).format('YYYY/MM/DD')}` : (start ? `${moment(start).format('YYYY/MM/DD')}` : (end ? `${moment(end).format('YYYY/MM/DD')}` : `${today.clone().format('YYYY/MM/DD')}`)));\n\n return (\n <Wrapper ref={ this.wrapperRef }>\n <StringFieldContainer onClick={ this.onToggle } highlight={ (this.state.value && this.state.value.length > 0) || (start && end) }>\n <StringField width={ width } height={ height } placeholder={ value } onChange={ () => {} } readOnly id={ id } />\n </StringFieldContainer>\n {this.state.isOpen && (\n <CalendarWrapper width={ 170 }>\n <DateRangePicker\n value={ this.state.value ? this.state.value : (start && end ? moment.range(moment(start).clone(), moment(end).clone()) : moment.range(today.clone(), today.clone())) }\n onSelect={ this.onSelect }\n singleDateRange\n locale={ locale }\n helpMessage=\"\"\n />\n <CleanButton onClick={ () => { this.setState({ value: null }); this.props.cleanDates(); } }>Clean</CleanButton>\n <CloseButton onClick={ this.onToggle }>Save</CloseButton>\n </CalendarWrapper>\n )}\n </Wrapper>\n );\n }\n}\n\nexport default DateRangePicket;\n","import styled from 'styled-components';\n\nconst Background = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n z-index: 99999;\n width: 100%;\n height: 100%;\n display:flex;\n align-items: center;\n justify-content: center;\n background-color: rgba(0,0,0,0.5);\n`;\n\nexport default Background;\n","import React from 'react';\nimport Background from './styled';\n\nconst ModalWrapper = ({ children, className }) => (\n <Background className={ className }>\n {children}\n </Background>\n);\n\nexport default ModalWrapper;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { slideIn } from 'Styles/effects';\nimport StandardTextField from 'Common/Components/StandardTextField';\n\nexport const Modal = styled.div`\n border-radius: 8px 8px 2px 2px;\n box-shadow: 0 2px 50px 0 rgba(0, 0, 0, 0.24);\n border: solid 1px #d6d6d6;\n background-color: #ffffff;\n border-top: 10px solid #419bf9;\n padding: 40px 23px 40px 30px;\n text-align: left;\n width: 540px;\n margin-right: 5px;\n ${slideIn}\n\n .modal-dialog {\n margin: 0;\n }\n\n .modal-content {\n padding: 34px 30px;\n height: 348px;\n }\n`;\nModal.displayName = 'Modal';\n\nexport const Title = styled.div`\n font-size: 21.5px;\n font-weight: 600;\n display: inline-block;\n max-width: 250px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n`;\nTitle.displayName = 'Title';\n\nconst Button = styled.button`\n width: 89px;\n height: 34px;\n border-radius: 2px;\n float: right;\n font-size: 14px;\n font-weight: 500;\n`;\n\nexport const CancelButton = styled(Button)`\n margin-left: auto;\n border: solid 1px ${colors.dark6};\n color: ${colors.dark2};\n background-color: white;\n margin-right: 8px;\n float: none;\n`;\nCancelButton.displayName = 'CancelButton';\n\nexport const CreateButton = styled(Button)`\n background-color: ${(props) => (props.disabled ? colors.grey20 : colors.softBlue)};\n color: white;\n border: 0;\n`;\nCreateButton.displayName = 'CreateButton';\n\nexport const Header = styled.div`\n display: flex;\n margin-right: 8px;\n align-items: center;\n & > *:first-child {\n margin-right: 18px;\n }\n`;\nHeader.displayName = 'Header';\n\nexport const Body = styled.div`\n margin-top: 34px;\n padding-right: 3px;\n`;\nBody.displayName = 'Body';\n\nexport const TopRow = styled.div`\n display: flex;\n width: 100%;\n`;\nTopRow.displayName = 'TopRow';\n\nexport const FieldTitle = styled.div`\n font-size: 12.5px;\n font-weight: 300;\n color: ${colors.grey17};\n`;\nFieldTitle.displayName = 'FieldTitle';\n\nexport const FieldTitleDescription = styled(FieldTitle)`\n margin-bottom: 8px;\n`;\nFieldTitleDescription.displayName = 'FieldTitleDescription';\n\nexport const Field = styled.div`\n display: inline-block;\n width: 50%;\n margin-left: ${(props) => (props.index > 0 ? '21px' : '0')};\n`;\nField.displayName = 'Field';\n\nexport const FieldDescription = styled(Field)`\n width: fit-content;\n margin-top: 21px;\n\n textarea {\n overflow: hidden;\n resize: none;\n }\n`;\nFieldDescription.displayName = 'FieldDescription';\n\nexport const FieldScope = styled(Field)`\n width: 100%;\n margin-top: 21px;\n`;\nFieldScope.displayName = 'FieldScope';\n\nexport const CheckboxContainer = styled.div`\n`;\nCheckboxContainer.displayName = 'CheckboxContainer';\n\nexport const Checkbox = styled.input`\n display: inline-block;\n background-color: ${colors.grey18};\n`;\nCheckbox.displayName = 'Checkbox';\n\nexport const CheckboxText = styled.div`\n display: inline-block;\n font-size: 13.5px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n margin-left: 8px;\n`;\nCheckboxText.displayName = 'CheckboxText';\n\nexport const SecondTitle = styled.div`\n font-size: 14.5px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n margin-top: 34px;\n`;\nCheckboxText.displayName = 'CheckboxText';\n\nexport const SubTitle = styled.div`\n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n margin-top: 13px;\n margin-bottom: 21px;\n color: ${colors.grey19};\n`;\nSubTitle.displayName = 'SubTitle';\n\nexport const UserSelectorWraper = styled.div`\n input {\n width: 439px;\n }\n\n svg { \n position: absolute;\n right: 52px;\n top: 405px;\n }\n`;\nUserSelectorWraper.displayName = 'UserSelectorWraper';\n\nexport const UserSelect = styled.div`\n height: 102px;\n border-radius: 3px;\n border: solid 1px #dddddd;\n background-color: #ffffff;\n margin-top: 21px;\n`;\nUserSelect.displayName = 'UserSelect';\n\nexport const TextAreaContainer = styled.div`\n div {\n margin-bottom: 0px;\n }\n`;\nTextAreaContainer.displayName = 'TextAreaContainer';\n\nexport const ErrorMessage = styled.div`\n height: 12px;\n margin-top: 15px;\n color: ${colors.redPink};\n font-size: 10.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: 0.08px;\n`;\nErrorMessage.displayName = 'ErrorMessage';\n\nexport const TextField = styled(StandardTextField)`\n width: 50%;\n \n &:first-child {\n line-height: 1.5;\n }\n\n span {\n font-weight: 400;\n }\n\n input {\n border-bottom: 1px solid transparent;\n box-shadow: ${(props) => (props.error ? '0 1px 0 0 #ea3158' : '0 1px 0 0 #afafaf')};\n margin-top: 5px;\n color: ${colors.darkBlueGrey};\n &:focus {\n background-color: ${colors.white};\n }\n }\n\n span:not(:first-child) {\n margin-top: 4px;\n }\n svg {\n top: 39px;\n }\n`;\nTextField.displayName = 'TextField';\n","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgStar = function SvgStar(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 15,\n height: 14,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#90A9C0\",\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"star_body\",\n opacity: 0.142,\n d: \"m10.706 13-.164-.972-.512-2.994 2.242-2.138.728-.694-1.013-.147-3.114-.459L7.46 2.884 7 2l-.46.884-1.413 2.712-3.114.459L1 6.202l.728.694L3.97 9.034l-.512 2.994-.164.972.908-.451L7 11.152l2.798 1.397.908.451z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"star_stroke\",\n d: \"m12.133 14-.205-1.237-.64-3.811 2.801-2.72.911-.884-1.266-.187-3.892-.584-1.767-3.452L7.5 0l-.575 1.125-1.767 3.452-3.892.584L0 5.348l.91.884 2.802 2.72-.64 3.81L2.867 14l1.136-.575L7.5 11.648l3.497 1.777 1.136.575Zm-1.681-2.269-2.657-1.355-.295-.147-.295.147-2.657 1.355.485-2.902.055-.319-.235-.23-2.131-2.063 2.957-.442.33-.05.15-.289L7.5 2.814l1.34 2.622.151.29.33.049 2.957.442-2.131 2.062-.235.231.055.32.485 2.901Z\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgStar, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/star.8eb97b2c.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\nimport { ReactComponent as StarIcon } from 'Images/star.svg';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n cursor: pointer;\n border-radius: 3px;\n border: solid 1px ${colors.grey12};\n background-color: ${colors.iceBlue};\n padding: 4px 5px;\n display: flex;\n justify-content: center;\n align-items: center;\n & > svg:not(:last-child) {\n margin-right: 4.5px;\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Star = styled(StarIcon)`\n & #star_body {\n fill: ${({ active }) => active ? '#e4d55c' : colors.iceBlue};\n opacity: 1;\n }\n & #star_stroke {\n fill: ${({ active }) => active ? '#979797' : '#bec8d2'};\n }\n`;\nStar.displayName = 'Star';\n","import React from 'react';\nimport { Wrapper, Star } from './styled';\n\nconst Importance = ({ importance, callback }) => {\n const handleClick = (e, stars) => {\n callback(importance === stars ? stars - 1 : stars);\n e.stopPropagation();\n };\n\n return (\n <Wrapper>\n <Star onClick={ (e) => handleClick(e, 1) } active={ importance >= 1 } />\n <Star onClick={ (e) => handleClick(e, 2) } active={ importance >= 2 } />\n <Star onClick={ (e) => handleClick(e, 3) } active={ importance === 3 } />\n </Wrapper>\n );\n};\n\nexport default Importance;\n","import React, { useEffect, useState } from 'react';\nimport debounce from 'lodash/debounce';\nimport { PropTypes } from 'prop-types';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport CustomTextArea from 'Common/Components/CustomTextArea';\nimport { createUpdateWorkspace, resetCreationState, setField } from 'Screens/Workspaces/actions/Actions';\nimport DateRangePicker from 'Common/Components/DateRangePicket';\nimport {\n selectWsEditCreateName, selectWsEditCreateDescription,\n selectWsEditCreateStart, selectWsEditCreateEnd, selectWsEditCreateLocale, selectWsEditCreateErrorMessage,\n selectWsEditCreateId,\n selectWorkspaceSaved,\n selectIsFetching,\n selectScope,\n selectWsEditCreateImportance\n} from 'store/WorkspaceEditCreate/selectors';\nimport BlueButton from 'Common/Components/BlueButton';\nimport ModalWrapper from 'Common/Components/ModalWrapper';\nimport CustomList from 'Common/Components/CustomList';\nimport {\n Modal, Title, CancelButton, Header, Body, FieldTitle, Field, FieldDescription, TextAreaContainer, FieldTitleDescription, ErrorMessage,\n TopRow, FieldScope, TextField\n} from './styled';\nimport Importance from 'Common/Components/Importance';\n\nconst ModalCreation = ({ handleClose }) => {\n const intl = useIntl();\n const dispatch = useDispatch();\n\n const name = useSelector(selectWsEditCreateName);\n const description = useSelector(selectWsEditCreateDescription);\n const start = useSelector(selectWsEditCreateStart);\n const end = useSelector(selectWsEditCreateEnd);\n const locale = useSelector(selectWsEditCreateLocale);\n const errorMessage = useSelector(selectWsEditCreateErrorMessage);\n const id = useSelector(selectWsEditCreateId);\n const workspaceSaved = useSelector(selectWorkspaceSaved);\n const isFetching = useSelector(selectIsFetching);\n const scope = useSelector(selectScope);\n const importance = useSelector(selectWsEditCreateImportance);\n const [isValidWsName, setIsValidWsName] = useState(true);\n\n const nameField = intl.formatMessage({ id: 'workspaces.modal.newWorkspace.name' });\n\n useEffect(() => () => dispatch(resetCreationState()), [dispatch]);\n\n useEffect(() => {\n if (workspaceSaved) handleClose();\n }, [handleClose, workspaceSaved]);\n\n const validateWsName = (value) => {\n if (value && (value.match(/[^A-Za-z0-9@._-]/))) setIsValidWsName(false);\n else setIsValidWsName(true);\n };\n\n const handleChange = (field, value) => {\n dispatch(setField(field, value));\n\n if (field === 'name') validateWsName(value);\n };\n\n const onChangeDebounce = debounce(handleChange, 250);\n\n const onCloseCalendar = (startDate, endDate) => {\n dispatch(setField('start', new Date(startDate)));\n dispatch(setField('end', new Date(endDate)));\n };\n\n const cleanDates = () => {\n dispatch(setField('start', ''));\n dispatch(setField('end', ''));\n };\n\n const onAddScope = (value) => dispatch(setField('scope', [...scope, value]));\n\n const onRemoveScope = (indexToRemove) => {\n const newScope = scope.filter((item, index) => index !== indexToRemove);\n dispatch(setField('scope', newScope));\n };\n\n return (\n <ModalWrapper>\n <Modal>\n <Header>\n <Importance importance={ importance } callback={ (value) => handleChange('importance', value) } />\n <Title>{id ? <FormattedMessage id=\"workspaces.modal.edit.title\" /> : <FormattedMessage id=\"workspaces.modal.create.title\" />}\n \n \n \n dispatch(createUpdateWorkspace()) } disabled={ !name || !isValidWsName } isLoading={ isFetching } label={ id ? intl.formatMessage({ id: 'edit' }) : intl.formatMessage({ id: 'create' }) } />\n
\n \n \n handleChange('name', value) } error={ !isValidWsName } errorMessage=\"No spaces and no special chars (except _ and -) are allowed\" />\n \n } />\n \n \n \n\n \n \n onChangeDebounce('description', value) } field=\"\" defaultValue={ description } />\n \n\n \n } />\n \n \n \n \n \n \n );\n};\n\nModalCreation.propTypes = {\n handleClose: PropTypes.func.isRequired\n};\n\nexport default ModalCreation;\n","import { useEffect } from 'react';\n\nfunction useClickOutside (ref, handler) {\n useEffect(\n () => {\n const listener = (event) => {\n if (!ref.current || ref.current.contains(event.target)) {\n return;\n }\n handler(event);\n };\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n },\n [ref, handler]\n );\n}\n\nexport default useClickOutside;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { FaChevronDown as ChevronDown } from 'react-icons/fa';\n\nexport const Wrapper = styled.div`\n height: 34px;\n width: 177px;\n align-self: center;\n margin-right: 30px;\n &:hover{\n background-color: ${colors.grey25};\n border-radius: 5px;\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Toggle = styled.div`\n padding: 0px;\n padding-left: 13px;\n padding-right: 13px;\n height: 34px;\n font-size: 11.5px;\n color: ${colors.dark2};\n width: 177px;\n display:flex;\n align-items: center;\n justify-content: space-evenly;\n cursor: pointer;\n display:flex;\n align-items: center;\n justify-content: space-between;\n border-radius: 2px;\n box-shadow: 0 10px 15px 0 rgba(190, 200, 210, 0.24), inset 0 -1px 30px 0 rgba(99, 117, 141, 0.14);\n border: solid 3px rgba(190, 200, 210, 0.4);\n background-color: #edf2f7;\n &:after {\n content: none;\n }\n`;\nToggle.displayName = 'Toggle';\n\nexport const Menu = styled.div`\n background:#fff;\n width: 339px !important;\n height: fit-content;\n padding-left: 8px;\n padding-right: 7px;\n padding-top: 23px;\n padding-bottom: 23px;\n position: absolute;\n z-index: 99;\n border-radius: 2px;\n box-shadow: 2px 2px 30px 0 rgba(0, 0, 0, 0.14);\n border: solid 1px #cdd5dd;\n\n a {\n text-decoration: none;\n }\n`;\nMenu.displayName = 'Menu';\n\nexport const Item = styled.div`\n cursor: pointer;\n padding-left: 13px;\n padding-right: 13px;\n height: 43px;\n border-bottom: ${(props) => (props.lastelement ? 'none' : `solid 1px ${colors.grey21}`)};\n display: flex;\n align-items: center;\n\n &:hover {\n background-color: ${colors.iceBlue} !important;\n }\n\n &:active {\n color: ${colors.dark2};\n }\n`;\nItem.displayName = 'Item';\n\nexport const NoItems = styled.div`\n padding-left: 13px;\n padding-right: 13px;\n height: 43px;\n display: flex;\n align-items: center;\n font-size: 13.5px;\n font-weight: 300;\n font-stretch: normal;\n max-width: 235px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\nNoItems.displayName = 'NoItems';\n\nexport const WorkspaceSelectedName = styled.div`\n color: ${colors.dark2};\n max-width: 130px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\nWorkspaceSelectedName.displayName = 'Item';\n\nexport const ArrowDown = styled(ChevronDown)`\n width: 10px;\n color: ${colors.grey5};\n margin-top: 4px;\n`;\nChevronDown.displayName = 'ChevronDown';\n\nexport const WorkspaceOptionName = styled.span`\n font-size: 13.5px;\n font-weight: 400;\n font-stretch: normal;\n color: ${colors.datk2};\n max-width: 235px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\nWorkspaceOptionName.displayName = 'WorkspaceOptionName';\n\nexport const ActionsContainer = styled.div`\n margin-top: 21px;\n padding-left: 13px;\n padding-right: 13px;\n`;\nActionsContainer.displayName = 'ActionsContainer';\n\nexport const ViewAll = styled.span`\n font-size: 12.5px;\n font-weight: 300;\n font-stretch: normal;\n color: ${colors.blueCerulean};\n float: left;\n cursor: pointer;\n`;\nViewAll.displayName = 'ViewAll';\n\nexport const CreateNew = styled.span`\n font-size: 12.5px;\n font-weight: 300;\n font-stretch: normal;\n color: ${colors.blueCerulean};\n float: right;\n cursor: pointer;\n`;\nCreateNew.displayName = 'CreateNew';\n\nexport const WorkspaceVulns = styled.span`\n color: ${colors.blueGrey};\n font-size: 12.5px;\n font-weight: 300;\n font-stretch: normal;\n padding-top: 1px;\n position: absolute;\n right: 20px;\n`;\nWorkspaceVulns.displayName = 'WorkspaceVulns';\n","import React, { useState, useRef } from 'react';\nimport { useDispatch, useSelector, connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport { showModalImportDashboard } from 'Screens/Dashboard/actions/Actions';\nimport { FormattedMessage } from 'react-intl';\nimport ModalCreation from 'Screens/Workspaces/components/ModalCreation';\nimport { PropTypes } from 'prop-types';\nimport { saveWorkspaceHistory } from 'Screens/Faraday/actions/Actions';\nimport selectModal from 'store/modals/selectors';\nimport { closeModal, openModal } from 'store/modals/actions';\nimport { selectCurrentWorkspace, selectIsAdmin } from 'store/Faraday/selectors';\nimport useClickOutside from 'Hooks/useClickOutside';\nimport replace from 'lodash/replace';\nimport get from 'lodash/get';\nimport { MODAL_WORKSPACE_CREATE_EDIT } from 'store/modals/modals';\nimport { redirect } from 'store/Router/actions';\nimport { selectLocation } from 'store/Router/selectors';\nimport { getWorkspaces } from 'Screens/Workspaces/actions/Actions';\nimport { clearFilters, setPageNumber } from 'store/Filters/actions';\nimport { newGetVulns } from 'store/Manage/filterActions';\nimport {\n Wrapper, Toggle, Menu, Item, WorkspaceSelectedName,\n ArrowDown, WorkspaceOptionName, ActionsContainer,\n ViewAll, CreateNew, WorkspaceVulns, NoItems\n} from './styled';\n\nconst WorkspaceSelector = ({\n saveWorkspaceHistoryProp, workspaces, workspaceSelected\n}) => {\n const [showDropdown, setShowDropdown] = useState(false);\n const dispatch = useDispatch();\n const activeWorkspaces = workspaces.filter((workspace) => workspace.active).sort((a, b) => new Date(b.update_date) - new Date(a.update_date)).slice(0, 11);\n const noWorkspaces = activeWorkspaces.length === 0;\n const showNoItem = noWorkspaces || (activeWorkspaces.length === 1 && activeWorkspaces[0].name === workspaceSelected);\n const dropdownRef = useRef();\n useClickOutside(dropdownRef, () => setShowDropdown(false));\n const location = useSelector(selectLocation);\n const isAdmin = useSelector(selectIsAdmin);\n const isManage = get(location, 'pathname', '').includes('/manage');\n const isAssets = get(location, 'pathname', '').includes('/host');\n\n const redirectTo = (ws) => {\n let url = '';\n if (location.pathname === '/404') {\n url = `/feed/${ws.name}`;\n } else {\n url = replace(location.pathname, workspaceSelected, ws.name);\n }\n dispatch(redirect(`${url}`));\n };\n\n const selectWorkspace = (ws) => {\n saveWorkspaceHistoryProp(ws.name);\n if (ws.stats.total_vulns === 0) dispatch(showModalImportDashboard(true));\n redirectTo(ws);\n if (isManage) {\n dispatch(setPageNumber('vulns', 1));\n dispatch(newGetVulns());\n }\n if (isAssets) dispatch(setPageNumber('assets', 1));\n };\n\n const getItems = () => {\n if (showNoItem) {\n return (\n \n );\n }\n\n return activeWorkspaces.map((ws, index) => {\n if (ws.name !== workspaceSelected) {\n return (\n { selectWorkspace(ws); setShowDropdown(false); dispatch(clearFilters('vulns')); return false; } } key={ ws.name } lastelement={ index + 1 === activeWorkspaces.length }>\n {ws.name}\n {ws.stats.total_vulns}\n \n );\n } return null;\n });\n };\n\n const show = useSelector((state) => selectModal(state, MODAL_WORKSPACE_CREATE_EDIT));\n const handleClose = () => dispatch(closeModal(MODAL_WORKSPACE_CREATE_EDIT));\n const handleOpen = () => dispatch(openModal(MODAL_WORKSPACE_CREATE_EDIT));\n const handleToggle = () => {\n setShowDropdown(!showDropdown);\n if (!showDropdown) {\n dispatch(getWorkspaces());\n }\n };\n return (\n \n \n \n {workspaceSelected || 'No Workspace Selected'}\n \n \n \n { workspaces.length >= 0 && showDropdown && (\n \n {getItems()}\n \n {!noWorkspaces && { setShowDropdown(false); dispatch(redirect('/workspaces')); } }>}\n { isAdmin && { setShowDropdown(false); handleOpen(); } }> }\n \n \n ) }\n {show && }\n \n );\n};\n\nconst mapStateToProps = (state) => ({\n workspaces: state.workspace.workspaces,\n workspaceSelected: selectCurrentWorkspace(state)\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n saveWorkspaceHistoryProp: (ws) => {\n dispatch(saveWorkspaceHistory(ws));\n }\n});\n\nWorkspaceSelector.propTypes = {\n workspaces: PropTypes.instanceOf(Object).isRequired,\n workspaceSelected: PropTypes.string.isRequired,\n saveWorkspaceHistoryProp: PropTypes.func.isRequired\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(WorkspaceSelector));\n","import get from 'lodash/get';\n\nexport const selectLogMeLastWorkspaceUsed = (state) => get(state, 'settings.loginSettings.logMeLastWorkspaceUsed', false);\n\nexport default selectLogMeLastWorkspaceUsed;\n","import { toggleAutoSelectWs } from 'Screens/Wizard/actions/Actions';\nimport api from 'services/api';\nimport { selectLogMeLastWorkspaceUsed } from 'store/Settings/loginSettingsSelectors';\n\n// **\n// login section\n// **\nexport const SET_SETTINGS_CHANGE_LOGIN_SETTINGS_FIELD = 'SET_SETTINGS_CHANGE_LOGIN_SETTINGS_FIELD';\nexport const SAVE_SETTINGS_LOGIN_SETTINGS_START = 'SAVE_SETTINGS_LOGIN_SETTINGS_START';\nexport const SAVE_SETTINGS_LOGIN_SETTINGS_CLEAR = 'SAVE_SETTINGS_LOGIN_SETTINGS_CLEAR';\nexport const SAVE_SETTINGS_LOGIN_SETTINGS_SUCCESS = 'SAVE_SETTINGS_LOGIN_SETTINGS_SUCCESS';\nexport const SAVE_SETTINGS_LOGIN_SETTINGS_FAIL = 'SAVE_SETTINGS_LOGIN_SETTINGS_FAIL';\nexport const LOAD_SETTINGS_LOGIN_SETTINGS_SUCCESS = 'LOAD_SETTINGS_LOGIN_SETTINGS_SUCCESS';\n\n//\n// login section\n//\nexport function setLoginSettingsField (field, value) {\n return async (dispatch) => {\n dispatch({ type: SET_SETTINGS_CHANGE_LOGIN_SETTINGS_FIELD, field, value });\n };\n}\n\nexport function saveLoginSettings () {\n return async (dispatch, getState) => {\n dispatch({ type: SAVE_SETTINGS_LOGIN_SETTINGS_START });\n\n const logMeLastWorkspaceUsed = selectLogMeLastWorkspaceUsed(getState());\n try {\n dispatch(toggleAutoSelectWs(logMeLastWorkspaceUsed));\n dispatch({ type: SAVE_SETTINGS_LOGIN_SETTINGS_SUCCESS, error: false, message: 'Report was saved successfully.' });\n } catch (e) {\n dispatch({ type: SAVE_SETTINGS_LOGIN_SETTINGS_FAIL, data: 'There was an error, please try again.' });\n }\n };\n}\n\nexport function clearLoginSettings () {\n return (dispatch) => {\n dispatch({ type: SAVE_SETTINGS_LOGIN_SETTINGS_CLEAR });\n };\n}\n\nexport function loadLoginSettings () {\n return async (dispatch) => {\n const response = await api.preferences.fetch();\n const autoSelectWs = response.preferences.autoSelectWs;\n dispatch({ type: LOAD_SETTINGS_LOGIN_SETTINGS_SUCCESS, autoSelectWs });\n };\n}\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n font-size: 21.5px;\n font-weight: 600;\n line-height: 0.84;\n color: ${colors.dark2};\n text-align: initial;\n`;\nTitle.displayName = 'Title';\n\nexport const Username = styled.span`\n margin-left: 7px;\n`;\nUsername.displayName = 'Username';\n","const validate = (password) => {\n const re = new RegExp('^.*(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[\\\\d\\\\w]).*$'); // eslint-disable-line\n return re.test(password);\n};\n\nexport default validate;\n","import get from 'lodash/get';\n\nexport const selectError = (state) => get(state, 'settings.changePassword.error', false);\n\nexport const selectMessage = (state) => get(state, 'settings.changePassword.message', '');\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n padding: 11px 21.6px 11px 21px;\n background: rgb(39, 39, 39, 0.2);\n margin: 10px 0;\n`;\n\nWrapper.displayName = 'Wrapper';\n\nexport const Message = styled.div`\n font-size: 12.5px;\n font-weight: normal;\n color: ${colors.redPink};\n`;\nMessage.displayName = 'Message';\n","import React from 'react';\nimport {\n Wrapper,\n Message\n} from './styled';\n\nconst Error = ({ children }) => (\n \n {children}\n \n);\n\nexport default Error;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n padding: 11px 21.6px 11px 21px;\n background: rgb(39, 39, 39, 0.2);\n margin: 10px 0;\n`;\n\nWrapper.displayName = 'Wrapper';\n\nexport const Message = styled.div`\n font-size: 12.5px;\n font-weight: normal;\n color: ${colors.green1};\n`;\nMessage.displayName = 'Message';\n","import React from 'react';\nimport {\n Wrapper,\n Message\n} from './styled';\n\nconst Success = ({ children }) => (\n \n {children}\n \n);\n\nexport default Success;\n","import styled from 'styled-components';\nimport StringField from 'Common/Components/StringField';\nimport { Title } from 'Common/Components/StringField/styled';\n\nconst Password = styled(StringField).attrs(({\n width: '100%',\n type: 'password'\n}))`\n margin-bottom: 16px;\n max-width: 48%;\n width: 100%;\n ${Title} {\n font-weight: 400;\n color: #afb1bc;\n margin-bottom: 0px;\n margin-left: 0px;\n padding-right: 0px;\n }\n`;\nPassword.displayName = 'Password';\n\nexport default Password;\n","import { Accept } from 'Common/Components/Button/styled';\nimport Password from 'Common/Components/Password/styled';\nimport styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n border-bottom: 1px;\n border-bottom-style: solid;\n border-bottom-color: #e9e9e9;\n padding-bottom: 34px;\n flex: 1 1 0;\n text-align: initial;\n ${Accept} {\n margin: 10px 0;\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n margin: 27px 0 19px 0;\n font-size: 14.5px;\n font-weight: 500;\n line-height: 0.97;\n text-align: left;\n color: ${colors.dark2};\n`;\nTitle.displayName = 'Title';\n\nexport const Label = styled.div`\n font-size: 12.5px;\n line-height: 1.12;\n text-align: left;\n color: ${colors.grey17};\n`;\nLabel.displayName = 'Label';\n\nexport const PasswordSection = styled.div`\n display: flex;\n flex-wrap: wrap;\n`;\nPasswordSection.displayName = 'PasswordSection';\n\nexport const CustomPassword = styled(Password)`\n max-width: 264px;\n width:100%;\n margin-right: 21px;\n`;\nCustomPassword.displayName = 'CustomPassword';\n\nexport const Rule = styled.div`\n font-size: 10.5px;\n color: ${colors.red1};\n margin-top: 12px;\n text-align: justify;\n`;\nRule.displayName = 'Rule';\n","import React, { useState, useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useIntl, FormattedMessage } from 'react-intl';\nimport isValidPassword from 'Common/Components/Password/functions';\nimport { Accept } from 'Common/Components/Button/styled';\nimport { changePassword } from 'store/Settings/changePasswordActions';\nimport { clearLoginSettings } from 'store/Settings/loginSettingsActions';\nimport { selectError, selectMessage } from 'store/Settings/changePasswordSelectors';\nimport Error from 'Common/Components/Error';\nimport Success from 'Common/Components/Success';\nimport {\n Wrapper, Title, Rule, CustomPassword, PasswordSection\n} from './styled';\n\nconst ChangePassword = () => {\n const intl = useIntl();\n const dispatch = useDispatch();\n const [currentPassword, setCurrentPassword] = useState('');\n const [newPassword, setNewPassword] = useState('');\n const [repeatNewPassword, setRepeatNewPassword] = useState('');\n\n useEffect(() => dispatch(clearLoginSettings()), [dispatch]);\n\n const props = useSelector((state) => ({\n error: selectError(state),\n message: selectMessage(state)\n }));\n\n const accept = () => {\n if (isValidPassword(newPassword) && isValidPassword(repeatNewPassword)) {\n dispatch(changePassword(currentPassword, newPassword, repeatNewPassword));\n }\n };\n\n const isPasswordMatch = () => newPassword === repeatNewPassword;\n\n return (\n \n {intl.formatMessage({ id: 'preferences.account.changePassword.title' }) }\n { setCurrentPassword(v); } }\n defaultValue={ currentPassword }\n />\n \n { setNewPassword(v); } } valid={ isValidPassword(newPassword) } defaultValue={ newPassword } />\n { setRepeatNewPassword(v); } } valid={ isValidPassword(repeatNewPassword) } defaultValue={ repeatNewPassword } />\n \n\n { (newPassword && !isValidPassword(newPassword)) &&\n (\n \n \n \n )}\n { props && !isPasswordMatch() && repeatNewPassword &&\n (\n \n \n \n )}\n\n { props.error && props.message ? {props.message} : null}\n { !props.error && props.message ? {props.message} : null}\n\n {intl.formatMessage({ id: 'preferences.account.changePassword.confirm' }) }\n \n );\n};\nexport default ChangePassword;\n","import api from 'services/api';\n\n// **\n// change password section\n// **\nexport const SAVE_SETTINGS_CHANGE_PASSWORD_START = 'SAVE_SETTINGS_CHANGE_PASSWORD_START';\nexport const SAVE_SETTINGS_CHANGE_PASSWORD_SUCCESS = 'SAVE_SETTINGS_CHANGE_PASSWORD_SUCCESS';\nexport const SAVE_SETTINGS_CHANGE_PASSWORD_FAIL = 'SAVE_SETTINGS_CHANGE_PASSWORD_FAIL';\n\n// **\n// change password section\n// **\n\nexport function changePassword (currentPassword, newPassword, repeatNewPassword) {\n return async (dispatch) => {\n dispatch({ type: SAVE_SETTINGS_CHANGE_PASSWORD_START });\n try {\n const response = await api.settings.changePassword(currentPassword, newPassword, repeatNewPassword);\n return dispatch({ type: SAVE_SETTINGS_CHANGE_PASSWORD_SUCCESS, response });\n } catch (e) {\n return dispatch({ type: SAVE_SETTINGS_CHANGE_PASSWORD_FAIL, error: true, message: 'There was an error, please try again.' });\n }\n };\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport './styles.scss';\n\nclass CustomCheckbox extends Component {\n constructor (props) {\n super(props);\n this.state = {\n isChecked: false\n };\n\n this.toggleCheckboxChange = this.toggleCheckboxChange.bind(this);\n }\n\n toggleCheckboxChange () {\n const { handleCheckboxChange, label } = this.props;\n this.setState(({ isChecked }) => (\n {\n isChecked: !isChecked\n }\n ));\n\n handleCheckboxChange(label);\n }\n\n render () {\n const { label, isChecked, id } = this.props;\n\n return (\n \n );\n }\n}\n\nCustomCheckbox.propTypes = {\n label: PropTypes.string.isRequired,\n handleCheckboxChange: PropTypes.func.isRequired,\n isChecked: PropTypes.bool.isRequired,\n id: PropTypes.string.isRequired\n};\n\nexport default CustomCheckbox;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Title = styled.div`\n font-size: 21.5px;\n font-weight: 600;\n line-height: 0.84;\n color: ${colors.dark2};\n margin-bottom: 20px;\n`;\nTitle.displayName = 'Title';\n\nexport const Subtitle = styled.div`\n padding: 17px 0 0 0;\n font-size: 12.5px;\n line-height: 1.12;\n text-align: left;\n color: ${colors.dark2};\n`;\nSubtitle.displayName = 'Subtitle';\n\nexport const WrapperCheckbox = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 34px;\n .checkbox-container {\n display: inline;\n margin-bottom: 0px;\n }\n`;\nWrapperCheckbox.displayName = 'WrapperCheckbox';\n\nexport const CheckboxLabel = styled.div`\n font-size: 13.5px;\n line-height: 1.04;\n text-align: left;\n font-weight: 400;\n`;\nCheckboxLabel.displayName = 'CheckboxLabel';\n\nexport const Wrapper = styled.div`\n width: 900px;\n height: 813px;\n background-color: ${colors.white};\n padding: 0 !important;\n`;\nWrapper.displayName = 'Wrapper';\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n border-bottom: 1px;\n border-bottom-style: solid;\n border-bottom-color: #e9e9e9;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n margin: 26px 0;\n font-size: 14.5px;\n font-weight: 500;\n line-height: 0.97;\n text-align: left;\n color: ${colors.dark2};\n display: inline-block;\n`;\nTitle.displayName = 'Title';\n","import React, { useEffect } from 'react';\nimport CustomCheckbox from 'Common/Components/CustomCheckbox';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useIntl } from 'react-intl';\nimport { CheckboxLabel, WrapperCheckbox } from 'Screens/Settings/common-styled';\nimport { selectLogMeLastWorkspaceUsed } from 'store/Settings/loginSettingsSelectors';\nimport { setLoginSettingsField, loadLoginSettings } from 'store/Settings/loginSettingsActions';\nimport { Wrapper, Title } from './styled';\n\nconst LoginSettings = () => {\n const intl = useIntl();\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(loadLoginSettings());\n }, [dispatch]);\n\n const props = useSelector((state) => ({\n logMeLastWorkspaceUsed: selectLogMeLastWorkspaceUsed(state)\n }));\n\n const change = (field, value) => {\n dispatch(setLoginSettingsField(field, value));\n };\n\n return (\n \n {intl.formatMessage({ id: 'preferences.account.loginSettings.title' }) }\n \n change('logMeLastWorkspaceUsed', !props.logMeLastWorkspaceUsed) } isChecked={ props.logMeLastWorkspaceUsed } />\n {intl.formatMessage({ id: 'preferences.account.loginSettings.allwaysLogMe.title' }) }\n \n \n );\n};\nexport default LoginSettings;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: row;\n height: 170px;\n border-radius: 4.1px;\n box-shadow: 3px 3px 7px 0 rgba(97, 97, 97, 0.07);\n border: solid 1.4px #dbdbdb;\n background-color: ${colors.paleGrey};\n margin-top: 15px;\n user-select: none;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const FeatureImage = styled.img`\n flex: 0 0 200px;\n height: auto;\n`;\nFeatureImage.displayName = 'FeatureImage';\n\nexport const TextWrapper = styled.div`\n flex: 0 0 300px;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin: auto;\n`;\nTextWrapper.displayName = 'TextWrapper';\n\nexport const Description = styled.div`\n font-family: 'CentraNo2';\n font-weight: normal;\n font-size: 15px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.44;\n letter-spacing: normal;\n color: ${colors.grey19};\n text-align: center;\n`;\nDescription.displayName = 'Description';\n\nexport const Link = styled(Description)`\n margin-top: 30px;\n cursor: pointer;\n color: #0082ed;\n`;\nLink.displayName = 'Link';\n","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconClose = function SvgIconClose(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 19,\n height: 19,\n viewBox: \"0 0 19 19\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\",\n opacity: 0.387\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 9.5,\n cy: 9.5,\n r: 9.5,\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1C4566\",\n fillRule: \"nonzero\",\n d: \"M10.867 10.002L6.698 14.04c-.288.279-.754.279-1.04 0l-.692-.672c-.288-.279-.288-.73 0-1.006L7.921 9.5 4.966 6.637c-.288-.279-.288-.73 0-1.006l.693-.672c.288-.279.754-.279 1.04 0L10.866 9c.288.272.288.724 0 1.003z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1C4566\",\n fillRule: \"nonzero\",\n d: \"M8.529 10.002l4.169 4.039c.288.279.754.279 1.039 0l.693-.672c.288-.279.288-.73 0-1.006L11.475 9.5l2.955-2.863c.288-.279.288-.73 0-1.006l-.693-.672c-.288-.279-.754-.279-1.04 0L8.53 9c-.289.272-.289.724 0 1.003z\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconClose, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon-close.9a5cad5c.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as CloseIconImage } from 'Images/icon-close.svg';\n\nexport const Wrapper = styled.div`\n user-select: none;\n display: flex;\n flex-direction: row;\n max-width: 600px;\n position: relative;\n`;\n\nWrapper.displayName = 'Wrapper';\n\nexport const Content = styled.div`\n padding: 60px 30px 50px 30px;\n text-align: left;\n`;\n\nContent.displayName = 'Content';\n\nexport const TitleWrapper = styled.div`\n font-family: 'CentraNo2';\n font-weight: normal;\n font-size: 21px;\n letter-spacing: 0.16px;\n color: ${colors.dark2};\n text-align: left;\n`;\n\nTitleWrapper.displayName = 'TitleWrapper';\n\nexport const Description = styled.div`\n text-align: left;\n padding-top: 23px;\n padding-bottom: 23px;\n font-size: 14px;\n font-weight: lighter;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: 0.1px;\n color: ${colors.grey19};\n`;\nDescription.displayName = 'Description';\n\nexport const BoldDescription = styled.div`\n display: inline-block;\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: 0.1px;\n color: ${colors.grey19};\n font-weight: 600;\n`;\nBoldDescription.displayName = 'BoldDescription';\n\nexport const FeatureWrapper = styled.div`\n`;\n\nFeatureWrapper.displayName = 'FeatureWrapper';\n\nexport const FeatureImage = styled.img`\n width: 305px;\n`;\n\nFeatureImage.displayName = 'FeatureImage';\n\nexport const CloseIcon = styled(CloseIconImage)`\n width: 22px;\n height: 20px;\n position: absolute;\n right: 26px;\n top: 26px;\n\n * > path {\n color: ${colors.greyBlue};\n }\n`;\n\nCloseIcon.displayName = 'CloseIcon';\n\nexport const TitleBold = styled(TitleWrapper)`\n display: inline;\n font-weight: 500;\n`;\n\nTitleBold.displayName = 'TitleBold';\n","import React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useDispatch } from 'react-redux';\nimport { closeModal } from 'store/modals/actions';\nimport {\n Wrapper, Content, Description, BoldDescription, FeatureWrapper, FeatureImage, CloseIcon, TitleWrapper, TitleBold\n} from './styled';\nimport BlueButton from '../BlueButton';\n\nexport const URL_PRICING = 'https://faradaysec.com/pricing/';\n\nconst UpgradeLicense = ({ id, image, descriptionIntlId }) => {\n const intl = useIntl();\n const dispatch = useDispatch();\n\n const onClick = () => window.open(URL_PRICING);\n const close = () => dispatch(closeModal(id));\n\n if (!id || !image || !descriptionIntlId) return null;\n return (\n \n \n \n \n \n \n \n } } />\n \n \n ,\n br:
\n } }\n />\n
\n \n
\n
\n );\n};\n\nexport default UpgradeLicense;\n","import React from 'react';\nimport { Wrapper, FeatureImage, TextWrapper, Description, Link } from './styled';\nimport FF2FA from 'Images/ff_2fa.png';\nimport { FormattedMessage } from 'react-intl';\nimport { URL_PRICING } from 'Common/Components/UpgradeLicense/index';\n\nconst TwoFactor = () => {\n return (\n \n \n \n } />\n window.open(URL_PRICING) } children={ } />\n \n \n );\n};\n\nexport default TwoFactor;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n margin-bottom: 13px;\n justify-content: flex-end;\n display: flex;\n padding: 0px;\n & > *:not(:last-child) {\n margin-right: 5px;\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n font-size: 21.5px;\n`;\nTitle.displayName = 'Title';\n","import React from 'react';\nimport {\n Accept,\n Cancel\n} from 'Common/Components/Button/styled';\nimport { Wrapper } from './styled';\n\nconst Header = ({ onClose, onAccept }) => (\n \n Cancel\n Save\n \n);\nexport default Header;\n","var _title, _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgPreferencesIconsAccount = function SvgPreferencesIconsAccount(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"17px\",\n height: \"18px\",\n viewBox: \"0 0 17 18\",\n ref: svgRef\n }, props), title === undefined ? _title || (_title = /*#__PURE__*/React.createElement(\"title\", null, \"preferences_icons_Account\")) : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Page-1\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"preferences_icons_Account\",\n transform: \"translate(0.000000, 0.750000)\",\n fill: \"#63758D\",\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.2,2.1 C6.6,2.1 5.3,3.4 5.3,5 C5.3,6.6 6.6,8 8.2,8 C9.8,8 11.1,6.7 11.1,5.1 C11.1,3.5 9.8,2.1 8.2,2.1 Z M8.2,6.9 C7.2,6.9 6.4,6.1 6.4,5.1 C6.4,4.1 7.2,3.3 8.2,3.3 C9.2,3.3 10,4.1 10,5.1 C10,6.1 9.2,6.9 8.2,6.9 Z\",\n id: \"Shape\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.2,0 C3.7,0 0,3.7 0,8.2 C0,12.7 3.7,16.4 8.2,16.4 C12.7,16.4 16.4,12.7 16.4,8.2 C16.4,3.7 12.7,0 8.2,0 Z M8.2,8.4 L8.2,8.4 C5.6,8.4 3.4,10.3 2.9,12.8 C0.4,10.1 0.5,5.8 3.2,3.2 C4.6,1.8 6.4,1.2 8.2,1.2 C10,1.2 11.8,1.9 13.2,3.3 C14.5,4.6 15.3,6.4 15.2,8.3 C15.2,10 14.6,11.7 13.4,13 C13,10.4 10.8,8.5 8.2,8.4 Z M4,13.4 C4.2,11.1 6.1,9.4 8.4,9.5 C9.5,9.6 10.5,10.1 11.3,10.9 C12,11.7 12.4,12.8 12.3,13.8 C9.8,15.7 6.4,15.7 4,13.8 C4,13.7 4,13.5 4,13.4 Z\",\n id: \"Shape\"\n })))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgPreferencesIconsAccount, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/preferences_icons_Account.e0a4aa09.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useIntl } from 'react-intl';\nimport { saveLoginSettings } from 'store/Settings/loginSettingsActions';\nimport { selectUserName } from 'store/Faraday/selectors';\nimport {\n Wrapper,\n Title,\n Username\n} from './styled';\nimport ChangePassword from './components/ChangePassword';\nimport LoginSettings from './components/LoginSettings';\nimport TwoFactor from './components/TwoFactor';\nimport Header from '../Header';\n\nconst Account = ({ onClose }) => {\n const intl = useIntl();\n const dispatch = useDispatch();\n const userName = useSelector(selectUserName);\n\n const close = () => {\n onClose();\n };\n\n const accept = () => {\n dispatch(saveLoginSettings());\n close();\n };\n\n return (\n \n
\n \n {intl.formatMessage({ id: 'preferences.account.title' }) }\n <Username>{ userName }</Username>\n \n \n \n \n \n );\n};\n\nAccount.propTypes = {\n onClose: PropTypes.func.isRequired\n};\n\nexport default Account;\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgPreferencesIconsAuthentication = function SvgPreferencesIconsAuthentication(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 16,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m7.95 10.866.752.752a.85.85 0 0 0 .633.262h.89v.753a1.021 1.021 0 0 0 1.02 1.02h.753v.889c0 .234.093.459.257.626l.59.59a.834.834 0 0 0 .589.242h2.344a.733.733 0 0 0 .732-.732v-2.345a.832.832 0 0 0-.245-.592l-4.89-4.89a5.59 5.59 0 1 0-3.425 3.425ZM2.88 2.37a4.562 4.562 0 0 1 7.428 5.002.509.509 0 0 0 .11.559l5.06 5.061v1.976h-1.976l-.498-.498v-1.2a.656.656 0 0 0-.655-.656h-1.106V11.51a.655.655 0 0 0-.656-.655h-1.2l-.947-.948a.51.51 0 0 0-.56-.109 4.562 4.562 0 0 1-6.297-3.594 4.56 4.56 0 0 1 1.296-3.831l.002-.004Zm2.017 3.824a1.806 1.806 0 1 0 0-3.613 1.806 1.806 0 0 0 0 3.613Zm0-2.58a.775.775 0 1 1 0 1.553.775.775 0 0 1 0-1.554v.001Z\",\n fill: \"#63758D\",\n fillRule: \"nonzero\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgPreferencesIconsAuthentication, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/preferences_icons_Authentication.1b59fc92.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgCustomAttributes = function SvgCustomAttributes(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 19,\n height: 23,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fillRule: \"nonzero\",\n fill: \"none\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.994 6.333 16 6.34h-.006V19H0V0h10.41l5.584 5.527v.806Zm-1.6.006H9.597V1.583H1.6v15.834h12.796V6.339h-.002ZM3.2 8.71V7.124h5.598v1.583H3.199l.001.003Zm0 3.166v-1.583h9.596v1.583H3.2Zm0 3.167v-1.584h9.596v1.584H3.2ZM11.223 4.75h1.572l-1.572-1.557V4.75Z\",\n fill: \"#90A9C0\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n stroke: \"#90A9C0\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m7.079 18.117-1.077 1.077 1.804 1.804 1.077-1.077c.418.248.867.434 1.341.554V22h2.552v-1.525c.474-.12.923-.306 1.341-.554l1.077 1.077 1.804-1.804-1.077-1.077c.248-.418.434-.868.554-1.342H18v-2.55h-1.525a5.064 5.064 0 0 0-.554-1.342l1.077-1.077-1.804-1.804-1.077 1.077a5.084 5.084 0 0 0-1.341-.554V9h-2.552v1.525c-.474.12-.923.306-1.341.554l-1.077-1.077-1.804 1.804 1.077 1.077a5.076 5.076 0 0 0-.554 1.341H5v2.551h1.525c.12.475.306.924.554 1.342Z\",\n strokeWidth: 0.4,\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m7.079 18.117-1.077 1.077 1.804 1.804 1.077-1.077c.418.248.867.434 1.341.554V22h2.552v-1.525c.474-.12.923-.306 1.341-.554l1.077 1.077 1.804-1.804-1.077-1.077c.248-.418.434-.868.554-1.342H18v-2.55h-1.525a5.064 5.064 0 0 0-.554-1.342l1.077-1.077-1.804-1.804-1.077 1.077a5.084 5.084 0 0 0-1.341-.554V9h-2.552v1.525c-.474.12-.923.306-1.341.554l-1.077-1.077-1.804 1.804 1.077 1.077a5.076 5.076 0 0 0-.554 1.341H5v2.551h1.525c.12.475.306.924.554 1.342Zm-1.35-3.164h1.388l.057-.295a4.365 4.365 0 0 1 .67-1.623l.169-.249-.98-.98.773-.773.98.98.25-.168a4.357 4.357 0 0 1 1.622-.67l.295-.057V9.729h1.094v1.388l.295.058a4.364 4.364 0 0 1 1.623.67l.249.168.98-.98.773.773-.98.98.168.25a4.36 4.36 0 0 1 .67 1.622l.058.296h1.388v1.093h-1.388l-.058.295a4.366 4.366 0 0 1-.67 1.623l-.168.249.98.98-.773.773-.98-.98-.25.168a4.375 4.375 0 0 1-1.622.67l-.295.057v1.389h-1.094v-1.389l-.295-.057a4.362 4.362 0 0 1-1.623-.67l-.249-.168-.98.98-.773-.773.98-.98-.168-.25a4.36 4.36 0 0 1-.67-1.622l-.058-.295H5.73v-1.094Z\",\n strokeWidth: 0.5,\n fill: \"#90A9C0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.474 17.55a2.278 2.278 0 0 0 2.276-2.275A2.278 2.278 0 0 0 11.474 13 2.277 2.277 0 0 0 9.2 15.275a2.277 2.277 0 0 0 2.274 2.275Zm0-3.872c.881 0 1.598.717 1.598 1.597s-.717 1.597-1.598 1.597c-.88 0-1.596-.717-1.596-1.597s.716-1.597 1.596-1.597Z\",\n strokeWidth: 0.4,\n fill: \"#90A9C0\"\n })))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgCustomAttributes, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/customAttributes.c7457305.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n overflow: hidden;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n max-width: 450px;\n flex: 1 1 0px;\n margin: auto;\n align-items: center;\n margin-top: 50px;\n user-select: none;\n`;\n\nWrapper.displayName = 'Wrapper';\n\nexport const Content = styled.div`\n margin-top: 35px;\n text-align: center;\n align-items: center;\n`;\n\nContent.displayName = 'Content';\n\nexport const TitleWrapper = styled.div`\n font-family: 'CentraNo2';\n font-weight: normal;\n font-size: 21px;\n letter-spacing: 0.16px;\n color: ${colors.dark2};\n text-align: center;\n width: 340px;\n margin: auto;\n`;\n\nTitleWrapper.displayName = 'TitleWrapper';\n\nexport const Description = styled.div`\n font-size: 14px;\n line-height: 1.5;\n letter-spacing: 0.1px;\n color: ${colors.grey19};\n text-align: center;\n margin: 23px 0px;\n width: 400px;\n`;\n\nDescription.displayName = 'Description';\n\nexport const BoldDescription = styled.div`\n display: inline-block;\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: 0.1px;\n color: ${colors.grey19};\n font-weight: 600;\n`;\nBoldDescription.displayName = 'BoldDescription';\n\nexport const FeatureImage = styled.img`\n width: 305px;\n height: auto;\n`;\n\nFeatureImage.displayName = 'FeatureImage';\n\nexport const TitleBold = styled(TitleWrapper)`\n display: inline;\n font-weight: 500;\n`;\n\nTitleBold.displayName = 'TitleBold';\n","import React from 'react';\nimport { PropTypes } from 'prop-types';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport {\n Wrapper, Content, Description, BoldDescription, FeatureImage, TitleWrapper, TitleBold\n} from './styled';\nimport BlueButton from 'Common/Components/BlueButton/index';\nimport { URL_PRICING } from 'Common/Components/UpgradeLicense/index';\n\nconst UpgradeLicense = ({ image, description }) => {\n const intl = useIntl();\n const onClick = () => window.open(URL_PRICING);\n\n return (\n \n \n \n \n } } />\n \n \n ,\n br:
\n } }\n />\n
\n \n
\n
\n );\n};\n\nUpgradeLicense.propTypes = {\n description: PropTypes.string.isRequired,\n image: PropTypes.string.isRequired\n};\n\nexport default UpgradeLicense;\n","import React from 'react';\nimport Header from '../Header';\nimport Wrapper from './styled';\nimport UpgradeLicense from '../UpgradeLicense';\nimport FFSaml from 'Images/ff_saml.png';\n\nconst Saml = ({ onClose }) => {\n return (\n \n
\n \n \n );\n};\n\nexport default Saml;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n overflow: hidden;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n","import React from 'react';\nimport Wrapper from './styled';\nimport Header from '../Header';\nimport UpgradeLicense from '../UpgradeLicense';\nimport FFLdap from 'Images/ff_ldap.png';\n\nconst Ldap = ({ onClose }) => {\n return (\n \n
\n \n \n );\n};\n\nexport default Ldap;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n height: 100%;\n width: 100%;\n display: flex;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Tabs = styled.div`\n background: #ebeff3;\n min-width: 184px;\n display: inline-block;\n height: 100%;\n`;\nTabs.displayName = 'Tabs';\n\nexport const TabGroup = styled.div`\n`;\nTabGroup.displayName = 'TabGroup';\n\nexport const Subtitle = styled.div`\n margin: 20px 0 10px 0;\n font-size: 11.5px;\n font-weight: normal;\n line-height: 1.22;\n text-align: left;\n color: #7a7e8f;\n padding-left: 20px;\n`;\nSubtitle.displayName = 'Subtitle';\n\nexport const Title = styled.div`\n font-size: 21.5px;\n font-weight: 500;\n line-height: 1.16;\n text-align: left;\n color: ${colors.softBlue};\n padding: 40px 20px 0px 20px;\n`;\nTitle.displayName = 'Title';\n\nexport const Item = styled.div`\n display:flex;\n align-items: center;\n cursor: pointer;\n font-size: 13.5px;\n font-weight: ${(props) => (props.active ? '600' : 'normal')} ;\n line-height: 1.04;\n text-align: left;\n padding: 10px 20px;\n background: ${(props) => (props.active ? colors.grey12 : 'transparent')};\n \n & svg {\n margin-right: 6px;\n }\n `;\nItem.displayName = 'Item';\n\nexport const TabContent = styled.div`\n padding: 35px;\n width: 100%;\n display: inline-block;\n overflow: auto;\n`;\nTabContent.displayName = 'TabContent';\n","var _style, _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconEdit = function SvgIconEdit(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n fill: \"#000000\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 17.5 16.5\",\n style: {\n enableBackground: \"new 0 0 17.5 16.5\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\\n\\t.st0{fill:#264D6D;}\\n\")), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M6.8,13.9l9.9-9.7l0,0C17,3.8,17.2,3.4,17.2,3c0-0.4-0.2-0.9-0.5-1.2l-1.3-1.3c-0.6-0.6-1.7-0.6-2.4,0 l-9.9,9.8l0,0l-0.4,4L6.8,13.9L6.8,13.9z M4.4,12.6l0.2-1.6l7.7-7.5l1.5,1.4l-7.7,7.5L4.4,12.6z M15.6,3C15.6,3,15.6,3,15.6,3 l-0.8,0.8l-1.5-1.4L14,1.6h0.1l0,0l0,0h0.1L15.6,3L15.6,3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M16.6,14.9H0.8c-0.4,0-0.8,0.3-0.8,0.8s0.3,0.8,0.8,0.8h15.8c0.4,0,0.8-0.3,0.8-0.8S17,14.9,16.6,14.9z\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconEdit, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon_edit.97c1ea04.svg\";\nexport { ForwardRef as ReactComponent };","var _title, _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconDrag = function SvgIconDrag(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"10px\",\n height: \"16px\",\n viewBox: \"0 0 10 16\",\n ref: svgRef\n }, props), title === undefined ? _title || (_title = /*#__PURE__*/React.createElement(\"title\", null, \"icon_drag\")) : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon_drag\",\n fill: \"#BEC8D2\",\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Shape\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4,14 C4,15.1 3.1,16 2,16 C0.9,16 0,15.1 0,14 C0,12.9 0.9,12 2,12 C3.1,12 4,12.9 4,14 Z M2,6 C0.9,6 0,6.9 0,8 C0,9.1 0.9,10 2,10 C3.1,10 4,9.1 4,8 C4,6.9 3.1,6 2,6 Z M2,0 C0.9,0 0,0.9 0,2 C0,3.1 0.9,4 2,4 C3.1,4 4,3.1 4,2 C4,0.9 3.1,0 2,0 Z M8,4 C9.1,4 10,3.1 10,2 C10,0.9 9.1,0 8,0 C6.9,0 6,0.9 6,2 C6,3.1 6.9,4 8,4 Z M8,6 C6.9,6 6,6.9 6,8 C6,9.1 6.9,10 8,10 C9.1,10 10,9.1 10,8 C10,6.9 9.1,6 8,6 Z M8,12 C6.9,12 6,12.9 6,14 C6,15.1 6.9,16 8,16 C9.1,16 10,15.1 10,14 C10,12.9 9.1,12 8,12 Z\"\n }))))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconDrag, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon_drag.d52758c1.svg\";\nexport { ForwardRef as ReactComponent };","import isEmpty from 'lodash/isEmpty';\nimport { NAME_TO_TYPE } from './constants';\n\n/* For some reason, the BE sends the option list of the choice CF not as an array, but as a string with the format:\n \"[ \"option1\", \"option 2\", \"option 3\"] \" so we need to remove the '[]' and the ' \"\" ' that appear between each\n so with the following line we get an array of strings */\nexport const parseOptions = (options = []) => {\n if (isEmpty(options)) return [];\n return options.replace(/\\[|\\]/g, '').replaceAll('\"', '').split(',');\n};\n\nexport const getFieldMetadataAsList = (fieldMetadata) =>\n (fieldMetadata ? parseOptions(fieldMetadata).join() : '');\n\n// Receives a [option, option2, option3] list and returns \"[\"option1\", \"option2\", \"option3\"]\"\nexport const formatOptions = (list) => {\n const listOfStrings = list.map((e) => `\"${e}\"`);\n return `[${listOfStrings}]`;\n};\n\nexport const newField = (oldFields, name, fieldName, type, currentOptions) => ({\n field_display_name: name,\n field_metadata: isEmpty(currentOptions) ? null : formatOptions(currentOptions),\n field_name: fieldName,\n field_order: oldFields ? oldFields.length + 1 : 0,\n field_type: NAME_TO_TYPE[type.toLowerCase()],\n table_name: 'vulnerability'\n});\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { FiTrash2 as Trash } from 'react-icons/fi';\n\nexport const Container = styled.div`\n display: flex;\n align-items: stretch;\n\n > :nth-child(1){\n margin-right: 13px;\n }\n`;\n\nContainer.displayName = 'Container';\n\nexport const Field = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 600px;\n height: 55px;\n margin: 0px 38px 25.3px 6px;\n padding: 19px 21px;\n opacity: 0.6;\n border-radius: 3px;\n box-shadow: 2px 2px 5px 0 rgba(97, 97, 97, 0.06);\n border: solid 1px #dbdbdb;\n background-color: ${colors.white};\n overflow: hidden;\n`;\n\nField.displayName = 'Field';\n\nexport const Name = styled.span`\n display: inline-block;\n width: 35%;\n text-align: left;\n vertical-align: middle;\n font-size: 14.5px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: ${colors.grey19};\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nName.displayName = 'Name';\n\nexport const Type = styled.span`\n display: inline-block;\n width: 10%;\n font-size: 12.5px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: ${(props) => (props.color ? props.color : colors.warmPurple)}; \n`;\n\nType.displayName = 'Type';\n\nexport const DescriptionContainer = styled.div`\n width: 55%;\n display: inline-block;\n`;\nexport const Description = styled.span`\n display: inline-block;\n text-align: left;\n padding-left: 31px;\n width: 100%;\n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: ${colors.blueGrey};\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n vertical-align: middle;\n`;\n\nDescription.displayName = 'Description';\n\nexport const Icons = styled.div`\n\n width: 19%;\n > :not(:last-child){\n margin-right: 13px;\n }\n \n > :nth-child(1) {\n cursor: pointer;\n width: 16px;\n height: 17px;\n\n path {\n fill: ${colors.grey12};\n }\n }\n`;\nIcons.displayName = 'IconsContainer';\n\nexport const Texts = styled.div`\n width: 81%;\n`;\nTexts.displayName = 'Texts';\n\nexport const TrashIcon = styled(Trash)` \n width: 16px;\n height: 17px;\n align-self: flex-end;\n color: ${colors.grey12};\n`;\n\nTrashIcon.displayName = 'TrashIcon';\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactComponent as Edit } from 'Images/icon_edit.svg';\nimport { ReactComponent as DragHandle } from 'Images/icon_drag.svg';\nimport { Draggable } from 'react-beautiful-dnd';\nimport { COLOR_BY_CUSTOM_ATTRIBUTE_TYPE, TYPE_TO_NAME } from '../../constants';\nimport { getFieldMetadataAsList } from '../../functions';\nimport {\n Container, Field, Name, Type,\n Description, TrashIcon, Icons, Texts, DescriptionContainer\n} from './styled';\n\nconst CustomAttribute = ({\n field, index, onRemove, onEdit\n}) => {\n const { field_display_name, field_type } = field;\n\n return (\n \n \n {(provided) => (\n \n \n {field_display_name}\n { TYPE_TO_NAME[field_type] }\n \n {field.field_metadata && { getFieldMetadataAsList(field.field_metadata) }}\n \n \n \n onEdit(field) } />\n onRemove(field) } />\n
\n \n
\n
\n \n )}\n
\n
\n );\n};\n\nCustomAttribute.propTypes = {\n field: PropTypes.shape({\n field_display_name: PropTypes.string.isRequired,\n field_type: PropTypes.string.isRequired,\n field_metadata: PropTypes.string\n }).isRequired\n};\n\nexport default CustomAttribute;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as _Warning } from 'Images/warning-delete.svg';\nimport { slideIn } from 'Styles/effects';\nimport { Accept, Cancel } from 'Common/Components/Button/styled';\n\nexport const ModalContent = styled.div`\n padding: 34px;\n box-shadow: 0 2px 50px 0 rgba(0, 0, 0, 0.24);\n border-radius: 2px;\n border-top: 10px solid ${colors.softBlue};\n background: #fff;\n width: 505px;\n ${slideIn}\n`;\nModalContent.displayName = 'ModalContent';\n\nexport const ModalTitle = styled.div`\n display: flex;\n margin-bottom: 21px;\n`;\nModalTitle.displayName = 'ModalTitle';\n\nexport const Warning = styled(_Warning)`\n align-self: center;\n`;\nWarning.displayName = 'Warning';\n\nexport const Title = styled.div`\n color: ${colors.datk2};\n font-weight: 600;\n font-size: 21.5px;\n margin-left: 13px;\n`;\nTitle.displayName = 'Title';\n\nexport const ModalBody = styled.div`\n\n`;\nexport const BodyText = styled.div`\n color: ${colors.grey19};\n font-size: 12.5px;\n font-weight: 300;\n display: inline-block;\n text-align: initial;\n`;\nBodyText.displayName = 'BodyText';\n\nexport const ButtonsContainer = styled.div`\ndisplay: flex;\njustify-content: flex-end;\nmargin-top: 34px;\n`;\nButtonsContainer.displayName = 'ButtonsContainer';\n\nexport const ConfirmButton = styled(Accept)`\n`;\nConfirmButton.displayName = 'ConfirmButton';\n\nexport const CancelButton = styled(Cancel)`\n margin-right: 10px;\n`;\nCancelButton.displayName = 'CancelButton';\n","/* eslint-disable react/no-children-prop */\nimport React from 'react';\nimport ModalWrapper from 'Common/Components/ModalWrapper';\nimport { PropTypes } from 'prop-types';\nimport {\n ModalTitle, Title, BodyText, ModalContent, ButtonsContainer,\n ConfirmButton, CancelButton, Warning, ModalBody\n} from './styled';\n\nconst ConfirmationModal = ({\n handleSubmit, handleClose\n}) => (\n \n \n \n \n Delete Custom Attribute\n \n \n You’re deleting a custom attribute. This action cannot be undone. Are you sure you want to proceed?\n \n \n \n \n \n \n \n);\n\nConfirmationModal.propTypes = {\n handleSubmit: PropTypes.func.isRequired,\n handleClose: PropTypes.func.isRequired\n};\n\nexport default ConfirmationModal;\n","import styled from 'styled-components';\n\nconst Wrapper = styled.div`\n overflow: auto;\n margin-top: 34px;\n`;\n\nWrapper.displayName = 'FieldListWrapper';\n\nexport default Wrapper;\n","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconCloseWithoutBackground = function SvgIconCloseWithoutBackground(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 19,\n height: 19,\n viewBox: \"0 0 19 19\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\",\n opacity: 1\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#515a65\",\n fillRule: \"nonzero\",\n d: \"M10.867 10.002L6.698 14.04c-.288.279-.754.279-1.04 0l-.692-.672c-.288-.279-.288-.73 0-1.006L7.921 9.5 4.966 6.637c-.288-.279-.288-.73 0-1.006l.693-.672c.288-.279.754-.279 1.04 0L10.866 9c.288.272.288.724 0 1.003z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#515a65\",\n fillRule: \"nonzero\",\n d: \"M8.529 10.002l4.169 4.039c.288.279.754.279 1.039 0l.693-.672c.288-.279.288-.73 0-1.006L11.475 9.5l2.955-2.863c.288-.279.288-.73 0-1.006l-.693-.672c-.288-.279-.754-.279-1.04 0L8.53 9c-.289.272-.289.724 0 1.003z\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconCloseWithoutBackground, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon-close-without-background.9b3b0c89.svg\";\nexport { ForwardRef as ReactComponent };","/* eslint-disable react/jsx-props-no-spreading */\nimport React, { useState } from 'react';\nimport { Droppable } from 'react-beautiful-dnd';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { setCustomAttributeToEdit, removeCustomAttribute } from 'store/CustomAttributes/actions';\nimport { selectCustomAttributes, selectHasCustomAttributes } from 'store/CustomAttributes/selectors';\nimport CustomAttribute from '../CustomAttribute';\nimport ConfirmationModal from './ConfirmationModal';\nimport Wrapper from './styled';\n\nconst AttributeList = () => {\n const dispatch = useDispatch();\n const [fieldToDelete, setFieldToDelete] = useState(null);\n const customAttributes = useSelector(selectCustomAttributes);\n const hasCustomAttributes = useSelector(selectHasCustomAttributes);\n\n const onEdit = (field) => dispatch(setCustomAttributeToEdit(field));\n const onRemove = (field) => setFieldToDelete(field);\n const onCancel = () => setFieldToDelete(null);\n\n const handleRemove = () => {\n dispatch(removeCustomAttribute(fieldToDelete));\n setFieldToDelete(null);\n };\n\n if (!hasCustomAttributes) return null;\n return (\n \n { fieldToDelete && }\n \n {(provided) => (\n
\n {customAttributes.sort((a, b) => a.field_order - b.field_order).map((field, i) => )}\n {provided.placeholder}\n
\n )}\n
\n
\n );\n};\n\nexport default AttributeList;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as CloseSVG } from 'Images/icon-close-without-background.svg';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nWrapper.displayName = 'CustomFieldsWrapper';\n\nexport const Head = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nHead.displayName = 'Head';\n\nexport const Description = styled.span`\n color: ${colors.grey19};\n font-size: 12.5px;\n line-height: 1.36;\n text-align: left;\n`;\n\nDescription.displayName = 'Description';\n\nexport const Title = styled.span`\n color: ${colors.blue6};\n font-size: 21.5px;\n font-weight: 600;\n`;\n\nTitle.displayName = 'Title';\n\nexport const CloseIcon = styled(CloseSVG)`\n position: absolute;\n left: 9px;\n top: 9px;\n margin: auto;\n cursor: pointer;\n &>:hover{\n left: 8px;\n top: 8px;\n & g {\n & circle{\n background-color: #edf2f7;\n } \n }\n } \n & g {\n & path{\n fill: #63758d;\n } \n }\n`;\nCloseIcon.displayName = 'CloseIcon';\n\nexport const CloseIconWrapper = styled.div`\n flex: 0 0 37px;\n position: relative;\n padding-left: 3px;\n height: 37px;\n margin: auto 0 auto auto;\n cursor: pointer;\n &:hover{\n background-color: #edf2f7;\n border-radius: 50%;\n } \n`;\nCloseIconWrapper.displayName = 'CloseIconWrapper';\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useIntl } from 'react-intl';\nimport { MODAL_CUSTOM_ATTRIBUTES } from 'store/modals/modals';\nimport { closeModal } from 'store/modals/actions';\nimport {\n Wrapper, Head, Description, Title, CloseIconWrapper, CloseIcon\n} from './styled';\n\nconst Header = ({ customHeader }) => {\n const intl = useIntl();\n const dispatch = useDispatch();\n\n const title = intl.formatMessage({ id: 'customAttributes.modal.title' });\n const description = intl.formatMessage({ id: 'customAttributes.modal.description' });\n\n const onClose = () => dispatch(closeModal(MODAL_CUSTOM_ATTRIBUTES));\n\n return (\n \n \n { title }\n {!customHeader && \n \n }\n \n { description }\n \n );\n};\n\nexport default Header;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n width: 480px;\n margin: 21px 0 0;\n padding: 21px 20px 21px 21px;\n background-color: ${colors.paleGrey};\n display: flex;\n flex-direction: column;\n`;\n\nWrapper.displayName = 'AddCustomField';\n\nexport const Title = styled.span`\n font-size: 17.5px;\n font-weight: 600;\n color: ${colors.darkBlueGrey};\n margin-bottom: 21px;\n text-align: left;\n`;\n\nTitle.displayName = 'Title';\n\nexport const TextFieldContainer = styled.div`\n width: 285px;\n`;\n\nTextFieldContainer.displayName = 'TextFieldContainer';\n\nexport const Fields = styled.div`\n display: flex;\n align-items: center;\n > :nth-child(1){\n margin-right: 22px;\n }\n`;\n\nFields.displayName = 'Fields';\n\nexport const Container = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nContainer.displayName = 'Container';\n\nexport const Buttons = styled.div`\n display: flex;\n margin-top: 15px;\n justify-content: flex-end;\n > :last-child {\n margin-left: 8px;\n }\n`;\n\nButtons.displayName = 'Buttons';\n","import React from 'react';\nimport { useIntl } from 'react-intl';\nimport StandardDropdown from 'Common/Components/StandarDropdown/index';\nimport BlueButton from 'Common/Components/BlueButton/index';\nimport OutlinedButton from 'Common/Components/OutlinedButton/index';\nimport CustomList from 'Common/Components/CustomList';\nimport isEmpty from 'lodash/isEmpty';\nimport { useSelector } from 'react-redux';\nimport { selectCAToEdit, selectCustomAttributes } from 'store/CustomAttributes/selectors';\nimport StandardTextField from 'Common/Components/StandardTextField';\nimport { FIELD_TYPES, CUSTOM_ATTRIBUTES_MODAL_ID } from '../../constants';\nimport {\n Wrapper, Title, TextFieldContainer, Fields, Buttons, Container\n} from './styled';\n\nconst DisplayAddCustomAttribute = ({\n onSubmit, onCancel, handleChangeType, handleChangeName, name, type, options, onAddItem, onRemoveItem\n}) => {\n const intl = useIntl();\n const customAttributes = useSelector(selectCustomAttributes);\n const caToEdit = useSelector(selectCAToEdit);\n const isEditing = !!caToEdit;\n\n const intlId = isEditing ? 'customAttributes.modal.edit' : 'customAttributes.modal.add';\n const title = intl.formatMessage({ id: intlId });\n const placeholder = intl.formatMessage({ id: 'customAttributes.modal.placeholder' });\n\n const nameIsDuplicated = (newName) => {\n const formattedNewName = newName.toLowerCase().trim().replaceAll(' ', '_');\n return customAttributes.some((field) => field.field_name === formattedNewName);\n };\n\n const canCreate = !isEmpty(name) && !isEmpty(type) && (isEditing || !nameIsDuplicated(name));\n const isChoice = type === 'Choice';\n const buttonLabel = isEditing ? 'Save' : 'Create';\n return (\n \n {title}\n \n \n \n \n \n \n \n {isChoice &&\n (\n \n )}\n \n \n {isEditing && }\n \n \n \n );\n};\n\nexport default DisplayAddCustomAttribute;\n","import React, { useState, useEffect } from 'react';\n\nimport { useSelector, useDispatch } from 'react-redux';\nimport { addCustomAttribute, editCustomAttribute, setCustomAttributeToEdit } from 'store/CustomAttributes/actions';\nimport { selectCAToEdit, selectCustomAttributes } from 'store/CustomAttributes/selectors';\nimport get from 'lodash/get';\nimport { parseOptions, formatOptions, newField } from '../../functions';\nimport { TYPE_TO_NAME } from '../../constants';\nimport DisplayAddCustomAttribute from './DisplayAddCustomAttribute';\n\nconst AddCustomAttribute = () => {\n const [name, setName] = useState('');\n const [type, setType] = useState('');\n const [options, setOptions] = useState([]);\n const currentCustomAttributes = useSelector(selectCustomAttributes);\n const dispatch = useDispatch();\n const caToEdit = useSelector(selectCAToEdit);\n\n const clearFields = () => {\n setOptions([]);\n setName('');\n setType('');\n };\n\n const onSubmit = () => {\n const fieldName = name.toLowerCase().trim().replaceAll(' ', '_');\n if (caToEdit) {\n const newField = {\n ...caToEdit,\n field_name: fieldName,\n field_display_name: name,\n field_metadata: formatOptions(options)\n };\n dispatch(editCustomAttribute(newField));\n } else {\n dispatch(addCustomAttribute(newField(currentCustomAttributes, name, fieldName, type, options)));\n }\n clearFields();\n };\n\n const onCancel = () => {\n dispatch(setCustomAttributeToEdit(null));\n clearFields();\n };\n\n const handleChangeType = (field, type) => {\n setType(type.name);\n setOptions([]);\n };\n\n const onAddItem = (val) => {\n if (val && options.every((o) => o !== val)) setOptions([...options, val]);\n };\n\n const onRemoveItem = (index) => {\n const selectedOption = get(options, `${[index]}`, '');\n const newOptions = options.filter((o) => o !== selectedOption);\n setOptions(newOptions);\n };\n\n useEffect(() => () => {\n dispatch(setCustomAttributeToEdit(null));\n }, [dispatch]);\n\n useEffect(() => {\n if (caToEdit) {\n const options = get(caToEdit, 'field_metadata', []);\n const displayName = get(caToEdit, 'field_display_name', '');\n const type = get(TYPE_TO_NAME, `${caToEdit.field_type}`, '');\n const parsedOptions = parseOptions(options);\n setName(displayName);\n setType(type);\n setOptions(parsedOptions);\n } else clearFields();\n }, [caToEdit]);\n\n return (\n \n );\n};\n\nexport default AddCustomAttribute;\n","import React from 'react';\nimport { DragDropContext } from 'react-beautiful-dnd';\nimport { useDispatch } from 'react-redux';\nimport { dragCustomAttribute } from 'store/CustomAttributes/actions';\nimport AttributeList from 'Screens/Manage/components/CustomAttributesModal/components/AttributeList';\nimport Header from 'Screens/Manage/components/CustomAttributesModal/components/Header/index';\nimport AddCustomAttribute from 'Screens/Manage/components/CustomAttributesModal/components/AddCustomAttribute';\nimport SettingsHeader from '../Header';\n\nconst CustomAttributes = ({ onClose }) => {\n const dispatch = useDispatch();\n const handleDragEnd = (result) => dispatch(dragCustomAttribute(result));\n return (\n <>\n \n
\n \n \n \n \n \n );\n};\nexport default CustomAttributes;\n","import React, { useState } from 'react';\nimport { useIntl } from 'react-intl';\nimport PropTypes from 'prop-types';\nimport Account from 'Screens/Settings/components/Account';\nimport { ReactComponent as AccountIcon } from 'Images/preferences_icons_Account.svg';\nimport { ReactComponent as AuthIcon } from 'Images/preferences_icons_Authentication.svg';\nimport { ReactComponent as CustomAtributesIcon } from 'Images/customAttributes.svg';\nimport Saml from 'Screens/Settings/components/Saml';\nimport Ldap from 'Screens/Settings/components/Ldap';\nimport {\n Wrapper,\n Tabs,\n TabGroup,\n Title,\n Subtitle,\n Item,\n TabContent\n} from './styled';\nimport 'Screens/Settings/styles.scss';\nimport CustomAttributes from '../CustomAttributes';\n\nconst Menu = ({ onClose }) => {\n const intl = useIntl();\n const [visibleComponent, setVisibleComponent] = useState();\n const [active, setActive] = useState('account');\n\n const click = (key, component) => { setActive(key); setVisibleComponent(component); };\n\n const menuItems = [\n {\n title: intl.formatMessage({ id: 'preferences.general.title' }),\n items: [\n {\n key: 'account', title: intl.formatMessage({ id: 'preferences.account.title' }), click: () => { click('account', ); }, icon: \n },\n {\n key: 'customAttributes', title: intl.formatMessage({ id: 'preferences.customAttributes.title' }), click: () => { click('customAttributes', ); }, icon: \n }\n ]\n },\n {\n title: intl.formatMessage({ id: 'preferences.authentication.title' }),\n canView: true,\n items: [\n {\n key: 'ldap', title: intl.formatMessage({ id: 'preferences.ldap.title' }), click: () => { click('ldap', ); }, icon: , canView: true\n },\n {\n key: 'saml', title: intl.formatMessage({ id: 'preferences.saml.title' }), click: () => { click('saml', ); }, icon: , canView: true\n }\n ]\n }\n ];\n\n return (\n \n \n {intl.formatMessage({ id: 'preferences.title' })}\n { menuItems.map((group) => (\n \n {group.title}\n { group.items.map((item) => (\n \n {item.icon}\n {' '}\n {item.title}\n \n ))}\n \n ))}\n \n \n {visibleComponent}\n \n \n );\n};\n\nMenu.propTypes = {\n onClose: PropTypes.func.isRequired\n};\n\nexport default Menu;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Menu from './components/Menu';\nimport { Wrapper } from './common-styled';\n\nconst Settings = ({ onClose }) => (\n \n \n \n);\n\nSettings.propTypes = {\n onClose: PropTypes.func.isRequired\n};\n\nexport default Settings;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n background: white;\n text-align: left;\n line-height: 1.44;\n border: solid 1px ${colors.blue12};\n max-width: ${(props) => props.maxWidth};\n padding: 55px !important;\n display: flex;\n flex-direction: column;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const PrimaryTitle = styled.div`\n font-size: 21.5px;\n font-weight: 600;\n margin-bottom: 28px;\n color: ${colors.dark2};\n`;\nPrimaryTitle.displayName = 'PrimaryTitle';\n\nexport const SecondaryTitle = styled.div`\n font-size: 17.5px;\n font-weight: 500;\n margin-bottom: 12px;\n color: ${colors.dark2};\n`;\nSecondaryTitle.displayName = 'SecondaryTitle';\n\nexport const TertiaryTitle = styled.a`\n font-size:15px;\n font-weight: 500;\n color: ${colors.blueCerulean};\n`;\nTertiaryTitle.displayName = 'TertiaryTitle';\n\nexport const Text = styled.div`\n font-size:13.5px;\n color: ${colors.grey19}\n`;\nText.displayName = 'Text';\n\nexport const Logo = styled.img`\n width: fit-content;\n height: 35px;\n margin-bottom: 18px;\n`;\nLogo.displayName = 'Logo';\n\nexport const Row = styled.div`\n margin-bottom: 12px;\n`;\nRow.displayName = 'Row';\n\nexport const Container = styled.div`\n overflow: auto;\n width:auto;\n max-height: 22vw;\n`;\nContainer.displayName = 'Container';\n\nexport const Button = styled.div`\n border: 0;\n color: white;\n text-align: center;\n min-width: 89px;\n max-width: fit-content;\n width: auto;\n height: 34px;\n line-height: 24px;\n border-radius: 2px;\n font-size: 14px;\n font-weight: 500;\n padding: 5px;\n cursor: pointer;\n display: inline-block;\n background-color: ${colors.blueCerulean};\n align-self: flex-end;\n margin-top: 34px;\n`;\nButton.displayName = 'Button';\n\nexport const UserContainer = styled.div`\n position: relative;\n cursor: pointer;\n`;\nContainer.displayName = 'Container';\n","import React from 'react';\nimport Shell from 'Images/mini-terminal.svg';\nimport { useIntl } from 'react-intl';\nimport PropTypes from 'prop-types';\n\nimport {\n Wrapper, PrimaryTitle, SecondaryTitle, TertiaryTitle, Text, Row, Button, Logo, Container\n} from '../../styled';\n\nconst Extras = ({ onClose }) => {\n const intl = useIntl();\n\n return (\n \n \n \n {intl.formatMessage({ id: 'user.extras.title' })}\n \n \n {intl.formatMessage({ id: 'user.extras.secondary-title' })}\n \n \n \n \n {intl.formatMessage({ id: 'user.extras.text' })}\n \n \n\n \n \n {intl.formatMessage({ id: 'user.extras.tertiary-title.Faraday-CLI' })}\n \n \n {intl.formatMessage({ id: 'user.extras.text.Faraday-CLI' })}\n \n \n\n \n \n {intl.formatMessage({ id: 'user.extras.tertiary-title.Agent-Dispatcher' })}\n \n \n {intl.formatMessage({ id: 'user.extras.text.Agent-Dispatcher' })}\n \n \n\n \n \n {intl.formatMessage({ id: 'user.extras.tertiary-title.Methodology' })}\n \n \n {intl.formatMessage({ id: 'user.extras.text.Methodology' })}\n \n \n\n \n \n {intl.formatMessage({ id: 'user.extras.tertiary-title.Vulnerability-KB' })}\n \n \n {intl.formatMessage({ id: 'user.extras.text.Vulnerability-KB' })}\n \n \n\n \n \n {intl.formatMessage({ id: 'user.extras.tertiary-title.Burp-Extender' })}\n \n \n {intl.formatMessage({ id: 'user.extras.text.Burp-Extender' })}\n \n \n\n \n \n\n \n );\n};\n\nExtras.propTypes = {\n onClose: PropTypes.func.isRequired\n};\n\nexport default Extras;\n","import React from 'react';\nimport faraday from 'Images/faraday-logo.svg';\nimport { useIntl } from 'react-intl';\nimport PropTypes from 'prop-types';\n\nimport {\n Wrapper, PrimaryTitle, TertiaryTitle, Text, Row, Button, Logo, Container\n} from '../../styled';\nimport { useSelector } from 'react-redux';\nimport { selectApiVersion } from 'store/Faraday/selectors';\n\nconst About = ({ onClose }) => {\n const intl = useIntl();\n const apiVersion = useSelector(selectApiVersion);\n\n return (\n \n \n \n {intl.formatMessage({ id: 'user.about.title' })} {apiVersion}\n \n\n \n \n {intl.formatMessage({ id: 'user.about.text' })}\n \n \n\n \n \n \n {intl.formatMessage({ id: 'user.about.tertiary-title.new' })}\n \n \n\n \n \n {intl.formatMessage({ id: 'user.about.tertiary-title.credits' })}\n \n \n\n \n \n {intl.formatMessage({ id: 'user.about.tertiary-title.documentation' })}\n \n \n\n \n \n \n );\n};\n\nAbout.propTypes = {\n onClose: PropTypes.func.isRequired\n};\n\nexport default About;\n","import React from 'react';\nimport HelpIcon from 'Images/help.svg';\nimport { useIntl } from 'react-intl';\nimport PropTypes from 'prop-types';\n\nimport {\n Wrapper, PrimaryTitle, SecondaryTitle, TertiaryTitle, Text, Row, Button, Logo, Container\n} from '../../styled';\n\nconst Help = ({ onClose }) => {\n const intl = useIntl();\n const link = {\n documentation: 'https://docs.faradaysec.com/',\n faqs: 'https://docs.faradaysec.com/FAQ/',\n troubleshooting: 'https://docs.faradaysec.com/Troubleshooting/',\n support: 'https://github.com/infobyte/faraday/issues/new/choose',\n home: 'https://faradaysec.com/'\n };\n\n return (\n \n \n \n {intl.formatMessage({ id: 'user.help.title' })}\n \n \n {intl.formatMessage({ id: 'user.help.secondary-title' })}\n \n \n \n \n {intl.formatMessage({ id: 'user.help.text.part1' })}\n {' '}\n {intl.formatMessage({ id: 'user.help.tertiary-title.documentation' })}\n
\n {intl.formatMessage({ id: 'user.help.text.part2' })}\n {' '}\n {intl.formatMessage({ id: 'user.help.tertiary-title.faqs' })}\n {' '}\n {intl.formatMessage({ id: 'user.help.text.part3' })}\n {' '}\n {intl.formatMessage({ id: 'user.help.tertiary-title.troubleshooting' })}\n
\n
\n\n {intl.formatMessage({ id: 'user.help.text.part4' })}\n {' '}\n {intl.formatMessage({ id: 'user.help.tertiary-title.ticket' })}\n {' '}\n
\n
\n\n {intl.formatMessage({ id: 'user.help.text.part5' })}\n {' '}\n {intl.formatMessage({ id: 'user.help.tertiary-title.faraday' })}\n
\n
\n
\n \n
\n );\n};\n\nHelp.propTypes = {\n onClose: PropTypes.func.isRequired\n};\n\nexport default Help;\n","import colors from 'Styles/colors';\n\nconst ColorRole = {\n admin: '#A4247A',\n pentester: '#EA3158',\n client: '#0082ED',\n asset_owner: colors.grey2\n};\n\nconst getBackgroundColor = (role, colors = ColorRole) => {\n if (!role) return '#67AE3F';\n\n return colors[role];\n};\n\nexport default getBackgroundColor;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nconst Icon = styled.div`\n user-select: none;\n display: inline-block;\n height: 40px;\n width: 40px;\n line-height: 40px;\n border-radius: 50%;\n background-color: ${(props) => props.background};\n border-radius: 50%;\n text-align: center;\n font-size: 20px;\n color: ${colors.white};\n text-transform: uppercase;\n flex-shrink: 0;\n`;\nIcon.displayName = 'Icon';\n\nexport default Icon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport GetBackgroundColor from 'Common/Functions/GetBackgroundColor';\n\nimport Icon from './styled';\n\nconst getLetter = (word) => {\n if (word) {\n if (word.length === 1) return word;\n\n return word[0];\n }\n return 'f';\n};\n\nconst ColorImage = ({ role, title }) => {\n const background = GetBackgroundColor(role);\n const letter = getLetter(title);\n\n return (\n \n {letter}\n \n );\n};\n\nColorImage.propTypes = {\n role: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired\n};\n\nexport default ColorImage;\n","import { Link } from 'react-router-dom';\nimport styled from 'styled-components';\n\nexport const DropdownMenu = styled.ul`\n position: absolute;\n width: 200px;\n border-radius: 3px;\n border: 1px solid rgba(0,0,0,.15);\n background-color: #fff;\n padding: 17px 0;\n z-index:9999;\n box-shadow: rgba(28, 34, 67, 0.1) 0 0 50px 0;\n right: 0px;\n top: 48px;\n`;\nDropdownMenu.displayName = 'DropdownMenu';\n\nexport const UserDropdownItem = styled.li`\n list-style: none;\n text-align: left;\n color: #1c2243;\n font-size: 14px;\n padding:10px 20px;\n font-weight: 300;\n cursor: pointer;\n &:hover{\n background-color: #f1f4f7;\n }\n\n & a{\n color: #1c2243;\n }\n`;\nUserDropdownItem.displayName = 'DropdownItem';\n\nexport const UserAvatar = styled.div`\n position: relative;\n cursor: pointer;\n`;\nUserDropdownItem.displayName = 'UserAvatar';\n\nexport const CustomLink = styled(Link)`\n text-decoration: none !important;\n display:flex;\n`;\n","import React from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { UserDropdownItem, CustomLink } from './styled';\n\nconst DropdownItem = ({\n Modal, action, link, children\n}) => {\n const generateDropdownLink = (url, description) => (\n \n \n {description}\n \n \n );\n\n const generateDropdownModal = (toggleModal, description) => {description};\n\n const generateDropdownAction = (action, description) => (\n action() }>{description}\n );\n\n let Component;\n if (Modal) {\n Component = generateDropdownModal(Modal.toggleModal, children);\n } if (action) {\n Component = generateDropdownAction(action, children);\n } if (link) {\n Component = generateDropdownLink(link, children);\n }\n\n return Component;\n};\n\nexport default withRouter(DropdownItem);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport DropdownItem from './UserDropdownItem';\nimport { DropdownMenu } from './styled';\n\nconst UserDropdown = ({ modals }) => {\n const {\n Help, Extras, About, Preferences\n } = modals;\n\n return (\n \n Preferences\n
\n Faraday Api\n Help\n Extras\n About\n Logout\n
\n );\n};\n\nUserDropdown.propTypes = {\n modals: PropTypes.shape({\n Extras: PropTypes.object.isRequired,\n Help: PropTypes.object.isRequired,\n About: PropTypes.object.isRequired,\n Preferences: PropTypes.object.isRequired\n }).isRequired\n};\n\nexport default UserDropdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ColorImage from 'Common/Components/ColorImage';\nimport UserDropdown from './Dropdown';\nimport { UserContainer } from './styled';\n\nconst User = ({ modals, ...props }) => {\n const {\n Extras, Help, About, Preferences\n } = modals;\n return (\n <>\n \n \n {props.dropdown && }\n \n {Preferences.showModal && }\n {Extras.showModal && }\n {About.showModal && }\n {Help.showModal && }\n \n\n );\n};\n\nUser.propTypes = {\n modals: PropTypes.shape({\n Extras: PropTypes.shape({\n showModal: PropTypes.bool.isRequired,\n toggleModal: PropTypes.func.isRequired\n }),\n Help: PropTypes.shape({\n showModal: PropTypes.bool.isRequired,\n toggleModal: PropTypes.func.isRequired\n }),\n About: PropTypes.shape({\n showModal: PropTypes.bool.isRequired,\n toggleModal: PropTypes.func.isRequired\n }),\n Preferences: PropTypes.shape({\n showModal: PropTypes.bool.isRequired,\n toggleModal: PropTypes.func.isRequired\n })\n }).isRequired,\n onClick: PropTypes.func.isRequired,\n userName: PropTypes.string.isRequired,\n userRole: PropTypes.string.isRequired,\n dropdown: PropTypes.bool.isRequired\n};\n\nexport default User;\n","import React, { useState } from 'react';\nimport useModal from 'Hooks/useModal';\nimport { useSelector } from 'react-redux';\nimport { selectUserName } from 'store/Faraday/selectors';\nimport Settings from 'Screens/Settings';\nimport Extras from './Modals/Extras';\nimport About from './Modals/About';\nimport Help from './Modals/Help';\nimport User from '.';\n\nconst UserContainer = () => {\n const [ModalPreferences, showModalPreferences, toggleModalPreferences] = useModal(Settings);\n const [ModalExtras, showModalExtras, toggleModalExtras] = useModal(Extras);\n const [ModalAbout, showModalAbout, toggleModalAbout] = useModal(About);\n const [ModalHelp, showModalHelp, toggleModalHelp] = useModal(Help);\n const [dropdown, setDropdown] = useState(false);\n const userRole = useSelector((s) => s.faraday.role);\n const userName = useSelector(selectUserName);\n\n const modals = {\n Extras: {\n Modal: ModalExtras,\n showModal: showModalExtras,\n toggleModal: toggleModalExtras\n },\n About: {\n Modal: ModalAbout,\n showModal: showModalAbout,\n toggleModal: toggleModalAbout\n },\n Help: {\n Modal: ModalHelp,\n showModal: showModalHelp,\n toggleModal: toggleModalHelp\n },\n Preferences: {\n Modal: ModalPreferences,\n showModal: showModalPreferences,\n toggleModal: toggleModalPreferences\n }\n };\n\n const handleOutsideClick = () => {\n setDropdown(false);\n document.removeEventListener('click', handleOutsideClick);\n };\n\n const handleClick = () => {\n if (dropdown) setDropdown(false);\n else {\n setDropdown(true);\n document.addEventListener('click', handleOutsideClick);\n }\n };\n\n return ;\n};\n\nexport default UserContainer;\n","import styled from 'styled-components';\n\nexport const Header = styled.div`\n display: flex;\n align-items: center;\n grid-row: 1/2;\n padding: 20px 20px 30px 20px;\n`;\nHeader.displayName = 'Header';\n\nexport const Wrapper = styled.div`\n display: flex;\n align-items: center;\n margin-left: auto;\n`;\nWrapper.displayName = 'Wrapper';\n","import React from 'react';\nimport { selectIsLoggedIn } from 'store/Sesion/selectors';\nimport { selectLocation } from 'store/Router/selectors';\nimport { useSelector } from 'react-redux';\nimport Searcher from 'Common/Components/Searcher';\nimport WorkspaceSelector from './WorkspaceMenuSelector';\nimport User from './User/userContainer';\nimport { Header, Wrapper } from './styled';\n\nconst NavMenu = () => {\n const loggedIn = useSelector((state) => selectIsLoggedIn(state));\n const location = useSelector((state) => selectLocation(state));\n const showWorkspaceSelector = location.pathname !== '/api-definitions';\n\n return loggedIn && (\n
\n { showWorkspaceSelector && }\n \n \n \n \n
\n );\n};\n\nexport default NavMenu;\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgActivityDashboard = function SvgActivityDashboard(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 19,\n height: 19,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.107 8.143H.68A.679.679 0 0 0 0 8.82v8.143C0 18.09.911 19 2.036 19h4.071a.679.679 0 0 0 .679-.679v-9.5a.679.679 0 0 0-.679-.678Zm-.678 9.5H2.036a.679.679 0 0 1-.679-.679V9.5H5.43v8.143ZM16.964 0H2.036A2.036 2.036 0 0 0 0 2.036v4.071c0 .375.304.679.679.679H18.32A.679.679 0 0 0 19 6.107V2.036A2.036 2.036 0 0 0 16.964 0Zm.679 5.429H1.357V2.036c0-.375.304-.679.679-.679h14.928c.375 0 .679.304.679.679v3.393Zm.678 2.714h-9.5a.679.679 0 0 0-.678.678v9.5c0 .375.304.679.678.679h8.143A2.036 2.036 0 0 0 19 16.964V8.821a.679.679 0 0 0-.679-.678Zm-.678 8.821a.679.679 0 0 1-.679.679H9.5V9.5h8.143v7.464Z\",\n fill: \"#264D6D\",\n fillRule: \"nonzero\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgActivityDashboard, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/activity-dashboard.b37176e7.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgAssets = function SvgAssets(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 21,\n height: 19,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.49 0C20.323 0 21 .67 21 1.493v3.196c0 .823-.677 1.493-1.51 1.493H11.2v1.024h8.29c.833 0 1.51.67 1.51 1.493v3.196c0 .823-.677 1.493-1.51 1.493H11.2v1.025h1.883c.386 0 .7.31.7.692v.91h6.376c.386 0 .7.309.7.692a.696.696 0 0 1-.7.692h-6.376v.909a.696.696 0 0 1-.7.692H7.917c-.386 0-.7-.31-.7-.692v-.909H.842c-.387 0-.7-.31-.7-.692 0-.383.313-.693.7-.693h6.375v-.91c0-.382.314-.691.7-.691H9.8v-1.025H1.51c-.833 0-1.51-.67-1.51-1.493V8.699c0-.823.677-1.493 1.51-1.493H9.8V6.182H1.51C.677 6.182 0 5.512 0 4.689V1.493C0 .67.677 0 1.51 0Zm-7.107 15.797H8.617v1.818h3.766v-1.818Zm7.107-7.206H1.51a.11.11 0 0 0-.11.108v3.196c0 .06.05.109.11.109h17.98a.11.11 0 0 0 .11-.11V8.7a.11.11 0 0 0-.11-.108Zm-1.71.9c.451 0 .816.36.816.806a.81.81 0 0 1-.815.806.81.81 0 0 1-.815-.806.81.81 0 0 1 .815-.806Zm1.71-8.106H1.51a.11.11 0 0 0-.11.108v3.196c0 .06.05.108.11.108h17.98a.11.11 0 0 0 .11-.108V1.493a.11.11 0 0 0-.11-.108Zm-1.71.9c.451 0 .816.36.816.806a.81.81 0 0 1-.815.806.81.81 0 0 1-.815-.806.81.81 0 0 1 .815-.806Z\",\n fill: \"#264D6D\",\n fillRule: \"nonzero\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgAssets, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/assets.581bf13b.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgAutomation = function SvgAutomation(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 19,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.035 0c1.182 0 2.132.94 2.132 2.111 0 .918-.626 1.721-1.46 1.996v1.744h5.1c1.483 0 2.712 1.194 2.712 2.685v.941h.811c.928 0 1.693.757 1.67 1.698v2.387c0 .917-.766 1.675-1.693 1.675h-.811v1.078c0 1.469-1.206 2.685-2.712 2.685H5.216c-1.484 0-2.712-1.193-2.712-2.685v-1.101h-.812C.765 15.214 0 14.457 0 13.539v-2.387c0-.918.765-1.675 1.692-1.675h.858v-.94c0-1.47 1.205-2.686 2.712-2.686h5.1V4.107a2.112 2.112 0 0 1-1.46-1.996C8.902.941 9.852 0 11.035 0Zm5.772 7.182H5.239c-.765 0-1.368.62-1.368 1.354v7.78c0 .756.626 1.353 1.368 1.353h11.545c.765 0 1.367-.62 1.367-1.354h.023V8.536c0-.757-.625-1.354-1.367-1.354Zm-4.312 7.39a.67.67 0 0 1 .672.665.67.67 0 0 1-.672.665H9.528a.67.67 0 0 1-.673-.665.67.67 0 0 1 .673-.666ZM2.504 10.83h-.812a.355.355 0 0 0-.347.344v2.364c0 .183.162.344.347.344h.812V10.83Zm17.803 0h-.811v3.052h.811c.186 0 .348-.16.348-.344v-2.364a.355.355 0 0 0-.348-.344ZM8.16 8.972c1.205 0 2.202.964 2.202 2.18 0 1.193-.997 2.18-2.202 2.18s-2.202-.987-2.202-2.18.997-2.18 2.202-2.18Zm5.703-.023a2.19 2.19 0 0 1 2.202 2.18c0 1.193-.997 2.18-2.202 2.18-1.206 0-2.203-.987-2.203-2.18a2.19 2.19 0 0 1 2.203-2.18ZM8.16 10.28a.837.837 0 0 0-.858.85c0 .481.394.848.858.848a.851.851 0 0 0 .858-.849.851.851 0 0 0-.858-.849Zm5.703 0a.837.837 0 0 0-.858.85c0 .481.394.848.858.848a.837.837 0 0 0 .857-.849.851.851 0 0 0-.857-.849ZM11.01 1.33a.778.778 0 0 0-.788.781c0 .436.348.78.788.78.44 0 .789-.344.789-.78a.778.778 0 0 0-.789-.78Z\",\n fill: \"#264D6D\",\n fillRule: \"nonzero\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgAutomation, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/automation.a512d67b.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgVulnerabilities = function SvgVulnerabilities(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 21,\n height: 22,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.617 1.194c.298.265.353.68.074 1l-.727.83-.127.137-.057.05-.05.035-.047.026-.01.011c1.16.839 1.817 2.449 1.581 3.903.536.406 1.018.9 1.387 1.453l.151.24 1.322-.557V5.608c.006-.898 1.3-.935 1.418-.117l.01.117v3.147a.717.717 0 0 1-.332.605l-.093.05-1.614.666c.267.598.458 1.226.545 1.852l.034.313h2.317c.43.002.702.317.701.717-.001.366-.232.662-.598.71l-.103.006-2.177-.049c-.012.815-.14 1.625-.402 2.351l-.107.272-.011.034 1.938.585c.268.08.46.31.5.582l.008.104v2.832c-.013.903-1.3.936-1.419.116l-.009-.117.036-2.287-1.59-.52c-1.22 2.194-3.326 3.524-5.615 3.524-2.206 0-4.242-1.236-5.428-3.271l-.128-.23-1.612.45v2.334c-.004.431-.316.705-.714.704-.364-.002-.658-.233-.707-.6l-.007-.104v-2.83c0-.282.163-.534.411-.65l.097-.037 1.808-.494.097-.03-.107-.323a7.218 7.218 0 0 1-.334-2.013l.004-.333H1.703c-.9-.014-.933-1.3-.116-1.423l.117-.01 2.268.043c.093-.662.26-1.3.517-1.865l.136-.277-1.64-.732a.716.716 0 0 1-.416-.55l-.007-.105V5.608c.013-.902 1.297-.938 1.418-.117l.01.117-.03 2.668 1.289.622c.445-.668.986-1.246 1.58-1.665-.2-1.398.354-2.886 1.363-3.709l.229-.174-1.009-1.156-.06-.078c-.477-.698.537-1.542 1.134-.867l1.038 1.193.085.107.085.126c.561-.145 1.148-.145 1.664.016l1.256-1.438.084-.084c.278-.24.647-.217.919.025Zm-7.452 8.925c-2.292 3.752.156 9.566 4.387 9.549 4.161.018 6.596-5.608 4.495-9.363l-.11-.19c-1.885-3.649-6.89-3.652-8.772.004Zm3.6-5.973c-.737.297-1.284.996-1.517 1.814a2.898 2.898 0 0 0-.057.32l-.011.107.244-.1a5.969 5.969 0 0 1 4.255 0l.193.08-.006-.082c-.163-1.596-1.703-2.734-3.1-2.139Z\",\n fill: \"#264D6D\",\n fillRule: \"nonzero\",\n stroke: \"#264D6D\",\n strokeWidth: 0.1\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgVulnerabilities, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/vulnerabilities.bc957e73.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgTasksIcon = function SvgTasksIcon(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 18,\n viewBox: \"0 0 18 18\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#264D6D\",\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.92 3.358h10.153c.506 0 .927-.42.927-.924a.934.934 0 0 0-.927-.925H8.92a.934.934 0 0 0-.927.925c0 .504.422.924.927.924ZM4.516.3l-2.08 2.262-.777-.845a.928.928 0 0 0-1.324-.043.917.917 0 0 0-.042 1.311l1.45 1.587c.168.19.42.296.672.296a.904.904 0 0 0 .672-.296l2.774-3.004A.917.917 0 0 0 5.82.257c-.357-.36-.946-.338-1.303.042ZM19.094 8.077H8.92a.934.934 0 0 0-.927.925c0 .504.422.924.927.924h10.154c.506 0 .927-.42.927-.924s-.4-.925-.906-.925ZM4.516 6.867l-2.08 2.264-.777-.846a.928.928 0 0 0-1.324-.043.917.917 0 0 0-.042 1.311l1.45 1.587c.168.19.42.296.672.296a.904.904 0 0 0 .672-.296l2.774-3.004a.917.917 0 0 0-.042-1.311c-.357-.36-.946-.339-1.303.042ZM19.094 14.645H8.92a.934.934 0 0 0-.927.925c0 .504.422.924.927.924h10.154c.506 0 .927-.42.927-.924s-.4-.925-.906-.925ZM4.49 13.417 2.406 15.69l-.78-.849a.93.93 0 0 0-1.327-.042c-.38.36-.4.955-.042 1.316l1.454 1.593a.906.906 0 0 0 .674.297.906.906 0 0 0 .674-.297l2.802-2.994a.921.921 0 0 0-.042-1.317.949.949 0 0 0-1.327.021Z\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgTasksIcon, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/tasks_icon.ba912fa5.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgReports = function SvgReports(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n className: \"reports\",\n width: 15,\n height: 21,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.586.193a1.97 1.97 0 0 1 1.702 0c.513.235.925.65 1.157 1.17h1.852a.571.571 0 0 1 .532.597v.574h2.315c.48.024.857.426.856.912v12.077a.53.53 0 0 1-.104.293L10.429 20.8a.53.53 0 0 1-.417.199H.858a.887.887 0 0 1-.625-.293.907.907 0 0 1-.232-.655V3.446a.908.908 0 0 1 .822-.83h2.315v-.574a.571.571 0 0 1 .532-.597h1.759A2.33 2.33 0 0 1 6.586.193ZM3.138 3.996H1.714a.403.403 0 0 0-.28.137.412.412 0 0 0-.102.296v14.687a.42.42 0 0 0 .382.433H9.26v-4.143a.66.66 0 0 1 .173-.47.645.645 0 0 1 .452-.209h3.784V4.43a.412.412 0 0 0-.102-.296.403.403 0 0 0-.28-.137h-1.4v.62a.898.898 0 0 1-.799.902h-7.06a.896.896 0 0 1-.89-.901v-.62Zm9.42 12.1h-2.06v2.341l2.06-2.34Zm-.421-5.47c.27 0 .49.22.49.49v.19c0 .271-.22.49-.49.49H2.864a.49.49 0 0 1-.49-.49v-.19c0-.27.22-.49.49-.49h9.273Zm0-2.328c.27 0 .49.22.49.49v.19c0 .27-.22.49-.49.49H2.864a.49.49 0 0 1-.49-.49v-.19c0-.27.22-.49.49-.49h9.273ZM7.674 1.457a.838.838 0 0 0-.683.152 1.044 1.044 0 0 0-.393.667l-.035.328a.221.221 0 0 1-.22.21h-1.91v1.253h6.134V2.86H8.693a.221.221 0 0 1-.22-.21l-.07-.375a.98.98 0 0 0-.729-.82Z\",\n fill: \"#264D6D\",\n fillRule: \"nonzero\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgReports, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/reports.f38dca7f.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgAnalytics = function SvgAnalytics(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.449 0c.35 0 .64.261.686.6l.006.093v17.711c0 .351-.26.64-.599.687l-.094.006h-4.427l-.023-.002-.022.002H.693a.693.693 0 0 1-.687-.599L0 18.404v-4.427c0-.351.26-.64.599-.687l.094-.006h3.734l.001-3.735c0-.316.211-.582.5-.666l.099-.02.094-.007h3.733l.001-3.735c0-.316.211-.582.5-.666l.099-.02.094-.007h3.779l.001-3.735c0-.316.21-.582.5-.666l.099-.02L14.02 0h4.428ZM4.427 14.668H1.385v3.042h3.042v-3.042Zm4.428-4.428H5.813v7.47h3.042v-7.47Zm4.427-4.427H10.24V17.71h3.042V5.813Zm4.473-4.427h-3.042V17.71h3.042V1.386Z\",\n fill: \"#264D6D\",\n fillRule: \"nonzero\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgAnalytics, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/analytics.b5f3011a.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconUsers = function SvgIconUsers(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.234 9.849c.163-.353.26-.741.26-1.155a2.768 2.768 0 0 0-5.535 0 2.767 2.767 0 0 0 1.368 2.376c.422.254.905.39 1.398.392.512 0 .987-.148 1.399-.392.486-.284.873-.71 1.11-1.221Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.914 10.573a4.21 4.21 0 0 1-.455-1.878 4.272 4.272 0 0 1 4.267-4.268 4.273 4.273 0 0 1 4.268 4.268 4.21 4.21 0 0 1-.455 1.878 6.615 6.615 0 0 1 2.671 4.203 8.183 8.183 0 0 0 1.742-5.05 8.227 8.227 0 0 0-16.452 0c0 1.906.654 3.656 1.743 5.05a6.6 6.6 0 0 1 2.671-4.203Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.653 11.784a4.241 4.241 0 0 1-2.927 1.178 4.24 4.24 0 0 1-2.927-1.178 5.085 5.085 0 0 0-2.174 4.167c0 .082.02.157.024.238a8.185 8.185 0 0 0 5.077 1.762 8.18 8.18 0 0 0 5.077-1.763c.004-.08.024-.156.024-.237 0-1.66-.813-3.216-2.174-4.167Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.726 0C4.363 0 0 4.363 0 9.726c0 2.852 1.242 5.414 3.204 7.194a9.665 9.665 0 0 0 13.044 0c1.962-1.78 3.204-4.342 3.204-7.194C19.452 4.363 15.088 0 9.726 0Zm0 17.951a8.187 8.187 0 0 1-5.077-1.762c-.004-.081-.024-.156-.024-.238 0-1.726.862-3.244 2.174-4.167a4.24 4.24 0 0 0 2.927 1.178 4.24 4.24 0 0 0 2.927-1.178 5.085 5.085 0 0 1 2.174 4.167c0 .081-.021.157-.024.237a8.188 8.188 0 0 1-5.077 1.763ZM6.958 8.694a2.768 2.768 0 1 1 5.535 0c0 .414-.097.802-.26 1.155-.237.51-.624.937-1.109 1.221-.423.254-.906.39-1.399.392-.513 0-.987-.148-1.398-.392a2.761 2.761 0 0 1-1.109-1.221 2.741 2.741 0 0 1-.26-1.155Zm6.581 1.879a4.21 4.21 0 0 0 .455-1.878 4.273 4.273 0 0 0-4.268-4.268 4.272 4.272 0 0 0-4.268 4.267c0 .677.173 1.309.455 1.878a6.607 6.607 0 0 0-2.671 4.203A8.179 8.179 0 0 1 1.5 9.725a8.226 8.226 0 0 1 16.452 0c0 1.83-.612 3.61-1.742 5.05a6.617 6.617 0 0 0-2.671-4.202Z\",\n fill: \"#264D6D\",\n fillRule: \"nonzero\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconUsers, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon_users.0781ec97.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgFaradayLogoNav = function SvgFaradayLogoNav(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 27,\n height: 35,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#0082ED\",\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.985 13.142H3.168l-1.239 8.716h8.678zM13.224 4.427H4.546l-1.378 8.715h8.817zM9.918 26.285H1.24L0 35h8.679z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.296 17.569H2.617L1.24 26.285h8.678zM12.536 8.854H3.857l-1.24 8.715h8.679zM18.184 0H9.505l-1.24 8.854h8.679z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27 0h-8.816l-1.24 8.854h8.678z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.224 4.427h4.409L18.184 0h-4.271zM21.903 4.427h4.408L27 0h-4.408z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.184 0H9.505l-1.24 8.854h8.679z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.633 4.427H8.816l-1.239 8.715h8.678zM27 0h-4.408l-1.378 8.854h4.408z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.903 4.427h4.408L27 0h-4.408z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.903 4.427 22.592 0h-4.408l-.551 4.427zM15.015 21.858H6.337l-1.378 8.853h8.679z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m9.918 26.285.689-4.427h-4.27l-.689 4.427z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.959 30.711h4.408l.551-4.426h-4.27zM0 35h4.27l.689-4.289H.689z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m1.24 26.285-.551 4.426h4.27l.689-4.426zM16.255 13.142H7.577l-1.24 8.716h8.678z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.903 13.142h-5.648l-1.24 8.716h5.648z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.015 21.858h5.511l.688-4.289h-5.648z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m19.286 21.858.688-4.289h-4.408l-.551 4.289z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m11.296 17.569-.689 4.289h4.408l.551-4.289z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m11.985 13.142-.689 4.427h8.678l.689-4.427z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m19.974 17.569.689-4.427h-4.408l-.689 4.427z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m11.985 13.142-.689 4.427h4.27l.689-4.427zM9.918 26.285h4.409l.688-4.427h-4.408zM17.633 4.427H8.816l-1.239 8.715h8.678z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.265 8.854h8.679l.689-4.427H8.816zM5.648 26.285l.689-4.427H1.929l-.689 4.427z\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgFaradayLogoNav, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/faraday-logo-nav.8385ead1.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport get from 'lodash/get';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\n\nimport { ReactComponent as Dashboard } from 'Images/activity-dashboard.svg';\nimport { ReactComponent as Assets } from 'Images/assets.svg';\nimport { ReactComponent as Automation } from 'Images/automation.svg';\nimport { ReactComponent as Vulnerabilities } from 'Images/vulnerabilities.svg';\nimport { ReactComponent as Planner } from 'Images/tasks_icon.svg';\nimport { ReactComponent as Reports } from 'Images/reports.svg';\nimport { ReactComponent as Analytics } from 'Images/analytics.svg';\nimport { ReactComponent as Users } from 'Images/icon_users.svg';\n\nimport FFAnalytics from 'Images/ff_analytics.png';\nimport FFPlanner from 'Images/ff_planner.png';\nimport FFReports from 'Images/ff_reporting.png';\nimport FFScheduler from 'Images/ff_scheduler.png';\nimport FFPipelines from 'Images/ff_pipelines.png';\nimport FFUsers from 'Images/ff_users.png';\n\nexport const selectIsOpen = (state) => get(state, 'sideBar.isOpen', false);\nexport const selectPagesData = (state) => {\n const ws = selectCurrentWorkspace(state);\n\n return [\n {\n name: 'Activity Dashboard',\n icon: ,\n subMenu: [\n {\n name: 'Activity Dashboard',\n url: `/feed/${ws}`,\n enabledByRole: true,\n enabledByFeature: true\n }\n ]\n },\n {\n name: 'Vulnerabilities',\n icon: ,\n subMenu: [\n {\n name: 'Manage',\n url: `/manage/${ws}`,\n enabledByRole: true,\n enabledByFeature: true\n },\n {\n name: 'Vuln Templates (KB)',\n url: '/knowledge_base',\n enabledByRole: true,\n enabledByFeature: true\n }\n ]\n },\n {\n name: 'Assets',\n icon: ,\n subMenu: [\n {\n name: 'Assets',\n url: `/host/${ws}`,\n enabledByRole: true,\n enabledByFeature: true\n }\n ]\n },\n {\n name: 'Analytics',\n icon: ,\n subMenu: [\n {\n name: 'Analytics',\n url: null,\n enabledByRole: true,\n enabledByFeature: false,\n FF: {\n image: FFAnalytics,\n description: 'upgradeLicense.sidebar.analytics.description'\n }\n }\n ]\n },\n {\n name: 'Planner',\n icon: ,\n subMenu: [\n {\n name: 'Planner',\n url: null,\n enabledByRole: true,\n enabledByFeature: false,\n FF: {\n image: FFPlanner,\n description: 'upgradeLicense.sidebar.planner.description'\n }\n }\n ]\n },\n {\n name: 'Reports',\n icon: ,\n subMenu: [\n {\n name: 'Reports',\n url: null,\n enabledByRole: true,\n enabledByFeature: false,\n FF: {\n image: FFReports,\n description: 'upgradeLicense.sidebar.reporting.description'\n }\n }\n ]\n },\n {\n name: 'Automation',\n icon: ,\n subMenu: [\n {\n name: 'Agents',\n url: '/automation/agents',\n enabledByRole: true,\n enabledByFeature: true\n },\n {\n name: 'Scheduler',\n url: null,\n enabledByRole: true,\n enabledByFeature: false,\n FF: {\n image: FFScheduler,\n description: 'upgradeLicense.sidebar.scheduler.description'\n }\n },\n {\n name: 'Pipelines',\n url: null,\n enabledByRole: true,\n enabledByFeature: false,\n FF: {\n image: FFPipelines,\n description: 'upgradeLicense.sidebar.pipelines.description'\n }\n },\n {\n name: 'Jobs',\n url: null,\n enabledByRole: true,\n enabledByFeature: false,\n FF: {\n image: FFPipelines,\n description: 'upgradeLicense.sidebar.pipelines.description'\n }\n }\n ]\n },\n {\n name: 'Users',\n icon: ,\n subMenu: [\n {\n name: 'Users',\n url: null,\n enabledByRole: true,\n enabledByFeature: false,\n FF: {\n image: FFUsers,\n description: 'upgradeLicense.sidebar.users.description'\n }\n }\n ]\n }\n ];\n};\n","export const TOGGLE_SIDEBAR = 'TOGGLE_SIDEBAR';\nexport const SET_SIDEBAR = 'SET_SIDEBAR';\n\nexport const toggleSideBar = () => ({ type: TOGGLE_SIDEBAR });\nexport const setSideBarOpen = (isOpen) => ({ type: SET_SIDEBAR, isOpen });\n","import { useEffect, useRef } from 'react';\n\nconst useMouseHover = (onMouseEnter, onMouseLeave, delay = 500) => {\n const mouseEnterTimer = useRef(null);\n const mouseLeaveTimer = useRef(null);\n\n const mouseLeaveDebounced = () => {\n clearTimeout(mouseEnterTimer.current);\n mouseLeaveTimer.current = (setTimeout(() => {\n onMouseLeave();\n }, delay));\n };\n\n const mouseEnterDebounced = () => {\n clearTimeout(mouseLeaveTimer.current);\n mouseEnterTimer.current = (setTimeout(() => {\n onMouseEnter();\n }, delay));\n };\n\n const cancelEvent = () => {\n if (mouseEnterTimer.current) clearTimeout(mouseEnterTimer.current);\n if (mouseLeaveTimer.current) clearTimeout(mouseLeaveTimer.current);\n };\n\n useEffect(() => () => cancelEvent(), []);\n\n return [mouseEnterDebounced, mouseLeaveDebounced];\n};\n\nexport default useMouseHover;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n width: 192px;\n background-color: #ffffff;\n position: absolute;\n top: 0;\n right: -192px;\n text-align: left;\n padding: 8px 0;\n z-index: 99;\n\n border-radius: 3px;\n box-shadow: 0 2px 50px 0 rgba(28, 34, 67, 0.1);\n`;\n\nexport const SideBarSubMenuItem = styled.div`\n display: flex;\n cursor: pointer;\n height: 34px;\n padding-left: 23px;\n align-items: center;\n font-size: 13.5px;\n ${({ selected }) => selected && 'font-weight: 600;'}\n\n &:hover {\n background-color: #d9e4ef;\n }\n\n`;\n\nexport const SubMenuHeader = styled(SideBarSubMenuItem)`\n background-color: #63758d;\n color: #fafbfc;\n font-weight: bold;\n margin-top: -8px;\n cursor: default;\n \n &:hover {\n background-color: #63758d;\n }\n`;\n","import React from 'react';\nimport { redirect } from 'store/Router/actions';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { PropTypes } from 'prop-types';\nimport { selectLocation } from 'store/Router/selectors';\nimport { Wrapper, SideBarSubMenuItem, SubMenuHeader } from './styled';\n\nconst SideBarSubMenu = ({ items, name, showFF }) => {\n const dispatch = useDispatch();\n const location = useSelector(selectLocation);\n\n const hasMoreThanOneItem = items.length > 1;\n const isSelected = (loc) => location.pathname === loc;\n\n const onClick = (enabledByFeature, url, FF) => {\n if (enabledByFeature) dispatch(redirect(url));\n else showFF(FF);\n };\n\n return (\n \n { hasMoreThanOneItem && }\n { items.map(({ name, url, enabledByFeature, FF }) => onClick(enabledByFeature, url, FF) } selected={ isSelected(url) } key={ name } children={ name } />)}\n \n );\n};\n\nSideBarSubMenu.propTypes = {\n items: PropTypes.array.isRequired,\n name: PropTypes.string.isRequired\n};\n\nexport default SideBarSubMenu;\n","import styled from 'styled-components';\nimport { slideInRight } from 'Styles/effects';\n\nconst Text = styled.div`\n display: flex;\n padding-left: 58px;\n font-size: 15px;\n color: #264d6d;\n height: 42px;\n align-items: center;\n cursor: pointer;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n ${slideInRight}\n\n &:hover {\n background-color: #d9e4ef;\n }\n \n ${({ selected }) => selected &&\n `\n background-color: #d9e4ef;\n font-weight: 600;\n `}\n`;\n\nexport default Text;\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { PropTypes } from 'prop-types';\nimport { selectLocation } from 'store/Router/selectors';\nimport { redirect } from 'store/Router/actions';\nimport Text from './styled';\n\nconst SubPage = ({ name, url, enabledByFeature, FF, showFF }) => {\n const dispatch = useDispatch();\n const location = useSelector(selectLocation);\n const isSelected = (loc) => location.pathname === loc;\n\n const onClick = () => {\n if (enabledByFeature) dispatch(redirect(url));\n else showFF(FF);\n };\n\n return ;\n};\n\nSubPage.propTypes = {\n name: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired\n};\n\nexport default SubPage;\n","import styled from 'styled-components';\nimport { slideInRight } from 'Styles/effects';\n\nexport const ItemWrapper = styled.div`\n width: 100%;\n height: 42px;\n display: flex;\n align-items: center;\n padding-left: 23px;\n cursor: pointer;\n \n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover {\n background-color: #d9e4ef;\n }\n\n\n \n ${({ selected }) => selected && `\n background-color: #d9e4ef;\n `}\n`;\n\nexport const Wrapper = styled.div`\n position: relative;\n`;\n\nexport const Text = styled.div`\n margin-left: 13px;\n font-size: 15px;\n color: #264d6d;\n width: auto;\n ${slideInRight}\n \n ${({ selected }) => selected &&\n `\n font-weight: 600;\n `}\n`;\n\nexport const Icon = styled.div`\n width: 22px;\n display: flex;\n justify-content: center;\n &:not(.reports) svg {\n width: 22px;\n }\n .reports {\n margin-left: 3px;\n }\n`;\n","import React, { useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectIsOpen } from 'store/SideBar/selector';\nimport { selectLocation } from 'store/Router/selectors';\nimport useMouseHover from 'Hooks/useMouseHover';\nimport { redirect } from 'store/Router/actions';\nimport SideBarSubMenu from '../SideBarSubMenu';\nimport SubPage from '../SubPage';\nimport {\n Wrapper, Text, Icon, ItemWrapper\n} from './styled';\nimport get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\n\nconst SideBarItem = ({ icon, name, subMenu, showFF }) => {\n const dispatch = useDispatch();\n const isOpen = useSelector(selectIsOpen);\n const location = useSelector(selectLocation);\n const [showMenu, setShowMenu] = useState(false);\n const onHide = () => setShowMenu(false);\n const onShow = () => setShowMenu(true);\n const [mouseEnterDebounced, mouseLeaveDebounced] = useMouseHover(onShow, onHide);\n\n const hasSelectedItem = subMenu.some(({ url }) => url === location.pathname);\n const hasOneChild = subMenu.length === 1;\n const canShowMenu = showMenu && (((isOpen && !hasOneChild && !hasSelectedItem) || !isOpen));\n const canShowSubPages = (isOpen && hasSelectedItem && !hasOneChild);\n\n const enabledItems = subMenu.filter((item) => get(item, 'enabledByRole', false));\n\n const selectFirst = () => {\n const enabledByFeature = get(enabledItems, '[0].enabledByFeature', false);\n if (enabledByFeature) {\n const url = get(enabledItems, '[0].url', '');\n dispatch(redirect(url));\n } else {\n const FF = get(enabledItems, '[0].FF', {});\n showFF(FF);\n }\n };\n\n if (isEmpty(enabledItems)) return null;\n return (\n \n \n \n { isOpen && }\n \n { canShowMenu && }\n { canShowSubPages && enabledItems.map(({ name, url, enabledByFeature, FF }) => ) }\n \n );\n};\n\nexport default SideBarItem;\n","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgFaradayLogoProduct = function SvgFaradayLogoProduct(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 130,\n height: 35,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fillRule: \"nonzero\",\n fill: \"none\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#0082ED\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.985 13.142H3.168l-1.239 8.716h8.678zM13.224 4.427H4.546l-1.378 8.715h8.817zM9.918 26.285H1.24L0 35h8.679z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.296 17.569H2.617L1.24 26.285h8.678zM12.536 8.854H3.857l-1.24 8.715h8.679zM18.184 0H9.505l-1.24 8.854h8.679z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27 0h-8.816l-1.24 8.854h8.678z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.224 4.427h4.409L18.184 0h-4.271zM21.903 4.427h4.408L27 0h-4.408z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.184 0H9.505l-1.24 8.854h8.679z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.633 4.427H8.816l-1.239 8.715h8.678zM27 0h-4.408l-1.378 8.854h4.408z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.903 4.427h4.408L27 0h-4.408z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.903 4.427 22.592 0h-4.408l-.551 4.427zM15.015 21.858H6.337l-1.378 8.853h8.679z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m9.918 26.285.689-4.427h-4.27l-.689 4.427z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.959 30.711h4.408l.551-4.426h-4.27zM0 35h4.27l.689-4.289H.689z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m1.24 26.285-.551 4.426h4.27l.689-4.426zM16.255 13.142H7.577l-1.24 8.716h8.678z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.903 13.142h-5.648l-1.24 8.716h5.648z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.015 21.858h5.511l.688-4.289h-5.648z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m19.286 21.858.688-4.289h-4.408l-.551 4.289z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m11.296 17.569-.689 4.289h4.408l.551-4.289z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m11.985 13.142-.689 4.427h8.678l.689-4.427z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m19.974 17.569.689-4.427h-4.408l-.689 4.427z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m11.985 13.142-.689 4.427h4.27l.689-4.427zM9.918 26.285h4.409l.688-4.427h-4.408zM17.633 4.427H8.816l-1.239 8.715h8.678z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.265 8.854h8.679l.689-4.427H8.816zM5.648 26.285l.689-4.427H1.929l-.689 4.427z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#0B2633\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.094 15.207h10.852v2.321h-7.952v4.642h7.203v2.321h-7.203v6.499H37V15.207zM54.963 18.364c1.122 0 2.058.185 2.9.557a3.718 3.718 0 0 1 1.777 1.578l.094-1.95h2.62V30.99h-2.62l-.094-1.95c-.748 1.486-2.339 2.136-4.677 2.136-1.123 0-2.152-.279-2.994-.836-.936-.557-1.684-1.3-2.152-2.32-.561-1.022-.842-2.043-.842-3.343 0-1.207.28-2.321.842-3.342.561-1.022 1.216-1.764 2.152-2.321.935-.372 1.87-.65 2.994-.65Zm.748 10.49c1.123 0 2.058-.37 2.807-1.113.748-.743 1.122-1.764 1.122-2.878s-.374-2.136-1.122-2.878c-.749-.743-1.684-1.115-2.807-1.115s-2.058.372-2.807 1.115c-.748.742-1.122 1.764-1.122 2.878s.374 2.135 1.122 2.878c.749.743 1.684 1.114 2.807 1.114ZM64.599 18.55h2.62l.093 1.67c.561-.742 1.216-1.206 1.87-1.392.656-.279 1.591-.372 2.808-.372v2.322c-1.497 0-2.62.37-3.368 1.114-.842.742-1.217 1.67-1.217 2.878v6.22H64.6V18.55ZM78.351 18.364c1.123 0 2.058.185 2.9.557a3.718 3.718 0 0 1 1.778 1.578l.094-1.95h2.62V30.99h-2.62l-.094-1.95c-.748 1.486-2.339 2.136-4.678 2.136-1.122 0-2.152-.279-2.993-.836-.936-.557-1.684-1.3-2.152-2.32-.562-1.022-.842-2.043-.842-3.343 0-1.207.28-2.321.842-3.342.561-1.022 1.216-1.764 2.152-2.321a7.468 7.468 0 0 1 2.993-.65Zm.749 10.49c1.122 0 2.058-.37 2.806-1.113.749-.743 1.123-1.764 1.123-2.878s-.374-2.136-1.123-2.878c-.748-.743-1.684-1.115-2.806-1.115-1.123 0-2.059.372-2.807 1.115-.748.742-1.123 1.764-1.123 2.878s.375 2.135 1.123 2.878c.748.743 1.684 1.114 2.807 1.114ZM93.414 18.364c1.122 0 2.058.185 2.9.557a3.718 3.718 0 0 1 1.777 1.578V14h2.807v16.99h-2.62l-.093-1.95c-.749 1.486-2.339 2.136-4.678 2.136-1.123 0-2.152-.279-2.994-.836-.935-.557-1.684-1.3-2.151-2.32-.562-1.022-.842-2.043-.842-3.343 0-1.207.28-2.321.842-3.342.561-1.022 1.216-1.764 2.151-2.321.749-.372 1.778-.65 2.9-.65Zm-2.059 9.377c.749.743 1.684 1.114 2.807 1.114s2.058-.371 2.807-1.114c.748-.743 1.122-1.764 1.122-2.878s-.374-2.136-1.122-2.878c-.749-.743-1.684-1.115-2.807-1.115s-2.058.372-2.807 1.115c-.748.742-1.122 1.764-1.122 2.878s.374 2.042 1.122 2.878ZM108.476 18.364c1.123 0 2.058.185 2.9.557a3.718 3.718 0 0 1 1.778 1.578l.093-1.95h2.62V30.99h-2.62l-.093-1.95c-.749 1.486-2.34 2.136-4.678 2.136-1.123 0-2.152-.279-2.994-.836-.935-.557-1.684-1.3-2.152-2.32-.56-1.022-.842-2.043-.842-3.343 0-1.207.281-2.321.842-3.342.562-1.022 1.217-1.764 2.152-2.321a7.468 7.468 0 0 1 2.994-.65Zm.748 10.49c1.123 0 2.059-.37 2.807-1.113.748-.743 1.123-1.764 1.123-2.878s-.375-2.136-1.123-2.878c-.748-.743-1.684-1.115-2.807-1.115-1.122 0-2.058.372-2.806 1.115-.749.742-1.123 1.764-1.123 2.878s.374 2.135 1.123 2.878c.748.743 1.684 1.114 2.806 1.114ZM126.813 18.55h2.993l-4.864 12.255c-.655 1.578-1.497 2.6-2.526 3.342-1.03.65-2.433.928-4.21.836l-.187-2.043c2.151 0 3.368-.557 3.648-1.764l-4.865-12.627h3.088l3.461 10.12 3.462-10.12Z\"\n })))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgFaradayLogoProduct, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/faraday_logo_product.57beba14.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgLaquo = function SvgLaquo(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 11,\n height: 10,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#63758D\",\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.55.22c.233-.293.61-.293.84 0l.561.707a.89.89 0 0 1 0 1.06L2.56 5l2.392 3.013a.89.89 0 0 1 0 1.06l-.56.707c-.234.293-.61.293-.842 0L.175 5.528c-.233-.287-.233-.762 0-1.056L3.549.22ZM9.423.22c.233-.293.61-.293.841 0l.561.707a.89.89 0 0 1 0 1.06L8.433 5l2.392 3.013a.89.89 0 0 1 0 1.06l-.56.707c-.234.293-.611.293-.842 0L6.05 5.528c-.234-.287-.234-.762 0-1.056L9.423.22Z\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgLaquo, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/laquo.d5f6e3f8.svg\";\nexport { ForwardRef as ReactComponent };","import styled, { keyframes } from 'styled-components';\nimport { ReactComponent as ShortLogo } from 'Images/faraday-logo-nav.svg';\nimport { ReactComponent as LongLogo } from 'Images/faraday_logo_product.svg';\nimport { ReactComponent as _Arrow } from 'Images/laquo.svg';\nimport SideBarItem from './components/SideBarItem';\n\nexport const Wrapper = styled.div`\n grid-row: 1/-1;\n grid-column: 1/2;\n background-color: #edf2f7;\n width: ${({ open }) => (open ? 240 : 68)}px;\n height: 100vh;\n display: flex;\n flex-direction: column;\n transition: width .2s linear;\n`;\n\nexport const CompressedLogo = styled(ShortLogo)`\n margin: 20px 0 0 23px;\n`;\n\nexport const FullLogo = styled(LongLogo)`\n margin: 20px 0 0px 23px;\n`;\n\nexport const Logo = styled.div`\n display: flex;\n align-items: flex-end;\n margin-bottom: 26px;\n`;\n\nexport const ToggleItem = styled(SideBarItem)`\n margin-top: auto;\n`;\n\nexport const Arrow = styled(_Arrow)`\n margin-top: auto;\n margin-left: 27px;\n margin-bottom: 23px;\n ${({ $isOpen }) => !$isOpen && 'transform: rotate(180deg)'};\n`;\n\nconst slideInRightKeyframes = keyframes`\n from { opacity: 0; transform: translate3d(-30px, 0, 0);}\n to { opacity: 1; transform: translate3d(0, 0, 0); }\n`;\n\nexport const LogoText = styled.div`\n margin-left: 13px;\n font-weight: 600;\n font-size: 18px;\n letter-spacing: .5px;\n animation: ${slideInRightKeyframes} 0.25s forwards ease;\n`;\n","import styled from 'styled-components';\nimport { fadeIn } from 'Styles/effects';\nimport colors from 'Styles/colors';\n\nconst ModalWrapper = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background: rgb(25, 25, 25, 0.4);\n z-index: 500;\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n & > :first-child {\n border-radius: 2px 2px 0 0;\n overflow: auto;\n max-height: 85%;\n background: ${colors.white};\n }\n ${fadeIn(0, 1)}\n`;\nModalWrapper.displayName = 'ModalWrapper';\n\nexport default ModalWrapper;\n","import React from 'react';\nimport useKeypress from 'Hooks/useEscKey';\nimport { closeModal } from 'store/modals/actions';\nimport selectModal from 'store/modals/selectors';\nimport { useDispatch, useSelector } from 'react-redux';\nimport ModalWrapper from './styled';\n\nconst ReduxModal = ({ children, id }) => {\n const dispatch = useDispatch();\n const showModal = useSelector((state) => selectModal(state, id));\n\n useKeypress('Escape', () => {\n dispatch(closeModal(id));\n }, [id]);\n\n if (!showModal) return null;\n\n return (\n \n { children }\n \n );\n};\n\nexport default ReduxModal;\n","import React, { useState, useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { redirect } from 'store/Router/actions';\nimport { selectIsOpen, selectPagesData } from 'store/SideBar/selector';\nimport { toggleSideBar, setSideBarOpen } from 'store/SideBar/actions';\nimport { selectApiVersion } from 'store/Faraday/selectors';\nimport SideBarItem from './components/SideBarItem';\nimport {\n Wrapper,\n CompressedLogo,\n Logo,\n FullLogo,\n Arrow\n} from './styled';\nimport { openModal } from 'store/modals/actions';\nimport { MODAL_UPGRADE_LICENSE_SIDEBAR } from 'store/modals/modals';\nimport selectTourFinished from 'store/Preferences/Tour/selectors';\nimport ReduxModal from 'Common/Components/ReduxModal';\nimport UpgradeLicense from 'Common/Components/UpgradeLicense';\n\nconst SideBar = () => {\n const [FFImage, setFFImage] = useState(null);\n const [FFDescription, setFFDescription] = useState('');\n const dispatch = useDispatch();\n const isOpen = useSelector(selectIsOpen);\n const pages = useSelector(selectPagesData);\n const apiVersion = useSelector(selectApiVersion);\n const frontVersion = process.env.REACT_APP_VERSION;\n const toggleOpen = () => dispatch(toggleSideBar());\n const tourFinished = useSelector((state) => selectTourFinished(state));\n\n useEffect(() => {\n if (!tourFinished) dispatch(setSideBarOpen(!tourFinished));\n }, [dispatch, tourFinished]);\n\n const showFF = (FF) => {\n setFFImage(FF.image);\n setFFDescription(FF.description);\n dispatch(openModal(MODAL_UPGRADE_LICENSE_SIDEBAR));\n };\n\n return (\n \n \n \n \n dispatch(redirect('/workspaces')) } open={ isOpen }>\n {isOpen\n ? \n : }\n \n {pages.map(({\n icon, name, subMenu\n }) => )}\n \n \n );\n};\n\nexport default SideBar;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n user-select: none;\n border-radius: 5px;\n position: absolute;\n background-color: white;\n width: 550px;\n right: 28px;\n bottom: 31px;\n box-shadow: 0 2px 50px 0 rgba(0, 0, 0, 0.24);\n z-index: 2000;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n border-top: none;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n border: 1px solid #eff3f7;\n max-height: 182px;\n overflow-y: auto;\n & > *:not(:last-child) {\n border-bottom: 1px solid #eff3f7;\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const FileWrapper = styled.div`\n display: flex;\n flex-direction: row;\n height: 45px;\n align-items: center;\n width: 100%;\n padding: 10px 25px;\n & > *:not(:last-child) {\n margin-right: 5px;\n }\n`;\nFileWrapper.displayName = 'FileWrapper';\n\nexport const FileName = styled.div`\n flex: 1 1 0px;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n color: ${colors.dark2};\n font-size: 14px;\n`;\nFileName.displayName = 'FileName';\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n align-items: center;\n display: flex;\n flex-direction: row;\n flex: 0 0 300px;\n height: 25px;\n overflow: hidden;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Label = styled.div`\n color: #90a9c0;\n flex: 0 0 auto;\n font-size: 14px;\n font-weight: 300;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\nLabel.displayName = 'Label';\n","import styled from 'styled-components';\nimport { Label } from '../styled';\n\nexport const StyledLabel = styled(Label)``;\nStyledLabel.displayName = 'StyledLabel';\n\nexport const LoadingIcon = styled.img`\n border-radius: 3px;\n height: 5px;\n`;\nLoadingIcon.displayName = 'LoadingIcon';\n\nexport const LoadingWrapper = styled.div`\n align-items: center;\n border-radius: 3px;\n display: flex;\n flex: 1 1 0;\n height: 25px;\n margin-left: 30px;\n`;\nLoadingWrapper.displayName = 'LoadingWrapper';\n","var _g, _polygon;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconToolbarConfirmedOn = function SvgIconToolbarConfirmedOn(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 33 33\",\n style: {\n enableBackground: \"new 0 0 33 33\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"XMLID_10_\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"XMLID_11_\",\n fill: \"#488BE6\",\n cx: 16.6,\n cy: 16.5,\n r: 15.2\n }))), _polygon || (_polygon = /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"XMLID_5_\",\n fill: \"#FFFFFF\",\n points: \"8.8,17.5 14.5,23.2 25.3,12.4 22.7,9.8 14.4,17.9 11.3,14.8 \"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconToolbarConfirmedOn, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon-toolbar-confirmed-on.6c7a2996.svg\";\nexport { ForwardRef as ReactComponent };","/* eslint-disable react/jsx-key */\nimport React from 'react';\nimport { Wrapper } from '../styled';\nimport { StyledLabel, LoadingWrapper, LoadingIcon } from './styled';\nimport { useIntl } from 'react-intl';\nimport LoadingGif from 'Images/faraday_loadingbar.gif';\n\nconst Processing = () => {\n const intl = useIntl();\n return (\n \n \n } />\n \n );\n};\n\nexport default Processing;\n","import styled from 'styled-components';\nimport { ReactComponent as CheckMark } from 'Images/icon-toolbar-confirmed-on.svg';\nimport { Label } from '../styled';\n\nexport const StyledLabel = styled(Label)`\n color: #0082ec;\n margin-left: 10px;\n`;\nStyledLabel.displayName = 'StyledLabel';\n\nexport const CustomCheckMark = styled(CheckMark)`\n cursor: default;\n flex: 0 0 25px;\n height: 25px;\n `;\nCustomCheckMark.displayName = 'CustomCheckMark';\n","/* eslint-disable react/jsx-key */\nimport React from 'react';\nimport { Wrapper } from '../styled';\nimport { CustomCheckMark, StyledLabel } from './styled';\nimport { useIntl } from 'react-intl';\n\nconst FinishedOk = () => {\n const intl = useIntl();\n return (\n \n \n \n \n );\n};\n\nexport default FinishedOk;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as ErrorMark } from 'Images/error-mark.svg';\nimport { Label } from '../styled';\n\nexport const StyledLabel = styled(Label)`\n color: ${colors.redPink};\n margin-left: 10px;\n`;\nStyledLabel.displayName = 'StyledLabel';\n\nexport const CustomErrorMark = styled(ErrorMark)`\n cursor: default;\n flex: 0 0 25px;\n height: 25px;\n `;\nCustomErrorMark.displayName = 'CustomErrorMark';\n","/* eslint-disable react/jsx-key */\nimport React from 'react';\nimport { Wrapper } from '../styled';\nimport { CustomErrorMark, StyledLabel } from './styled';\nimport { useIntl } from 'react-intl';\n\nconst FinishedWithError = () => {\n const intl = useIntl();\n return (\n \n \n \n \n );\n};\n\nexport default FinishedWithError;\n","/* eslint-disable react/jsx-key */\nimport React from 'react';\nimport get from 'lodash/get';\nimport Processing from './components/Processing';\nimport FinishedOk from './components/FinishedOk';\nimport FinishedWithError from './components/FinishedWithError';\n\nconst Status = ({ file }) => {\n const finished = get(file, 'finished', false);\n const error = get(file, 'error', true);\n\n if (!finished) return ;\n if (error) return ;\n return ;\n};\n\nexport default Status;\n","/* eslint-disable react/jsx-key */\nimport React from 'react';\nimport { useSelector } from 'react-redux';\nimport { selectCommands } from 'store/FileUploaderContext/selector';\nimport { Wrapper, FileWrapper, FileName } from './styled';\nimport Status from './Status';\n\nconst Body = () => {\n const commands = useSelector(selectCommands);\n\n return (\n \n {commands.map((file) => (\n \n \n \n \n ))}\n \n );\n};\n\nexport default Body;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as CloseSVG } from 'Images/icon-close-without-background.svg';\nimport { ReactComponent as ArrowExpandedSVG } from 'Images/wf_arrow_expand.svg';\nimport { ReactComponent as ArrowCollapsedSVG } from 'Images/wf_arrow_collapsed.svg';\n\nexport const Wrapper = styled.div`\n ${({ isShowingBody }) => !isShowingBody && 'border-radius: 5px'};\n ${({ isShowingBody }) => isShowingBody && 'border-top-left-radius: 5px'};\n ${({ isShowingBody }) => isShowingBody && 'border-top-right-radius: 5px'};\n display: flex;\n align-items: center;\n justify-content: center;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background-color: ${colors.blueGrey};\n height: 45px;\n padding-left: 25px;\n padding-right: 25px;\n & > *:not(:last-child) {\n margin-right: 5px;\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const HeaderMessage = styled.div`\n flex: 1 1 0px;\n color: white;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\nHeaderMessage.displayName = 'HeaderMessage';\n\nexport const Close = styled(CloseSVG)`\n flex: 0 0 30px;\n height: 30px;\n cursor: pointer;\n margin: auto 0px auto auto;\n \n &:hover {\n background-color: ${colors.grey27} !important;\n border-radius: 50%;\n }\n path {\n fill: #fff;\n }\n`;\nClose.displayName = 'Close';\n\nexport const ArrowExpanded = styled(ArrowExpandedSVG)`\n padding: 5px;\n flex: 0 0 30px;\n height: 30px;\n cursor: pointer;\n margin: auto 0px auto auto;\n \n &:hover {\n background-color: ${colors.grey27} !important;\n border-radius: 50%;\n }\n path {\n fill: #fff;\n }\n`;\nArrowExpanded.displayName = 'ArrowExpanded';\n\nexport const ArrowCollapsed = styled(ArrowCollapsedSVG)`\n padding: 5px;\n flex: 0 0 30px;\n height: 30px;\n cursor: pointer;\n margin: auto 0px auto auto;\n \n &:hover {\n background-color: ${colors.grey27} !important;\n border-radius: 50%;\n }\n path {\n fill: #fff;\n }\n`;\nArrowCollapsed.displayName = 'ArrowCollapsed';\n","/* eslint-disable react/jsx-key */\nimport React from 'react';\nimport { useIntl } from 'react-intl';\nimport { useDispatch } from 'react-redux';\nimport { hideUploadContextMenu } from '../../actions';\nimport {\n Wrapper, HeaderMessage, Close, ArrowExpanded, ArrowCollapsed\n} from './styled';\n\nconst Header = ({ showBody, setShowBody }) => {\n const dispatch = useDispatch();\n const intl = useIntl();\n const toggleBodyVisibility = () => setShowBody(!showBody);\n\n return (\n \n \n {showBody ? : }\n dispatch(hideUploadContextMenu()) } />\n \n );\n};\n\nexport default Header;\n","/* eslint-disable react/jsx-key */\nimport React, { useState } from 'react';\nimport Wrapper from './styled';\nimport Body from './components/Body';\nimport Header from './components/Header';\n\nconst FileUploadContext = () => {\n const [showBody, setShowBody] = useState(true);\n\n return (\n \n
\n {showBody && }\n \n );\n};\n\nexport default FileUploadContext;\n","import { useEffect, useState } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { selectUnfinishedCommands } from 'store/FileUploaderContext/selector';\nimport { updateCommandsStatus } from 'Common/Components/FileUploadContext/actions';\nimport isEmpty from 'lodash/isEmpty';\n\nconst CommandValidator = () => {\n const dispatch = useDispatch();\n const [previousTimeout, setPreviousTimeout] = useState(null);\n const commands = useSelector(selectUnfinishedCommands);\n\n useEffect(() => {\n if (!isEmpty(commands) && !previousTimeout) {\n const timeout = setTimeout(() => {\n setPreviousTimeout(null);\n dispatch(updateCommandsStatus());\n }, 3000);\n setPreviousTimeout(timeout);\n }\n }, [commands, dispatch, previousTimeout]);\n\n return null;\n};\n\nexport default CommandValidator;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { Default, Accept } from 'Common/Components/Button/styled';\nimport { fadeIn } from 'Styles/effects';\n\nexport const Wrapper = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background: rgba(99, 117, 141, 0.5);\n z-index: 500;\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n & > :first-child {\n box-shadow: 18px 43px 50px 0 rgba(167, 167, 167, 0.5);\n border-radius: 2px 2px 0 0;\n overflow: auto;\n max-height: 85%;\n background: ${colors.white};\n }\n ${fadeIn(0, 1)}\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const ModalWrapper = styled.div`\n display: flex;\n flex-direction: column;\n min-width: 430px;\n width: 505px;\n background-color: #fff;\n padding: 34px;\n border-top-style: solid;\n border-top-width: 10px;\n border-top-color: ${colors.softBlue};\n`;\nModalWrapper.displayName = 'ModalWrapper';\n\nexport const Title = styled.div`\n font-size: 21.5px;\n font-weight: 600;\n color: ${colors.darkBlueGrey};\n line-height: 1.49;\n width: 100%;\n`;\nTitle.displayName = 'Title';\n\nexport const Message = styled.div`\n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.44;\n letter-spacing: normal;\n color: ${colors.greyBlue};\n margin-top: 17px;\n width: 100%;\n`;\nMessage.displayName = 'Message';\n\nexport const ButtonsWrapper = styled.div`\n width: 100%;\n margin-top: 34px;\n display: flex;\n & > *:not(:first-child) {\n margin-left: 8px;\n }\n`;\nButtonsWrapper.displayName = 'ButtonsWrapper';\n\nexport const Cancel = styled(Default)`\n width: 50%;\n`;\nCancel.displayName = 'Cancel';\n\nexport const Done = styled(Accept)`\n width: 50%;\n`;\nDone.displayName = 'Done';\n","import React from 'react';\nimport { PropTypes } from 'prop-types';\nimport {\n Wrapper, ModalWrapper, Title, Message, ButtonsWrapper, Cancel, Done\n} from './styled';\n\nconst ConfirmNavigationModal = ({\n title, message, onCancel, onDone, cancel, done\n}) => (\n \n \n { title }\n { message }\n \n { cancel }\n { done }\n \n \n \n);\n\nConfirmNavigationModal.propTypes = {\n title: PropTypes.string.isRequired,\n message: PropTypes.string.isRequired,\n onCancel: PropTypes.func.isRequired,\n onDone: PropTypes.func.isRequired,\n cancel: PropTypes.string.isRequired,\n done: PropTypes.string.isRequired\n};\n\nexport default ConfirmNavigationModal;\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport selectModal from 'store/modals/selectors';\nimport { MODAL_REDIRECT_CONFIRMATION } from 'store/modals/modals';\nimport { performRedirect, redirectClear, setHasPendingChanges } from 'store/Router/actions';\nimport { useIntl } from 'react-intl';\nimport ConfirmNavigationModal from 'Common/Components/ConfirmNavigationModal';\nimport { selectHasPendingChanges } from 'store/Global/selectors';\nimport { selectAction } from 'store/Router/selectors';\n\nconst RedirectModal = () => {\n const intl = useIntl();\n const dispatch = useDispatch();\n const hasPendingChanges = useSelector(selectHasPendingChanges);\n const action = useSelector(selectAction);\n const show = useSelector((state) => selectModal(state, MODAL_REDIRECT_CONFIRMATION));\n const onCancel = () => dispatch(redirectClear());\n const onDone = () => dispatch(performRedirect());\n const title = intl.formatMessage({ id: 'app.redirectWarning.title' });\n const message = intl.formatMessage({ id: 'app.redirectWarning.message' });\n const done = intl.formatMessage({ id: 'app.redirectWarning.leave' });\n const cancel = intl.formatMessage({ id: 'app.redirectWarning.stay' });\n\n useEffect(() => {\n if (action === 'POP') dispatch(setHasPendingChanges(false));\n }, [dispatch, action]);\n\n useEffect(() => {\n if (hasPendingChanges) window.onbeforeunload = () => true;\n else window.onbeforeunload = null;\n }, [hasPendingChanges]);\n\n if (!show || !hasPendingChanges) return null;\n return (\n \n );\n};\n\nexport default RedirectModal;\n","import styled from 'styled-components';\n\nexport const Content = styled.div`\n padding: 0 19px 18px 20px;\n grid-row: 2/3;\n overflow: auto;\n`;\nContent.displayName = 'Content';\n\nexport const Wrapper = styled.div`\n max-width: 1920px;\n min-width: 1250px;\n overflow: hidden;\n height: 100%;\n margin: 0 auto;\n display:grid;\n grid-template-rows: min-content 1fr;\n grid-template-columns: min-content minmax(0, 1fr);\n background-color: #fafbfc;\n`;\nWrapper.displayName = 'Wrapper';\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useEffect, useState } from 'react';\nimport './App.scss';\nimport './Styles/bootstrap.min.css';\nimport './Styles/styles.scss';\nimport { useDispatch, useSelector } from 'react-redux';\nimport Error from 'Screens/Error';\nimport { validateSession } from 'Screens/Login/actions/Actions';\nimport { selectLocation } from 'store/Router/selectors';\nimport { selectIsValidatingSession } from 'store/Sesion/selectors';\nimport { setUrlReturn } from 'Screens/Faraday/actions/Actions';\nimport NavMenu from 'Screens/NavMenu';\nimport SideBar from 'Screens/Sidebar';\n\nimport errorHandler from './Common/Handlers/ErrorHandler';\nimport FileUploadContext from './Common/Components/FileUploadContext';\nimport CommandValidator from './Common/Components/CommandValidator';\nimport RedirectModal from './Common/Components/RedirectModal';\nimport { Content, Wrapper } from './styled';\nimport { selectIsProcessingFiles } from 'store/FileUploaderContext/selector';\n\nconst App = ({ logOut, children }) => {\n const location = useSelector(selectLocation);\n const isValidatingSession = useSelector(selectIsValidatingSession);\n const showImportModal = useSelector(selectIsProcessingFiles);\n\n const dispatch = useDispatch();\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => {\n dispatch(setUrlReturn(location.pathname));\n dispatch(validateSession());\n errorHandler(logOut);\n setMounted(true);\n }, [dispatch]);\n\n if (!mounted || isValidatingSession) return null;\n\n return (\n \n \n \n \n { children }\n \n \n \n { showImportModal && }\n \n \n );\n};\n\nexport default App;\n","export default function errorHandler (logOut) {\n // En la mayoría de los casos es preferible no arrojar una excepción\n // ValidationFailedError para no superpoblar el log con validaciones de usuario.\n function ValidationFailedError (message) {\n this.name = 'ValidationFailedError';\n this.message = message || 'The validations of the operation were not overcome.';\n }\n ValidationFailedError.prototype = new Error();\n ValidationFailedError.prototype.constructor = ValidationFailedError;\n\n function NotifyFailedValidations (modelState, raiseError) {\n const errors = [];\n Object.keys(modelState).forEach((key) => {\n for (let i = 0; i < modelState[key].length; i += 1) {\n errors.push(modelState[key][i]);\n }\n });\n let userMessage = (new ValidationFailedError()).message;\n userMessage += ':\\n';\n userMessage += errors.toString();\n if (raiseError) {\n throw new ValidationFailedError(userMessage);\n } else {\n alert(userMessage);\n }\n }\n\n function BlockedOrRestrictedEndpointError (message) {\n this.name = 'BlockedOrRestrictedEndpointError';\n this.message = message || 'It is not possible to connect to the remote server. Check the availability of the Web API endpoint (if applicable) or the validity of a CORS restriction.';\n }\n BlockedOrRestrictedEndpointError.prototype = new Error();\n BlockedOrRestrictedEndpointError.prototype.constructor = BlockedOrRestrictedEndpointError;\n\n function ServerSideUnhandledExceptionError (message) {\n this.name = 'ServerSideUnhandledExceptionError';\n this.message = message || 'An unhandled exception occurred on the application server.';\n }\n ServerSideUnhandledExceptionError.prototype = new Error();\n ServerSideUnhandledExceptionError.prototype.constructor = ServerSideUnhandledExceptionError;\n\n function NotFoundError (message) {\n this.name = 'NotFoundError';\n this.message = message || 'Element not found to perform the requested operation.';\n }\n NotFoundError.prototype = new Error();\n NotFoundError.prototype.constructor = NotFoundError;\n\n function VerbNotAllowedOrMethodNotFoundError (message) {\n this.name = 'VerbNotAllowedOrMethodNotFoundError';\n this.message = message || 'Verb not allowed or the corresponding method of the controller does not have the parameters properly associated.';\n }\n VerbNotAllowedOrMethodNotFoundError.prototype = new Error();\n VerbNotAllowedOrMethodNotFoundError.prototype.constructor = VerbNotAllowedOrMethodNotFoundError;\n\n function ApplicationStoreMisconfiguredError (message) {\n this.name = 'ApplicationStoreMisconfiguredError';\n this.message = message || 'Application store was correctly configured or its configuration was discarded.';\n }\n ApplicationStoreMisconfiguredError.prototype = new Error();\n ApplicationStoreMisconfiguredError.prototype.constructor = ApplicationStoreMisconfiguredError;\n\n // Cambiar message\n function NotAuthorized (message) {\n this.name = 'NotAuthorized';\n this.message = message || '401 - Unauthorized.';\n }\n NotAuthorized.prototype = new Error();\n NotAuthorized.prototype.constructor = NotAuthorized;\n\n // Cambiar message\n function AccessDenied (message) {\n this.name = 'AccessDenied';\n this.message = message || '403 - Forbidden.';\n }\n AccessDenied.prototype = new Error();\n AccessDenied.prototype.constructor = AccessDenied;\n\n // Cambiar message\n function NotAcceptable (message) {\n this.name = 'NotAcceptable';\n this.message = message || '406 - Not Acceptable.';\n }\n NotAcceptable.prototype = new Error();\n NotAcceptable.prototype.constructor = NotAcceptable;\n\n window.onerror = function (column, errorObj) {\n if (errorObj.name) {\n if (column !== undefined || errorObj !== undefined) {\n switch (errorObj.name) {\n case NotifyFailedValidations.name: // 400\n alert((new NotifyFailedValidations()).message);\n break;\n\n case NotAuthorized.name: // 401\n alert('An error occurred in the operation due to lack of permissions. Contact the support staff.');\n logOut();\n break;\n\n case AccessDenied.name: // 403\n // If forbidden loggout the user\n logOut();\n break;\n\n case NotFoundError.name: // 404\n alert((new NotFoundError()).message);\n break;\n\n case VerbNotAllowedOrMethodNotFoundError.name: // 405\n alert((new VerbNotAllowedOrMethodNotFoundError()).message);\n break;\n\n case NotAcceptable.name: // 406\n alert((new NotAcceptable()).message);\n break;\n\n case ServerSideUnhandledExceptionError.name: // 500\n alert((new ServerSideUnhandledExceptionError()).message);\n break;\n\n case ValidationFailedError.name:\n alert((new ValidationFailedError()).message);\n break;\n\n case BlockedOrRestrictedEndpointError.name: // 0\n alert((new BlockedOrRestrictedEndpointError()).message);\n break;\n\n default:\n alert('An error occurred in the operation. See the details in the browser console and contact the support staff.');\n }\n } else {\n alert('An error occurred in the operation. See the details in the browser console and contact the support staff.');\n }\n }\n\n if (errorObj && errorObj.failureCallback) errorObj.failureCallback();\n\n return false;\n };\n}\n","/**\n * Breakpoints configuration\n *\n * @return object\n */\n\nexport default {\n xsm: '(min-width: 700px)',\n sm: '(min-width: 900px)',\n md: '(min-width: 1280px)',\n lg: '(min-width: 1800px)',\n xlg: '(min-width: 2500px)'\n};\n","/*\n * Action types\n */\n\nconst NS = 'breakpoints'; // Namespace\n\nexport const ADD = `${NS}/ADD`;\nexport const REMOVE = `${NS}/REMOVE`;\n","import breakpoints from 'utils/breakpoints/rules';\nimport { add, remove } from 'store/Reducers/breakpoints/actions';\n\nlet mediaQueries = null;\n\nconst check = (dispatch, name, query) => {\n if (query.matches) {\n dispatch(add(name));\n } else {\n dispatch(remove(name));\n }\n};\n\nexport const supported = () => !!window.matchMedia;\n\nexport const subscribe = ({ dispatch }) => {\n if (mediaQueries) {\n console.error('mediaListeners already subscribed to the store.'); // eslint-disable-line no-console\n return;\n }\n\n mediaQueries = {};\n\n Object.keys(breakpoints).forEach((name) => {\n const query = window.matchMedia(breakpoints[name]);\n const hook = (q) => check(dispatch, name, q);\n mediaQueries[name] = { query, hook };\n query.addListener(hook);\n hook(query); // Initial check\n });\n};\n\nexport const unsubscribe = () => {\n if (!mediaQueries) return;\n\n Object.keys(mediaQueries).forEach((name) => {\n const { query, hook } = mediaQueries[name];\n query.removeListener(hook);\n });\n};\n","import * as types from './types';\n\nexport const add = (name) => ({\n type: types.ADD,\n payload: name\n});\n\nexport const remove = (name) => ({\n type: types.REMOVE,\n payload: name\n});\n","const dispatchWSAction = (store, event, payload) => { // eslint-disable-line no-unused-vars\n // TODO: hacer funcion mas escalable (que maneje 100+ actions)\n switch (event) {\n default:\n break;\n }\n};\n\nexport default dispatchWSAction;\n","import { io } from 'socket.io-client';\nimport dispatchWSAction from './dispatchWSActions';\n\n// TODO: Make it scalable to multiple sockets instances.\nconst socketMiddleware = () => {\n let socket = null;\n\n // Middleware\n return (store) => (next) => (action) => { // eslint-disable-line consistent-return\n switch (action.type) {\n case 'WS_CONNECT':\n if (socket !== null) {\n socket.close();\n }\n // Connect WS\n socket = io(action.host, { path: '/_api/wsocket/v1' });\n // WS dipatch incoming event\n socket.onAny((event, ...args) => dispatchWSAction(store, event, ...args));\n break;\n case 'WS_DISCONNECT':\n if (socket !== null) {\n socket.close();\n }\n socket = null;\n break;\n case 'NEW_MESSAGE':\n socket.emit(action.event, action.data);\n break;\n default:\n return next(action);\n }\n };\n};\n\nexport default socketMiddleware();\n","export default [];\n","import initialState from './initialState';\nimport * as types from './types';\n\nfunction breakpoints (state = initialState, action) {\n switch (action.type) {\n case types.ADD:\n return [\n ...state,\n action.payload\n ];\n case types.REMOVE:\n return state.filter((bp) => bp !== action.payload);\n default:\n return state;\n }\n}\n\nexport default breakpoints;\n","import { MANAGE_CREATE_UPDATE_SUCCESS } from 'Screens/ManageEditCreate/actions/Actions';\n\nimport {\n GET_VULNS_COUNT_SUCCEED_DASHBOARD,\n GET_VULNS_COUNT_FAILURE_DASHBOARD,\n GET_TOP_SERVICES_SUCCEED_DASHBOARD,\n GET_TOP_SERVICES_FAILURE_DASHBOARD,\n GET_TOP_HOSTS_FAILURE_DASHBOARD,\n GET_TOP_HOSTS_SUCCEED_DASHBOARD,\n GET_SUMMARY_SUCCEED_DASHBOARD,\n GET_SUMMARY_FAILURE_DASHBOARD,\n GET_ACTIVITY_FEED_SUCCEED_DASHBOARD,\n GET_ACTIVITY_FEED_FAILURE_DASHBOARD,\n GET_LATEST_VULNS_SUCCEED_DASHBOARD,\n GET_LATEST_VULNS_FAILURE_DASHBOARD,\n SHOW_MODAL_IMPORT_DASHBOARD,\n RELOAD_FEED,\n GET_VULNS_BY_STATUS_REQUEST,\n GET_VULNS_BY_STATUS_SUCCESS,\n GET_VULNS_BY_STATUS_FAILURE,\n GET_VULNS_BY_SEVERITY_REQUEST,\n GET_VULNS_BY_SEVERITY_SUCCESS,\n GET_VULNS_BY_SEVERITY_FAILURE,\n GET_COMMAND_HISTORY_START,\n GET_COMMAND_HISTORY_SUCCEED,\n GET_COMMAND_HISTORY_FAILURE,\n GET_STATS_FILTERED_START,\n GET_STATS_FILTERED_SUCCESS,\n GET_STATS_FILTERED_FAILURE\n} from 'Screens/Dashboard/actions/Actions';\n\nimport defaultTools from './tools';\n\nconst initialState = {\n isFetching: false,\n error: false,\n errorMessage: '',\n extraWorkspaces: [],\n reloadSummary: false,\n reloadActivityFeed: false,\n reloadTopHosts: false,\n reloadTopService: false,\n reloadVulnerabilities: false,\n reloadLatestVulns: false,\n tools: defaultTools,\n showImportFileModal: false,\n vulnCountByStatus: {\n open: 0,\n closed: 0,\n reopen: 0,\n riskAccepted: 0\n },\n vulnCountBySeverity: {\n critical: 0,\n high: 0,\n medium: 0,\n low: 0,\n informational: 0,\n unclassified: 0\n },\n commandHistory: []\n};\n\nfunction dashboard (state = initialState, action) {\n switch (action.type) {\n case GET_VULNS_COUNT_SUCCEED_DASHBOARD: {\n const tools = state.tools;\n tools[0].data = action.data;\n tools[0].error = '';\n\n return {\n ...state,\n reloadVulnerabilities: false,\n tools\n };\n }\n\n case GET_VULNS_COUNT_FAILURE_DASHBOARD: {\n const tools = state.tools;\n tools[0].data = [];\n tools[0].error = action.error;\n\n return {\n ...state,\n reloadVulnerabilities: false,\n tools\n };\n }\n\n case GET_TOP_SERVICES_SUCCEED_DASHBOARD: {\n const tools = state.tools;\n tools[1].data = action.data;\n tools[1].error = '';\n\n return {\n ...state,\n reloadTopService: false,\n tools\n };\n }\n\n case GET_TOP_SERVICES_FAILURE_DASHBOARD: {\n const tools = state.tools;\n tools[1].data = [];\n tools[1].error = action.error;\n\n return {\n ...state,\n reloadTopService: false,\n tools\n };\n }\n\n case GET_TOP_HOSTS_SUCCEED_DASHBOARD: {\n const tools = state.tools;\n tools[2].data = action.data;\n tools[2].error = '';\n\n return {\n ...state,\n reloadTopHosts: false,\n tools\n };\n }\n\n case GET_TOP_HOSTS_FAILURE_DASHBOARD: {\n const tools = state.tools;\n tools[2].data = [];\n tools[2].error = action.error;\n\n return {\n ...state,\n reloadTopHosts: false,\n tools\n };\n }\n\n case GET_SUMMARY_SUCCEED_DASHBOARD: {\n const tools = state.tools;\n tools[3].data = action.data;\n tools[3].error = '';\n\n return {\n ...state,\n reloadSummary: false,\n tools\n };\n }\n\n case GET_SUMMARY_FAILURE_DASHBOARD: {\n const tools = state.tools;\n tools[3].data = [];\n tools[3].error = action.error;\n\n return {\n ...state,\n reloadSummary: false,\n tools\n };\n }\n\n case GET_ACTIVITY_FEED_SUCCEED_DASHBOARD: {\n const tools = state.tools;\n tools[4].data = action.data;\n tools[4].error = '';\n return {\n ...state,\n reloadActivityFeed: false,\n tools\n };\n }\n\n case GET_ACTIVITY_FEED_FAILURE_DASHBOARD: {\n const tools = state.tools;\n tools[4].data = [];\n tools[4].error = action.error;\n\n return {\n ...state,\n reloadActivityFeed: false,\n tools\n };\n }\n\n case GET_COMMAND_HISTORY_START: {\n return {\n ...state,\n isFetching: true,\n error: false,\n errorMessage: ''\n };\n }\n\n case GET_COMMAND_HISTORY_SUCCEED: {\n return {\n ...state,\n isFetching: false,\n error: false,\n errorMessage: '',\n commandHistory: action.data\n };\n }\n\n case GET_COMMAND_HISTORY_FAILURE: {\n return {\n ...state,\n isFetching: false,\n error: true,\n errorMessage: action.error\n };\n }\n\n case MANAGE_CREATE_UPDATE_SUCCESS: {\n return {\n ...initialState,\n reloadSummary: true,\n reloadActivityFeed: true,\n reloadTopHosts: true,\n reloadTopService: true,\n reloadVulnerabilities: true,\n reloadLatestVulns: true,\n showImportFileModal: state.showImportFileModal\n };\n }\n\n case GET_LATEST_VULNS_SUCCEED_DASHBOARD: {\n const tools = state.tools;\n tools[5].data = action.data;\n tools[5].error = '';\n\n return {\n ...state,\n reloadLatestVulns: false,\n tools\n };\n }\n\n case GET_LATEST_VULNS_FAILURE_DASHBOARD: {\n const tools = state.tools;\n tools[5].data = [];\n tools[5].error = action.error;\n\n return {\n ...state,\n reloadLatestVulns: false,\n tools\n };\n }\n\n case SHOW_MODAL_IMPORT_DASHBOARD: {\n return {\n ...state,\n showImportFileModal: action.value\n };\n }\n\n case RELOAD_FEED: {\n return {\n ...state,\n reloadSummary: true,\n reloadActivityFeed: true,\n reloadTopHosts: true,\n reloadTopService: true,\n reloadVulnerabilities: true,\n reloadLatestVulns: true\n };\n }\n\n case GET_VULNS_BY_STATUS_REQUEST: {\n return {\n ...state,\n isFetching: true\n };\n }\n\n case GET_VULNS_BY_STATUS_SUCCESS: {\n const vulnCountByStatus = {\n open: action.data.groups.find((item) => (item.status === 'open')) ? action.data.groups.find((item) => (item.status === 'open')).count : 0,\n closed: action.data.groups.find((item) => (item.status === 'closed')) ? action.data.groups.find((item) => (item.status === 'closed')).count : 0,\n reopen: action.data.groups.find((item) => (item.status === 're-opened')) ? action.data.groups.find((item) => (item.status === 're-opened')).count : 0,\n riskAccepted: action.data.groups.find((item) => (item.status === 'risk-accepted')) ? action.data.groups.find((item) => (item.status === 'risk-accepted')).count : 0\n };\n return {\n ...state,\n vulnCountByStatus,\n isFetching: false\n };\n }\n\n case GET_VULNS_BY_STATUS_FAILURE: {\n return {\n ...state,\n isFetching: false,\n error: true,\n errorMessage: action.error\n };\n }\n\n case GET_VULNS_BY_SEVERITY_REQUEST: {\n return {\n ...state,\n isFetching: true\n };\n }\n\n case GET_VULNS_BY_SEVERITY_SUCCESS: {\n const vulnCountBySeverity = {\n critical: action.data.groups.find((item) => (item.severity === 'critical')) ? action.data.groups.find((item) => (item.severity === 'critical')).count : 0,\n high: action.data.groups.find((item) => (item.severity === 'high')) ? action.data.groups.find((item) => (item.severity === 'high')).count : 0,\n medium: action.data.groups.find((item) => (item.severity === 'med')) ? action.data.groups.find((item) => (item.severity === 'med')).count : 0,\n low: action.data.groups.find((item) => (item.severity === 'low')) ? action.data.groups.find((item) => (item.severity === 'low')).count : 0,\n informational: action.data.groups.find((item) => (item.severity === 'info')) ? action.data.groups.find((item) => (item.severity === 'info')).count : 0,\n unclassified: action.data.groups.find((item) => (item.severity === 'unclassified')) ? action.data.groups.find((item) => (item.severity === 'unclassified')).count : 0\n };\n return {\n ...state,\n vulnCountBySeverity,\n isFetching: false\n };\n }\n\n case GET_VULNS_BY_SEVERITY_FAILURE: {\n return {\n ...state,\n isFetching: false,\n error: true,\n errorMessage: action.error\n };\n }\n\n case GET_STATS_FILTERED_START: {\n return {\n ...state,\n isFetching: true\n };\n }\n\n case GET_STATS_FILTERED_SUCCESS: {\n const tools = state.tools;\n tools[3].data = action.data;\n tools[3].error = '';\n\n return {\n ...state,\n tools\n };\n }\n\n case GET_STATS_FILTERED_FAILURE: {\n return {\n ...state,\n isFetching: false,\n error: true,\n errorMessage: action.error\n };\n }\n\n default: {\n return state;\n }\n }\n}\n\nexport default dashboard;\n","const defaultTools = [{\n name: 'Vulnerabilities',\n render: true, // Set initial in false for dashboard custom\n data: [],\n error: ''\n}, {\n name: 'Top Services',\n render: true, // Set initial in false for dashboard custom\n data: [],\n error: ''\n}, {\n name: 'Top Hosts',\n render: true, // Set initial in false for dashboard custom\n data: [],\n error: ''\n}, {\n name: 'Summary',\n render: true, // Set initial in false for dashboard custom\n data: [],\n error: ''\n}, {\n name: 'Activity Feed',\n render: true, // Set initial in false for dashboard custom\n data: [],\n error: ''\n}, {\n name: 'Latest Vulns',\n render: true, // Set initial in false for dashboard custom\n data: [],\n error: ''\n}];\n\nexport default defaultTools;\n","import initialState from './initialState';\nimport { SET_LOCALE } from './types';\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case SET_LOCALE:\n return action.locale;\n default:\n return state;\n }\n}\n","/*\n * App Constants\n */\n\nexport const DEFAULT_LOCALE = 'en';\nexport const SENTRY_DSN = process.env.REACT_APP_SENTRY_DSN;\n","/*\n * Action types\n */\n\n// eslint-disable-next-line import/prefer-default-export\nexport const SET_LOCALE = 'SET_LOCALE';\n","export function copy (mainObj) {\n const objCopy = {};\n\n Object.keys(mainObj).forEach((key) => {\n objCopy[key] = mainObj[key];\n });\n return objCopy;\n}\n\nexport function copyArray (mainArray) {\n const arrayCopy = [];\n\n mainArray.forEach((mainObj) => {\n const objCopy = {};\n\n Object.keys(mainObj).forEach((key) => {\n objCopy[key] = mainObj[key];\n });\n\n arrayCopy.push(objCopy);\n });\n\n return arrayCopy;\n}\n\nexport function copyStringArray (mainArray) {\n return mainArray.slice();\n}\n","import uniq from 'lodash/uniq';\nimport { copy } from 'Common/Functions/Copy';\nimport { HOST_CREATE_UPDATE_SUCCESS } from 'store/HostEditCreate/types';\nimport * as types from './types';\nimport initialState from './initialState';\n\nfunction host (state = initialState, action) {\n switch (action.type) {\n case types.SHOW_HOST_LEFT_FILTERS: {\n return {\n ...state,\n showLeftFilters: action.visible\n };\n }\n case types.SET_HOSTS_FILTER_ERROR: {\n return {\n ...state,\n isFetching: false\n };\n }\n case types.GET_DATA_HOST_START: {\n return {\n ...state,\n isFetching: true\n };\n }\n case types.GET_DATA_HOST_FAIL: {\n return {\n ...state,\n isFetching: false,\n error: true,\n errorMessage: action.data\n };\n }\n case types.GET_DATA_HOST_SUCCESS: {\n return {\n ...state,\n isFetching: false,\n hostList: action.data,\n hostCount: action.hostCount,\n hostDetail: action.host ? copy(action.host) : false\n };\n }\n case types.UPDATE_DATA_HOST_LIST: {\n return {\n ...state,\n hostList: action.hostList\n };\n }\n case types.APPEND_DATA_HOST_LIST: {\n const { hostList } = state;\n return {\n ...state,\n hostList: [action.hostRow, ...hostList]\n };\n }\n case types.GET_DATA_HOST_SEARCH: {\n return {\n ...state,\n filters: action.value\n };\n }\n case types.GET_DATA_HOST_GROUP_BY_RESET: {\n return {\n ...state,\n groupBy: '',\n mapGroupByIndex: []\n };\n }\n case types.GET_DATA_HOST_GROUP_BY_EXPAND: {\n const { mapGroupByIndex } = state;\n const newMapGroupByIndex = { ...mapGroupByIndex, [action.index]: action.data };\n const hostList = state.hostList;\n hostList[action.index].groupData = action.data;\n\n return {\n ...state,\n mapGroupByIndex: newMapGroupByIndex,\n hostList,\n isFetching: false\n };\n }\n case HOST_CREATE_UPDATE_SUCCESS: {\n return {\n ...state,\n showModalEditCreate: false\n };\n }\n case types.TOGGLE_MODAL_EDIT_CREATE_HOST: {\n return {\n ...state,\n showModalEditCreate: action.value\n };\n }\n case types.HOST_SELECTED: {\n return {\n ...state,\n hostsSelected: uniq([...state.hostsSelected, ...action.payload])\n };\n }\n case types.HOST_UNSELECTED: {\n const filterByID = (array, id) => array.filter((el) => el._id !== id);\n const newHostsSelected = action.payload.reduce((hostsSelected, hostToDelete) => filterByID(hostsSelected, hostToDelete._id), state.hostsSelected);\n\n return {\n ...state,\n hostsSelected: newHostsSelected\n };\n }\n case types.NEW_PIVOT: {\n return {\n ...state,\n lastSelected: action.payload\n };\n }\n case types.SELECT_ALL_HOST: {\n return {\n ...state,\n hostsSelected: [...action.hostsList]\n };\n }\n case types.UNSELECT_ALL_HOST: {\n return {\n ...state,\n hostsSelected: []\n };\n }\n case types.RESET_STATE_HOST: {\n return {\n ...copy(initialState),\n fields: state.fields,\n page: 1\n };\n }\n case types.SHOW_MODAL_DELETE_HOSTS: {\n return {\n ...state,\n showDeleteConfirmation: true\n };\n }\n case types.HIDE_MODAL_DELETE_HOSTS: {\n return {\n ...state,\n showDeleteConfirmation: false\n };\n }\n case types.DELETE_HOSTS_START: {\n return {\n ...state,\n isFetching: true\n };\n }\n case types.DELETE_HOSTS_SUCCESS: {\n return {\n ...state,\n hostsSelected: [],\n isFetching: false\n };\n }\n case types.DELETE_HOSTS_FAIL: {\n return {\n ...state,\n isFetching: false\n };\n }\n case types.UPDATE_HOST_SELECTED: {\n return {\n ...state,\n hostsSelected: action.host\n };\n }\n default: {\n return state;\n }\n }\n}\n\nexport default host;\n","export const SET_MODE_HOST_CREATE_UPDATE = 'SET_MODE_HOST_CREATE_UPDATE';\nexport const RESET_STATE_HOST_CREATE_UPDATE = 'RESET_STATE_HOST_CREATE_UPDATE';\nexport const ADD_REPORT_HOST_CREATE_UPDATE = 'ADD_REPORT_HOST_CREATE_UPDATE';\nexport const REMOVE_REPORT_HOST_CREATE_UPDATE = 'REMOVE_REPORT_HOST_CREATE_UPDATE';\nexport const IMPORT_REPORT_HOST_CREATE_UPDATE_START = 'IMPORT_REPORT_HOST_CREATE_UPDATE_START';\nexport const IMPORT_REPORT_HOST_CREATE_UPDATE_FAIL = 'IMPORT_REPORT_HOST_CREATE_UPDATE_FAIL';\nexport const IMPORT_REPORT_HOST_CREATE_UPDATE_SUCCESS = 'IMPORT_REPORT_HOST_CREATE_UPDATE_SUCCESS';\nexport const SET_FIELD_NAME_HOST_CREATE_UPDATE = 'SET_FIELD_NAME_HOST_CREATE_UPDATE';\nexport const REMOVE_HOST_NAME_HOST_CREATE_UPDATE = 'REMOVE_HOST_NAME_HOST_CREATE_UPDATE';\nexport const ADD_HOST_NAME_HOST_CREATE_UPDATE = 'ADD_HOST_NAME_HOST_CREATE_UPDATE';\nexport const SET_HOST_NAME_HOST_CREATE_UPDATE = 'SET_HOST_NAME_HOST_CREATE_UPDATE';\nexport const HOST_CREATE_UPDATE_START = 'HOST_CREATE_UPDATE_START';\nexport const HOST_CREATE_UPDATE_FAIL = 'HOST_CREATE_UPDATE_FAIL';\nexport const HOST_CREATE_UPDATE_SUCCESS = 'HOST_CREATE_UPDATE_SUCCESS';\nexport const SET_HOST_CREATE_UPDATE = 'SET_HOST_CREATE_UPDATE';\nexport const HOST_CREATE_UPDATE_ERROR = 'HOST_CREATE_UPDATE_ERROR';\nexport const SET_HOST_FOR_EDIT = 'SET_HOST_FOR_EDIT';\n","const initialState = {\n isFetching: false,\n isFetchingExpandedData: false,\n error: false,\n errorMessage: '',\n vulnsList: [],\n vulnsSelected: [],\n vulnsCount: 0,\n showDeleteConfirmation: false,\n showLeftFilters: false,\n showVulnDetail: false,\n vulnDetail: undefined,\n bulkUpdateField: '',\n bulkUpdateValue: '',\n lastSelected: -1,\n lastIndexForRange: -1,\n usesMockVulns: false,\n vulnDetailSelectedTab: 'general',\n showContextMenu: false,\n contextMenuXPos: 0,\n contextMenuYPos: 0,\n templatesCreated: [],\n failedTemplates: [],\n imagePreview: '',\n selectAll: false\n};\n\nexport default initialState;\n","import uniq from 'lodash/uniq';\nimport { copy } from '../../Common/Functions/Copy';\nimport * as types from './types';\nimport initialState from './initialState';\nimport { MANAGE_CREATE_UPDATE_SUCCESS } from 'Screens/ManageEditCreate/actions/Actions';\n\nfunction vulns (state = initialState, action) {\n switch (action.type) {\n case types.SET_IMAGE_PREVIEW: {\n return {\n ...state,\n imagePreview: action.imagePreview\n };\n }\n\n case types.SEARCH_VULNS_START: {\n return {\n ...state,\n error: false,\n isFetching: true,\n vulnsSelected: []\n };\n }\n\n case types.SEARCH_VULNS_FAIL: {\n return {\n ...state,\n isFetching: false,\n isFetchingExpandedData: false,\n error: true,\n errorMessage: action.data\n };\n }\n\n case types.SET_VULNS_FILTER_ERROR: {\n return {\n ...state,\n isFetching: false,\n isFetchingExpandedData: false\n };\n }\n\n case types.VULN_SELECTED: {\n return {\n ...state,\n vulnsSelected: uniq([...state.vulnsSelected, ...action.payload])\n };\n }\n\n case types.NEW_PIVOT: {\n return {\n ...state,\n lastSelected: action.payload\n };\n }\n\n case types.VULN_UNSELECTED: {\n const filterByID = (array, id) => array.filter((el) => el._id !== id);\n const newVulnsSelected = action.payload.reduce((vulnsSelected, vulnToDelete) => filterByID(vulnsSelected, vulnToDelete._id), state.vulnsSelected);\n\n return {\n ...state,\n vulnsSelected: newVulnsSelected\n };\n }\n\n case types.SELECT_ALL_VULN: {\n return {\n ...state,\n vulnsSelected: [...action.vulnsList]\n };\n }\n\n case types.UNSELECT_ALL_VULN: {\n return {\n ...state,\n vulnsSelected: []\n };\n }\n\n case types.SHOW_MODAL_DELETE_CONFIRMATION_VULNS: {\n return {\n ...state,\n showDeleteConfirmation: true\n };\n }\n\n case types.HIDE_MODAL_DELETE_CONFIRMATION_VULNS: {\n return {\n ...state,\n showDeleteConfirmation: false,\n isFetching: false,\n isFetchingExpandedData: false\n };\n }\n\n case types.DELETE_VULNS: {\n return {\n ...state,\n isFetching: true,\n lastVulnSelected: initialState.lastVulnSelected,\n vulnsSelected: initialState.vulnsSelected,\n lastSelected: initialState.lastSelected,\n lastIndexForRange: initialState.lastIndexForRange\n };\n }\n\n case types.HIDE_MODAL_DELETE_CONFIRMATION_VULNS_SUCCEED: {\n return {\n ...state,\n showDeleteConfirmation: false\n };\n }\n\n case types.RESET_STATE_MANAGE: {\n return {\n ...initialState\n };\n }\n\n case types.CONFIRMATION_CHANGE_START: {\n return {\n ...state,\n isFetching: true,\n isFetchingExpandedData: true,\n error: false,\n errorMessage: ''\n };\n }\n\n case types.MANAGE_SET_BULK_UPDATE_SUCCESS: {\n return {\n ...state,\n isFetching: false,\n isFetchingExpandedData: false,\n error: false,\n errorMessage: ''\n };\n }\n\n case types.CONFIRMATION_CHANGE_SUCCESS: {\n const vulnsList = state.vulnsList;\n\n if (action.isGroupingBy) {\n const vulnGroup = vulnsList && vulnsList.find((g) => g.groupData && g.groupData.find((el) => el._id === action.vuln._id));\n const vulnGroupIndex = vulnsList && vulnsList.findIndex((g) => g.groupData && g.groupData.find((el) => el._id === action.vuln._id));\n const vulnSelected = vulnGroup.groupData && vulnGroup.groupData.findIndex((el) => el._id === action.vuln._id);\n vulnsList[vulnGroupIndex].groupData[vulnSelected] = copy(action.vuln);\n } else {\n const index = vulnsList.findIndex((x) => action.vuln._id === x._id);\n vulnsList[index] = copy(action.vuln);\n }\n\n const vulnDetail = state.vulnDetail ? copy(state.vulnDetail) : state.vulnDetail;\n\n if (state.vulnDetail && vulnDetail._id === action.vuln._id) vulnDetail.confirmed = action.vuln.confirmed;\n\n return {\n ...state,\n isFetching: false,\n isFetchingExpandedData: false,\n vulnsList,\n vulnDetail\n };\n }\n\n case types.CONFIRMATION_CHANGE_FAIL: {\n return {\n ...state,\n isFetching: false,\n isFetchingExpandedData: false,\n error: true,\n errorMessage: action.error\n };\n }\n\n case types.GET_GROUPED_DATA_START: {\n return {\n ...state,\n isFetchingExpandedData: true\n };\n }\n\n case types.GET_GROUPED_DATA_SUCCESS: {\n const vulnsList = state.vulnsList;\n vulnsList[action.index].groupData = action.data;\n\n return {\n ...state,\n vulnsList,\n isFetchingExpandedData: false\n };\n }\n\n case types.RESET_ERROR_VALUE: {\n return {\n ...state,\n error: false,\n errorMessage: ''\n };\n }\n\n case types.SHOW_MANAGE_LEFT_FILTERS: {\n return {\n ...state,\n showLeftFilters: action.visible,\n showVulnDetail: action.visible && action.breakpoint !== 'fourth' ? false : state.showVulnDetail\n };\n }\n\n case types.SHOW_VULNERABILITY_DETAIL: {\n return {\n ...state,\n vulnDetail: action.vuln,\n vulnDetailSelectedTab: action.vulnDetailSelectedTab || state.vulnDetailSelectedTab,\n showVulnDetail: true\n };\n }\n\n case types.HIDE_VULNERABILITY_DETAIL: {\n return {\n ...state,\n vulnDetail: undefined,\n showVulnDetail: false,\n vulnDetailSelectedTab: initialState.vulnDetailSelectedTab\n };\n }\n\n case types.SET_VULNERABILITY_DETAIL_TAB: {\n return {\n ...state,\n vulnDetailSelectedTab: action.vulnDetailSelectedTab\n };\n }\n\n case types.UPDATE_VULN_MANAGE_PREVIEW_SUCCESS: {\n const vulnsSelectedArray = state.vulnsSelected;\n const vulnUpdatedId = vulnsSelectedArray.findIndex((vuln) => vuln._id === action.vuln._id);\n vulnsSelectedArray.splice(vulnUpdatedId, 1, action.vuln);\n return {\n ...state,\n isFetchingPreview: false,\n vuln: action.vuln,\n vulnDetail: { ...action.vuln },\n vulnsList: action.vulnsList,\n vulnsSelected: vulnsSelectedArray\n };\n }\n\n case types.UPDATE_VULN_MANAGE_PREVIEW_FAILURE: {\n return {\n ...state,\n error: true,\n errorMessage: action.error\n };\n }\n\n case types.SELECT_GROUP_MANAGE: {\n let vulnsSelected = state.vulnsSelected;\n\n if (action.selected) {\n state.vulnsList[action.index].groupData.forEach((vuln) => {\n vulnsSelected.push(vuln);\n });\n } else {\n const groupVulns = state.vulnsList[action.index].groupData.map((x) => x._id);\n vulnsSelected = vulnsSelected.filter((x) => !groupVulns.includes(x._id));\n }\n\n return {\n ...state,\n vulnsSelected\n };\n }\n\n case types.SELECT_VULN_GROUP_MANAGE: {\n let vulnsSelected = state.vulnsSelected;\n\n if (action.selected) vulnsSelected.push(action.vuln);\n else vulnsSelected = vulnsSelected.filter((vuln) => vuln._id !== action.vuln._id);\n\n return {\n ...state,\n vulnsSelected\n };\n }\n\n case types.MANAGE_SET_BULK_UPDATE_FIELD: {\n return {\n ...state,\n bulkUpdateField: action.field,\n bulkUpdateValue: ''\n };\n }\n\n case types.MANAGE_SET_BULK_UPDATE_VALUE: {\n return {\n ...state,\n bulkUpdateValue: action.value\n };\n }\n\n case types.MANAGE_ADD_BULK_UPDATE_VALUE: {\n const bulkUpdateValue = state.bulkUpdateValue;\n bulkUpdateValue.push(action.value);\n\n return {\n ...state,\n bulkUpdateValue\n };\n }\n\n case types.MANAGE_REMOVE_BULK_UPDATE_VALUE: {\n let bulkUpdateValue = state.bulkUpdateValue;\n bulkUpdateValue = bulkUpdateValue.filter((element) => element !== action.value);\n\n return {\n ...state,\n bulkUpdateValue\n };\n }\n\n case types.MANAGE_BULK_UPDATE_FINISHED: {\n return {\n ...state,\n isFetching: false,\n isFetchingExpandedData: false,\n bulkUpdateField: '',\n bulkUpdateValue: ''\n };\n }\n\n case types.MANAGE_BULK_SAVE_TEMPLATE_FINISHED: {\n return {\n ...state,\n isFetching: false,\n isFetchingExpandedData: false\n };\n }\n\n case types.GET_TEMPLATES_BULK_START: {\n return {\n ...state,\n isFetching: true\n };\n }\n\n case types.GET_TEMPLATES_BULK_FAIL: {\n return {\n ...state,\n isFetching: false,\n isFetchingExpandedData: false,\n error: true,\n errorMessage: 'Failed to get templates'\n };\n }\n\n case types.GET_TEMPLATES_BULK_SUCCESS: {\n return {\n ...state,\n isFetching: false,\n isFetchingExpandedData: false,\n templates: action.data\n };\n }\n\n case types.GET_VULNS_SUCCESS_MANAGE: {\n return {\n ...state,\n error: false,\n vulnsList: action.data,\n vulnsCount: action.vulnsCount,\n isFetching: false,\n isFetchingExpandedData: false\n };\n }\n\n case types.REFRESH_VULNS: {\n return {\n ...state,\n vulnsList: action.vulnsList,\n vulnsCount: action.vulnsCount,\n vulnsSelected: action.vulnsSelected,\n vulnDetail: action.vulnDetail\n };\n }\n\n case types.UPDATE_VULNS_LIST: {\n return {\n ...state,\n vulnsList: action.vulnsList\n };\n }\n\n case types.ADD_MOCK_VULN: {\n return {\n ...state,\n vulnsList: action.data,\n vulnsCount: action.vulnsCount,\n isFetching: false,\n isFetchingExpandedData: false,\n usesMockVulns: true\n };\n }\n\n case types.REMOVE_MOCK_VULN: {\n return {\n ...state,\n vulnsList: action.vulnsList,\n vulnsCount: action.vulnsCount,\n usesMockVulns: false,\n vulnsSelected: initialState.vulnsSelected\n };\n }\n\n case types.MANAGE_VULN_ERROR: {\n return {\n ...state,\n error: true,\n errorMessage: action.errorMessage\n };\n }\n\n case types.READ_ONLY_ERROR: {\n return {\n ...state,\n error: true,\n errorMessage: action.error\n };\n }\n case types.SHOW_CONTEXT_MENU: {\n return {\n ...state,\n showContextMenu: action.show,\n contextMenuXPos: action.contextMenuXPos,\n contextMenuYPos: action.contextMenuYPos\n };\n }\n case types.SAVE_TEMPLATE_MANAGE: {\n return {\n ...state,\n templatesCreated: action.templatesCreated,\n failedTemplates: action.errors\n };\n }\n case types.CLOSE_TEMPLATE_MODAL_MESSAGE: {\n return {\n ...state,\n templatesCreated: [],\n failedTemplates: []\n };\n }\n case MANAGE_CREATE_UPDATE_SUCCESS: {\n const vulnsList = state.vulnsList;\n\n return {\n ...state,\n vulnsList: [action.vuln, ...vulnsList]\n };\n }\n\n case types.SELECT_TOTAL_VULNS: {\n return {\n ...state,\n selectAll: true\n };\n }\n\n case types.UNSELECT_TOTAL_VULNS: {\n return {\n ...state,\n selectAll: false\n };\n }\n\n case types.SET_ERROR: {\n return {\n ...state,\n isFetching: false,\n error: true,\n errorMessage: action.data\n };\n }\n\n default: {\n return state;\n }\n }\n}\n\nexport default vulns;\n","import {\n SAVE_PREFERENCES_SUCCESS\n} from 'store/Preferences/actions';\n\nconst initialState = { };\n\nfunction preferences (state = initialState, action) {\n switch (action.type) {\n case SAVE_PREFERENCES_SUCCESS: {\n return {\n ...state,\n ...action.preferences\n };\n }\n\n default: {\n return state;\n }\n }\n}\n\nexport default preferences;\n","const initialState = {\n host: null,\n vulns: {\n isFetching: false,\n data: [],\n fields: {\n id: false,\n name: true,\n tags: true,\n date: true,\n status: true,\n confirmed: true,\n severity: true\n }\n },\n createOrEditService: {\n error: false,\n errorMessage: '',\n saved: false,\n selectedService: null\n },\n services: {\n isFetching: false,\n data: [],\n fields: {\n id: false,\n name: true,\n version: true,\n protocol: true,\n status: true,\n vulns: true,\n credentials: true,\n tags: true,\n port: true,\n owned: true\n }\n },\n tools: {\n isFetching: false,\n data: [],\n fields: {\n id: false,\n command: true,\n user: true,\n params: true,\n create_date: true\n }\n },\n vulnsGrouped: []\n};\n\nexport default initialState;\n","import { copy } from 'Common/Functions/Copy';\nimport * as types from './types';\nimport initialState from './initialState';\n\nfunction host (state = initialState, action) {\n switch (action.type) {\n case types.RESET_STATE_HOST_DETAIL: {\n return {\n ...copy(initialState)\n };\n }\n case types.SHOW_HOST_DETAIL: {\n return {\n ...state,\n host: action.host\n };\n }\n case types.HIDE_HOST_DETAIL: {\n return {\n ...state,\n host: null\n };\n }\n case types.GET_DATA_VULNS_START: {\n return {\n ...state,\n vulns: {\n ...state.vulns,\n isFetching: true,\n data: []\n }\n };\n }\n case types.GET_DATA_VULNS_SUCCESS: {\n return {\n ...state,\n vulns: {\n ...state.vulns,\n isFetching: false,\n data: action.data,\n count: action.count\n }\n };\n }\n case types.GET_DATA_VULNS_FAIL: {\n return {\n ...state,\n isFetching: false,\n vulns: [],\n error: true,\n errorMessage: action.data\n };\n }\n case types.GET_DATA_SERVICES_START: {\n return {\n ...state,\n services: {\n ...state.services,\n isFetching: true,\n data: []\n }\n };\n }\n case types.GET_DATA_SERVICES_SUCCESS: {\n return {\n ...state,\n services: {\n ...state.services,\n isFetching: false,\n data: action.data\n }\n };\n }\n case types.GET_DATA_SERVICES_FAIL: {\n return {\n ...state,\n services: {\n ...state.services,\n isFetching: false,\n data: []\n },\n error: true,\n errorMessage: action.data\n };\n }\n case types.GET_DATA_TOOLS_START: {\n return {\n ...state,\n tools: {\n ...state.tools,\n isFetching: true,\n data: []\n }\n };\n }\n case types.GET_DATA_TOOLS_SUCCESS: {\n return {\n ...state,\n tools: {\n ...state.tools,\n isFetching: false,\n data: action.data\n }\n };\n }\n case types.GET_DATA_TOOLS_FAIL: {\n return {\n ...state,\n tools: {\n ...state.tools,\n isFetching: false,\n data: []\n }\n };\n }\n case types.HOST_ADD_EDIT_SERVICE_FAIL: {\n return {\n ...state,\n createOrEditService: {\n ...state.createOrEditService,\n error: true,\n errorMessage: action.message,\n selectedService: initialState.createOrEditService.selectedService\n }\n };\n }\n case types.HOST_ADD_EDIT_SERVICE_SUCCESS: {\n return {\n ...state,\n createOrEditService: {\n ...state.createOrEditService,\n saved: true,\n error: initialState.createOrEditService.error,\n errorMessage: initialState.createOrEditService.errorMessage,\n selectedService: initialState.createOrEditService.selectedService\n }\n };\n }\n case types.HOST_ADD_EDIT_SERVICE_RESET: {\n return {\n ...state,\n createOrEditService: {\n ...state.createOrEditService,\n saved: initialState.createOrEditService.saved,\n error: initialState.createOrEditService.error,\n errorMessage: initialState.createOrEditService.errorMessage,\n selectedService: initialState.createOrEditService.selectedService\n }\n };\n }\n case types.SELECT_SERVICE: {\n return {\n ...state,\n createOrEditService: {\n ...state.createOrEditService,\n selectedService: action.selectedRow\n }\n };\n }\n case types.UPDATE_VULN_ASSET_PREVIEW_START: {\n return {\n ...state,\n vulns: {\n ...state.vulns,\n isFetching: true\n }\n };\n }\n case types.UPDATE_VULN_ASSET_PREVIEW_SUCCESS: {\n return {\n ...state,\n vulns: {\n ...state.vulns,\n data: action.data,\n isFetching: false,\n count: action.vulnsCount\n }\n };\n }\n case types.UPDATE_VULN_ASSET_PREVIEW_FAIL: {\n return {\n ...state,\n isFetching: false,\n error: true,\n errorMessage: action.errorMessage\n };\n }\n default: {\n return state;\n }\n }\n}\n\nexport default host;\n","const initialState = {\n id: undefined,\n _id: undefined,\n ip: '',\n owned: false,\n os: '',\n description: '',\n hostnames: [],\n mac: '',\n isFetching: false,\n errorMessage: undefined,\n redirect: false,\n mode: '',\n report: [],\n importSuccess: false,\n successMessage: '',\n ownder: '',\n default_gateway: 'None',\n hostnameToAdd: ''\n};\n\nexport default initialState;\n","import { copy, copyArray } from '../../Common/Functions/Copy';\n\nimport initialState from './initialState';\nimport * as types from './types';\n\nfunction hostEditCreate (state = initialState, action) {\n switch (action.type) {\n case types.RESET_STATE_HOST_CREATE_UPDATE: {\n return {\n ...initialState\n };\n }\n\n case types.ADD_REPORT_HOST_CREATE_UPDATE: {\n const report = copyArray(state.report);\n report.push(action.file);\n\n return {\n ...state,\n report\n };\n }\n\n case types.REMOVE_REPORT_HOST_CREATE_UPDATE: {\n const report = copyArray(state.report);\n report.splice(action.index, 1);\n\n return {\n ...state,\n report\n };\n }\n\n case types.IMPORT_REPORT_HOST_CREATE_UPDATE_START: {\n return {\n ...state,\n isFetching: true\n };\n }\n\n case types.IMPORT_REPORT_HOST_CREATE_UPDATE_SUCCESS: {\n return {\n ...state,\n isFetching: false,\n importSuccess: true,\n successMessage: action.message\n };\n }\n\n case types.IMPORT_REPORT_HOST_CREATE_UPDATE_FAIL: {\n return {\n ...state,\n isFetching: false,\n errorMessage: action.error\n };\n }\n\n case types.SET_FIELD_NAME_HOST_CREATE_UPDATE: {\n return {\n ...state,\n [action.fieldName]: action.value,\n errorMessage: ''\n };\n }\n\n case types.REMOVE_HOST_NAME_HOST_CREATE_UPDATE: {\n const { hostnames } = state;\n hostnames.splice(action.index, 1);\n\n return {\n ...state,\n hostnames,\n errorMessage: ''\n };\n }\n\n case types.ADD_HOST_NAME_HOST_CREATE_UPDATE: {\n const hostnames = state.hostnames || [];\n const newHostnames = [...hostnames, action.value];\n\n return {\n ...state,\n hostnames: newHostnames,\n hostnameToAdd: '',\n errorMessage: ''\n };\n }\n\n case types.SET_HOST_NAME_HOST_CREATE_UPDATE: {\n return {\n ...state,\n hostnameToAdd: action.value,\n errorMessage: ''\n };\n }\n\n case types.HOST_CREATE_UPDATE_START: {\n return {\n ...state,\n isFetching: true,\n errorMessage: ''\n };\n }\n\n case types.HOST_CREATE_UPDATE_FAIL: {\n return {\n ...state,\n isFetching: false,\n errorMessage: action.error\n };\n }\n\n case types.SET_HOST_CREATE_UPDATE: {\n return {\n ...state,\n isFetching: false,\n id: action.host.id,\n ip: action.host.ip,\n owned: action.host.owned,\n os: action.host.os,\n mac: action.host.mac,\n description: action.host.description,\n hostnames: action.host.hostnames,\n owner: action.host.owner,\n default_gateway: action.host.default_gateway,\n errorMessage: ''\n };\n }\n\n case types.SET_HOST_FOR_EDIT: {\n return {\n ...copy(action.host ? action.host : initialState)\n };\n }\n\n default:\n return state;\n }\n}\n\nexport default hostEditCreate;\n","import {\n HIDE_FILE_UPLOAD_CONTEXT,\n ADD_COMMAND,\n UPDATE_COMMAND_LIST_STATUS\n} from 'Common/Components/FileUploadContext/actions';\n\nconst initialState = {\n commandsInProcess: []\n};\n\nfunction fileUploaderContext (state = initialState, action) {\n switch (action.type) {\n case HIDE_FILE_UPLOAD_CONTEXT: {\n return {\n ...initialState\n };\n }\n\n case ADD_COMMAND: {\n return {\n ...state,\n commandsInProcess: [\n ...state.commandsInProcess,\n action.command\n ]\n };\n }\n\n case UPDATE_COMMAND_LIST_STATUS: {\n return {\n ...state,\n commandsInProcess: action.data\n };\n }\n\n default: {\n return state;\n }\n }\n}\n\nexport default fileUploaderContext;\n","import { TEMPLATE_CREATE_UPDATE_SUCCESS } from 'Screens/KnowledgeBaseEditCreate/actions/Actions';\nimport {\n GET_DATA_VULN_TEMPLATE_START,\n GET_DATA_VULN_TEMPLATE_FAIL,\n GET_DATA_VULN_TEMPLATE_SUCCESS,\n VULN_TEMPLATE_SELECTED,\n SHOW_MODAL_DELETE_CONFIRMATION_VULN_TEMPLATE,\n HIDE_MODAL_DELETE_CONFIRMATION_VULN_TEMPLATE,\n DELETE_VULN_TEMPLATE,\n HIDE_MODAL_DELETE_CONFIRMATION_VULN_TEMPLATE_SUCCEED,\n SET_VISIBILITY_CREATE_MODAL_KB,\n GET_DATA_TEMPLATES_SORT,\n GET_DATA_TEMPLATES_FILTER,\n SET_UPLOAD_STATE_KB,\n UPLOAD_CSV_KB_UPDATE_PERCENT,\n UPLOAD_CSV_KB_ERROR,\n CANCEL_REQUEST_UPLOAD_CSV_KB,\n SET_CSV_KB_FILE_INDEX_MANAGE,\n SET_NAME_INTO_FILE_ERROR_LIST_CSV_KB,\n RESET_FILE_STATE_KB,\n SET_FILES_TO_UPLOAD_KB,\n GET_VULNS_COUNT_SUCCESS,\n GET_VULNS_COUNT_FAIL,\n SET_KNOWLEDGE_BASE_PAGE\n} from '../../Screens/KnowledgeBase/actions/Actions';\n\nimport { impact } from '../../Screens/Constants/index';\n\nimport { copyArray } from '../../Common/Functions/Copy';\n\nconst initialState = {\n isFetching: false,\n error: false,\n errorMessage: '',\n vulnTemplateList: [],\n vulnTemplateCount: 0,\n rowsPerPage: 100,\n page: 1,\n showModalNew: false,\n mode: 'new',\n templatesSelected: [],\n allSelected: false,\n customfieldsData: [],\n showDeleteConfirmation: false,\n showModalImport: false,\n csv: null,\n template: {\n id: null,\n name: '',\n description: '',\n data: '',\n resolution: '',\n references: [],\n policyviolations: [],\n impact: copyArray(impact),\n easeofresolution: '',\n exploitation: '',\n customfields: {}\n },\n lastSelected: -1,\n lastIndexForRange: -1,\n lastTemplateSelected: {},\n showModalCreate: false,\n filters: '',\n moreData: true,\n filesToUpload: [],\n uploadState: '',\n fileIndex: -1,\n errorFilesList: [],\n currentUploadState: '',\n currentUploadPercent: 0,\n currentUploadError: '',\n totalVulnTemplate: 0\n};\n\nfunction knowledgeBase (state = initialState, action) {\n switch (action.type) {\n case GET_DATA_VULN_TEMPLATE_START: {\n return {\n ...state,\n isFetching: true\n };\n }\n\n case GET_DATA_VULN_TEMPLATE_FAIL: {\n return {\n ...state,\n isFetching: false,\n error: true,\n errorMessage: action.data\n };\n }\n\n case GET_DATA_VULN_TEMPLATE_SUCCESS: {\n return {\n ...state,\n isFetching: false,\n vulnTemplateList: action.data,\n vulnTemplateCount: action.vulnTemplateCount,\n moreData: action.vulnTemplateCount > 0\n };\n }\n\n case VULN_TEMPLATE_SELECTED: {\n const {\n newRowsSelected, lastSelected, indexForRange, rowSelected\n } = action.selectionInfo;\n\n return {\n ...state,\n lastWorkspaceSelected: rowSelected,\n templatesSelected: newRowsSelected,\n lastSelected: lastSelected || -1,\n lastIndexForRange: indexForRange || -1\n };\n }\n\n case SHOW_MODAL_DELETE_CONFIRMATION_VULN_TEMPLATE: {\n return {\n ...state,\n showDeleteConfirmation: true\n };\n }\n\n case DELETE_VULN_TEMPLATE: {\n return {\n ...state,\n isFetching: false,\n lastWorkspaceSelected: initialState.lastWorkspaceSelected,\n templatesSelected: initialState.templatesSelected,\n lastSelected: initialState.lastSelected,\n lastIndexForRange: initialState.lastIndexForRange\n };\n }\n\n case HIDE_MODAL_DELETE_CONFIRMATION_VULN_TEMPLATE: {\n return {\n ...state,\n showDeleteConfirmation: false\n };\n }\n\n case HIDE_MODAL_DELETE_CONFIRMATION_VULN_TEMPLATE_SUCCEED: {\n return {\n ...state,\n showDeleteConfirmation: false\n };\n }\n\n case SET_VISIBILITY_CREATE_MODAL_KB: {\n return {\n ...state,\n showModalCreate: action.value\n };\n }\n\n case TEMPLATE_CREATE_UPDATE_SUCCESS: {\n return {\n ...state,\n showModalCreate: false,\n templatesSelected: []\n };\n }\n\n case GET_DATA_TEMPLATES_SORT: {\n return {\n ...state,\n isFetching: true,\n page: 1,\n sorting: action.sorting ? action.sorting : []\n };\n }\n\n case GET_DATA_TEMPLATES_FILTER: {\n return {\n ...state,\n filters: action.filter,\n page: 1\n };\n }\n\n // CSV UPLOADING\n\n case SET_CSV_KB_FILE_INDEX_MANAGE: {\n return {\n ...state,\n fileIndex: action.index\n };\n }\n\n case SET_FILES_TO_UPLOAD_KB: {\n return {\n ...state,\n filesToUpload: action.files\n };\n }\n\n case SET_UPLOAD_STATE_KB: {\n return {\n ...state,\n uploadState: action.state\n };\n }\n\n case UPLOAD_CSV_KB_UPDATE_PERCENT: {\n return {\n ...state,\n currentUploadState: 'Uploading',\n currentUploadPercent: Math.round((100 * action.progressEvent.loaded) / action.progressEvent.total),\n currentUploadError: ''\n };\n }\n\n case UPLOAD_CSV_KB_ERROR: {\n return {\n ...state,\n currentUploadState: 'Error',\n currentUploadPercent: 0,\n currentUploadError: action.error\n };\n }\n\n case CANCEL_REQUEST_UPLOAD_CSV_KB: {\n return {\n ...state,\n currentUploadState: 'Canceled',\n currentUploadPercent: 0,\n currentUploadError: ''\n };\n }\n\n case SET_NAME_INTO_FILE_ERROR_LIST_CSV_KB: {\n return {\n ...state,\n errorFilesList: [...state.errorFilesList, action.name]\n };\n }\n\n case RESET_FILE_STATE_KB: {\n return {\n ...state,\n currentUploadState: '',\n currentUploadPercent: 0,\n currentUploadError: '',\n errorFilesList: [],\n filesToUpload: [],\n fileIndex: -1,\n uploadState: ''\n };\n }\n\n case GET_VULNS_COUNT_SUCCESS: {\n return {\n ...state,\n totalVulnTemplate: action.total\n };\n }\n\n case GET_VULNS_COUNT_FAIL: {\n return {\n ...state,\n isFetching: false,\n error: true,\n errorMessage: action.error\n };\n }\n\n case SET_KNOWLEDGE_BASE_PAGE: {\n return {\n ...state,\n page: action.page\n };\n }\n default: {\n return state;\n }\n }\n}\n\nexport default knowledgeBase;\n","import { copyArray, copy } from '../../Common/Functions/Copy';\n\nimport {\n RESET_STATE_TEMPLATE_CREATE_UPDATE,\n ADD_REPORT_TEMPLATE_CREATE_UPDATE,\n REMOVE_REPORT_TEMPLATE_CREATE_UPDATE,\n SET_REDIRECT_TEMPLATE_CREATE_UPDATE,\n SET_FIELD_NAME_TEMPLATE_CREATE_UPDATE,\n SELECT_CHECK_BOX_TEMPLATE_CREATE_UPDATE,\n REMOVE_REFERENCE_CREATE_UPDATE,\n REMOVE_POLICY_CREATE_UPDATE,\n ADD_REFERENCE_CREATE_UPDATE,\n ADD_POLICY_CREATE_UPDATE,\n SET_TEMPLATE_NAME_TEMPLATE_CREATE_UPDATE,\n TEMPLATE_CREATE_UPDATE_START,\n TEMPLATE_CREATE_UPDATE_FAIL,\n TEMPLATE_CREATE_UPDATE_SUCCESS,\n SET_TEMPLATE_CREATE_UPDATE,\n SET_CUSTOM_ATTRIBUTE_KB_CREATE_UPDATE\n} from '../../Screens/KnowledgeBaseEditCreate/actions/Actions';\n\nconst initialState = {\n id: undefined,\n _id: undefined,\n name: '',\n description: '',\n external_id: '',\n references: [],\n reference: '',\n data: '',\n resolution: '',\n accountability: false,\n availability: false,\n confidentiality: false,\n integrity: false,\n exploitation: '',\n easeofresolution: '',\n policyviolations: [],\n policy: '',\n creator: '',\n create_at: '',\n isFetching: false,\n errorMessage: undefined,\n redirect: false,\n mode: '',\n report: [],\n importSuccess: false,\n successMessage: '',\n ownder: '',\n default_gateway: 'None',\n customfields: {}\n};\n\nfunction knowledgeBaseEditCreate (state = initialState, action) {\n switch (action.type) {\n case RESET_STATE_TEMPLATE_CREATE_UPDATE: {\n return {\n ...initialState\n };\n }\n\n case ADD_REPORT_TEMPLATE_CREATE_UPDATE: {\n const report = copyArray(state.report);\n report.push(action.file);\n\n return {\n ...state,\n report\n };\n }\n\n case REMOVE_REPORT_TEMPLATE_CREATE_UPDATE: {\n const report = copyArray(state.report);\n report.splice(action.index, 1);\n\n return {\n ...state,\n report\n };\n }\n\n case SET_REDIRECT_TEMPLATE_CREATE_UPDATE: {\n return {\n ...state,\n redirect: true,\n importSuccess: false\n };\n }\n\n case SET_FIELD_NAME_TEMPLATE_CREATE_UPDATE: {\n return {\n ...state,\n [action.fieldName]: action.value\n };\n }\n\n case SELECT_CHECK_BOX_TEMPLATE_CREATE_UPDATE: {\n return {\n ...state,\n [action.checkName]: !state[action.checkName]\n };\n }\n\n case REMOVE_REFERENCE_CREATE_UPDATE: {\n const { references } = state;\n references.splice(action.index, 1);\n\n return {\n ...state,\n references\n };\n }\n\n case REMOVE_POLICY_CREATE_UPDATE: {\n const { policyviolations } = state;\n policyviolations.splice(action.index, 1);\n\n return {\n ...state,\n policyviolations\n };\n }\n\n case ADD_REFERENCE_CREATE_UPDATE: {\n if (state.reference) {\n const references = [...state.references];\n references.push(state.reference);\n\n return {\n ...state,\n references,\n reference: ''\n };\n }\n\n return {\n ...state\n };\n }\n\n case ADD_POLICY_CREATE_UPDATE: {\n if (state.policy) {\n const policyviolations = [...state.policyviolations];\n policyviolations.push(state.policy);\n\n return {\n ...state,\n policyviolations,\n policy: ''\n };\n }\n\n return {\n ...state\n };\n }\n\n case SET_TEMPLATE_NAME_TEMPLATE_CREATE_UPDATE: {\n const { templatenames } = state;\n templatenames[action.index] = action.value;\n\n return {\n ...state,\n templatenames\n };\n }\n\n case TEMPLATE_CREATE_UPDATE_START: {\n return {\n ...state,\n isFetching: true,\n errorMessage: ''\n };\n }\n\n case TEMPLATE_CREATE_UPDATE_FAIL: {\n return {\n ...state,\n isFetching: false,\n errorMessage: action.error\n };\n }\n\n case TEMPLATE_CREATE_UPDATE_SUCCESS: {\n return {\n ...initialState\n };\n }\n\n case SET_TEMPLATE_CREATE_UPDATE: {\n return {\n ...state,\n isFetching: false,\n id: action.template.id,\n name: action.template.name,\n description: action.template.description,\n external_id: action.template.external_id,\n references: action.template.refs,\n reference: '',\n data: action.template.data,\n resolution: action.template.resolution,\n accountability: action.template.impact.accountability,\n availability: action.template.impact.availability,\n confidentiality: action.template.impact.confidentiality,\n integrity: action.template.impact.integrity,\n exploitation: action.template.exploitation,\n easeofresolution: action.template.easeofresolution,\n policyviolations: action.template.policyviolations,\n policy: '',\n customfields: action.template.customfields\n };\n }\n\n case SET_CUSTOM_ATTRIBUTE_KB_CREATE_UPDATE: {\n const customfields = copy(state.customfields);\n customfields[action.key] = action.value;\n\n return {\n ...state,\n customfields\n };\n }\n\n default:\n return state;\n }\n}\n\nexport default knowledgeBaseEditCreate;\n","import {\n SAVE_SETTINGS_CHANGE_PASSWORD_START,\n SAVE_SETTINGS_CHANGE_PASSWORD_SUCCESS,\n SAVE_SETTINGS_CHANGE_PASSWORD_FAIL\n} from 'store/Settings/changePasswordActions';\n\nimport {\n LOAD_SETTINGS_LOGIN_SETTINGS_SUCCESS,\n SAVE_SETTINGS_LOGIN_SETTINGS_FAIL,\n SAVE_SETTINGS_LOGIN_SETTINGS_START,\n SAVE_SETTINGS_LOGIN_SETTINGS_CLEAR,\n SAVE_SETTINGS_LOGIN_SETTINGS_SUCCESS,\n SET_SETTINGS_CHANGE_LOGIN_SETTINGS_FIELD\n} from './loginSettingsActions';\nimport {\n SET_SETTINGS_SHOW_MODAL\n} from './settingsActions';\n\nconst initialState = {\n changePassword: {\n isFetching: false,\n error: false,\n message: ''\n },\n loginSettings: {\n logMeLastWorkspaceUsed: false\n }\n};\n\nfunction settings (state = initialState, action) {\n switch (action.type) {\n //\n // CHANGE PASSWORD section\n //\n case SAVE_SETTINGS_CHANGE_PASSWORD_START: {\n return {\n ...state,\n changePassword: {\n ...state.changePassword,\n isFetching: true\n }\n };\n }\n\n case SAVE_SETTINGS_CHANGE_PASSWORD_SUCCESS: {\n return {\n ...state,\n changePassword: {\n ...initialState.changePassword,\n error: false,\n message: 'Your password was saved successfully.',\n isFetching: false\n }\n };\n }\n\n case SAVE_SETTINGS_CHANGE_PASSWORD_FAIL: {\n return {\n ...state,\n changePassword: {\n ...state.changePassword,\n isFetching: false,\n error: true,\n message: action.message\n }\n };\n }\n\n //\n // LOGIN SETTINGS section\n //\n case SET_SETTINGS_CHANGE_LOGIN_SETTINGS_FIELD: {\n return {\n ...state,\n loginSettings: {\n ...state.loginSettings,\n [action.field]: action.value\n }\n };\n }\n\n case SAVE_SETTINGS_LOGIN_SETTINGS_START: {\n return {\n ...state,\n loginSettings: {\n ...state.loginSettings,\n isFetching: true\n }\n };\n }\n\n case SAVE_SETTINGS_LOGIN_SETTINGS_CLEAR: {\n return {\n ...state,\n changePassword: {\n ...initialState.changePassword\n }\n };\n }\n\n case SAVE_SETTINGS_LOGIN_SETTINGS_SUCCESS: {\n return {\n ...state,\n loginSettings: {\n ...state.loginSettings,\n logMeLastWorkspaceUsed: action.logMeLastWorkspaceUsed,\n isFetching: false,\n error: false,\n message: action.message\n }\n };\n }\n\n case SAVE_SETTINGS_LOGIN_SETTINGS_FAIL: {\n return {\n ...state,\n loginSettings: {\n ...state.loginSettings,\n isFetching: false,\n error: true,\n message: action.message\n }\n };\n }\n\n case LOAD_SETTINGS_LOGIN_SETTINGS_SUCCESS: {\n return {\n ...state,\n loginSettings: {\n ...state.loginSettings,\n logMeLastWorkspaceUsed: action.autoSelectWs,\n isFetching: false\n }\n };\n }\n\n // COMMON SETTINGS section\n case SET_SETTINGS_SHOW_MODAL: {\n return {\n ...state,\n showModal: action.showModal\n };\n }\n\n default: {\n return state;\n }\n }\n}\n\nexport default settings;\n","import api from 'services/api';\n\n// **\n// settings section\n// **\nexport const SET_SETTINGS_SHOW_MODAL = 'SET_SETTINGS_SHOW_MODAL';\n\nexport const GET_SETTINGS_TEMPLATES_START = 'GET_SETTINGS_TEMPLATES_START';\nexport const GET_SETTINGS_TEMPLATES_SUCCESS = 'GET_SETTINGS_TEMPLATES_SUCCESS';\nexport const GET_SETTINGS_TEMPLATES_FAIL = 'GET_SETTINGS_TEMPLATES_FAIL';\n\n// **\n// settings section\n// **\n\nexport function closeModal () {\n return async (dispatch) => {\n dispatch({ type: SET_SETTINGS_SHOW_MODAL, showModal: false });\n };\n}\n\nexport function openModal () {\n return async (dispatch) => {\n dispatch({ type: SET_SETTINGS_SHOW_MODAL, showModal: true });\n };\n}\n\nexport function getTemplates (tool) {\n return async (dispatch) => {\n dispatch({ type: GET_SETTINGS_TEMPLATES_START });\n try {\n const response = await api.settings.fetchTemplates(tool);\n return dispatch({ type: GET_SETTINGS_TEMPLATES_SUCCESS, templates: response.templates });\n } catch (e) {\n return dispatch({ type: GET_SETTINGS_TEMPLATES_FAIL, error: true, message: 'There was an error, please try again.' });\n }\n };\n}\n","import * as types from './types';\n\nconst initialState = {\n attributes: [],\n caToEdit: null\n};\n\nexport default function customAttributes (state = initialState, action) {\n switch (action.type) {\n case types.GET_CUSTOM_ATTRIBUTES: {\n return {\n ...state,\n attributes: [...action.attributes]\n };\n }\n case types.SET_CUSTOM_ATTRIBUTE_TO_EDIT: {\n return {\n ...state,\n caToEdit: action.ca\n };\n }\n case types.ADD_CUSTOM_ATTRIBUTE: {\n return {\n ...state,\n attributes: [...state.attributes, action.ca]\n };\n }\n\n case types.DELETE_CUSTOM_ATTRIBUTE: {\n return {\n ...state,\n attributes: state.attributes.filter((field) => field.id !== action.idToDelete)\n };\n }\n\n case types.EDIT_CUSTOM_ATTRIBUTE: {\n return {\n ...state,\n attributes: [...action.newCaList],\n caToEdit: null\n };\n }\n\n case types.SET_CUSTOM_ATTRIBUTES: {\n return {\n ...state,\n attributes: action.attributes\n };\n }\n\n default: {\n return state;\n }\n }\n}\n","export const AGENTS_GET_USER_AGENTS = 'AGENTS_GET_USER_AGENTS';\nexport const AGENTS_FETCHING = 'AGENTS_FETCHING';\nexport const AGENTS_FAIL = 'AGENTS_FAIL';\nexport const AGENTS_SUCCESS = 'AGENTS_SUCCESS';\nexport const AGENTS_GET_TOKEN = 'AGENTS_GET_TOKEN';\nexport const AGENTS_GET_TOOLS = 'AGENTS_GET_TOOLS';\nexport const AGENTS_CREATE_WIZARD_RESET = 'AGENTS_CREATE_WIZARD_RESET';\nexport const AGENTS_CREATE_WIZARD_ADD_TOOL = 'AGENTS_CREATE_WIZARD_ADD_TOOL';\nexport const AGENTS_CREATE_WIZARD_REMOVE_TOOL = 'AGENTS_CREATE_WIZARD_REMOVE_TOOL';\nexport const AGENTS_CREATE_WIZARD_SET_FIELDS_TOOL = 'AGENTS_CREATE_WIZARD_SET_FIELDS_TOOL';\nexport const AGENTS_GET_MANIFEST = 'AGENTS_GET_MANIFEST';\nexport const RESET_NEW_AGENT = 'RESET_NEW_AGENT';\nexport const SET_NEW_AGENT = 'SET_NEW_AGENT';\n\nexport const AGENTS_RUN_SET_WORKSPACES = 'AGENTS_RUN_SET_WORKSPACES';\nexport const AGENTS_RUN_SET_IGNORE_INFO = 'AGENTS_RUN_SET_IGNORE_INFO';\nexport const AGENTS_RUN_SET_RESOLVE_HOSTNAME = 'AGENTS_RUN_SET_RESOLVE_HOSTNAME';\n","import filter from 'lodash/filter';\nimport * as types from './types';\n\nexport const initialState = {\n isFetching: false,\n error: false,\n errorMessage: '',\n errors: {},\n token: '',\n tokenDuration: 60,\n userAgents: [],\n triggerAgent: {\n tools: [],\n workspaces: [],\n ignoreInfo: false,\n resolveHostname: false\n },\n agentTypes: {},\n draftNewAgent: {\n name: '',\n server: '',\n tools: []\n }\n};\n\nfunction agents (state = initialState, action) {\n switch (action.type) {\n case types.AGENTS_FETCHING: {\n return {\n ...state,\n isFetching: true,\n error: false,\n errorMessage: '',\n errors: {}\n };\n }\n\n case types.AGENTS_GET_USER_AGENTS: {\n return {\n ...state,\n isFetching: false,\n error: false,\n userAgents: action.userAgents\n };\n }\n\n case types.AGENTS_FAIL: {\n return {\n ...state,\n isFetching: false,\n error: true,\n errorMessage: action.errorMessage,\n errors: action.errors\n };\n }\n\n case types.AGENTS_SUCCESS: {\n return {\n ...state,\n isFetching: false,\n error: false,\n errorMessage: '',\n errors: {}\n };\n }\n\n case types.AGENTS_GET_TOKEN: {\n return {\n ...state,\n isFetching: false,\n error: false,\n token: action.token,\n tokenExpiresIn: action.tokenExpiresIn,\n tokenDuration: action.tokenDuration\n };\n }\n\n case types.AGENTS_GET_TOOLS: {\n return {\n ...state,\n isFetching: false,\n error: false,\n triggerAgent: {\n ...state.triggerAgent,\n agentId: action.id,\n tools: action.tools\n }\n };\n }\n\n case types.AGENTS_RUN_SET_WORKSPACES: {\n return {\n ...state,\n triggerAgent: {\n ...state.triggerAgent,\n workspaces: action.workspaces\n }\n };\n }\n\n case types.AGENTS_RUN_SET_IGNORE_INFO: {\n return {\n ...state,\n triggerAgent: {\n ...state.triggerAgent,\n ignoreInfo: action.ignoreInfo\n }\n };\n }\n\n case types.AGENTS_RUN_SET_RESOLVE_HOSTNAME: {\n return {\n ...state,\n triggerAgent: {\n ...state.triggerAgent,\n resolveHostname: action.resolveHostname\n }\n };\n }\n\n case types.AGENTS_CREATE_WIZARD_RESET: {\n return {\n ...state,\n isFetching: false,\n error: false,\n draftNewAgent: initialState.draftNewAgent\n };\n }\n\n case types.AGENTS_CREATE_WIZARD_ADD_TOOL: {\n return {\n ...state,\n isFetching: false,\n error: false,\n draftNewAgent: {\n ...state.draftNewAgent,\n tools: [...state.draftNewAgent.tools, action.tool]\n }\n };\n }\n\n case types.AGENTS_CREATE_WIZARD_REMOVE_TOOL: {\n return {\n ...state,\n isFetching: false,\n error: false,\n draftNewAgent: {\n ...state.draftNewAgent,\n tools: filter(state.draftNewAgent.tools, (e) => (e.name !== action.tool))\n }\n };\n }\n\n case types.AGENTS_CREATE_WIZARD_SET_FIELDS_TOOL: {\n // se reemplaza el objeto con newitem.\n const newItem = [\n { name: action.toolName, variables: action.fields }\n ];\n const tools = state.draftNewAgent.tools.map((obj) => newItem.find((o) => o.name === obj.name) || obj); // busco el objeto y reemplazo.\n\n return {\n ...state,\n isFetching: false,\n error: false,\n draftNewAgent: {\n ...state.draftNewAgent,\n tools\n }\n };\n }\n\n case types.AGENTS_GET_MANIFEST: {\n return {\n ...state,\n agentTypes: action.data\n };\n }\n\n case types.SET_NEW_AGENT: {\n return {\n ...state,\n draftNewAgent: {\n ...action.data\n }\n };\n }\n\n case types.RESET_NEW_AGENT: {\n return {\n ...state,\n draftNewAgent: initialState.draftNewAgent\n };\n }\n\n default: {\n return state;\n }\n }\n}\n\nexport default agents;\n","export default {\n showError: false,\n message: ''\n};\n","import get from 'lodash/get';\nimport initialState from './initialState';\nimport { SHOW_ERROR, HIDE_ERROR } from './actions';\n\nfunction errorReducer (state = initialState, action) {\n switch (action.type) {\n case HIDE_ERROR: {\n return {\n ...state,\n showError: false\n };\n }\n\n case SHOW_ERROR: {\n return {\n ...state,\n showError: true,\n message: get(action, 'message', 'There was an error, please try again.')\n };\n }\n\n default: {\n return {\n ...state\n };\n }\n }\n}\n\nexport default errorReducer;\n","import {\n ADD_WORKSPACE_SUCCESS\n} from 'Screens/Wizard/actions/Actions';\n\nimport get from 'lodash/get';\nimport { SET_MODE_HOST_CREATE_UPDATE } from 'store/HostEditCreate/types';\nimport { SET_URL_RETURN } from '../../Screens/Faraday/actions/Actions';\nimport { SET_MODE_MANAGE_CREATE_UPDATE } from '../../Screens/ManageEditCreate/actions/Actions';\nimport { SET_MODE_TEMPLATE_CREATE_UPDATE } from '../../Screens/KnowledgeBaseEditCreate/actions/Actions';\nimport { LOAD_PREFERENCES } from '../../Screens/Login/actions/Actions';\nimport {\n GET_DATA_WORKSPACES_SUCCESS,\n WORKSPACE_SELECTED_FOR_WORKING,\n GET_WORKSPACES_FOR_WORKING_STARTED,\n GET_WORKSPACES_FOR_WORKING_SUCCESS,\n GET_WORKSPACES_FOR_WORKING_FAILURE,\n CURRENT_WORKSPACE_EDITED_UPDATE,\n SET_CURRENT_WORKSPACE_AS_INVALID,\n SET_SHOW_WORKSPACE_VALIDATOR\n} from '../../Screens/Workspaces/actions/Actions';\n\nconst initialState = {\n isFetching: false,\n workspaces: [],\n workspaceSelected: undefined,\n readonly: false,\n workspaceList: [],\n showWorkspaceValidator: false,\n error: false,\n errorMessage: '',\n mode: '',\n permissions: {},\n version: '',\n hash: '',\n apiVersion: '',\n role: '',\n userName: '',\n urlReturn: ''\n};\n\nfunction faraday (state = initialState, action) {\n switch (action.type) {\n case WORKSPACE_SELECTED_FOR_WORKING: {\n const ws = action.workspace ? state.workspaces.filter((ws) => ws.name === action.workspace)[0] : null;\n const readonly = get(ws, 'readonly', false);\n return {\n ...state, workspaceSelected: action.workspace, readonly\n };\n }\n\n case CURRENT_WORKSPACE_EDITED_UPDATE: {\n const ws = action.oldWsName ? state.workspaces.filter((ws) => ws.name === action.oldWsName)[0] : null;\n const readonly = get(ws, 'readonly', false);\n return {\n ...state, workspaceSelected: action.newWsName, readonly\n };\n }\n\n case GET_WORKSPACES_FOR_WORKING_STARTED:\n return { ...state, isFetching: true };\n\n case GET_WORKSPACES_FOR_WORKING_SUCCESS:\n return { ...state, workspaces: action.data, isFetching: false };\n\n case GET_WORKSPACES_FOR_WORKING_FAILURE:\n return {\n ...state, error: true, errorMessage: action.data, isFetching: false\n };\n\n case GET_DATA_WORKSPACES_SUCCESS:\n return { ...state, workspaces: action.data };\n\n case SET_MODE_MANAGE_CREATE_UPDATE:\n case SET_MODE_HOST_CREATE_UPDATE:\n case SET_MODE_TEMPLATE_CREATE_UPDATE: {\n return { ...state, mode: action.mode };\n }\n\n case LOAD_PREFERENCES: {\n return {\n ...state,\n permissions: action.permissions,\n hash: action.hash,\n apiVersion: action.apiVersion,\n role: action.role,\n userName: action.userName,\n email: action.email,\n wsPort: action.wsPort,\n licenseStatus: get(action, 'licenseStatus.license_status', 'INVALID')\n };\n }\n\n case ADD_WORKSPACE_SUCCESS: {\n const workspaces = state.workspaces;\n workspaces.unshift(action.data);\n\n return {\n ...state,\n workspaces,\n workspaceSelected: action.data.name\n };\n }\n\n case SET_CURRENT_WORKSPACE_AS_INVALID: {\n return {\n ...state,\n workspaceSelected: null,\n workspaces: state.workspaces.filter((ws) => ws.name !== state.workspaceSelected),\n showWorkspaceValidator: true\n };\n }\n\n case SET_SHOW_WORKSPACE_VALIDATOR: {\n return {\n ...state,\n showWorkspaceValidator: action.show\n };\n }\n\n case SET_URL_RETURN: {\n return {\n ...state,\n urlReturn: action.urlReturn\n };\n }\n\n default:\n return state;\n }\n}\n\nexport default faraday;\n","import {\n GROUP_BY\n} from './constants';\n\nconst initialState = {\n selectedEntity: '',\n saveEnabled: false,\n isAdvancedMode: false,\n vulns: {\n page: 1,\n rowsPerPage: 50,\n customFilters: [],\n order_by: [\n {\n field: 'confirmed',\n direction: 'desc'\n },\n {\n field: 'severity',\n direction: 'desc'\n }\n ],\n group_by: GROUP_BY.none.key.value,\n filters: [],\n filterHistory: [],\n expandedFilter: [],\n advancedFilter: '',\n filterError: ''\n },\n assets: {\n page: 1,\n rowsPerPage: 50,\n customFilters: [],\n order_by: [\n {\n field: 'vulnerability_critical_generic_count',\n direction: 'desc'\n },\n {\n field: 'vulnerability_high_generic_count',\n direction: 'desc'\n },\n {\n field: 'vulnerability_medium_generic_count',\n direction: 'desc'\n }\n ],\n group_by: GROUP_BY.none.key.value,\n filters: [],\n filterHistory: [],\n expandedFilter: [],\n advancedFilter: '',\n filterError: ''\n },\n knowledgeBase: {\n page: 1,\n rowsPerPage: 100,\n customFilters: [],\n order_by: [\n {\n field: 'severity',\n direction: 'desc'\n },\n {\n field: 'name',\n direction: 'asc'\n }\n ],\n group_by: GROUP_BY.none.key.value,\n filters: [],\n filterHistory: []\n },\n vulnsAssets: {\n page: 1,\n rowsPerPage: 50,\n customFilters: [],\n order_by: [\n {\n field: 'confirmed',\n direction: 'desc'\n },\n {\n field: 'severity',\n direction: 'desc'\n }\n ],\n group_by: GROUP_BY.none.key.value,\n filters: []\n },\n workspaces: {\n page: 1,\n rowsPerPage: 500,\n customFilters: [],\n group_by: GROUP_BY.none.key.value,\n filters: [],\n filterHistory: [],\n expandedFilter: [],\n advancedFilter: '',\n filterError: ''\n },\n dashboard: {\n confirmed: false,\n closed: false\n }\n};\n\nexport default initialState;\n","import get from 'lodash/get';\nimport * as types from './types';\nimport initialState from './initialState';\n\nexport default function filters (state = initialState, action) {\n const { entity } = action;\n let entityInitialState;\n let entityState;\n\n if (entity) {\n entityInitialState = get(initialState, entity, undefined);\n entityState = get(state, entity, undefined);\n }\n\n switch (action.type) {\n case types.SET_ADVANCED_MODE: {\n return {\n ...state,\n isAdvancedMode: action.isAdvancedMode\n };\n }\n case types.SET_SAVE_STATUS: {\n return {\n ...state,\n saveEnabled: action.saveEnabled\n };\n }\n case types.SET_SELECTED_ENTITY: {\n return {\n ...state,\n selectedEntity: action.selectedEntity\n };\n }\n case types.SET_CUSTOM_FILTERS: {\n return {\n ...state,\n [entity]: {\n ...entityState,\n customFilters: action.customFilters\n }\n };\n }\n case types.REMOVE_FILTERS: {\n return {\n ...state,\n [entity]: {\n ...entityState,\n filters: entityInitialState.filters,\n expandedFilter: entityInitialState.expandedFilter\n }\n };\n }\n case types.RESET_FILTERS: {\n return {\n ...state,\n [entity]: {\n ...entityInitialState,\n customFilters: entityState.customFilters\n }\n };\n }\n case types.SET_ADVANCED_FILTER: {\n return {\n ...state,\n [entity]: {\n ...entityState,\n advancedFilter: action.value\n }\n };\n }\n case types.SET_FILTER_ERROR: {\n return {\n ...state,\n [entity]: {\n ...entityState,\n saveEnabled: false,\n filterError: action.filterError\n }\n };\n }\n case types.SET_GROUP_BY: {\n return {\n ...state,\n [entity]: {\n ...entityState,\n group_by: action.group_by,\n expandedFilter: entityInitialState.expandedFilter\n }\n };\n }\n case types.CLEAR_GROUP_BY: {\n return {\n ...state,\n [entity]: {\n ...entityState,\n order_by: entityInitialState.order_by,\n group_by: entityInitialState.group_by,\n expandedFilter: entityInitialState.expandedFilter\n }\n };\n }\n case types.SET_ORDER_BY: {\n return {\n ...state,\n [entity]: {\n ...entityState,\n order_by: action.order_by\n }\n };\n }\n case types.CLEAR_ORDER_BY: {\n return {\n ...state,\n [entity]: {\n ...entityState,\n order_by: entityInitialState.order_by\n }\n };\n }\n case types.SET_PAGE_NUMBER: {\n return {\n ...state,\n [entity]: {\n ...entityState,\n page: action.pageNumber\n }\n };\n }\n case types.SET_FILTERS: {\n return {\n ...state,\n [entity]: {\n ...entityState,\n filters: action.filters\n }\n };\n }\n case types.SET_EXPANDED_FILTER: {\n return {\n ...state,\n [entity]: {\n ...entityState,\n expandedFilter: action.expandedFilter\n }\n };\n }\n case types.CLEAR_FILTERS: {\n return {\n ...state,\n [entity]: {\n ...entityState,\n filters: entityInitialState.filters,\n expandedFilter: entityInitialState.expandedFilter,\n filterHistory: entityInitialState.filterHistory\n }\n };\n }\n case types.ADD_FILTER_TO_HISTORY: {\n return {\n ...state,\n [entity]: {\n ...entityState,\n filterHistory: [...entityState.filterHistory, action.filter]\n }\n };\n }\n case types.SET_FILTER_HISTORY: {\n return {\n ...state,\n [entity]: {\n ...entityState,\n filterHistory: action.filterHistory\n }\n };\n }\n case types.SET_KEYS: {\n return {\n ...state,\n [entity]: {\n ...entityState,\n keys: action.keys\n }\n };\n }\n case types.CLEAR_KEYS: {\n return {\n ...state,\n [entity]: {\n ...entityState,\n keys: entityInitialState.keys\n }\n };\n }\n case types.SAVE_DASHBOARD_TEMPLATE: {\n return {\n ...state,\n dashboard: {\n ...state.dashboard,\n [action.filter]: action.status\n }\n };\n }\n default: {\n return state;\n }\n }\n}\n","import { OPEN_MODAL, CLOSE_MODAL } from './actions';\nimport * as m from './modals';\n\nconst initialState = { // estas props deben coincidir con los valores de las constantes del archivo modals.js\n [m.MODAL_MANAGE_BULK_UPDATE]: false,\n [m.MODAL_MANAGE_BULK_UPDATE_CONFIRMATION]: false,\n [m.MODAL_RUN_USER_AGENT]: false,\n [m.MODAL_AGENT_TOKEN]: false,\n [m.MODAL_AGENT_CREATE]: false,\n [m.MODAL_WORKSPACE_CREATE_EDIT]: false,\n [m.MODAL_EVIDENCE]: false,\n [m.MODAL_REDIRECT_CONFIRMATION]: false,\n [m.MODAL_APPLY_TEMPLATE]: false,\n [m.MODAL_UPGRADE_LICENSE_SIDEBAR]: false,\n [m.MODAL_UPGRADE_LICENSE_ACTION_BAR]: false,\n [m.MODAL_UPGRADE_LICENSE_VULN_DETAIL]: false\n};\n\nfunction modals (state = initialState, action) {\n switch (action.type) {\n case OPEN_MODAL: {\n return {\n ...state,\n [action.payload]: true\n };\n }\n\n case CLOSE_MODAL: {\n return {\n ...state,\n [action.payload]: false\n };\n }\n default: {\n return {\n ...state\n };\n }\n }\n}\n\nexport default modals;\n","import { TOGGLE_SIDEBAR, SET_SIDEBAR } from './actions';\n\nconst initialState = {\n isOpen: false\n};\n\nfunction sideBar (state = initialState, action) {\n switch (action.type) {\n case TOGGLE_SIDEBAR: {\n return {\n ...state,\n isOpen: !state.isOpen\n };\n }\n case SET_SIDEBAR: {\n return {\n ...state,\n isOpen: action.isOpen\n };\n }\n\n default: {\n return state;\n }\n }\n}\n\nexport default sideBar;\n","import * as types from './types';\n\nconst initialState = {\n redirectPathname: '',\n redirectSearch: '',\n redirectSaveHistory: false,\n redirectHasPendingChanges: false\n};\n\nfunction global (state = initialState, action) {\n switch (action.type) {\n case types.REDIRECT_START: {\n return {\n ...state,\n redirectPathname: action.pathname,\n redirectSearch: action.search,\n redirectSaveHistory: action.saveHistory\n };\n }\n case types.REDIRECT_CLEAR: {\n return {\n ...state,\n redirectPathname: initialState.redirectPathname,\n redirectSearch: initialState.redirectSearch,\n redirectSaveHistory: initialState.redirectSaveHistory\n };\n }\n case types.SET_HAS_PENDING_CHANGES: {\n return {\n ...state,\n redirectHasPendingChanges: action.hasPendingChanges\n };\n }\n case types.EXPAND_COLLAPSE: {\n const defaultFields = state.tabs && state.tabs[action.tab] ? state.tabs[action.tab] : null;\n return {\n ...state,\n tabs: {\n ...state.tabs,\n [action.tab]: {\n ...defaultFields,\n ...action.fields\n }\n }\n };\n }\n default:\n return state;\n }\n}\n\nexport default global;\n","import {\n LOGIN_START,\n LOGIN_SUCCESS,\n LOGIN_FAIL,\n HIDE_ERROR_MESSAGE_LOGIN,\n LOGOUT_SUCCESS,\n LOGOUT_SUCCESS_REDIRECT,\n NOT_LOGGED,\n SET_FIRST_LOGIN,\n SET_REMEMBER_ME,\n FORGOT_PASSWORD_REQUEST,\n FORGOT_PASSWORD_SUCCESS,\n FORGOT_PASSWORD_FAILURE,\n RESET_PASSWORD_REQUEST,\n RESET_PASSWORD_SUCCESS,\n RESET_PASSWORD_FAILURE,\n LOGIN_FETCH_FINISHED,\n VALIDATING_SESSION_START,\n VALIDATING_SESSION_END\n} from '../../Screens/Login/actions/Actions';\n\nconst initialState = {\n loggedIn: false,\n isFetching: false,\n error: false,\n errorMessage: '',\n user: '',\n firstLogin: false,\n rememberMe: false,\n emailSent: false,\n currentEmail: '',\n submitted: false,\n roles: []\n};\n\nfunction sesion (state = initialState, action) {\n switch (action.type) {\n case VALIDATING_SESSION_START:\n return { ...state, validatingSession: true };\n\n case VALIDATING_SESSION_END:\n return { ...state, validatingSession: false };\n\n case LOGIN_START:\n return { ...state, isFetching: true };\n\n case LOGIN_SUCCESS:\n return {\n ...state, loggedIn: true, user: action.user, roles: action.roles, csrfToken: action.csrfToken\n };\n\n case LOGIN_FETCH_FINISHED:\n return {\n ...state, isFetching: false\n };\n\n case LOGIN_FAIL:\n return {\n ...state,\n isFetching: false,\n loggedIn: false,\n error: true,\n errorMessage: action.data.message\n };\n\n case HIDE_ERROR_MESSAGE_LOGIN:\n return { ...state, error: false, errorMessage: '' };\n\n case LOGOUT_SUCCESS:\n return { ...state, loggedIn: false, rememberMe: false };\n\n case LOGOUT_SUCCESS_REDIRECT:\n return { ...state, loggedIn: false, rememberMe: false };\n\n case NOT_LOGGED:\n return { ...state, isFetching: false, loggedIn: false };\n\n case SET_FIRST_LOGIN: {\n return {\n ...state,\n firstLogin: action.firstLogin\n };\n }\n\n case SET_REMEMBER_ME: {\n return {\n ...state,\n rememberMe: action.value\n };\n }\n\n case FORGOT_PASSWORD_REQUEST:\n return {\n ...state,\n isFetching: true,\n emailSent: false,\n currentEmail: ''\n };\n\n case FORGOT_PASSWORD_SUCCESS:\n return {\n ...state,\n isFetching: false,\n emailSent: true,\n currentEmail: action.email\n };\n\n case FORGOT_PASSWORD_FAILURE:\n return {\n ...state,\n isFetching: false,\n error: true,\n errorMessage: action.data.message,\n emailSent: false,\n currentEmail: ''\n };\n\n case RESET_PASSWORD_REQUEST:\n return {\n ...state,\n isFetching: true\n };\n\n case RESET_PASSWORD_SUCCESS:\n return {\n ...state,\n isFetching: false\n };\n\n case RESET_PASSWORD_FAILURE:\n return {\n ...state,\n isFetching: false\n };\n default:\n return state;\n }\n}\n\nexport default sesion;\n","import clone from 'lodash/clone';\nimport {\n ADD_REFERENCE_MANAGE_CREATE_UPDATE,\n REMOVE_REFERENCE_MANAGE_CREATE_UPDATE,\n ADD_POLICY_MANAGE_CREATE_UPDATE,\n REMOVE_POLICY_MANAGE_CREATE_UPDATE,\n SELECT_CHECK_BOX_MANAGE_CREATE_UPDATE,\n SET_FIELD_NAME_MANAGE_CREATE_UPDATE,\n REMOVE_FILE_MANAGE_CREATE_UPDATE,\n SET_CUSTOM_FIELD_MANAGE_CREATE_UPDATE,\n SET_ATTACHMENT_MANAGE_CREATE_UPDATE,\n DELETE_ATTACHMENT_MANAGE_CREATE_UPDATE,\n MANAGE_CREATE_UPDATE_START,\n MANAGE_CREATE_UPDATE_SUCCESS,\n MANAGE_CREATE_UPDATE_FAIL,\n RESET_STATE_MANAGE_CREATE_UPDATE,\n SET_REDIRECT_MANAGE_CREATE_UPDATE,\n GET_TEMPLATES_MANAGE_EDIT_CREATE,\n GET_TEMPLATES_MANAGE_EDIT_SUCCESS,\n GET_TEMPLATES_MANAGE_EDIT_FAIL,\n SET_VALUE_FIELD_PREVIEW_MANAGE_EDIT_CREATE,\n GET_HOSTS_REQUEST,\n GET_HOSTS_SUCCESS,\n GET_HOSTS_FAIL,\n GET_SERVICES_REQUEST,\n GET_SERVICES_SUCCESS,\n GET_SERVICES_FAIL,\n HOST_CREATE_REQUEST,\n HOST_CREATE_SUCCESS,\n HOST_CREATE_FAIL,\n ADD_TARGET,\n REMOVE_ASSET,\n SET_FILES_TO_UPLOAD_MANAGE,\n SET_UPLOAD_STATE_MANAGE,\n UPDATE_FILES_TO_UPLOAD,\n UPLOAD_REPORT_MANAGE_UPDATE_PERCENT,\n RESET_FILE_STATE_MANAGE,\n CANCEL_REQUEST_MANAGE,\n SET_FILE_INDEX_MANAGE,\n UPLOAD_REPORT_ERROR_MANAGE,\n SET_NAME_INTO_FILE_ERROR_LIST,\n CREATE_SERVICES_REQUEST,\n CREATE_SERVICES_SUCCESS,\n CREATE_SERVICES_FAIL,\n ADD_CVE_MANAGE_CREATE_UPDATE,\n REMOVE_CVE_MANAGE_CREATE_UPDATE,\n RESET_ERROR_VALUE\n} from '../../Screens/ManageEditCreate/actions/Actions';\nimport { copyArray, copy } from '../../Common/Functions/Copy';\n\nconst initialState = {\n _attachments: {},\n accountability: false,\n availability: false,\n confidentiality: false,\n confirmed: true,\n currentUploadError: '',\n currentUploadPercent: 0,\n currentUploadState: '',\n customFields: {},\n data: '',\n description: '',\n easeOfResolution: undefined,\n errorFilesList: [],\n errorMessage: undefined,\n externalId: '',\n fileIndex: -1,\n files: [],\n filesToUpload: [],\n host: '',\n hosts: [],\n id: undefined,\n importSuccess: false,\n integrity: false,\n isFetching: false,\n method: '',\n mode: '',\n paramName: '',\n params: '',\n path: '',\n policies: [],\n port: '',\n protocol: '',\n query: '',\n redirect: false,\n references: [],\n report: [],\n request: '',\n resolution: '',\n response: '',\n service: '',\n services: [],\n severity: '',\n status_code: '',\n targets: [],\n templates: [],\n uploadState: '',\n vuln: undefined,\n website: '',\n CVE: []\n};\n\nfunction manageEditCreate (state = initialState, action) {\n switch (action.type) {\n case ADD_TARGET: {\n const targets = copyArray(state.targets);\n targets.push(action.data);\n return {\n ...state,\n targets\n };\n }\n case REMOVE_ASSET: {\n const targets = copyArray(state.targets);\n const index = targets.findIndex((item) => item.type === action.data.type && item.id === action.data.id);\n if (index > -1) {\n targets.splice(index, 1);\n }\n return {\n ...state,\n targets\n };\n }\n\n case ADD_CVE_MANAGE_CREATE_UPDATE: {\n const CVE = [...state.CVE];\n CVE.push(action.CVE);\n\n return {\n ...state,\n CVE\n };\n }\n\n case REMOVE_CVE_MANAGE_CREATE_UPDATE: {\n const CVE = [...state.CVE];\n const filterList = CVE.filter((key) => key !== action.CVE);\n\n return {\n ...state,\n CVE: filterList\n };\n }\n\n case ADD_REFERENCE_MANAGE_CREATE_UPDATE: {\n const references = [...state.references];\n references.push(action.reference);\n\n return {\n ...state,\n references\n };\n }\n\n case REMOVE_REFERENCE_MANAGE_CREATE_UPDATE: {\n const references = [...state.references];\n references.splice(action.index, 1);\n\n return {\n ...state,\n references\n };\n }\n\n case ADD_POLICY_MANAGE_CREATE_UPDATE: {\n const policies = clone(state.policies);\n policies.push(action.policy);\n\n return {\n ...state,\n policies\n };\n }\n\n case REMOVE_POLICY_MANAGE_CREATE_UPDATE: {\n const policies = clone(state.policies);\n policies.splice(action.index, 1);\n\n return {\n ...state,\n policies\n };\n }\n\n case SELECT_CHECK_BOX_MANAGE_CREATE_UPDATE: {\n return {\n ...state,\n [action.checkName]: !state[action.checkName]\n };\n }\n\n case SET_FIELD_NAME_MANAGE_CREATE_UPDATE: {\n return {\n ...state,\n [action.fieldName]: action.value\n };\n }\n\n case REMOVE_FILE_MANAGE_CREATE_UPDATE: {\n const files = copyArray(state.files);\n files.splice(action.index, 1);\n\n return {\n ...state,\n files\n };\n }\n\n case SET_CUSTOM_FIELD_MANAGE_CREATE_UPDATE: {\n const customFields = copy(state.customFields);\n customFields[action.key] = action.value;\n\n return {\n ...state,\n customFields\n };\n }\n\n case SET_ATTACHMENT_MANAGE_CREATE_UPDATE: {\n return {\n ...state,\n _attachments: {\n ...state._attachments, // eslint-disable-line no-underscore-dangle\n [action.name]: {\n content_type: action.content_type,\n data: action.data\n }\n },\n files: [action.file]\n };\n }\n\n case DELETE_ATTACHMENT_MANAGE_CREATE_UPDATE: {\n const { [action.key]: deleted, ...attachments } = state._attachments; // eslint-disable-line no-underscore-dangle\n return {\n ...state,\n _attachments: {\n ...attachments\n }\n };\n }\n\n case MANAGE_CREATE_UPDATE_START: {\n return {\n ...state,\n isFetching: true\n };\n }\n\n case MANAGE_CREATE_UPDATE_SUCCESS: {\n return {\n ...state,\n isFetching: false,\n redirect: true\n };\n }\n\n case MANAGE_CREATE_UPDATE_FAIL: {\n return {\n ...state,\n isFetching: false,\n errorMessage: action.errorMessage,\n error: true\n };\n }\n\n case RESET_STATE_MANAGE_CREATE_UPDATE: {\n return {\n ...initialState,\n references: []\n };\n }\n\n case SET_REDIRECT_MANAGE_CREATE_UPDATE: {\n return {\n ...state,\n redirect: true,\n importSuccess: false\n };\n }\n\n case GET_TEMPLATES_MANAGE_EDIT_CREATE: {\n return {\n ...state,\n isFetching: true\n };\n }\n\n case GET_TEMPLATES_MANAGE_EDIT_SUCCESS: {\n return {\n ...state,\n isFetching: false,\n templates: action.data\n };\n }\n\n case GET_TEMPLATES_MANAGE_EDIT_FAIL: {\n return {\n ...state,\n isFetching: false,\n error: true,\n errorMessage: 'Failed to get templates'\n };\n }\n\n case SET_VALUE_FIELD_PREVIEW_MANAGE_EDIT_CREATE: {\n return {\n ...state,\n [action.field]: action.value\n };\n }\n\n case GET_HOSTS_REQUEST: {\n return {\n ...state,\n isFetching: true\n };\n }\n\n case GET_HOSTS_SUCCESS: {\n return {\n ...state,\n hosts: action.data.rows\n };\n }\n\n case GET_HOSTS_FAIL: {\n return {\n ...state,\n isFetching: false,\n errorMessage: action.error\n };\n }\n\n case GET_SERVICES_REQUEST: {\n return {\n ...state,\n isFetching: true\n };\n }\n\n case GET_SERVICES_SUCCESS: {\n return {\n ...state,\n services: action.data.services\n };\n }\n\n case GET_SERVICES_FAIL: {\n return {\n ...state,\n isFetching: false,\n errorMessage: action.error\n };\n }\n\n case HOST_CREATE_REQUEST: {\n return {\n ...state,\n isFetching: true\n };\n }\n\n case HOST_CREATE_SUCCESS: {\n return {\n ...state,\n hosts: [...state.hosts, { id: action.data.id, key: action.data.id, value: action.data }]\n };\n }\n\n case HOST_CREATE_FAIL: {\n return {\n ...state,\n isFetching: false,\n errorMessage: action.error\n };\n }\n\n case CREATE_SERVICES_REQUEST: {\n return {\n ...state,\n isFetching: true\n };\n }\n\n case CREATE_SERVICES_SUCCESS: {\n const index = state.targets.findIndex((t) => (t.id === action.service.parent));\n const tempTargets = state.targets;\n let host = state.hosts.find((item) => item.id === action.service.host_id);\n if (host) {\n host = host.value;\n tempTargets[index] = { ...action.service, hostname: host.name, hostnameData: host.hostnames.length > 0 ? host.hostnames : '' };\n }\n return {\n ...state,\n services: [...state.services, { id: action.service.id, key: action.service.id, value: action.service }],\n targets: tempTargets\n };\n }\n\n case CREATE_SERVICES_FAIL: {\n return {\n ...state,\n isFetching: false,\n errorMessage: action.error\n };\n }\n\n case SET_FILES_TO_UPLOAD_MANAGE: {\n return {\n ...state,\n filesToUpload: action.files\n };\n }\n\n case SET_UPLOAD_STATE_MANAGE: {\n return {\n ...state,\n uploadState: action.state\n };\n }\n\n case SET_FILE_INDEX_MANAGE: {\n return {\n ...state,\n fileIndex: action.index\n };\n }\n\n case UPLOAD_REPORT_ERROR_MANAGE: {\n return {\n ...state,\n currentUploadState: 'Error',\n currentUploadPercent: 0,\n currentUploadError: action.error\n };\n }\n\n case UPDATE_FILES_TO_UPLOAD: {\n const { filesToUpload } = state;\n const tempFiles = filesToUpload;\n tempFiles.shift();\n return {\n ...state,\n filesToUpload: tempFiles\n };\n }\n\n case SET_NAME_INTO_FILE_ERROR_LIST: {\n return {\n ...state,\n errorFilesList: [...state.errorFilesList, action.name]\n };\n }\n\n case UPLOAD_REPORT_MANAGE_UPDATE_PERCENT: {\n return {\n ...state,\n currentUploadState: 'Uploading',\n currentUploadError: ''\n };\n }\n\n case RESET_FILE_STATE_MANAGE: {\n return {\n ...state,\n currentUploadState: '',\n currentUploadError: '',\n errorFilesList: []\n };\n }\n\n case CANCEL_REQUEST_MANAGE: {\n return {\n ...state,\n currentUploadState: 'Canceled',\n currentUploadPercent: 0,\n currentUploadError: ''\n };\n }\n\n case RESET_ERROR_VALUE: {\n return {\n ...state,\n errorMessage: '',\n error: false\n };\n }\n\n default:\n return state;\n }\n}\n\nexport default manageEditCreate;\n","import { SET_MODE_HOST_CREATE_UPDATE } from 'store/HostEditCreate/types';\n\nimport {\n WORKSPACE_SELECTED_FOR_WORKING,\n GET_WORKSPACES_FOR_WORKING_STARTED,\n GET_WORKSPACES_FOR_WORKING_SUCCESS,\n GET_WORKSPACES_FOR_WORKING_FAILURE,\n STOP_REDIRECT,\n WORKSPACE_SELECTED,\n DELETE_WORKSPACES,\n GET_DATA_WORKSPACE_START,\n GET_DATA_WORKSPACE_FAIL,\n GET_DATA_WORKSPACE_SUCCESS,\n WORKSPACE_UPDATE_SUCCESS,\n SET_VISIBILITY_CREATE_MODAL_WORKSPACE,\n WORKSPACE_MASSIVE_UPDATE_FAIL,\n WORKSPACE_MASSIVE_UPDATE_SUCCESS,\n MORE_OPTIONS_STATUS_CHANGE_WORKSPACE,\n TOGGLE_INACTIVE_FLAG,\n GET_DATA_WORKSPACES_SUCCESS,\n WORKSPACE_SHOW_GRID_VIEW,\n WORKSPACE_ENABLE_DISABLE\n} from '../../Screens/Workspaces/actions/Actions';\n\nimport {\n SET_MODE_MANAGE_CREATE_UPDATE\n} from '../../Screens/ManageEditCreate/actions/Actions';\n\nconst initialState = {\n isFetching: false,\n workspaces: [],\n workspaceSelected: [],\n workspaceList: [],\n error: false,\n errorMessage: '',\n redirect: false,\n mode: '',\n workspacesSelected: [],\n lastSelected: -1,\n lastWorkspaceSelected: {},\n lastIndexForRange: -1,\n showModalCreate: false,\n moreOptionsOpened: false,\n showInactive: false,\n workspaceCount: 0,\n showGridView: true\n};\n\nfunction faraday (state = initialState, action) {\n switch (action.type) {\n case GET_DATA_WORKSPACE_START: {\n return {\n ...state,\n isFetching: true\n };\n }\n\n case GET_DATA_WORKSPACE_FAIL: {\n return {\n ...state,\n isFetching: false,\n error: true,\n errorMessage: action.data\n };\n }\n\n case GET_DATA_WORKSPACE_SUCCESS: {\n return {\n ...state,\n isFetching: false,\n workspaces: action.data\n };\n }\n\n case WORKSPACE_SELECTED_FOR_WORKING:\n return { ...state, workspaceSelected: action.workspace /* redirect: action.redirect */ };\n\n case STOP_REDIRECT:\n return { ...state, redirect: false };\n\n case GET_WORKSPACES_FOR_WORKING_STARTED:\n return { ...state, isFetching: true };\n\n case GET_WORKSPACES_FOR_WORKING_SUCCESS:\n return {\n ...state,\n workspaces: action.data,\n workspaceCount: action.data.length,\n isFetching: false\n };\n\n case GET_WORKSPACES_FOR_WORKING_FAILURE:\n return {\n ...state, error: true, errorMessage: action.data, isFetching: false\n };\n\n case SET_MODE_MANAGE_CREATE_UPDATE:\n case SET_MODE_HOST_CREATE_UPDATE: {\n return { ...state, mode: action.mode };\n }\n\n case WORKSPACE_SELECTED: {\n const {\n newRowsSelected, lastSelected, indexForRange, rowSelected\n } = action.vulnsSelectedInfo;\n\n return {\n ...state,\n lastWorkspaceSelected: rowSelected,\n workspacesSelected: newRowsSelected,\n lastSelected: lastSelected || -1,\n lastIndexForRange: indexForRange || -1\n };\n }\n\n case DELETE_WORKSPACES: {\n return {\n ...state,\n isFetching: true\n };\n }\n\n case WORKSPACE_UPDATE_SUCCESS: {\n const { workspaceList, workspacesSelected } = state;\n const indexWorkspaces = workspaceList.findIndex((wspace) => wspace.id === action.ws.id);\n workspaceList[indexWorkspaces] = { ...action.ws };\n\n const indexWorkspacesSelected = workspacesSelected.findIndex((wspace) => wspace.id === action.ws.id);\n workspacesSelected[indexWorkspacesSelected] = { ...action.ws };\n\n return {\n ...state,\n workspaceList,\n workspacesSelected,\n isFetching: false\n };\n }\n\n case SET_VISIBILITY_CREATE_MODAL_WORKSPACE: {\n return {\n ...state,\n showModalCreate: action.value\n };\n }\n\n case WORKSPACE_MASSIVE_UPDATE_FAIL: {\n return {\n ...state,\n error: true,\n errorMessage: action.error\n };\n }\n\n case WORKSPACE_MASSIVE_UPDATE_SUCCESS: {\n return {\n ...state,\n workspaces: [...action.workspaces]\n };\n }\n\n case MORE_OPTIONS_STATUS_CHANGE_WORKSPACE: {\n return {\n ...state,\n moreOptionsOpened: action.value\n };\n }\n\n case TOGGLE_INACTIVE_FLAG: {\n return {\n ...state,\n showInactive: !state.showInactive\n };\n }\n\n case GET_DATA_WORKSPACES_SUCCESS: {\n return {\n ...state,\n isFetching: false,\n workspaceList: action.data,\n workspacesSelected: initialState.workspacesSelected\n };\n }\n\n case WORKSPACE_SHOW_GRID_VIEW: {\n return {\n ...state,\n showGridView: action.showGridView\n };\n }\n\n case WORKSPACE_ENABLE_DISABLE: {\n let readonly = state.readonly;\n\n if (action.ws === state.workspaceSelected) readonly = !readonly;\n\n return {\n ...state,\n isFetching: true,\n readonly\n };\n }\n\n default:\n return state;\n }\n}\n\nexport default faraday;\n","import {\n SET_WORKSPACE_FOR_EDIT,\n RESET_STATE_WORKSPACE_CREATE_UPDATE,\n WORKSPACE_CREATE_UPDATE_START,\n WORKSPACE_CREATE_UPDATE_FAIL,\n WORKSPACE_CREATE_UPDATE_SUCCESS,\n SET_FIELD\n} from 'Screens/Workspaces/actions/Actions';\n\nimport {\n SET_FIELD_NAME_HOST_CREATE_UPDATE\n} from 'store/HostEditCreate/types';\n\nconst initialState = {\n id: null,\n name: '',\n description: '',\n start: '',\n end: '',\n scope: [],\n isFetching: false,\n errorMessage: '',\n redirect: false,\n users: [],\n currentName: '',\n workspaceSaved: false\n};\n\nfunction workspaceEditCreate (state = initialState, action) {\n switch (action.type) {\n case SET_FIELD: {\n return {\n ...state,\n [action.field]: action.value\n };\n }\n\n case RESET_STATE_WORKSPACE_CREATE_UPDATE: {\n return {\n ...initialState\n };\n }\n\n case SET_FIELD_NAME_HOST_CREATE_UPDATE: {\n return {\n ...state,\n [action.fieldName]: action.value\n };\n }\n\n case WORKSPACE_CREATE_UPDATE_START: {\n return {\n ...state,\n isFetching: true\n };\n }\n\n case WORKSPACE_CREATE_UPDATE_FAIL: {\n return {\n ...state,\n isFetching: false,\n errorMessage: action.error,\n workspaceSaved: false\n };\n }\n\n case WORKSPACE_CREATE_UPDATE_SUCCESS: {\n return {\n ...state,\n isFetching: false,\n workspaceSaved: true\n };\n }\n\n case SET_WORKSPACE_FOR_EDIT: {\n return {\n ...state,\n ...action.workspace,\n currentName: action.workspace.name,\n start: action.workspace.duration.start_date ? new Date(action.workspace.duration.start_date) : '',\n end: action.workspace.duration.end_date ? new Date(action.workspace.duration.end_date) : ''\n };\n }\n\n default:\n return state;\n }\n}\n\nexport default workspaceEditCreate;\n","const initialState = {\n};\n\nfunction executiveReport (state = initialState, action) {\n switch (action.type) {\n default: {\n return state;\n }\n }\n}\n\nexport default executiveReport;\n","const initialState = {\n};\n\nfunction tags (state = initialState, action) {\n switch (action.type) {\n default: {\n return state;\n }\n }\n}\n\nexport default tags;\n","import {\n CREATION_TYPE, FILE_SELECTOR, INITIAL_MODE, SUMMARY, WORKSPACE_NAME, WORKSPACE_SELECTION\n} from 'Screens/Wizard/constants';\n\nimport {\n LOGIN_TO_INACTIVE_WORKSPACE_ERROR,\n SET_INITIAL_STEP_WIZARD\n} from '../../Screens/Login/actions/Actions';\n\nimport {\n RESET_INITIAL_STEP_WIZARD,\n ADD_WORKSPACE_REQUEST,\n ADD_WORKSPACE_SUCCESS,\n ADD_WORKSPACE_FAIL,\n RESET_STATE_WIZARD,\n SET_STEP_WIZARD,\n SET_WORKSPACE_NAME_WIZARD,\n UPLOAD_REPORT_ERROR_WIZARD,\n UPLOAD_REPORT_WIZARD_UPDATE_PERCENT,\n SET_WIZARD_COMMAND_ID,\n RESET_FILE_STATE_WIZARD,\n CANCEL_REQUEST_WIZARD,\n SET_USER_HAS_BEEN_IN_WIZARD,\n SET_SUMMARY_VALUES_IN_WIZARD,\n RESET_STATE_SUMMARY_WIZARD,\n HIDE_ERROR_MODAL_WIZARD\n} from '../../Screens/Wizard/actions/Actions';\n\nconst initialState = {\n initialStep: null,\n workspaces: [],\n isFetching: false,\n error: false,\n errorMessage: '',\n user: {},\n isSuccess: false,\n width: '450px',\n height: '413px',\n workspaceName: '',\n currentUploadState: '',\n currentUploadPercent: 0,\n currentUploadError: '',\n userHasBeenInWizard: false,\n summary: {\n filename: '',\n vulnCount: 0,\n hostsCount: 0,\n servicesCount: 0\n }\n};\n\nfunction wizard (state = initialState, action) {\n switch (action.type) {\n case SET_INITIAL_STEP_WIZARD: {\n return {\n ...state,\n step: action.step,\n workspaces: action.workspaces,\n width: action.width,\n height: action.height\n };\n }\n\n case RESET_INITIAL_STEP_WIZARD: {\n return {\n ...state,\n step: null,\n width: '450px',\n height: '413px'\n };\n }\n\n case RESET_STATE_WIZARD:\n return { ...initialState };\n\n case RESET_STATE_SUMMARY_WIZARD:\n return {\n ...state,\n summary: initialState.summary\n };\n\n case ADD_WORKSPACE_REQUEST:\n return { ...state, isFetching: true };\n\n case ADD_WORKSPACE_SUCCESS:\n return {\n ...state,\n isFetching: false,\n error: false,\n errorMessage: '',\n isSuccess: true,\n workspaces: [...state.workspaces, action.data],\n workspaceName: action.data.name\n };\n case ADD_WORKSPACE_FAIL:\n return {\n ...state,\n isFetching: false,\n error: true,\n errorMessage: action.data\n };\n\n case SET_STEP_WIZARD: {\n const width = '450px';\n let height = '413px';\n switch (action.step) {\n case WORKSPACE_NAME:\n height = '413px';\n break;\n case CREATION_TYPE:\n height = '438px';\n break;\n case FILE_SELECTOR:\n height = '550px';\n break;\n case INITIAL_MODE:\n // height = '550px';\n height = '500px';\n break;\n case SUMMARY:\n height = '507px';\n break;\n case WORKSPACE_SELECTION:\n height = '506px';\n break;\n default:\n height = '413px';\n break;\n }\n\n return {\n ...state,\n step: action.step,\n width,\n height,\n isSuccess: false\n };\n }\n\n case SET_WORKSPACE_NAME_WIZARD: {\n return {\n ...state,\n workspaceName: action.ws\n };\n }\n\n case UPLOAD_REPORT_ERROR_WIZARD: {\n return {\n ...state,\n currentUploadState: 'Error',\n currentUploadPercent: 0,\n currentUploadError: action.error\n };\n }\n\n case UPLOAD_REPORT_WIZARD_UPDATE_PERCENT: {\n return {\n ...state,\n currentUploadState: 'Uploading',\n currentUploadPercent: Math.round((100 * action.progressEvent.loaded) / action.progressEvent.total),\n currentUploadError: ''\n };\n }\n\n case SET_WIZARD_COMMAND_ID: {\n return {\n ...state,\n commandId: action.commandId,\n currentUploadState: 'Success',\n currentUploadPercent: 100,\n currentUploadError: ''\n };\n }\n\n case RESET_FILE_STATE_WIZARD: {\n return {\n ...state,\n currentUploadState: '',\n currentUploadPercent: 0,\n currentUploadError: ''\n };\n }\n\n case CANCEL_REQUEST_WIZARD: {\n return {\n ...state,\n currentUploadState: 'Canceled',\n currentUploadPercent: 0,\n currentUploadError: ''\n };\n }\n\n case SET_USER_HAS_BEEN_IN_WIZARD: {\n return {\n ...state,\n userHasBeenInWizard: action.value\n };\n }\n\n case SET_SUMMARY_VALUES_IN_WIZARD: {\n return {\n ...state,\n summary: action.data\n };\n }\n\n case LOGIN_TO_INACTIVE_WORKSPACE_ERROR: {\n return {\n ...state,\n error: true,\n errorMessage: action.errorMessage\n };\n }\n\n case HIDE_ERROR_MODAL_WIZARD: {\n return {\n ...state,\n error: false,\n errorMessage: ''\n };\n }\n\n default:\n return state;\n }\n}\n\nexport default wizard;\n","import { combineReducers } from 'redux';\nimport breakpoints from 'store/Reducers/breakpoints/reducer';\nimport dashboard from 'store/Dashboard/reducer';\nimport locale from 'store/locale/reducer';\nimport host from 'store/Host/reducer';\nimport manage from 'store/Manage/reducer';\nimport preferences from 'store/Preferences/reducer';\nimport hostDetail from 'store/HostDetail/reducer';\nimport hostEditCreate from 'store/HostEditCreate/reducer';\nimport fileUploaderContext from 'store/FileUploaderContext/reducer';\nimport knowledgeBase from 'store/KnowledgeBase';\nimport knowledgeBaseEditCreate from 'store/KnowledgeBaseEditCreate';\nimport settings from 'store/Settings/reducer';\nimport customAttributes from 'store/CustomAttributes/reducer';\nimport agents from 'store/Agents/reducer';\nimport errors from 'store/errors/reducer';\nimport faraday from 'store/Faraday/Faraday';\nimport filters from 'store/Filters/reducer';\nimport modals from 'store/modals/reducer';\nimport sideBar from 'store/SideBar/reducer';\nimport global from 'store/Global/reducer';\nimport { connectRouter } from 'connected-react-router';\nimport sesion from '../Sesion/Sesion';\nimport manageEditCreate from './ManageEditCreate';\nimport workspace from './Workspace';\nimport workspaceEditCreate from './WorkspaceEditCreate';\nimport executiveReport from './ExecutiveReport';\nimport tags from './Tags';\nimport wizard from './Wizard';\n\nconst createRootReducer = (history) => combineReducers({\n router: connectRouter(history),\n sesion,\n faraday,\n knowledgeBase,\n customAttributes,\n filters,\n manage,\n manageEditCreate,\n host,\n hostDetail,\n hostEditCreate,\n knowledgeBaseEditCreate,\n workspace,\n workspaceEditCreate,\n executiveReport,\n tags,\n settings,\n dashboard,\n breakpoints,\n locale,\n wizard,\n preferences,\n fileUploaderContext,\n agents,\n errors,\n modals,\n sideBar,\n global\n});\nexport default createRootReducer;\n","import { createStore, applyMiddleware, compose } from 'redux';\nimport thunkMiddleware from 'redux-thunk';\nimport { persistStore, persistReducer } from 'redux-persist';\nimport session from 'redux-persist/lib/storage/session';\nimport autoMergeLevel1 from 'redux-persist/lib/stateReconciler/autoMergeLevel1';\nimport { supported, subscribe } from 'utils/breakpoints/mediaListener';\nimport { routerMiddleware } from 'connected-react-router';\nimport { createBrowserHistory } from 'history';\nimport socketsMiddleware from '../services/websocket/socketsMiddleware';\nimport createRootReducer from './Reducers/index';\n\nexport const history = createBrowserHistory();\n\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n\nconst persistConfig = {\n key: 'faraday',\n storage: session,\n blacklist: [\n 'filters',\n 'manage',\n 'manageEditCreate',\n 'host',\n 'hostDetail',\n 'hostEditCreate',\n 'template',\n 'knowledgeBaseEditCreate',\n 'workspaceEditCreate',\n 'users',\n 'executiveReport',\n 'tags',\n 'settings',\n 'dashboard',\n 'knowledgeBase',\n 'errors',\n 'router',\n 'global'\n ],\n stateReconciler: autoMergeLevel1\n};\n\nconst pReducer = persistReducer(persistConfig, createRootReducer(history));\nconst routeMiddleware = routerMiddleware(history);\nconst middlewares = [routeMiddleware, socketsMiddleware, thunkMiddleware];\nexport const store = createStore(pReducer, composeEnhancers(applyMiddleware(...middlewares)));\n\nif (supported()) subscribe(store);\n\nexport const persistor = persistStore(store);\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { logOut } from 'Screens/Login/actions/Actions';\n\nclass LogOutForced extends Component {\n constructor (props) {\n super(props);\n this.state = {};\n }\n\n componentDidMount () {\n const { logOut } = this.props;\n logOut();\n }\n\n render () {\n return (\n <>\n );\n }\n}\n\nconst mapStateToProps = () => ({\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n logOut: () => {\n dispatch(logOut());\n }\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(LogOutForced);\n","import styled from 'styled-components';\n\nexport const ContainerBox = styled.div`\n user-select: none;\n background: linear-gradient(143deg, rgba(255,255,255,1) 0%, rgba(241,245,248,1) 96%);\n position: absolute;\n height: 100%;\n width: 100%;\n top: 0;\n left: 0;\n display: flex;\n align-items: center;\n`;\nContainerBox.displayName = 'ContainerBox';\n\nexport const Box = styled.div`\n width: ${(props) => (props.width ? `${props.width}` : '450px')};\n box-shadow: 10px 10px 99px 0 rgba(222, 222, 222, 0.8);\n border: solid 1px #dddddd;\n background-color: #ffffff;\n margin-left: auto;\n margin-right: auto;\n padding-top: 55px;\n padding-left: 55px;\n padding-right: 55px;\n padding-bottom: 53px;\n`;\nBox.displayName = 'Box';\n\nexport const LoginLogoContainer = styled.div`\n display: flex;\n justify-content: center;\n margin-bottom: 37px;\n width: 348px;\n display: flex;\n justify-content: left;\n`;\nLoginLogoContainer.displayName = 'LoginLogoContainer';\n\nexport const Logo = styled.img`\n width: 97px;\n`;\nLogo.displayName = 'Logo';\n\nexport const Title = styled.div`\n font-size: 21.5px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.16;\n letter-spacing: normal;\n text-align: left;\n`;\nTitle.displayName = 'Title';\n\nexport const SubTitle = styled.div`\n font-size: 12.5px;\n font-weight: 300;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.17;\n letter-spacing: normal;\n text-align: left;\n color: #7a7e8f;\n margin-top: 14px;\n`;\nSubTitle.displayName = 'SubTitle';\n\nexport const Button = styled.button`\n width: 89px;\n height: 34px;\n border-radius: 2px;\n background-color: #0082ed;\n border: none;\n color: white;\n font-size: 14px;\n font-weight: 400;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.21;\n letter-spacing: normal;\n color: #ffffff;\n float: right;\n margin-top: ${(props) => (props.top ? `${props.top}` : '34px')};\n opacity: ${(props) => (props.disabled ? '0.5' : '1')};\n cursor: ${(props) => (props.disabled ? 'default' : 'pointer')};\n`;\nButton.displayName = 'Button';\n\nexport const BackButton = styled(Button)`\n border: solid 1px #707070;\n background-color: #ffffff;\n color: #1c2243;\n float: left;\n`;\nBackButton.displayName = 'BackButton';\n\nexport const ButtonsContainer = styled.div`\n flex: 0 0 34px;\n margin-top: 22px;\n & > * {\n margin-top: 0px;\n }\n`;\nButtonsContainer.displayName = 'ButtonsContainer';\n\nexport const ButtonWithoutBackground = styled.button`\n width: 149px;\n height: 34px;\n border-radius: 2px;\n background-color: #ffffff;\n border: 1px solid #0082ed;\n color: white;\n font-size: 14px;\n font-weight: 400;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.21;\n letter-spacing: normal;\n color: #0082ed;\n margin-top: ${(props) => (props.top ? `${props.top}` : '34px')};\n opacity: ${(props) => (props.disabled ? '0.5' : '1')};\n cursor: ${(props) => (props.disabled ? 'default' : 'pointer')};\n float: left; \n`;\nButtonWithoutBackground.displayName = 'ButtonWithoutBackground';\n\nexport const PullLeft = styled.div`\n display: flex;\n align-content: flex-start;\n`;\nPullLeft.displayName = 'PullLeft';\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport logo from 'Images/faraday_logo.svg';\nimport { selectApiVersion } from 'store/Faraday/selectors';\nimport {\n ContainerBox, Box, LoginLogoContainer, Logo\n} from './styled';\n\nconst Container = ({ children, width, height }) => {\n const apiVersion = useSelector(selectApiVersion);\n const frontVersion = process.env.REACT_APP_VERSION;\n\n return (\n \n \n \n \n \n {children}\n \n \n );\n};\n\nexport default Container;\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconUpload = function SvgIconUpload(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 41.158,\n height: 34,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.579 0A12.4 12.4 0 0 0 8.332 10.08a10.262 10.262 0 0 0 1.957 20.341h4.921a1.342 1.342 0 1 0 0-2.684h-4.92a7.608 7.608 0 0 1-.7-15.183 1.342 1.342 0 0 0 1.2-1.174 9.848 9.848 0 1 1 19.559 2.32 1.342 1.342 0 0 0 1.328 1.51h.531a6.263 6.263 0 0 1 0 12.527h-6.261a1.342 1.342 0 1 0 0 2.684h6.263a8.923 8.923 0 0 0 .811-17.811A12.388 12.388 0 0 0 20.579.001Zm0 16.105a1.2 1.2 0 0 0-.909.35l-4.921 4.474a1.354 1.354 0 0 0-.084 1.9 1.4 1.4 0 0 0 1.9.084l2.67-2.433v12.178a1.342 1.342 0 1 0 2.684 0V20.481l2.67 2.433a1.434 1.434 0 0 0 1.9-.084 1.351 1.351 0 0 0-.084-1.9l-4.921-4.474a1.132 1.132 0 0 0-.905-.351Z\",\n fill: \"#0082ed\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconUpload, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon_upload.cd99484a.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\nimport { ReactComponent as CloudIcon } from 'Images/icon_upload.svg';\n\nexport const Wrapper = styled.div`\n \n`;\nWrapper.displayName = 'Wrapper';\n\nexport const DrageableZone = styled.div`\n padding: 20px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background-color: #f6f6f8; \n width: ${(props) => (props.onManage ? '100%' : '340px')};\n text-align: ${(props) => (props.onManage ? 'center' : 'unset')};\n`;\nDrageableZone.displayName = 'DrageableZone';\n\nexport const DragableZoneActive = styled.div`\n width: ${(props) => (props.onManage ? '452px' : 'unset')};\n height: ${(props) => (props.onManage ? '425px' : 'unset')};\n border: 1px solid #0082ed;\n background-color: aliceblue;\n position: absolute;\n top: 0;\n bottom: 0;\n left: ${(props) => (props.onManage ? '-2px' : '0')};\n right: 0;\n z-index: 9999;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\nDragableZoneActive.displayName = 'DragableZoneActive';\n\nexport const DragableZoneActiveContent = styled.div`\n position: absolute;\n display: flex;\n flex-direction: column;\n color: grey;\n font-size: 36px;\n`;\nDragableZoneActiveContent.displayName = 'DragableZoneActiveContent';\n\nexport const Text = styled.div`\n color: #0082ed;\n font-size: 14.5px;\n line-height: 21px;\n user-select: none;\n`;\nText.displayName = 'Text';\n\nexport const TextInactive = styled.div`\n color: #7a7e8f;\n margin: 16px auto 0px auto;\n font-size: 14.5px;\n line-height: 21px;\n font-weight: 600;\n text-align: center;\n user-select: none;\n`;\nText.displayName = 'Text';\n\nexport const SubTextInactive = styled.div`\n color: #7a7e8f;\n font-size: 14.5px;\n line-height: 21px;\n font-weight: 400;\n margin: auto;\n text-align: center;\n user-select: none;\n`;\nText.displayName = 'Text';\n\nexport const DragableZoneInActiveContent = styled.div`\n\n`;\nDragableZoneInActiveContent.displayName = 'DragableZoneInActiveContent';\n\nexport const Button = styled.button`\n width: 89px;\n height: 34px;\n border-radius: 2px;\n background-color: #0082ed;\n border: none;\n color: white;\n font-size: 14px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.21;\n letter-spacing: normal;\n color: #ffffff;\n margin-top: ${(props) => (props.top ? `${props.top}` : '9px')};\n opacity: ${(props) => (props.disabled ? '0.5' : '1')};\n cursor: ${(props) => (props.disabled ? 'default' : 'pointer')};\n user-select: none;\n`;\nButton.displayName = 'Button';\n\nexport const FileSelectorButton = styled.label`\n display: block;\n width: 89px;\n height: 34px;\n border-radius: 2px;\n background-color: #0082ed;\n border: none;\n color: white;\n font-size: 14px;\n font-weight: 400;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.21;\n letter-spacing: normal;\n color: #ffffff;\n margin: ${(props) => (props.top ? `${props.top} auto auto auto` : '9px auto auto auto')};\n opacity: ${(props) => (props.disabled ? '0.5' : '1')};\n cursor: ${(props) => (props.disabled ? 'default' : 'pointer')};\n padding-top: 2px;\n text-align: center;\n user-select: none;\n`;\nFileSelectorButton.displayName = 'FileSelectorButton';\n\nexport const DropInput = styled.input`\n opacity: 0;\n position: absolute;\n z-index: -1;\n`;\nDropInput.displayName = 'DropInput';\n\nexport const Cloud = styled(CloudIcon)`\n display: block;\n cursor: default;\n width: 41px;\n height: 34px;\n margin: auto;\n & path{\n fill: ${({ color }) => (color || '#7a7e8f')};\n }\n`;\n","/* eslint-disable react/destructuring-assignment */\nimport React, { Component } from 'react';\nimport {\n DrageableZone,\n DragableZoneActive,\n DragableZoneActiveContent,\n DragableZoneInActiveContent,\n Text,\n TextInactive,\n FileSelectorButton,\n SubTextInactive,\n DropInput,\n Cloud\n} from './styled';\n\nconst dropRef = React.createRef();\n\nfunction handleDrag (e) {\n e.preventDefault();\n e.stopPropagation();\n}\n\nclass DragFile extends Component {\n constructor (props) {\n super(props);\n this.state = {\n dragging: false\n };\n\n this.handleDragIn = this.handleDragIn.bind(this);\n this.handleDragOut = this.handleDragOut.bind(this);\n this.handleDrop = this.handleDrop.bind(this);\n this.onChange = this.onChange.bind(this);\n }\n\n componentDidMount () {\n const div = dropRef.current;\n this.dragCounter = 0;\n div.addEventListener('dragenter', this.handleDragIn);\n div.addEventListener('dragleave', this.handleDragOut);\n div.addEventListener('dragover', handleDrag);\n div.addEventListener('drop', this.handleDrop);\n }\n\n componentWillUnmount () {\n const div = dropRef.current;\n div.removeEventListener('dragenter', this.handleDragIn);\n div.removeEventListener('dragleave', this.handleDragOut);\n div.removeEventListener('dragover', handleDrag);\n div.removeEventListener('drop', this.handleDrop);\n }\n\n onChange (e) {\n this.props.handleDrop(e.target.files);\n }\n\n handleDragIn (e) {\n e.preventDefault();\n e.stopPropagation();\n this.dragCounter += 1;\n if (e.dataTransfer.items && e.dataTransfer.items.length > 0) {\n this.setState({ dragging: true });\n }\n }\n\n handleDragOut (e) {\n e.preventDefault();\n e.stopPropagation();\n this.dragCounter -= 1;\n if (this.dragCounter > 0) return;\n this.setState({ dragging: false });\n }\n\n handleDrop (e) {\n e.preventDefault();\n e.stopPropagation();\n this.setState({ dragging: false });\n if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {\n this.props.handleDrop(e.dataTransfer.files);\n e.dataTransfer.clearData();\n this.dragCounter = 0;\n }\n }\n\n render () {\n const { onManage } = this.props;\n const { dragging } = this.state;\n const styles = {\n cover: {\n position: 'absolute',\n width: 450,\n height: onManage ? 425 : 550,\n left: 0,\n right: 0,\n marginLeft: 'auto',\n marginRight: 'auto',\n top: 0,\n bottom: 0,\n marginTop: 'auto',\n marginBottom: 'auto',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n }\n };\n\n return (\n \n {dragging &&\n (\n \n \n \n Drop your files here\n \n \n )}\n \n \n Drag and drop your files here\n or\n Browse\n \n \n \n );\n }\n}\nexport default DragFile;\n","import styled from 'styled-components';\n\nexport const LoadingIcon = styled.img`\n height: 5px;\n width: 300px;\n margin-left: auto;\n margin-right: auto;\n`;\nLoadingIcon.displayName = 'LoadingIcon';\n\nexport const Wrapper = styled.div`\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const FileUploaderContainer = styled.div`\n background-color: #f6f6f8;\n width: ${(props) => (props.onManage ? '100%' : '340px')};\n overflow-y: auto;\n`;\nFileUploaderContainer.displayName = 'FileUploaderContainer';\n\nexport const FileName = styled.div`\n color: ${(props) => (props.currentUploadState === 'Error' ? '#c71717' : '#419bf9')};\n font-size: 12.5px;\n margin-bottom: 34px;\n margin-top: 17px;\n`;\nFileName.displayName = 'FileName';\n\nexport const LongTimeMessage = styled.div`\n color: #7a7e8f;\n font-size: 12.5px;\n line-height: 18px;\n margin-top: 21px;\n`;\nLongTimeMessage.displayName = 'LongTimeMessage';\n\nexport const CustomProgressBar = styled.div`\n .progressbar-container {\n margin-left: auto;\n margin-right: auto;\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: transparent;\n transition: width .6s ease;\n width: 299px;\n height: 4px;\n background-color: ${(props) => (props.currentUploadState === 'Error' ? '#f4d9d9 !important' : '#e6eff6 !important')};\n }\n\n h2 {\n display: none !important;\n }\n\n .progressbar-progress{\n background-color: ${(props) => (props.currentUploadState === 'Error' ? '#f4d9d9 !important' : '#419bf9 !important')};\n }\n`;\nCustomProgressBar.displayName = 'CustomProgressBar';\n\nexport const File = styled.img`\n width: 28px;\n height: 34px;\n color: #7a7e8f;\n margin-top: 34px;\n`;\nFile.displayName = 'File';\n","import React, { Component } from 'react';\nimport fileImg from 'Images/generic_file.svg';\nimport PropTypes from 'prop-types';\nimport LoadingGif from 'Images/faraday_loadingbar.gif';\n\nimport {\n FileUploaderContainer,\n FileName,\n LongTimeMessage,\n CustomProgressBar,\n File, LoadingIcon\n} from './styled';\n\nclass FileUploader extends Component {\n componentDidMount () {\n const { uploadFile } = this.props;\n uploadFile();\n }\n\n render () {\n const {\n currentUploadState,\n currentUploadError,\n onManage,\n filenames\n } = this.props;\n\n return (\n \n <>\n \n {filenames}\n { currentUploadState !== 'Error' &&\n (\n \n \n \n )\n }\n { currentUploadState === 'Error' ? currentUploadError : 'This may take a while' }\n \n \n );\n }\n}\n\nFileUploader.propTypes = {\n uploadFile: PropTypes.func.isRequired\n};\n\nFileUploader.defaultProps = {\n};\n\nexport default FileUploader;\n","import BlueButton from 'Common/Components/BlueButton';\nimport styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n \n`;\nWrapper.displayName = 'Wrapper';\n\nexport const CustomBlueButton = styled(BlueButton)`\n float: right;\n width: 89px;\n height: 34px;\n`;\nCustomBlueButton.displayName = 'CustomBlueButton';\n\nexport const Title = styled.div`\n font-size: 21.5px;\n font-weight: 600;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.16;\n letter-spacing: normal;\n text-align: left;\n display: inline-block;\n max-width: 220px;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\nTitle.displayName = 'Title';\n","/* eslint-disable react/destructuring-assignment */\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport {\n SubTitle,\n BackButton,\n ButtonsContainer,\n ButtonWithoutBackground,\n PullLeft\n} from 'Common/Components/MainContainer/styled';\nimport DragFile from 'Common/Components/DragFile';\nimport FileUploader from 'Common/Components/FileUploader';\nimport {\n resetFileState,\n createManually,\n cancelRequest,\n uploadFile\n} from 'Screens/Wizard/actions/Actions';\nimport { INITIAL_MODE, WORKSPACE_SELECTION } from 'Screens/Wizard/constants';\nimport { FormattedMessage } from 'react-intl';\nimport { selectWorkspaceActivity } from 'store/Preferences/workspace/selectors';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport isEmpty from 'lodash/isEmpty';\nimport {\n Wrapper, CustomBlueButton, Title\n} from './styled';\n\nclass StepFileSelector extends Component {\n constructor (props) {\n super(props);\n this.state = { files: [] };\n this.handleDrop = this.handleDrop.bind(this);\n this.uploadFileWizard = this.uploadFileWizard.bind(this);\n }\n\n componentDidMount () {\n this.props.resetFileState();\n }\n\n componentDidUpdate () {\n const { currentUploadState } = this.props;\n\n if (currentUploadState === 'Canceled') {\n this.setState({ files: [] });\n this.props.resetFileState();\n }\n }\n\n handleDrop (files) {\n const fileList = [];\n for (let i = 0; i < files.length; i += 1) {\n if (!files[i].name) return;\n fileList.push(files[i]);\n }\n this.setState({ files: fileList });\n }\n\n uploadFileWizard () {\n this.props.uploadFile(this.state.files[0]);\n }\n\n render () {\n const { workspaceName, currentUploadState, workspaceActivity } = this.props;\n\n return (\n \n \n Workspace\n \n  \n {workspaceName}\n \n \n \n \n\n \n {this.state.files.length === 0 ? : null}\n {this.state.files.length > 0\n ? (\n \n )\n : null}\n \n {currentUploadState === 'Error' ? { this.props.resetFileState(); this.setState({ files: [] }); } }> : null}\n {currentUploadState === '' ? (isEmpty(workspaceActivity) ? this.props.onStep(INITIAL_MODE, '450px', '550px') : this.props.onStep(WORKSPACE_SELECTION, '450px', '506px')) }> : null }\n {currentUploadState === 'Uploading' ? { this.props.cancelRequest(); } }> : null }\n {currentUploadState === ''\n ? (\n { this.props.createManually(); } } label={ } />\n )\n : null }\n \n \n );\n }\n}\n\nStepFileSelector.propTypes = {\n workspaceName: PropTypes.string,\n uploadFile: PropTypes.func.isRequired\n};\n\nStepFileSelector.defaultProps = {\n workspaceName: ''\n};\n\nconst mapStateToProps = (state) => ({\n user: state.sesion.user,\n workspaceName: selectCurrentWorkspace(state),\n currentUploadState: state.wizard.currentUploadState,\n currentUploadPercent: state.wizard.currentUploadPercent,\n currentUploadError: state.wizard.currentUploadError,\n firstLogin: state.sesion.firstLogin,\n workspaceActivity: selectWorkspaceActivity(state)\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n resetFileState: () => {\n dispatch(resetFileState());\n },\n createManually: () => {\n dispatch(createManually());\n },\n cancelRequest: () => {\n dispatch(cancelRequest());\n },\n uploadFile: (files) => {\n dispatch(uploadFile(files));\n }\n});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(StepFileSelector));\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n \n`;\nWrapper.displayName = 'Wrapper';\n\nexport const InfoText = styled.div`\n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.72;\n letter-spacing: normal;\n text-align: left;\n color: #7a7e8f;\n margin: 34px 0;\n`;\nInfoText.displayName = 'InfoText';\n\nexport const OptionsWrapper = styled.div`\n text-align: left;\n`;\nOptionsWrapper.displayName = 'OptionsWrapper';\n\nexport const Option = styled.div`\n font-size: 14.5px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 0.97;\n letter-spacing: normal;\n text-align: left;\n color: #1c2243;\n display: inline-flex;\n width: 340px;\n height: 34px;\n border-radius: 3px;\n padding-left: 11px;\n cursor: pointer;\n padding-top: 10px;\n color: #1c2243;\n margin-bottom: 5px;\n\n .arrow {\n display: none;\n }\n\n svg{\n color: #7a7e8f;\n }\n\n &:hover{\n color: ${colors.grey19} !important;\n background-color: #e6eff6;\n svg {\n color: ${colors.grey19} !important; \n }\n\n .arrow {\n display: block\n }\n }\n`;\nOption.displayName = 'Option';\n\nexport const OptionText = styled.div`\n font-size: 14.5px;\n font-weight: 400;\n font-stretch: normal;\n font-style: normal;\n line-height: 0.97;\n letter-spacing: normal;\n text-align: left;\n`;\nOptionText.displayName = 'OptionText';\n\nexport const OptionIcon = styled.span`\n margin-right: 8px;\n svg{\n font-size: 1.5em;\n bottom: 4px;\n position: relative;\n height: 20px;\n width: 20px;\n }\n`;\nOptionIcon.displayName = 'OptionIcon';\n\nexport const HoverIcon = styled.span`\n margin-left: auto;\n margin-right: 11px; \n`;\nHoverIcon.displayName = 'HoverIcon';\n\nexport const SubTitleWs = styled.div`\n max-width: 90px;\n text-overflow: ellipsis;\n overflow: hidden;\n font-size: 12.5px;\n font-weight: 300;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.17;\n letter-spacing: normal;\n text-align: left;\n color: #7a7e8f;\n margin-top: 14px;\n`;\nSubTitleWs.displayName = 'SubTitleWs';\n\nexport const OptionTextWs = styled.div`\n max-width: 130px;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 14.5px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 0.97;\n letter-spacing: normal;\n text-align: left;\n`;\nOptionTextWs.displayName = 'OptionTextWs';\n","/* eslint-disable react/destructuring-assignment */\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport { Title, SubTitle, PullLeft } from 'Common/Components/MainContainer/styled';\nimport { AiOutlineCloudUpload as CloudUpload, AiOutlineEdit as Edit } from 'react-icons/ai';\nimport { TiClipboard as List } from 'react-icons/ti';\n\nimport { FaChevronRight as ChevronRight } from 'react-icons/fa';\nimport { FILE_SELECTOR, WORKSPACE_SELECTION, WORKSPACE_NAME } from 'Screens/Wizard/constants';\nimport {\n Wrapper,\n InfoText,\n OptionsWrapper,\n Option,\n OptionText,\n OptionIcon,\n HoverIcon,\n SubTitleWs,\n OptionTextWs\n} from './styled';\n\nclass StepInitialMode extends Component {\n constructor (props) {\n super(props);\n this.state = {\n };\n }\n\n render () {\n const { workspace } = this.props;\n return (\n \n \n Welcome, \n { this.props.user }\n !\n \n \n Your workspace\n \n  \n {workspace}\n \n \n has been created\n \n Next up, you can:\n \n \n\n \n {\n this.props.workspaces.length > 0 &&\n (\n \n )\n }\n \n \n );\n }\n}\n\nStepInitialMode.propTypes = {\n onStep: PropTypes.func.isRequired,\n workspaces: PropTypes.array.isRequired,\n user: PropTypes.string.isRequired\n};\n\nStepInitialMode.defaultProps = {\n\n};\n\nconst mapDispatchToProps = () => ({\n\n});\n\nconst mapStateToProps = (state) => ({\n workspaces: state.faraday.workspaces,\n user: state.sesion.user,\n workspace: selectCurrentWorkspace(state)\n});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(StepInitialMode));\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n \n`;\nWrapper.displayName = 'Wrapper';\n\nexport const BlueText = styled.span`\n color: #419bf9;\n font-weight: 300;\n`;\nBlueText.displayName = 'BlueText';\n\nexport const SummaryContainer = styled.div`\n margin-top: 35px;\n`;\nSummaryContainer.displayName = 'SummaryContainer';\n\nexport const SummaryItem = styled.div`\n font-size: 14.5px;\n font-weight: 400;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.17;\n letter-spacing: normal;\n text-align: left;\n color: #000000;\n margin-bottom: 14px;\n`;\nSummaryItem.displayName = 'SummaryItem';\n\nexport const ButtonWithoutBackgroundRight = styled.div`\n background-color: #ffffff;\n border-radius: 2px;\n border: 1px solid #0082ed;\n color: #0082ed;\n cursor: ${(props) => (props.disabled ? 'default' : 'pointer')};\n flex: 0 0 149px;\n font-size: 14px;\n font-stretch: normal;\n font-style: normal;\n font-weight: 400;\n height: 34px;\n letter-spacing: normal;\n line-height: 2.21;\n opacity: ${(props) => (props.disabled ? '0.5' : '1')};\n text-align: center;\n`;\nButtonWithoutBackgroundRight.displayName = 'ButtonWithoutBackgroundRight';\n\nexport const Button = styled.button`\n background-color: #0082ed;\n border-radius: 2px;\n border: none;\n color: white;\n cursor: ${(props) => (props.disabled ? 'default' : 'pointer')};\n flex: 0 0 89px;\n font-size: 14px;\n font-stretch: normal;\n font-style: normal;\n font-weight: 400;\n height: 34px;\n letter-spacing: normal;\n line-height: 2.21;\n margin-left: auto;\n opacity: ${(props) => (props.disabled ? '0.5' : '1')};\n`;\nButton.displayName = 'Button';\n\nexport const ButtonsContainerCustom = styled.div`\n display: flex;\n flex-direction: row;\n margin-top: 22px;\n`;\nButtonsContainerCustom.displayName = 'ButtonsContainerCustom';\n","/* eslint-disable react/destructuring-assignment */\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport { setStep, resetSummary } from 'Screens/Wizard/actions/Actions';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport { FILE_SELECTOR } from 'Screens/Wizard/constants';\nimport { Title, SubTitle } from 'Common/Components/MainContainer/styled';\nimport { FormattedMessage } from 'react-intl';\nimport { redirect } from 'store/Router/actions';\nimport {\n Wrapper,\n BlueText,\n SummaryContainer,\n SummaryItem,\n ButtonWithoutBackgroundRight,\n ButtonsContainerCustom,\n Button\n} from './styled';\n\nclass StepSummary extends Component {\n constructor (props) {\n super(props);\n this.state = {};\n this.redirect = this.redirect.bind(this);\n }\n\n redirect () {\n this.props.redirect(`/feed/${this.props.workspaceName}`);\n this.props.resetSummary();\n }\n\n render () {\n const {\n filename,\n vulnCount,\n hostsCount,\n servicesCount\n } = this.props.summary;\n const { setStep, workspaceName } = this.props;\n return (\n \n <FormattedMessage id=\"wizard.steps.summary.title\" />\n \n The file\n \n { ` ${filename} ` }\n \n has been fully processed.\n \n\n \n \n \n { ` ${vulnCount} ` }\n \n \n \n\n \n \n { ` ${hostsCount} ` }\n \n \n \n\n \n \n { ` ${servicesCount} ` }\n \n \n \n\n {`Have been added to ${workspaceName}`}\n \n \n setStep(FILE_SELECTOR) }>Upload another file\n \n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n summary: state.wizard.summary,\n workspaceName: selectCurrentWorkspace(state)\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n setStep: (step) => {\n dispatch(setStep(step));\n },\n resetSummary: () => {\n dispatch(resetSummary());\n },\n redirect: (pathname) => {\n dispatch(redirect(pathname));\n }\n});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(StepSummary));\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n \n`;\nWrapper.displayName = 'Wrapper';\n\nexport const FieldTitle = styled.div`\n font-size: 14.5px;\n font-weight: 400;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.17;\n letter-spacing: normal;\n text-align: left;\n color: #1c2243;\n margin-top: 31px;\n margin-bottom: 19px;\n`;\nFieldTitle.displayName = 'FieldTitle';\n\nexport const ErrorMessage = styled.div`\n font-size: 14.5px;\n font-weight: 600;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.17;\n letter-spacing: normal;\n text-align: left;\n color: ${colors.redPink};\n float: left;\n margin-top: 45px;\n\n`;\nErrorMessage.displayName = 'ErrorMessage';\n","/* eslint-disable react/destructuring-assignment */\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport StringField from 'Common/Components/StringField';\nimport {\n Title, SubTitle, Button, ButtonsContainer\n} from 'Common/Components/MainContainer/styled';\nimport { INITIAL_MODE } from 'Screens/Wizard/constants';\nimport { addWorkspace } from 'Screens/Wizard/actions/Actions';\nimport { Wrapper, FieldTitle, ErrorMessage } from './styled';\n\nclass StepWorkspaceName extends Component {\n constructor (props) {\n super(props);\n this.state = {\n wsName: ''\n };\n\n this.createWorkspace = this.createWorkspace.bind(this);\n }\n\n componentDidUpdate () {\n if (this.props.wizard.isSuccess) {\n this.setState({ wsName: '' });\n this.props.onStep(INITIAL_MODE);\n }\n }\n\n createWorkspace () {\n if (!this.props.wizard.isFetching) {\n this.props.addWorkspace(this.state.wsName);\n }\n }\n\n render () {\n const { wsName } = this.state;\n const { wizard, user } = this.props;\n return (\n \n {`Welcome, ${user}!`}\n Let's set up your Faraday instance\n Your initial project name is:\n { this.setState({ wsName: v }); } } value={ wsName } />\n \n { wizard.errorMessage }\n \n \n \n );\n }\n}\n\nStepWorkspaceName.propTypes = {\n onStep: PropTypes.func.isRequired,\n addWorkspace: PropTypes.func.isRequired,\n wizard: PropTypes.object.isRequired\n};\n\nStepWorkspaceName.defaultProps = {\n\n};\n\nconst mapDispatchToProps = (dispatch) => ({\n addWorkspace: (wsName) => {\n dispatch(addWorkspace(wsName));\n }\n});\n\nconst mapStateToProps = (state) => ({\n wizard: state.wizard,\n user: state.sesion.user\n});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(StepWorkspaceName));\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n \n`;\nWrapper.displayName = 'Wrapper';\n\nexport const SearchAction = styled.div`\n font-size: 14.5px;\n font-weight: 600;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: #1c2243;\n padding: 8px 20px;\n cursor: pointer;\n border-top: solid 1px #c7d6e4;\n margin-left: -20px;\n margin-right: -20px;\n\n &:hover{\n background-color: #e4ecf3;\n box-shadow: inset 0 -1px 0 0 #afafaf;\n font-weight: 600;\n }\n`;\nSearchAction.displayName = 'SearchAction';\n\nexport const DataContainer = styled.div`\n width: 340px;\n max-height: 350px;\n border-radius: 2px;\n box-shadow: inset 0 -1px 0 0 #afafaf;\n background-color: #ffffff;\n overflow-y: auto;\n padding: 0 20px;\n position: absolute;\n z-index: 10;\n background-color: ${colors.iceBlue};\n \n \n`;\nDataContainer.displayName = 'DataContainer';\n\nexport const DataItem = styled.div`\n font-size: 13px;\n color: #1c2243;\n cursor: pointer;\n padding: 7px 20px 7px 20px;\n border-radius: 3px;\n margin-left: -20px;\n margin-right: -20px;\n text-align: left;\n}\n\n &:hover{\n background-color: #e4ecf3;\n box-shadow: inset 0 -1px 0 0 #afafaf;\n font-weight: 600;\n }\n`;\nDataItem.displayName = 'DataItem';\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport { RiSearchLine as SearchLine } from 'react-icons/ri';\nimport {\n Wrapper,\n DataContainer,\n DataItem\n} from './styled';\nimport './styles.scss';\n\nclass SearchWs extends React.Component {\n constructor (props) {\n super(props);\n this.onChangeHandler = this.onChangeHandler.bind(this);\n this.onSelectHandler = this.onSelectHandler.bind(this);\n\n this.state = {\n value: '',\n showData: true\n };\n }\n\n onChangeHandler (v) {\n this.setState({ value: v });\n this.setState({ showData: true });\n }\n\n onSelectHandler (item) {\n const { onSelect } = this.props;\n this.setState({ value: item.name });\n // this.setState({ value: '' });\n this.setState({ showData: false });\n onSelect(item);\n }\n\n render () {\n const { value, showData } = this.state;\n const { type, data, placeholder } = this.props;\n\n const filteredData = data.filter((it) => value !== '' && it.name.toLowerCase().includes(value.toLowerCase()));\n\n return (\n \n { this.setState({ showData: true }); } } />\n 0 ? 'full' : ''}` } value={ value } placeholder={ placeholder } type={ type } onChange={ (e) => this.onChangeHandler(e.target.value) } onBlur={ () => { this.setState({ showData: false }); } } />\n {\n value.length > 0 && showData &&\n (\n \n { filteredData.length > 0 && filteredData.map((item) => (\n { this.onSelectHandler(item); } }>\n {item.name}\n \n )) }\n \n )\n }\n \n );\n }\n}\n\nSearchWs.propTypes = {\n data: PropTypes.array.isRequired,\n // getObjects: PropTypes.func.isRequired,\n type: PropTypes.string,\n placeholder: PropTypes.string,\n onSelect: PropTypes.func.isRequired\n};\n\nSearchWs.defaultProps = {\n type: 'text',\n placeholder: 'Search'\n};\n\nconst mapDispatchToProps = () => ({\n\n});\n\nconst mapStateToProps = () => ({\n\n});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(SearchWs));\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n \n`;\nWrapper.displayName = 'Wrapper';\n\nexport const WsSelect = styled.div`\n width: 340px;\n max-height: ${(props) => (props.isWsListLong ? 'none' : '106px')};\n height: ${(props) => (props.isWsListLong ? '106px' : 'none')};\n border-radius: 3px;\n border: solid 1px #dddddd;\n background-color: #ffffff;\n margin-top: 21px;\n overflow-y: ${(props) => (props.isWsListLong ? 'auto' : 'unset')};;\n`;\nWsSelect.displayName = 'WsSelect';\n\nexport const WsItem = styled.div`\n width: 100%;\n height: 34px;\n font-size: 12.5px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.88;\n letter-spacing: normal;\n text-align: left;\n color: #7a7e8f;\n padding-left: 13px;\n padding-right: 13px;\n display: flow-root;\n \n &:hover {\n background-color: #e6eff6;\n cursor: pointer;\n }\n`;\nWsItem.displayName = 'WsItem';\n\nexport const UpdateDate = styled.div`\n font-size: 11.5px;\n font-weight: 400;\n font-stretch: normal;\n font-style: normal;\n line-height: 3.13;\n letter-spacing: normal;\n text-align: left;\n color: #cccccc;\n float:right;\n`;\nUpdateDate.displayName = 'UpdateDate';\n\nexport const ViewAllWs = styled.div`\n font-size: 12.5px;\n font-weight: 300;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.12;\n letter-spacing: normal;\n text-align: left;\n color: #0091ff;\n margin: 21px 0;\n text-align: left;\n cursor: pointer;\n`;\nViewAllWs.displayName = 'ViewAllWs';\n\nexport const CheckWrapper = styled.div`\n display: flex;\n margin-top: 21px;\n`;\nCheckWrapper.displayName = 'CheckWrapper';\n\nexport const CheckText = styled.span`\n font-size: 11.5px;\n font-weight: 300;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.22;\n letter-spacing: normal;\n text-align: left;\n color: #a7a7a7;\n cursor:pointer;\n`;\nCheckText.displayName = 'CheckText';\n\nexport const WsName = styled.div`\n white-space: nowrap;\n width: 100%;\n overflow: hidden;\n display: inline-block;\n text-overflow: ellipsis;\n font-weight: 400;\n`;\nWsName.displayName = 'WsName';\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { FILE_SELECTOR } from 'Screens/Wizard/constants';\nimport {\n Title, SubTitle\n} from 'Common/Components/MainContainer/styled';\nimport CustomCheckbox from 'Common/Components/CustomCheckbox';\nimport { workspaceSelectedForWorking } from 'Screens/Faraday/actions/Actions';\nimport { selectAutoSelectWs } from 'store/Preferences/workspace/selectors';\nimport { redirect } from 'store/Router/actions';\nimport SearchWs from './components/SearchWs';\nimport { selectWorkspace, toggleAutoSelectWs } from '../../actions/Actions';\nimport {\n Wrapper,\n WsSelect,\n WsItem,\n CheckWrapper,\n CheckText,\n WsName\n} from './styled';\n\nconst StepWorkspaceSelection = ({ onStep }) => {\n const dispatch = useDispatch();\n const user = useSelector((state) => state.sesion.user);\n const autoSelectWs = useSelector((state) => selectAutoSelectWs(state));\n const workspaces = useSelector((state) => state.faraday.workspaces);\n\n const selectWorkSpace = (ws) => {\n dispatch(selectWorkspace(ws.name));\n if (ws.stats.total_vulns > 0) {\n dispatch(workspaceSelectedForWorking(ws.name));\n dispatch(redirect(`/feed/${ws.name}`));\n } else {\n dispatch(workspaceSelectedForWorking(ws.name));\n onStep(FILE_SELECTOR);\n }\n };\n\n const wsList = workspaces.filter((ws) => ws.active);\n const isWsListLong = wsList.length > 3;\n\n return (\n \n {`Welcome ${user}`}\n Select a Workspace\n \n {\n wsList.length > 0\n ? (\n \n {\n wsList.map((ws) => (\n { selectWorkSpace(ws); } }>\n {ws.name}\n \n ))\n }\n \n )\n : null\n }\n\n \n { dispatch(toggleAutoSelectWs(!autoSelectWs)); } } label=\"\" id=\"test_id_auto_select_we\" />\n { dispatch(toggleAutoSelectWs(!autoSelectWs)); } }>Always log me into my last used Workspace\n \n \n );\n};\n\nexport default StepWorkspaceSelection;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n background:white;\n width: 300px;\n padding: 20px 20px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Header = styled.div`\n display: flex;\n align-items: center;\n`;\nHeader.displayName = 'Header';\n\nexport const Body = styled.div`\n min-height: 30px;\n padding: 1.5rem 0;\n`;\nBody.displayName = 'Body';\n\nexport const Title = styled.div`\n user-select: none;\n font-size: 17px;\n color: #1c2243;\n font-weight: 700;\n margin-left: 10px;\n margin-right: auto;\n`;\nTitle.displayName = 'Title';\n\nexport const Button = styled.div`\n background-color: ${colors.redPink};\n border-radius: 3px;\n border: none;\n color: #fff;\n cursor: pointer;\n font-size: 14px;\n font-stretch: normal;\n font-style: normal;\n font-weight: 400;\n font-weight: 500;\n height: 34px;\n letter-spacing: normal;\n line-height: normal;\n padding: 7px 0;\n text-align: center;\n user-select: none;\n width: 89px;\n &:hover {\n background-color: #e95171;\n }\n &:active {\n background-color: #f06b88;\n }\n`;\nButton.displayName = 'Button';\n\nexport const Text = styled.div`\n font-weight: 300;\n color: #8da6be;\n font-size: 14px;\n text-align: initial;\n`;\nText.displayName = 'Text';\n","import React from 'react';\nimport { PropTypes } from 'prop-types';\nimport 'Common/styles/commonStyles.scss';\nimport { AiOutlineWarning as Warning } from 'react-icons/ai';\nimport { FaTimes as Close } from 'react-icons/fa';\nimport colors from 'Styles/colors';\nimport ModalWrapper from 'Common/Components/ModalWrapper';\nimport {\n Wrapper, Body, Header, Title, Button, Text\n} from './styled';\n\nconst ErrorDialog = ({\n visible, resetError, isFetching, message\n}) => {\n const handleClose = () => resetError();\n if (!visible) return null;\n return (\n \n \n
\n \n \n <Close color=\"Close\" onClick={ handleClose } />\n </Header>\n <Body>\n {isFetching\n ? (\n <div className=\"spinner-border\" role=\"status\" />)\n : (<Text>{message}</Text>)}\n </Body>\n <Button onClick={ handleClose } children=\"Ok\" />\n </Wrapper>\n </ModalWrapper>\n );\n};\n\nErrorDialog.propTypes = {\n visible: PropTypes.bool.isRequired,\n resetError: PropTypes.func.isRequired,\n isFetching: PropTypes.bool,\n message: PropTypes.string.isRequired\n};\nErrorDialog.defaultProps = {\n isFetching: false\n};\n\nexport default ErrorDialog;\n","/* eslint-disable react/destructuring-assignment */\nimport React, { Component } from 'react';\nimport MainContainer from 'Common/Components/MainContainer';\nimport StepFileSelector from 'Screens/Wizard/components/StepFileSelector';\nimport StepInitialMode from 'Screens/Wizard/components/StepInitialMode';\nimport StepSummary from 'Screens/Wizard/components/StepSummary';\nimport StepWorkspaceName from 'Screens/Wizard/components/StepWorkspaceName';\nimport StepWorkspaceSelection from 'Screens/Wizard/components/StepWorkspaceSelection';\nimport {\n FILE_SELECTOR, INITIAL_MODE, SUMMARY, WORKSPACE_NAME, WORKSPACE_SELECTION\n} from 'Screens/Wizard/constants';\nimport {\n resetInitialStep, setStep, setUserHasBeenInWizard, hideWizardErrorModal\n} from 'Screens/Wizard/actions/Actions';\nimport { connect } from 'react-redux';\nimport ErrorDialog from 'Common/Components/ErrorDialog';\n\nclass Main extends Component {\n componentDidMount () {\n const { userHasBeenInWizard, workspaces, setStep, setUserHasBeenInWizard } = this.props;\n\n if (userHasBeenInWizard) {\n if (workspaces.length > 0) setStep(WORKSPACE_SELECTION);\n else setStep(WORKSPACE_NAME);\n } else setUserHasBeenInWizard(true);\n }\n\n render () {\n const {\n step, width, height, error, errorMessage, hideErrorModal, setStep\n } = this.props;\n\n let child;\n\n switch (step) {\n case WORKSPACE_NAME:\n child = <StepWorkspaceName onStep={ setStep } />;\n break;\n case FILE_SELECTOR:\n child = <StepFileSelector onStep={ setStep } />;\n break;\n case INITIAL_MODE:\n child = <StepInitialMode onStep={ setStep } />;\n break;\n case SUMMARY:\n child = <StepSummary onStep={ setStep } />;\n break;\n case WORKSPACE_SELECTION:\n child = <StepWorkspaceSelection onStep={ setStep } />;\n break;\n default:\n child = <StepWorkspaceName onStep={ setStep } />;\n break;\n }\n\n return (\n <MainContainer width={ width } height={ height }>\n {child}\n <ErrorDialog visible={ error } message={ errorMessage } resetError={ hideErrorModal } />\n </MainContainer>\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n step: state.wizard.step,\n width: state.wizard.width,\n height: state.wizard.height,\n userHasBeenInWizard: state.wizard.userHasBeenInWizard,\n workspaces: state.faraday.workspaces,\n error: state.wizard.error,\n errorMessage: state.wizard.errorMessage\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n resetInitialStep: () => {\n dispatch(resetInitialStep());\n },\n setStep: (step) => {\n dispatch(setStep(step));\n },\n setUserHasBeenInWizard: (value) => {\n dispatch(setUserHasBeenInWizard(value));\n },\n hideErrorModal: () => {\n dispatch(hideWizardErrorModal());\n }\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Main);\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n margin-bottom: 3px;\n text-align: initial; \n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n font-size: 12.5px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.08;\n letter-spacing: normal;\n color: #0b2128;\n margin-bottom: 10px;\n margin-left: 15px;\n font-weight: 600;\n opacity: ${(props) => (props.disabled ? '0.3' : '1')};\n`;\nTitle.displayName = 'Title';\n\nexport const CustomInput = styled.input`\n width: ${(props) => (props.width ? `${props.width}` : '224px')};\n height: ${(props) => (props.height ? `${props.height}` : '38px')}; \n border-bottom: ${(props) => (props.error ? '1px solid red' : 'none')}; \n border-left: none;\n border-top: none;\n border-right: none;\n box-shadow: inset 0 -1px 0 0 #afafaf; \n background-color: ${(props) => (props.disabled ? '#edf2f7' : colors.iceBlue)};\n padding-left: 15px;\n padding-right: 42px;\n font-size: 14.5px;\n font-weight: 300;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.48;\n letter-spacing: normal; \n color: ${(props) => (props.disabled ? '#90a9c0' : '#1c2243')};\n border-radius: 1px;\n\n &.full{\n background-color: white; \n }\n\n &::placeholder {\n color: #afb1bc;\n font-size: 13.5px;\n font-weight: 300;\n }\n\n &:hover{\n border: 1px solid #afb1bc; \n }\n\n &:focus{\n background-color: white; \n\n &::placeholder {\n color: transparent;\n }\n }\n`;\nCustomInput.displayName = 'CustomInput';\n\nexport const Error = styled.div`\n margin-top: 6px;\n font-size: 10.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: 0.08px;\n color: #ea3158;\n`;\nError.displayName = 'Error';\n","/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport {\n Wrapper,\n Title,\n CustomInput,\n Error\n} from './styled';\n\nclass EmailField extends React.Component {\n constructor (props) {\n super(props);\n this.onChangeHandler = this.onChangeHandler.bind(this);\n this.validateEnter = this.validateEnter.bind(this);\n this.validateEmail = this.validateEmail.bind(this);\n\n this.state = {\n value: ''\n };\n }\n\n componentDidMount () {\n if (this.props.defaultValue) {\n this.setState({ value: this.props.defaultValue });\n }\n }\n\n componentDidUpdate (prevProps) {\n if (prevProps.defaultValue !== this.props.defaultValue) {\n this.setState({ value: this.props.defaultValue });\n }\n }\n\n onChangeHandler (v) {\n this.setState({ value: v });\n this.props.onChange(v);\n }\n\n validateEnter (e) {\n if (e.key === 'Enter' || e.keyCode === 13) {\n if (this.props.onBlur) {\n this.props.onBlur();\n } else if (this.props.submit) {\n this.props.submit();\n }\n }\n }\n\n validateEmail () {\n if (this.state.value === '') return '';\n // eslint-disable-next-line prefer-regex-literals\n const re = new RegExp('^(([^<>()\\\\[\\\\]\\\\\\\\.,;:\\\\s@\"]+(\\\\.[^<>()\\\\[\\\\]\\\\\\\\.,;:\\\\s@\"]+)*)|(\".+\"))@((\\\\[[0-9]{1,3}\\\\.[0-9]{1,3}\\\\.[0-9]{1,3}\\\\.[0-9]{1,3}\\\\])|(([a-zA-Z\\\\-0-9]+\\\\.)+[a-zA-Z]{2,}))$');\n return re.test(this.state.value) ? '' : 'Invalid Email';\n }\n\n render () {\n const { value } = this.state;\n const {\n placeholder,\n title,\n width,\n height,\n disabled,\n error,\n id,\n readOnly\n } = this.props;\n\n return (\n <Wrapper>\n <Title disabled={ disabled }>{ title }\n this.onChangeHandler(e.target.value) } disabled={ disabled } onBlur={ () => (this.props.onBlur ? this.props.onBlur() : () => {}) } onKeyPress={ this.validateEnter } error={ this.validateEmail() !== '' || error } />\n { this.validateEmail() }\n \n );\n }\n}\n\nEmailField.propTypes = {\n placeholder: PropTypes.string,\n title: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n width: PropTypes.string,\n height: PropTypes.string,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n id: PropTypes.string,\n readOnly: PropTypes.bool,\n defaultValue: PropTypes.string,\n onBlur: PropTypes.func,\n submit: PropTypes.func\n};\n\nEmailField.defaultProps = {\n placeholder: '',\n title: '',\n width: '100%',\n height: '36px',\n disabled: false,\n error: false,\n id: '',\n readOnly: false,\n defaultValue: '',\n onBlur: undefined,\n submit: undefined\n};\n\nconst mapDispatchToProps = () => ({\n\n});\n\nconst mapStateToProps = () => ({\n\n});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(EmailField));\n","import React from 'react';\nimport styled from 'styled-components';\n\nconst Wrapper = styled.div`\n position: fixed;\n opacity: 0.5;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n`;\n\nconst Spinner = styled.div`\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: .25em solid #939596;\n border-right-color: #939596;\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n`;\n\n/* eslint-disable react/jsx-props-no-spreading */\nconst Loading = (props) => (\n \n \n \n);\n\nexport default Loading;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Title = styled.div`\n font-size: 21.5px;\n font-weight: 600;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.16;\n letter-spacing: normal;\n text-align: left;\n color: ${colors.dark2}\n`;\nTitle.displayName = 'Title';\n\nexport const SubTitle = styled.div`\n margin-top: 21px;\n margin-bottom: 30px;\n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.44;\n letter-spacing: normal;\n text-align: left;\n color: ${colors.blueGrey}\n`;\nSubTitle.displayName = 'SubTitle';\n\nexport const ButtonsContainer = styled.div`\n \n`;\nButtonsContainer.displayName = 'ButtonsContainer';\n\nexport const BtnResetLink = styled.button`\n height: 34px;\n margin: 22px 191px 0 0px;\n border-radius: 2px;\n background-color: ${(props) => (props.disabled ? '#ebeff3' : `${colors.blueCerulean}`)};\n font-size: 12.5px;\n font-weight: 500;\n line-height: 34px;\n text-align: center;\n color: #ffffff;\n cursor: ${(props) => (props.disabled ? 'default' : 'pointer')};\n border: 0;\n width: 145px;\n`;\nBtnResetLink.displayName = 'BtnResetLink';\n\nexport const BtnEmailSent = styled.div`\n background-color: ${colors.green1};\n height: 34px;\n margin: 22px 191px 0 0px;\n border-radius: 2px;\n font-size: 12.5px;\n font-weight: 500;\n line-height: 34px;\n text-align: center;\n color: #ffffff;\n cursor: default;\n border: 0;\n width: 145px;\n`;\nBtnEmailSent.displayName = 'BtnEmailSent';\n\nexport const BtnGoBack = styled.div`\n font-size: 12.5px;\n font-weight: 600;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n cursor: pointer;\n color: ${colors.blueCerulean};\n width: 68px;\n margin-top: 41px;\n`;\nBtnGoBack.displayName = 'BtnGoBack';\n\nexport const ErrorMessage = styled.div`\n color: ${colors.redPink};\n letter-spacing: 0.08px;\n font-size: 10.5px;\n text-align: left;\n`;\nErrorMessage.displayName = 'ErrorMessage';\n","import React, { useState } from 'react';\nimport MainContainer from 'Common/Components/MainContainer';\nimport EmailField from 'Common/Components/EmailField';\nimport { forgotPassword } from 'Screens/Login/actions/Actions';\nimport { useDispatch, useSelector } from 'react-redux';\nimport Loading from 'Common/Components/Loading/styled';\nimport { redirect } from 'store/Router/actions';\nimport {\n Title,\n SubTitle,\n ButtonsContainer,\n BtnResetLink,\n BtnEmailSent,\n BtnGoBack,\n ErrorMessage\n} from './styled';\n\nconst ForgotPassword = () => {\n const [email, setEmail] = useState('');\n const [submitted, setSubmitted] = useState(false);\n const props = useSelector((state) => ({\n error: state.sesion.error,\n errorMessage: state.sesion.errorMessage,\n isFetching: state.sesion.isFetching\n }));\n const dispatch = useDispatch();\n\n const isValidEmail = () => {\n // eslint-disable-next-line prefer-regex-literals\n const re = new RegExp('^(([^<>()\\\\[\\\\]\\\\\\\\.,;:\\\\s@\"]+(\\\\.[^<>()\\\\[\\\\]\\\\\\\\.,;:\\\\s@\"]+)*)|(\".+\"))@((\\\\[[0-9]{1,3}\\\\.[0-9]{1,3}\\\\.[0-9]{1,3}\\\\.[0-9]{1,3}\\\\])|(([a-zA-Z\\\\-0-9]+\\\\.)+[a-zA-Z]{2,}))$');\n return re.test(email);\n };\n\n const onHandleAction = () => {\n if (isValidEmail()) setSubmitted(true);\n dispatch(forgotPassword(email));\n };\n\n return (\n \n Forgot your password?\n Enter your email address below and we'll send you a link to reset your password.\n { setEmail(v); } } submit={ () => { onHandleAction(); } } defaultValue={ email } />\n \n { !props.isFetching && submitted && props.error && isValidEmail() ? { props.errorMessage } : null }\n { submitted && !props.error ? Email Sent! : null }\n { !submitted || props.error ? { onHandleAction(); } }>Send Reset Link : null }\n \n { props.isFetching ? : null }\n { dispatch(redirect('/login')); } }>{'< Go Back'}\n \n );\n};\n\nexport default ForgotPassword;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport Password from 'Common/Components/Password/styled';\n\nexport const Title = styled.div`\n font-size: 21.5px;\n font-weight: 600;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.16;\n letter-spacing: normal;\n text-align: left;\n color: ${colors.dark2}\n`;\nTitle.displayName = 'Title';\n\nexport const SubTitle = styled.div`\n margin-top: 21px;\n margin-bottom: 30px;\n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.44;\n letter-spacing: normal;\n text-align: left;\n color: ${colors.blueGrey}\n`;\nSubTitle.displayName = 'SubTitle';\n\nexport const PasswordChanged = styled.div`\n background-color: ${colors.green1};\n cursor: default;\n margin: 22px 0px 0 0px;\n height: 34px;\n border-radius: 2px;\n font-size: 12.5px;\n font-weight: 500;\n line-height: 34px;\n text-align: center;\n color: #ffffff;\n border: 0;\n`;\nPasswordChanged.displayName = 'PasswordChanged';\n\nexport const Login = styled.div`\n font-size: 12.5px;\n font-weight: 600;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n cursor: pointer;\n color: ${colors.blueCerulean};\n width: 68px;\n`;\nLogin.displayName = 'Login';\n\nexport const Rule = styled.div`\n font-size: 10.5px;\n color: ${colors.red1};\n margin-top: 12px;\n text-align: justify;\n`;\nRule.displayName = 'Rule';\n\nexport const ErrorMessage = styled.div`\n color: ${colors.red1};\n letter-spacing: 0.08px;\n color: ${colors.red3};\n font-size: 10.5px;\n text-align: left;\n`;\nErrorMessage.displayName = 'ErrorMessage';\n\nexport const ResetPass = styled(Password)`\n max-width: 500px;\n width: 100%;\n`;\n\nexport const Container = styled.div`\n margin-top: 30px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n","import React, { useState } from 'react';\nimport MainContainer from 'Common/Components/MainContainer';\nimport { resetPassword } from 'Screens/Login/actions/Actions';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useIntl, FormattedMessage } from 'react-intl';\nimport isValidPassword from 'Common/Components/Password/functions';\nimport BlueButton from 'Common/Components/BlueButton/index';\nimport { redirect } from 'store/Router/actions';\nimport {\n Title,\n SubTitle,\n PasswordChanged,\n Login,\n Rule,\n ErrorMessage,\n ResetPass,\n Container\n} from './styled';\n\nconst ResetPassword = ({ params }) => {\n const [password, setPassword] = useState('');\n const [repeatPassword, setRepeatPassword] = useState('');\n const [submitted, setSubmitted] = useState(false);\n const intl = useIntl();\n const props = useSelector((state) => (\n {\n isFetching: state.sesion.isFetching,\n error: state.sesion.error,\n errorMessage: state.sesion.errorMessage\n }));\n const dispatch = useDispatch();\n\n const summitPassword = () => {\n setSubmitted(true);\n dispatch(resetPassword(params.hash, password, repeatPassword));\n };\n\n const isPasswordMatch = () => password === repeatPassword;\n\n const passPasswordTest = () => isValidPassword(password) && isPasswordMatch();\n\n return (\n \n Reset your password?\n Please enter your new password.\n { setPassword(v); } } valid={ isValidPassword(password) } />\n { setRepeatPassword(v); } } valid={ isValidPassword(repeatPassword) } />\n { !props.isFetching && submitted && isValidPassword(password) && props.error ? { props.errorMessage } : null }\n { ((password && !isValidPassword(password)) || (repeatPassword && !isValidPassword(repeatPassword))) &&\n (\n \n \n \n )}\n { isValidPassword(password) && isValidPassword(repeatPassword) && !isPasswordMatch() &&\n (\n \n \n \n )}\n\n { submitted && !props.error ? : null }\n \n { dispatch(redirect('/login')); } }>{'< Go Back'}\n { !submitted || props.error ? summitPassword() } label=\"Submit\" isLoading={ props.isFetching } /> : null }\n \n\n \n );\n};\n\nexport default ResetPassword;\n","import styled from 'styled-components';\n\nconst Wrapper = styled.div`\n display: flex;\n flex: 0 1 auto;\n flex-direction: column;\n height: ${(props) => !props.emptyAgents && '100%'};\n overflow: hidden;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n","var _defs, _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconActionBarToken = function SvgIconActionBarToken(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 26,\n height: 14,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.1 2.8c0 .5-.4.9-.8.9s-.9-.4-.9-.9.4-.9.8-.9.9.4.9.9zM2.3.6C1.1.6.2 1.6.2 2.8.2 4 1.1 5 2.3 5c1.2 0 2.1-1 2.1-2.2 0-1.2-1-2.2-2.1-2.2z\",\n id: \"a\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.6 6.5l-2.3 1.7-1.1-.9c-.2-.2-.6-.2-.8 0l-1.1.9-1.1-.9c-.2-.2-.6-.2-.8 0l-1.3 1.1h-3.2c-.2 0-.5.1-.6.4-.8 1.8-2.5 2.9-4.3 2.9-2.6 0-4.7-2.2-4.7-4.9S4.4 1.9 7 1.9c1.9 0 3.6 1.1 4.3 2.9.1.2.3.4.6.4h10l1.7 1.3zM25 6l-2.5-2c-.1-.1-.3-.1-.4-.1h-9.9C11.1 1.9 9.1.6 6.9.6 3.6.6.9 3.4.9 6.8.9 10.2 3.7 13 7 13c2.2 0 4.2-1.3 5.3-3.3h3.1c.2 0 .3-.1.4-.2l1.1-.9 1.1.9c.2.2.6.2.8 0l1.1-.9 1.1.9c.2.2.5.2.8 0L25 7.1c.2-.1.3-.3.3-.5s-.1-.4-.3-.6z\",\n id: \"c\"\n }))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(3 4)\"\n }, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"b\",\n fill: \"#fff\"\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#a\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1C4566\",\n fillRule: \"nonzero\",\n mask: \"url(#b)\",\n d: \"M-4.8-4.4H9.4V10H-4.8z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.1 6.8c0 .5-.4.9-.8.9s-.9-.4-.9-.9.4-.9.8-.9.9.4.9.9h0zm-.8-2.2c-1.2 0-2.1 1-2.1 2.2C3.2 8 4.1 9 5.3 9c1.2 0 2.1-1 2.1-2.2 0-1.2-1-2.2-2.1-2.2h0z\",\n stroke: \"#1C4566\",\n strokeWidth: 0.2\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"d\",\n fill: \"#fff\"\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#c\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1C4566\",\n fillRule: \"nonzero\",\n mask: \"url(#d)\",\n d: \"M-4.1-4.4h34.4V18H-4.1z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.6 6.5l-2.3 1.7-1.1-.9c-.2-.2-.6-.2-.8 0l-1.1.9-1.1-.9c-.2-.2-.6-.2-.8 0l-1.3 1.1h-3.2c-.2 0-.5.1-.6.4-.8 1.8-2.5 2.9-4.3 2.9-2.6 0-4.7-2.2-4.7-4.9S4.4 1.9 7 1.9c1.9 0 3.6 1.1 4.3 2.9.1.2.3.4.6.4h10l1.7 1.3h0zM25 6l-2.5-2c-.1-.1-.3-.1-.4-.1h-9.9C11.1 1.9 9.1.6 6.9.6 3.6.6.9 3.4.9 6.8.9 10.2 3.7 13 7 13c2.2 0 4.2-1.3 5.3-3.3h3.1c.2 0 .3-.1.4-.2l1.1-.9 1.1.9c.2.2.6.2.8 0l1.1-.9 1.1.9c.2.2.5.2.8 0L25 7.1c.2-.1.3-.3.3-.5s-.1-.4-.3-.6z\",\n stroke: \"#1C4566\",\n strokeWidth: 0.2\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconActionBarToken, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon-action-bar-token.d7973c77.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { fadeIn } from 'Styles/effects';\n\nexport const Wrapper = styled.div`\n cursor: pointer;\n display: flex;\n border-radius: 20px;\n width: 37px;\n height: 37px;\n align-items: center;\n justify-content: center;\n & > svg {\n cursor: pointer;\n min-width: 17px;\n }\n &:hover {\n background-color: ${colors.iceBlue};\n }\n &:active {\n ${fadeIn(0, 1)}\n background-color: ${colors.blueGrey};\n & > svg {\n g, path {\n fill: ${colors.white};\n }\n }\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Text = styled.div`\n \n`;\nText.displayName = 'Text';\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Wrapper, Text } from './styled';\n\nconst IconButton = ({\n onClick, title, icon, text\n}) => (\n \n {icon}\n { text && { text } }\n \n);\n\nIconButton.defaultProps = {\n onClick: null\n};\n\nIconButton.propTypes = {\n onClick: PropTypes.func,\n title: PropTypes.string.isRequired\n};\n\nexport default IconButton;\n","import styled from 'styled-components';\n\nconst Wrapper = styled.div`\n display: block;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n","import React from 'react';\nimport { ReactComponent as TokenIcon } from 'Images/icon-action-bar-token.svg';\nimport IconButton from 'Common/Components/IconButton';\nimport Wrapper from './styled';\n\nconst TokenButton = ({ onClick }) => (\n \n } />\n \n);\nexport default TokenButton;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: row;\n height: 37px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const ButtonWrapper = styled.div`\n display: flex;\n flex-direction: row;\n margin-left: auto;\n height: 37px;\n`;\nButtonWrapper.displayName = 'ButtonWrapper';\n\nexport const Title = styled.div`\n font-size: 24px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.08;\n letter-spacing: normal;\n color: #1c2b43;\n user-select: none;\n`;\nTitle.displayName = 'Title';\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconClipboard = function SvgIconClipboard(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 15,\n height: 17,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.647368 0H1.521053C.684474 0 0 .695455 0 1.545455v10.818181h1.521053V1.545455h9.126315V0zm2.281579 3.09091H4.563158c-.836579 0-1.521053.695454-1.521053 1.545454v10.818182c0 .85.684474 1.545454 1.521053 1.545454h8.365789c.836579 0 1.521053-.695454 1.521053-1.545454V4.636364c0-.85-.684474-1.545455-1.521053-1.545455zm0 12.363636H4.563158V4.636364h8.365789v10.818182z\",\n fill: \"#BEC8D2\",\n fillRule: \"nonzero\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconClipboard, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon-clipboard.c53f2936.svg\";\nexport { ForwardRef as ReactComponent };","/* eslint-disable no-negated-condition */\nimport groupBy from 'lodash/groupBy';\nimport map from 'lodash/map';\nimport get from 'lodash/get';\nimport filter from 'lodash/filter';\nimport head from 'lodash/head';\nimport pickBy from 'lodash/pickBy';\nimport isEmpty from 'lodash/isEmpty';\n\nexport const selectFields = (state) => get(state, 'agents.table.list.fields', []);\n\nexport const selectIsFetching = (state) => get(state, 'agents.isFetching', false);\n\nexport const selectUserAgents = (state) => get(state, 'agents.userAgents', []);\n\nexport const selectTriggerAgentTools = (state) => get(state, 'agents.triggerAgent.tools', []);\n\nexport const selectTriggerAgentId = (state) => get(state, 'agents.triggerAgent.agentId', {});\n\nexport const selectTriggerAgentWs = (state) => get(state, 'agents.triggerAgent.workspaces', []);\n\nexport const selectTriggerIgnoreInfo = (state) => get(state, 'agents.triggerAgent.ignoreInfo', false);\n\nexport const selectTriggerResolveHostname = (state) => get(state, 'agents.triggerAgent.resolveHostname', true);\n\nexport const selectAgentTypes = (state) => get(state, 'agents.agentTypes', {});\n\nexport const selectToolsByCategory = state => {\n const tools = selectAgentTypes(state);\n const groupedTools = groupBy(tools, 'category');\n const mappedTools = map(groupedTools, (value, key) => ({ categoryName: key, items: value }));\n return mappedTools;\n};\n\nexport const selectDraftNewAgentName = (state) => get(state, 'agents.draftNewAgent.name', '');\nexport const selectDraftNewAgentServer = (state) => get(state, 'agents.draftNewAgent.server', '');\nexport const selectDraftNewAgentTools = (state) => get(state, 'agents.draftNewAgent.tools', []);\n\nexport const selectToolsSelected = (state) => {\n const draftNewAgentTools = selectDraftNewAgentTools(state);\n const toolsSelected = draftNewAgentTools.map((e) => e.name);\n const agentTypes = selectAgentTypes(state);\n const filteredAgentTypes = Object.fromEntries(Object.entries(agentTypes).filter(([key, value]) => toolsSelected.indexOf(key) > -1));\n return filteredAgentTypes;\n};\n\nexport const selectToolIsAdded = (state, tool) => {\n const draftNewAgentTools = selectDraftNewAgentTools(state);\n const toolsSelected = draftNewAgentTools.map((e) => e.name);\n return toolsSelected.indexOf(tool) > -1;\n};\n\nexport const selectToolHasEnvVars = (state, tool) => {\n const allTools = selectAgentTypes(state);\n const toolSelected = pickBy(allTools, { name: tool });\n return toolSelected ? toolSelected[tool].environment_variables.length > 0 : false;\n};\n\nexport const selectToolHasOptionalEnvVars = (state, tool) => {\n const allTools = selectAgentTypes(state);\n const toolSelected = pickBy(allTools, { name: tool });\n return toolSelected[tool].optional_environment_variables ? toolSelected[tool].optional_environment_variables.length > 0 : false;\n};\n\nexport const selectToolHasBeenConfigured = (state, tool) => {\n const allTools = selectAgentTypes(state);\n const currentTool = pickBy(allTools, { name: tool });\n const enviromentVariables = get(currentTool, `${tool}.environment_variables`, []);\n const draftNewAgentTools = selectDraftNewAgentTools(state);\n const toolSelected = head(filter(draftNewAgentTools, { name: tool }));\n const isConfigured = [];\n if (toolSelected && !isEmpty(toolSelected.variables)) {\n enviromentVariables.forEach((item) => {\n const envVarConfigured = Object.hasOwn(toolSelected.variables, item) || !isEmpty(toolSelected.variables[item]);\n isConfigured.push(envVarConfigured);\n });\n }\n return !isEmpty(isConfigured) ? !isConfigured.includes(false) : false;\n};\n\nexport const selectToolsVariables = (state, tool) => {\n const draftNewAgentTools = selectDraftNewAgentTools(state);\n const toolSelected = head(filter(draftNewAgentTools, { name: tool }));\n return get(toolSelected, 'variables', {});\n};\n\nexport const selectToolError = (state, tool) => {\n const errors = get(state, 'agents.errors', {});\n return get(errors, tool, false);\n};\n\nexport const selectAgentError = (state) => get(state, 'agents.error', false);\n\nexport const selectToken = (state) => get(state, 'agents.token', null);\n\nexport const selectTokenExpiration = (state) => get(state, 'agents.tokenExpiresIn', 0);\n","import api from 'services/api';\nimport { closeModal } from 'store/modals/actions';\nimport { MODAL_RUN_USER_AGENT } from 'store/modals/modals';\nimport { selectActiveWorkspaces } from 'store/Workspace/selectors';\nimport * as types from './types';\nimport { selectTriggerAgentId, selectTriggerAgentWs, selectTriggerIgnoreInfo, selectTriggerResolveHostname } from './selectors';\n\nfunction fetching () {\n return async (dispatch) => {\n dispatch({ type: types.AGENTS_FETCHING });\n };\n}\n\nfunction somethingWentWrong (errors) {\n return async (dispatch) => {\n dispatch({ type: types.AGENTS_FAIL, errorMessage: 'There was an error, please try again.', errors });\n };\n}\n\nexport function getUserAgents () {\n return async (dispatch) => {\n try {\n dispatch(fetching());\n const userAgents = await api.agents.fetchUserAgents();\n dispatch({ type: types.AGENTS_GET_USER_AGENTS, userAgents });\n } catch (e) {\n dispatch(somethingWentWrong());\n }\n };\n}\n\nexport function removeAgent (agent) {\n return async (dispatch) => {\n try {\n dispatch(fetching());\n await api.agents.removeAgent(agent.id);\n dispatch(getUserAgents());\n } catch (e) {\n dispatch(somethingWentWrong());\n }\n };\n}\n\nexport function getToken () {\n return async (dispatch) => {\n try {\n dispatch(fetching());\n const responseSession = await api.faraday.getSession();\n\n const fd = new FormData();\n fd.set('csrf_token', responseSession.csrf_token);\n\n const responseToken = await api.agents.fetchToken(fd);\n dispatch({\n type: types.AGENTS_GET_TOKEN, token: responseToken.token, tokenExpiresIn: responseToken.expires_in, tokenDuration: responseToken.total_duration\n });\n } catch (e) {\n dispatch(somethingWentWrong(e));\n }\n };\n}\n\nexport function getAgentTools (id) {\n return async (dispatch) => {\n try {\n dispatch(fetching());\n const response = await api.agents.fetchAgentTools(id);\n dispatch({ type: types.AGENTS_GET_TOOLS, id, tools: response.executors });\n } catch (e) {\n dispatch(somethingWentWrong());\n }\n };\n}\n\nexport function runUserAgentTool (toolName, toolParams) {\n return async (dispatch, getState) => {\n try {\n const state = getState();\n const agentId = selectTriggerAgentId(state);\n const workspaces = selectTriggerAgentWs(state).map((ws) => ws.name);\n const ignoreInfo = selectTriggerIgnoreInfo(state);\n const resolveHostname = selectTriggerResolveHostname(state);\n dispatch(fetching());\n const payload = {\n ignore_info: ignoreInfo,\n resolve_hostname: resolveHostname,\n workspaces_names: workspaces,\n executor_data: {\n agent_id: agentId,\n executor: toolName,\n args: toolParams\n }\n };\n await api.agents.runUserAgentTool(agentId, payload);\n\n dispatch(getUserAgents());\n dispatch(closeModal(MODAL_RUN_USER_AGENT));\n dispatch({ type: types.AGENTS_SUCCESS });\n } catch (e) {\n dispatch(somethingWentWrong(e));\n }\n };\n}\n\nexport function resetWizard () {\n return async (dispatch) => {\n dispatch({ type: types.AGENTS_CREATE_WIZARD_RESET });\n };\n}\n\nexport function addTool (toolName) {\n return async (dispatch) => {\n dispatch({ type: types.AGENTS_CREATE_WIZARD_ADD_TOOL, tool: { name: toolName, variables: [] } });\n };\n}\n\nexport function removeTool (tool) {\n return async (dispatch) => {\n dispatch({ type: types.AGENTS_CREATE_WIZARD_REMOVE_TOOL, tool });\n };\n}\n\nexport function setFieldsTool (toolName, fields) {\n return async (dispatch) => {\n dispatch({ type: types.AGENTS_CREATE_WIZARD_SET_FIELDS_TOOL, toolName, fields });\n };\n}\n\nexport function getManifest () {\n return async (dispatch) => {\n try {\n dispatch(fetching());\n const data = await api.manage.fetchManifest();\n dispatch({ type: types.AGENTS_GET_MANIFEST, data });\n } catch (e) {\n dispatch(somethingWentWrong(e));\n }\n };\n}\n\nexport const setAgent = (data) => (dispatch) => {\n dispatch({ type: types.SET_NEW_AGENT, data });\n};\n\nexport function clearAgent () {\n return (dispatch) => {\n dispatch({ type: types.RESET_NEW_AGENT });\n };\n}\n\nexport function setTriggerAgentWs (workspaces) {\n return (dispatch) => {\n dispatch({ type: types.AGENTS_RUN_SET_WORKSPACES, workspaces });\n };\n}\n\nexport function addTriggerAgentWs (ws) {\n return (dispatch, getState) => {\n const addedWorkspaces = selectTriggerAgentWs(getState());\n const allWorkspaces = selectActiveWorkspaces(getState());\n\n const newWs = allWorkspaces.find((workspace) => workspace.id === ws.id);\n if (newWs) {\n const newWorkspaces = [\n ...addedWorkspaces.filter((workspace) => workspace.id !== ws.id),\n newWs\n ];\n\n dispatch(setTriggerAgentWs(newWorkspaces));\n }\n };\n}\n\nexport function removeTriggerAgentWs (ws) {\n return (dispatch, getState) => {\n const addedWorkspaces = selectTriggerAgentWs(getState());\n const newWorkspaces = addedWorkspaces.filter((w) => w.id !== ws.id);\n dispatch(setTriggerAgentWs(newWorkspaces));\n };\n}\n\nexport function setIgnoreInfo (ignoreInfo) {\n return (dispatch) => {\n dispatch({ type: types.AGENTS_RUN_SET_IGNORE_INFO, ignoreInfo });\n };\n}\n\nexport function setResolveHostname (resolveHostname) {\n return (dispatch) => {\n dispatch({ type: types.AGENTS_RUN_SET_RESOLVE_HOSTNAME, resolveHostname });\n };\n}\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n opacity: 0.6;\n border-radius: 3px;\n box-shadow: 2px 2px 5px 0 rgba(97, 97, 97, 0.06);\n border: solid 1px ${colors.grey15};\n background-color: ${colors.white};\n max-width: 100%;\n width: 50%;\n margin: 14px 25%;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Token = styled.div`\n font-size: 21.5px;\n font-weight: 500;\n color: ${colors.warmPurple};\n max-width: 50%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n`;\nToken.displayName = 'Token';\n\nexport const WrapperCountDown = styled.div`\n padding: 10px;\n svg {\n display: block;\n }\n\n #border {\n fill: ${colors.warmPurple};\n }\n`;\nWrapperCountDown.displayName = 'WrapperCountDown';\n","import React, { useEffect, useState } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { ReactComponent as ClipboardIcon } from 'Images/icon-clipboard.svg';\nimport IconButton from 'Common/Components/IconButton';\nimport { getToken, getManifest } from 'store/Agents/actions';\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\nimport get from 'lodash/get';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport { Wrapper, Token, WrapperCountDown } from './styled';\n\nconst CountDown = ({ value, total }) => {\n const [anim, setAnim] = useState('');\n const [alpha, setAlpha] = useState(-1);\n\n useEffect(() => {\n const v = (1 - (value / total)) * 360;\n setAlpha(v);\n }, [value, total, setAlpha]);\n\n useEffect(() => {\n const timeOut = setTimeout(() => {\n const v = (alpha + (360 / total)) % 360;\n if (alpha !== -1) setAlpha(v);\n }, 1000);\n return () => {\n clearTimeout(timeOut);\n };\n }, [alpha, setAlpha, total]);\n\n useEffect(() => {\n const π = Math.PI;\n const α = alpha;\n const r = ((α * π) / 180);\n const x = Math.sin(r) * 125;\n const y = Math.cos(r) * (-125);\n const mid = (α > 180) ? 1 : 0;\n const newAnim = `M 0 0 v -125 A 125 125 1 ${\n mid} 1 ${\n x} ${\n y} z`;\n setAnim(newAnim);\n }, [alpha, setAnim]);\n\n if (alpha === -1) { return null; }\n\n return (\n \n \n \n \n \n );\n};\n\nconst Generator = () => {\n const dispatch = useDispatch();\n const props = useSelector((state) => ({\n workspaceSelected: selectCurrentWorkspace(state),\n token: state.agents.token,\n expiresIn: get(state, 'agents.tokenExpiresIn', 0),\n tokenDuration: get(state, 'agents.tokenDuration', 60)\n }));\n\n useEffect(() => {\n dispatch(getToken());\n dispatch(getManifest());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n let timeOut = 0;\n if (props.expiresIn > 0) {\n timeOut = setTimeout(() => dispatch(getToken()), props.expiresIn * 1000);\n }\n return () => timeOut && clearTimeout(timeOut);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.expiresIn]);\n\n return (\n \n \n { props.token }\n \n } />\n \n \n );\n};\nexport default Generator;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n display: block;\n max-width: 442px;\n width: 100%;\n text-align: left;\n font-size: 12.5px;\n font-weight: normal;\n line-height: 1.44;\n padding: 36px 40px;\n box-shadow: rgb(167 167 167 / 50%) 18px 43px 50px 0px;\n border-top: 10px solid ${colors.softBlue};\n border-radius: 2px 2px 0px 0px;\n overflow: auto;\n max-height: 85%;\n & > *:not(:last-child) {\n margin-bottom: 10px;\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Documentation = styled.a`\n display: inline-block;\n color: ${colors.blueCerulean};\n margin: 0 5px;\n`;\nDocumentation.displayName = 'Documentation';\n\nexport const Message = styled.div`\n display: block;\n color: ${colors.greyBlue};\n`;\nMessage.displayName = 'Message';\n\nexport const Help = styled.div`\n display: inline-block;\n color: ${colors.greyBlue};\n`;\nHelp.displayName = 'Help';\n\nexport const Title = styled.div`\n display: inline-block;\n padding-bottom: 12px;\n font-size: 21.5px;\n font-weight: 600;\n line-height: 1.49;\n color: ${colors.greyBlue};\n`;\nTitle.displayName = 'Title';\n\nexport const Footer = styled.div`\n display: flex;\n justify-content: flex-end;\n padding: 20px 0 0;\n & > *:not(:last-child) {\n margin-right: 10px;\n }\n`;\nFooter.displayName = 'Footer';\n","import React from 'react';\nimport Generator from 'Common/Components/Generator';\nimport { useIntl } from 'react-intl';\nimport { closeModal } from 'store/modals/actions';\nimport { MODAL_AGENT_TOKEN } from 'store/modals/modals';\nimport { Accept, Cancel } from 'Common/Components/Button/styled';\nimport { useDispatch } from 'react-redux';\nimport {\n Wrapper, Message, Help, Documentation, Title, Footer\n} from './styled';\n\nconst Token = () => {\n const intl = useIntl();\n const dispatch = useDispatch();\n const close = () => dispatch(closeModal(MODAL_AGENT_TOKEN));\n\n return (\n \n { intl.formatMessage({ id: 'agents.token.title' }) }\n \n Copy this token into Faraday Agent Dispatcher when prompted. This will allow to connect the agent with your Faraday instance.\n \n If you need further help you can check\n our documentation.\n \n
\n Close\n Accept\n
\n
\n );\n};\nexport default Token;\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconActionBarPlus = function SvgIconActionBarPlus(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 10.5 9.4\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0082ed\",\n d: \"M6.2 9.4h-2V5.8H0v-2h4.2V0h2v3.8h4.3v2H6.2z\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconActionBarPlus, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon-action-bar-plus.8879f3f6.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n display: flex;\n align-items: center;\n &::after {\n width: 1px;\n content: ' ';\n background: transparent;\n border-right: 1px #B5BEC6;\n border-right-style: dashed;\n height: 14px;\n margin: 0px 8px 0px 18px;\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Button = styled.div`\n padding: 0px 10px;\n font-size: 11.5px;\n font-weight: 500;\n line-height: 34px;\n height: 34px;\n border-radius: 2px;\n border: solid 1px rgba(144, 169, 192, 0.3);\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n & > svg {\n height: 11px;\n margin-right: 10px;\n & > path {\n fill: ${colors.dark2};\n }\n }\n &:hover {\n border-radius: 3px;\n border: solid 1px #d8dee5;\n background-color: #f1f4f7;\n }\n\n &:active {\n border: solid 1px #bcccd9;\n background-color: #dde5ec;\n }\n \n`;\n","import React from 'react';\nimport { ReactComponent as PlusIcon } from 'Images/icon-action-bar-plus.svg';\nimport { useDispatch } from 'react-redux';\nimport { openModal } from 'store/modals/actions';\nimport { MODAL_AGENT_CREATE } from 'store/modals/modals';\nimport { Wrapper, Button } from './styled';\n\nconst CreateButton = () => {\n const dispatch = useDispatch();\n return (\n \n \n \n );\n};\nexport default CreateButton;\n","import styled from 'styled-components';\nimport BlueButton from 'Common/Components/BlueButton';\n\nexport const Wrapper = styled.div`\ndisplay:flex;\npadding: 34px 0;\nmargin-right: 34px;\n`;\n\nexport const SecondContainer = styled.div`\n margin-left: auto;\n`;\n\nexport const Next = styled(BlueButton)`\n margin-left: 10px;\n`;\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport { Cancel } from 'Common/Components/Button/styled';\nimport { clearAgent } from 'store/Agents/actions';\nimport { Wrapper, SecondContainer, Next } from './styled';\n\nconst Header = ({\n back, cancel, next, finish, nextDisable\n}) => {\n const dispatch = useDispatch();\n const onCancel = () => {\n dispatch(clearAgent());\n cancel();\n };\n return (\n \n {back && Back }\n \n {cancel && Cancel}\n {next && }\n {finish && }\n \n \n );\n};\n\nexport default Header;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as AddIcon } from 'Images/icon-action-bar-plus.svg';\n\nexport const Title = styled.h2`\nfont-size: 21.5px;\nfont-weight: bold;\ncolor: #1c2243;\nmargin-bottom:11px;\n`;\n\nexport const SubTitle = styled.h3`\n font-size: 17px;\n font-weight: 600;\n color: #1c2243;\n margin-top:10px;\n`;\n\nexport const TextItem = styled.p`\n font-size: 14px;\n color: #63758d;\n margin-bottom:12px !important;\n`;\n\nexport const TextInfo = styled.p`\nfont-size: 13.5px;\n font-weight: 500;\n color: #0082ed;\n margin-bottom:13px;\n cursor: pointer;\n`;\n\nexport const TextInput = styled.p`\nfont-size: 14.5px;\nfont-weight: 600;\ncolor: #1c2243;\nmargin: 12px 0 !important;\n&:after{\ncontent: \"*\";\ncolor: red;\nmargin-left: 5px;\n}\n`;\n\nexport const TextLink = styled.p`\nfont-size: 14.5px;\nletter-spacing: 0.11px;\ncolor: #a4247a;\n`;\n\nexport const Wrapper = styled.div`\npadding-left: 66px;\nheight: 100%;\n`;\n\nexport const ContentWrapper = styled.div`\nheight: calc(100% - 102px);\noverflow: auto;\n`;\n\nexport const Input = styled.input`\n font-size: 14.5px;\n font-weight: normal;\n letter-spacing: 0.11px;\n box-shadow: inset 0 -1px 0 0 ${colors.grey16};\n border: 0;\n width: 421px;\n padding: 5px 13px;\n background: ${colors.iceBlue};\n height: 34px;\n &::-webkit-input-placeholder {\n color: ${colors.grey17};\n font-weight: normal;\n letter-spacing: 0.11px;\n }\n\n &::placeholder {\n font-size: 13px;\n font-weight: 300;\n }\n`;\nInput.displayName = 'Input';\n\nexport const InputName = styled(Input)`\n margin-bottom: 15px;\n`;\nInputName.displayName = 'Input';\n\nexport const WrapperField = styled.div`\n width: 421px;\n padding-bottom: 40px;\n`;\nWrapperField.displayName = 'WrapperField';\n\nexport const Label = styled.div`\n font-size: 13.5px;\n font-weight: normal;\n line-height: 1.33;\n color: ${colors.grey19};\n padding-bottom: 21px;\n height: 34px;\n`;\nLabel.displayName = 'Label';\n\nexport const Content = styled.div`\n display: flex;\n //justify-content: space-between;\n margin-bottom: 21px;\n flex-wrap: wrap;\n & > * {\n margin-top: 10px;\n margin-right: 15px;\n width: 252px;\n }\n`;\n\nexport const Code = styled.code`\nfont-size: 11px;\nline-height: 1.42;\ncolor: #1c2243;\nword-break: break-all;\npadding: 13px 0;\npadding-right: 21px;\n`;\n\nexport const CodeWrapper = styled.div`\n background:#edf2f7;\n border: solid 1px #bec8d2;\n width: 528px;\n display: flex;\n align-items: center;\n padding-left: 21px;\n margin-right: 20px;\n`;\n\nexport const PurpleColor = styled.span`\n color: #a4247a;\n`;\n\nexport const BlueColor = styled.span`\n color: #0082ed;\n font-weight: bold;\n margin-left: 5px;\n`;\n\nexport const Add = styled(AddIcon)`\n width:10px;\n height: 10px;\n`;\n\nexport const Flex = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 21px;\n`;\n\nexport const SelectTitle = styled.div`\nfont-size: 15px;\nmargin-right: 30px;\ncursor: pointer;\ncolor:${(props) => (props.selected ? '#0082ed' : '#264d6d')};\nfont-weight: ${(props) => (props.selected ? '600' : 'normal')};\nborder-bottom: 3px solid ${(props) => (props.selected ? '#0082ed' : 'transparent')};\n`;\n","import React, { useState } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { setAgent } from 'store/Agents/actions';\nimport { selectDraftNewAgentTools, selectDraftNewAgentName } from 'store/Agents/selectors';\nimport Header from '../Header';\nimport {\n Wrapper, Title, TextItem, TextInput, Input, ContentWrapper\n} from '../styled';\n\nconst Configuration = ({ nextStep, onClose }) => {\n const dispatch = useDispatch();\n const draftNewAgentTools = useSelector(selectDraftNewAgentTools);\n const draftNewAgentName = useSelector(selectDraftNewAgentName);\n const [agentName, setAgentName] = useState(draftNewAgentName);\n\n const onChangeAgentName = (e) => {\n setAgentName(e.target.value);\n };\n\n const onNext = () => {\n nextStep();\n const data = {\n name: agentName,\n server: window.location.origin,\n tools: draftNewAgentTools\n };\n dispatch(setAgent(data));\n };\n\n const nextEnable = agentName.length > 0;\n\n return (\n \n
\n \n Configuration\n Generate a configuration file to be imported from the command line\n Name\n \n \n \n );\n};\n\nexport default Configuration;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport W3af from 'Images/tool_logo_w3af.png';\nimport Burp from 'Images/tool_logo_burp.png';\nimport Arachni from 'Images/tool_logo_arachni.png';\nimport Nikto from 'Images/tool_logo_nikto.png';\nimport Wpscan from 'Images/tool_logo_wpscan.png';\nimport Nessus from 'Images/tool_logo_nessus.png';\nimport Nmap from 'Images/tool_logo_nmap.png';\nimport Nuclei from 'Images/tool_logo_nuclei.png';\nimport Openvas from 'Images/tool_logo_openvas.png';\nimport Cli from 'Images/tool_logo_cli.png';\nimport Insightvm from 'Images/tool_logo_insightVM.png';\nimport Qualys from 'Images/tool_logo_qualys.png';\nimport Shodan from 'Images/tool_logo_shodan.png';\nimport Sonarqube from 'Images/tool_logo_sonarQube.jpeg';\nimport Sublist3r from 'Images/tool_logo_sublist34.png';\nimport Tenableio from 'Images/tool_logo_tenable.png';\nimport Zap from 'Images/tool_logo_zap.png';\n\nexport const Wrapper = styled.div`\n display: flex;\n border: solid 1px #dbdbdb;\n border-radius: 3px;\n box-shadow: 2px 2px 5px 0 rgba(97, 97, 97, 0.07);\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Content = styled.div`\n display: flex;\n flex-direction: column;\n padding: 14px 17px;\n padding-bottom: 0;\n width: 100%;\n border-left: #dbdbdb solid 1px;\n`;\nContent.displayName = 'Content';\n\nexport const Title = styled.div`\n font-size: 13.5px;\n font-weight: 600;\n color: ${colors.black};\n padding-bottom: 5px;\n`;\nTitle.displayName = 'Title';\n\nexport const Description = styled.div`\n font-size: 12.5px;\n font-weight: normal;\n line-height: 1.28;\n color: ${colors.grey19};\n padding-bottom: 3px;\n`;\nDescription.displayName = 'Description';\n\nexport const Logo = styled.img.attrs(({ type }) => {\n if (type === 'arachni') return { src: Arachni };\n if (type === 'burp') return { src: Burp };\n if (type === 'gvm_openvas') return { src: Openvas };\n if (type === 'insightvm') return { src: Insightvm };\n if (type === 'nessus') return { src: Nessus };\n if (type === 'nikto2') return { src: Nikto };\n if (type === 'nmap') return { src: Nmap };\n if (type === 'nuclei') return { src: Nuclei };\n if (type === 'openvas_legacy') return { src: Openvas };\n if (type === 'qualys') return { src: Qualys };\n if (type === 'shodan2') return { src: Shodan };\n if (type === 'sonarqube') return { src: Sonarqube };\n if (type === 'sublist3r') return { src: Sublist3r };\n if (type === 'tenableio') return { src: Tenableio };\n if (type === 'w3af') return { src: W3af };\n if (type === 'wpscan') return { src: Wpscan };\n if (type === 'wpscan_legacy') return { src: Wpscan };\n if (type === 'zap') return { src: Zap };\n\n return { src: Cli };\n})`\n width: 99px;\n height: 99px;\n object-fit: contain;\n ${({ type }) => type === 'shodan2' && `background-color: ${colors.black}`};\n`;\nLogo.displayName = 'Logo';\n","import React from 'react';\nimport {\n Wrapper, Title, Description, Logo, Content\n} from './styled';\n\nconst Card = ({\n image, title, description, toolbar\n}) => (\n \n \n \n { title }\n { description }\n { toolbar }\n \n \n);\nexport default Card;\n","import { css } from 'styled-components';\nimport breakpoints from 'utils/breakpoints/rules';\n\n/**\n * Wraps styles in css media query\n *\n * @param id\n * @param type\n * @returns string\n */\nexport const bp = (id) => {\n // eslint-disable-next-line react/display-name\n if (!id) return () => null;\n /* istanbul ignore next */\n const breakpoint = breakpoints[id];\n if (!breakpoint) {\n console.warn(`Breakpoint ${id} does not exist.`); // eslint-disable-line\n // eslint-disable-next-line react/display-name\n return () => null;\n }\n\n return (...args) => css`\n @media ${breakpoint} {\n ${css(...args)}\n }\n `;\n};\n\n/**\n * Wraps styles in css media query only if a breakpoint exists, otherwise outputs a normal style (d is for default).\n *\n * @param from - Breakpoint\n * @returns string\n */\n\nexport const bpd = (from) => (...rest) => (from ? bp(from)`${rest}` : () => rest);\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { bpd } from 'utils/breakpoints';\n\nexport const Wrapper = styled.div`\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const WrapperTitle = styled.div`\n display: flex;\n`;\nWrapperTitle.displayName = 'WrapperTitle';\n\nexport const Title = styled.div`\n font-size: 21.5px;\n font-weight: 500;\n color: ${colors.black};\n padding-bottom: 13px;\n margin-right: auto;\n`;\nTitle.displayName = 'Title';\n\nexport const ButtonsContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n width: 185px;\n`;\nButtonsContainer.displayName = 'ButtonsContainer';\n\nexport const Description = styled.div`\n font-size: 13.5px;\n font-weight: normal;\n line-height: 1.28;\n color: ${colors.grey19};\n padding-bottom: 21px;\n`;\nDescription.displayName = 'Description';\n\nexport const Content = styled.div`\n display: flex;\n flex-direction: column;\n max-width: 650px;\n max-height: 370px;\n height: 100%;\n overflow: auto;\n position: relative;\n padding-right: 17.5px;\n right: -24px;\n margin-left: -25px;\n`;\nContent.displayName = 'Content';\n\nexport const ToolContainer = styled.div`\n font-size: 17.5px;\n font-weight: 500;\n`;\nToolContainer.displayName = 'ToolContainer';\n\nexport const ToolCategory = styled.div`\n font-size: 17.5px;\n font-weight: 500;\n padding-bottom: 21px;\n color: ${colors.black};\n`;\nToolCategory.displayName = 'ToolCategory';\n\nexport const Tools = styled.div`\n padding-bottom: 21px;\n display: flex;\n flex-flow: row wrap;\n justify-content: space-between;\n flex-direction: column;\n ${bpd('xsm')`\n flex-direction: row;\n `}\n & > * {\n margin-top: 10px;\n ${bpd('xsm')`\n width: 49%;\n `}\n }\n`;\nTools.displayName = 'Tools';\n\nexport const WrapperButton = styled.a`\n display: flex;\n align-items: center;\n cursor: pointer;\n font-size: 13.5px;\n font-weight: 500;\n color: ${colors.blueCerulean};\n margin-right: auto;\n`;\nWrapperButton.displayName = 'WrapperButton';\n\nexport const WrapperAdded = styled.div`\n display: flex;\n align-items: center;\n font-size: 13.5px;\n font-weight: 500;\n color: ${colors.warmPurple};\n margin-right: auto;\n`;\nWrapperAdded.displayName = 'WrapperAdded';\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nconst WrapperButton = styled.a`\n display: flex;\n align-items: center;\n cursor: pointer;\n font-size: 13.5px;\n font-weight: 500;\n color: ${colors.blueCerulean};\n`;\nWrapperButton.displayName = 'WrapperButton';\n\nexport default WrapperButton;\n","import React from 'react';\nimport { useIntl } from 'react-intl';\nimport Wrapper from './styled';\n\nconst WebSiteButton = ({ url, toolName }) => {\n const intl = useIntl();\n return (\n \n {intl.formatMessage({ id: 'agents.createAgent.wizard.chooseTools.website' })}\n \n );\n};\n\nexport default WebSiteButton;\n","import styled from 'styled-components';\n\nconst Toolbar = styled.div`\n display: flex;\n justify-content: flex-end;\n margin-top: auto;\n margin-bottom: 6px;\n`;\nToolbar.displayName = 'Toolbar';\n\nexport default Toolbar;\n","import { Accept, Cancel } from 'Common/Components/Button/styled';\nimport React, { useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport pickBy from 'lodash/pickBy';\nimport { selectToolsByCategory, selectToolsSelected, selectAgentTypes } from 'store/Agents/selectors';\nimport { addTool } from 'store/Agents/actions';\nimport { useIntl } from 'react-intl';\nimport Card from '../Card';\nimport {\n Wrapper, Title, Description, Content, ButtonsContainer, ToolContainer, ToolCategory, Tools, WrapperTitle, WrapperButton, WrapperAdded\n} from './styled';\nimport WebSiteButton from '../WebsiteButton';\nimport Toolbar from '../Toolbar/styled';\n\nconst Add = ({ added, onAdded, toolName }) => {\n const intl = useIntl();\n return !added && (\n \n {intl.formatMessage({ id: 'agents.createAgent.wizard.chooseTools.addToAgent' })}\n \n );\n};\n\nconst Added = ({ added }) => {\n const intl = useIntl();\n return added && (\n \n {intl.formatMessage({ id: 'agents.createAgent.wizard.chooseTools.added' })}\n \n );\n};\n\nconst ToolCollection = ({ onClose }) => {\n const intl = useIntl();\n const dispatch = useDispatch();\n\n const toolsByCategory = useSelector(selectToolsByCategory);\n const toolsSelected = useSelector(selectToolsSelected);\n const allTools = useSelector(selectAgentTypes);\n const [tools, setTools] = useState(toolsSelected);\n\n const isAdded = (tool) => {\n const toolsSelected = Object.entries(tools).map(el => el[0]);\n return toolsSelected.indexOf(tool) > -1;\n };\n\n const onAdded = (e, tool) => {\n const newTool = pickBy(allTools, { name: tool });\n const newTools = { ...tools, ...newTool };\n setTools(newTools);\n e.preventDefault();\n };\n\n const onSave = (e) => {\n Object.values(tools).forEach(tool => {\n dispatch(addTool(tool.name));\n });\n e.preventDefault();\n onClose();\n };\n\n return (\n \n \n {intl.formatMessage({ id: 'agents.createAgent.wizard.chooseTools.toolCollection.title' })}\n \n {intl.formatMessage({ id: 'agents.createAgent.wizard.chooseTools.toolCollection.back' })}\n {intl.formatMessage({ id: 'agents.createAgent.wizard.chooseTools.toolCollection.done' })}\n \n \n {intl.formatMessage({ id: 'agents.createAgent.wizard.chooseTools.toolCollection.description' })}\n \n {\n toolsByCategory.map((tool) => (\n \n { tool.categoryName }\n \n {\n tool.items.map((item) => {\n const toolbar = (\n \n \n onAdded(e, item.name) } toolName={ item.name } />\n \n \n );\n return ;\n })\n }\n \n \n ))\n }\n \n \n );\n};\nexport default ToolCollection;\n","import styled from 'styled-components';\nimport { TextInfo } from '../styled';\n\nconst AddTools = styled(TextInfo)`\n margin: 26px 0 !important;\n`;\nAddTools.displayName = 'AddTools';\n\nexport default AddTools;\n","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgToolWheel = function SvgToolWheel(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#0082ED\",\n fillRule: \"nonzero\",\n stroke: \"#0082ED\",\n strokeWidth: 0.2\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.87861 13.623756l-1.491397 1.490793 2.497748 2.498267 1.491397-1.491366c.578546.343648 1.200598.600286 1.857378.767054V19h3.53291v-2.111496c.656016-.166768 1.277877-.423979 1.857377-.767054l1.491207 1.491366 2.497747-2.498267-1.491588-1.490793c.344037-.579679.600872-1.201908.76726-1.85772H19V8.233773h-2.11135c-.16658-.655811-.423415-1.27785-.76726-1.857338l1.491587-1.491175-2.497747-2.497694-1.491207 1.490984c-.579118-.343075-1.20117-.600096-1.857377-.767054V1h-3.53291v2.111115c-.656398.166958-1.27845.423787-1.857378.767053L4.884961 2.386802 2.387213 4.88507l1.490825 1.491175c-.342891.579107-.600108 1.200954-.766688 1.857338H1v3.532263h2.11135c.166771.656766.423797 1.279186.76726 1.85791zM2.009213 9.243155h1.922636l.078997-.408905c.15723-.811894.469019-1.568071.927543-2.24697l.232793-.344984L3.814307 4.88526 4.88477 3.814629l1.357828 1.357799.34499-.23336c.678342-.458515 1.434154-.77087 2.246638-.927906l.408913-.078995V2.009381h1.514104v1.922405l.408531.079376c.811911.157418 1.568296.469391 2.246637.927906l.344991.232978 1.357256-1.357036 1.070844 1.07044-1.357255 1.357418.232792.345175c.459097.67928.771077 1.435268.928116 2.246398l.079379.408905h1.922063v1.51388h-1.922254l-.079378.408905c-.15704.81094-.46902 1.566927-.928117 2.24678l-.232792.344984 1.357256 1.357036-1.070464 1.07044-1.357637-1.357417-.344418.233169c-.679868.458514-1.43549.770679-2.24721.928096l-.40853.078805v1.922595H9.242947v-1.922786l-.408913-.078804c-.812675-.157418-1.568486-.469582-2.246446-.927716l-.344991-.23355-1.357637 1.357608-1.070654-1.070631 1.358019-1.357036-.233556-.345174c-.458334-.678518-.770886-1.434314-.927925-2.24659l-.079188-.408904H2.009403l-.000191-1.513881h0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.01065 13.6c1.737258 0 3.150889-1.41304 3.150889-3.149734 0-1.73705-1.41363-3.150266-3.150888-3.150266-1.736548 0-3.149113 1.41304-3.149113 3.150266 0 1.736695 1.412565 3.149734 3.149113 3.149734zm0-5.360814c1.219419 0 2.211782.991737 2.211782 2.21108 0 1.219166-.99254 2.210726-2.211781 2.210726-1.218708 0-2.210006-.991915-2.210006-2.210726 0-1.219166.991298-2.21108 2.210006-2.21108z\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgToolWheel, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/tool_wheel.1b4bc890.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n display: flex;\n align-items: center;\n margin-right: 5px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Label = styled.div`\n font-size: 13.5px;\n font-weight: 500;\n color: ${colors.blueCerulean};\n padding-left: 9px;\n cursor: pointer;\n`;\nLabel.displayName = 'Label';\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n width: 550px;\n img {\n border: solid 1px #dbdbdb;\n margin: 19px;\n width: 99px;\n height: 99px;\n border-radius: 3px;\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n font-size: 17.5px;\n font-weight: 600;\n color: ${colors.black};\n padding-bottom: 13px;\n padding-right: 13px;\n margin-right: auto;\n`;\nTitle.displayName = 'Title';\n\nexport const Content = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n max-height: 225px;\n height: 100%;\n overflow: auto;\n margin-top: 21px;\n`;\nContent.displayName = 'Content';\n\nexport const WrapperField = styled.div`\n display: flex;\n flex-direction: column;\n padding-bottom: 21px;\n`;\nWrapperField.displayName = 'WrapperField';\n\nexport const Label = styled.div`\n font-size: 12.5px;\n font-weight: normal;\n letter-spacing: 0.09px;\n color: ${colors.grey17};\n padding-bottom: 9px;\n`;\nLabel.displayName = 'Label';\n\nexport const Field = styled.textarea`\n padding: 8px 10px 8px 15px;\n background-color: ${colors.iceBlue};\n box-shadow: inset 0 -1px 0 0 #afafaf;\n border: 0;\n resize: none;\n font-size: 14.5px;\n font-weight: normal;\n line-height: 1.24;\n letter-spacing: 0.11px;\n color: ${colors.grey17};\n`;\nField.displayName = 'Field';\n\nexport const WrapperTitle = styled.div`\n display: flex;\n width: 100%;\n align-items: baseline;\n`;\nWrapperTitle.displayName = 'WrapperTitle';\n\nexport const ButtonsContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n width: 185px;\n`;\nButtonsContainer.displayName = 'ButtonsContainer';\n","import { Accept, Cancel } from 'Common/Components/Button/styled';\nimport React, { useState } from 'react';\nimport { useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport get from 'lodash/get';\nimport { setFieldsTool } from 'store/Agents/actions';\nimport { selectToolsVariables } from 'store/Agents/selectors';\nimport Card from '../Card';\nimport Toolbar from '../Toolbar/styled';\nimport WebSiteButton from '../WebsiteButton';\nimport {\n Wrapper, Title, Content, WrapperField, Label, Field, WrapperTitle, ButtonsContainer\n} from './styled';\n\nconst ConfigureTool = ({ tool, onClose }) => {\n const intl = useIntl();\n const dispatch = useDispatch();\n const props = useSelector((state) => ({\n variables: selectToolsVariables(state, tool.name)\n }));\n const [fields, setFields] = useState(props.variables);\n const optionalEnvVar = get(tool, 'optional_environment_variables', false);\n\n // environmentVariables=son las env var de la tool, estan definidas en selector.\n // variables=esta en el reducer y contiene las env var que defnio el usuario en el wizard.\n // TODO: unificar esto. emprolijar.\n const onChange = (e) => {\n // guardo el estado de los campos\n const fieldName = e.target.name;\n const fieldValue = e.target.value;\n const newFields = { ...fields };\n newFields[fieldName] = fieldValue;\n setFields(newFields);\n };\n\n const onSave = () => {\n // persisto en el reducecr los datos.\n const filledFields = Object.fromEntries(Object.entries(fields).filter(([_, value]) => value));\n dispatch(setFieldsTool(tool.name, filledFields));\n onClose();\n };\n\n return (\n \n \n {intl.formatMessage({ id: 'agents.createAgent.wizard.chooseTools.toolCollection.configureTool.title' })}\n \n {intl.formatMessage({ id: 'agents.createAgent.wizard.chooseTools.toolCollection.configureTool.back' })}\n {intl.formatMessage({ id: 'agents.createAgent.wizard.chooseTools.toolCollection.configureTool.save' })}\n \n \n } />\n \n {\n tool.environment_variables.map((item) => (\n \n \n \n \n ))\n }\n {\n optionalEnvVar && optionalEnvVar.map((item) => (\n \n \n \n \n ))\n }\n \n \n \n );\n};\n\nexport default ConfigureTool;\n","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgCog = function SvgCog(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 19,\n height: 20,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#EA3158\",\n fillRule: \"nonzero\",\n stroke: \"#EA3158\",\n strokeWidth: 0.2\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.978 13.624l-1.486 1.49 2.488 2.499 1.486-1.492c.576.344 1.196.6 1.85.768V19h3.519v-2.111a6.998 6.998 0 001.85-.768l1.485 1.492 2.488-2.498-1.486-1.491a7.02 7.02 0 00.765-1.858h2.103V8.234h-2.103a7.027 7.027 0 00-.765-1.858l1.486-1.49-2.488-2.498-1.485 1.49a6.996 6.996 0 00-1.85-.767V1h-3.52v2.111a6.984 6.984 0 00-1.85.767L3.98 2.387 1.492 4.885l1.485 1.491a7.044 7.044 0 00-.763 1.858H.11v3.532h2.103c.166.657.422 1.279.764 1.858zm-1.862-4.38H3.03l.079-.41a6.057 6.057 0 01.923-2.247l.232-.345-1.351-1.357 1.066-1.07 1.353 1.357.343-.233a5.996 5.996 0 012.238-.928l.407-.079V2.01H9.83v1.923l.407.08c.809.157 1.562.469 2.238.927l.344.233 1.352-1.357 1.066 1.07-1.352 1.358.232.345c.457.68.768 1.435.925 2.246l.079.41h1.914v1.513H15.12l-.079.41a6.058 6.058 0 01-.924 2.246l-.232.345 1.352 1.357-1.066 1.07-1.353-1.357-.343.233a6.02 6.02 0 01-2.238.928l-.407.079v1.923H8.321v-1.923l-.407-.079a6.003 6.003 0 01-2.238-.928l-.343-.233-1.353 1.357-1.066-1.07 1.353-1.357-.233-.345a6.051 6.051 0 01-.924-2.247l-.08-.409H1.117V9.243h0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.086 13.6a3.148 3.148 0 003.138-3.15A3.148 3.148 0 009.086 7.3a3.147 3.147 0 00-3.137 3.15 3.147 3.147 0 003.137 3.15zm0-5.36a2.21 2.21 0 012.203 2.21 2.21 2.21 0 01-2.203 2.211 2.209 2.209 0 01-2.202-2.21c0-1.22.988-2.212 2.202-2.212z\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgCog, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/cog.6f2e860c.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { selectToolHasEnvVars, selectToolHasBeenConfigured, selectToolHasOptionalEnvVars } from 'store/Agents/selectors';\nimport { ReactComponent as EditIcon } from 'Images/tool_wheel.svg';\nimport useModal from 'Hooks/useModal';\nimport Modal from 'Common/Components/Modal';\nimport {\n Wrapper\n} from './styled';\nimport ConfigureTool from '../ConfigureTool';\n\nconst EditButton = ({ tool }) => {\n const props = useSelector((state) => ({\n toolHasEnvVars: selectToolHasEnvVars(state, tool.name),\n toolHasBeenConfigured: selectToolHasBeenConfigured(state, tool.name),\n toolHasOptionalEnvVar: selectToolHasOptionalEnvVars(state, tool.name)\n }));\n const [ModalConfigureTool, showModalConfigureTool, toggleModalConfigureTool] = useModal(Modal);\n\n return (props.toolHasEnvVars || props.toolHasOptionalEnvVar) && props.toolHasBeenConfigured && (\n \n toggleModalConfigureTool(true) } />\n {showModalConfigureTool && toggleModalConfigureTool(false) } />}\n \n );\n};\n\nexport default EditButton;\n","import styled from 'styled-components';\n\nconst Wrapper = styled.div`\n display: flex;\n align-items: center;\n margin-right: 5px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgToolTrash = function SvgToolTrash(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 19,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.804657 18c1.573092 0 2.835705-1.263224 2.897801-2.890428l.331177-10.576826h1.552394c.227684 0 .413971-.192696.413971-.428212 0-.235516-.186287-.428212-.413971-.428212h-4.346702v-.963476C12.239327 1.770781 11.49418 1 10.583441 1H7.437257c-.910737 0-1.655886.77078-1.655886 1.712846v.963476h-4.3674C1.186288 3.676322 1 3.869018 1 4.104534c0 .235516.186287.428212.413972.428212h1.552393l.331177 10.576826C3.359638 16.736776 4.622251 18 6.195342 18h5.609315zM6.609314 2.712846c0-.471032.372575-.856423.827943-.856423h3.146184c.455369 0 .827943.38539.827943.856423v.963476h-4.80207v-.963476zm-2.46313 12.353905L3.815006 4.511335h10.411385l-.351876 10.555416c-.041397 1.15617-.952135 2.076826-2.069858 2.076826H6.216041c-1.117723 0-2.02846-.899245-2.069857-2.076826zm4.981356-.471848c.227684 0 .413971-.192695.413971-.428212V7.764928c0-.235516-.186287-.428211-.413971-.428211-.227685 0-.413972.192695-.413972.428211v6.401763c0 .235517.186287.428212.413972.428212zm-2.23783 0c.227685 0 .413972-.192695.413972-.428212V7.764928c0-.235516-.186287-.428211-.413972-.428211-.227684 0-.413971.192695-.413971.428211v6.401763c0 .235517.186287.428212.413971.428212zm4.475659 0c.227684 0 .413972-.192695.413972-.428212V7.764928c0-.235516-.186288-.428211-.413972-.428211s-.413971.192695-.413971.428211v6.401763c0 .235517.186287.428212.413971.428212z\",\n stroke: \"#90A9C0\",\n strokeWidth: 0.3,\n fill: \"#90A9C0\",\n fillRule: \"nonzero\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgToolTrash, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/tool_trash.e6d04612.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { selectToolHasEnvVars, selectToolHasBeenConfigured, selectToolHasOptionalEnvVars } from 'store/Agents/selectors';\nimport { ReactComponent as WarningIcon } from 'Images/cog.svg';\nimport useModal from 'Hooks/useModal';\nimport Modal from 'Common/Components/Modal';\nimport Wrapper from './styled';\nimport ConfigureTool from '../ConfigureTool';\n\nconst ConfigureButton = ({ tool }) => {\n const props = useSelector((state) => ({\n toolHasEnvVars: selectToolHasEnvVars(state, tool.name),\n toolHasBeenConfigured: selectToolHasBeenConfigured(state, tool.name),\n toolHasOptionalEnvVar: selectToolHasOptionalEnvVars(state, tool.name)\n }));\n\n const [ModalConfigureTool, showModalConfigureTool, toggleModalConfigureTool] = useModal(Modal);\n\n return (props.toolHasEnvVars || props.toolHasOptionalEnvVar) && !props.toolHasBeenConfigured && (\n \n toggleModalConfigureTool(true) } />\n {showModalConfigureTool && toggleModalConfigureTool(false) } />}\n \n );\n};\n\nexport default ConfigureButton;\n","import styled from 'styled-components';\n\nconst Wrapper = styled.div`\n display: flex;\n align-items: center;\n cursor: pointer;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgHelpSysreq = function SvgHelpSysreq(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 18,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 0a9 9 0 100 18A9 9 0 009 0zm0 13.752l-.088.018h-.18c-.054-.01-.108-.02-.16-.035a.997.997 0 11.433.016L9 13.752zm2.88-6.535a2.225 2.225 0 01-.522.883 5.96 5.96 0 01-.9.74c-.18.12-.34.254-.51.383a1.08 1.08 0 00-.332.48 4.979 4.979 0 01-.12.292.67.67 0 01-.627.444.876.876 0 01-.455-.072.744.744 0 01-.409-.557 1.278 1.278 0 01.216-.96 2.62 2.62 0 01.565-.6c.24-.192.48-.376.72-.569.2-.153.368-.345.494-.564.2-.378.153-.84-.12-1.17a.972.972 0 00-.54-.299 1.718 1.718 0 00-.84.015 1.021 1.021 0 00-.65.54c-.086.158-.16.32-.24.48a1.168 1.168 0 01-.234.326.805.805 0 01-.61.196.84.84 0 01-.384-.105.666.666 0 01-.36-.6c-.01-.397.117-.786.36-1.101.28-.379.651-.68 1.08-.875a3.294 3.294 0 011.023-.295l.202-.02h.36l.194.019c.482.03.953.152 1.389.36.39.178.722.461.96.818.184.287.296.614.326.954.048.285.036.577-.036.857z\",\n fill: \"#0082ED\",\n fillRule: \"nonzero\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgHelpSysreq, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/help-sysreq.5680b8ff.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport { ReactComponent as TrashIcon } from 'Images/tool_trash.svg';\nimport { removeTool } from 'store/Agents/actions';\nimport Wrapper from './styled';\n\nconst DeleteButton = ({ tool }) => {\n const dispatch = useDispatch();\n return (\n dispatch(removeTool(tool)) }>\n \n \n );\n};\n\nexport default DeleteButton;\n","/* eslint-disable no-negated-condition */\nimport React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport get from 'lodash/get';\nimport filter from 'lodash/filter';\nimport head from 'lodash/head';\nimport pickBy from 'lodash/pickBy';\nimport isEmpty from 'lodash/isEmpty';\nimport {\n selectToolsSelected, selectAgentTypes, selectDraftNewAgentTools\n} from 'store/Agents/selectors';\nimport Modal from 'Common/Components/Modal';\nimport useModal from 'Hooks/useModal';\nimport Header from '../Header';\nimport ToolCollection from './components/ToolCollection';\nimport {\n Wrapper, Title, TextItem, Content, Add, ContentWrapper\n} from '../styled';\n\nimport AddTools from './styled';\nimport Toolbar from './components/Toolbar/styled';\nimport EditButton from './components/EditButton';\nimport ConfigureButton from './components/ConfigureButton';\nimport DeleteButton from './components/DeleteButton';\nimport Card from './components/Card';\nimport { getManifest } from 'store/Agents/actions';\n\nconst Tools = ({ nextStep, prevStep, onClose }) => {\n const [ModalBrowseTools, showModalBrowseTools, toggleModalBrowseTools] = useModal(Modal);\n const tools = useSelector(selectToolsSelected);\n const dispatch = useDispatch();\n const allTools = useSelector(selectAgentTypes);\n const draftNewAgentTools = useSelector(selectDraftNewAgentTools);\n\n useEffect(() => {\n dispatch(getManifest());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const toolHasBeenConfigured = (tool) => {\n const currentTool = pickBy(allTools, { name: tool });\n const enviromentVariables = get(currentTool, `${tool}.environment_variables`, []);\n const toolSelected = head(filter(draftNewAgentTools, { name: tool }));\n const isConfigured = [];\n if (toolSelected && !isEmpty(toolSelected.variables)) {\n enviromentVariables.forEach((item) => {\n const envVarConfigured = Object.hasOwn(toolSelected.variables, item) || !isEmpty(toolSelected.variables[item]);\n isConfigured.push(envVarConfigured);\n });\n }\n return !isEmpty(isConfigured) ? !isConfigured.includes(false) : false;\n };\n\n const checkForConfiguredTools = () => {\n const result = [];\n if (Object.keys(tools).length > 0) {\n Object.entries(tools).map((tool) => {\n if (tool[1].environment_variables.length) {\n result.push(toolHasBeenConfigured(tool[1].name));\n } else {\n result.push(true);\n }\n\n return result;\n });\n }\n return !isEmpty(result) ? !result.includes(false) : false;\n };\n\n const toolsConfigured = checkForConfiguredTools();\n\n return (\n \n
\n \n Selected tools\n The following tools will process the output data\n toggleModalBrowseTools(true) }>\n \n Add tools from our collection\n \n { Object.keys(tools).length > 0 && (\n \n {\n Object.entries(tools).map((tool) => {\n const toolbar = (\n \n \n \n \n \n );\n return ;\n })\n }\n \n )}\n {showModalBrowseTools && toggleModalBrowseTools(false) } />}\n \n \n );\n};\n\nexport default Tools;\n","import styled from 'styled-components';\nimport { ReactComponent as DownloadIcon } from 'Images/download-icon.svg';\nimport { TextItem, SubTitle } from '../styled';\n\nexport const Download = styled(DownloadIcon)`\n fill: #0082ed;\n width: 17.2px;\n height: 16.2px;\n`;\n\nexport const EnableText = styled(TextItem)`\nmargin-bottom: 30px !important;\n`;\n\nexport const DownloadTitle = styled(SubTitle)`\n margin-bottom: 15px;\n`;\nexport const LoadTitle = styled(SubTitle)`\n margin-bottom: 20px;\n`;\n\nexport const Text = styled.div`\nfont-size: 13.5px;\nfont-weight: 500;\ncolor: #0082ed;\ncursor: pointer;\nmargin: 10px 0 26px 20px;\n`;\n","import React from 'react';\nimport { ReactComponent as ClipboardIcon } from 'Images/icon-clipboard.svg';\nimport copyToClipboard from 'utils/clipboard';\nimport {\n CodeWrapper, Code, PurpleColor, Flex\n} from '../styled';\n\nexport const DockerTab = ({ token }) => {\n const script = `docker run -v ABSOLUTE_PATH_TO_dispatcher.yaml:/root/.faraday/config/dispatcher.yaml faradaysec/faraday_agent_dispatcher --token=${token}`;\n const copyTextToClipboard = () => copyToClipboard(script);\n return (\n \n \n \n $\n docker run -v \n ABSOLUTE_PATH_TO_dispatcher.yaml:/root/.faraday/config/dispatcher.yaml faradaysec/faraday_agent_dispatcher --token=\n {token}\n \n \n \n \n );\n};\n\nexport const PythonTab = ({ token }) => {\n const script = `cp dispatcher.yaml $HOME/.faraday/config/\n faraday-dispatcher run --token=${token}`;\n const copyTextToClipboard = () => copyToClipboard(script);\n return (\n \n \n \n $\n cp \n dispatcher.yaml $HOME/.faraday/config/\n
\n $\n faraday-dispatcher run \n --token=\n {token}\n
\n
\n \n
\n );\n};\n","import React from 'react';\nimport { useSelector } from 'react-redux';\n\nimport startCase from 'lodash/startCase';\nimport {\n selectAgentTypes, selectDraftNewAgentName, selectDraftNewAgentServer, selectDraftNewAgentTools, selectToolsSelected\n} from 'store/Agents/selectors';\nimport { selectWsPort } from 'store/Faraday/selectors';\nimport Url from 'url-parse';\nimport { Download, Text } from './styled';\n\nconst Dispatcher = () => {\n const draftNewAgentName = useSelector(selectDraftNewAgentName);\n const draftNewAgentServer = useSelector(selectDraftNewAgentServer);\n const agentTypes = useSelector(selectAgentTypes);\n const toolsSelected = useSelector(selectToolsSelected);\n const stepChooseTools = useSelector(selectDraftNewAgentTools);\n const wsPort = useSelector(selectWsPort);\n\n const getParams = (items) => {\n let result = '';\n Object.keys(items).forEach((paramName) => {\n const values = items[paramName];\n result += ` ${paramName}:\\n`;\n Object.keys(values).forEach((key) => {\n result += ` ${key.toLowerCase()}: ${values[key]}\\n`;\n });\n });\n return result;\n };\n\n const getEnvVars = (name) => {\n const { variables } = stepChooseTools.find((i) => i.name === name);\n const variableList = Object.keys(variables);\n if (variableList.length === 0) return ' {}';\n return `\\n${variableList.map((key) => ` ${key.toUpperCase()}: ${variables[key]}`).join('\\n')}`;\n };\n\n const getToolConf = (tool) => {\n if (!tool) return;\n return (\n ` ${`${tool.name}:\\n` +\n ' max_size: 65536\\n' +\n ' params:\\n'}${\n getParams(tool.arguments)\n }` +\n ` repo_name: ${tool.name}\\n` +\n ` repo_executor: ${tool.name}.py\\n` +\n ` varenvs:${\n getEnvVars(tool.name)\n }\\n`);\n };\n\n const getApiPort = (ssl, port) => {\n if (port) return port;\n if (ssl) return 443;\n return 5985;\n };\n\n const getWebSocketPort = (ssl, port) => {\n if (port) return wsPort;\n if (ssl) return 443;\n return 80;\n };\n\n const getFileAsString = (agentName, agentServer) => {\n const newUrl = agentServer.indexOf('http') === -1 ? `http://${agentServer}` : agentServer;\n const url = new Url(newUrl);\n\n const host = url.hostname;\n const ssl = (url.protocol.indexOf('https') > -1);\n const port = url.port;\n const apiPort = getApiPort(ssl, port);\n const webSocketPort = getWebSocketPort(ssl, port);\n const tools = Object.entries(toolsSelected).map((tool) => getToolConf(agentTypes[tool[1].name])).join('');\n\n const fullText = '' +\n ' agent:\\n' +\n ` agent_name: ${agentName}\\n` +\n ' executors:\\n' +\n `${tools}\\n` +\n ' server:\\n' +\n ` api_port: '${apiPort}'\\n` +\n ` host: ${host}\\n` +\n ` ssl: '${startCase(ssl)}'\\n` +\n ' ssl_cert: \\'\\'\\n' +\n ' ssl_ignore: \\'False\\'\\n' +\n ` websocket_port: '${webSocketPort}'\\n`;\n\n return fullText;\n };\n\n const saveAgent = (agentName, agentServer) => {\n const element = document.createElement('a');\n const fileTxt = getFileAsString(agentName, agentServer);\n const file = new Blob([fileTxt], { type: 'text/plain' });\n element.href = URL.createObjectURL(file);\n element.download = 'dispatcher.yaml';\n document.body.appendChild(element);\n element.click();\n };\n return (\n saveAgent(draftNewAgentName, draftNewAgentServer) }>\n \n dispatcher.yaml\n \n );\n};\n\nexport default Dispatcher;\n","import React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { getToken, getManifest, getUserAgents } from 'store/Agents/actions';\nimport { selectToken, selectTokenExpiration } from 'store/Agents/selectors';\nimport {\n Wrapper, Title, TextItem, Flex, SelectTitle, ContentWrapper\n} from '../styled';\nimport { EnableText, DownloadTitle, LoadTitle } from './styled';\nimport { DockerTab, PythonTab } from './InfoTabs';\nimport Header from '../Header';\nimport Dispatcher from './dispatcher';\n\nconst SaveFinish = ({ prevStep, onClose }) => {\n const dispatch = useDispatch();\n const token = useSelector(selectToken);\n const expiresIn = useSelector(selectTokenExpiration);\n useEffect(() => {\n dispatch(getToken());\n dispatch(getManifest());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n let timeOut = 0;\n if (expiresIn > 0) {\n timeOut = setTimeout(() => dispatch(getToken()), expiresIn * 1000);\n }\n return () => timeOut && clearTimeout(timeOut);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [expiresIn]);\n const [isDockerSelected, setIsDockerSelected] = useState(true);\n const onFinish = () => {\n onClose();\n dispatch(getUserAgents());\n };\n\n return (\n \n
\n \n Save and finish\n Enable your new Agent with the generated configuration\n 1 - Download the configuration file \n \n 2 - Load config file and enable Agent from command line\n \n setIsDockerSelected(true) }>Docker\n setIsDockerSelected(false) }>Python\n \n {isDockerSelected ? : }\n Reload the Agents tab in Faraday’s web ui to view the updated list.\n \n \n );\n};\n\nexport default SaveFinish;\n","import styled from 'styled-components';\nimport {\n Title as _Title, SubTitle as _SubTitle\n} from '../styled';\n\nexport const SubTitle = styled(_SubTitle)`\n margin-bottom: 23px;\n`;\n\nexport const Title = styled(_Title)`\n margin-bottom: 21px;\n`;\n\nexport const Code = styled.code`\n font-size: 11px;\n line-height: 1.42;\n color: #1c2243;\n word-break: break-all;\n`;\n\nexport const CodeWrapper = styled.div`\n background:#edf2f7;\n border: solid 1px #bec8d2;\n width: 395px;\n height: 35px;\n display: flex;\n align-items: center;\n padding-left: 21px;\n margin-right: 20px;\n`;\n\nexport const Link = styled.a`\n text-decoration:none;\n font-size: 13.5px;\n cursor: pointer;\n color: #007bff;\n &:link,\n &:visited,\n &:hover,\n &:active {\n color: #007bff;\n text-decoration: none;\n }\n`;\n\nexport const Flex = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 21px;\n`;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { fadeIn } from 'Styles/effects';\nimport { ReactComponent as QuestionIcon } from 'Images/help-sysreq.svg';\n\nexport const Wrapper = styled.div`\n height: 100%;\n width: 100%;\n display: flex;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Tabs = styled.div`\n background: #ebeff3;\n //width: 243px;\n width: 333px;\n display: flex;\n flex-direction: column;\n height: 100%;\n`;\nTabs.displayName = 'Tabs';\n\nexport const Title = styled.div`\n font-size: 21.5px;\n font-weight: 500;\n line-height: 1.16;\n text-align: left;\n color: ${colors.softBlue};\n padding: 35px 34px 32px 34px;\n`;\nTitle.displayName = 'Title';\n\nexport const Dashed = styled.div`\n position: absolute;\n border-left: 2px dashed #90a9c0;\n height: 22px;\n left: 39.5px;\n top: 23px;\n `;\nDashed.displayName = 'Dashed';\n\nexport const Item = styled.div`\n display:flex;\n align-items: center;\n font-size: 13.5px;\n line-height: 1.04;\n text-align: left;\n padding: 10px 34px;\n position:relative;\n &::before {\n content: \"\";\n background-color: ${(props) => (props.active ? '#90a9c0' : 'transparent')};\n border: solid 2px #90a9c0;\n border-radius: 50%;\n width: 13px;\n height:13px;\n margin-right: 22px;\n }\n\n &:last-child ${Dashed} {\n display:none;\n }\n `;\nItem.displayName = 'Item';\n\nexport const TabContent = styled.div`\n overflow: auto;\n width:100%;\n`;\nTabContent.displayName = 'TabContent';\n\nexport const Container = styled.div`\n width: 900px;\n height: 614px;\n background-color: ${colors.white};\n & > :first-child {\n box-shadow: 18px 43px 50px 0 rgba(167, 167, 167, 0.5);\n border-top: 10px solid ${colors.softBlue};\n border-radius: 2px 2px 0 0;\n overflow: auto;\n }\n ${fadeIn(0, 1)}\n`;\nContainer.displayName = 'Container';\n\nexport const MenuList = styled.div`\n\n`;\n\nexport const Footer = styled.div`\n display: flex;\n margin-top: auto;\n padding: 0 34px;\n`;\n\nexport const FooterLink = styled.div`\nfont-size: 13.5px;\nfont-weight: 500;\ncolor: #0082ed;\nmargin: auto 0 34px 0px;\ncursor: pointer\n`;\n\nexport const QuestionMark = styled(QuestionIcon)`\nmargin-right: 8px;\n`;\n","import React from 'react';\nimport { ReactComponent as ClipboardIcon } from 'Images/icon-clipboard.svg';\nimport copyToClipboard from 'utils/clipboard';\nimport {\n TextItem, PurpleColor\n} from '../styled';\nimport {\n CodeWrapper, Code, Link, Flex\n} from './styled';\nimport { QuestionMark } from '../../styled';\n\nexport const DockerTab = () => {\n const script = 'docker pull faradaysec/faraday_agent_dispatcher';\n const copyTextToClipboard = () => copyToClipboard(script);\n return (\n <>\n \n 1-Download and install\n Docker\n \n \n 2- Pull the Docker image file from our\n dockehub page \n and load it in Docker:\n \n \n \n \n $\n docker pull \n faradaysec/faraday_agent_dispatcher\n \n \n \n \n \n \n Docker configuration documentation\n \n \n );\n};\n\nexport const PythonTab = () => {\n const script = 'pip install faraday_agent_dispatcher';\n const copyTextToClipboard = () => copyToClipboard(script);\n return (\n <>\n \n 1-Download and install\n Python\n \n \n 2- Install Faraday Agent Dispatcher:\n \n \n \n \n $\n pip install \n faraday_agent_dispatcher\n \n \n \n \n \n \n Python configuration documentation\n \n \n );\n};\n","import React, { useState } from 'react';\nimport Header from '../Header';\nimport {\n Wrapper, SelectTitle, ContentWrapper\n} from '../styled';\nimport {\n Title, Flex\n} from './styled';\nimport { DockerTab, PythonTab } from './InfoTabs';\n\nconst Requirements = ({ backStep, onClose }) => {\n const [isDockerSelected, setIsDockerSelected] = useState(true);\n return (\n \n
\n \n System requirements\n \n setIsDockerSelected(true) }>Docker\n setIsDockerSelected(false) }>Python\n \n {isDockerSelected ? : }\n \n \n );\n};\n\nexport default Requirements;\n","import React, { useState } from 'react';\n// import { useIntl } from 'react-intl';\nimport Configuration from './components/Configuration';\nimport Tools from './components/Tools';\nimport SaveFinish from './components/SaveFinish';\nimport Requirements from './components/Requirements';\n\nimport {\n Wrapper,\n Tabs,\n Title,\n Item,\n TabContent,\n Container,\n MenuList,\n Footer,\n FooterLink,\n QuestionMark,\n Dashed\n} from './styled';\n\nconst CreateAgentMenu = ({ onClose }) => {\n // const intl = useIntl(); ==> TODO\n // eslint-disable-next-line no-use-before-define\n const [visibleComponent, setVisibleComponent] = useState( newStep(menuItems, 1) } onClose={ onClose } />);\n const [active, setActive] = useState('configuration');\n const click = (key, component) => { setActive(key); setVisibleComponent(component); };\n const newStep = (menu, i) => menu[i].click();\n\n const backStep = (menu) => menu.find((item) => item.key === active).click();\n\n const menuItems = [\n {\n key: 'configuration', title: 'Configuration', click: () => { click('configuration', newStep(menuItems, 1) } onClose={ onClose } />); }\n },\n {\n key: 'tools', title: 'Selected Tools', click: () => { click('tools', newStep(menuItems, 2) } prevStep={ () => newStep(menuItems, 0) } onClose={ onClose } />); }\n },\n {\n key: 'save', title: 'Save and finish', click: () => { click('save', newStep(menuItems, 1) } onClose={ onClose } />); }\n }\n ];\n\n return (\n \n \n \n New Agent\n \n { menuItems.map((item) => (\n \n {item.title}\n \n \n ))}\n \n
\n \n { click(active, backStep(menuItems) } />); } }>System requirements\n
\n
\n \n {visibleComponent}\n \n
\n
\n );\n};\nexport default CreateAgentMenu;\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport ReduxModal from 'Common/Components/ReduxModal';\nimport { MODAL_AGENT_CREATE, MODAL_AGENT_TOKEN } from 'store/modals/modals';\nimport { closeModal, openModal } from 'store/modals/actions';\nimport TokenButton from './components/TokenButton';\nimport { Wrapper, ButtonWrapper, Title } from './styled';\nimport Token from './components/TokenButton/components/Token';\nimport CreateButton from './components/CreateButton';\nimport CreateAgentMenu from '../CreateNewAgent';\nimport { FormattedMessage } from 'react-intl';\n\nconst ActionBar = () => {\n const dispatch = useDispatch();\n return (\n \n } />\n <ButtonWrapper>\n <CreateButton />\n <TokenButton onClick={ () => dispatch(openModal(MODAL_AGENT_TOKEN)) } />\n </ButtonWrapper>\n <ReduxModal id={ MODAL_AGENT_TOKEN }>\n <Token />\n </ReduxModal>\n <ReduxModal id={ MODAL_AGENT_CREATE }>\n <CreateAgentMenu onClose={ () => dispatch(closeModal(MODAL_AGENT_CREATE)) } />\n </ReduxModal>\n </Wrapper>\n );\n};\nexport default ActionBar;\n","import styled from 'styled-components';\n\nconst Wrapper = styled.div`\n flex-direction: column;\n flex: 1 1 0px;\n width: 100%;\n margin-top: 20px;\n overflow: auto;\n padding: 0px 30px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n width: 100%;\n height: 84px;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: ${colors.white};\n border-radius: 2px;\n box-shadow: 0 2px 50px 0 rgba(0, 0, 0, 0.03);\n margin-top: 20px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Text = styled.p`\n font-size: 13.5px;\n color: #a6bbce;\n text-align: center;\n`;\nText.displayName = 'Text';\n\nexport const Link = styled.a`\n font-size: 13.5px;\n color: ${colors.blueCerulean};\n cursor: pointer;\n text-decoration: none;\n`;\nText.displayName = 'Text';\n","import React from 'react';\nimport { Wrapper, Text, Link } from './styled';\n\nconst EmptyAgents = () => (\n <Wrapper>\n <Text>\n You don't have any Agents yet, create one to get started or\n <Link href=\"https://docs.agents.faradaysec.com/getting-started/\" target=\"_blank\"> check our documentation</Link>\n .\n </Text>\n </Wrapper>\n);\n\nexport default EmptyAgents;\n","var _g, _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconActionBarTrigger = function SvgIconActionBarTrigger(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 25,\n height: 25,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#ffffff\",\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.5 1C6.16142 1 1 6.16144 1 12.5 1 18.838589 6.16142 24 12.5 24S24 18.838589 24 12.5C24 6.16144 18.83858 1 12.5 1zm-2.106105 6.418605c-.5819.013907-1.08832.510493-1.103197 1.220203v7.714042c.01987.946263.914547 1.520247 1.696584 1.069768l6.284884-3.869563c.342502-.21136.576671-.599284.576671-1.053052 0-.453769-.23417-.841712-.576671-1.053045l-6.284884-3.869546c-.19551-.11262-.39942-.163434-.593387-.158807z\",\n stroke: \"#88CC3F\",\n strokeWidth: 2,\n fill: \"#88CC3F\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.393895 7.418605c-.5819.013907-1.08832.510493-1.103197 1.220203v7.714042c.01987.946263.914547 1.520247 1.696584 1.069768l6.284884-3.869563c.342502-.21136.576671-.599284.576671-1.053052 0-.453769-.23417-.841712-.576671-1.053045l-6.284884-3.869546c-.19551-.11262-.39942-.163434-.593387-.158807z\",\n fill: \"#ffffff\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconActionBarTrigger, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon-action-bar-trigger.f9c88d81.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconActionBarTriggerDisabled = function SvgIconActionBarTriggerDisabled(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 25,\n height: 25,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#ffffff\",\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.5 1C6.16142 1 1 6.16144 1 12.5 1 18.838589 6.16142 24 12.5 24S24 18.838589 24 12.5C24 6.16144 18.83858 1 12.5 1zm-2.106105 6.418605c-.5819.013907-1.08832.510493-1.103197 1.220203v7.714042c.01987.946263.914547 1.520247 1.696584 1.069768l6.284884-3.869563c.342502-.21136.576671-.599284.576671-1.053052 0-.453769-.23417-.841712-.576671-1.053045l-6.284884-3.869546c-.19551-.11262-.39942-.163434-.593387-.158807z\",\n stroke: \"#90a9c0\",\n strokeWidth: 2,\n fill: \"#90a9c0\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.393895 7.418605c-.5819.013907-1.08832.510493-1.103197 1.220203v7.714042c.01987.946263.914547 1.520247 1.696584 1.069768l6.284884-3.869563c.342502-.21136.576671-.599284.576671-1.053052 0-.453769-.23417-.841712-.576671-1.053045l-6.284884-3.869546c-.19551-.11262-.39942-.163434-.593387-.158807z\",\n fill: \"#ffffff\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconActionBarTriggerDisabled, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon-action-bar-trigger-disabled.af2d2680.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\n\nconst Wrapper = styled.div`\n ${({ enabled }) => (!enabled && 'pointer-events: none')};\n margin-top: auto;\n flex: 0 0 25px;\n display: flex;\n border-radius: 50%;\n width: 25px;\n height: 25px;\n align-items: center;\n justify-content: center;\n box-shadow: 0 0 8px 0 rgba(99, 117, 141, 0.48);\n & > svg {\n cursor: pointer;\n min-width: 17px;\n }\n &:hover {\n & > svg {\n g {\n path {\n stroke: #77bb2e;\n fill: #77bb2e;\n }\n }\n }\n }\n &:active {\n & > svg {\n g {\n path {\n stroke: #66aa1d;\n fill: #66aa1d;\n }\n }\n }\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport get from 'lodash/get';\nimport { ReactComponent as TriggerButton } from 'Images/icon-action-bar-trigger.svg';\nimport { ReactComponent as DisabledTriggerButton } from 'Images/icon-action-bar-trigger-disabled.svg';\nimport { openModal } from 'store/modals/actions';\nimport { getAgentTools } from 'store/Agents/actions';\nimport { MODAL_RUN_USER_AGENT } from 'store/modals/modals';\nimport { useDispatch } from 'react-redux';\nimport Wrapper from './styled';\n\nconst RunIcon = ({ agent }) => {\n const dispatch = useDispatch();\n const id = get(agent, 'id', null);\n const isOnline = get(agent, 'is_online', false);\n // const isOnline = true;\n\n const onTriggerAgent = () => {\n if (id) {\n dispatch(getAgentTools(id));\n dispatch(openModal(MODAL_RUN_USER_AGENT));\n }\n };\n\n return (\n <Wrapper id=\"modal-user-agent-run-btn\" enabled={ isOnline } title=\"Run agent\" onClick={ onTriggerAgent }>\n { isOnline ? <TriggerButton /> : <DisabledTriggerButton /> }\n </Wrapper>\n );\n};\n\nRunIcon.propTypes = {\n agent: PropTypes.object.isRequired\n};\n\nexport default RunIcon;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as TrashSVG } from 'Images/icon-action-bar-trash.svg';\n\nexport const Wrapper = styled.div`\n cursor: pointer;\n display: none;\n position: absolute;\n right: 4px;\n top: 4px;\n padding: 0px 4px 3px 4px;\n border-radius: 4px;\n box-shadow: 0 2px 8px 0 rgb(28 34 67 / 3%);\n border: solid 1px #d9e4ef;\n background-color: ${colors.white};\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const TrashIcon = styled(TrashSVG)`\n width: 16px;\n height: 17px;\n margin: auto 0px auto auto;\n * > path {\n fill: ${colors.blueGrey};\n }\n`;\n\nTrashIcon.displayName = 'TrashIcon';\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Wrapper, TrashIcon } from './styled';\n\nconst ActionBar = ({ markToDelete }) => (\n <Wrapper onClick={ markToDelete }>\n <TrashIcon />\n </Wrapper>\n);\n\nActionBar.propTypes = {\n markToDelete: PropTypes.func.isRequired\n};\n\nexport default ActionBar;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: row;\n margin-top: 12px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Label = styled.div`\n flex: 0 0 85px;\n font-size: 11.5px;\n font-weight: 600;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: #63758d;\n`;\nLabel.displayName = 'Label';\n\nexport const Content = styled.div`\n flex: 1 1 0;\n overflow: hidden;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: #63758d;\n font-size: 11.5px;\n font-stretch: normal;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-height: normal;\n margin-left: 4px;\n`;\nContent.displayName = 'Content';\n","/* eslint-disable react/no-children-prop */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useIntl } from 'react-intl';\nimport TimeAgo from 'react-timeago';\nimport { Wrapper, Label, Content } from './styled';\n\nconst LastExecution = ({ lastExecution }) => {\n const intl = useIntl();\n const label = `${intl.formatMessage({ id: 'agents.item.lastExecution' })}:`;\n const noExecution = intl.formatMessage({ id: 'agents.item.lastExecution.never' });\n\n return (\n <Wrapper>\n <Label children={ label } />\n <Content>\n { lastExecution ? <TimeAgo date={ lastExecution } /> : <div children={ noExecution } /> }\n </Content>\n </Wrapper>\n );\n};\n\nLastExecution.propTypes = {\n lastExecution: PropTypes.string.isRequired\n};\n\nexport default LastExecution;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: row;\n margin-top: 7px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Label = styled.div`\n flex: 0 0 85px;\n font-size: 11.5px;\n font-weight: 600;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: #63758d;\n`;\nLabel.displayName = 'Label';\n\nexport const Content = styled(Label)`\n flex: 1 1 0;\n overflow: hidden;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: normal;\n margin-left: 4px;\n`;\nContent.displayName = 'Content';\n","/* eslint-disable react/no-children-prop */\n/* eslint-disable react/forbid-prop-types */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport capitalize from 'lodash/capitalize';\nimport isEmpty from 'lodash/isEmpty';\nimport { useIntl } from 'react-intl';\nimport { Wrapper, Label, Content } from './styled';\n\nconst AvailableTools = ({ tools }) => {\n const intl = useIntl();\n const label = `${intl.formatMessage({ id: 'agents.item.availableTools' })}:`;\n const noTools = intl.formatMessage({ id: 'agents.item.availableTools.none' });\n const commaSeparatedTools = tools.map((t) => capitalize(t.name)).join(', ');\n\n return (\n <Wrapper>\n <Label children={ label } />\n <Content children={ isEmpty(tools) ? noTools : commaSeparatedTools } />\n </Wrapper>\n );\n};\n\nAvailableTools.propTypes = {\n tools: PropTypes.array.isRequired\n};\n\nexport default AvailableTools;\n","import { css } from 'styled-components';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const disableTextSelection = css`\n -moz-user-select: none;\n -ms-user-select: none;\n -khtml-user-select: none;\n -webkit-user-select: none;\n`;\n","import styled, { css } from 'styled-components';\nimport colors from 'Styles/colors';\nimport { disableTextSelection } from 'Styles/effects/text';\n\nexport const Wrapper = styled.div`\n position: relative;\n display: flex;\n flex-direction: row;\n margin-top: 30px;\n padding: 15px 20px 25px 20px;\n background-color: ${colors.white};\n text-align: left;\n ${disableTextSelection}\n border-radius: 3px;\n box-shadow: 0 2px 15px 0 #e3e3e3;\n height: 115px;\n &:hover{\n & > :last-child{\n display: block;\n }\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const TextWrapper = styled.div`\n flex: 1 1 0px;\n overflow: hidden;\n margin-left: 20px;\n`;\nTextWrapper.displayName = 'TextWrapper';\n\nexport const TitleWrapper = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n width: 100%;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n font-size: 17px;\n font-weight: 600;\n color: ${colors.black};\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n`;\nTitle.displayName = 'Title';\n\nexport const Status = styled.div`\n flex: 0 0 69px;\n margin-left: 25px;\n margin-right: 20px;\n border-radius: 10px;\n font-size: 12.5px;\n font-weight: bold;\n line-height: 25px;\n text-align: center;\n height: 25px;\n color: ${colors.white};\n ${(props) => (props.value === 'offline'\n ? css`background: ${colors.blueGrey};`\n : css`background: ${colors.blueCerulean};`)\n}\n`;\nStatus.displayName = 'Status';\n","/* eslint-disable react/forbid-prop-types */\n/* eslint-disable react/no-children-prop */\n/* eslint-disable react/no-array-index-key */\nimport PropTypes from 'prop-types';\nimport React, { memo } from 'react';\nimport { useIntl } from 'react-intl';\nimport get from 'lodash/get';\nimport RunIcon from './components/RunIcon';\nimport ActionBar from './components/ActionBar';\nimport LastExecution from './components/LastExecution';\nimport AvailableTools from './components/AvailableTools';\nimport {\n Wrapper, TitleWrapper, Title, Status, TextWrapper\n} from './styled';\n\nconst UserAgent = memo(({ agent, markToDelete }) => {\n const intl = useIntl();\n const name = get(agent, 'name', '');\n const lastExecution = get(agent, 'last_run', null);\n const tools = get(agent, 'executors', []);\n const status = get(agent, 'status', 'offline');\n const statusLabel = intl.formatMessage({ id: `agents.item.status.${status}` });\n\n return (\n <Wrapper>\n <RunIcon agent={ agent } />\n <TextWrapper>\n <TitleWrapper>\n <Title children={ name } />\n <Status value={ status } children={ statusLabel } />\n </TitleWrapper>\n <LastExecution lastExecution={ lastExecution } />\n <AvailableTools tools={ tools } />\n </TextWrapper>\n <ActionBar markToDelete={ () => markToDelete(agent) } />\n </Wrapper>\n );\n});\n\nUserAgent.displayName = 'UserAgent';\n\nUserAgent.propTypes = {\n agent: PropTypes.object.isRequired,\n markToDelete: PropTypes.func.isRequired\n};\n\nexport default UserAgent;\n","/* eslint-disable react/no-children-prop */\n/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport get from 'lodash/get';\nimport Modal from 'Common/Components/Modal';\nimport useModal from 'Hooks/useModal';\nimport { useIntl } from 'react-intl';\nimport { PropTypes } from 'prop-types';\n\nconst DeletionModal = ({ agentToDelete, onAccept, onClose }) => {\n const intl = useIntl();\n const agentName = get(agentToDelete, 'name', '');\n const [ModalWarning] = useModal(Modal);\n const deleteTitle = `${intl.formatMessage({ id: 'agents.delete.title' })} \"${agentName}\"`;\n const acceptLabel = intl.formatMessage({ id: 'agents.delete.confirmation' });\n const closeLabel = intl.formatMessage({ id: 'agents.delete.cancel' });\n const deleteMessage = intl.formatMessage({ id: 'agents.delete.message' });\n\n if (!agentToDelete) return null;\n return (\n <ModalWarning\n onAccept={ onAccept }\n onClose={ onClose }\n title={ deleteTitle }\n acceptLabel={ acceptLabel }\n closeLabel={ closeLabel }\n children={ deleteMessage }\n />\n );\n};\n\nDeletionModal.propTypes = {\n agentToDelete: PropTypes.object.isRequired,\n onAccept: PropTypes.func.isRequired,\n onClose: PropTypes.func.isRequired\n};\n\nexport default DeletionModal;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n margin: 20px 0px 10px 0px;\n padding: 40px 50px 50px 50px;\n border-radius: 4px;\n box-shadow: 0 2px 50px 0 rgba(0, 0, 0, 0.03);\n background-color: ${colors.iceBlue};\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const AgentsWrapper = styled.div`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n width: 100%;\n \n @media (min-width: 0px) and (max-width: 1099px) {\n & > * {\n width: 100%;\n }\n }\n\n @media (min-width: 1100px) and (max-width: 1599px) {\n & > * {\n width: calc(100% / 2 - 15px);\n }\n & >*:not(:nth-child(2n)){\n margin-right: 30px;\n }\n }\n \n @media (min-width: 1600px) {\n & > * {\n width: calc(100% / 3 - 20px);\n }\n & >*:not(:nth-child(3n)){\n margin-right: 30px;\n }\n }\n`;\nAgentsWrapper.displayName = 'AgentsWrapper';\n\nexport const Title = styled.div`\n user-select: none;\n font-size: 21px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.24;\n letter-spacing: normal;\n color: #1c2243;\n`;\nTitle.displayName = 'Title';\n","import styled from 'styled-components';\n\nconst Wrapper = styled.div`\n display: flex;\n flex-wrap: wrap;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Label = styled.div`\n font-size: 12.5px;\n font-weight: normal;\n letter-spacing: 0.09px;\n color: ${colors.grey17};\n padding-bottom: 5px;\n padding-right: 15px;\n`;\nLabel.displayName = 'Label';\n\nexport const Field = styled.input`\n padding: 9px 53px 8px 15px;\n box-shadow: inset 0 -1px 0 0 ${(props) => (props.failed ? 'red' : '#afafaf')};\n background-color: ${colors.iceBlue};\n height: 34px;\n border: 0;\n`;\nField.displayName = 'Field';\n\nexport const FieldWrapper = styled.div`\n display: flex;\n flex-direction: column;\n width: 50%;\n padding: 0px 8px 0 0;\n padding-bottom: 21px;\n &[required] {\n ${Label}::after {\n content: ' *';\n color: ${colors.redPink};\n }\n }\n`;\nFieldWrapper.displayName = 'FieldWrapper';\n","import React from 'react';\nimport get from 'lodash/get';\nimport capitalize from 'lodash/capitalize';\nimport { useSelector } from 'react-redux';\nimport { selectToolError } from 'store/Agents/selectors';\nimport { FieldWrapper, Label, Field } from './styled';\n\nconst fieldType = {\n boolean: 'checkbox',\n integer: 'number',\n string: 'text'\n};\n\nconst NonBooleanField = ({\n defaultValue, parameters, param, onChangeField\n}) => {\n const base = get(parameters, `${param}.base`, 'string');\n const required = get(parameters, `${param}.mandatory`, false);\n const paramType = get(fieldType, `${base}`, 'text');\n const paramError = useSelector((state) => selectToolError(state, param));\n const extractName = (str) => capitalize(str.replace('_', ' '));\n\n return (\n <FieldWrapper key={ param } required={ required }>\n <Label>{extractName(param)}</Label>\n <Field defaultValue={ defaultValue } onChange={ (e) => onChangeField(param, e.target.value) } failed={ paramError } title={ paramError ? paramError.data[0] : param } type={ paramType } />\n </FieldWrapper>\n );\n};\n\nexport default NonBooleanField;\n","var _path, _path2, _path3, _path4;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgCheckbox = function SvgCheckbox(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 15,\n height: 15,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n id: \"checkbox-background\",\n d: \"M1.173961 14C.558871 13.99559.049604 13.52264 0 12.91078V1.173006C.013228.530278.531314.012126 1.173961 0h11.735203c.623908.020947 1.11113.543507 1.090185 1.167493V12.91078c-.011023.597528-.492733 1.079298-1.090185 1.08922H1.17396z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"checkbox-border\",\n d: \"M13.333179.000857H1.667464C.747107.003.003536.747643.000321 1.668v11.664643c.002143.920357.746786 1.665 1.667143 1.667143H13.33318c.919285-.002143 1.665-.746786 1.667142-1.667143V1.668C14.99818.747643 14.252464.001929 13.33318-.000214v.001071zm0 1.082021c.313928-.006307.575357.242265.582857.557265V13.332643c.0075.315-.243215.575357-.557143.582857H1.667464c-.315.0075-.576428-.241071-.582857-.556071-.001071-.009643-.001071-.018215 0-.026786V1.668c-.0075-.315.241072-.576429.556072-.582857.009642-.001072.018214-.001072.026785 0H13.33318v-.002265z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"checkbox-tick\",\n d: \"M5.9281 11L2 7.634005l1.1-.941866 2.8281 2.423035L11.9 4l1.1.941866z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"checkbox-partial\",\n d: \"M3.667 7.933h10.667v1.813H3.667z\",\n transform: \"translate(-1.5 -1)\",\n height: 2,\n width: 11\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgCheckbox, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/Checkbox.b83098ac.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as CheckboxIcon } from 'Images/Checkbox.svg';\n\nconst checkboxTheme = {\n green: {\n on: {\n stroke: '#ffffff',\n body: '#94CC88',\n border: '#60ad54'\n },\n off: {\n stroke: '#ffffff',\n body: '#D3D3D3',\n border: '#a8a8a8'\n }\n },\n grey: {\n on: {\n stroke: '#90a9c0',\n body: 'transparent',\n border: '#90a9c0'\n },\n off: {\n stroke: '#90a9c0',\n body: 'transparent',\n border: '#90a9c0'\n }\n }\n};\n\nconst selectColor = (theme, checked, atribute) => {\n const state = checked ? 'on' : 'off';\n return checkboxTheme[theme][state][atribute];\n};\n\nconst CheckBox = styled.input.attrs(({\n width: '100%',\n type: 'checkbox'\n}))`\n cursor: pointer;\n position: relative;\n -webkit-appearance: none;\n outline: none;\n width: 40px;\n height: 12px;\n background-color: ${colors.white};\n border: 2px solid ${colors.grey16};\n border-radius: 50px;\n box-shadow: inset -20px 0 0 0 ${colors.white};\n transition: background-color 0.25s ease;\n &:after {\n content: \"\";\n position: absolute;\n top: -6px;\n left: -2px;\n width: 21px;\n height: 21px;\n border-radius: 50%;\n box-shadow: 2px 4px 6px rgba(0,0,0,0.2);\n transition: left 0.25s ease;\n border: 2px solid ${colors.grey15};\n background: ${colors.grey13};\n }\n \n &:disabled {\n cursor: not-allowed;\n }\n\n &:checked {\n box-shadow: inset 20px 0 0 0 ${colors.green4};\n border-color: ${colors.green3};\n }\n \n &:checked:after {\n left: 20px;\n box-shadow: -2px 4px 3px rgba(0,0,0,0.05);\n border: 2px solid ${colors.green3};\n background-color: ${colors.green1};\n }\n`;\nCheckBox.displayName = 'CheckBox';\n\nexport default CheckBox;\n\nexport const StyledCheckbox = styled(CheckboxIcon)`\n display: inline-block;\n width: 15px;\n height: 15px;\n cursor:pointer;\n border-radius: 3px;\n transition: all 150ms;\n\n & #checkbox-background {\n fill: ${({ theme, checked }) => selectColor(theme, checked, 'body')};\n }\n\n & #checkbox-border {\n fill: ${({ theme, checked }) => selectColor(theme, checked, 'border')};\n }\n\n & #checkbox-tick {\n fill: ${({ theme, checked }) => selectColor(theme, checked, 'stroke')};\n visibility: ${(props) => (props.checked ? 'visible' : 'hidden')}\n }\n\n & #checkbox-partial {\n fill: ${({ theme, checked }) => selectColor(theme, checked, 'stroke')};\n visibility: ${(props) => (props.$partialChecked ? 'visible' : 'hidden')}\n }\n\n`;\n\nexport const WrapperField = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nexport const Label = styled.div`\n font-size: 11px;\n line-height: 2.82;\n color: ${colors.grey19};\n margin-left: 12px;\n`;\n","import React, { useState, useEffect } from 'react';\nimport { PropTypes } from 'prop-types';\nimport {\n Label,\n StyledCheckbox, WrapperField\n} from './styled';\n\nconst Checkbox = ({\n onChange,\n state,\n theme,\n partialChecked,\n text\n}) => {\n const [check, setCheck] = useState(state);\n useEffect(() => {\n setCheck(state);\n }, [state]);\n const handleChange = (e) => {\n onChange && onChange(e);// eslint-disable-line\n setCheck(!check);\n };\n const getCheckBox = () => {\n return <StyledCheckbox readOnly $partialChecked={ partialChecked } checked={ check } theme={ theme } onClick={ handleChange } />;\n };\n\n if (text) {\n return (\n <WrapperField>\n {getCheckBox()}\n <Label>{text}</Label>\n </WrapperField>\n );\n }\n\n return (\n // Since DOM rejects boolean values of not recognized props, added $ on '$partialChecked' to convert it to a transient prop to the styled component\n getCheckBox()\n );\n};\n\nCheckbox.propTypes = {\n onChange: PropTypes.func,\n state: PropTypes.bool,\n theme: PropTypes.string,\n partialChecked: PropTypes.bool,\n text: PropTypes.string\n};\n\nCheckbox.defaultProps = {\n onChange: null,\n state: false,\n theme: 'green',\n partialChecked: false,\n text: ''\n};\n\nexport default Checkbox;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Label = styled.div`\n font-size: 12.5px;\n font-weight: normal;\n letter-spacing: 0.09px;\n color: ${colors.grey17};\n padding-bottom: 5px;\n padding-right: 15px;\n`;\nLabel.displayName = 'Label';\n\nexport const CheckboxWrapper = styled.div`\n display: flex;\n width: 100%;\n\n &[required] {\n ${Label}::after {\n content: ' *';\n color: ${colors.redPink};\n }\n }\n`;\nCheckboxWrapper.displayName = 'FieldWrapper';\n","import React from 'react';\nimport get from 'lodash/get';\nimport Checkbox from 'Common/Components/Checkbox';\nimport capitalize from 'lodash/capitalize';\nimport { Label, CheckboxWrapper } from './styled';\n\nconst BooleanField = ({\n defaultValue, param, parameters, onChangeField\n}) => {\n const required = get(parameters, `${param}.mandatory`, false);\n const extractName = (str) => capitalize(str.replace('_', ' '));\n\n return (\n <CheckboxWrapper key={ param } required={ required }>\n <Label>{extractName(param)}</Label>\n <Checkbox state={ defaultValue } onChange={ (e) => onChangeField(param, !e.currentTarget.checked) } />\n </CheckboxWrapper>\n );\n};\nexport default BooleanField;\n","import React from 'react';\nimport isEmpty from 'lodash/isEmpty';\nimport get from 'lodash/get';\nimport Wrapper from './styled';\nimport NonBooleanField from './components/NonBooleanField';\nimport BooleanField from './components/BooleanField';\n\nconst Content = ({ defaultParams, currentTool, onChangeField }) => {\n const parameters = get(currentTool, 'parameters_metadata', []);\n const booleanParams = Object.keys(parameters).filter((param) => parameters[param].base === 'boolean');\n const nonBooleanParams = Object.keys(parameters).filter((param) => parameters[param].base !== 'boolean');\n\n if (isEmpty(currentTool) || isEmpty(currentTool.parameters_metadata)) return null;\n\n return (\n <Wrapper>\n { nonBooleanParams.map((param) => <NonBooleanField key={ param }defaultValue={ get(defaultParams, param, '') } param={ param } parameters={ parameters } onChangeField={ onChangeField } />) }\n { booleanParams.map((param) => <BooleanField key={ param }defaultValue={ get(defaultParams, param, false) } param={ param } parameters={ parameters } onChangeField={ onChangeField } />)}\n </Wrapper>\n );\n};\n\nexport default Content;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Help = styled.div`\n font-size: 13.5px;\n font-weight: normal;\n color: ${colors.blueGrey};\n margin-bottom: 15px;\n`;\nHelp.displayName = 'Help';\n\nexport const Here = styled.a`\n font-size: 13.5px;\n font-weight: normal;\n color: ${colors.blueCerulean};\n margin-left: 5px;\n`;\nHere.displayName = 'Here';\n","import React from 'react';\nimport get from 'lodash/get';\nimport pickBy from 'lodash/pickBy';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport { selectAgentTypes } from 'store/Agents/selectors';\nimport { Help, Here } from './styled';\n\nconst Website = ({ currentTool }) => {\n const tools = useSelector(selectAgentTypes);\n const currentToolName = get(currentTool, 'name', '');\n const storedTool = pickBy(tools, { name: currentToolName });\n const toolWebsite = get(storedTool, `${currentToolName}.website`, '');\n const intl = useIntl();\n const helpMessage = intl.formatMessage({ id: 'agents.triggerAgent.tool.helpMessage' });\n const hereMessage = intl.formatMessage({ id: 'agents.triggerAgent.tool.webMessage' });\n\n if (!toolWebsite) return null;\n return (\n <Help>\n {helpMessage}\n <Here target=\"_blank\" href={ toolWebsite }>{hereMessage}</Here>\n </Help>\n );\n};\n\nexport default Website;\n","import styled from 'styled-components';\n\nconst Wrapper = styled.div`\n flex: 1 1 auto;\n overflow: auto;\n margin: 20px 0px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n","import React from 'react';\nimport isEmpty from 'lodash/isEmpty';\nimport Content from './components/Content';\nimport Website from './components/Website';\nimport Wrapper from './styled';\n\nconst ToolParams = ({ defaultParams, currentTool, onChangeField }) => {\n if (isEmpty(currentTool)) return null;\n return (\n <Wrapper>\n <Website currentTool={ currentTool } />\n <Content defaultParams={ defaultParams } currentTool={ currentTool } onChangeField={ onChangeField } />\n </Wrapper>\n );\n};\n\nexport default ToolParams;\n","import styled from 'styled-components';\n\nconst Wrapper = styled.div`\n display: flex;\n flex-direction: row;\n width: 100%;\n margin-top: 20px;\n & > *:not(:first-child) {\n margin-left: 30px;\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Label = styled.div`\n font-size: 12.5px;\n font-weight: normal;\n letter-spacing: 0.09px;\n color: ${colors.grey17};\n margin-left: 10px;\n`;\nLabel.displayName = 'Label';\n\nexport const CheckboxWrapper = styled.div`\n display: flex;\n flex: 0 1 auto;\n align-items: center;\n user-select: none;\n\n &[required] {\n ${Label}::after {\n content: ' *';\n color: ${colors.redPink};\n }\n }\n`;\nCheckboxWrapper.displayName = 'FieldWrapper';\n","import React from 'react';\nimport Checkbox from 'Common/Components/Checkbox';\nimport { Label, CheckboxWrapper } from './styled';\n\nconst BooleanField = ({ defaultValue, label, onChange }) => {\n return (\n <CheckboxWrapper key={ label } >\n <Checkbox state={ defaultValue } onChange={ (e) => onChange(!e.currentTarget.checked) } />\n <Label children={ label } />\n </CheckboxWrapper>\n );\n};\nexport default BooleanField;\n","import React, { useEffect } from 'react';\nimport isEmpty from 'lodash/isEmpty';\nimport Wrapper from './styled';\nimport BooleanField from './BooleanField';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { selectTriggerIgnoreInfo, selectTriggerResolveHostname } from 'store/Agents/selectors';\nimport { setIgnoreInfo, setResolveHostname } from 'store/Agents/actions';\nimport { useIntl } from 'react-intl';\n\nconst ExecutionParams = ({ currentTool }) => {\n const intl = useIntl();\n const dispatch = useDispatch();\n const ignoreInfo = useSelector(selectTriggerIgnoreInfo);\n const resolveHostname = useSelector(selectTriggerResolveHostname);\n const ignoreInfoLabel = intl.formatMessage({ id: 'agents.triggerAgent.ignoreInfo' });\n const resolveHostnameLabel = intl.formatMessage({ id: 'agents.triggerAgent.resolveHostnames' });\n\n useEffect(() => {\n dispatch(setIgnoreInfo(false));\n dispatch(setResolveHostname(false));\n }, [dispatch]);\n\n if (isEmpty(currentTool)) return null;\n return (\n <Wrapper>\n <BooleanField defaultValue={ ignoreInfo } label={ ignoreInfoLabel } onChange={ (checked) => dispatch(setIgnoreInfo(checked)) } />\n <BooleanField defaultValue={ resolveHostname } label={ resolveHostnameLabel } onChange={ (checked) => dispatch(setResolveHostname(checked)) } />\n </Wrapper>\n );\n};\n\nexport default ExecutionParams;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { fadeIn } from 'Styles/effects';\n\nexport const ModalWrapper = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background: rgb(250 251 252 / 0.7);\n z-index: 500;\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n & > :first-child {\n box-shadow: 18px 43px 50px 0 rgba(167, 167, 167, 0.5);\n border-top: 10px solid ${colors.softBlue};\n border-radius: 2px 2px 0 0;\n padding: 36px 40px;\n max-height: 85%;\n height: auto;\n }\n ${fadeIn(0, 1)}\n`;\nModalWrapper.displayName = 'ModalWrapper';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n height: auto;\n background: white;\n height: 100%;\n max-height: 500px;\n max-width: 550px;\n width: 100%;\n overflow: visible;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n font-size: 21.5px;\n font-weight: 600;\n color: ${colors.dark2};\n padding-bottom: 34px;\n`;\nTitle.displayName = 'Title';\n\nexport const Subtitle = styled.div`\n font-size: 13.5px;\n font-weight: normal;\n line-height: 1.03;\n color: ${colors.grey19};\n margin-bottom: 20px;\n`;\nSubtitle.displayName = 'Subtitle';\n\nexport const WrapperButtons = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n padding: 21px 0 0;\n margin-top: auto;\n & > *:not(:last-child) {\n margin-right: 13px;\n }\n`;\nWrapperButtons.displayName = 'WrapperButtons';\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { FaChevronDown as ChevronDown } from 'react-icons/fa';\n\nexport const Wrapper = styled.div`\n width: 100%;\n position: relative;\n`;\n\nWrapper.displayName = 'SearchListWrapper';\n\nexport const InputContainer = styled.div`\n display: flex;\n position: relative;\n`;\n\nInputContainer.displayName = 'InputContainer';\n\nexport const Input = styled.input`\n width: 100%;\n height: 34px;\n padding: 0px 22px 0px 10px;\n box-shadow: inset 0 -1px 0 0 #afafaf;\n border: none;\n border-left: 12px solid ${colors.softBlue};\n background-color: ${colors.iceBlue};\n color: ${colors.grey17};\n font-size: 14.5px;\n\n ::placeholder {\n color: ${colors.grey17};\n }\n`;\n\nInput.displayName = 'Input';\n\nexport const List = styled.div`\n width: 100%;\n box-shadow: 0 0 10px 10px rgba(222, 222, 222, 0.16);\n border: solid 1px #e8e8e8;\n background-color: ${colors.white1};\n max-height: 138px;\n overflow: auto;\n position: absolute;\n z-index: 1;\n`;\n\nInput.displayName = 'Input';\n\nexport const DownArrow = styled(ChevronDown)`\n color: ${colors.blueGrey};\n size: 0.6em;\n position: absolute;\n right: 10px;\n top: 9px;\n width: 12px;\n height: 16px;\n`;\n\nDownArrow.displayName = 'DownArrow';\n\nexport const Primary = styled.span`\n font-size: 13.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.44;\n color: ${colors.dark2}\n`;\n\nPrimary.displayName = 'Primary';\n\nexport const Secondary = styled.span`\n font-size: 13.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.52;\n letter-spacing: normal;\n color: ${colors.blueGrey}\n`;\n\nSecondary.displayName = 'Secondary';\n\nexport const Item = styled.span`\n display: flex;\n justify-content: space-between;\n cursor: pointer;\n padding: 0 10px;\n &:hover {\n background-color: ${colors.iceBlue};\n }\n`;\n\nItem.displayName = 'Item';\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Wrapper, Input, List, DownArrow, InputContainer, Item, Primary, Secondary\n} from './styled';\n\nconst SearchList = ({ items, onSelect, placeholder }) => {\n const [showList, setShowList] = useState(false);\n const [filterBy, setFilterBy] = useState('');\n\n const onInputChange = (e) => {\n setFilterBy(e.target.value);\n setShowList(true);\n };\n\n const onItemClicked = (item) => {\n onSelect(item);\n setShowList(false);\n };\n\n const getItems = () => (filterBy.length === 0 ? items : items.filter((item) => item.primary.toUpperCase().includes(filterBy.toUpperCase())));\n\n return (\n <Wrapper>\n <InputContainer onClick={ () => setShowList(!showList) }>\n <Input onChange={ onInputChange } placeholder={ placeholder } />\n <DownArrow />\n </InputContainer>\n {showList &&\n (\n <List>\n {getItems().map((item) => (\n <Item onClick={ () => onItemClicked(item) } key={ `SearchListItem_${item.primary}` }>\n <Primary>{item.primary}</Primary>\n {item.secondary && <Secondary>{item.secondary}</Secondary>}\n </Item>\n ))}\n </List>\n )}\n </Wrapper>\n );\n};\n\nSearchList.defaultProps = {\n items: [],\n placeholder: ''\n};\n\nSearchList.propTypes = {\n items: PropTypes.arrayOf(PropTypes.shape({\n primary: PropTypes.string.isRequired,\n secondary: PropTypes.string,\n id: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ])\n })),\n onSelect: PropTypes.func.isRequired,\n placeholder: PropTypes.string\n};\n\nexport default SearchList;\n","import styled, { css } from 'styled-components';\nimport colors from 'Styles/colors';\nimport { FiTrash2 as Trash } from 'react-icons/fi';\n\nconst ellipsis = css`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nconst baseFontStyle = css`\n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: normal;\n line-height: 2.72;\n`;\n\nexport const Wrapper = styled.div`\n width: 100%;\n height: 100%;\n max-height: 138px;\n border: solid 1px #e8e8e8;\n display: flex;\n flex-direction: column;\n overflow: auto;\n margin-top: 19px;\n`;\n\nWrapper.displayName = 'WorkspaceListWrapper';\n\nexport const Workspace = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-left: 20px;\n padding-right: 17px;\n background-color: ${(props) => (props.isOdd ? colors.iceBlue : '')};\n`;\n\nWorkspace.displayName = 'Workspace';\n\nexport const Name = styled.span`\n ${baseFontStyle}\n color: ${colors.black};\n width: 40%;\n text-align: left;\n ${ellipsis}\n`;\n\nName.displayName = 'Name';\n\nexport const TotalVulns = styled.span`\n ${baseFontStyle}\n color: ${colors.blueGrey};\n width: 30%;\n ${ellipsis}\n`;\n\nTotalVulns.displayName = 'TotalVulns';\n\nexport const CriticalVulns = styled.span`\n ${baseFontStyle}\n color: ${colors.warmPurple};\n width: 25%;\n ${ellipsis}\n`;\n\nCriticalVulns.displayName = 'CriticalVulns';\n\nexport const TrashIcon = styled(Trash)` \n width: 16px;\n height: 17px;\n color: ${colors.grey12};\n`;\n\nTrashIcon.displayName = 'TrashIcon';\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport {\n Wrapper, Workspace, Name, CriticalVulns, TotalVulns, TrashIcon\n} from 'Common/Components/WorkspaceList/styled';\nimport isEmpty from 'lodash/isEmpty';\n\nconst WorkspaceList = ({ workspaces, onRemove }) => {\n const intl = useIntl();\n const totalVulnsText = intl.formatMessage({ id: 'agents.create.stepts.chooseWorkspaces.vulns' });\n const criticalVulnsText = intl.formatMessage({ id: 'agents.create.stepts.chooseWorkspaces.critical' });\n\n const isOdd = (workspaceNumber) => workspaceNumber % 2 !== 0;\n\n if (isEmpty(workspaces)) return null;\n return (\n <Wrapper>\n {workspaces.map((ws, i) => (\n <Workspace key={ `Workspace_${ws._id}` } isOdd={ isOdd(i) }>\n <Name>{ ws.name }</Name>\n <TotalVulns>{ `${ws.stats.total_vulns} ${totalVulnsText}` }</TotalVulns>\n <CriticalVulns>{ `${ws.stats.critical_vulns} ${criticalVulnsText}` }</CriticalVulns>\n <TrashIcon onClick={ () => onRemove(ws) } />\n </Workspace>\n ))}\n </Wrapper>\n );\n};\n\nWorkspaceList.propTypes = {\n workspaces: PropTypes.arrayOf(PropTypes.shape({\n stats: PropTypes.shape({\n total_vulns: PropTypes.number.isRequired,\n critical_vulns: PropTypes.number.isRequired\n }),\n name: PropTypes.string,\n _id: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ])\n })).isRequired,\n onRemove: PropTypes.func.isRequired\n};\n\nexport default WorkspaceList;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n width: 100%;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const WrapperField = styled.div`\n padding-bottom: 10px;\n`;\nWrapperField.displayName = 'WrapperField';\n\nexport const Title = styled.div`\n user-select: none;\n font-size: 17px;\n font-weight: 600;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: #1c2243;\n margin-bottom: 14px;\n &:after{\n content: \"*\";\n color: red;\n margin-left: 5px;\n }\n`;\nTitle.displayName = 'Title';\n\nexport const Label = styled.div`\n user-select: none;\n margin-bottom: 20px;\n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: #63758d;\n`;\nLabel.displayName = 'Label';\n","/* eslint-disable react/no-children-prop */\nimport React, { useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { selectActiveWorkspaces } from 'store/Workspace/selectors';\nimport SearchList from 'Common/Components/SearchList';\nimport WorkspaceList from 'Common/Components/WorkspaceList';\nimport { selectTriggerAgentWs } from 'store/Agents/selectors';\nimport { addTriggerAgentWs, removeTriggerAgentWs, setTriggerAgentWs } from 'store/Agents/actions';\nimport { useIntl } from 'react-intl';\nimport {\n Wrapper, Title, WrapperField, Label\n} from './styled';\n\nconst WorkspaceSelector = ({ currentTool }) => {\n const intl = useIntl();\n const dispatch = useDispatch();\n const addedWorkspaces = useSelector(selectTriggerAgentWs);\n const allWorkspaces = useSelector(selectActiveWorkspaces);\n const notAddedWorkspaces = allWorkspaces.filter((ws) => addedWorkspaces.every((added) => ws.id !== added.id));\n const workspaceList = notAddedWorkspaces.map((ws) => ({ primary: ws.name, secondary: `${ws.stats.total_vulns}`, id: ws._id }));\n\n const title = intl.formatMessage({ id: 'agents.triggerAgent.wsSelector.title' });\n const subtitle = intl.formatMessage({ id: 'agents.triggerAgent.wsSelector.subtitle' });\n\n const onRemoveWs = (ws) => dispatch(removeTriggerAgentWs(ws));\n\n const onSelectWs = (ws) => dispatch(addTriggerAgentWs(ws));\n\n useEffect(() => {\n dispatch(setTriggerAgentWs([]));\n }, [dispatch]);\n\n if (!currentTool) return null;\n return (\n <Wrapper>\n <Title children={ title } />\n <Label children={ subtitle } />\n <WrapperField>\n <SearchList onSelect={ onSelectWs } items={ workspaceList } />\n <WorkspaceList workspaces={ addedWorkspaces } onRemove={ onRemoveWs } />\n </WrapperField>\n </Wrapper>\n );\n};\n\nexport default WorkspaceSelector;\n","/* eslint-disable react/no-children-prop */\nimport React, { useEffect, useState } from 'react';\nimport isEmpty from 'lodash/isEmpty';\nimport get from 'lodash/get';\nimport { useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { getManifest, runUserAgentTool } from 'store/Agents/actions';\nimport { selectTriggerAgentTools, selectIsFetching, selectTriggerAgentWs } from 'store/Agents/selectors';\nimport { Cancel } from 'Common/Components/Button/styled';\nimport BlueButton from 'Common/Components/BlueButton';\nimport ToolParams from './components/ToolParams';\nimport ExecutionParams from './components/ExecutionParams';\nimport { closeModal } from 'store/modals/actions';\nimport { MODAL_RUN_USER_AGENT } from 'store/modals/modals';\nimport StandardDropdown from 'Common/Components/StandarDropdown';\nimport {\n Wrapper, Title, Subtitle, WrapperButtons, ModalWrapper\n} from './styled';\nimport WorkspaceSelector from './components/WorkspaceSelector';\n\nconst RunUserAgentModal = () => {\n const dispatch = useDispatch();\n const intl = useIntl();\n\n const tools = useSelector(selectTriggerAgentTools);\n const mappedTools = tools.map((t) => ({ name: t.name, desc: t.name }));\n const isFetching = useSelector(selectIsFetching);\n const workspaces = useSelector(selectTriggerAgentWs);\n\n const title = intl.formatMessage({ id: 'agents.triggerAgent.title' });\n const subtitle = intl.formatMessage({ id: 'agents.triggerAgent.subtitle' });\n const cancelLabel = intl.formatMessage({ id: 'agents.triggerAgent.cancel' });\n const runLabel = intl.formatMessage({ id: 'agents.triggerAgent.run' });\n\n const [currentTool, setCurrentTool] = useState(null);\n const [toolParams, setToolParams] = useState({});\n\n const onChangeTool = (field, value) => {\n const tool = tools.find((t) => t.name === value);\n if (tool) {\n setToolParams({});\n setCurrentTool(tool);\n }\n };\n\n const onChangeField = (field, value) => {\n const newParams = { ...toolParams, [field]: value };\n if (value === '') delete newParams[field];\n setToolParams(newParams);\n };\n\n const disableAccept = () => {\n if (isEmpty(currentTool)) return true;\n if (isEmpty(workspaces)) return true;\n\n const mandatoryParams = Object.keys(currentTool.parameters_metadata).filter((toolName) => currentTool.parameters_metadata[toolName].mandatory);\n return mandatoryParams.some((toolName) => isEmpty(get(toolParams, toolName, '')));\n };\n\n const runTool = () => dispatch(runUserAgentTool(currentTool.name, toolParams));\n const onClose = () => dispatch(closeModal(MODAL_RUN_USER_AGENT));\n\n useEffect(() => {\n dispatch(getManifest());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n if (isEmpty(tools)) return null;\n return (\n <ModalWrapper>\n <Wrapper>\n <Title children={ title } />\n <Subtitle children={ subtitle } />\n <StandardDropdown width=\"170px\" field=\"toolParams\" options={ mappedTools } updateValue={ onChangeTool } />\n <ExecutionParams currentTool={ currentTool } />\n <ToolParams currentTool={ currentTool } onChangeField={ onChangeField } />\n <WorkspaceSelector currentTool={ currentTool } onChangeField={ onChangeField } />\n <WrapperButtons>\n <Cancel onClick={ onClose } children={ cancelLabel } />\n <BlueButton onClick={ runTool } disabled={ disableAccept() } isLoading={ isFetching } label={ runLabel } />\n </WrapperButtons>\n </Wrapper>\n </ModalWrapper>\n );\n};\n\nexport default RunUserAgentModal;\n","/* eslint-disable react/no-children-prop */\n/* eslint-disable react/no-array-index-key */\nimport React, { useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectUserAgents } from 'store/Agents/selectors';\nimport { removeAgent } from 'store/Agents/actions';\nimport isEmpty from 'lodash/isEmpty';\nimport { useIntl } from 'react-intl';\nimport selectModal from 'store/modals/selectors';\nimport { MODAL_RUN_USER_AGENT } from 'store/modals/modals';\nimport UserAgent from './components/UserAgent';\nimport DeletionModal from './components/DeletionModal';\nimport { AgentsWrapper, Wrapper, Title } from './styled';\nimport RunUserAgentModal from './components/RunUserAgentModal';\n\nconst UserAgents = () => {\n const intl = useIntl();\n const dispatch = useDispatch();\n const [agentToDelete, setAgentToDelete] = useState(null);\n const userAgents = useSelector(selectUserAgents);\n const title = intl.formatMessage({ id: 'agents.userAgents.title' });\n const showRunUserAgent = useSelector((state) => selectModal(state, MODAL_RUN_USER_AGENT));\n\n const markToDelete = (agent) => setAgentToDelete(agent);\n\n const cancelDeletion = () => setAgentToDelete(null);\n\n const performDelete = () => {\n setAgentToDelete(null);\n dispatch(removeAgent(agentToDelete));\n };\n\n if (isEmpty(userAgents)) return null;\n return (\n <Wrapper>\n {showRunUserAgent && <RunUserAgentModal /> }\n <Title children={ title } />\n <AgentsWrapper>\n { userAgents.map((agent) => <UserAgent key={ agent.id } markToDelete={ markToDelete } agent={ agent } />) }\n </AgentsWrapper>\n <DeletionModal agentToDelete={ agentToDelete } onAccept={ performDelete } onClose={ cancelDeletion } />\n </Wrapper>\n );\n};\nexport default UserAgents;\n","import React, { useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { selectIsFetching, selectUserAgents } from 'store/Agents/selectors';\nimport isEmpty from 'lodash/isEmpty';\nimport { getUserAgents } from 'store/Agents/actions';\nimport Wrapper from './styled';\nimport EmptyAgents from './components/EmptyAgents';\nimport UserAgents from './components/UserAgents';\n\nconst Grid = () => {\n const dispatch = useDispatch();\n const isFetching = useSelector(selectIsFetching);\n const userAgents = useSelector(selectUserAgents);\n const noAgents = isEmpty(userAgents) && !isFetching;\n\n useEffect(() => {\n dispatch(getUserAgents());\n }, [dispatch]);\n\n if (noAgents) {\n return (\n <Wrapper>\n <EmptyAgents />\n </Wrapper>\n );\n }\n\n return (\n <Wrapper>\n <UserAgents />\n </Wrapper>\n );\n};\n\nexport default Grid;\n","import React from 'react';\nimport Wrapper from './styled';\nimport ActionBar from './components/ActionBar';\nimport Grid from './components/Grid';\n\nconst Agents = () => (\n <Wrapper>\n <ActionBar />\n <Grid />\n </Wrapper>\n);\n\nexport default Agents;\n","import styled from 'styled-components';\nimport ReactTable from 'react-table-6';\nimport colors from 'Styles/colors';\n\nconst CustomReactTable = styled(ReactTable)`\n\n border: 0;\n background: ${colors.white1};\n height: 100%;\n overflow: auto;\n\n .rt-expandable{\n width: fit-content !important;\n max-width: fit-content !important;\n }\n\n .rt-table {\n overflow: unset;\n .rt-thead {\n min-width: 100% !important;\n width: fit-content;\n padding: 0;\n background: #fff;\n border-bottom: 1px solid #e9e9e9;\n position: sticky;\n top: 0;\n z-index: 1;\n &.-header {\n box-shadow: unset;\n }\n .rt-tr {\n line-height: 45px;\n height: 45px;\n align-items: center;\n .rt-th {\n min-height: 13px;\n .table-order-icon, .table-order-icon-preview {\n visibility: hidden;\n position: absolute;\n display: inline-block;\n color: ${colors.grey9};\n right: 15px;\n }\n &:hover .table-order-icon {\n visibility: visible;\n }\n\n &.-sort-asc, &.-sort-desc {\n display: inline;\n box-shadow: none;\n .table-order-icon {\n visibility: visible;\n }\n }\n :not(.hideSortIcon){\n &.-sort-asc:after, &.-sort-desc:after {\n content: ' ';\n right: 15px;\n top: 40%;\n position: absolute;\n border: solid #adb6c1;\n border-width: 0 1px 1px 0;\n display: inline-block;\n padding: 2px;\n }\n\n &.-sort-asc:after {\n transform: rotate(-135deg);\n -webkit-transform: rotate(-135deg);\n }\n\n &.-sort-desc:after {\n transform: rotate(45deg);\n -webkit-transform: rotate(45deg);\n }\n }\n }\n }\n .rt-th, .rt-td {\n text-align: left;\n padding: 0px 10px;\n border-right: 1px dashed ${colors.grey10};\n & > * {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n font-size: 10px;\n font-weight: 300;\n text-transform: uppercase;\n text-align: left;\n color: ${colors.blue5};\n line-height: normal;\n }\n }\n }\n }\n .rt-tbody {\n min-width: 100% !important;\n width: fit-content;\n background: ${colors.white};\n overflow: unset;\n .rt-tr-group {\n flex: none;\n border-bottom: solid 1px ${colors.light3};\n &:hover {\n background: ${colors.white1};\n }\n .group-header {\n background-color: ${colors.light4};\n }\n .rt-expandable {\n .-group-expanded, .-group-unexpanded {\n display: flex;\n align-items: center;\n font-weight: bold;\n font-size: 14px;\n &:before {\n content: ' ';\n border: solid ${colors.grey11};\n border-width: 0 2px 2px 0;\n width: 6px;\n height: 6px;\n margin: 0 15px;\n }\n }\n .-group-expanded:before {\n transform: rotate(-135deg);\n -webkit-transform: rotate(-135deg);\n }\n\n .-group-unexpanded:before {\n transform: rotate(45deg);\n -webkit-transform: rotate(45deg);\n }\n }\n }\n .rt-tr {\n line-height: 45px;\n height: 45px;\n align-items: center;\n &.preview {\n background: ${colors.blue8};\n }\n .rt-td {\n border-right: none;\n font-weight: 300;\n label {\n margin-bottom: 0px;\n }\n &.opened{\n color: ${colors.red2};\n }\n &.closed{\n color: ${colors.green2};\n }\n }\n }\n\n .rt-th, .rt-td {\n padding: 0 10px;\n text-align: left;\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: ${colors.grey11};\n &.column_name {\n font-size: 14px;\n font-weight: 400;\n letter-spacing: -.1px;\n color: ${colors.blue6};\n }\n &.column_target {\n font-size: 12.5px;\n font-weight: 400;\n letter-spacing: -.1px;\n }\n & > * {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n input, img {\n display: block;\n }\n }\n }\n }\n .-loading {\n bottom: 50%;\n }\n .rt-noData {\n color: #53686f;\n font-size: 14px;\n display: unset;\n }\n .rt-thead{\n z-index: 1;\n }\n`;\nCustomReactTable.displayName = 'CustomReactTable';\n\nexport default CustomReactTable;\n","import get from 'lodash/get';\nimport defaultFields from 'store/Host/fields';\n\nexport const selectFields = (state) => {\n const fields = get(state, 'preferences.host_table', defaultFields);\n const newFields = {};\n Object.keys(defaultFields).forEach((key) => {\n const defaultField = defaultFields[key];\n const field = get(fields, key, defaultField);\n newFields[key] = {\n ...defaultField,\n ...field\n };\n });\n return newFields;\n};\n\nexport const selectHostList = (state) => get(state, 'host.hostList', []);\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n z-index: 1;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const SkeletonIcon = styled.svg`\n\n`;\nSkeletonIcon.displayName = 'SkeletonIcon';\n","import React from 'react';\nimport { Wrapper } from './styled';\n\nconst Skeleton = ({ opacity = '0.3' }) => (\n <Wrapper>\n <svg width=\"100%\" height=\"19\">\n <defs>\n <linearGradient id=\"linear-gradient\" x1=\"-100%\" y1=\"0\" x2=\"200%\" y2=\"0\">\n <stop offset=\"0\" stopColor=\"#CCC\">\n <animate attributeName=\"offset\" values=\"0;0.1\" dur=\"1s\" repeatCount=\"indefinite\" />\n </stop>\n <stop offset=\"0.1\" stopColor=\"#d9e4ef\">\n <animate attributeName=\"offset\" values=\"0.5;1;0\" dur=\"1s\" repeatCount=\"indefinite\" />\n </stop>\n </linearGradient>\n </defs>\n <g id=\"placeholder\" fill=\"url(#linear-gradient)\" opacity={ opacity }>\n <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"100%\" height=\"19\" rx=\"4\" />\n </g>\n </svg>\n\n </Wrapper>\n);\n\nexport default Skeleton;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n width: 100%;\n display: flex;\n cursor: pointer;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Item = styled.div`\n display: inline-block;\n color: #fff;\n height: 23px;\n padding: 0px 10px;\n font-size: 12px;\n font-weight: 900;\n line-height: 23px;\n width: ${(props) => (props.width > 0 ? props.width * 100 : '33')}%;\n`;\nItem.displayName = 'Item';\n\nexport const Critical = styled(Item)`\n background-color: ${colors.warmPurple};\n box-shadow: inset 0 -2px 0 0 ${colors.warmPurple};\n background-color: ${colors.warmPurple};\n`;\nCritical.displayName = 'Critical';\n\nexport const High = styled(Item)`\n background-color: ${colors.red3};\n box-shadow: inset 0 -2px 0 0 ${colors.red3};\n background-color: ${colors.red3};\n`;\nHigh.displayName = 'High';\n\nexport const Medium = styled(Item)`\n background-color: ${colors.orange1};\n box-shadow: inset 0 -2px 0 0 ${colors.orange1};\n background-color: ${colors.orange1};\n`;\nMedium.displayName = 'Medium';\n","import React from 'react';\nimport {\n Wrapper, Critical, High, Medium\n} from './styled';\n\nconst Severity = ({ value, className }) => {\n const critical = value.critical || 0;\n const high = value.high || 0;\n const medium = value.med || 0;\n\n return (\n <Wrapper className={ className }>\n <Critical width={ critical }>{critical}</Critical>\n <High width={ high }>{high}</High>\n <Medium width={ medium }>{medium}</Medium>\n </Wrapper>\n );\n};\n\nexport default Severity;\n","import styled from 'styled-components';\nimport OSX from 'Images/osx.png';\nimport Linux from 'Images/linux.png';\nimport Windows from 'Images/windows.png';\nimport Unknown from 'Images/laptop_icon.svg';\nimport Shodan from 'Images/shodan.png';\nimport colors from 'Styles/colors';\nimport Severity from 'Screens/Host/components/HostDetail/Severity';\nimport TimeAgo from 'react-timeago';\n\nexport const Wrapper = styled.div`\n height: 100%;\n flex: 1 1 0px;\n overflow: hidden;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Expander = styled.div.attrs((props) => ({\n className: props.isExpanded ? '-group-expanded' : '-group-unexpanded'\n}))``;\nExpander.displayName = 'Expander';\n\nexport const Icon = styled.img.attrs((props) => {\n if (props.type === 'unix') return { src: Linux };\n if (props.type === 'linux') return { src: Linux };\n if (props.type === 'osx') return { src: OSX };\n if (props.type === 'apple') return { src: OSX };\n if (props.type === 'mac') return { src: OSX };\n if (props.type === 'windows') return { src: Windows };\n if (props.type === 'shodan') return { src: Shodan };\n return { src: Unknown };\n})`\n width: 12px;\n pointer-events: none;\n margin: 0 auto;\n`;\nIcon.displayName = 'Icon';\n\nexport const CenteredIcon = styled.div`\n display: flex;\n justify-content: center;\n`;\nCenteredIcon.displayName = 'CenteredIcon';\n\nexport const CenteredText = styled.div`\n text-align: center;\n`;\nCenteredText.displayName = 'CenteredText';\n\nexport const Ip = styled.div`\n font-weight: 500;\n color: ${colors.dark2};\n cursor: pointer;\n &:hover {\n text-decoration: underline;\n }\n`;\nIp.displayName = 'Ip';\n\nexport const NumericRow = styled.div`\n font-weight: 500;\n color: ${colors.grey11};\n pointer-events: none;\n`;\nNumericRow.displayName = 'NumericRow';\n\nexport const CenteredNumericRow = styled(NumericRow)`\n text-align: center;\n`;\nNumericRow.displayName = 'NumericRow';\n\nexport const Hostnames = styled.div`\n pointer-events: none;\n`;\nHostnames.displayName = 'Hostnames';\n\nexport const SeverityColumn = styled(Severity)`\n pointer-events: none;\n`;\nSeverityColumn.displayName = 'SeverityColumn';\n\nexport const TimeAgoColumn = styled(TimeAgo)`\n pointer-events: none;\n`;\nTimeAgoColumn.displayName = 'TimeAgoColumn';\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectRow } from 'store/Host/actions';\nimport Checkbox from 'Common/Components/Checkbox';\nimport { selectHostsSelected } from 'store/Host/selectors';\n\nexport const CheckColum = ({ host }) => { // eslint-disable-line import/prefer-default-export\n const hostsSelected = useSelector((state) => selectHostsSelected(state));\n const dispatch = useDispatch();\n const isSelected = hostsSelected.find((hostSelected) => hostSelected._id === host._id);\n const handleClick = (e) => dispatch(selectRow(e, host));\n return (\n <Checkbox theme=\"grey\" state={ !!isSelected } onChange={ handleClick } />\n );\n};\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { allHostsAreSelected } from 'store/Host/selectors';\nimport { selectAllHost } from 'store/Host/actions';\nimport Checkbox from 'Common/Components/Checkbox';\n\nexport const CheckHeader = () => { // eslint-disable-line import/prefer-default-export\n const allHostSelected = useSelector(allHostsAreSelected);\n const dispatch = useDispatch();\n const handleClick = () => {\n dispatch(selectAllHost());\n };\n\n return (\n <Checkbox theme=\"grey\" onChange={ handleClick } state={ allHostSelected } />\n );\n};\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport {\n getVulns,\n showHostDetail\n} from 'store/HostDetail/actions';\nimport { setPageNumber } from 'store/Filters/actions';\nimport { selectRow, unSelectAll } from 'store/Host/actions';\nimport { Ip } from '../styled';\n\nexport const IpColumn = ({ host, children }) => { // eslint-disable-line import/prefer-default-export\n const dispatch = useDispatch();\n const handleClick = (e) => {\n dispatch(setPageNumber('vulnsAssets', 1));\n dispatch(unSelectAll());\n dispatch(showHostDetail(host));\n dispatch(getVulns(host.ip));\n dispatch(selectRow(e, host));\n };\n return (\n <Ip onClick={ handleClick }>{children}</Ip>\n );\n};\n","import styled from 'styled-components';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const Wrapper = styled.div`\n display: flex;\n justify-content: center;\n`;\nWrapper.displayName = 'Wrapper';\n","import Importance from 'Common/Components/Importance';\nimport React from 'react';\nimport { useDispatch } from 'react-redux';\nimport { updateHost } from 'store/Host/actions';\nimport { Wrapper } from './styled';\n\nconst ImportanceColumn = ({ host }) => {\n const dispatch = useDispatch();\n const callback = (importance) => dispatch(updateHost(host._id, { importance }));\n\n return (\n <Wrapper>\n <Importance importance={ host.importance } callback={ callback } />\n </Wrapper>\n );\n};\n\nexport default ImportanceColumn;\n","/* eslint-disable no-nested-ternary */\n/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport DateFormatter from 'Common/Components/DateFormatter';\nimport Skeleton from 'Common/Components/Skeleton';\nimport get from 'lodash/get';\nimport {\n Expander, Icon, Hostnames, SeverityColumn, CenteredText, CenteredNumericRow,\n CenteredIcon\n} from './styled';\nimport {\n CheckColum, CheckHeader, IpColumn\n} from './components';\nimport ImportanceColumn from './components/ImportanceColumn';\n\nconst oss = ['windows', 'cisco', 'router', 'osx', 'apple', 'mac', 'linux', 'unix'];\nfunction getHost (h) {\n return h ? oss.find((os) => (h.toLowerCase().indexOf(os) > -1 ? os : '')) : '';\n}\n\nconst getDataOrPlaceholder = (value) => (value && value.length > 0 ? value : '');\n\nconst getNumericDataOrPlaceholder = (number) => (number && number > 0 ? number : '');\n\nconst getHostnameString = (hostnames, groupBy, isPivot) => {\n if (hostnames.length === 0 || (groupBy && !isPivot)) { return ''; }\n const hostnameArray = hostnames.split(',');\n return hostnameArray.length > 1 ? `${hostnameArray[0]} + ${hostnameArray.length - 1}` : hostnameArray[0];\n};\n\nexport default function getColumns (isPivot, fields, groupBy, isFetching) {\n const columns = [{\n Header: () => groupBy && !isPivot && <></>,\n id: 'expander',\n show: !!groupBy && !isPivot,\n sortable: false,\n filterable: false,\n expander: true,\n minWidth: 50,\n custom_order: -1,\n Expander: ({ isExpanded, original }) => {\n const groupingBy = get(original, groupBy, '-');\n return (\n <Expander isExpanded={ isExpanded }>\n {!isFetching && `${groupingBy} (${original.count})`}\n </Expander>\n );\n }\n }, {\n Header: () => (!groupBy || (groupBy && isPivot)) && <CheckHeader />,\n id: 'selected',\n accessor: 'Selected',\n show: (!groupBy || (groupBy && isPivot)),\n sortable: false,\n resizable: false,\n maxWidth: 38,\n minWidth: 38,\n style: { display: 'flex' },\n Cell: (rowInfo) => ((isFetching) ? <Skeleton /> : (!groupBy || isPivot) && <CheckColum host={ rowInfo.original } />)\n }, {\n Header: () => (\n <CenteredText>\n <FormattedMessage id=\"host.table.columns.important\" />\n </CenteredText>\n ),\n id: 'importance',\n accessor: 'importance',\n show: (fields.important.visible || !groupBy || (groupBy && isPivot)),\n sortable: !groupBy,\n resizable: false,\n width: 90,\n // minWidth: 50,\n custom_order: fields.important.order,\n Cell: (rowInfo) => ((isFetching) ? <Skeleton /> : (!groupBy || isPivot) && <ImportanceColumn host={ rowInfo.original } />)\n\n },\n {\n Header: () => <FormattedMessage id=\"host.table.columns.ip\" />,\n id: 'ip',\n accessor: 'ip',\n show: fields.asset.visible && groupBy !== 'ip',\n sortable: !groupBy,\n resizable: !groupBy,\n width: 200,\n custom_order: fields.asset.order,\n Cell: (rowInfo) => ((isFetching) ? <Skeleton /> : <IpColumn host={ rowInfo.original }>{getDataOrPlaceholder(rowInfo.original.ip, groupBy)}</IpColumn>)\n }, {\n Header: () => <CenteredText><FormattedMessage id=\"host.table.columns.search\" /></CenteredText>,\n id: 'search',\n accessor: 'search',\n show: fields.search.visible,\n sortable: false,\n resizable: false,\n custom_order: fields.search.order,\n Cell: (rowInfo) => (\n (isFetching)\n ? <Skeleton />\n : !groupBy && rowInfo.original.ip\n ? (\n <a href={ `//shodan.io/search?query=${rowInfo.original.ip}` } target=\"_blank\" rel=\"noopener noreferrer\" tooltip=\"Search in Shodan\">\n <Icon alt=\"Search in Shodan\" type=\"shodan\" />\n </a>\n )\n : null\n ),\n maxWidth: fields.search.maxWidth\n }, {\n Header: () => (\n <CenteredText>\n <FormattedMessage id=\"host.table.columns.os\" />\n </CenteredText>\n ),\n id: 'os',\n accessor: 'os',\n show: fields.os.visible && groupBy !== 'os',\n sortable: !groupBy,\n resizable: false,\n custom_order: fields.os.order,\n Cell: (rowInfo) => {\n const os = getHost(rowInfo.original.os);\n return (\n (isFetching)\n ? <Skeleton />\n : (!groupBy || (groupBy && isPivot)) && (\n <CenteredIcon>\n <Icon\n alt={ `${os}` }\n type={ os }\n />\n </CenteredIcon>\n )\n );\n },\n width: 38\n }, {\n Header: () => <FormattedMessage id=\"host.table.columns.services\" />,\n id: 'services',\n show: fields.services.visible,\n sortable: !groupBy,\n resizable: !groupBy,\n custom_order: fields.services.order,\n Cell: (rowInfo) => ((isFetching) ? <Skeleton /> : getDataOrPlaceholder(rowInfo.original.service_summaries && rowInfo.original.service_summaries.join(', '))),\n maxWidth: 150,\n getProps: () => ({ 'column-type': 'services', 'className': `min-wd-${fields.services.defaultMin}` })\n }, {\n Header: () => <FormattedMessage id=\"host.table.columns.hostnames\" />,\n id: 'hostnames',\n show: fields.hostnames.visible,\n sortable: false,\n resizable: !groupBy,\n custom_order: fields.hostnames.order,\n Cell: (rowInfo) => (isFetching\n ? <Skeleton />\n : rowInfo.original.hostnames\n ? (\n <Hostnames>{ getDataOrPlaceholder(getHostnameString(rowInfo.original.hostnames.join(', '), groupBy, isPivot)) }</Hostnames>\n )\n : ''),\n minWidth: 200,\n maxWidth: 300,\n getProps: () => ({ 'column-type': 'hostnames', 'className': `min-wd-${fields.hostnames.defaultMin}` })\n }, {\n Header: () => <FormattedMessage id=\"host.table.columns.open_services\" />,\n id: 'open_service_count',\n accesor: 'open_services',\n show: fields.open_services.visible,\n sortable: !groupBy,\n resizable: !groupBy,\n custom_order: fields.open_services.order,\n Cell: (rowInfo) => (\n (isFetching) ? <Skeleton /> : <CenteredNumericRow>{ getNumericDataOrPlaceholder(rowInfo.original.services, groupBy) } </CenteredNumericRow>\n ),\n maxWidth: fields.open_services.maxWidth,\n minWidth: fields.open_services.minWidth\n }, {\n Header: () => (\n <CenteredText>\n <FormattedMessage id=\"host.table.columns.vulns\" />\n </CenteredText>\n ),\n id: 'vulnerability_count',\n accessor: 'vulns',\n show: fields.vulns.visible,\n sortable: !groupBy,\n resizable: !groupBy,\n custom_order: fields.vulns.order,\n width: fields.vulns.minWidth,\n Cell: (rowInfo) => ((isFetching) ? <Skeleton /> : <CenteredNumericRow>{getNumericDataOrPlaceholder(rowInfo.original.vulns, groupBy)}</CenteredNumericRow>)\n }, {\n Header: () => <CenteredText><FormattedMessage id=\"host.table.columns.owned\" /></CenteredText>,\n id: 'owned',\n accessor: 'owned',\n show: fields.owned.visible,\n sortable: !groupBy,\n resizable: !groupBy,\n custom_order: fields.owned.order,\n Cell: (rowInfo) => ((isFetching)\n ? <Skeleton />\n : <CenteredText>\n {rowInfo.original.owned ? (rowInfo.original.owned ? 'Yes' : 'Not Yet') : ''}\n </CenteredText>),\n maxWidth: 80,\n getProps: () => ({ 'column-type': 'owned', 'className': `min-wd-${fields.owned.defaultMin}` })\n }, {\n Header: () => <FormattedMessage id=\"host.table.columns.description\" />,\n id: 'description',\n accessor: 'description',\n show: fields.description.visible,\n sortable: !groupBy,\n resizable: !groupBy,\n custom_order: fields.description.order,\n Cell: (rowInfo) => (\n (isFetching) ? <Skeleton /> : getDataOrPlaceholder(rowInfo.original.description, groupBy)\n ),\n minWidth: 165,\n maxWidth: 210,\n getProps: () => ({ 'column-type': 'description', 'className': `min-wd-${fields.description.defaultMin}` })\n }, {\n Header: () => <FormattedMessage id=\"host.table.columns.mac\" />,\n id: 'mac',\n accessor: 'mac',\n show: fields.mac.visible,\n sortable: !groupBy,\n resizable: !groupBy,\n custom_order: fields.mac.order,\n Cell: (rowInfo) => (\n (isFetching) ? <Skeleton /> : getDataOrPlaceholder(rowInfo.original.mac, groupBy)\n ),\n minWidth: 120,\n maxWidth: 150,\n getProps: () => ({ 'column-type': 'mac', 'className': `min-wd-${fields.mac.defaultMin}` })\n }, {\n Header: () => (\n <CenteredText>\n <FormattedMessage id=\"host.table.columns.owner\" />\n </CenteredText>\n ),\n id: 'creator__username',\n accesor: 'owner',\n show: fields.owner.visible && groupBy !== 'owner',\n sortable: !groupBy,\n resizable: !groupBy,\n custom_order: fields.owner.order,\n Cell: (rowInfo) => (\n (isFetching)\n ? <Skeleton />\n : (\n <CenteredText>\n {getDataOrPlaceholder(rowInfo.original.owner, groupBy)}\n </CenteredText>\n )\n ),\n width: 70\n }, {\n Header: () => <FormattedMessage id=\"host.table.columns.creation_time\" />,\n id: 'create_date',\n show: fields.creation_time.visible,\n sortable: !groupBy,\n resizable: !groupBy,\n custom_order: fields.creation_time.order,\n Cell: (rowInfo) => (\n (isFetching) ? <Skeleton /> : rowInfo.original.metadata && rowInfo.original.metadata.create_time ? <DateFormatter date={ rowInfo.original.metadata.create_time } /> : ''\n ),\n minWidth: fields.creation_time.minWidth,\n maxWidth: fields.creation_time.maxWidth\n }, {\n Header: () => (\n <CenteredText>\n <FormattedMessage id=\"host.table.columns.last_modified\" />\n </CenteredText>\n ),\n id: 'update_date',\n show: fields.last_modified.visible,\n sortable: !groupBy,\n resizable: !groupBy,\n custom_order: fields.last_modified.order,\n Cell: (rowInfo) => (\n (isFetching)\n ? <Skeleton />\n : (\n <CenteredIcon>\n {rowInfo.original.metadata && rowInfo.original.metadata.update_time ? <DateFormatter date={ rowInfo.original.metadata.update_time } /> : ''}\n </CenteredIcon>\n )\n ),\n width: 140\n }, {\n Header: () => <FormattedMessage id=\"host.table.columns.severity_counts\" />,\n id: 'severity_counts',\n show: fields.severity_counts.visible,\n sortable: !groupBy,\n resizable: !groupBy,\n custom_order: fields.severity_counts.order,\n Cell: (rowInfo) => (\n (isFetching) ? <Skeleton /> : (rowInfo.original.severity_counts && <SeverityColumn value={ rowInfo.original.severity_counts } />) || ''\n ),\n minWidth: fields.severity_counts.minWidth,\n maxWidth: fields.severity_counts.maxWidth,\n getProps: () => ({ 'column-type': 'severity_counts', 'className': `min-wd-${fields.severity_counts.defaultMin}` })\n }, {\n Header: () => (\n <CenteredText>\n <FormattedMessage id=\"host.table.columns.id\" />\n </CenteredText>\n ),\n id: 'id',\n accesor: '_id',\n show: fields.id.visible,\n sortable: !groupBy,\n resizable: !groupBy,\n custom_order: fields.id.order,\n Cell: (rowInfo) => (\n (isFetching)\n ? <Skeleton />\n : (\n <CenteredText>\n {getNumericDataOrPlaceholder(rowInfo.original.id)}\n </CenteredText>\n )\n ),\n width: 80,\n getProps: () => ({ 'column-type': 'id', 'className': `min-wd-${fields.id.defaultMin}` })\n }];\n\n return columns.filter((row, index) => row.show === true || index === 0).sort((a, b) => (a.custom_order < b.custom_order ? -1 : 1));\n}\n","/* eslint-disable react/destructuring-assignment */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport CustomReactTable from 'Common/Components/CustomReactTable/styled';\nimport {\n clearAdvancedFilter, getCustomFilters, resetFilters, setSelectedEntity\n} from 'store/Filters/actions';\nimport {\n resetState,\n expandGroupByAssets,\n setOrderByAssets,\n showHostLeftFilters\n} from 'store/Host/actions';\nimport {\n resetHostDetail\n} from 'store/HostDetail/actions';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport {\n selectMapGroupByIndex,\n selectHostsSelected,\n selectIsFetching,\n selectShowHostLeftFilters\n} from 'store/Host/selectors';\nimport {\n getSelectedEntity,\n selectGroupByField\n} from 'store/Filters/selectors';\nimport { selectFields, selectHostList } from 'store/Preferences/host/selectors';\nimport colors from 'Styles/colors';\nimport { selectShowManageLeftFilters } from 'store/Manage/selectors';\nimport getColumns from './Columns';\nimport { Wrapper } from './styled';\n\nconst getSorting = (sorted) => {\n const importantVulnsSortIndex = sorted.findIndex((s) => s.id === 'severity_counts');\n\n if (importantVulnsSortIndex >= 0) {\n const desc = sorted[importantVulnsSortIndex].desc;\n const sortCriticalCount = { id: 'vulnerability_critical_generic_count', desc };\n const sortHighCount = { id: 'vulnerability_high_generic_count', desc };\n const sortMediumCount = { id: 'vulnerability_medium_generic_count', desc };\n\n const newSorting = [...sorted];\n newSorting.splice(importantVulnsSortIndex, 1, sortCriticalCount, sortHighCount, sortMediumCount);\n return newSorting;\n }\n return sorted;\n};\n\nclass Table extends Component {\n constructor (props) {\n super(props);\n this.table = React.createRef();\n this.state = {\n expanded: {}\n };\n\n this.getTrProps = this.getTrProps.bind(this);\n this.fetchData = this.fetchData.bind(this);\n }\n\n componentDidMount () {\n const {\n clearSelectedEntity, selectedEntity\n } = this.props;\n this.props.getCustomFilters();\n if (this.props.showLeftMenuFilters || this.props.showSidebarFilters) this.props.showLeftFilters(true);\n else this.props.showLeftFilters(false);\n if (selectedEntity !== 'assets') clearSelectedEntity();\n }\n\n componentWillUnmount () {\n const {\n resetState, resetHostDetail, resetFilters, clearAdvancedFilter\n } = this.props;\n resetState();\n resetHostDetail();\n resetFilters();\n clearAdvancedFilter();\n }\n\n getTrProps (state, rowInfo) {\n if (rowInfo && rowInfo.row && !rowInfo.original.count) {\n const selected = this.props.hostsSelected.filter((x) => x.id === rowInfo.original.id).length > 0;\n\n return {\n style: {\n background: selected ? `${colors.blue8}` : ''\n }\n };\n }\n\n return {};\n }\n\n fetchData (state) {\n const { isFetching } = this.props;\n const { sorted } = state;\n if (!isFetching) {\n const sorting = getSorting(sorted);\n this.props.setOrderBy(sorting);\n }\n }\n\n render () {\n const {\n data, fields, groupByField, isFetching\n } = this.props;\n\n const { expanded } = this.state;\n const mockData = [...Array(13).keys()];\n\n return (\n <Wrapper ref={ (element) => { this.table = element; } }>\n <CustomReactTable\n data={ isFetching ? mockData : data }\n columns={ getColumns(false, fields, groupByField, isFetching) }\n manual\n onFetchData={ this.fetchData }\n minRows={ 0 }\n showPagination={ false }\n getTrProps={ (state, rowInfo) => this.getTrProps(state, rowInfo) }\n noDataText={ !isFetching && <FormattedMessage id=\"app.nodata\" /> }\n expanded={ expanded }\n onExpandedChange={ (expanded, index) => {\n if (expanded[index]) {\n this.props.expandGroupBy(index, data[index]);\n }\n this.setState({ expanded });\n } }\n SubComponent={ (row) => (\n <CustomReactTable\n data={ this.props.data[row.index].groupData }\n columns={ getColumns(true, fields, groupByField, isFetching) }\n manual\n minRows={ 0 }\n showPagination={ false }\n TheadComponent={ () => null }\n getTrProps={ (state, rowInfo) => this.getTrProps(state, rowInfo) }\n style={ { overflow: 'hidden' } }\n />\n ) }\n />\n </Wrapper>\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n data: selectHostList(state),\n isFetching: selectIsFetching(state),\n fields: selectFields(state),\n groupByField: selectGroupByField('assets', state),\n hostsSelected: selectHostsSelected(state),\n lastHostSelected: state.host.lastHostSelected,\n lastIndexForRange: state.host.lastIndexForRange,\n lastSelected: state.host.lastSelected,\n groupDataByIndex: selectMapGroupByIndex(state),\n selectedEntity: getSelectedEntity(state),\n showLeftMenuFilters: selectShowHostLeftFilters(state),\n showSidebarFilters: selectShowManageLeftFilters(state)\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n showLeftFilters: (show) => {\n dispatch(showHostLeftFilters(show));\n },\n getCustomFilters: () => {\n dispatch(getCustomFilters());\n },\n setOrderBy: (order_by) => {\n dispatch(setOrderByAssets(order_by));\n },\n expandGroupBy: (index, value) => {\n dispatch(expandGroupByAssets(index, value));\n },\n resetState: () => {\n dispatch(resetState());\n },\n resetHostDetail: () => {\n dispatch(resetHostDetail());\n },\n resetFilters: () => {\n dispatch(resetFilters('assets'));\n },\n clearSelectedEntity: () => {\n dispatch(setSelectedEntity(''));\n },\n clearAdvancedFilter: () => {\n dispatch(clearAdvancedFilter('assets'));\n }\n});\n\nTable.propTypes = {\n isFetching: PropTypes.bool.isRequired,\n data: PropTypes.arrayOf(PropTypes.object).isRequired,\n fields: PropTypes.instanceOf(Object).isRequired,\n groupByField: PropTypes.string.isRequired,\n expandGroupBy: PropTypes.func.isRequired,\n setOrderBy: PropTypes.func.isRequired,\n resetState: PropTypes.func.isRequired,\n resetFilters: PropTypes.func.isRequired,\n clearSelectedEntity: PropTypes.func.isRequired,\n getCustomFilters: PropTypes.func.isRequired,\n resetHostDetail: PropTypes.func.isRequired\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Table);\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Button = styled.div`\n align-items: center;\n background-color: transparent;\n border-radius: 2px;\n border: solid 1px rgba(144, 169, 192, 0.3);\n cursor: pointer;\n display: flex;\n font-size: 11.5px;\n font-weight: 500;\n height: 34px;\n justify-content: center;\n line-height: 34px;\n padding: 0 10px;\n\n & > svg {\n height: 11px;\n margin-right: 10px;\n & > path {\n fill: ${colors.dark2};\n }\n }\n\n &:hover {\n background-color: #f1f4f7;\n border-radius: 3px;\n border: solid 1px #d8dee5;\n }\n \n ${({ disabled }) => {\n if (!disabled) return null;\n return `\n pointer-events: none;\n background-color: ${colors.white};\n & > svg {\n & > path {\n fill: ${colors.grey26};\n }\n }\n `;\n }\n}\n`;\nButton.displayName = 'Button';\n\nexport const Text = styled.div`\n user-select: none;\n color: ${({ disabled }) => `${disabled ? colors.grey26 : colors.black}`};\n font-size: 11.5px;\n font-weight: 500;\n line-height: 34px;\n`;\nText.displayName = 'Text';\n","import React from 'react';\nimport { PropTypes } from 'prop-types';\nimport { ReactComponent as PlusIcon } from 'Images/icon-action-bar-plus.svg';\nimport { Button, Text } from './styled';\n\nconst AddButton = ({\n title, onClick, text, className, disabled\n}) => (\n <Button disabled={ disabled } title={ title } onClick={ onClick } className={ className }>\n <PlusIcon />\n <Text disabled={ disabled }>{ text }</Text>\n </Button>\n);\nexport default AddButton;\n\nAddButton.propTypes = {\n title: PropTypes.string,\n onClick: PropTypes.func,\n text: PropTypes.string,\n className: PropTypes.string,\n disabled: PropTypes.bool\n};\n\nAddButton.defaultProps = {\n title: '',\n onClick: () => {},\n text: '',\n className: '',\n disabled: false\n};\n","import React from 'react';\nimport { useIntl } from 'react-intl';\nimport AddButton from 'Common/Components/AddButton';\n\nconst CreateActions = ({ setVisibilityCreateModal }) => {\n const intl = useIntl();\n const addText = intl.formatMessage({ id: 'host.create' });\n const handleShow = () => setVisibilityCreateModal(true);\n\n return (\n <AddButton\n onClick={ handleShow }\n title={ addText }\n text={ addText }\n />\n );\n};\n\nexport default CreateActions;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n text-align: right;\n margin: 0px;\n box-sizing: border-box;\n display: flex;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: wrap;\n height: 37px;\n margin-bottom: 9px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Separator = styled.div`\n &::after {\n margin: auto 0px;\n width: 1px;\n content: ' ';\n background: transparent;\n border-right: 1px #B5BEC6;\n border-right-style: dashed;\n height: 11px;\n }\n`;\nSeparator.displayName = 'Separator';\n\nexport const Group = styled.div`\n display: flex;\n align-items: center;\n`;\nGroup.displayName = 'Group';\n\nexport const LeftGroup = styled.div`\n display: flex;\n align-items: center;\n\n & > *:not(:last-child) {\n margin-right: 15px;\n }\n`;\nLeftGroup.displayName = 'LeftGroup';\n\nexport const RightGroup = styled.div`\n display: flex;\n align-items: center;\n margin-left: auto;\n & > * {\n margin-right: 15px;\n }\n`;\nRightGroup.displayName = 'RightGroup';\n","import React from 'react';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { FiTrash2 as Trash } from 'react-icons/fi';\n\n// TODO: Refactor code\nconst DeleteButton = ({\n permissions, readonly, entity, selectedEntities, display, openConfirmationModal\n}) => {\n const deleteDisabledReason = (!permissions || !permissions.delete.allowed) ? permissions.delete.reason : '';\n\n if (display) {\n return (\n <div>\n <Tooltip title={ readonly && entity !== 'workspaces' ? 'Workspace is read only.' : deleteDisabledReason }>\n <div className={ `trash-container-hover ${selectedEntities.length === 0 ? 'disabled' : ''}` }>\n <Trash\n color=\"#1c4566\"\n style={ { fontSize: '20px' } }\n onClick={ () => { if ((!readonly || entity !== 'workspaces') && permissions && permissions.delete.allowed) openConfirmationModal(); } }\n className={ `icon-trash ${(readonly && entity !== 'workspaces') || (!permissions || !permissions.delete.allowed) || selectedEntities.length === 0 ? 'disabled' : ''}` }\n id=\"action-button-delete\"\n />\n </div>\n </Tooltip>\n </div>\n );\n }\n\n return null;\n};\n\nexport default DeleteButton;\n","\nimport React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport get from 'lodash/get';\nimport DeleteButton from 'Common/Components/DeleteButton';\nimport { showHostModalDelete } from 'store/Host/actions';\nimport { selectHostsSelected, selectPermissions } from 'store/Host/selectors';\nimport { selectShowHostDetail } from 'store/HostDetail/selectors';\n\nconst DeleteHostButton = () => {\n const readonly = useSelector((state) => get(state, 'faraday.readonly', false));\n const permissions = useSelector(selectPermissions);\n const hostsSelected = useSelector(selectHostsSelected);\n const isHostDetailVisible = useSelector(selectShowHostDetail);\n const dispatch = useDispatch();\n const handleClick = () => dispatch(showHostModalDelete());\n\n return (\n <DeleteButton permissions={ permissions } readonly={ readonly } entity=\"host\" selectedEntities={ hostsSelected } display={ hostsSelected.length > 0 && !isHostDetailVisible } openConfirmationModal={ handleClick } />\n );\n};\n\nexport default DeleteHostButton;\n","import React from 'react';\nimport { FiEdit3 as Edit } from 'react-icons/fi';\n\n// TODO: refactor\nconst EditButton = ({\n editFunction, selectedEntities, breakpoint, display\n}) => {\n if (display) {\n return (\n <div\n className=\"margin-right-12 icon-container-hover\"\n onClick={ () => { } }\n onKeyDown={ () => {} }\n role=\"button\"\n aria-label=\"Edit\"\n tabIndex=\"0\"\n type=\"button\"\n >\n <Edit className=\"icon-tag\" style={ { fontSize: '20px' } } onClick={ () => editFunction(selectedEntities[0], breakpoint) } />\n </div>\n );\n }\n return null;\n};\n\nexport default EditButton;\n","import api from 'services/api';\nimport { updateHostListRow, appendHostListRow, toggleModalEditCreate } from 'store/Host/actions';\nimport { showHostDetail } from 'store/HostDetail/actions';\nimport * as types from 'store/HostEditCreate/types';\nimport { selectHostsSelected } from 'store/Host/selectors';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport get from 'lodash/get';\nimport { selectShowHostDetail } from 'store/HostDetail/selectors';\nimport { UPDATE_HOST_SELECTED } from 'store/Host/types';\n\nexport function resetState () {\n return (dispatch) => {\n dispatch({\n type: types.RESET_STATE_HOST_CREATE_UPDATE\n });\n };\n}\n\nexport function setField (fieldName, value) {\n return (dispatch) => {\n dispatch({\n type: types.SET_FIELD_NAME_HOST_CREATE_UPDATE, fieldName, value\n });\n };\n}\n\nexport function removeHostname (index) {\n return (dispatch) => {\n dispatch({\n type: types.REMOVE_HOST_NAME_HOST_CREATE_UPDATE, index\n });\n };\n}\n\nexport function addHostname (value) {\n return (dispatch, getState) => {\n const { hostnames } = getState().hostEditCreate;\n\n if (hostnames.filter((hname) => hname === value).length === 0) dispatch({ type: types.ADD_HOST_NAME_HOST_CREATE_UPDATE, value });\n };\n}\n\nexport function setHostName (value) {\n return (dispatch) => {\n dispatch({\n type: types.SET_HOST_NAME_HOST_CREATE_UPDATE, value\n });\n };\n}\n\nexport function createUpdateHost () {\n return async (dispatch, getState) => {\n const { hostEditCreate } = getState();\n const { workspaceSelected } = getState().faraday;\n const isHostDetailVisible = selectShowHostDetail(getState());\n\n const host = {\n id: hostEditCreate.id,\n ip: hostEditCreate.ip,\n owned: hostEditCreate.owned,\n os: hostEditCreate.os,\n mac: hostEditCreate.mac,\n description: hostEditCreate.description,\n hostnames: hostEditCreate.hostnames,\n owner: hostEditCreate.owner,\n default_gateway: hostEditCreate.default_gateway\n };\n\n try {\n if (hostEditCreate.id) {\n const response = await api.host.updateHost(workspaceSelected, host);\n // if the update was succesful, updates the host list and host detail on the store.\n dispatch(updateHostListRow(response));\n if (isHostDetailVisible) {\n dispatch(showHostDetail(response));\n dispatch({ type: UPDATE_HOST_SELECTED, host: [response] });\n }\n } else {\n const response = await api.host.createHost(workspaceSelected, host);\n // if the creation was succesful, append the new host to the host list.\n // console.log(response)\n dispatch(appendHostListRow(response));\n // dispatch(getData());\n }\n\n dispatch({ type: types.HOST_CREATE_UPDATE_SUCCESS });\n dispatch(resetState());\n } catch (e) {\n dispatch({ type: types.HOST_CREATE_UPDATE_FAIL, error: e.message });\n }\n };\n}\n\nexport function showEditModal () {\n return async (dispatch, getState) => {\n const workspaceSelected = selectCurrentWorkspace(getState());\n const hostSelected = selectHostsSelected(getState());\n const hostId = get(hostSelected, '[0].id', 0);\n\n try {\n const host = await api.hostDetail.fetchById(workspaceSelected, hostId);\n dispatch(toggleModalEditCreate(true, host));\n return dispatch({ type: types.SET_HOST_FOR_EDIT, host });\n } catch (e) {\n return dispatch({ type: types.HOST_CREATE_UPDATE_FAIL, error: e.message ? e.message : 'An error has occurred.' });\n }\n };\n}\n","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport EditButton from 'Common/Components/EditButton';\nimport { selectHostsSelected } from 'store/Host/selectors';\nimport { selectShowHostDetail } from 'store/HostDetail/selectors';\nimport { showEditModal } from 'store/HostEditCreate/actions';\n\nconst EditHostButton = () => {\n const hostsSelected = useSelector(selectHostsSelected);\n const isHostDetailVisible = useSelector(selectShowHostDetail);\n const dispatch = useDispatch();\n\n return (\n <EditButton editFunction={ () => dispatch(showEditModal()) } selectedEntities={ hostsSelected } display={ hostsSelected.length === 1 && !isHostDetailVisible } />\n );\n};\n\nexport default EditHostButton;\n","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgPrev = function SvgPrev(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 37,\n height: 37,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#EDF2F7\",\n cx: 18.5,\n cy: 18.5,\n r: 18.5\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.412 18.25l3.657-4.252a.582.582 0 01.911 0l.608.707a.835.835 0 010 1.06l-2.592 3.013 2.592 3.013a.835.835 0 010 1.06l-.608.706a.582.582 0 01-.911 0l-3.657-4.25a.83.83 0 010-1.058z\",\n fill: \"#90A9C0\",\n fillRule: \"nonzero\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgPrev, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/prev.ecd34f23.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgNext = function SvgNext(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 37,\n height: 37,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#EDF2F7\",\n cx: 18.5,\n cy: 18.5,\n r: 18.5\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.588 19.306l-3.657 4.251a.582.582 0 01-.911 0l-.608-.706a.835.835 0 010-1.06l2.592-3.013-2.592-3.014a.835.835 0 010-1.06l.608-.706a.582.582 0 01.911 0l3.657 4.251a.83.83 0 010 1.057z\",\n fill: \"#90A9C0\",\n fillRule: \"nonzero\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgNext, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/next.0e62ddad.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as PrevIcon } from 'Images/prev.svg';\nimport { ReactComponent as NextIcon } from 'Images/next.svg';\n\nexport const Wrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Summary = styled.div`\n user-select: none;\n margin-right: auto;\n font-size: 13.5px;\n line-height: 1.04;\n letter-spacing: 0.1px;\n color: ${colors.grey19};\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\nSummary.displayName = 'Summary';\n\nexport const WrapperButton = styled.button`\n border: 0;\n background: transparent;\n width: 37px;\n height: 37px;\n background-color: transparent;\n margin: 0 0 0 8px;\n &:disabled {\n & > svg circle {\n fill: transparent;\n cursor: default;\n }\n & > svg path {\n fill: ${colors.grey12};\n cursor: default;\n }\n }\n`;\nWrapperButton.displayName = 'WrapperButton';\n\nexport const Prev = styled(PrevIcon)`\n`;\nPrev.displayName = 'Prev';\n\nexport const Next = styled(NextIcon)`\n`;\nNext.displayName = 'Next';\n","import React from 'react';\nimport { useIntl } from 'react-intl';\nimport { PropTypes } from 'prop-types';\nimport {\n Wrapper, Summary, Prev, Next, WrapperButton\n} from './styled';\n\nconst Button = ({\n icon, tooltip, onClick, disabled\n}) => <WrapperButton type=\"button\" title={ tooltip } onClick={ onClick } disabled={ disabled }>{ icon }</WrapperButton>;\n\nfunction Pagination ({\n offset, limit, total, onPrev, onNext\n}) {\n const intl = useIntl();\n const getOffset = () => offset || 1;// offset viene null cuando se agrupa, el back no soporta paginacion.\n const isFirstPage = () => (getOffset() === 1);\n const isLastPage = () => (limit * getOffset()) >= total;\n const from = () => (total === 0 ? 0 : ((getOffset() - 1) * limit) + 1);\n const to = () => (isLastPage() ? total : limit * getOffset());\n\n // si el offset es null, no se muestra el paginador, esto pasa porque no se soporta paginador cuando se agrupa.\n if (!offset) return null;\n return (\n <Wrapper>\n <Summary>{ `${from()}-${to()} ${intl.formatMessage({ id: 'common.pagination.of' })} ${total}` }</Summary>\n <Button disabled={ isFirstPage() } icon={ <Prev /> } tooltip={ intl.formatMessage({ id: 'common.pagination.prev' }) } onClick={ onPrev } />\n <Button disabled={ isLastPage() } icon={ <Next /> } tooltip={ intl.formatMessage({ id: 'common.pagination.next' }) } onClick={ onNext } />\n </Wrapper>\n );\n}\n\nPagination.propTypes = {\n offset: PropTypes.number,\n limit: PropTypes.number.isRequired,\n total: PropTypes.number.isRequired,\n onPrev: PropTypes.func.isRequired,\n onNext: PropTypes.func.isRequired\n};\n\nPagination.defaultProps = {\n offset: 1\n};\n\nexport default Pagination;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as _Warning } from 'Images/warning-delete.svg';\nimport { slideIn } from 'Styles/effects';\nimport { Accept, Cancel } from '../Button/styled';\n\nexport const ModalContent = styled.div`\n padding: 34px;\n box-shadow: 0 2px 50px 0 rgba(0, 0, 0, 0.24);\n border-radius: 2px;\n border-top: 10px solid ${colors.softBlue};\n background: #fff;\n width: 505px;\n ${slideIn}\n`;\nModalContent.displayName = 'ModalContent';\n\nexport const ModalTitle = styled.div`\n display: flex;\n margin-bottom: 21px;\n`;\nModalTitle.displayName = 'ModalTitle';\n\nexport const Warning = styled(_Warning)`\n align-self: center;\n`;\nWarning.displayName = 'Warning';\n\nexport const Title = styled.div`\n color: ${colors.datk2};\n font-weight: 600;\n font-size: 21.5px;\n margin-left: 13px;\n`;\nTitle.displayName = 'Title';\n\nexport const ModalBody = styled.div`\n\n`;\nexport const BodyText = styled.div`\n color: ${colors.grey19};\n font-size: 12.5px;\n font-weight: 300;\n display: inline-block;\n text-align: initial;\n`;\nBodyText.displayName = 'BodyText';\n\nexport const ButtonsContainer = styled.div`\ndisplay: flex;\njustify-content: flex-end;\nmargin-top: 34px;\n`;\nButtonsContainer.displayName = 'ButtonsContainer';\n\nexport const ConfirmButton = styled(Accept)`\n`;\nConfirmButton.displayName = 'ConfirmButton';\n\nexport const CancelButton = styled(Cancel)`\n margin-right: 10px;\n`;\nCancelButton.displayName = 'CancelButton';\n","import React from 'react';\nimport ModalWrapper from 'Common/Components/ModalWrapper';\nimport {\n ModalTitle, Title, BodyText, ModalContent, ButtonsContainer,\n ConfirmButton, CancelButton, Warning, ModalBody\n} from './styled';\n\nconst ModalConfirmation = ({\n show, handleSubmit, handleClose, entity, count, loading\n}) => {\n const upperCaseTitle = entity.charAt(0).toUpperCase() + entity.slice(1);\n\n if (!show) return null;\n return (\n <ModalWrapper>\n <ModalContent>\n <ModalTitle>\n <Warning />\n <Title>{`Delete ${upperCaseTitle}(s)`}\n \n \n {`You’re deleting ${count} ${upperCaseTitle}(s). This action cannot be undone. Are you sure you want to proceed?`}\n \n \n \n Cancel\n \n \n Delete\n \n \n \n \n );\n};\n\nexport default ModalConfirmation;\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n deleteHostsSelected, hideHostModalDelete\n} from 'store/Host/actions';\nimport ModalConfirmation from 'Common/Components/ModalConfirmation';\nimport { selectHostsSelected, selectIsFetching, selectShowDeleteConfirmation } from 'store/Host/selectors';\n\nconst DeleteConfirmationModal = () => {\n const dispatch = useDispatch();\n const hostsSelected = useSelector(selectHostsSelected);\n const showDeleteConfirmation = useSelector(selectShowDeleteConfirmation);\n const isFetching = useSelector(selectIsFetching);\n\n return (\n dispatch(deleteHostsSelected()) }\n handleClose={ () => dispatch(hideHostModalDelete()) }\n entity=\"host\"\n count={ hostsSelected.length }\n loading={ isFetching }\n />\n );\n};\n\nexport default DeleteConfirmationModal;\n","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport Select, { components } from 'react-select';\nimport { groupSelect } from 'Common/styles/style';\nimport { FormattedMessage } from 'react-intl';\nimport { selectGroupBy } from 'store/Filters/selectors';\nimport { setGroupByAssets, clearGroupByAssets } from 'store/Host/actions';\nimport { ASSETS_GROUP_BY_KEYS } from 'store/Filters/constants';\n\nfunction GroupBy () {\n const alias = 'group';\n const options = ASSETS_GROUP_BY_KEYS;\n const dispatch = useDispatch();\n const groupBy = useSelector((state) => selectGroupBy('assets', state));\n\n const SingleValue = ({ children, ...p }) => (\n components.SingleValue && (\n // eslint-disable-next-line react/jsx-props-no-spreading\n \n {`Group By: ${children}`}\n \n )\n );\n\n return (\n opt.value === groupBy) }\n components={ { SingleValue } }\n placeholder={ }\n onChange={ (e) => {\n if (e.value.length > 0) {\n dispatch(setGroupByAssets(e.value));\n } else {\n dispatch(clearGroupByAssets());\n }\n } }\n options={ options.filter((opt) => opt.value !== groupBy) }\n />\n );\n}\n\nexport default GroupBy;\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconFilterOff = function SvgIconFilterOff(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 18,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m10.162 8.271 4.923-5.982H2.389l4.975 5.982a.83.83 0 0 1 .155.465v5.363l2.436 1.186v-6.6c0-.156.103-.31.207-.414Zm6.84-6.188-5.7 6.859v7.375c0 .515-.518.825-.933.618L6.586 15.13c-.207-.103-.414-.309-.414-.618v-5.57l-5.7-6.859C.109 1.67.42 1 .99 1h15.494c.57 0 .88.619.518 1.083Z\",\n fill: \"#1C4566\",\n fillRule: \"nonzero\",\n stroke: \"#1C4566\",\n strokeWidth: 0.3\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconFilterOff, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon_filter_off.c7a0db30.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconFilterOn = function SvgIconFilterOn(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 18,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-1360 -84)\",\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m1370.162 92.271 4.923-5.982h-12.696l4.975 5.982a.83.83 0 0 1 .155.465v5.363l2.436 1.186v-6.6c0-.156.103-.31.207-.414Zm6.84-6.188-5.7 6.859v7.375c0 .515-.518.825-.933.618l-3.783-1.805c-.207-.103-.414-.309-.414-.618v-5.57l-5.7-6.859c-.363-.413-.052-1.083.518-1.083h15.494c.57 0 .88.619.518 1.083Z\",\n fill: \"#1C4566\",\n fillRule: \"nonzero\",\n stroke: \"#1C4566\",\n strokeWidth: 0.3\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"red\",\n cx: 1376.5,\n cy: 95.5,\n r: 3.5\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconFilterOn, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon_filter_on.6de198fd.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\nimport { ReactComponent as FiltersOff } from 'Images/icon_filter_off.svg';\nimport { ReactComponent as FiltersOn } from 'Images/icon_filter_on.svg';\n\nexport const DisabledFilterIcon = styled(FiltersOff)`\n height: 16px;\n`;\nDisabledFilterIcon.displayName = 'DisabledFilterIcon';\n\nexport const EnabledFilterIcon = styled(FiltersOn)`\n height: 16px;\n`;\nEnabledFilterIcon.displayName = 'EnabledFilterIcon';\n","import React from 'react';\nimport { PropTypes } from 'prop-types';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { showManageLeftFilters } from 'store/Manage/actions';\nimport { showHostLeftFilters } from 'store/Host/actions';\nimport { selectShowManageLeftFilters } from 'store/Manage/selectors';\nimport { selectShowHostLeftFilters } from 'store/Host/selectors';\nimport { selectIsFiltering } from 'store/Filters/selectors';\nimport IconButton from 'Common/Components/IconButton';\nimport { DisabledFilterIcon, EnabledFilterIcon } from './styled';\n\nconst FilterSideBarIcon = ({ entity }) => {\n const dispatch = useDispatch();\n const isFiltering = useSelector((state) => selectIsFiltering(entity, state));\n const showFilters = useSelector((state) => {\n if (entity === 'vulns') return selectShowManageLeftFilters(state);\n if (entity === 'assets') return selectShowHostLeftFilters(state);\n return false;\n });\n\n const setShowFilter = () => {\n if (entity === 'vulns') dispatch(showManageLeftFilters(true, false));\n else if (entity === 'assets') dispatch(showHostLeftFilters(true));\n };\n\n const setHideFilter = () => {\n if (entity === 'vulns') dispatch(showManageLeftFilters(false, false));\n else if (entity === 'assets') dispatch(showHostLeftFilters(false));\n };\n\n const handleClick = () => (showFilters ? setHideFilter() : setShowFilter());\n\n return (\n <>\n {!isFiltering && } title=\"Filters\" onClick={ handleClick } />}\n {isFiltering && } title=\"Filters\" onClick={ handleClick } />}\n \n );\n};\n\nFilterSideBarIcon.propTypes = {\n entity: PropTypes.string.isRequired\n};\n\nexport default FilterSideBarIcon;\n","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgReload = function SvgReload(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 19,\n height: 19,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#1C4566\",\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.6 1a8.6 8.6 0 0 1 8.6 8.6A8.6 8.6 0 1 1 9.6 1Zm0 1.119a7.48 7.48 0 1 0 0 14.962 7.48 7.48 0 0 0 0-14.962Z\",\n stroke: \"#1C4566\",\n strokeWidth: 0.5\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.201 3.684a.743.743 0 0 1 .61.328.662.662 0 0 1 .09.528.68.68 0 0 1-.236.366l-.094.064-.348.204.145.018c2.43.353 4.25 2.333 4.253 4.677l-.005.214c-.118 2.58-2.397 4.594-5.127 4.537-2.73-.058-4.914-2.166-4.91-4.747 0-.305.259-.55.576-.55.317 0 .576.244.576.549-.001 1.975 1.67 3.592 3.77 3.642 2.098.05 3.854-1.487 3.958-3.46.095-1.78-1.187-3.334-2.979-3.727l-.139-.027.207.127c.24.15.363.418.322.683l-.024.1a.728.728 0 0 1-.699.493.763.763 0 0 1-.305-.064l-.093-.048-2.17-1.347a.682.682 0 0 1-.33-.591.678.678 0 0 1 .263-.523L7.6 5.07l2.213-1.28a.797.797 0 0 1 .39-.107Z\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgReload, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/reload.0d7f0f5c.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\nimport { ReactComponent as RefreshImage } from 'Images/reload.svg';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const RefreshIcon = styled(RefreshImage)`\n`;\nRefreshIcon.displayName = 'RefreshIcon';\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport IconButton from 'Common/Components/IconButton';\nimport { RefreshIcon } from './styled';\nimport { getData } from 'store/Host/actions';\n\nconst RefreshButton = () => {\n const dispatch = useDispatch();\n\n const handleClick = () => (dispatch(getData()));\n\n return (\n } title=\"Refresh\" onClick={ handleClick } />\n );\n};\n\nexport default RefreshButton;\n","import styled from 'styled-components';\n\nconst Wrapper = styled.div`\n`;\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n","import React from 'react';\nimport {\n ContextMenuTrigger\n} from 'react-contextmenu';\nimport Wrapper from './styled';\n\nconst ContextMenuButton = ({\n opened, menu, trigger, display, icon\n}) => {\n if (!display) return null;\n return (\n \n \n {icon}\n \n {menu}\n \n );\n};\n\nexport default ContextMenuButton;\n","export default function matchField (field) {\n switch (field) {\n case 'host__os':\n return 'Asset Os';\n\n case 'easeofresolution':\n return 'Ease of Resolution';\n\n case 'status_code':\n return 'Status Code';\n\n case 'pname':\n return 'Param Name';\n\n case 'policyviolations':\n return 'Policy Violations';\n\n case 'external_id':\n return 'External Id';\n\n case 'create_date':\n return 'Created';\n\n case 'creation_time':\n return 'Creation Time';\n\n case 'last_modified':\n return 'Last Modified';\n\n case 'open_services':\n return 'Open Services';\n\n case 'severity_counts':\n return 'Important Vulnerabilities';\n\n case 'service__name':\n return 'Service';\n\n case 'update_date':\n return 'Updated';\n\n case 'risk':\n return 'Risk Score';\n\n default: {\n const fieldUpper = field.charAt(0).toUpperCase() + field.slice(1);\n return fieldUpper;\n }\n }\n}\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n width: 50%;\n background-color: #edf2f7;\n max-height: 511px; \n overflow: scroll;\n padding-left: 15px;\n padding-right: 5px;\n padding-top: 20px;\n //height: 511px; /*A ver hacer dinamico*/ \n ::-webkit-scrollbar {\n width: 5px;\n };\n ::-webkit-scrollbar-corner {\n background: inherit;\n }\n display: flex;\n flex-direction: column;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n &:first-child{\n margin-top: 25px;\n }\n \n`;\nWrapper.displayName = 'Wrapper';\n\nexport const ToAddColumn = styled.div`\n display: flex;\n justify-content: space-between;\n align-items:center;\n font-size: 12.5px;\n color: #1c2243;\n margin-bottom:10px;\n padding: 0 5px;\n\n`;\nToAddColumn.displayName = 'ToAddColumn';\n\nexport const Field = styled.p`\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n margin-right: 12px;\n`;\nField.displayName = 'Field';\n","import styled from 'styled-components';\nimport { ContextMenu } from 'react-contextmenu';\n\nexport const CustomContextMenu = styled(ContextMenu)`\n width: 518px;\n height: 608px;\n z-index: 2 !important;\n`;\nCustomContextMenu.displayName = 'CustomContextMenu';\n\nexport const Wrapper = styled.div`\n height: 100%;\n padding: 21px;\n display:flex;\n flex-direction: column;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Columns = styled.div`\n display: flex;\n flex: 1 1 0px;\n`;\nColumns.displayName = 'Columns';\n\nexport const AddedColumnsWrapper = styled.div`\n height: 100%;\n width: 50%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n overflow: scroll;\n`;\nAddedColumnsWrapper.displayName = 'AddedColumnsWrapper';\n\nexport const Icon = styled.img`\n width: 15px;\n height: 15px;\n margin-right: 5px;\n`;\nIcon.displayName = 'Icon';\n","import React from 'react';\nimport checkBox from 'Images/Checkbox_empty.svg';\nimport matchField from '../../helper';\nimport { ToAddColumn, Wrapper, Field } from './styled';\nimport { Icon } from '../../styled';\n\nconst NotIncludedList = ({ fields, setFieldVisibility }) => {\n const columnsNotIncluded = Object.keys(fields).filter((x) => fields[x].visible === false).sort();\n return (\n \n {columnsNotIncluded.map((field) => (\n { e.stopPropagation(); setFieldVisibility(field, true); } } key={ `context_menu_add_remove_column_${field}` } aria-label=\"Add Column\" role=\"button\" onKeyDown={ () => {} } type=\"button\" tabIndex=\"0\">\n {matchField(field)}\n \n \n ))}\n \n );\n};\n\nexport default NotIncludedList;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n overflow: scroll;\n flex: 1 1 0px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const ColumnsAddedList = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n margin-bottom: 0;\n`;\nColumnsAddedList.displayName = 'ColumnsAddedList';\n\nexport const AddedColumn = styled.li`\n list-style-type: none;\n display: flex;\n justify-content: space-between;\n align-items:center;\n border-bottom: 1px dashed #bbc8d6;\n font-size: 13.5px;\n color: #1c2243;\n height: 32px;\n width:95%;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n & p>img {\n display: none;\n height: 15px;\n width:auto;\n align-self: center;\n margin-right: 5px;\n margin-bottom: 2px;\n }\n & :hover>img {display: inline-block;}\n\n & p {\n max-width: 180px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n &:hover{\n background-color: #edf2f7;\n }\n\n`;\nAddedColumn.displayName = 'AddedColumn';\n\nexport const Icon = styled.img`\n width: 15px;\n height: 15px;\n margin-right: 5px;\n`;\nIcon.displayName = 'Icon';\n\nexport const FieldTitleLocked = styled.p`\n opacity: 0.75;\n`;\nFieldTitleLocked.displayName = 'FieldTitleLocked';\n\nexport const FieldTitle = styled.p`\n`;\nFieldTitle.displayName = 'FieldTitle';\n","import React from 'react';\nimport ReactDragListView from 'react-drag-listview/lib';\nimport checkbox from 'Images/Checkbox_ok.svg';\nimport drag from 'Images/drag.svg';\nimport get from 'lodash/get';\nimport matchField from '../../helper';\nimport { Icon } from '../../styled';\nimport {\n AddedColumn, ColumnsAddedList, Wrapper, FieldTitleLocked, FieldTitle\n} from './styled';\n\nconst DragList = ({\n fields, setFieldVisibility, setNewOrderColumns\n}) => {\n // TODO: cambiar props de context menu a draglist\n\n const handleHover = () => {\n const elements = document.querySelectorAll('[draggable=true]');\n\n if (elements.length > 0) {\n elements.forEach((e) => {\n e.removeAttribute('draggable');\n });\n }\n };\n\n const columnsNotIncluded = Object.keys(fields).filter((x) => fields[x].visible === true && get(fields, `${x}.locked`, false) && x !== 'selected');\n const columnsIncluded = Object.keys(fields).filter((x) => fields[x].visible === true && !get(fields, `${x}.locked`, false))\n .sort((a, b) => (fields[a].order < fields[b].order ? -1 : 1))\n .map((field) => (\n field\n ));\n\n const setNewOrderCol = (fromIndex, toIndex) => {\n const data = columnsIncluded;\n\n const item = data.splice(fromIndex, 1)[0];\n data.splice(toIndex, 0, item);\n setNewOrderColumns(data);\n };\n\n return (\n \n \n {columnsNotIncluded.map((item) => (\n \n \n {matchField(item)}\n \n \n ))}\n \n { setNewOrderCol(fromIndex, toIndex); } } lineClassName=\"border-draggable\">\n \n {columnsIncluded.map((item) => (\n \n \n { e.stopPropagation(); setFieldVisibility(item, false); } } />\n {matchField(item)}\n \n { e.stopPropagation(); setFieldVisibility(item, false); } } />\n \n ))}\n \n \n \n );\n};\n\nexport default DragList;\n","import styled from 'styled-components';\nimport BlueButton from 'Common/Components/BlueButton';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex: 0 0 31px;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 21px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const ButtonsWrapper = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n width: 50%;\n & > :not(:last-child) {\n margin-right: 10px;\n }\n`;\nButtonsWrapper.displayName = 'ButtonsWrapper';\n\nexport const CustomAttributeButton = styled(BlueButton)`\n flex: 1 1 0px;\n padding: 7px 16px;\n`;\nCustomAttributeButton.displayName = 'CustomAttributeButton';\n\nexport const ResetButton = styled(BlueButton)`\n flex: 0 0 31px;\n padding: 7px 16px;\n`;\nResetButton.displayName = 'ResetButton';\n\nexport const Title = styled.div`\n font-size: 17px;\n font-weight: 600;\n color: #1c2243;\n`;\nTitle.displayName = 'Title';\n","import React from 'react';\nimport { useIntl } from 'react-intl';\nimport get from 'lodash/get';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectIsAdmin } from 'store/Faraday/selectors';\nimport { selectLocation } from 'store/Router/selectors';\nimport { openModal } from 'store/modals/actions';\nimport { MODAL_CUSTOM_ATTRIBUTES } from 'store/modals/modals';\nimport {\n Wrapper, Title, ButtonsWrapper,\n CustomAttributeButton, ResetButton\n} from './styled';\n\nconst Header = ({ resetDefault }) => {\n const intl = useIntl();\n const dispatch = useDispatch();\n const isAdmin = useSelector(selectIsAdmin);\n const location = useSelector(selectLocation);\n const isManage = get(location, 'pathname', '').includes('/manage');\n const canShow = isAdmin && isManage;\n\n return (\n \n {intl.formatMessage({ id: 'workspaces.columnSelector.title' })}\n \n { canShow && dispatch(openModal(MODAL_CUSTOM_ATTRIBUTES)) } /> }\n \n \n \n );\n};\n\nexport default Header;\n","import styled from 'styled-components';\n\nimport { Icon } from '../../styled';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex: 0 0 38px;\n align-items: flex-start;\n margin-top: 20px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Text = styled.p`\n font-size: 12.5px;\n color: #90a9c0;\n flex: 1;\n`;\nText.displayName = 'Text';\n\nexport const IconHelp = styled(Icon)`\n margin: 2px 8px 0 0;\n`;\nIcon.displayName = 'Icon';\n","import React from 'react';\nimport { useIntl } from 'react-intl';\nimport HelpIcon from 'Images/noun-help.svg';\n\nimport { Wrapper, Text, IconHelp } from './styled';\n\nconst Help = () => {\n const intl = useIntl();\n return (\n \n \n {intl.formatMessage({ id: 'workspaces.columnSelector.text' })}\n \n );\n};\n\nexport default Help;\n","var _style, _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconActionBarEdit = function SvgIconActionBarEdit(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 17.5 16.5\",\n style: {\n enableBackground: \"new 0 0 17.5 16.5\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\\n\\t.st0{fill:#264D6D;}\\n\")), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M6.8,13.9l9.9-9.7l0,0C17,3.8,17.2,3.4,17.2,3c0-0.4-0.2-0.9-0.5-1.2l-1.3-1.3c-0.6-0.6-1.7-0.6-2.4,0 l-9.9,9.8l0,0l-0.4,4L6.8,13.9L6.8,13.9z M4.4,12.6l0.2-1.6l7.7-7.5l1.5,1.4l-7.7,7.5L4.4,12.6z M15.6,3C15.6,3,15.6,3,15.6,3 l-0.8,0.8l-1.5-1.4L14,1.6h0.1l0,0l0,0h0.1L15.6,3L15.6,3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M16.6,14.9H0.8c-0.4,0-0.8,0.3-0.8,0.8s0.3,0.8,0.8,0.8h15.8c0.4,0,0.8-0.3,0.8-0.8S17,14.9,16.6,14.9z\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconActionBarEdit, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon-action-bar-edit.a362c51d.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport NotIncludedList from './components/NotIncludedList';\nimport DragList from './components/DragList';\nimport Header from './components/Header';\nimport Help from './components/Help';\nimport {\n CustomContextMenu, Wrapper, Columns, AddedColumnsWrapper\n} from './styled';\n\n// TODO: toggle menu state\n\nconst EditColumnContext = ({\n trigger, toggle, fields, setFieldVisibility, setNewOrderColumns, resetDefault\n}) => (\n \n \n
\n \n e.stopPropagation() }>\n \n \n \n \n \n \n \n);\n\nexport default EditColumnContext;\n","var _style, _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconActionBarColumn = function SvgIconActionBarColumn(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 14.7 11.9\",\n style: {\n enableBackground: \"new 0 0 14.7 11.9\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\\n\\t.st0{fill:#1C4566;}\\n\")), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M1.5,4.5c-0.8,0-1.4,0.6-1.4,1.4s0.6,1.4,1.4,1.4s1.4-0.6,1.4-1.4S2.3,4.5,1.5,4.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M1.5,0C0.7,0,0.1,0.6,0.1,1.4s0.6,1.4,1.4,1.4s1.4-0.6,1.4-1.4S2.3,0,1.5,0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M1.5,9c-0.8,0-1.4,0.6-1.4,1.4s0.6,1.4,1.4,1.4s1.4-0.6,1.4-1.4S2.3,9,1.5,9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M5,2.6h8.5c0.7,0,1.2-0.5,1.2-1.2s-0.5-1.2-1.2-1.2H5c-0.7,0-1.2,0.6-1.2,1.2S4.3,2.6,5,2.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M13.5,4.7H5c-0.7,0-1.2,0.5-1.2,1.2S4.3,7.1,5,7.1h8.5c0.7,0,1.2-0.5,1.2-1.2C14.7,5.2,14.2,4.7,13.5,4.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M13.5,9.2H5c-0.7,0-1.2,0.5-1.2,1.2s0.5,1.2,1.2,1.2h8.5c0.7,0,1.2-0.5,1.2-1.2S14.2,9.2,13.5,9.2z\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconActionBarColumn, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon-action-bar-column.efe44a0e.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\nimport { ReactComponent as EditIcon } from 'Images/icon-action-bar-edit.svg';\nimport { ReactComponent as TrashIcon } from 'Images/icon-action-bar-trash.svg';\nimport { ReactComponent as ColumnIcon } from 'Images/icon-action-bar-column.svg';\nimport { ReactComponent as DownloadIcon } from 'Images/download-icon.svg';\n\nexport const EditColumns = styled(ColumnIcon).attrs({\n id: 'qa-edit-columns-vuln'\n})`\n height: 17px;\n`;\n\nEditColumns.displayName = 'EditColumns';\n\nexport const Trash = styled(TrashIcon).attrs({\n id: 'qa-delete-vuln'\n})`\n height: 17px;\n`;\n\nTrash.displayName = 'Trash';\n\nexport const Edit = styled(EditIcon).attrs({\n id: 'qa-edit-vuln'\n})`\n height: 17px;\n`;\n\nexport const Download = styled(DownloadIcon).attrs({\n id: 'qa-download-ws'\n})`\n height: 17px;\n`;\n\nEdit.displayName = 'Edit';\n","import React, { useState } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport ContextMenuButton from 'Common/Components/ContextMenuButton';\nimport IconButton from 'Common/Components/IconButton';\nimport EditColumnContext from 'Common/Components/EditColumnContext';\nimport { selectFields } from 'store/Preferences/host/selectors';\nimport { resetDefault, setFieldVisibility, setNewOrderColumns } from 'store/Preferences/host/actions';\nimport { EditColumns } from 'Screens/Manage/components/CustomActionBar/styled';\n\nconst AddRemoveColumnsButton = () => {\n const [showContext, toggleContext] = useState(false);\n const dispatch = useDispatch();\n const fields = useSelector(selectFields);\n\n const addRemoveColumns = (\n toggleContext(!showContext) }\n setFieldVisibility={ (fieldObj, value) => dispatch(setFieldVisibility(fieldObj, value)) }\n setNewOrderColumns={ (columns) => dispatch(setNewOrderColumns(columns)) }\n resetDefault={ () => dispatch(resetDefault()) }\n />\n );\n\n return (\n } title=\"More\" /> }\n />\n );\n};\n\nexport default AddRemoveColumnsButton;\n","import filter from 'lodash/filter';\nimport get from 'lodash/get';\nimport size from 'lodash/size';\nimport defaultFields from 'store/Host/fields';\nimport { updatePreferences } from 'store/Preferences/actions';\nimport { selectFields } from './selectors';\n\nexport function setFieldVisibility (field, value) {\n return async (dispatch, getState) => {\n let host_table = selectFields(getState());\n\n if (!host_table) host_table = { ...defaultFields };\n if (!host_table[field].locked) {\n host_table[field].visible = value;\n\n if (value) host_table[field].order = Object.keys(host_table).filter((key) => host_table[key].visible).length;\n else {\n let cont = 1;\n Object.keys(host_table).filter((f) => host_table[f].visible).sort((a, b) => (host_table[a].order < host_table[b].order)).forEach((f2) => {\n host_table[f2].order = cont;\n cont += 1;\n });\n }\n\n dispatch(updatePreferences({ host_table }));\n }\n };\n}\n\nexport function setNewOrderColumns (columns) {\n return async (dispatch, getState) => {\n let host_table = selectFields(getState());\n if (!host_table) host_table = { ...defaultFields };\n\n const fixedColumns = size(filter(host_table, { locked: true }));\n\n columns.forEach((column) => {\n if (column) {\n if (!get(host_table, `${column}.locked`, false)) {\n host_table[column].order = columns.indexOf(column) + 1 + fixedColumns;\n }\n }\n });\n\n dispatch(updatePreferences({ host_table }));\n };\n}\n\nexport function resetDefault () {\n return async (dispatch) => {\n dispatch(updatePreferences({ host_table: defaultFields }));\n };\n}\n","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport get from 'lodash/get';\nimport CreateActions from 'Screens/Host/components/CreateActions';\nimport { Wrapper, LeftGroup, RightGroup, Separator, Group } from 'Common/Components/CustomActionBar/styled';\nimport DeleteHostButton from './components/DeleteHostButton';\nimport EditHostButton from './components/EditHostButton';\nimport Pagination from 'Common/Components/Pagination';\nimport {\n toggleModalEditCreate,\n setPageNumberAssets\n} from 'store/Host/actions';\nimport { selectShowHostDetail } from 'store/HostDetail/selectors';\nimport { selectPage, selectRowsPerPage } from 'store/Filters/selectors';\nimport {\n selectHostCount,\n selectHostsSelected\n} from 'store/Host/selectors';\nimport DeleteConfirmationModal from './components/DeleteConfirmationModal';\nimport GroupBy from './components/GroupBy';\nimport FilterSideBarIcon from 'Screens/Manage/components/CustomActionBar/components/FilterSidebarIcon';\nimport RefreshButton from 'Screens/Host/components/RefreshButton';\nimport AddRemoveColumnsButton from './components/AddRemoveColumnsButton';\n\nconst ActionBar = () => {\n const dispatch = useDispatch();\n const readonly = useSelector((state) => get(state, 'faraday.readonly', false));\n const hostsSelected = useSelector(selectHostsSelected);\n const hostsCount = useSelector(selectHostCount);\n const isHostDetailVisible = useSelector(selectShowHostDetail);\n const page = useSelector((state) => selectPage('assets', state));\n const rowsPerPage = useSelector((state) => selectRowsPerPage('assets', state));\n const showHostsActionButtons = (!readonly && hostsSelected.length > 0 && !isHostDetailVisible);\n const onPrev = () => dispatch(setPageNumberAssets(page - 1));\n const onNext = () => dispatch(setPageNumberAssets(page + 1));\n const hasHosts = hostsCount > 0;\n const showGroupBy = hasHosts && (hostsSelected.length === 0) && !isHostDetailVisible;\n\n return (\n \n \n \n {!readonly && dispatch(toggleModalEditCreate(value)) } /> }\n { showHostsActionButtons &&\n <>\n \n \n \n \n \n \n \n }\n \n\n \n { showGroupBy && }\n { (hasHosts) && }\n { hasHosts &&\n \n \n \n \n }\n \n \n \n \n \n );\n};\n\nexport default ActionBar;\n","import styled, { css } from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as WarningIcon } from 'Images/exclamation_error.svg';\n\nconst errorStyle = css`\n box-shadow: 2px 2px 5px 0 rgb(0 0 0 / 6%), inset 0 -1px 0 0 ${colors.redPink};\n`;\n\nexport const TextArea = styled.textarea`\n width: 100%;\n height: 116px;\n border: 1px solid transparent;\n border-bottom: none;\n box-shadow: 2px 2px 5px 0 rgb(0 0 0 / 6%), inset 0 -1px 0 0 ${colors.grey30};\n background-color: ${(props) => (props.isEmpty ? colors.blue8 : colors.white)};\n ${(props) => (props.error ? errorStyle : '')};\n padding-left: 15px;\n padding-right: 15px;\n font-size: 14.5px;\n font-weight: 300;\n line-height: 1.85;\n display: inline-block;\n resize: none;\n &::-webkit-input-placeholder {\n color: ${colors.grey17};\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: 0.11px;\n }\n\n &::placeholder {\n font-size: 13px;\n font-weight: 300;\n }\n`;\n\nTextArea.displayName = 'TextArea';\n\nexport const Title = styled.span`\n text-align: left;\n font-size: 12.5px;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.08;\n letter-spacing: normal;\n margin-bottom: 1px;\n color: ${(props) => (props.boldTitle ? colors.darkBlueGrey : colors.grey17)};\n padding-left: ${(props) => (props.boldTitle ? '15px' : '')};\n`;\nTitle.displayName = 'Title';\n\nexport const Asterisk = styled.span`\n text-align: left;\n font-size: 12.5px;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.08;\n letter-spacing: normal;\n color: ${colors.redPink};\n margin-bottom: 1px;\n`;\nAsterisk.displayName = 'Asterisk';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n position: relative;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Texts = styled.div`\n display: flex;\n`;\nTexts.displayName = 'Texts';\n\nexport const ErrorMessage = styled.span`\n font-size: 10.5px;\n letter-spacing: 0.08px;\n color: ${colors.redPink};\n margin-left: 1px;\n margin-top: 8px;\n`;\nErrorMessage.displayName = 'ErrorMessage';\n\nexport const Warning = styled(WarningIcon)`\n position: absolute;\n right: 10px;\n top: 8px;\n`;\n\nWarning.displayName = 'Warning';\n","import React from 'react';\nimport PropType from 'prop-types';\nimport {\n TextArea, Title, Wrapper, Asterisk, Texts, ErrorMessage, Warning\n} from './styled';\n\nconst StandardTextAreaField = ({\n value, name, disabled, onChange, placeholder, title, mandatory, error, errorMessage, className, boldTitle\n}) => (\n \n \n {title && {title}}\n {mandatory && *}\n \n onChange(e.target.value) }\n isEmpty={ value.length === 0 }\n placeholder={ placeholder }\n error={ error }\n />\n {error && }\n {error && { errorMessage }}\n \n);\n\nStandardTextAreaField.defaultProps = {\n disabled: false,\n placeholder: '',\n mandatory: false,\n error: false,\n className: '',\n boldTitle: false\n};\n\nStandardTextAreaField.propTypes = {\n value: PropType.string.isRequired,\n name: PropType.string.isRequired,\n disabled: PropType.bool,\n onChange: PropType.func.isRequired,\n placeholder: PropType.string,\n mandatory: PropType.bool,\n error: PropType.bool,\n className: PropType.string,\n boldTitle: PropType.bool\n};\n\nexport default StandardTextAreaField;\n","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconModalAsset = function SvgIconModalAsset(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#000\",\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0v9h32V0H0Zm29.333 6.75H2.667v-4.5h26.666v4.5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5 5h1v1H5zM8 5h1v1H8zM13 5h1v1h-1zM0 22h32v-9H0v9Zm2.667-6.75h26.666v4.5H2.667v-4.5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5 16h1v1H5zM8 16h1v1H8zM13 16h1v1h-1zM17.333 24h-2.666v5.333H0V32h32v-2.667H17.333z\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconModalAsset, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon_modal_asset.f360b291.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { slideIn } from 'Styles/effects';\nimport {\n Wrapper as WrapperCustomList, DataItem, DataContainer, Text\n} from 'Common/Components/CustomList/styled';\nimport StandardTextField from 'Common/Components/StandardTextField';\nimport StandardTextAreaField from 'Common/Components/StandardTextAreaField';\nimport { ReactComponent as _ModalIcon } from 'Images/icon_modal_asset.svg';\n\nexport const Title = styled.div`\n font-size: 21.5px;\n font-stretch: normal;\n color: ${colors.blueCerulean};\n display: inline;\n width: fit-content;\n font-weight: 500;\n`;\nTitle.displayName = 'Title';\n\nexport const TitleContainer = styled.div`\n display: flex;\n`;\nTitleContainer.displayName = 'TitleContainer';\n\nexport const ModalIcon = styled(_ModalIcon)`\n margin-left: 20px;\n`;\n\nexport const Wrapper = styled.div`\n\n border-radius: 8px 8px 2px 2px;\n box-shadow: 0 2px 50px 0 rgba(0, 0, 0, 0.24);\n border: solid 1px #d6d6d6;\n background-color: #ffffff;\n border-top: 10px solid #419bf9;\n padding: 40px 30px;\n ${slideIn}\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const ModalBody = styled.div`\n margin-top: 24px;\n display: flex;\n`;\nModalBody.displayName = 'ModalBody';\n\nexport const ButtonsWrapper = styled.div`\n margin-left: auto;\n`;\nButtonsWrapper.displayName = 'ButtonsWrapper';\n\nexport const LeftSide = styled.div`\n width: 360px;\n display: inline-block;\n margin-right: 24px;\n padding-top: 8px;\n text-align: initial;\n\n textarea {\n resize: none;\n }\n\n & >:nth-child(2) {\n margin-top: 13px;\n }\n`;\nLeftSide.displayName = 'LeftSide';\n\nexport const RightSide = styled.div`\n width: 337px;\n display: inline-block;\n padding-top: 8px;\n text-align: initial;\n\n ${WrapperCustomList} {\n .input-list-title {\n font-weight: 400;\n color: ${colors.grey17};\n margin-bottom: 8px;\n }\n input {\n width: 287px;\n }\n }\n\n ${DataItem} {\n width: 287px !important;\n margin-top: 5px;\n\n ${Text} {\n max-width: 250px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n span {\n float: right;\n }\n }\n\n ${DataContainer} {\n max-height: 227px;\n overflow-y: scroll;\n overflow-x: hidden;\n width: 287px;\n margin-top: 5px;\n\n &::-webkit-scrollbar {\n width: 3px;\n height: 6px;\n }\n }\n`;\nRightSide.displayName = 'RightSide';\n\nconst Button = styled.button`\n width: 89px;\n height: 34px;\n border-radius: 2px;\n font-weight: 400;\n`;\n\nexport const CancelButton = styled(Button)`\n border: solid 1px ${colors.dark6};\n color: ${colors.dark2};\n background-color: white;\n margin-right: 8px;\n`;\nCancelButton.displayName = 'CancelButton';\n\nexport const CreateButton = styled(Button)`\n background-color: ${(props) => (props.disabled ? colors.grey20 : colors.blueCerulean)};\n color: white;\n border: 0;\n`;\nCreateButton.displayName = 'CreateButton';\n\nexport const ErrorMessage = styled.p`\n font-size: 14.5px;\n font-weight: 400;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.17;\n letter-spacing: normal;\n text-align: left;\n color: ${colors.redPink};\n float: left;\n`;\nErrorMessage.displayName = 'ErrorMessage';\n\nexport const WrapperField = styled.div`\n display: flex;\n align-items: center;\n margin-top: 21px;\n`;\nWrapperField.displayName = 'WrapperField';\n\nexport const TextWrapper = styled.div`\n display: flex;\n .ip {\n margin-right: 21px;\n }\n`;\nTextWrapper.displayName = 'TextWrapper';\n\nexport const TextField = styled(StandardTextField)`\n color: ${colors.grey17};\n font-weight: 400;\n font-size: 12.5px;\n margin-bottom: 0;\n display: block;\n width: ${(props) => (props.width ? props.width : '100%')};\n \n span {\n font-weight: 400;\n }\n input {\n box-shadow: ${(props) => (props.error ? 'inset 0 -1px 0 0 #ea3158' : 'inset 0 -1px 0 0 #afafaf')};\n }\n svg {\n top: 34px;\n }\n`;\nTextField.displayName = 'TextField';\n\nexport const Description = styled(StandardTextAreaField)`\n margin-top: 23px;\n span {\n color: ${colors.dark2};\n font-weight: 600;\n font-size: 13.5px;\n }\n textarea {\n height: 130px;\n margin-top: 3px;\n padding-top: 13px;\n background-color: ${(props) => (props.isEmpty ? colors.paleGrey : colors.white)};\n box-shadow: inset 0 -1px 0 0 #afafaf;\n }\n`;\nDescription.displayName = 'Description';\n\nexport const Label = styled.div`\n margin-left: 8px;\n font-size: 13.5px;\n`;\nLabel.displayName = 'Label';\n\nexport const HostnameTitle = styled.div`\n font-size: 13.5px;\n font-weight: 500;\n color: ${colors.dark2};\n margin-bottom: 16px;\n`;\nHostnameTitle.displayName = 'HostnameTitle';\n","import React, { useEffect, useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { useSelector, useDispatch } from 'react-redux';\nimport {\n setField, createUpdateHost, resetState\n} from 'store/HostEditCreate/actions';\nimport ModalWrapper from 'Common/Components/ModalWrapper';\nimport CustomList from 'Common/Components/CustomList';\nimport { toggleModalEditCreate } from 'store/Host/actions';\nimport { selectShowModalEditCreate } from 'store/Host/selectors';\nimport {\n selectHostEditCreateId, selectHostEditCreateIp, selectHostEditCreateOs,\n selectHostEditCreateMac, selectHostEditCreateDescription, selectHostEditCreateOwned,\n selectHostEditCreateHostnames, selectHostEditCreateErrorMessage\n} from 'store/HostEditCreate/selectors';\nimport CheckBox from 'Common/Components/Checkbox';\nimport {\n Title, TitleContainer, Wrapper, ModalBody,\n LeftSide, RightSide, CreateButton, CancelButton,\n ErrorMessage, WrapperField, Label, TextWrapper, TextField,\n ButtonsWrapper, Description, HostnameTitle, ModalIcon\n} from './styled';\n\nconst HostModalEditCreate = () => {\n const dispatch = useDispatch();\n const id = useSelector((state) => (selectHostEditCreateId(state)));\n const ip = useSelector((state) => (selectHostEditCreateIp(state)));\n const os = useSelector((state) => (selectHostEditCreateOs(state)));\n const mac = useSelector((state) => (selectHostEditCreateMac(state)));\n const description = useSelector((state) => (selectHostEditCreateDescription(state)));\n const owned = useSelector((state) => (selectHostEditCreateOwned(state)));\n const hostnames = useSelector((state) => (selectHostEditCreateHostnames(state)));\n const errorMessage = useSelector((state) => (selectHostEditCreateErrorMessage(state)));\n const showModalEditCreate = useSelector((state) => (selectShowModalEditCreate(state)));\n const [isValidMacAddress, setIsValidMacAddress] = useState(true);\n const validateMacAddress = (str) => {\n // eslint-disable-next-line prefer-regex-literals\n const regex = new RegExp('^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})|([0-9a-fA-F]{4}\\\\.[0-9a-fA-F]{4}\\\\.[0-9a-fA-F]{4})$');\n setIsValidMacAddress(!!regex.test(str));\n };\n\n const onChange = (value) => {\n dispatch(setField('mac', value));\n if (value === '') setIsValidMacAddress(true);\n else validateMacAddress(value);\n };\n\n useEffect(() => () => dispatch(resetState()), [dispatch]);\n\n const onAddHostname = (value) => dispatch(setField('hostnames', [...hostnames, value]));\n\n const onRemoveHostname = (indexToRemove) => {\n const newHostnames = hostnames.filter((item, index) => index !== indexToRemove);\n dispatch(setField('hostnames', newHostnames));\n };\n\n return showModalEditCreate && (\n \n \n \n {id ? <FormattedMessage id=\"edit\" /> : <FormattedMessage id=\"host.creation.title\" />}\n \n { dispatch(toggleModalEditCreate(false)); dispatch(resetState()); } } id=\"cancelButton\">\n \n \n dispatch(createUpdateHost()) } id=\"createButton\">{id ? : }\n \n \n \n \n \n \n dispatch(setField('ip', value)) } className=\"ip\" />\n dispatch(setField('os', value)) } />\n \n \n dispatch(setField('description', value)) } isEmpty={ !description.length } />\n \n dispatch(setField('owned', !owned)) } state={ owned } />\n \n \n \n \n Add Hostnames\n \n \n \n {errorMessage && errorMessage.length > 0 ? {errorMessage} : null}\n \n \n );\n};\n\nexport default HostModalEditCreate;\n","import get from 'lodash/get';\nimport initialState from './initialState';\n\nexport const selectHostEditCreateId = (state) => get(state, 'hostEditCreate.id', initialState.id);\nexport const selectHostEditCreateIp = (state) => get(state, 'hostEditCreate.ip', initialState.ip);\nexport const selectHostEditCreateOs = (state) => get(state, 'hostEditCreate.os', initialState.os);\nexport const selectHostEditCreateMac = (state) => get(state, 'hostEditCreate.mac', initialState.mac);\nexport const selectHostEditCreateDescription = (state) => get(state, 'hostEditCreate.description', initialState.description);\nexport const selectHostEditCreateOwned = (state) => get(state, 'hostEditCreate.owned', initialState.owned);\nexport const selectHostEditCreateHostnames = (state) => get(state, 'hostEditCreate.hostnames', initialState.hostnames);\nexport const selectHostEditCreateErrorMessage = (state) => get(state, 'hostEditCreate.errorMessage', initialState.errorMessage);\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const TabList = styled.div`\n text-align: left;\n`;\nTabList.displayName = 'TabList';\n\nexport const TabListContent = styled.div`\n display: block;\n overflow: auto;\n`;\nTabListContent.displayName = 'TabListContent';\n","import styled from 'styled-components';\n\nconst Wrapper = styled.div`\n display: inline-block;\n padding: 0.5rem 0.75rem;\n font-size: 13.5px;\n cursor: pointer;\n ${({ active }) => active && `\n border-bottom: 2px solid #419bf9;\n color: #419bf9;\n font-weight: 500;\n `}\n`;\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Wrapper from './styled';\n\nclass Tab extends Component {\n constructor (props) {\n super(props);\n\n this.onClick = this.onClick.bind(this);\n }\n\n onClick () {\n const { title, onClick } = this.props;\n onClick(title);\n }\n\n render () {\n const {\n onClick,\n props: { activeTab, title }\n } = this;\n\n return (\n \n {title}\n \n );\n }\n}\nTab.propTypes = {\n activeTab: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired\n};\n\nexport default Tab;\n","/* eslint-disable react/destructuring-assignment */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { Wrapper, TabList, TabListContent } from './styled';\nimport Tab from './Tab';\n\nclass Tabs extends Component {\n constructor (props) {\n super(props);\n\n this.state = {\n activeTab: this.props.children[0].props.title\n };\n\n this.onClickTabItem = this.onClickTabItem.bind(this);\n }\n\n onClickTabItem (tab) {\n this.setState({ activeTab: tab });\n }\n\n render () {\n const {\n onClickTabItem,\n props: { children },\n state: { activeTab }\n } = this;\n\n return (\n \n \n {children.map((child) => {\n const { title } = child.props;\n return (\n \n );\n })}\n \n \n {children.map((child) => {\n if (child.props.title !== activeTab) return undefined;\n return child;\n })}\n \n \n );\n }\n}\n\nTabs.propTypes = {\n children: PropTypes.instanceOf(Array).isRequired\n};\nexport default Tabs;\n","import styled from 'styled-components';\nimport { slideInLeft } from 'Styles/effects';\n\nexport const Wrapper = styled.div`\n background-color: #fafbfc;\n position: absolute;\n bottom: 0;\n right: 0;\n width: 75%;\n height: calc(100% - 43px);\n padding: 30px;\n z-index: 1;\n ${slideInLeft};\n `;\nWrapper.displayName = 'Wrapper';\n\nexport const Close = styled.div`\n height: 37px;\n width: 37px;\n background-color: #edf2f7;\n border-radius: 50%;\n display: inline-block;\n cursor: pointer;\n float: right;\n &:after, &:before {\n content: '';\n margin: 10px;\n height: 4px;\n display: block;\n border-radius: 2px;\n background-color: #63758d;\n }\n &:after {\n transform: translateY(-7px) rotate(-135deg);\n }\n &:before {\n transform: translateY(7px) rotate(135deg);\n }\n`;\nClose.displayName = 'Close';\n\nexport const Hostnames = styled.div`\n text-align: left;\n margin: 10px 0px;\n`;\nHostnames.displayName = 'Hostnames';\n\nexport const Hostname = styled.div`\n border-radius: 2px;\n background-color: #e3e7ec;\n font-family: SequelSans-RomanHead;\n font-size: 13.5px;\n line-height: 24px;\n letter-spacing: normal;\n color: #1c2243;\n display: inline-block;\n margin-right: 14px;\n padding: 0 10px;\n cursor: pointer;\n`;\nHostname.displayName = 'Hostname';\n\nexport const VulnsGrouped = styled.div`\n border-radius: 2px;\n`;\nVulnsGrouped.displayName = 'VulnsGrouped';\n\nexport const PaginationWrapper = styled.div`\n position: absolute;\n top: 0;\n`;\nPaginationWrapper.displayName = 'PaginationWrapper';\n","import styled from 'styled-components';\nimport get from 'lodash/get';\nimport colors from 'Styles/colors';\n\nconst severityMapColors = {\n critical: colors.warmPurple,\n high: colors.red3,\n info: colors.grey2,\n low: colors.green1,\n med: colors.orange1,\n unclasified: colors.grey4\n};\n\nconst statusMapColors = {\n 'open': colors.warmPurple,\n 'risk-accepted': colors.green1,\n 're-opened': colors.grey1,\n 'closed': colors.grey1\n};\n\nexport const Wrapper = styled.div`\n /* position: relative; */\n display: flex;\n flex-direction: column;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n\nexport const Status = styled.div`\n color: ${(props) => get(statusMapColors, [props.value], colors.grey1)};\n font-weight: bold;\n font-size: 12.5px;\n text-transform: capitalize;\n font-weight: 500;\n`;\nStatus.displayName = 'Status';\n\nexport const Severity = styled.div`\n background: ${(props) => get(severityMapColors, [props.level], colors.grey1)};\n text-transform: uppercase;\n font-weight: 600;\n color: #ffffff;\n text-align: center;\n width: 27px;\n line-height: 19px;\n border-radius: 2px;\n box-shadow: inset 0 0 12px 0 rgba(0, 0, 0, 0.13);\n font-size: 9px;\n font-weight: 900;\n border-radius: 4px;\n width: 24px;\n height: 18px;\n margin-bottom: 2px;\n`;\nSeverity.displayName = 'Severity';\n\nexport const DateRow = styled.div`\n font-weight: 500;\n`;\nDateRow.displayName = 'DateRow';\n\nexport const RowName = styled.div`\n font-weight: 600;\n cursor: pointer;\n color: ${colors.dark2};\n`;\nRowName.displayName = 'RowName';\n\nexport const PaginationWrapper = styled.div`\n margin-left: auto;\n margin-bottom: 10px;\n`;\nPaginationWrapper.displayName = 'PaginationWrapper';\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport { setFilter } from 'store/Filters/actions';\nimport { DASHBOARD_FILTERS } from 'store/Filters/constants';\nimport { redirect } from 'store/Router/actions';\nimport { RowName } from '../Vulnerabilities/styled';\n\nconst Name = ({ vuln }) => {\n const dispatch = useDispatch();\n const workspaceSelected = useSelector(selectCurrentWorkspace);\n\n const onClick = () => {\n dispatch(setFilter('vulns', DASHBOARD_FILTERS.vulnerabilityById(vuln._id)));\n dispatch(redirect(`/manage/${workspaceSelected}/${vuln._id}`));\n };\n\n return {vuln.name};\n};\n\nexport default Name;\n","import styled from 'styled-components';\n\nexport const Text = styled.p`\n font-size: 13.5px;\n color: #53686f;\n font-weight: ${({ confirmed }) => (confirmed ? '600' : 'normal')}; \n cursor: pointer;\n &:hover {\n text-decoration: underline;\n }\n`;\nText.displayName = 'Text';\n\nexport default Text;\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgArrowDown = function SvgArrowDown(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 10,\n height: 6,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.472 5.366.22 1.709a.582.582 0 0 1 0-.912L.927.19a.835.835 0 0 1 1.06 0L5 2.782 8.013.19a.835.835 0 0 1 1.06 0l.707.607a.582.582 0 0 1 0 .912L5.528 5.366a.83.83 0 0 1-1.056 0Z\",\n fill: \"#90A9C0\",\n fillRule: \"nonzero\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgArrowDown, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/arrow-down.d8661d88.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport Skeleton from 'Common/Components/Skeleton';\nimport { redirectToVulnDetail, selectRow, unSelectAll } from 'store/Manage/actions';\nimport { Text } from './styled';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const Name = ({\n showSkeleton, groupBy, isPivot, vuln\n}) => {\n const dispatch = useDispatch();\n const handleClick = (e) => {\n dispatch(unSelectAll());\n dispatch(selectRow(e, vuln));\n dispatch(redirectToVulnDetail(vuln._id));\n };\n\n if (showSkeleton) return ;\n if (groupBy && isPivot) return null;\n return {vuln.name};\n};\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectRow, unselectTotalVulns } from 'store/Manage/actions';\nimport Checkbox from 'Common/Components/Checkbox';\nimport { selectVulnsSelected } from 'store/Manage/selectors';\n\nexport const CheckColum = ({ vuln }) => { // eslint-disable-line import/prefer-default-export\n const vulnsSelected = useSelector((state) => selectVulnsSelected(state));\n const dispatch = useDispatch();\n const isSelected = vulnsSelected.find((vulnSelected) => vulnSelected._id === vuln._id);\n const handleClick = (e) => {\n dispatch(unselectTotalVulns());\n dispatch(selectRow(e, vuln));\n };\n return (\n
\n \n
\n );\n};\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Backdrop = styled.div`\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 3;\n`;\nBackdrop.displayName = 'PopupBackdrop';\n\nexport const Dropdown = styled.div`\n background-color: #ffffff;\n border-radius: 3px;\n box-shadow: 0 2px 50px 0 rgba(28, 34, 67, 0.1);\n display: flex;\n flex-direction: column;\n height: 118px;\n max-width: 171px;\n overflow: hidden;\n position: absolute;\n top: 27px;\n z-index: 4;\n padding-top: 8px;\n padding-bottom: 8px;\n`;\n\nexport const DropdownOptionLabel = styled.div`\n cursor: pointer;\n height: 34px;\n padding-right: 13px;\n padding-left: 21px;\n font-size: 13.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.52;\n letter-spacing: normal;\n color: #1c2243;\n text-align: left;\n text-transform: none;\n\n &:hover{\n background-color: ${colors.iceBlue};\n }\n`;\n","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgSort = function SvgSort(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 7,\n height: 11,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#90A9C0\",\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.13 10.864.154 8.23a.426.426 0 0 1 0-.656l.495-.438a.572.572 0 0 1 .742 0L3.5 9.003l2.11-1.867a.572.572 0 0 1 .741 0l.495.438a.426.426 0 0 1 0 .656L3.87 10.864a.57.57 0 0 1-.74 0ZM3.87.136 6.846 2.77a.426.426 0 0 1 0 .656l-.495.438a.572.572 0 0 1-.742 0L3.5 1.997 1.39 3.864a.572.572 0 0 1-.741 0l-.495-.438a.426.426 0 0 1 0-.656L3.13.136a.57.57 0 0 1 .74 0Z\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgSort, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/sort.062a68ce.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch } from 'react-redux';\nimport { selectAllVulns, selectConfirmedVulns, selectNotConfirmedVulns } from 'store/Manage/actions';\nimport { Dropdown, DropdownOptionLabel, Backdrop } from './styled';\n\nconst ConfirmedDropdown = ({ show, hideDropdown }) => {\n const dispatch = useDispatch();\n const select = (type) => {\n if (type === 'all') dispatch(selectAllVulns());\n if (type === 'confirmed') dispatch(selectConfirmedVulns());\n if (type === 'notConfirmed') dispatch(selectNotConfirmedVulns());\n hideDropdown();\n };\n\n return show && (\n <>\n \n \n select('all') }\n children=\"All\"\n />\n select('confirmed') }\n children=\"Confirmed\"\n />\n select('notConfirmed') }\n children=\"Not Confirmed\"\n />\n \n \n );\n};\n\nConfirmedDropdown.propTypes = {\n show: PropTypes.bool.isRequired,\n hideDropdown: PropTypes.func.isRequired\n};\n\nexport default ConfirmedDropdown;\n","import React, { useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectAllVulns } from 'store/Manage/actions';\nimport Checkbox from 'Common/Components/Checkbox';\nimport { allVulnsAreSelected, someVulnIsSelected } from 'store/Manage/selectors';\nimport styled from 'styled-components';\nimport { ReactComponent as ArrowIcon } from 'Images/arrow-down.svg';\nimport ConfirmedDropdown from './ConfirmedDropdown';\n\nconst Arrow = styled(ArrowIcon)`\n margin: auto auto auto 8px;\n`;\n\nconst ArrowContainer = styled.div`\n height: 15px;\n`;\n\nconst CheckHeaderContainer = styled.div`\n display: flex;\n flex-direction: row;\n`;\n\nexport const CheckHeader = () => { // eslint-disable-line import/prefer-default-export\n const allVulnsSelected = useSelector(allVulnsAreSelected);\n const someVulnSelected = useSelector(someVulnIsSelected);\n const dispatch = useDispatch();\n const [showDropdown, setShowDropdown] = useState(false);\n const handleClick = () => {\n dispatch(selectAllVulns());\n };\n\n return (\n \n \n setShowDropdown(!showDropdown) }>\n \n \n setShowDropdown(false) } />\n \n );\n};\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport FlagIcon from 'Common/Components/FlagIcon';\nimport { updateVuln } from 'store/Manage/actions';\nimport { updateVulnFromAsset } from 'store/HostDetail/actions';\n\nexport const Confirm = ({ vuln, onAsset = false }) => { // eslint-disable-line import/prefer-default-export\n const dispatch = useDispatch();\n const confirm = (value) => {\n if (onAsset) {\n dispatch(updateVulnFromAsset(vuln, 'confirmed', value));\n } else {\n dispatch(updateVuln(vuln, 'confirmed', value));\n }\n };\n\n return (vuln.status && vuln.name && vuln.confirmed\n ? (\n confirm(false) }\n aria-label=\"Confirmed\"\n />\n )\n : (\n { confirm(true); } }\n aria-label=\"Not Confirmed\"\n />\n )\n );\n};\n","import React from 'react';\nimport { PropTypes } from 'prop-types';\nimport SeverityIcon from 'Common/Components/SeverityIcon';\n\nexport const Severity = ({ vuln }) => { // eslint-disable-line import/prefer-default-export\n const parsedSeverity = () => {\n if (vuln.severity === 'info') return 'informational';\n if (vuln.severity === 'med') return 'medium';\n return vuln.severity;\n };\n\n const capitalizedSeverity = vuln.severity && parsedSeverity()[0].toUpperCase() + parsedSeverity().substring(1);\n const severityLetter = vuln.severity ? vuln.severity.charAt(0).toUpperCase() : '';\n return { severityLetter };\n};\n\nSeverity.propTypes = {\n vuln: PropTypes.object.isRequired\n};\n","import styled from 'styled-components';\n\nexport const Capitalized = styled.p`\n text-transform: capitalize;\n`;\n\nexport const Text = styled.div`\n display: ${({ show }) => (show ? 'block' : 'none')};\n font-size: 14px;\n font-weight: 600;\n color: #1c4566;\n margin-left: 14px;\n max-width: 400px !important;\n text-overflow: ellipsis;\n overflow: hidden;\n margin-bottom: 2px;\n`;\n\nexport const Content = styled.div`\n color: #1c2243;\n display: flex;\n justify-content: center;\n align-items: center;\n\n & p{\n display: inline-block;\n font-size: 14px;\n font-weight: 600;\n color: #1c4566;\n letter-spacing: -0.1px;\n margin-left: 14px;\n max-width: 400px !important;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n & div {\n margin-left: 14px;\n }\n`;\n","/* eslint-disable import/prefer-default-export */\nimport React from 'react';\nimport { PropTypes } from 'prop-types';\nimport get from 'lodash/get';\nimport {\n FaAngleDown as Expand,\n FaAngleUp as Unexpand\n} from 'react-icons/fa';\nimport { Content, Capitalized, Text } from './styled';\nimport { Severity } from '..';\n\nexport const Expander = ({\n isFetching, isExpanded, original, group_by\n}) => {\n const count = get(original, 'count', 0);\n const vulnsCountString = `(${count})`;\n const isGroupingBy = (field) => group_by === field;\n const ExpandIcon = () => (isExpanded ? : );\n const FieldText = () => {\n if (isFetching) return null;\n if (isGroupingBy('severity')) return ;\n if (isGroupingBy('status')) return ;\n if (isGroupingBy('cve_instances__name')) {\n return (\n <>\n

\n

\n \n );\n }\n return

{original[group_by]}

;\n };\n\n return (\n \n \n \n \n \n );\n};\n\nExpander.propTypes = {\n isFetching: PropTypes.bool.isRequired,\n isExpanded: PropTypes.bool.isRequired,\n original: PropTypes.object.isRequired,\n group_by: PropTypes.string.isRequired\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { ReactComponent as Sort } from 'Images/sort.svg';\n\nconst Icon = styled.svg`\n width: 34px;\n height: 24px;\n padding-left: 13.5px;\n padding-right: 13.5px;\n padding-top: 5.5px;\n padding-bottom: 5.5px;\n `;\n\n// eslint-disable-next-line import/prefer-default-export\nexport const SeverityHeader = () => (\n \n \n \n);\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n &> :not(:last-child) {\n margin-right: 7px;\n &::after{\n content: \",\";\n }\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Link = styled.a`\n font-size: 13.5px;\n color: ${colors.blueCerulean};\n cursor: pointer;\n text-decoration: none;\n`;\nLink.displayName = 'Link';\n","/* eslint-disable import/prefer-default-export */\nimport React from 'react';\nimport { oneOfType, PropTypes } from 'prop-types';\nimport get from 'lodash/get';\nimport Skeleton from 'Common/Components/Skeleton';\nimport { Wrapper, Link } from './styled';\n\nexport const CVE = ({ vuln, showSkeleton }) => {\n const cves = get(vuln, 'cve', []);\n\n if (showSkeleton) return ;\n return (\n \n {cves.map((cve) => (\n \n ))}\n \n\n );\n};\n\nCVE.propTypes = {\n vuln: oneOfType([PropTypes.object, PropTypes.number]).isRequired,\n showSkeleton: PropTypes.bool.isRequired\n};\n","import styled from 'styled-components';\n\nconst Text = styled.span`\n text-transform: ${(props) => (props.capitalize ? 'capitalize' : 'none')};\n`;\n\nexport default Text;\n","import React from 'react';\nimport { PropTypes } from 'prop-types';\nimport get from 'lodash/get';\nimport Skeleton from 'Common/Components/Skeleton';\nimport Text from './styled';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const GenericCell = ({\n rowInfo, attrib, defVal, capitalize, showSkeleton\n}) => {\n const label = get(rowInfo, `original.${attrib}`, defVal);\n if (showSkeleton) return ;\n return (\n \n { label }\n \n );\n};\n\nGenericCell.propTypes = {\n rowInfo: PropTypes.object.isRequired,\n attrib: PropTypes.string.isRequired,\n defVal: PropTypes.string,\n capitalize: PropTypes.bool,\n showSkeleton: PropTypes.bool\n};\n\nGenericCell.defaultProps = {\n defVal: '',\n capitalize: false,\n showSkeleton: false\n};\n","import styled from 'styled-components';\n\nconst Text = styled.span`\n text-transform: capitalize;\n`;\n\nexport default Text;\n","\nimport React from 'react';\nimport { PropTypes } from 'prop-types';\nimport get from 'lodash/get';\nimport Skeleton from 'Common/Components/Skeleton';\nimport Text from './styled';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const Impact = ({ rowInfo, showSkeleton }) => {\n const impact = get(rowInfo, 'original.impact', {});\n const keys = Object.keys(impact);\n const filteredImpacts = keys.filter((key) => impact[key]).sort();\n const commaSeparatedImpacts = filteredImpacts.join(', ');\n\n if (showSkeleton) return ;\n return ;\n};\n\nImpact.propTypes = {\n rowInfo: PropTypes.object.isRequired,\n showSkeleton: PropTypes.bool\n};\n\nImpact.defaultProps = {\n showSkeleton: false\n};\n","/* eslint-disable import/prefer-default-export */\nimport styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nconst sevColor = {\n critical: colors.warmPurple,\n high: colors.redPink,\n medium: colors.tangerine,\n low: colors.apple,\n informational: colors.grey2,\n disable: '#d6d6d6'\n};\n\nexport const Wrapper = styled.div`\n color: ${({ color }) => color ? sevColor[color] : 'normal'};}\n font-size: 12px;\n font-weight: bold;\n`;\nWrapper.displayName = 'Wrapper';\n","/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport FlagIcon from 'Common/Components/FlagIcon';\nimport DateFormatter from 'Common/Components/DateFormatter';\nimport Skeleton from 'Common/Components/Skeleton';\nimport {\n Severity, Status, DateRow\n} from './styled';\nimport Name from '../Name';\nimport { Confirm } from 'Screens/Manage/components/ManageTable/components/Table/columns';\n\nexport default function getColumns (fields, isFetching) {\n const alias = 'host.detail.vulnerabilities.table.columns';\n const columns = [{\n Header: () => (\n \n ),\n maxWidth: 40,\n id: 'id',\n show: fields.id,\n Cell: (rowInfo) => (\n isFetching ? : rowInfo.original.id\n )\n }, {\n Header: () => (\n
\n ),\n accessor: 'severity',\n maxWidth: 55,\n minWidth: 55,\n id: 'severity',\n resizable: true,\n show: fields.severity,\n Cell: (rowInfo) => {\n const parsedSeverity = () => {\n if (rowInfo.original.severity === 'info') return 'informational';\n if (rowInfo.original.severity === 'med') return 'medium';\n return rowInfo.original.severity;\n };\n\n const capitalizedSeverity = rowInfo.original.severity && (parsedSeverity()[0].toUpperCase() + parsedSeverity().substring(1));\n const severityLetter = rowInfo.original.severity ? rowInfo.original.severity.charAt(0) : '';\n\n return (\n isFetching\n ? \n : (\n \n { severityLetter }\n \n )\n );\n }\n }, {\n Header: () => (\n \n ),\n accessor: 'confirmed',\n maxWidth: 45,\n minWidth: 45,\n id: 'confirmed',\n resizable: true,\n show: fields.confirmed,\n Cell: (rowInfo) => (\n // isFetching ? : \n isFetching ? : \n ),\n getProps: () => ({ 'column-type': 'confirmation' })\n }, {\n Header: () => (\n \n ),\n accessor: 'name',\n maxWidth: 300,\n id: 'name',\n show: fields.name,\n Cell: (rowInfo) => (\n isFetching ? : \n )\n }, {\n Header: () => (\n \n ),\n accessor: 'create_date',\n id: 'create_date',\n show: fields.date,\n Cell: (rowInfo) => {\n if (isFetching) return ;\n if (rowInfo.original.date) {\n return (\n \n \n \n );\n }\n return '';\n },\n maxWidth: 130\n }, {\n Header: () => (\n \n ),\n accessor: 'status',\n id: 'status',\n show: fields.status,\n Cell: (rowInfo) => (\n isFetching ? : {rowInfo.original.status}\n ),\n maxWidth: 130\n }];\n\n return columns;\n}\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport CustomReactTable from 'Common/Components/CustomReactTable/styled';\nimport { FormattedMessage } from 'react-intl';\nimport { setOrderByVulnsAssets, setPageNumberVulnAssets } from 'store/HostDetail/actions';\nimport { selectVulns, selectIsFetching, selectFields, selectHostDetail, selectVulnsCount } from 'store/HostDetail/selectors';\nimport { selectPage, selectRowsPerPage } from 'store/Filters/selectors';\nimport getColumns from './Columns';\nimport { Wrapper, PaginationWrapper } from './styled';\nimport Pagination from 'Common/Components/Pagination';\n\nconst Vulnerabilities = () => {\n const isFetching = useSelector(selectIsFetching);\n const vulns = useSelector(selectVulns);\n const fields = useSelector(selectFields);\n const dispatch = useDispatch();\n const data = useSelector(selectHostDetail);\n const vulnsCount = useSelector(selectVulnsCount);\n const page = useSelector((state) => selectPage('vulnsAssets', state));\n const rowsPerPage = useSelector((state) => selectRowsPerPage('vulnsAssets', state));\n const onPrev = () => dispatch(setPageNumberVulnAssets(page - 1, data.ip));\n const onNext = () => dispatch(setPageNumberVulnAssets(page + 1, data.ip));\n const customStyle = { height: 'calc(100vh - 306px)' };\n\n const fetchData = (state) => {\n const { sorted } = state;\n if (!isFetching) {\n dispatch(setOrderByVulnsAssets(sorted, data.ip));\n }\n };\n\n const mockData = [...Array(15).keys()];\n\n return (\n \n { vulns &&\n \n \n \n }\n }\n style={ customStyle }\n />\n \n );\n};\n\nexport default Vulnerabilities;\n\n// {\"offset\":0,\"limit\":50,\"order_by\":[{\"field\":\"confirmed\",\"direction\":\"desc\"},{\"field\":\"severity\",\"direction\":\"desc\"}]}\n\n// {\"offset\":0,\"limit\":50,\"order_by\":[{\"field\":\"severity\",\"direction\":\"desc\"}]}\n","import get from 'lodash/get';\n\nconst setOrderServices = (sorted, data) => {\n const desc = get(sorted, 'length', 0) > 0 && sorted[0].desc;\n const field = get(sorted, 'length', 0) > 0 && sorted[0].id;\n\n let servicesSorted = {};\n if (desc) {\n servicesSorted = data.sort((a, b) => b[field] - a[field]);\n } else {\n servicesSorted = data.sort((a, b) => a[field] - b[field]);\n }\n return servicesSorted;\n};\n\nexport default setOrderServices;\n","import get from 'lodash/get';\nimport styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nconst statusMapColors = {\n 'opened': colors.warmPurple,\n 'risk-accepted': colors.green1,\n 're-opened': colors.grey1,\n 'closed': colors.grey1\n};\n\nconst Status = styled.div`\n color: ${(props) => get(statusMapColors, [props.value], colors.grey1)};\n font-weight: bold;\n font-size: 12.5px;\n text-transform: capitalize;\n`;\nStatus.displayName = 'Status';\n\nexport default Status;\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport Skeleton from 'Common/Components/Skeleton';\nimport Status from './styled';\n\nexport default function getColumns (fields, isFetching) {\n const alias = 'host.detail.services.table.columns';\n const columns = [{\n Header: () => (\n \n ),\n maxWidth: 150,\n minWidth: 150,\n id: 'id',\n show: fields.id,\n Cell: ({ original }) => (\n isFetching ? : original.id\n )\n }, {\n Header: () => (\n \n ),\n accessor: 'name',\n maxWidth: 150,\n minWidth: 150,\n id: 'name',\n show: fields.name,\n Cell: ({ original }) => (\n isFetching ? : original.name\n )\n }, {\n Header: () => (\n \n ),\n accessor: 'version',\n maxWidth: 80,\n minWidth: 80,\n id: 'version',\n show: fields.version,\n Cell: ({ original }) => (\n isFetching ? : original.version\n )\n }, {\n Header: () => (\n \n ),\n accessor: 'port',\n maxWidth: 50,\n minWidth: 50,\n id: 'port',\n show: fields.port,\n Cell: ({ original }) => (\n isFetching ? : original.port\n )\n }, {\n Header: () => (\n \n ),\n accessor: 'protocol',\n maxWidth: 80,\n minWidth: 80,\n id: 'protocol',\n show: fields.protocol,\n Cell: ({ original }) => (\n isFetching ? : original.protocol\n )\n }, {\n Header: () => (\n \n ),\n accessor: 'status',\n id: 'status',\n show: fields.status,\n Cell: ({ original }) => (\n isFetching ? : {original.status}\n ),\n maxWidth: 130\n }, {\n Header: () => (\n \n ),\n accessor: 'vulns',\n maxWidth: 80,\n minWidth: 80,\n id: 'vulns',\n show: fields.vulns,\n Cell: ({ original }) => (\n isFetching ? : original.vulns\n )\n }, {\n Header: () => (\n \n ),\n accessor: 'owned',\n maxWidth: 120,\n minWidth: 120,\n id: 'owned',\n show: fields.owned,\n Cell: ({ original }) => {\n if (isFetching) return ;\n if (original.owned) return ;\n return ;\n }\n }];\n\n return columns;\n}\n","import AddButton from 'Common/Components/AddButton';\nimport styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n margin-top: 10px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const AddServiceButton = styled(AddButton)`\n margin-top: 21px;\n width: 110px;\n`;\n\nexport default Wrapper;\n","import get from 'lodash/get';\n\nconst getTrProps = (state, rowInfo, onSelectService) => {\n const selectedService = get(rowInfo, 'original', null);\n\n if (selectedService) {\n return {\n onDoubleClick: () => {\n onSelectService(selectedService);\n }\n };\n }\n return {};\n};\n\nexport default getTrProps;\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { getServices, selectService } from 'store/HostDetail/actions';\nimport {\n selectIsFetchingServices, selectServices, selectServicesFields\n} from 'store/HostDetail/selectors';\nimport CustomReactTable from 'Common/Components/CustomReactTable/styled';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport setOrderServices from 'Screens/Host/components/HostDetail/functions';\nimport { openModal } from 'store/modals/actions';\nimport { MODAL_CREATE_SERVICE } from 'store/modals/modals';\nimport getColumns from './components/Columns';\nimport { Wrapper, AddServiceButton } from './styled';\nimport getTrProps from './getTrProps';\n\nconst WrapperTable = ({ onSelectService }) => {\n const isFetching = useSelector(selectIsFetchingServices);\n const data = useSelector(selectServices);\n const fields = useSelector(selectServicesFields);\n\n const customStyle = { height: 'calc(100vh - 375px)', cursor: 'pointer' };\n\n const fetchData = (state) => {\n const { sorted } = state;\n\n if (!isFetching) {\n setOrderServices(sorted, data);\n }\n };\n\n const mockData = [...Array(15).keys()];\n\n return (\n }\n getTrProps={ (state, rowInfo) => getTrProps(state, rowInfo, onSelectService) }\n style={ customStyle }\n onFetchData={ fetchData }\n />\n );\n};\n\nWrapperTable.propTypes = {\n onSelectService: PropTypes.func.isRequired\n};\n\nconst Services = ({ data }) => {\n const intl = useIntl();\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(getServices(data.id));\n }, [data, dispatch]);\n\n const onSelectService = (service) => {\n dispatch(selectService(service));\n dispatch(openModal(MODAL_CREATE_SERVICE));\n };\n\n return (\n \n \n dispatch(openModal(MODAL_CREATE_SERVICE)) } />\n \n );\n};\n\nexport default Services;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport edit from 'Images/icon-edit.png';\n\nexport const Wrapper = styled.div`\n font-size: 29px;\n font-weight: 600;\n line-height: 0.97;\n color: ${colors.dark2};\n text-align: left;\n margin: 17px 0;\n display: flex;\n align-items: center;\n justify-content: left;\n & > *:first-child {\n margin-right: 18px;\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const HostIp = styled.div`\n max-width: 92%;\n overflow-wrap: break-word;\n`;\nHostIp.displayName = 'HostIp';\n\nexport const Edit = styled.div`\n width: 19px;\n height: 18px;\n background: url(${edit}) no-repeat;\n cursor: pointer;\n margin: 0 10px;\n`;\nEdit.displayName = 'Edit';\n","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { updateHost } from 'store/Host/actions';\nimport { Wrapper, HostIp, Edit } from './styled';\nimport Importance from 'Common/Components/Importance';\nimport { selectHostDetail } from 'store/HostDetail/selectors';\nimport { showEditModal } from 'store/HostEditCreate/actions';\n\nconst Ip = () => {\n const dispatch = useDispatch();\n const host = useSelector(selectHostDetail);\n\n const callback = (importance) => dispatch(updateHost(host._id, { importance }));\n\n return (\n \n \n {host.ip}\n dispatch(showEditModal()) } />\n \n );\n};\n\nexport default Ip;\n","import styled from 'styled-components';\nimport command from 'Images/command.svg';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n margin-top: 10px;\n display: flex;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n\nexport const DateRow = styled.div`\n font-weight: 500;\n`;\nDateRow.displayName = 'DateRow';\n\nexport const Command = styled.div`\n display: flex;\n align-items: center;\n color: ${colors.blueCerulean};\n font-size: 14.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.48;\n letter-spacing: 0.11px;\n text-transform: lowercase;\n text-overflow: ellipsis;\n`;\nCommand.displayName = 'Command';\n\nexport const CommandIcon = styled.div`\n margin-right: 10px;\n min-width: 16px;\n height: 16px;\n background-color: transparent;\n background-repeat: no-repeat;\n background-size: 16px;\n background-image: url(${command});\n`;\nCommandIcon.displayName = 'CommandIcon';\n\nexport const User = styled.div`\n color: ${colors.blueGrey};\n font-size: 11.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 3.13;\n letter-spacing: normal;\n`;\nUser.displayName = 'User';\n\nexport const Params = styled.div`\n color: ${colors.dark};\n`;\nParams.displayName = 'Params';\n\nexport const CreateDate = styled(User)``;\nCreateDate.displayName = 'CreateDate';\n\nexport const Title = styled.div`\n color: ${colors.dark2};\n font-size: 17.5px;\n font-weight: 600;\n margin-top: 20px;\n margin-bottom: 8px;\n text-align: left;\n overflow-wrap: break-word;\n`;\nTitle.displayName = 'Title';\n\nexport const Detail = styled.div`\n width: 233px;\n height: 395px;\n margin: 20px 19px 0 21px;\n padding: 21px 51px 23px 21px;\n border-radius: 1px;\n box-shadow: 0 2px 50px 0 rgba(0, 0, 0, 0.03);\n background-color: ${colors.white};\n width: 25%;\n`;\nDetail.displayName = 'Detail';\n\nexport const Tools = styled.div`\n display: flex;\n flex-direction: column;\n width: 75%;\n`;\nTools.displayName = 'Tools';\n\nexport const DetailTitle = styled.div`\n text-align: left;\n font-size: 14.5px;\n font-weight: 500;\n color: ${colors.dark2};\n margin-bottom: 17px;\n`;\nDetailTitle.displayName = 'DetailTitle';\n\nexport const DetailContent = styled.div`\n font-size: 11.5px;\n line-height: 1.91;\n color: ${colors.grey19};\n overflow-wrap: break-word;\n`;\nDetailContent.displayName = 'DetailContent';\n","/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport DateFormatter from 'Common/Components/DateFormatter';\nimport Skeleton from 'Common/Components/Skeleton';\nimport {\n CommandIcon, Command, User, Params, CreateDate\n} from './styled';\n\nexport default function getColumns (fields, isFetching) {\n const alias = 'host.detail.general.tools.table.columns';\n const columns = [{\n Header: () => (\n \n ),\n accessor: 'command',\n resizable: true,\n show: fields.command,\n width: 200,\n Cell: (rowInfo) => (\n isFetching\n ? \n : (\n \n \n { rowInfo.original.command }\n \n )\n )\n }, {\n Header: () => (\n \n ),\n accessor: 'user',\n id: 'user',\n show: fields.user,\n maxWidth: 130,\n Cell: (rowInfo) => (\n isFetching ? : { rowInfo.original.user }\n )\n }, {\n Header: () => (\n \n ),\n accessor: 'params',\n id: 'params',\n show: fields.params,\n maxWidth: 150,\n Cell: (rowInfo) => (\n isFetching ? : { rowInfo.original.params }\n )\n }, {\n Header: () => (\n \n ),\n id: 'create_date',\n show: fields.create_date,\n Cell: (rowInfo) => {\n if (isFetching) return ;\n if (rowInfo.original.create_date) {\n return (\n \n \n \n );\n }\n return '';\n },\n maxWidth: 130\n }];\n\n return columns;\n}\n","/* eslint-disable react/jsx-key */\nimport React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport {\n getTools\n} from 'store/HostDetail/actions';\nimport CustomReactTable from 'Common/Components/CustomReactTable/styled';\nimport { FormattedMessage } from 'react-intl';\nimport getColumns from './Columns';\nimport {\n Wrapper, Title, Detail, DetailTitle, Tools, DetailContent\n} from './styled';\n\nconst WrapperTable = () => {\n const props = useSelector((state) => ({\n isFetching: state.hostDetail.tools.isFetching,\n data: state.hostDetail.tools.data,\n fields: state.hostDetail.tools.fields,\n host: state.hostDetail.host\n }));\n\n const {\n isFetching, data, fields, host\n } = props;\n const customStyle = { height: 'calc(100vh - 260px)' };\n\n const mockData = [...Array(15).keys()];\n\n return (\n \n \n <FormattedMessage id=\"host.detail.general.title\" values={ { ip: host.ip } } />\n }\n style={ customStyle }\n />\n \n \n \n Operating System\n { host.os }\n \n \n Hostnames\n { host.hostnames.map((value) =>

{ value }

) }
\n
\n \n MAC Address\n { host.mac }\n \n \n Description\n { host.description }\n \n
\n
\n );\n};\nWrapperTable.propTypes = {\n isFetching: PropTypes.bool.isRequired,\n data: PropTypes.instanceOf(Array).isRequired,\n fields: PropTypes.instanceOf(Object).isRequired,\n host: PropTypes.instanceOf(Object).isRequired\n};\n\nconst General = ({ data }) => {\n const dispatch = useDispatch();\n useEffect(() => {\n dispatch(getTools(data.id));\n }, [data.id, dispatch]);\n\n return ;\n};\n\nexport default General;\n","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { hideHostDetail } from 'store/HostDetail/actions';\nimport Tabs from 'Common/Components/Tabs';\nimport { selectHostsSelected } from 'store/Host/selectors';\nimport { selectHostDetail } from 'store/HostDetail/selectors';\nimport {\n Wrapper, Close, Hostnames, Hostname, VulnsGrouped\n} from './styled';\nimport Vulnerabilities from './Vulnerabilities';\nimport Services from './Services';\nimport Ip from './Ip';\nimport General from './General';\n\nfunction HostDetail () {\n const data = useSelector(selectHostDetail);\n const hostsSelected = useSelector(selectHostsSelected);\n const dispatch = useDispatch();\n\n return data\n ? (\n \n dispatch(hideHostDetail()) } />\n \n \n { hostsSelected && data && data.host && data.host.hostnames && data.host.hostnames.slice(0, 2).map((host) => (\n {host.name}\n ))}\n \n \n \n \n \n \n \n \n )\n : null;\n}\n\nexport default HostDetail;\n","import styled, { css } from 'styled-components';\nimport colors from 'Styles/colors';\nimport { slideInRight } from 'Styles/effects';\n\nexport const Wrapper = styled.div`\n\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const FiltersBody = styled.div`\n ${slideInRight}\n`;\nFiltersBody.displayName = 'FiltersBody';\n\nexport const CustomFiltersOptions = styled.div`\n float: right;\n background-color: ${(props) => (props.selected ? '#f1f4f7' : 'transparent')};\n margin-left: auto;\n`;\nCustomFiltersOptions.displayName = 'CustomFiltersOptions';\n\nexport const FilterNameContainer = styled.div`\n display: flex;\n background-color: ${(props) => (props.selected ? '#f1f4f7' : 'transparent')};\n height: 35px;\n cursor: pointer;\n\n p{\n margin-left: 10px;\n }\n\n ${CustomFiltersOptions} {\n display: none;\n\n svg{\n width: unset!important;\n height: unset!important;\n visibility: hidden;\n }\n }\n\n &:hover{\n background-color: #f1f4f7;\n\n ${CustomFiltersOptions} {\n display: inline;\n svg{\n width: unset!important;\n height: unset!important;\n visibility: visible;\n }\n }\n }\n\n .selected-filter {\n border-radius: 3px;\n background-color: #f1f4f7;\n font-weight: 600;\n }\n\n div {\n -webkit-appearance: unset;\n }\n`;\nFilterNameContainer.displayName = 'FilterNameContainer';\n\nexport const CustomFiltersSeparator = styled.div`\n margin-bottom: 12px;\n margin-top: 12px;\n margin-right: 20px;\n border-bottom: solid 1px ${colors.grey12};\n margin-left: 30px;\n`;\nCustomFiltersSeparator.displayName = 'CustomFiltersSeparator';\n\nexport const PlusIcon = styled.div`\n\n display: inline-block;\n float: right;\n font-weight: bold;\n\n svg {\n color: ${colors.grey12};\n width: 12px;\n height: 12px;\n }\n`;\nPlusIcon.displayName = 'PlusIcon';\n\nexport const CustomFiltersText = styled.div`\n font-size: 11.5px;\n font-weight: 500;\n color: ${colors.grey12};\n cursor: pointer;\n width: 100%;\n text-align: left;\n margin-bottom: 12px;\n padding-right: 27px;\n padding-left: 30px;\n\n &:hover{\n color: ${colors.grey7};\n\n ${PlusIcon} svg{\n color: ${colors.grey7};\n }\n }\n`;\nCustomFiltersText.displayName = 'CustomFiltersText';\n\nexport const FilterName = styled.span`\n color: ${colors.dark2};\n padding-top: 8px;\n padding-bottom: 8px;\n font-size: 14px;\n font-weight: 400;\n width: 69%;\n text-align: left;\n padding-left: 30px;\n`;\nFilterName.displayName = 'FilterName';\n\nexport const CloseFiltersIcon = styled.span`\n width: 27px;\n height: 27px;\n border: solid 1px ${colors.grey12};\n background-color: white;\n border-radius: 50%;\n\n svg {\n color: ${colors.grey5};\n width: 10px;\n height: 10px;\n margin-bottom: 2px;\n margin-right: 1px;\n }\n`;\nCloseFiltersIcon.displayName = 'CloseFiltersIcon';\n\nexport const FiltersHeader = styled.div`\n height: 36px;\n display: flex;\n width: 100%;\n padding-right: 20px;\n padding-left: 30px;\n align-items: flex-end;\n & > :first-child {\n margin-bottom: 2px;\n }\n`;\nFiltersHeader.displayName = 'FiltersHeader';\n\nexport const DeleteIcon = styled.img`\n position: relative;\n top: 5px;\n width: 16px;\n height: auto;\n margin-right: 25px;\n`;\nDeleteIcon.displayName = 'DeleteIcon';\n\nexport const EditIcon = styled.img`\n position: relative;\n top: 5px;\n width: 16px;\n height: auto;\n margin-right: 12px;\n`;\nEditIcon.displayName = 'EditIcon';\n\nconst settingIconStyles = css`\n width: 23px;\n height: 20px;\n cursor: pointer;\n margin-top: 9px;\n`;\nexport const SettingIcon = styled.img`\n ${settingIconStyles};\n`;\nSettingIcon.displayName = SettingIcon;\n\n// New Styles\nexport const FiltersContainer = styled.div`\n padding-right: 5px;\n padding-top: 14px;\n background-color: $background;\n box-shadow: none;\n width: 238px;\n overflow-x: hidden;\n flex: 0 0 250px;\n height: 100%;\n margin-left: 15px;\n`;\nFiltersContainer.displayName = 'FiltersContainer';\n\nexport const Content = styled.div`\n overflow-y: auto;\n overflow-x: hidden;\n height: calc(100% - 40px);\n &::-webkit-scrollbar-thumb {\n border-radius: 10px;\n -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);\n box-shadow: inset 0 0 6px rgba(0,0,0,.3);\n background-color: #aaa;\n }\n \n &::-webkit-scrollbar {\n background-color: transparent;\n width: 5px;\n }\n`;\nContent.displayName = 'Content';\n","import styled from 'styled-components';\nimport { ReactComponent as Icon } from 'Images/icon-action-bar-trash.svg';\n\nexport const CFContainer = styled.div`\ndisplay: flex;\nflex-direction: row;\nheight: 32px;\npadding-left: 15px;\npadding-right: 13px;\n\n&:hover {\n background-color: #edf2f7;\n \n >:nth-child(2){\n display: block;\n }\n}\n`;\n\nexport const CFLabel = styled.div`\n cursor: pointer;\n flex: 1 1 0;\n font-size: 14px;\n line-height: 2.51;\n color: #1c2243;\n text-align: left;\n max-width: 150px;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport const RemoveIcon = styled(Icon)`\n display: none;\n margin: auto 0px auto auto;\n width: 17px;\n height: 17px;\n background-color: #63758d;\n`;\nRemoveIcon.displayName = 'RemoveIcon';\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport { PropTypes } from 'prop-types';\nimport { newGetVulns } from 'store/Manage/filterActions';\nimport { removeCustomFilter, applyCustomFilter, setSaveEnabled } from 'store/Filters/actions';\nimport { getData } from 'store/Host/actions';\nimport get from 'lodash/get';\nimport { shouldRedirect } from 'Common/Components/SearchBar/components/BasicFilter/functions';\nimport { CFLabel, CFContainer, RemoveIcon } from './styled';\n\nconst CustomFilterButton = ({ filter, entity }) => {\n const dispatch = useDispatch();\n const entityName = get(entity, 'name.value', 'vulns');\n const entityPathname = get(entity, 'pathname', '');\n\n const deleteCustomFilter = () => dispatch(removeCustomFilter(entityName, filter.id));\n\n const setCustomFilter = () => {\n dispatch(shouldRedirect(entityPathname));\n dispatch(applyCustomFilter(entityName, filter.id));\n if (entityName === 'vulns') dispatch(newGetVulns());\n else if (entityName === 'assets') dispatch(getData());\n dispatch(setSaveEnabled(true));\n };\n\n return (\n \n {filter.name}\n \n \n );\n};\n\nCustomFilterButton.propTypes = {\n filter: PropTypes.object.isRequired,\n entity: PropTypes.object.isRequired\n};\n\nexport default CustomFilterButton;\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgArrowRight = function SvgArrowRight(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 6,\n height: 10,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.795 5.528 1.845 9.78a.66.66 0 0 1-.984 0l-.656-.707a.788.788 0 0 1 0-1.06L3.005 5l-2.8-3.013a.788.788 0 0 1 0-1.06L.86.22a.66.66 0 0 1 .985 0l3.95 4.252a.784.784 0 0 1 0 1.056Z\",\n fill: \"#8DA6BE\",\n fillRule: \"nonzero\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgArrowRight, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/arrow-right.ec48cf40.svg\";\nexport { ForwardRef as ReactComponent };","import styled, { css } from 'styled-components';\nimport colors from 'Styles/colors';\nimport SeverityIcon from 'Common/Components/SeverityIcon';\nimport { ReactComponent as ArrowCollapsed } from 'Images/arrow-right.svg';\nimport { ReactComponent as ArrowExpanded } from 'Images/arrow-down.svg';\n\nexport const FiltersHeader = styled.div`\n display:flex;\n margin-bottom: 14px;\n padding-right: 14px;\n`;\nFiltersHeader.displayName = 'FiltersHeader';\n\nexport const Flex = styled.div`\n display:flex;\n flex-direction: ${({ vertical }) => (vertical ? 'column' : 'row')}; \n flex-wrap: wrap;\n margin-bottom: 13px;\n position: relative;\n`;\nFlex.displayName = 'Flex';\n\nexport const Content = styled(Flex)`\n ${({ isExpanded }) => (!isExpanded && 'display: none')};\n`;\nContent.displayName = 'Content';\n\nexport const Resizer = styled.div`\n height: 1px;\n margin: 2px 10px 13px 0;\n opacity: 0.57;\n border-top: solid 1px #bec8d2;\n cursor: ns-resize;\n`;\nResizer.displayName = 'Resizer';\n\nexport const HeaderTitle = styled.h2`\n font-size: 15px;\n font-weight: 600;\n color: #63758d;\n margin-right: auto;\n padding-right: ${({ isFiltering }) => (isFiltering ? '0px' : '4px')};\n`;\nHeaderTitle.displayName = 'HeaderTitle';\n\nexport const Title = styled.h3`\n font-size: 14px;\n color: #1c2243;\n margin-right: auto;\n text-align: left;\n`;\nTitle.displayName = 'Title';\n\nexport const Text = styled.p`\nfont-size: 13px;\ncolor: #1c2243;\npadding-left: 13px;\ncursor: pointer;\n`;\nText.displayName = 'Text';\n\nexport const Subtitle = styled.h4`\n font-size: 13px;\n font-weight: 500;\n color: #63758d;\n text-align: left;\n margin-bottom: 14px;\n`;\nSubtitle.displayName = 'Subtitle';\n\nexport const ButtonsContainer = styled.div`\n display: flex;\n align-items: baseline;\n`;\nButtonsContainer.displayName = 'ButtonsContainer';\n\nexport const ClearAll = styled.p`\n font-size: 12px;\n font-weight: 500;\n color: #0082ed;\n cursor:pointer;\n`;\nClearAll.displayName = 'ClearAll';\n\nexport const Clear = styled(ClearAll)`\n margin-right: 22px;\n`;\nClear.displayName = 'Clear';\n\nexport const CheckboxOption = styled.div`\n display:flex;\n margin: 0 13px;\n margin-bottom: 4px;\n max-width: max-content;\n`;\nCheckboxOption.displayName = 'CheckboxOption';\n\nexport const FilterWrapper = styled.div`\n padding-top: ${({ isFiltering }) => (isFiltering ? '10px' : '8px')};\n padding-right: ${({ isFiltering }) => (isFiltering ? '0px' : '4px')};\n`;\nFilterWrapper.displayName = 'FilterWrapper';\n\nexport const Severity = styled(SeverityIcon)`\n width: 27px;\n height: 19px;\n margin-right: 7px;\n`;\nSeverity.displayName = 'Severity';\n\nconst IconWrapper = css`\n position: absolute;\n top: 5px;\n right: 0px;\n`;\n\nexport const ExpandedIcon = styled(ArrowExpanded)`\n ${IconWrapper};\n margin: 2px 5px auto auto;\n width: 10px;\n color: #63758d;\n transform: rotate(180deg);\n path {\n fill: ${colors.greyBlue};\n }\n`;\nExpandedIcon.displayName = 'ExpandedIcon';\n\nexport const CollapsedIcon = styled(ArrowExpanded)`\n ${IconWrapper};\n margin: auto 5px auto auto;\n height: 10px;\n path {\n fill: ${colors.greyBlue};\n }\n`;\nCollapsedIcon.displayName = 'CollapsedIcon';\n\nexport const Close = styled(ArrowCollapsed)`\n transform: rotate(180deg);\n margin-left: 10px;\n`;\nClose.displayName = 'Close';\n","import styled from 'styled-components';\n\nexport const SavedFiltersWrapper = styled.div.attrs(({ containerHeight }) => {\n let height = '';\n if (containerHeight) height = `${containerHeight}px`;\n return ({ style: { height } });\n})`\n overflow: auto;\n margin-right: 3px;\n`;\nSavedFiltersWrapper.displayName = 'SavedFiltersWrapper';\n\nexport const CFListContainer = styled.div`\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n max-height: 276px;\n margin-bottom: 14px;\n > :nth-child(2){\n margin-top: 14px;\n }\n`;\n\nexport const NoFilterLabel = styled.div`\n cursor: default;\n font-size: 13px;\n color: #63758d;\n text-align: center;\n`;\n\nexport const Heading = styled.h5`\n font-size: 12px;\n font-weight: 500;\n color: #90a9c0;\n text-align: left;\n margin-bottom: 7px;\n margin-left: 15px;\n`;\n","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgServices = function SvgServices(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 34,\n height: 34,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#1C2243\",\n fillRule: \"nonzero\",\n stroke: \"#1C2243\",\n strokeWidth: 0.5\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.9413317 13.5957447s0 0 0 0c.1248669-.4255319.0416223-.893617-.1664891-1.319149l-3.9124939-6.93617017c-.4578451-.80851064-1.498402-1.10638298-2.2892252-.63829787l-2.9135593 1.70212766c-.3746005-.25531915-.7908233-.46808511-1.207046-.68085106v-3.0212766C22.4525182 1.76595745 21.7033172 1 20.7876271 1h-7.3671428c-.9156901 0-1.6648911.76595745-1.6648911 1.70212766v2.93617021c-.4994673.21276596-.87406778.46808511-1.20704599.68085107L7.67661016 4.61702128c-.79082325-.46808511-1.78975787-.21276596-2.28922519.59574468L1.35002419 12.106383c-.24973365.3829787-.29135593.8510638-.20811138 1.3191489.12486683.4255319.37460049.8085107.74920097 1.0638298l2.7886925 1.7021277C4.638184 16.4893617 4.638184 16.7446809 4.638184 17v.6808511l-2.83031477 1.6595744c-.3329782.2553192-.62433414.6382979-.74920097 1.0638298-.12486683.4255319-.04162227.893617.1664891 1.319149l3.91249396 6.9361702c.45784503.8085106 1.45677966 1.1063829 2.24760291.6382978l2.99680387-1.7021276c.37460049.2553191.7908232.5106383 1.3319128.7659574v2.9361702c0 .9361703.749201 1.7021277 1.6648911 1.7021277h7.4087651c.9156901 0 1.6648911-.7659574 1.6648911-1.7021277v-3.0212766c.3746005-.1702127.7492009-.3829787 1.0821791-.6382978l2.8303148 1.7021276c.7908233.4680851 1.8313802.212766 2.2892252-.5957446l3.9957385-6.8936171c.2081114-.3829787.2913559-.8510638.1664891-1.2765957-.1248668-.4255319-.3746005-.8085107-.749201-1.0638298l-2.7886925-1.7021277c.0416223-.2978723.0416223-.5531915.0416223-.8085106 0-.212766 0-.4680851-.0416223-.6808511l2.8303148-1.6595744c.4162228-.212766.7075787-.5957447.8324455-1.0638298zm-1.6232687-.4255319l-3.2881598 1.9574468c-.291356.1702127-.4578451.5106383-.4162228.8085106.0416223.3829787.0416223.7234043.0416223 1.0638298 0 .3829787-.0416223.7659574-.0832446 1.1914894-.0416223.3404255.1248669.680851.4162228.8510638l3.2465375 2-3.9957385 6.893617-3.2881598-2c-.2913559-.1702128-.6243341-.1702128-.9156901.0425532-.5410896.3829787-1.1238014.7234043-1.7481356.9787234-.2913559.1276596-.4994673.4255319-.4994673.7659575v3.574468H13.378862v-3.4893617c0-.3404255-.2081114-.680851-.5410896-.8085106-.8324455-.2978723-1.4151574-.7234043-1.91462471-1.0638298-.1664891-.1276596-.33297821-.1702128-.49946731-.1702128-.12486683 0-.29135593.0425532-.41622276.1276596l-3.41302664 1.8723404-3.91249395-6.9361702 3.28815981-1.9574468c.29135593-.1702127.45784504-.5106383.41622276-.8085106-.04162228-.3829787-.04162228-.7234043-.04162228-1.0638298 0-.3404255.04162228-.7234043.08324456-1.1914894.04162227-.3404255-.12486683-.680851-.41622277-.8510638l-3.24653753-2 4.03736078-6.89361701 3.32978209 2c.29135593.17021276.66595641.17021276.91569005-.04255319C11.5891041 7.59574468 12.0885714 7.29787234 12.8377724 7c.3329782-.12765957.5410896-.42553191.5410896-.80851064V2.65957447h7.4087651v3.57446808c0 .34042554.2081114.63829788.4994673.76595745.6659565.29787234 1.2902906.63829787 1.8313802 1.06382979.2497336.21276595.6243341.21276595.8740678.04255319l3.3714043-1.95744681 3.9541163 7.02127663s0 0 0 0l.7908232.2127659-.7908232-.2127659z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17 10.73913043c-3.4373402 0-6.26086957 2.82352937-6.26086957 6.26086957 0 3.4373402 2.82352937 6.2608696 6.26086957 6.2608696 3.4373402 0 6.2608696-2.8235294 6.2608696-6.2608696 0-3.4373402-2.8235294-6.26086957-6.2608696-6.26086957zm0 10.88491047c-2.5370844 0-4.6240409-2.0869565-4.6240409-4.6240409S14.4629156 12.3759591 17 12.3759591 21.6240409 14.4629156 21.6240409 17c0 2.5780051-2.0869565 4.6240409-4.6240409 4.6240409z\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgServices, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/services.0f83c980.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { selectCustomFilters } from 'store/Filters/selectors';\nimport { SEARCH_BY_ENTITIES } from 'store/Filters/entitiesConstants';\nimport CustomFilterButton from '../CustomFilterButton';\nimport { Subtitle } from '../styled';\nimport {\n SavedFiltersWrapper, Heading, CFListContainer, NoFilterLabel\n} from './styled';\n\nconst SavedFilters = ({ reference, containerHeight }) => {\n const vulnsCustomFilters = useSelector((state) => selectCustomFilters(state, 'vulns'));\n const assetsCustomFilters = useSelector((state) => selectCustomFilters(state, 'assets'));\n\n return (\n \n Saved Filters \n \n
\n Vulnerabilities \n {vulnsCustomFilters.length === 0 && No saved filters. }\n {vulnsCustomFilters.map((filter) => )}\n
\n
\n Assets \n {assetsCustomFilters.length === 0 && No saved filters. }\n {assetsCustomFilters.map((filter) => )}\n
\n
\n
\n );\n};\n\nexport default SavedFilters;\n","const getFilterVal = (key) => {\n if (key === 'services') return ({ name: 'status', op: '==', val: 'open' });\n if (key === 'owned') return 'true';\n return '0';\n};\nconst getFilterOp = (key) => {\n if (key === 'services') return 'any';\n if (key === 'owned') return '==';\n if (key === 'vulnerability_critical_generic_count') return '!=';\n return '0';\n};\n\nconst defaultFilters = {\n vulns: [{\n title: 'Severity',\n name: 'severity',\n options: ['critical', 'high', 'medium', 'low', 'informational', 'unclassified'],\n displayOptions: ['C', 'H', 'M', 'L', 'I', 'U'],\n type: 'severity',\n showClear: true,\n filter: (filter) => ({ name: 'severity', op: '==', val: filter })\n }, {\n title: 'Status',\n name: 'status',\n options: ['open', 'closed', 're-opened', 'risk-accepted'],\n displayOptions: ['Open', 'Closed', 'Re-Opened', 'Risk Accepted'],\n type: 'checkbox',\n showClear: true,\n filter: (filter) => ({ name: 'status', op: '==', val: filter })\n }, {\n title: 'Ease of Resolution',\n name: 'ease_of_resolution',\n options: ['trivial', 'simple', 'moderate', 'difficult', 'infeasible'],\n displayOptions: ['Trivial', 'Simple', 'Moderate', 'Difficult', 'Infeasible'],\n type: 'checkbox',\n showClear: true,\n filter: (filter) => ({ name: 'ease_of_resolution', op: '==', val: filter })\n }, {\n title: 'Confirmation',\n name: 'confirmed',\n options: ['true', 'false'],\n displayOptions: ['Confirmed', 'Not Confirmed'],\n type: 'checkbox',\n showClear: true,\n filter: (filter) => ({ name: 'confirmed', op: '==', val: filter })\n }\n ],\n assets: [\n {\n title: '',\n name: '',\n options: ['services', 'vulnerability_critical_generic_count', 'owned'],\n displayOptions: ['Has Open Services', 'Has Critical Vulns', 'Has Been Owned'],\n type: 'checkbox',\n showClear: false,\n filter: (filter) => ({ name: filter, op: getFilterOp(filter), val: getFilterVal(filter) })\n },\n {\n title: 'OS',\n name: 'os',\n options: ['windows', 'unix', 'macos', 'linux'],\n displayOptions: ['Windows', 'Unix', 'MacOS', 'Linux'],\n type: 'checkbox',\n showClear: true,\n filter: (filter) => ({ name: 'os', op: 'ilike', val: `%${filter}%` })\n }\n ]\n};\n\nexport default defaultFilters;\n","import { addFilter, removeFilter, setSaveEnabled } from 'store/Filters/actions';\nimport { isFilteringBy } from 'store/Filters/selectors';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { newGetVulns } from 'store/Manage/filterActions';\nimport { getData } from 'store/Host/actions';\n\nconst useFilterToggle = (filter, entityName) => {\n const dispatch = useDispatch();\n const isFilterActive = useSelector((state) => isFilteringBy(state, entityName, filter));\n\n const toggleFilter = () => {\n if (isFilterActive) dispatch(removeFilter(entityName, filter));\n else dispatch(addFilter(entityName, filter));\n if (entityName === 'vulns') dispatch(newGetVulns());\n else if (entityName === 'assets') dispatch(getData());\n dispatch(setSaveEnabled(true));\n };\n\n return [isFilterActive, toggleFilter];\n};\n\nexport default useFilterToggle;\n","import React from 'react';\nimport Checkbox from 'Common/Components/Checkbox';\nimport useFilterToggle from 'Hooks/useFilterToggle';\nimport {\n Text, CheckboxOption, Severity\n} from '../styled';\n\nexport const SeverityFilter = ({ option, filter, entityName }) => {\n const [isFilterActive, toggleFilter] = useFilterToggle(filter, entityName);\n\n return (\n \n {option}\n \n );\n};\n\nexport const CheckBoxFilter = ({ option, filter, entityName }) => {\n const [isFilterActive, toggleFilter] = useFilterToggle(filter, entityName);\n\n return (\n \n \n {option}\n \n );\n};\n","/* eslint-disable react/jsx-props-no-spreading */\nimport React, { useState } from 'react';\nimport { removeFiltersByKey } from 'store/Filters/actions';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { newGetVulns } from 'store/Manage/filterActions';\nimport { getData } from 'store/Host/actions';\nimport { useLocation } from 'react-router-dom';\nimport { SEARCH_BY_ENTITIES } from 'store/Filters/entitiesConstants';\nimport get from 'lodash/get';\nimport { isFilteringBy } from 'store/Filters/selectors';\nimport defaultFilters from './defaultFilters';\nimport {\n Subtitle, Title, Flex, Clear, ExpandedIcon, CollapsedIcon, Content\n} from '../styled';\nimport { SeverityFilter, CheckBoxFilter } from './filterTypes';\n\nconst QuickFilters = () => {\n const location = useLocation();\n const currentLocationEntity = SEARCH_BY_ENTITIES.find((e) => location.pathname.includes(e.pathname));\n const entityName = get(currentLocationEntity, 'name.value', 'vulns');\n\n return (\n <>\n Quick Filters\n {defaultFilters[entityName].map((filter) => )}\n \n );\n};\n\nconst QuickFilterItem = ({\n title, options, type, filter, name, displayOptions, entityName, showClear\n}) => {\n const dispatch = useDispatch();\n const state = useSelector((state) => state);\n const [isExpanded, setIsExpanded] = useState(true);\n\n const anyFilterApplied = options.some((option) => (isFilteringBy(state, entityName, filter(option))));\n\n const toggleExpanded = () => setIsExpanded(!isExpanded);\n\n const handleClick = () => {\n if (showClear && anyFilterApplied) {\n dispatch(removeFiltersByKey(entityName, name));\n if (entityName === 'vulns') dispatch(newGetVulns());\n if (entityName === 'assets') dispatch(getData());\n }\n };\n\n return (\n <>\n \n {title}\n Clear\n { isExpanded ? : }\n \n\n \n {type === 'severity' && (displayOptions.map((option, i) => ))}\n {type === 'checkbox' && displayOptions.map((option, i) => )}\n \n \n );\n};\n\nexport default QuickFilters;\n","import React from 'react';\nimport { PropTypes } from 'prop-types';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { newGetVulns } from 'store/Manage/filterActions';\nimport { showManageLeftFilters } from 'store/Manage/actions';\nimport { clearFilters } from 'store/Filters/actions';\nimport { getData, showHostLeftFilters } from 'store/Host/actions';\nimport { selectIsFiltering } from 'store/Filters/selectors';\n\nimport {\n FiltersHeader, HeaderTitle, ButtonsContainer, ClearAll, Close\n} from '../styled';\n\nconst Header = ({ entity }) => {\n const dispatch = useDispatch();\n const isFiltering = useSelector((state) => selectIsFiltering(entity, state));\n\n const setHideFilter = () => {\n if (entity === 'vulns') dispatch(showManageLeftFilters(false, false));\n else if (entity === 'assets') dispatch(showHostLeftFilters(false));\n };\n\n const clearAll = () => {\n if (isFiltering) {\n dispatch(clearFilters(entity));\n if (entity === 'vulns') dispatch(newGetVulns());\n else if (entity === 'assets') dispatch(getData());\n }\n };\n return (\n \n Filters\n \n Clear All\n \n \n \n );\n};\n\nHeader.propTypes = {\n entity: PropTypes.string.isRequired\n};\n\nexport default Header;\n","import React, { useRef } from 'react';\nimport { PropTypes } from 'prop-types';\nimport { useResizeY } from 'Hooks/useResize/index';\nimport { FiltersContainer, Content } from './styled';\nimport SavedFilters from './components/SavedFilters';\nimport QuickFilters from './components/QuickFilters';\nimport Header from './components/Header';\nimport { Resizer } from './components/styled';\n\nconst Filters = ({ entity }) => {\n const ref = useRef(null);\n const childRef = useRef(null);\n\n const minHeight = (min) => Math.max(min - 97, 0);\n const defaultHeight = (def) => Math.max(def - 97, 0);\n const resizerHeight = useResizeY(childRef, ref, defaultHeight(350), minHeight(125));\n\n return (\n \n
\n \n \n \n \n \n \n );\n};\n\nFilters.propTypes = {\n entity: PropTypes.string.isRequired\n};\n\nexport default Filters;\n","import React from 'react';\nimport { PropTypes } from 'prop-types';\nimport { useSelector } from 'react-redux';\nimport { selectShowManageLeftFilters } from 'store/Manage/selectors';\nimport { selectShowHostLeftFilters } from 'store/Host/selectors';\nimport Filters from '../../../Filters';\n\nconst FilterSideBar = ({ entity }) => {\n const showFilters = useSelector((state) => {\n if (entity === 'vulns') return selectShowManageLeftFilters(state);\n if (entity === 'assets') return selectShowHostLeftFilters(state);\n return false;\n });\n\n return showFilters && ;\n};\n\nFilterSideBar.propTypes = {\n entity: PropTypes.string.isRequired\n};\n\nexport default FilterSideBar;\n","import StandardTextAreaField from 'Common/Components/StandardTextAreaField';\nimport StandardTextField from 'Common/Components/StandardTextField';\nimport styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as Icon } from 'Images/services.svg';\n\nexport const GearIcon = styled(Icon)`\n margin-right: -19px;\n cursor: default;\n`;\nGearIcon.displayName = 'GearIcon';\n\nexport const Wrapper = styled.div`\n background: ${colors.white};\n display: flex;\n flex-direction: column;\n position: relative;\n box-shadow: 18px 43px 50px 0 rgb(167 167 167 / 50%);\n border-top: 10px solid #53a9ff;\n border-radius: 2px 2px 0 0;\n padding: 36px 40px;\n overflow: auto;\n max-height: 85%;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n font-size: 21.5px;\n font-weight: 600;\n color: ${colors.blueCerulean};\n`;\nTitle.displayName = 'Title';\n\nexport const WrapperRow = styled.div`\n display: flex;\n flex-direction: row;\n padding-bottom: 13px;\n align-items: center;\n & > :not(:last-child) {\n margin-right: 21px;\n }\n input, textarea {\n box-shadow: inset 0 -1px 0 0 ${colors.grey30};\n background-color: ${colors.white};\n }\n span {\n font-weight: 400;\n }\n`;\nWrapperRow.displayName = 'WrapperRow';\n\nexport const Name = styled(StandardTextField)`\n width: 50%;\n`;\nName.displayName = 'Name';\n\nexport const Port = styled(StandardTextField)`\n width: 125px;\n input {\n padding-bottom: 1px;\n padding-right: 0px;\n }\n`;\nPort.displayName = 'Port';\n\nexport const Protocol = styled(StandardTextField)`\n width: 150px;\n`;\nProtocol.displayName = 'Protocol';\n\nexport const Version = styled(StandardTextField)`\n`;\nVersion.displayName = 'Version';\n\nexport const Description = styled(StandardTextAreaField)`\n`;\nDescription.displayName = 'Description';\n\nexport const WrapperButtons = styled.div`\n display: flex;\n margin-left: auto;\n & > :first-child {\n margin-right: auto;\n }\n & > :last-child {\n margin-left: 8px;\n }\n`;\nWrapperButtons.displayName = 'WrapperButtons';\n\nexport const Error = styled.div`\n font-size: 12.5px;\n font-weight: normal;\n color: ${colors.redPink};\n position: absolute;\n bottom: 21px;\n`;\nError.displayName = 'Error';\n\nexport const WrapperField = styled.div`\n display: flex;\n flex-direction: row;\n padding-bottom: 13px;\n align-items: center;\n & > :first-child {\n margin-right: 10px;\n }\n & > :last-child {\n margin: 2px 0 0 0;\n line-height: 1.2;\n }\n`;\nWrapperField.displayName = 'WrapperField';\n\nexport const Label = styled.div`\n text-align: left;\n font-size: 12.5px;\n font-stretch: normal;\n line-height: 2.08;\n margin-bottom: 1px;\n color: ${colors.grey17};\n`;\nLabel.displayName = 'Label';\n","import { Accept, Cancel } from 'Common/Components/Button/styled';\nimport CheckBox from 'Common/Components/Checkbox';\nimport StandardDropdown from 'Common/Components/StandarDropdown';\nimport get from 'lodash/get';\nimport React, { useEffect, useState } from 'react';\nimport { useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { resetAddEditService, addService, editService } from 'store/HostDetail/actions';\nimport { selectSelectedService } from 'store/HostDetail/selectors';\nimport {\n Wrapper, Title, WrapperRow, Name, Port, Protocol, Version, Description, WrapperButtons, Error, WrapperField, Label, GearIcon\n} from './styled';\n\nconst PORT_MIN = 0;\nconst PORT_MAX = 65535;\n\nconst AddEditService = ({ onClose }) => {\n const selectedService = useSelector(selectSelectedService);\n const getService = (elem, defaultValue) => get(selectedService, elem, defaultValue);\n const intl = useIntl();\n const dispatch = useDispatch();\n const [name, setName] = useState(getService('name', ''));\n const [ports, setPorts] = useState(getService('ports', ''));\n const [protocol, setProtocol] = useState(getService('protocol', ''));\n const [version, setVersion] = useState(getService('version', ''));\n const [description, setDescription] = useState(getService('description', ''));\n const [status, setStatus] = useState(getService('status', ''));\n const [owned, setOwned] = useState(getService('owned', false));\n const statusOptions = [{ name: 'open', desc: 'Open' }, { name: 'closed', desc: 'Closed' }, { name: 'filtered', desc: 'Filtered' }];\n\n const validatePort = () => !(PORT_MIN <= ports && ports <= PORT_MAX) && setPorts('');\n\n const texts = {\n title: intl.formatMessage({ id: selectedService ? 'host.detail.services.addEditService.editTitle' : 'host.detail.services.addEditService.createTitle' }),\n cancel: intl.formatMessage({ id: 'host.detail.services.addEditService.cancel' }),\n save: intl.formatMessage({ id: 'host.detail.services.addEditService.save' }),\n name: intl.formatMessage({ id: 'host.detail.services.addEditService.name' }),\n port: intl.formatMessage({ id: 'host.detail.services.addEditService.port' }),\n protocol: intl.formatMessage({ id: 'host.detail.services.addEditService.protocol' }),\n version: intl.formatMessage({ id: 'host.detail.services.addEditService.version' }),\n description: intl.formatMessage({ id: 'host.detail.services.addEditService.description' })\n };\n\n const props = useSelector((state) => ({\n host: state.hostDetail.host,\n saved: get(state, 'hostDetail.createOrEditService.saved', false),\n errorMessage: get(state, 'hostDetail.createOrEditService.errorMessage', '')\n }));\n\n useEffect(() => () => dispatch(resetAddEditService()), [dispatch]);\n\n const onSave = () => {\n if (name && ports && protocol && status) {\n if (selectedService) {\n dispatch(editService(name, props.host.id, selectedService._id, status, ports.toString().split(','), protocol, version, description, owned));\n } else {\n dispatch(addService(name, props.host.id, status, ports.toString().split(','), protocol, version, description, owned));\n }\n }\n };\n\n useEffect(() => {\n if (props.saved) onClose();\n }, [props.saved, onClose]);\n\n return (\n \n \n { texts.title }\n \n { texts.cancel }\n { texts.save }\n \n \n \n \n setName(value) } />\n setStatus(value) }\n placeholder=\"Status\"\n defaultValue={ status }\n />\n \n \n \n setProtocol(value) } />\n setVersion(value) } />\n \n \n setDescription(value) } />\n \n \n setOwned(!owned) } state={ owned } />\n \n \n \n { props.errorMessage && { props.errorMessage } }\n \n \n );\n};\n\nexport default AddEditService;\n","import styled from 'styled-components';\nimport { ReactComponent as ColumnIcon } from 'Images/icon-action-bar-column.svg';\n\nexport const Wrapper = styled.div`\n position: relative;\n height: 100%;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const EditColumns = styled(ColumnIcon).attrs({\n id: 'qa-edit-columns-vuln'\n})`\n height: 17px;\n`;\n\nEditColumns.displayName = 'EditColumns';\n\nexport const TableContainer = styled.div`\n height: ${(props) => (props.height ? props.height : '100%')};\n display: flex;\n flex-direction: row;\n flex: 0 0 1;\n`;\nTableContainer.displayName = 'TableContainer';\n","/* eslint-disable react/destructuring-assignment */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Table from 'Screens/Host/components/Table';\nimport ActionBar from './components/ActionBar';\nimport HostModalEditCreate from 'Screens/HostEditCreate/components/HostModalEditCreate';\nimport { getData } from 'store/Host/actions';\nimport {\n hideHostDetail,\n showHostDetailById\n} from 'store/HostDetail/actions';\nimport { connect } from 'react-redux';\nimport HostDetail from 'Screens/Host/components/HostDetail';\nimport { selectShowHostLeftFilters } from 'store/Host/selectors';\nimport get from 'lodash/get';\nimport FilterSideBar from 'Screens/Manage/components/FilterSideBar';\nimport { closeModal } from 'store/modals/actions';\nimport ReduxModal from 'Common/Components/ReduxModal';\nimport { MODAL_CREATE_SERVICE } from 'store/modals/modals';\nimport AddEditService from './components/HostDetail/Services/components/AddEditService';\nimport { Wrapper, TableContainer } from './styled';\n\nclass Host extends Component {\n constructor (props) {\n super(props);\n this.state = {\n addRemoveColumnsOpened: false\n };\n this.actionBar = React.createRef();\n this.getTableContainerHeight = this.getTableContainerHeight.bind(this);\n }\n\n handleParamId () {\n const id = get(this, 'props.params.id', 0);\n if (parseInt(id, 10) > 0) this.props.showHostDetailById(id);\n else this.props.hideHostDetail();\n }\n\n componentDidMount () {\n this.handleParamId();\n }\n\n componentWillUnmount () {\n this.handleParamId();\n }\n\n componentDidUpdate (prevProps) {\n if (this.props.location.pathname !== prevProps.location.pathname) {\n this.handleParamId();\n this.props.getData();\n }\n }\n\n getTableContainerHeight () {\n const actionBarHeight = get(this.actionBar, 'current.clientHeight', 34);\n const tableContainerTopMargin = 0;\n return `calc(100% - ${actionBarHeight + tableContainerTopMargin}px)`;\n }\n\n toggleAddColumns () {\n this.setState((prevState) => ({\n addRemoveColumnsOpened: !prevState.addRemoveColumnsOpened\n }));\n }\n\n render () {\n const {\n showLeftFilters\n } = this.props;\n\n return (\n \n
\n \n
\n \n \n \n \n \n \n \n this.props.closeModal() } />\n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n showLeftFilters: selectShowHostLeftFilters(state)\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n showHostDetailById: (host) => {\n dispatch(showHostDetailById(host));\n },\n hideHostDetail: () => {\n dispatch(hideHostDetail());\n },\n getData: () => {\n dispatch(getData());\n },\n closeModal: () => {\n dispatch(closeModal(MODAL_CREATE_SERVICE));\n }\n});\n\nHost.propTypes = {\n showHostDetailById: PropTypes.func.isRequired\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Host);\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n user-select: none;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n color: ${colors.blue6};\n font-weight: 600;\n font-size: 17px;\n margin: 13px 0;\n`;\nTitle.displayName = 'Title';\n\nexport const Text = styled.div`\n font-size: 13px;\n font-weight: 100;\n color: ${colors.blueGrey};\n`;\nText.displayName = 'Text';\n\nexport const Br = styled.span`\n color: ${colors.blue6};\n font-weight: 600;\n`;\nBr.displayName = 'Br';\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { Wrapper, Title, Text, Br } from './styled';\n\nexport const manageTourConfig = (showEnjoyPopup) => [\n {\n selector: 'first-tour-step',\n content: ''\n },\n {\n selector: '[data-tour=\"Add Vulnerability\"]',\n position: 'bottom',\n content: () => (\n \n } />\n <Text children={ <FormattedMessage id=\"tour.manage.addVuln.description\" values={ { b: (chunks) => <Br children={ chunks } /> } } /> } />\n </Wrapper>\n )\n },\n {\n selector: '.test-table-selector',\n position: 'bottom',\n content: () => (\n <Wrapper>\n <Title children={ <FormattedMessage id=\"tour.manage.table.title\" /> } />\n <Text children={ <FormattedMessage id=\"tour.manage.table.description\" values={ { b: (chunks) => <Br children={ chunks } /> } } /> } />\n </Wrapper>\n )\n },\n {\n selector: '[data-tour=\"Assets\"]',\n position: 'right',\n content: () => (\n <Wrapper>\n <Title children={ <FormattedMessage id=\"tour.manage.assets.title\" /> } />\n <Text children={ <FormattedMessage id=\"tour.manage.assets.description\" values={ { b: (chunks) => <Br children={ chunks } /> } } /> } />\n </Wrapper>\n )\n },\n {\n selector: '[data-tour=\"Analytics\"]',\n position: 'right',\n content: () => (\n <Wrapper>\n <Title children={ <FormattedMessage id=\"tour.manage.analytics.title\" /> } />\n <Text children={ <FormattedMessage id=\"tour.manage.analytics.description\" values={ { b: (chunks) => <Br children={ chunks } /> } } /> } />\n </Wrapper>\n )\n },\n {\n selector: '[data-tour=\"Planner\"]',\n position: 'right',\n content: () => (\n <Wrapper>\n <Title children={ <FormattedMessage id=\"tour.manage.planner.title\" /> } />\n <Text children={ <FormattedMessage id=\"tour.manage.planner.description\" values={ { b: (chunks) => <Br children={ chunks } /> } } /> } />\n </Wrapper>\n )\n },\n {\n selector: '[data-tour=\"Reports\"]',\n position: 'right',\n content: () => (\n <Wrapper>\n <Title children={ <FormattedMessage id=\"tour.manage.reports.title\" /> } />\n <Text children={ <FormattedMessage id=\"tour.manage.reports.description\" values={ { b: (chunks) => <Br children={ chunks } /> } } /> } />\n </Wrapper>\n )\n },\n {\n selector: '[data-tour=\"Automation\"]',\n position: 'right',\n content: () => (\n <Wrapper>\n <Title children={ <FormattedMessage id=\"tour.manage.automation.title\" /> } />\n <Text children={ <FormattedMessage id=\"tour.manage.automation.description\" values={ { b: (chunks) => <Br children={ chunks } /> } } /> } />\n </Wrapper>\n )\n },\n {\n selector: '',\n content: '',\n action: showEnjoyPopup\n }\n];\n\nexport const dashboardTourConfig = (redirectToManage) => ([\n {\n selector: 'first-tour-step',\n content: ''\n },\n {\n selector: '[data-tour=\"Activity Dashboard\"]',\n position: 'right',\n style: { boxShadow: '0 2px 50px 0 rgba(28, 34, 67, 0.15)' },\n content: () => (\n <Wrapper>\n <Title children={ <FormattedMessage id=\"tour.dashboard.title\" /> } />\n <Text children={ <FormattedMessage id=\"tour.dashboard.description\" values={ { b: (chunks) => <Br children={ chunks } /> } } /> } />\n </Wrapper>\n )\n },\n {\n selector: '',\n content: '',\n action: redirectToManage\n }\n]);\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as CloseIconImage } from 'Images/icon-close.svg';\n\nexport const Wrapper = styled.div`\n user-select: none;\n display: flex;\n flex-direction: row;\n max-width: 600px;\n position: relative;\n`;\n\nWrapper.displayName = 'Wrapper';\n\nexport const Content = styled.div`\n padding: 60px 30px 50px 30px;\n text-align: left;\n`;\n\nContent.displayName = 'Content';\n\nexport const TitleWrapper = styled.div`\n font-family: 'CentraNo2';\n font-size: 21px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: 0.16px;\n color: #1c2243;\n`;\n\nTitleWrapper.displayName = 'TitleWrapper';\n\nexport const Description = styled.div`\n text-align: left;\n padding-top: 23px;\n padding-bottom: 23px;\n font-size: 14px;\n font-weight: lighter;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: 0.1px;\n color: ${colors.grey19};\n`;\nDescription.displayName = 'Description';\n\nexport const LinkDescription = styled.a`\n cursor: pointer;\n display: inline-block;\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: 0.1px;\n color: ${colors.blueCerulean};\n font-weight: 600;\n`;\nLinkDescription.displayName = 'LinkDescription';\n\nexport const FeatureWrapper = styled.div`\n`;\n\nFeatureWrapper.displayName = 'FeatureWrapper';\n\nexport const FeatureImage = styled.img`\n width: 305px;\n`;\n\nFeatureImage.displayName = 'FeatureImage';\n\nexport const CloseIcon = styled(CloseIconImage)`\n width: 22px;\n height: 20px;\n position: absolute;\n right: 26px;\n top: 26px;\n\n * > path {\n color: ${colors.greyBlue};\n }\n`;\n\nCloseIcon.displayName = 'CloseIcon';\n\nexport const TitleBold = styled(TitleWrapper)`\n display: inline;\n font-weight: 500;\n`;\n\nTitleBold.displayName = 'TitleBold';\n","import React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { closeModal } from 'store/modals/actions';\nimport {\n Wrapper, Content, Description, LinkDescription,\n FeatureWrapper, FeatureImage, CloseIcon, TitleWrapper, TitleBold\n} from './styled';\nimport BlueButton from 'Common/Components/BlueButton/index';\nimport Image from 'Images/ff_users.png';\nimport ReduxModal from 'Common/Components/ReduxModal';\nimport { MODAL_TOUR_FINISHED } from 'store/modals/modals';\nimport { useDispatch } from 'react-redux';\n\nconst EnjoyPopup = () => {\n const intl = useIntl();\n const dispatch = useDispatch();\n const onClose = () => dispatch(closeModal(MODAL_TOUR_FINISHED));\n\n return (\n <ReduxModal id={ MODAL_TOUR_FINISHED }>\n <Wrapper>\n <CloseIcon onClick={ onClose } />\n <FeatureWrapper>\n <FeatureImage src={ Image } />\n </FeatureWrapper>\n <Content>\n <TitleWrapper>\n <FormattedMessage id=\"tour.enjoy.title\" values={ { b: (chunks) => <TitleBold children={ chunks } /> } } />\n </TitleWrapper>\n <Description>\n <FormattedMessage\n id={ 'tour.enjoy.description' }\n values={ {\n doc: (chunks) => <LinkDescription href=\"https://docs.faradaysec.com/\" target=\"_blank\" children={ chunks } />,\n web: (chunks) => <LinkDescription href=\"https://faradaysec.com/\" target=\"_blank\" children={ chunks } />,\n mail: (chunks) => <LinkDescription href=\"mailto:support@faradaysec.com\" target=\"_blank\" children={ chunks } />,\n br: <br />\n } }\n />\n </Description>\n <BlueButton label={ intl.formatMessage({ id: 'tour.button' }) } onClick={ onClose } />\n </Content>\n </Wrapper>\n </ReduxModal>\n );\n};\n\nexport default EnjoyPopup;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const NextBtn = styled.div`\n color: #ffffff;\n font-weight: 500;\n font-size: 14px;\n padding: 8px 20px;\n border: none;\n border-radius: 2px;\n background-color: ${colors.blueCerulean};\n`;\nNextBtn.displayName = 'NextBtn';\n\nexport const PrevBtn = styled.div`\n color: #1c2243;\n font-weight: 500;\n font-size: 14px;\n padding: 8px 20px;\n\n border: #63758d solid 1px;\n border-radius: 2px;\n background-color: #ffffff;\n`;\nPrevBtn.displayName = 'PrevBtn';\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport Tour from 'reactour';\nimport selectTourFinished from 'store/Preferences/Tour/selectors';\nimport { setSideBarOpen } from 'store/SideBar/actions';\nimport { NextBtn, PrevBtn } from './styled';\nimport { endTour } from 'store/Manage/actions';\n\nconst CommonTour = ({ isTourOpen, setTour, steps }) => {\n const dispatch = useDispatch();\n const tourFinished = useSelector(selectTourFinished);\n\n useEffect(() => {\n setTour(!tourFinished);\n if (!tourFinished) dispatch(setSideBarOpen(!tourFinished));\n }, [dispatch, tourFinished, setTour]);\n\n const enabledSteps = steps.filter(({ selector }) => {\n if (selector === '' || selector === 'first-tour-step') return true;\n return !!document.querySelector(selector);\n });\n\n return (\n <Tour\n onRequestClose={ () => setTour(false) }\n steps={ enabledSteps }\n isOpen={ isTourOpen }\n lastStepNextButton={ <NextBtn children=\"Done!\" /> }\n nextButton={ <NextBtn children=\"Next tip >\" /> }\n prevButton={ <PrevBtn onClick={ () => setTour(false) } children=\"Exit Tour\" /> }\n onBeforeClose={ () => dispatch(endTour()) }\n showNavigation={ false }\n showNumber={ false }\n showCloseButton={ false }\n maskClassName='tourBackground'\n startAt={ 1 }\n />\n );\n};\n\nexport default CommonTour;\n","import React, { useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport { redirect } from 'store/Router/actions';\nimport { manageTourConfig, dashboardTourConfig } from './tourConfig';\nimport { openModal } from 'store/modals/actions';\nimport { MODAL_TOUR_FINISHED } from 'store/modals/modals';\nimport EnjoyPopup from './EnjoyPopup';\nimport CommonTour from './CommonTour';\nimport { endTour } from 'store/Manage/actions';\n\nexport const DashboardTour = () => {\n const [isTourOpen, setTour] = useState(false);\n const dispatch = useDispatch();\n const workspaceSelected = useSelector(selectCurrentWorkspace);\n\n const redirectToManage = () => {\n dispatch(redirect(`/manage/${workspaceSelected}`));\n };\n\n return (\n <CommonTour\n steps={ dashboardTourConfig(redirectToManage) }\n isTourOpen={ isTourOpen }\n setTour={ setTour }\n />\n );\n};\n\nexport const ManageTour = () => {\n const [isTourOpen, setTour] = useState(false);\n const dispatch = useDispatch();\n\n const showEnjoyPopup = () => {\n dispatch(openModal(MODAL_TOUR_FINISHED));\n setTour(false);\n dispatch(endTour());\n };\n\n return (\n <>\n <CommonTour steps={ manageTourConfig(showEnjoyPopup) } isTourOpen={ isTourOpen } setTour={ setTour } />\n <EnjoyPopup />\n </>\n );\n};\n","import colors from 'Styles/colors';\nimport styled from 'styled-components';\nimport { ReactComponent as FiltersOn } from 'Images/icon_filter_on.svg';\nimport { FaChevronDown as ChevronDown } from 'react-icons/fa';\n\nconst sevColor = {\n critical: colors.warmPurple,\n high: colors.redPink,\n medium: colors.tangerine,\n low: colors.apple,\n informational: colors.grey2\n};\n\nexport const Wrapper = styled.div`\n margin-bottom: 24px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n user-select: none;\n color: ${colors.white};\n font-size: 14px;\n font-weight: 600;\n padding: 11px 0 27px 0;\n`;\nTitle.displayName = 'Title';\n\nexport const WrapperSeverity = styled.div`\n display: flex;\n width: 100%;\n & > *:not(:last-child) {\n margin-right: 1px;\n }\n`;\nWrapperSeverity.displayName = 'WrapperSeverity';\n\nexport const Severity = styled.div`\n background-color: ${colors.blue1};\n border-radius: 1px;\n font-size: 17px;\n font-weight: bold;\n line-height: 1.2;\n padding: 10px;\n text-align: right;\n min-width: 40px;\n cursor: pointer;\n width: ${(props) => props.width * 100}%;\n\n user-select: none;\n border-bottom: solid 4px ${(props) => sevColor[props.type]};\n color: ${(props) => sevColor[props.type]};\n transition: width .5s;\n`;\nSeverity.displayName = 'Severity';\n\nexport const Empty = styled.div`\n user-select: none;\n color: ${colors.grey5};\n display: inline;\n font-size: 13px;\n font-weight: 300;\n line-height: 2.62;\n`;\nEmpty.displayName = 'Empty';\n\nexport const Header = styled.div`\n display:flex;\n justify-content: space-between;\n`;\nHeader.displayName = 'Header';\n\nexport const FilterIcon = styled(FiltersOn)`\n margin: 8px;\n width: 25px;\n & path {\n fill: #edf2f7;\n }\n & circle {\n fill: ${({ $active }) => $active ? 'red' : 'none'};\n }\n`;\nFilterIcon.displayName = 'FilterIcon';\n\nexport const FilterWrapper = styled.div`\n width: 215px;\n height: 34px;\n font-size: 13.5px;\n font-weight: 500;\n line-height: 1.04;\n letter-spacing: 0.1px;\n color: #edf2f7;\n display: flex;\n background-color: #63758d;\n position:relative;\n`;\nFilterWrapper.displayName = 'FilterWrapper';\n\nexport const Dropdown = styled.div`\n border-left: solid 2px #264d6d;\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 8px;\n cursor: pointer;\n`;\nDropdown.displayName = 'Dropdown';\n\nexport const Selector = styled.div`\n width: 215px;\n height: 34px;\n display: flex;\n position: absolute;\n top: 34px;\n background-color: #63758d;\n border-top: solid 2px #264d6d;\n align-items: center;\n justify-content: space-around;\n`;\nSelector.displayName = 'Selector';\n\nexport const Option = styled.div`\n cursor: pointer;\n & svg{\n margin-right: 8px;\n }\n`;\nOption.displayName = 'Option';\n\nexport const ArrowDown = styled(ChevronDown)`\n width: 10px;\n color: ${colors.grey5};\n //margin-top: 4px;\n`;\nChevronDown.displayName = 'ChevronDown';\n","import React, { useEffect, useMemo, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { addFilter, removeFilter, storeDashboardFilter } from 'store/Filters/actions';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport { redirect } from 'store/Router/actions';\nimport { CLOSED_FILTERS, CONFIRMED_FLAG_FILTERS, DASHBOARD_FILTERS } from 'store/Filters/constants';\nimport Checkbox from 'Common/Components/Checkbox';\nimport { isFilteringBy, selectStoredDashboardFilter } from 'store/Filters/selectors';\nimport { getStatsFiltered } from 'Screens/Dashboard/actions/Actions';\nimport get from 'lodash/get';\nimport {\n WrapperSeverity, Title, Wrapper, Empty, Severity, Header, FilterIcon, FilterWrapper, Dropdown, Selector, Option, ArrowDown\n} from './styled';\n\nconst Filter = () => {\n const dispatch = useDispatch();\n const [isOpen, setIsOpen] = useState(false);\n const { confirmed } = CONFIRMED_FLAG_FILTERS;\n const { closed } = CLOSED_FILTERS;\n const storeFilters = useSelector(selectStoredDashboardFilter);\n\n const isFilteringByConfirm = useSelector((state) => isFilteringBy(state, 'vulns', confirmed));\n const isFilteringByClosed = useSelector((state) => isFilteringBy(state, 'vulns', closed));\n\n useEffect(() => {\n if (storeFilters.confirmed)dispatch(addFilter('vulns', confirmed));\n if (storeFilters.closed)dispatch(addFilter('vulns', closed));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const confirmedFilterToggle = () => {\n dispatch(storeDashboardFilter('confirmed', !isFilteringByConfirm));\n if (isFilteringByConfirm) dispatch(removeFilter('vulns', confirmed));\n else dispatch(addFilter('vulns', confirmed));\n };\n const closedFilterToggle = () => {\n dispatch(storeDashboardFilter('closed', !isFilteringByClosed));\n if (isFilteringByClosed) dispatch(removeFilter('vulns', closed));\n else dispatch(addFilter('vulns', closed));\n };\n\n const content = () => {\n if (isFilteringByConfirm && isFilteringByClosed) return 'Confirmed, Not Closed';\n if (isFilteringByConfirm) return 'Confirmed';\n if (isFilteringByClosed) return 'Not Closed';\n return 'Showing All';\n };\n\n return (\n <FilterWrapper>\n <FilterIcon onClick={ () => setIsOpen(!isOpen) } $active={ isFilteringByConfirm || isFilteringByClosed } />\n <Dropdown onClick={ () => setIsOpen(!isOpen) } >\n {content()}\n <ArrowDown />\n </Dropdown>\n {isOpen && (\n <Selector>\n <Option onClick={ confirmedFilterToggle }>\n <Checkbox state={ isFilteringByConfirm } />\n Confirmed\n </Option>\n <Option onClick={ closedFilterToggle } >\n <Checkbox state={ isFilteringByClosed } />\n Not Closed\n </Option>\n </Selector>\n ) }\n </FilterWrapper>\n );\n};\n\nconst Vulnerabilities = () => {\n const dispatch = useDispatch();\n const stats = useSelector((state) => get(state, 'dashboard.tools[3].data.stats', {}));\n const workspaceSelected = useSelector(selectCurrentWorkspace);\n\n const types = [\n { name: 'critical', id: 'critical_vulns' },\n { name: 'high', id: 'high_vulns' },\n { name: 'medium', id: 'medium_vulns' },\n { name: 'low', id: 'low_vulns' },\n { name: 'informational', id: 'info_vulns' }\n ];\n\n const groups = types.map((type) => {\n if (!stats) return null;\n\n const newType = { count: stats[type.id], name: type.name, severity: type.name };\n // eslint-disable-next-line consistent-return\n return newType;\n });\n\n const totalCount = groups ? groups.reduce((prev, curr) => prev + curr.count, 0) : 0;\n\n const { confirmed } = CONFIRMED_FLAG_FILTERS;\n const { closed } = CLOSED_FILTERS;\n\n const isFilteringByConfirm = useSelector((state) => isFilteringBy(state, 'vulns', confirmed));\n const isFilteringByClosed = useSelector((state) => isFilteringBy(state, 'vulns', closed));\n\n const filterArr = useMemo(() => {\n const confirmed = '{\"name\":\"confirmed\",\"op\":\"eq\",\"val\":\"true\"}';\n const closed = '{\"name\":\"status\",\"op\":\"neq\",\"val\":\"closed\"}';\n const arr = [];\n\n if (isFilteringByConfirm) arr.push(confirmed);\n if (isFilteringByClosed) arr.push(closed);\n return `[${arr.toString()}]`;\n }, [isFilteringByConfirm, isFilteringByClosed]);\n\n const rootManage = (severity) => {\n const filterBySeverity = DASHBOARD_FILTERS.vulnerabilitiesBySeverity(severity);\n const filterByConfirmed = isFilteringByConfirm ? CONFIRMED_FLAG_FILTERS.confirmed : CONFIRMED_FLAG_FILTERS.notConfirmed;\n\n dispatch(addFilter('vulns', filterBySeverity));\n if (isFilteringByConfirm) dispatch(addFilter('vulns', filterByConfirmed));\n if (isFilteringByClosed) dispatch(addFilter('vulns', CLOSED_FILTERS.closed));\n dispatch(redirect(`/manage/${workspaceSelected}`));\n };\n\n useEffect(() => {\n if (isFilteringByConfirm && isFilteringByClosed) {\n dispatch(getStatsFiltered('confirmed=true&only_opened=true'));\n }\n if (isFilteringByConfirm && !isFilteringByClosed) {\n dispatch(getStatsFiltered('confirmed=true'));\n }\n if (isFilteringByClosed && !isFilteringByConfirm) {\n dispatch(getStatsFiltered('only_opened=true'));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [filterArr, workspaceSelected]);\n\n return (\n <Wrapper>\n <Header>\n <Title>Vulnerabilities by Severity\n \n \n {groups\n ? (\n \n {groups.map((group) => { rootManage(group.severity); } } width={ totalCount ? group.count / totalCount : 1000 } key={ group.severity }>{group.count})}\n \n )\n : No vulnerabilities has been found yet.}\n \n );\n};\n\nexport default Vulnerabilities;\n","import styled from 'styled-components';\nimport { bpd } from 'utils/breakpoints';\n\nexport const Row = styled.div`\n \n ${({ from }) => bpd(from)`\n display: flex;\n `}\n justify-content: space-between;\n align-items: ${({ centered }) => (centered ? 'center' : undefined)};\n`;\nRow.displayName = 'Row';\n\nexport const Col = styled.div`\n flex: ${({ fit }) => (fit ? 'initial' : '1 1 auto')};\n text-align: ${({ textAlign }) => textAlign || 'initial'};\n height: ${(props) => (props.height ? `${props.height}` : undefined)};\n width: ${(props) => (props.width ? `${props.width}` : undefined)};\n max-width: ${(props) => (props.maxWidth ? `${props.maxWidth}` : undefined)};\n cursor: ${({ onClick }) => (onClick ? 'pointer' : undefined)};\n`;\nCol.displayName = 'Col';\n","import colors from 'Styles/colors';\nimport styled from 'styled-components';\nimport { Col } from 'Common/Components/Grid/index';\n\n// title\nexport const Title = styled.label`\n user-select: none;\n color: ${colors.dark2};\n font-size: 14px;\n font-weight: 500;\n opacity: 1;\n`;\nTitle.displayName = 'Title';\n\n// description\nexport const Description = styled.div`\n color: ${colors.grey6};\n font-size: 12px;\n line-height: 3.17;\n overflow: hidden;\n text-align: right;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: 300;\n`;\nDescription.displayName = 'Description';\n\n// text\nexport const Text = styled.div`\n color: ${colors.dark2};\n font-size: 13px;\n font-weight: 300;\n line-height: 2.62;\n opacity: 0.55;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\nText.displayName = 'Title';\n\nexport const StyledCol = styled(Col)`\n & > *:not(:last-child) {\n border-bottom: 1px solid ${colors.light2};\n }\n`;\nStyledCol.displayName = 'StyledCol';\n\nexport const Empty = styled.div`\n user-select: none;\n color: ${colors.grey5};\n display: inline;\n font-size: 13px;\n font-weight: 300;\n line-height: 2.62;\n`;\nEmpty.displayName = 'Empty';\n","import React, { useEffect } from 'react';\nimport {\n Col, Row\n} from 'Common/Components/Grid/index';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n getTopServices\n} from 'Screens/Dashboard/actions/Actions';\nimport get from 'lodash/get';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport { DASHBOARD_FILTERS } from 'store/Filters/constants';\nimport { setFilter } from 'store/Filters/actions';\nimport { redirect } from 'store/Router/actions';\nimport {\n Description, StyledCol, Text, Title, Empty\n} from './styled';\n\nconst TopServices = () => {\n const data = useSelector((state) => get(state, 'dashboard.tools[1].data', []));\n const workspaceSelected = useSelector(selectCurrentWorkspace);\n\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(getTopServices());\n }, [dispatch, workspaceSelected]);\n\n let content =
;\n\n const onServiceSelection = (serviceName) => {\n dispatch(setFilter('assets', DASHBOARD_FILTERS.assetsByServiceName(serviceName)));\n dispatch(redirect(`/host/${workspaceSelected}`));\n };\n\n if (get(data, 'total_count', 0) > 0) {\n content = (\n
\n \n
Services\n \n \n {\n data && data.groups\n ? data.groups.sort((a, b) => b.count - a.count)\n .slice(0, 6).map((service, index) => (\n \n onServiceSelection(service.name) }>{service.name.toUpperCase()}\n {service.count}\n \n ))\n : null\n }\n \n \n );\n } else {\n content = No top services has been found yet.;\n }\n\n return (\n \n \n \n Top Services\n \n { content }\n \n \n );\n};\n\nexport default TopServices;\n","import styled from 'styled-components';\n\n/* eslint-disable import/prefer-default-export */\nexport const ViewAll = styled.a`\n color: #1188ff;\n cursor: pointer;\n font-size: 13px;\n font-weight: 300;\n line-height: 2.62;\n`;\nViewAll.displayName = 'ViewAll';\n","import colors from 'Styles/colors';\nimport styled from 'styled-components';\nimport { Col } from 'Common/Components/Grid/index';\n\n// title\nexport const Title = styled.label`\n user-select: none;\n color: ${colors.dark2};\n font-size: 14px;\n font-weight: 500;\n opacity: 1;\n`;\nTitle.displayName = 'Title';\n\n// description\nexport const Description = styled.div`\n color: ${colors.grey6};\n font-size: 12px;\n line-height: 3.17;\n text-align: center;\n font-weight: 300;\n`;\nDescription.displayName = 'Description';\n\n// text\nexport const Text = styled.div`\n color: ${colors.dark2};\n font-size: 14px;\n font-weight: 200;\n line-height: 34px;\n opacity: 0.55;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\nText.displayName = 'Title';\n\nexport const StyledCol = styled(Col)`\n & > *:not(:last-child) {\n border-bottom: 1px solid ${colors.light2};\n }\n`;\nStyledCol.displayName = 'StyledCol';\n\nexport const Empty = styled.div`\n user-select: none;\n color: ${colors.grey5};\n display: inline;\n font-size: 13px;\n font-weight: 300;\n line-height: 2.62;\n`;\nEmpty.displayName = 'Empty';\n","import React, { useEffect } from 'react';\nimport { Col, Row } from 'Common/Components/Grid/index';\nimport {\n getTopHosts\n} from 'Screens/Dashboard/actions/Actions';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport { ViewAll } from 'Screens/Dashboard/components/ToolbarItems/Common/ViewAll/styled';\nimport { useDispatch, useSelector } from 'react-redux';\nimport get from 'lodash/get';\nimport { DASHBOARD_FILTERS } from 'store/Filters/constants';\nimport { setFilter, setOrderBy } from 'store/Filters/actions';\nimport { redirect } from 'store/Router/actions';\nimport {\n Description, Empty, StyledCol, Text, Title\n} from './styled';\nimport { ENTITIES } from 'store/Filters/entitiesConstants';\n\nconst oss = ['windows', 'cisco', 'router', 'osx', 'apple', 'linux', 'unix'];\n\nconst getHost = (host) => oss.find((os) => (host.value.os.toLowerCase().indexOf(os) > -1 ? os : ''));\n\nconst TopHosts = () => {\n const workspaceSelected = useSelector(selectCurrentWorkspace);\n const dispatch = useDispatch();\n const data = useSelector((state) => get(state, 'dashboard.tools[2].data', []));\n\n useEffect(() => {\n dispatch(getTopHosts());\n }, [dispatch, workspaceSelected]);\n\n let content =
;\n\n const onAssetSelection = (ip) => {\n dispatch(setFilter('assets', DASHBOARD_FILTERS.assetsByIp(ip)));\n dispatch(redirect(`/host/${workspaceSelected}`));\n };\n\n const viewAll = () => {\n const orderBy = [\n { id: 'vulnerability_critical_generic_count', desc: 'desc' },\n { id: 'vulnerability_high_generic_count', desc: 'desc' },\n { id: 'vulnerability_medium_generic_count', desc: 'desc' }];\n\n dispatch(setOrderBy(ENTITIES.assets.name.value, orderBy));\n dispatch(redirect(`/host/${workspaceSelected}`));\n };\n\n if (data && data.rows && data.rows.length > 0) {\n content = (\n
\n \n
\n Vulns\n \n \n \n {\n data.rows\n .sort((a, b) => b.value.vulns - a.value.vulns)\n .slice(0, 6)\n .map((host, index) => (\n \n onAssetSelection(host.value.ip) }>{ host.value.ip }\n { host.value.vulns }\n { getHost(host) }\n \n ))\n }\n \n View All\n\n \n );\n } else {\n content = No most vulnerable assets has been found yet.;\n }\n\n return (\n \n \n \n Most Vulnerable Assets\n \n {content}\n \n \n );\n};\n\nexport default TopHosts;\n","import colors from 'Styles/colors';\nimport styled from 'styled-components';\nimport { Row } from 'Common/Components/Grid';\n\nexport const Wrapper = styled.div`\n border-radius: 3px;\n margin-bottom: 14px;\n margin-right: 14px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n user-select: none;\n color: ${colors.white};\n font-size: 14px;\n font-weight: 600;\n padding: 0 0 22px 0;\n`;\nTitle.displayName = 'Title';\n\nexport const Value = styled.div`\n user-select: none;\n color: ${colors.white};\n font-size: 27px;\n font-weight: 600;\n line-height: normal;\n text-align: center;\n`;\nValue.displayName = 'Value';\n\nexport const Name = styled.div`\n user-select: none;\n color: ${colors.grey7};\n font-size: 12px;\n font-stretch: normal;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-height: normal;\n text-align: center;\n`;\nName.displayName = 'Name';\n\nexport const StyledRow = styled(Row)`\n & > *:not(:last-child) {\n & > *:not(:last-child) {\n border-right: 1px dashed ${colors.blue2};\n }\n }\n align-items: center;\n justify-content: center;\n`;\nStyledRow.displayName = 'StyledRow';\n\nexport const Empty = styled.div`\n user-select: none;\n color: ${colors.grey5};\n display: inline;\n font-size: 13px;\n font-weight: 300;\n line-height: 2.62;\n`;\nEmpty.displayName = 'Empty';\n\nexport const ClickableRow = styled(Row)`\n cursor: pointer;\n`;\nClickableRow.displayName = 'ClickableRow';\n","import React, { useEffect } from 'react';\nimport { Col, Row } from 'Common/Components/Grid';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n getSummary\n} from 'Screens/Dashboard/actions/Actions';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport get from 'lodash/get';\nimport { CLOSED_FILTERS, CONFIRMED_FLAG_FILTERS, DASHBOARD_FILTERS } from 'store/Filters/constants';\nimport { isFilteringBy } from 'store/Filters/selectors';\nimport { redirect } from 'store/Router/actions';\nimport {\n StyledRow, Name, Title, Value, Empty, ClickableRow\n} from './styled';\nimport { setFilter } from 'store/Filters/actions';\n/* eslint-disable consistent-return */\nconst Summary = () => {\n const dispatch = useDispatch();\n const workspaceSelected = useSelector(selectCurrentWorkspace);\n const data = useSelector((state) => get(state, 'dashboard.tools[3].data.stats', {}));\n\n const { confirmed } = CONFIRMED_FLAG_FILTERS;\n const { closed } = CLOSED_FILTERS;\n\n const isFilteringByConfirm = useSelector((state) => isFilteringBy(state, 'vulns', confirmed));\n const isFilteringByClosed = useSelector((state) => isFilteringBy(state, 'vulns', closed));\n\n useEffect(() => {\n if (!isFilteringByConfirm && !isFilteringByClosed) {\n dispatch(getSummary());\n }\n }, [dispatch, workspaceSelected, isFilteringByConfirm, isFilteringByClosed]);\n\n const goToAssets = () => {\n dispatch(redirect(`/host/${workspaceSelected}`));\n };\n\n const goToManage = () => {\n dispatch(redirect(`/manage/${workspaceSelected}`));\n };\n\n const goToManageWebVulns = () => {\n dispatch(setFilter('vulns', DASHBOARD_FILTERS.vulnerabilitiesByType('vulnerability_web')));\n\n dispatch(redirect(`/manage/${workspaceSelected}`));\n };\n\n return (\n \n \n \n Workspace Summary\n \n { data\n ? (\n \n \n {data.hosts}\n Assets\n \n\n \n {data.services}\n Services\n \n\n \n \n {data.total_vulns || 0}\n \n Total Vulnerabilities\n \n\n \n \n {data.web_vulns || 0}\n \n Web Vulns\n \n\n \n )\n : There is no Vulnerabilities to show. }\n \n \n );\n};\n\nexport default Summary;\n","import colors from 'Styles/colors';\n\nconst severityMapColors = {\n critical: colors.warmPurple,\n high: colors.redPink,\n info: colors.grey2,\n low: colors.apple,\n med: colors.tangerine,\n unclasified: colors.grey4\n};\n\nexport default severityMapColors;\n","import colors from 'Styles/colors';\nimport styled from 'styled-components';\nimport { Col } from 'Common/Components/Grid';\nimport severityMapColors from 'Common/styled/common';\n\nexport const Title = styled.label`\n user-select: none;\n color: ${colors.dark2};\n font-size: 14px;\n font-weight: 500;\n opacity: 1;\n`;\nTitle.displayName = 'Title';\n\nexport const Text = styled.div`\n color: ${colors.blue5};\n display: inline;\n font-size: 13px;\n font-weight: 300;\n line-height: 2.62;\n`;\nText.displayName = 'Text';\n\nexport const TextOpacity = styled(Text)`\n display: inline;\n opacity: 0.5;\n text-align: rigth;\n`;\nTextOpacity.displayName = 'TextOpacity';\n\nexport const TextWrapper = styled.div`\n width: ${(props) => (props.width ? `${props.width}` : undefined)};\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n &:first-child {\n margin-right: 10px;\n }\n`;\nText.displayName = 'Text';\n\nexport const Severity = styled.div`\n background-color: ${(props) => severityMapColors[props.level] || colors.grey4};\n border-radius: 4px;\n color: ${colors.white};\n display: inline-block;\n font-size: 9px;\n font-weight: 900;\n height: 20px;\n line-height: 20px;\n margin: 10px 10px 10px 0;\n text-align: center;\n text-transform: uppercase;\n width: 24px;\n`;\nSeverity.displayName = 'Severity';\n\nexport const StyledCol = styled(Col)`\n line-height: 34px;\n & > *:not(:last-child) {\n border-bottom: 1px solid ${colors.light2};\n }\n`;\nStyledCol.displayName = 'StyledCol';\n\nexport const LatestVulnEntry = styled.div`\n cursor: pointer;\n`;\nLatestVulnEntry.displayName = 'LatestVulnEntry';\n\nexport const TextContainer = styled.div`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\nLatestVulnEntry.displayName = 'TextContainery';\n\nexport const Empty = styled.div`\n user-select: none;\n color: ${colors.grey5};\n display: inline;\n font-size: 13px;\n font-weight: 300;\n line-height: 2.62;\n`;\nEmpty.displayName = 'Empty';\n","import React, { useEffect } from 'react';\nimport { Col, Row } from 'Common/Components/Grid/index';\nimport { ViewAll } from 'Screens/Dashboard/components/ToolbarItems/Common/ViewAll/styled';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n getLatestVulns\n} from 'Screens/Dashboard/actions/Actions';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport get from 'lodash/get';\nimport { CONFIRMED_FLAG_FILTERS, DASHBOARD_FILTERS } from 'store/Filters/constants';\nimport { setFilter, setOrderBy } from 'store/Filters/actions';\nimport { redirect } from 'store/Router/actions';\nimport { isFilteringBy } from 'store/Filters/selectors';\nimport {\n Severity, StyledCol, Text, TextOpacity, Title, LatestVulnEntry, TextWrapper, Empty\n} from './styled';\n\nconst LatestVulns = () => {\n const dispatch = useDispatch();\n const data = useSelector((state) => get(state, 'dashboard.tools[5].data', []));\n const workspaceSelected = useSelector(selectCurrentWorkspace);\n\n const { confirmed } = CONFIRMED_FLAG_FILTERS;\n const isFilteringByConfirm = useSelector((state) => isFilteringBy(state, 'vulns', confirmed));\n\n useEffect(() => {\n dispatch(getLatestVulns(isFilteringByConfirm));\n }, [workspaceSelected, isFilteringByConfirm, dispatch]);\n\n const onClick = (id) => {\n dispatch(setFilter('vulns', DASHBOARD_FILTERS.vulnerabilityById(id)));\n dispatch(redirect(`/manage/${workspaceSelected}`));\n };\n\n const viewAll = () => {\n dispatch(setOrderBy('vulns', [{ id: 'create_date', desc: 'desc' }]));\n dispatch(redirect(`/manage/${workspaceSelected}`));\n };\n\n return (\n \n \n Latest Vulnerabilities\n \n { (data && data.vulnerabilities && data.vulnerabilities.length > 0)\n ? (\n \n {data.vulnerabilities.slice(0, 5).map((vuln) => (\n \n onClick(vuln.id) }>\n \n \n {vuln.value.severity.charAt(0)}\n {vuln.value.name}\n \n \n {get(vuln, 'value.service.name', 'service') }\n {get(vuln, 'value.target', '')}\n \n \n ))}\n \n )\n : No vulnerabilities has been found yet. }\n { (data && data.vulnerabilities && data.vulnerabilities.length > 0) && View All }\n \n );\n};\n\nexport default LatestVulns;\n","import colors from 'Styles/colors';\nimport styled from 'styled-components';\n\nconst color = {\n 'open': colors.warmPurple,\n 're-opened': colors.redPink,\n 'risk-accepted': colors.apple,\n 'closed': colors.grey2\n};\n\nexport const Wrapper = styled.div`\n height: 250px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.label`\n user-select: none;\n color: ${colors.dark2};\n font-size: 14px;\n font-weight: 500;\n opacity: 1;\n`;\nTitle.displayName = 'Title';\n\nexport const Empty = styled.div`\n user-select: none;\n color: ${colors.grey5};\n display: inline;\n font-size: 13px;\n font-weight: 300;\n line-height: 2.62;\n`;\nEmpty.displayName = 'Empty';\n\nexport const ContentWrapper = styled.div`\n @media(min-width: 1480px) {\n display: flex;\n justify-content: center;\n }\n`;\nContentWrapper.displayName = 'ContentWrapper';\n\nexport const PieWrapper = styled.div`\n height: 190px;\n max-width: 255px;\n margin: 0 auto;\n @media(min-width: 1480px) {\n margin: 0;\n height: 200px;\n max-width: 275px;\n }\n`;\nPieWrapper.displayName = 'PieWrapper';\n\nexport const References = styled.div`\n display: flex;\n flex-wrap: wrap;\n justify-content: space-evenly;\n @media(min-width: 1480px) {\n flex-direction: column;\n justify-content: center;\n } \n`;\nReferences.displayName = 'References';\n\nexport const Reference = styled.div`\n display: flex;\n align-items: center;\n font-size: 12px;\n cursor: pointer;\n &::before {\n width: 10px;\n height: 10px;\n margin-right: 6px;\n content: \"\";\n background-color:${({ status }) => color[status]};\n border-radius: 50%;\n }\n @media(min-width: 1480px) {\n margin-bottom: 8px;\n } \n`;\nReference.displayName = 'Reference';\n\nexport const FlyoutWrapper = styled.div`\n background-color: #FFF;\n border-radius: 2px;\n border: 1px solid #d9e4ef;\n text-align: center;\n`;\nFlyoutWrapper.displayName = 'FlyoutWrapper';\n\nexport const Status = styled.div`\n color: ${({ status }) => color[status]};\n`;\nStatus.displayName = 'Status';\n\nexport const Value = styled.div`\n color: #63758d;\n`;\nValue.displayName = 'Value';\n","/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport get from 'lodash/get';\nimport { Col, Row } from 'Common/Components/Grid/index';\nimport {\n VictoryPie, Slice, VictoryContainer, VictoryTooltip, Selection\n} from 'victory';\nimport { DASHBOARD_FILTERS } from 'store/Filters/constants';\nimport { setFilter } from 'store/Filters/actions';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport colors from 'Styles/colors';\nimport { redirect } from 'store/Router/actions';\nimport {\n Wrapper, Title, Empty, ContentWrapper, PieWrapper, References, Reference,\n FlyoutWrapper, Status, Value\n} from './styled';\n\nconst StatusChart = () => {\n const dispatch = useDispatch();\n const stats = useSelector((state) => get(state, 'dashboard.tools[3].data.stats', {}));\n const workspaceSelected = useSelector((state) => selectCurrentWorkspace(state));\n\n const data = [];\n if (stats.opened_vulns > 0) data.push({ id: 'open', name: 'Open', value: stats.opened_vulns });\n if (stats.closed_vulns > 0) data.push({ id: 'closed', name: 'Closed', value: stats.closed_vulns });\n if (stats.re_opened_vulns > 0) data.push({ id: 're-opened', name: 'Re-opened', value: stats.re_opened_vulns });\n if (stats.risk_accepted_vulns > 0) data.push({ id: 'risk-accepted', name: 'Risk Accepted', value: stats.risk_accepted_vulns });\n\n const sliceColor = (name) => {\n if (name === 'Open') return colors.warmPurple;\n else if (name === 'Closed') return colors.grey2;\n else if (name === 'Re-opened') return colors.redPink;\n else return colors.apple;\n };\n\n const handleClick = (status) => {\n dispatch(setFilter('vulns', DASHBOARD_FILTERS.vulnerabilitiesByStatus(status)));\n dispatch(redirect(`/manage/${workspaceSelected}`));\n };\n\n const CustomSlice = (props) => {\n return (\n {\n handleClick(props.datum.id);\n },\n onMouseOver: (e) => {\n if (props.events.onMouseOver) {\n props.events.onMouseOver(e);\n }\n },\n onMouseOut: (e) => {\n if (props.events.onMouseOut) {\n props.events.onMouseOut(e);\n }\n }\n } }\n />\n );\n };\n\n const Flyout = ({ props }) => {\n return (\n \n \n \n {props.datum.name}\n {props.datum.value}\n \n \n \n );\n };\n\n const CustomLabel = (props = {}) => {\n return (\n \n }\n />\n \n );\n };\n CustomLabel.defaultEvents = VictoryTooltip.defaultEvents;\n\n return (\n \n \n Vulnerabilities by status\n \n { data.length > 0\n ? (\n \n }\n data={ data }\n x=\"name\"\n y=\"value\"\n style={ { data: { fill: ({ datum }) => sliceColor(datum.name) } } }\n height={ 220 }\n width={ 300 }\n radius={ 75 }\n innerRadius={ 55 }\n labels={ () => '' }\n labelComponent={ }\n events={ [\n {\n target: 'data',\n eventHandlers: {\n onMouseOver: evt => {\n const { x, y } = Selection.getSVGEventCoordinates(evt);\n return {\n target: 'labels',\n mutation: () => ({ x, y, active: true })\n };\n },\n onMouseMove: evt => {\n const { x, y } = Selection.getSVGEventCoordinates(evt);\n return {\n target: 'labels',\n mutation: () => ({ x, y, active: true })\n };\n },\n onMouseOut: () => {\n return { target: 'labels', mutation: () => ({ active: false }) };\n }\n }\n }\n ] }\n containerComponent={ }\n />\n \n \n {data.map((status) => handleClick(status.id) } status={ status.id } key={ status.id }>{ status.name })}\n \n \n )\n : No vulnerabilities has been found yet. }\n \n );\n};\n\nexport default StatusChart;\n","import colors from 'Styles/colors';\nimport styled from 'styled-components';\n\nexport const Box = styled.div`\n border-radius: 3px;\n border: solid 1px ${colors.grey1};\n box-shadow: 0 0 20px 0 rgba(209, 218, 227, 0.97);\n padding: 11px 22px 22px 22px;\n text-align: left;\n height: 100%;\n`;\nBox.displayName = 'Box';\n\nexport const DarkBox = styled(Box)`\n background-color: ${colors.dark1};\n box-shadow: rgb(209 218 227 / 97%) 0px 0px;\n`;\nBox.displayName = 'DarkBox';\n","import styled from 'styled-components';\nimport { Row, Col } from 'Common/Components/Grid';\nimport colors from 'Styles/colors';\nimport { Box } from 'Screens/Dashboard/components/ToolbarItems/Common/Box/styled';\n\nexport const StyledRow = styled(Row)`\n flex-direction: ${(props) => (props.direction ? `${props.direction}` : 'auto')};\n ${({ marginBottom }) => marginBottom && `\n & > *:not(:last-child) {\n margin-bottom: 14px;\n }\n `}\n ${({ marginRight }) => marginRight && `\n & > *:not(:last-child) {\n margin-right: 7px;\n }\n `}\n`;\nStyledRow.displayName = 'StyledRow';\n\nexport const StyledCol = styled(Col)`\n ${({ marginBottom }) => marginBottom && `\n & > *:not(:last-child) {\n margin-bottom: 14px;\n }\n `}\n ${({ marginRight }) => marginRight && `\n & > *:not(:last-child) {\n margin-right: 7px;\n }\n `}\n`;\nStyledCol.displayName = 'StyledCol';\n\nexport const BoxLatestVulns = styled.div`\n border-radius: 3px;\n border: solid 1px ${colors.grey1};\n box-shadow: 0 0 20px 0 rgba(209, 218, 227, 0.97);\n padding: 22px;\n text-align: left;\n height: 100%;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n border-top: 0;\n`;\nBoxLatestVulns.displayName = 'BoxLatestVulns';\n\nexport const BoxSummary = styled(Box)`\n background-color: ${colors.dark1};\n box-shadow: rgb(209 218 227 / 97%) 0px 0px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n border-bottom: 0;\n`;\nBoxSummary.displayName = 'BoxSummary';\n\nexport const SummaryStyledCol = styled(StyledCol)`\n margin-bottom: 0px !important;\n`;\nSummaryStyledCol.displayName = 'SummaryStyledCol';\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgAgentSmall = function SvgAgentSmall(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 10,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.808 0C6.43 0 6.93.495 6.93 1.111c0 .453-.29.853-.687 1.02l-.081.03v.918h2.684c.75 0 1.377.582 1.425 1.324l.002.09v.495h.427c.463 0 .848.358.877.816l.001.078v1.256a.89.89 0 0 1-.814.878l-.076.003h-.427v.568c0 .743-.587 1.364-1.337 1.41l-.09.003H2.745c-.75 0-1.377-.58-1.424-1.323l-.003-.09v-.58H.89a.893.893 0 0 1-.888-.806L0 7.126V5.87c0-.458.362-.84.814-.878l.077-.004h.451v-.494c0-.744.587-1.365 1.337-1.41l.09-.004h2.685v-.918a1.112 1.112 0 0 1-.769-1.05C4.685.494 5.185 0 5.808 0Zm3.038 3.78H2.757a.719.719 0 0 0-.716.645l-.004.068v4.094c0 .375.292.675.652.71l.068.002h6.077a.718.718 0 0 0 .716-.644l.003-.068h.012V4.493a.717.717 0 0 0-.72-.713Zm-2.27 3.89c.194-.001.353.155.354.35a.353.353 0 0 1-.354.35H5.015a.353.353 0 0 1-.354-.35.353.353 0 0 1 .354-.351h1.561ZM1.318 5.7H.89a.188.188 0 0 0-.18.146l-.003.035v1.244c0 .084.065.16.147.178l.036.003h.427V5.7Zm9.37 0h-.427v1.606h.427a.188.188 0 0 0 .179-.145l.004-.036V5.881a.187.187 0 0 0-.183-.181Zm-6.393-.978c.634 0 1.159.507 1.159 1.147a1.16 1.16 0 0 1-1.16 1.148 1.16 1.16 0 0 1-1.158-1.148 1.16 1.16 0 0 1 1.159-1.147Zm3.001-.012a1.153 1.153 0 0 1 1.16 1.147 1.16 1.16 0 0 1-1.16 1.148 1.16 1.16 0 0 1-1.16-1.148 1.153 1.153 0 0 1 1.16-1.147Zm-3.001.7a.44.44 0 0 0-.452.448c0 .253.208.446.452.446a.448.448 0 1 0 0-.893Zm3.001 0a.44.44 0 0 0-.451.448c0 .253.207.446.451.446a.44.44 0 0 0 .451-.447.448.448 0 0 0-.45-.446ZM5.795.7a.41.41 0 0 0-.415.411c0 .23.183.41.415.41a.41.41 0 1 0 0-.82V.7Z\",\n fill: \"#FFF\",\n fillRule: \"evenodd\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgAgentSmall, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/agent_small.d1a2c9fe.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgReportSmall = function SvgReportSmall(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 8,\n height: 12,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.42.103c.243.112.444.299.573.534l.044.09h.988c.147.01.265.123.282.27l.002.048v.307h1.234a.484.484 0 0 1 .454.427L8 1.838v6.441a.283.283 0 0 1-.033.12l-.022.036-2.383 2.659a.283.283 0 0 1-.171.101l-.051.005H.458a.473.473 0 0 1-.456-.441L0 10.695V1.838a.485.485 0 0 1 .381-.435l.057-.008h1.235v-.306A.306.306 0 0 1 1.91.778L1.957.77h.938c.114-.293.335-.531.618-.668a1.05 1.05 0 0 1 .907 0ZM1.674 2.131h-.76a.215.215 0 0 0-.202.189l-.002.042v7.833a.224.224 0 0 0 .161.223l.043.008H4.94v-2.21a.352.352 0 0 1 .279-.355l.054-.006H7.29V2.363a.22.22 0 0 0-.161-.224l-.043-.007H6.34v.33a.48.48 0 0 1-.367.471l-.06.01H2.149a.477.477 0 0 1-.471-.42l-.003-.06v-.332Zm5.024 6.454h-1.1v1.248l1.1-1.248Zm-.225-2.918c.144 0 .261.118.261.262v.101a.261.261 0 0 1-.26.261H1.526a.261.261 0 0 1-.26-.261v-.101c0-.144.116-.262.26-.262h4.946Zm0-1.241c.144 0 .261.117.261.261v.101a.262.262 0 0 1-.26.262H1.526a.261.261 0 0 1-.26-.262v-.1c0-.145.116-.262.26-.262h4.946ZM3.73.858a.556.556 0 0 0-.195.287l-.016.069-.018.175a.118.118 0 0 1-.087.108l-.03.004H2.364v.668h3.272v-.644h-1a.117.117 0 0 1-.112-.082l-.005-.03-.037-.2a.523.523 0 0 0-.39-.437.447.447 0 0 0-.363.082Z\",\n fill: \"#FFF\",\n fillRule: \"evenodd\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgReportSmall, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/report_small.e8a3d444.svg\";\nexport { ForwardRef as ReactComponent };","var _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIcoWebShell = function SvgIcoWebShell(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 200 200\",\n style: {\n enableBackground: \"new 0 0 200 200\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n style: {\n fill: \"none\",\n stroke: \"#FFFFFF\",\n strokeWidth: 8,\n strokeLinecap: \"square\",\n strokeMiterlimit: 10\n },\n d: \"M173.08,157.611H27.081 V54.692c0-6.693,5.426-12.119,12.119-12.119h121.762c6.693,0,12.119,5.426,12.119,12.119V157.611z\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n style: {\n fill: \"none\",\n stroke: \"#FFFFFF\",\n strokeWidth: 8,\n strokeMiterlimit: 10\n },\n x1: 27.081,\n y1: 67.208,\n x2: 173.08,\n y2: 67.208\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"polyline\", {\n style: {\n fill: \"none\",\n stroke: \"#FFFFFF\",\n strokeWidth: 6,\n strokeMiterlimit: 10\n },\n points: \"58.222,92.638 78.132,112.548 58.222,132.458 \"\n }), /*#__PURE__*/React.createElement(\"line\", {\n style: {\n fill: \"none\",\n stroke: \"#FFFFFF\",\n strokeWidth: 6,\n strokeMiterlimit: 10\n },\n x1: 97.92,\n y1: 127.251,\n x2: 140.939,\n y2: 127.251\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIcoWebShell, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/ico-web-shell.fc841a37.svg\";\nexport { ForwardRef as ReactComponent };","import colors from 'Styles/colors';\nimport styled from 'styled-components';\nimport { Col, Row } from 'Common/Components/Grid';\nimport { ReactComponent as Agents } from 'Images/agent_small.svg';\nimport { ReactComponent as Reports } from 'Images/report_small.svg';\nimport { ReactComponent as Shell } from 'Images/ico-web-shell.svg';\n\nexport const Wrapper = styled.div`\n height: ${(props) => (props.height ? `${props.height}` : 'auto')};\n padding: 0 0 22px 0;\n text-align: left;\n width: ${(props) => (props.width ? `${props.width}` : 'auto')};\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Vulnerabilities = styled.div`\n color: ${colors.dark3};\n font-size: 14px;\n font-weight: 600;\n line-height: 1.93;\n letter-spacing: normal;\n`;\nVulnerabilities.displayName = 'Vulnerabilities';\n\nexport const HostsAndServices = styled(Vulnerabilities)`\n font-weight: 400;\n margin-left: 3px;\n`;\nHostsAndServices.displayName = 'HostsAndServices';\n\n// time\nexport const Time = styled.div`\n color: ${colors.blueGrey};\n font-size: 12px;\n font-weight: 500;\n line-height: 1.92;\n`;\nTime.displayName = 'Time';\n\n// author\nexport const Author = styled.div`\n display: flex;\n flex-wrap: wrap;\n font-size: 12px;\n font-weight: 500;\n line-height: normal;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n & >:nth-child(2) {\n margin: 0 4px;\n }\n`;\nAuthor.displayName = 'Author';\n\nexport const Dark = styled.div`\n color: ${colors.dark4};\n`;\nDark.displayName = 'Dark';\n\nexport const Light = styled.div`\n color: ${colors.grey5};\n`;\nLight.displayName = 'Light';\n\nexport const Tag = styled.div`\n background-color: ${colors.grey8};\n border-radius: 3px;\n color: ${colors.white};\n font-size: 12px;\n font-weight: 500;\n line-height: 1.92;\n margin-left: auto;\n padding: 0 8px;\n text-align: center;\n display: flex;\n align-items: center;\n height: 24px;\n`;\nTag.displayName = 'Tag';\n\nexport const Tool = styled.span`\n max-width: 110px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\nTool.displayName = 'Tool';\n\nexport const Arrow = styled.div`\n border-color: ${colors.grey5};\n border-style: solid;\n border-width: 0 2px 2px 0;\n display: inline-block;\n padding: 3px;\n`;\nArrow.displayName = 'Arrow';\n\nexport const ArrowDown = styled(Arrow)`\n -webkit-transform: rotate(45deg);\n margin: 0px 0px 0 48px;\n transform: rotate(45deg);\n`;\nArrowDown.displayName = 'ArrowDown';\n\nexport const StyledCol = styled(Col)`\n height: 60vw;\n overflow: auto;\n line-height: 2.2;\n padding-right: 7px;\n overflow-y: scroll;\n`;\nStyledCol.displayName = 'StyledCol';\n\nexport const In = styled.span`\n font-weight: normal;\n`;\nIn.displayName = 'In';\n\nexport const Empty = styled.div`\n color: ${colors.grey5};\n font-size: 13px;\n font-weight: 300;\n line-height: 2.62;\n padding: 15px 2px;\n display: flex;\n justify-content: center;\n`;\nEmpty.displayName = 'Empty';\n\nexport const WrapperActivity = styled(Row)`\n cursor:pointer;\n margin: 9px 0px 17px;\n flex-direction: column;\n background-color: ${colors.white};\n border: 1px solid #e4e9ee;\n border-left: 2px solid ${colors.blueCerulean};\n border-radius: 2px;\n padding: 18px 23px 16px 21px;\n &:hover {\n opacity: 0.8;\n }\n`;\nWrapperActivity.displayName = 'WrapperActivity';\n\nexport const ActivityDescription = styled.div`\n display: flex;\n flex-wrap: wrap;\n`;\nActivityDescription.displayName = 'ActivityDescription';\n\nexport const ActivityFooter = styled.div`\n display: flex;\n flex-wrap: wrap;\n margin-top: 15px;\n`;\nActivityFooter.displayName = 'ActivityFooter';\n\nexport const AgentIcon = styled(Agents)`\n margin-right: 4px;\n`;\nAgentIcon.displayName = 'AgentIcon';\n\nexport const ReportIcon = styled(Reports)`\n margin-right: 4px;\n`;\nReportIcon.displayName = 'ReportIcon';\n\nexport const ShellIcon = styled(Shell)`\n margin-right: 4px;\n width: 17px;\n`;\nShellIcon.displayName = 'ShellIcon';\n\nexport const Center = styled.div`\n width: 100%;\n text-align: center;\n`;\nCenter.displayName = 'Center';\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const ButtonLink = styled.button`\n color: ${colors.blueCerulean};\n text-decoration: none;\n font-size: 12px;\n font-weight: 500;\n background: transparent;\n border: 0;\n padding: 0 5px;\n`;\nButtonLink.displayName = 'ButtonLink';\n","import React, { useEffect, useState } from 'react';\nimport { getActivityFeed } from 'Screens/Dashboard/actions/Actions';\nimport { selectActiveFeeds, selectIsFetching } from 'store/Dashboard/selectors';\nimport get from 'lodash/get';\nimport find from 'lodash/find';\nimport { DASHBOARD_FILTERS } from 'store/Filters/constants';\nimport { setFilter } from 'store/Filters/actions';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport { redirect } from 'store/Router/actions';\nimport DateFormatter from 'Common/Components/DateFormatter';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n Author, Vulnerabilities, HostsAndServices, StyledCol, Tag, Time, Wrapper, Empty, Tool,\n WrapperActivity, ActivityDescription, ActivityFooter, AgentIcon, ReportIcon, Dark, Light,\n ShellIcon, Center\n} from './styled';\nimport { ButtonLink } from 'Common/Components/ButtonLink/styled';\n\nconst ActivityFeed = () => {\n const dispatch = useDispatch();\n const data = useSelector(selectActiveFeeds);\n const workspaceSelected = useSelector(selectCurrentWorkspace);\n const [page, setPage] = useState(1);\n const isFetching = useSelector(selectIsFetching);\n\n const viewMore = () => {\n setPage(page + 1);\n };\n\n useEffect(() => {\n dispatch(getActivityFeed(page));\n }, [dispatch, page, workspaceSelected]);\n\n const onClick = (command) => {\n dispatch(setFilter('vulns', DASHBOARD_FILTERS.commandIdFilter(command.toString())));\n dispatch(redirect(`/manage/${workspaceSelected}`));\n };\n\n let content =
;\n\n if (get(data, 'activities.length', 0) > 0) {\n const elements = data.activities.slice(0, data.activities.length).filter((x) => x.hosts_count > 0 || x.services_count > 0 || x.vulnerabilities_count > 0);\n content = elements.map((activity, index) => {\n const isAgent = activity.import_source === 'agent';\n const isReport = activity.import_source === 'report';\n const isShell = activity.import_source === 'shell';\n let author = activity.creator;\n let fileName = activity.params;\n\n if (isAgent) {\n author = activity.command;\n } else if (isReport) {\n author = activity.creator;\n const index = activity.params.indexOf('_');\n fileName = activity.params.slice(index + 1);\n }\n\n const severity = find([\n { name: 'critical', value: activity.criticalIssue },\n { name: 'high', value: activity.highIssue },\n { name: 'med', value: activity.mediumIssue },\n { name: 'low', value: activity.lowIssue },\n { name: 'info', value: activity.infoIssue }\n ], (serverity) => serverity.value > 0);\n\n return (\n onClick(activity._id) } key={ `dashboard_activity_feed_${index}` } severity={ get(severity, 'name', '') }>\n \n \n { `${activity.vulnerabilities_count} Vulnerabilities.` }\n \n \n { activity.hosts_count ? `${activity.hosts_count} Assets,` : 'No Assets,' }\n { activity.services_count ? ` ${activity.services_count} Services.` : ' no Services.' }\n \n \n { isAgent && (\n \n Triggered by: \n { author }\n \n )}\n { isReport && (\n \n { author }\n imported \n { fileName }\n \n ) }\n \n \n \n { isAgent && }\n { isReport && }\n { isShell && }\n { activity.tool }\n \n \n \n );\n });\n } else {\n content = No feeds has been found yet.;\n }\n\n const getDataTotal = () => get(data, 'activities.length', 0);\n const isEmpty = data?.activities?.filter((x) => x.hosts_count > 0 || x.services_count > 0 || x.vulnerabilities_count > 0).length === 0;\n\n return (\n \n \n {content}\n
{ (getDataTotal() > (page * 15) && !isEmpty) && Show more }
\n
\n
\n );\n};\n\nexport default ActivityFeed;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as ClipboardIcon } from 'Images/copy.svg';\n\nexport const ClipboardWrapper = styled.div`\n display: none;\n background: #0082ed;\n width: 26px;\n height: 26px;\n justify-content: center;\n align-items: center;\n box-sizing: border-box;\n border-bottom-right-radius: 3px;\n border-top-right-radius: 3px;\n position: absolute;\n right: 0;\n`;\n\nClipboardWrapper.displayName = 'ClipboardWrapper';\n\nexport const Wrapper = styled.div`\n cursor: pointer;\n background: ${colors.paleGrey};\n height: 26px;\n padding: 0px 9px;\n font-size: 12px;\n border: 1px solid #e4e9ee;\n margin-bottom: 4px;\n display: flex;\n align-items: center;\n position: relative;\n box-sizing: content-box;\n border-bottom-right-radius: 3px;\n border-top-right-radius: 3px;\n \n &:hover {\n & ${ClipboardWrapper} {\n display: flex;\n }\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Text = styled.div`\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n width: 94%;\n`;\nText.displayName = 'Text';\n\nexport const Icon = styled(ClipboardIcon)`\n display: flex;\n width: 12px;\n height: 14px;\n & > path {\n fill: ${colors.white};\n }\n`;\n\nIcon.displayName = 'Icon';\n","import React from 'react';\nimport copyToClipboard from 'utils/clipboard';\nimport { ClipboardWrapper, Icon } from '../Target/styled';\n\nconst Clipboard = ({ text }) => {\n const onClick = () => copyToClipboard(text);\n\n return (\n \n \n \n );\n};\n\nexport default Clipboard;\n","import React from 'react';\nimport Clipboard from 'Screens/Dashboard/components/ToolbarItems/Card/components/Clipboard';\nimport { Wrapper, Text } from './styled';\n\nconst Target = ({ children, title }) => {\n return (\n \n {children}\n \n \n );\n};\n\nexport default Target;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n margin: 9px 0px 17px;\n flex-direction: column;\n background-color: ${colors.white};\n border: 1px solid #e4e9ee;\n border-left: 2px solid ${colors.blue5};\n border-radius: 2px;\n padding: 18px 23px 16px 21px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Content = styled.div`\n display: flex; \n`;\nContent.displayName = 'Content';\n\nexport const Label = styled.div`\n font-size: 12px;\n font-weight: 500;\n color: ${colors.blue5};\n margin-right: 5px;\n`;\nLabel.displayName = 'Label';\n\nexport const Data = styled.div`\n font-size: 12px;\n font-weight: 500;\n color: ${colors.dark4};\n`;\nData.displayName = 'Data';\n\nexport const RunBy = styled.div`\n display: flex;\n line-height: 1.93;\n width: 50%;\n`;\nRunBy.displayName = 'RunBy';\n\nexport const Duration = styled.div`\n display: flex; \n line-height: 1.93;\n`;\nDuration.displayName = 'Duration';\n\nexport const DateTime = styled.div`\n line-height: 1.93;\n margin-top: 19px;\n font-size: 12px;\n font-weight: 500;\n color: ${colors.blueGrey};\n`;\nDateTime.displayName = 'DateTime';\n","import Skeleton from 'Common/Components/Skeleton';\nimport React from 'react';\nimport TimeAgo from 'react-timeago';\nimport Target from './components/Target';\nimport { Wrapper, Content, Data, DateTime, Duration, Label, RunBy } from './styled';\n\nconst Card = ({ isSkeleton, target, user, duration, date }) => {\n const getDuration = () => {\n if (duration) return `${duration} secs`;\n return '-';\n };\n\n return (\n \n {isSkeleton ? : target}\n \n \n \n {isSkeleton ? : user}\n \n \n \n {isSkeleton ? : getDuration()}\n \n \n {isSkeleton ? : (date && )}\n \n );\n};\nexport default Card;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n height: 60vw;\n overflow: auto;\n padding-right: 7px;\n & > :last-child {\n width: 100%;\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Empty = styled.div`\n color: ${colors.grey5};\n font-size: 13px;\n font-weight: 300;\n line-height: 2.62;\n padding: 15px 2px;\n display: flex;\n justify-content: center;\n`;\nEmpty.displayName = 'Empty';\n","import React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { getCommandHistory } from 'Screens/Dashboard/actions/Actions';\nimport Card from 'Screens/Dashboard/components/ToolbarItems/Card';\nimport { selectCommandHistory, selectIsFetching } from 'store/Dashboard/selectors';\nimport { ButtonLink } from 'Common/Components/ButtonLink/styled';\nimport { Wrapper, Empty } from './styled';\nimport { round } from 'lodash';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\n\nconst CommandHistory = () => {\n const dispatch = useDispatch();\n const [page, setPage] = useState(1);\n const history = useSelector(selectCommandHistory);\n const isFetching = useSelector(selectIsFetching);\n const currentWorkspace = useSelector(selectCurrentWorkspace);\n\n const viewMore = () => {\n setPage(page + 1);\n };\n\n useEffect(() => {\n dispatch(getCommandHistory(page));\n }, [dispatch, page, currentWorkspace]);\n\n return (\n \n { history.slice(0, history.length).map((h) => {\n return (\n \n );\n })}\n\n { (isFetching && history.length === 0) && }\n { history.length === 0 && No history has been found yet.}\n { history.length > (page * 15) && Show more }\n \n );\n};\n\nexport default CommandHistory;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nWrapper.displayName = 'Wrapper';\n\nexport const Tabs = styled.div`\n display: flex;\n padding-right: 13px;\n & > *:not(:last-child) {\n border-style: solid;\n border-color: #e4e9ee;\n border-width: 1px 0px 1px 1px;\n }\n & > *:last-child {\n border-style: solid;\n border-color: #e4e9ee;\n border-width: 1px 1px 1px 1px;\n }\n\n`;\n\nTabs.displayName = 'Tabs';\n\nexport const Tab = styled.div`\n cursor: pointer;\n font-size: 14px;\n height: 42px;\n padding: 10px;\n justify-content: center;\n display: flex;\n width: 100%;\n font-weight: 600;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n color: ${({ active }) => active ? colors.dark3 : colors.grey5};\n background: ${({ active }) => active ? colors.white : colors.white1};\n`;\n\nTab.displayName = 'Tab';\n","import React, { useState } from 'react';\nimport ActivityFeed from 'Screens/Dashboard/components/ToolbarItems/ActivityFeed';\nimport CommandHistory from 'Screens/Dashboard/components/ToolbarItems/CommandHistory';\nimport { Wrapper, Tabs, Tab } from './styled';\n\nconst Feeds = () => {\n const [tabActive, setActiveTab] = useState(0);\n\n return (\n \n \n setActiveTab(0) }>Activity Feed\n setActiveTab(1) }>Command History\n \n { tabActive === 0 && }\n { tabActive === 1 && }\n \n );\n};\n\nexport default Feeds;\n","import React from 'react';\nimport Vulnerabilities from 'Screens/Dashboard/components/ToolbarItems/Vulnerabilities';\nimport TopServices from 'Screens/Dashboard/components/ToolbarItems/TopServices';\nimport TopHosts from 'Screens/Dashboard/components/ToolbarItems/TopHosts';\nimport Summary from 'Screens/Dashboard/components/ToolbarItems/Summary';\nimport LatestVulns from 'Screens/Dashboard/components/ToolbarItems/LatestVulns';\nimport StatusChart from 'Screens/Dashboard/components/ToolbarItems/StatusChart';\nimport { Box } from 'Screens/Dashboard/components/ToolbarItems/Common/Box/styled';\nimport { StyledRow, StyledCol, BoxLatestVulns, BoxSummary, SummaryStyledCol } from './styled';\nimport Feeds from 'Screens/Dashboard/components/ToolbarItems/Feeds';\n\nconst Layout = () => (\n \n\n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n);\n\nexport default Layout;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { BackButton } from 'Common/Components/MainContainer/styled';\nimport { slideIn } from 'Styles/effects';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n width: 450px;\n height: fit-content;\n max-height: 95%;\n border-radius: 2px;\n box-shadow: 0 2px 50px 0 rgba(0, 0, 0, 0.24);\n border: solid 1px #d6d6d6;\n background-color: #ffffff;\n border-top: 10px solid #419bf9;\n padding: 34px;\n margin-left: auto;\n margin-right: auto;\n overflow: hidden;\n ${slideIn}\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Text = styled.label`\n color: #0082ed;\n float: right;\n margin-top: 42px;\n font-size: 12.5px;\n cursor: pointer;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n font-size: 21.5px;\n font-weight: 600;\n line-height: 1.16;\n text-align: left;\n margin-bottom: 34px;\n`;\nTitle.displayName = 'Title';\n\nexport const LeftTitle = styled(Title)`\n display: flex;\n flex: 0 0 25px;\n align-content: flex-start;\n margin-bottom: 15px;\n`;\nLeftTitle.displayName = 'LeftTitle';\n\nexport const BackBtn = styled(BackButton)`\n float: right;\n margin-right: 9px;\n`;\nBackBtn.displayName = 'BackBtn';\n\nexport const Click = styled.a`\n margin-top: 5px;\n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.12;\n letter-spacing: normal;\n text-align: left !important;\n color: #419bf9; \n display: block; \n`;\nClick.displayName = 'Click';\n\nexport const AddMore = styled.div`\n margin-top: 10px;\n cursor:pointer;\n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.12;\n letter-spacing: normal;\n text-align: left;\n color: #0082ed;\n\n svg {\n margin-right: 5px;\n font-size: 0.9em;\n position: relative;\n top: -2px;\n }\n\n label {\n cursor:pointer;\n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.12;\n letter-spacing: normal;\n text-align: left;\n color: #0082ed;\n }\n`;\nAddMore.displayName = 'AddMore';\n\nexport const SubTitle = styled.div`\n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n margin-top: 14px;\n color: ${colors.grey11};\n`;\nSubTitle.displayName = 'SubTitle';\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const SummaryContainer = styled.div`\n width: 100%;\n height: 229px;\n border-radius: 3px;\n border: solid 1px #f6f6f8;\n background-color: #f6f6f8;\n overflow-y: auto;\n`;\nSummaryContainer.displayName = 'SummaryContainer';\n\nexport const Icon = styled.div`\n text-align: center;\n margin-top: 34px;\n`;\nIcon.displayName = 'Icon';\n\nexport const Filenames = styled.div` \n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal; \n letter-spacing: normal;\n text-align: left;\n color: #419bf9;\n text-align: center;\n margin-top: 7px;\n\n span {\n margin-right: 5px;\n }\n`;\nFilenames.displayName = 'Filenames';\n\nexport const SubText = styled.div` \n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.44;\n letter-spacing: normal;\n text-align: center;\n color: #7a7e8f;\n text-align: center;\n margin-top: 34px;\n padding: 0 20px;\n padding-bottom: 34px;\n\n`;\nSubText.displayName = 'SubText';\n\nexport const File = styled.img`\n width: 28px;\n height: 34px;\n color: #7a7e8f; \n`;\nFile.displayName = 'File';\n\nexport const ErrorText = styled.div` \n color: #c71717;\n`;\nErrorText.displayName = 'ErrorText';\n","import React from 'react';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport fileImg from 'Images/generic_file.svg';\nimport {\n Wrapper,\n SummaryContainer,\n Icon,\n File,\n Filenames,\n SubText,\n ErrorText\n} from './styled';\n\nclass UploadSummary extends React.Component {\n constructor (props) {\n super(props);\n this.state = {};\n }\n\n render () {\n const { files, errorFilesList } = this.props;\n return (\n \n \n \n \n { files.map((f) => (errorFilesList.indexOf(f.name) === -1 ?
{f.name}
: {f.name})) }\n
\n \n Your files have been uploaded and are being processed. We'll notify you once this is finished.\n \n
\n
\n\n );\n }\n}\n\nUploadSummary.propTypes = {\n files: PropTypes.array.isRequired,\n errorFilesList: PropTypes.array.isRequired\n};\n\nexport default withRouter(UploadSummary);\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Click = styled.a`\n margin-top: 5px;\n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.12;\n letter-spacing: normal;\n text-align: left !important;\n color: #419bf9; \n display: block; \n`;\nClick.displayName = 'Click';\n\nexport const Separator = styled.div`\n width: 100%;\n height: 1px;\n margin: 20px 0px;\n border: solid 1px #d9e4ef;\n`;\nSeparator.displayName = 'Separator';\n","\nimport styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n text-align: left;\n user-select: none;\n font-size: 14px;\n font-weight: 600;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: #1c2243;\n`;\nTitle.displayName = 'Title';\n\nexport const FieldWrapper = styled.div`\n display: flex;\n flex-direction: row;\n width: 100%;\n margin-top: 20px;\n & > *:not(:first-child) {\n margin-left: 30px;\n }\n`;\nFieldWrapper.displayName = 'FieldWrapper';\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Label = styled.div`\n font-size: 12px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: #63758d;\n margin-left: 10px;\n`;\nLabel.displayName = 'Label';\n\nexport const CheckboxWrapper = styled.div`\n display: flex;\n flex: 0 1 auto;\n align-items: center;\n user-select: none;\n\n &[required] {\n ${Label}::after {\n content: ' *';\n color: ${colors.redPink};\n }\n }\n`;\nCheckboxWrapper.displayName = 'FieldWrapper';\n","import React from 'react';\nimport Checkbox from 'Common/Components/Checkbox';\nimport { Label, CheckboxWrapper } from './styled';\n\nconst CheckboxField = ({ defaultValue, label, onChange }) => {\n return (\n \n onChange(!e.currentTarget.checked) } />\n \n );\n};\nexport default CheckboxField;\n","import React from 'react';\nimport { useIntl } from 'react-intl';\nimport { Wrapper, Title, FieldWrapper } from './styled';\nimport CheckboxField from './CheckboxField';\n\nconst AdvancedOptions = ({ ignoreInfo, setIgnoreInfo, resolveHost, setResolveHost }) => {\n const intl = useIntl();\n const ignoreInfoLabel = intl.formatMessage({ id: 'importFileCreationModal.advancedOptions.ignoreInfo' });\n const resolveHostLabel = intl.formatMessage({ id: 'importFileCreationModal.advancedOptions.resolveHost' });\n\n return (\n \n \n <FieldWrapper>\n <CheckboxField defaultValue={ ignoreInfo } label={ ignoreInfoLabel } onChange={ (checked) => setIgnoreInfo(checked) } />\n <CheckboxField defaultValue={ resolveHost } label={ resolveHostLabel } onChange={ (checked) => setResolveHost(checked) } />\n </FieldWrapper>\n </Wrapper>\n );\n};\n\nexport default AdvancedOptions;\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport DragFile from 'Common/Components/DragFile';\nimport { setFileIndex, setUploadState } from 'Screens/ManageEditCreate/actions/Actions';\nimport { Wrapper, Click, Separator } from './styled';\nimport AdvancedOptions from '../AdvancedOptions';\n\nconst DragStep = ({\n setStep,\n files, setFiles,\n ignoreInfo, setIgnoreInfo,\n resolveHost, setResolveHost\n}) => {\n const dispatch = useDispatch();\n\n const handleDrop = (filesUploading) => {\n const fileList = files;\n for (let i = 0; i < filesUploading.length; i += 1) {\n if (!filesUploading[i].name) return;\n if (fileList.findIndex((item) => (item.name === filesUploading[i].name && item.size === filesUploading[i].size)) === -1) {\n fileList.push(filesUploading[i]);\n }\n }\n setFiles([...fileList]);\n if (fileList.length > 0) setStep('LIST');\n dispatch(setFileIndex(fileList.length - 1));\n dispatch(setUploadState());\n };\n\n return (\n <Wrapper>\n <DragFile onManage handleDrop={ handleDrop } />\n <Click href=\"https://docs.faradaysec.com/import/\" target=\"_black\" children={ <FormattedMessage id=\"importFileCreationModal.info\" /> } />\n <Separator />\n <AdvancedOptions ignoreInfo={ ignoreInfo } setIgnoreInfo={ setIgnoreInfo } resolveHost={ resolveHost } setResolveHost={ setResolveHost } />\n </Wrapper>\n );\n};\n\nexport default DragStep;\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport FileUploader from 'Common/Components/FileUploader';\nimport { uploadFile, setFilesCount } from 'Screens/ManageEditCreate/actions/Actions';\nimport { selectCurrentUploadState, selectCurrentUploadError, selectFileIndex } from 'store/ManageEditCreate/selectors';\n\nconst UploadStep = ({ files, ignoreInfo, resolveHost }) => {\n const dispatch = useDispatch();\n const fileIndex = useSelector(selectFileIndex);\n const currentUploadState = useSelector(selectCurrentUploadState);\n const currentUploadError = useSelector(selectCurrentUploadError);\n\n const params = [\n { name: 'file', value: files[fileIndex] },\n { name: 'ignore_info', value: ignoreInfo },\n { name: 'resolve_hostname', value: resolveHost }\n ];\n\n const uploadFileManage = () => {\n dispatch(setFilesCount(files));\n if (fileIndex >= 0) dispatch(uploadFile(params));\n };\n\n return (\n <FileUploader\n onManage\n uploadFile={ uploadFileManage }\n currentUploadState={ currentUploadState }\n currentUploadError={ currentUploadError }\n filenames={ files.map((f) => (f.name)).join(', ') }\n />\n );\n};\n\nexport default UploadStep;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const FilesContainer = styled.div`\n width: 100%;\n height: 201px;\n border-radius: 3px;\n border: solid 1px #dddddd;\n background-color: #ffffff;\n overflow-y: auto;\n`;\nFilesContainer.displayName = 'FilesContainer';\n\nexport const FilesItem = styled.div`\n padding: 0px 15px;\n display: flex;\n flex-direction: row;\n width: 100%;\n height: 34px;\n align-items: center;\n \n &:hover {\n background-color: #e6eff6;\n }\n`;\nFilesItem.displayName = 'FilesItem';\n\nexport const FileName = styled.span`\n flex: 1 1 0px;\n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: normal;\n text-align: left;\n color: #42719f;\n float: left;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\nFileName.displayName = 'FileName';\n\nexport const FileSize = styled.span`\n flex: 0 0 auto;\n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: normal;\n text-align: left;\n color: #7a7e8f;\n margin: 0px 10px;\n user-select: none;\n`;\nFileSize.displayName = 'FileSize';\n\nexport const Icon = styled.span`\n padding-bottom: 3px;\n flex: 0 0 auto;\n margin-left: auto;\n`;\nIcon.displayName = 'Icon';\n\nexport const DragableZoneActive = styled.div`\n width: ${(props) => (props.onManage ? '452px' : 'unset')};\n height: ${(props) => (props.onManage ? '425px' : 'unset')};\n border: 1px solid #0082ed;\n background-color: aliceblue;\n position: absolute;\n top: -10px;\n bottom: 0;\n left: ${(props) => (props.onManage ? '-2px' : '0')};\n right: 0;\n z-index: 9999;\n display: flex;\n justify-content: center;\n align-items: center;\n text-align: center;\n`;\nDragableZoneActive.displayName = 'DragableZoneActive';\n\nexport const DragableZoneActiveContent = styled.div`\n position: absolute;\n color: grey;\n font-size: 36px;\n`;\nDragableZoneActiveContent.displayName = 'DragableZoneActiveContent';\n\nexport const Text = styled.div`\n color: #0082ed;\n font-size: 14.5px;\n line-height: 21px;\n`;\nText.displayName = 'Text';\n","/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { FiTrash2 as Trash } from 'react-icons/fi';\nimport PropTypes from 'prop-types';\nimport {\n BsCloudUpload as Upload\n} from 'react-icons/bs';\n\nimport {\n Wrapper,\n FilesContainer,\n FilesItem,\n FileName,\n FileSize,\n Icon,\n DragableZoneActive,\n DragableZoneActiveContent,\n Text\n} from './styled';\n\nconst dropRef = React.createRef();\n\nfunction handleDrag (e) {\n e.preventDefault();\n e.stopPropagation();\n}\n\nconst parseFileSize = (size) => {\n if (size < 314572) { // 314572 Bytes == 0.3 MB\n return `${(size / 1024).toFixed(1)} KB`;\n }\n return `${(size / 1048576).toFixed(1)} MB`;\n};\n\nclass FilesList extends React.Component {\n constructor (props) {\n super(props);\n this.state = {\n dragging: false\n };\n this.handleDragIn = this.handleDragIn.bind(this);\n this.handleDragOut = this.handleDragOut.bind(this);\n this.handleDrop = this.handleDrop.bind(this);\n this.onChange = this.onChange.bind(this);\n }\n\n componentDidMount () {\n const div = dropRef.current;\n this.dragCounter = 0;\n div.addEventListener('dragenter', this.handleDragIn);\n div.addEventListener('dragleave', this.handleDragOut);\n div.addEventListener('dragover', handleDrag);\n div.addEventListener('drop', this.handleDrop);\n }\n\n componentWillUnmount () {\n this.dragCounter = 0;\n const div = dropRef.current;\n div.removeEventListener('dragenter', this.handleDragIn);\n div.removeEventListener('dragleave', this.handleDragOut);\n div.removeEventListener('dragover', handleDrag);\n div.removeEventListener('drop', this.handleDrop);\n }\n\n onChange (e) {\n this.props.handleDrop(e.target.files);\n }\n\n handleDragIn (e) {\n e.preventDefault();\n e.stopPropagation();\n this.dragCounter += 1;\n if (e.dataTransfer.items && e.dataTransfer.items.length > 0) {\n this.setState({ dragging: true });\n }\n }\n\n handleDragOut (e) {\n e.preventDefault();\n e.stopPropagation();\n this.dragCounter -= 1;\n if (this.dragCounter === 0) {\n this.setState({ dragging: false });\n }\n }\n\n handleDrop (e) {\n e.preventDefault();\n e.stopPropagation();\n this.setState({ dragging: false });\n if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {\n this.props.handleDrop(e.dataTransfer.files);\n e.dataTransfer.clearData();\n this.dragCounter = 0;\n }\n }\n\n render () {\n const { files } = this.props;\n return (\n <Wrapper ref={ dropRef }>\n <FilesContainer>\n {\n files.map((file) => (\n <FilesItem key={ file.name }>\n <FileName children={ file.name } />\n <FileSize children={ parseFileSize(file.size) } />\n <Icon onClick={ () => { this.props.removeFile(file); } }><Trash color=\"#7a7e8f\" /></Icon>\n </FilesItem>\n ))\n }\n </FilesContainer>\n\n {this.state.dragging && (\n <DragableZoneActive onManage>\n <DragableZoneActiveContent>\n <Upload style={ { color: '#0082ed', width: '41px' } } />\n <Text>Drop your files here</Text>\n </DragableZoneActiveContent>\n </DragableZoneActive>\n )\n }\n {!this.state.dragging && <input multiple style={ { opacity: 0, position: 'absolute', zIndex: -1 } } id=\"upload\" type=\"file\" onChange={ this.onChange } /> }\n </Wrapper>\n );\n }\n}\n\nFilesList.propTypes = {\n files: PropTypes.array.isRequired,\n removeFile: PropTypes.func.isRequired\n};\n\nexport default withRouter(FilesList);\n","import styled from 'styled-components';\n\nexport const AddMore = styled.div`\n margin-top: 10px;\n cursor:pointer;\n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.12;\n letter-spacing: normal;\n text-align: left;\n color: #0082ed;\n\n svg {\n margin-right: 5px;\n font-size: 0.9em;\n position: relative;\n top: -2px;\n }\n\n label {\n cursor:pointer;\n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.12;\n letter-spacing: normal;\n text-align: left;\n color: #0082ed;\n }\n`;\nAddMore.displayName = 'AddMore';\n\nexport const Separator = styled.div`\n width: 100%;\n height: 1px;\n margin: 20px 0px;\n border: solid 1px #d9e4ef;\n`;\nSeparator.displayName = 'Separator';\n\nexport const Wrapper = styled.div`\n`;\nWrapper.displayName = 'Wrapper';\n","import React from 'react';\nimport FilesList from 'Common/Components/FilesList';\nimport { useIntl } from 'react-intl';\nimport { FaPlus as Plus } from 'react-icons/fa';\nimport { Wrapper, AddMore, Separator } from './styled';\nimport { useDispatch } from 'react-redux';\nimport { setFileIndex } from 'Screens/ManageEditCreate/actions/Actions';\nimport AdvancedOptions from '../AdvancedOptions';\n\nconst ListStep = ({\n setStep,\n handleDrop,\n files, setFiles,\n ignoreInfo, setIgnoreInfo,\n resolveHost, setResolveHost\n}) => {\n const dispatch = useDispatch();\n const intl = useIntl();\n\n const handleNewFile = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {\n handleDrop(e.dataTransfer.files);\n e.dataTransfer.clearData();\n }\n };\n\n const removeFileFromList = (file) => {\n const fileList = files.filter((f) => f.name !== file.name || f.size !== file.size);\n setFiles(fileList);\n dispatch(setFileIndex(fileList.length - 1));\n if (fileList.length === 0) setStep('DRAG');\n };\n\n return (\n <Wrapper>\n <FilesList files={ files } removeFile={ removeFileFromList } handleDrop={ handleDrop } />\n <AddMore>\n <Plus />\n <label htmlFor=\"upload\">{intl.formatMessage({ id: 'importFileCreationModal.label' })}</label>\n <input multiple style={ { opacity: 0, position: 'absolute', zIndex: -1 } } id=\"upload\" type=\"file\" onChange={ (e) => handleNewFile(e.target.files) } />\n </AddMore>\n <Separator />\n <AdvancedOptions ignoreInfo={ ignoreInfo } setIgnoreInfo={ setIgnoreInfo } resolveHost={ resolveHost } setResolveHost={ setResolveHost } />\n </Wrapper>\n );\n};\n\nexport default ListStep;\n","import React, { useState, useEffect } from 'react';\nimport isEmpty from 'lodash/isEmpty';\nimport { useDispatch, useSelector } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport {\n selectUploadState, selectFileIndex, selectErrorFilesList,\n selectCurrentUploadState, selectCurrentUploadError\n} from 'store/ManageEditCreate/selectors';\nimport ModalWrapper from 'Common/Components/ModalWrapper';\nimport { uploadFile, setFileIndex, setUploadState, resetFileUploadState } from 'Screens/ManageEditCreate/actions/Actions';\nimport { Button, ButtonsContainer, BackButton } from 'Common/Components/MainContainer/styled';\nimport { Wrapper, LeftTitle, BackBtn } from './styled';\nimport UploadSummary from './components/UploadSummary';\nimport DragStep from './components/DragStep';\nimport UploadStep from './components/UploadStep';\nimport ListStep from './components/ListStep';\n\nconst ImportFileCreationModal = ({ show, handleClose }) => {\n const dispatch = useDispatch();\n const intl = useIntl();\n const [files, setFiles] = useState([]);\n const [ignoreInfo, setIgnoreInfo] = useState(false);\n const [resolveHost, setResolveHost] = useState(false);\n const [step, setStep] = useState('DRAG');\n const uploadState = useSelector(selectUploadState);\n const fileIndex = useSelector(selectFileIndex);\n const errorFilesList = useSelector(selectErrorFilesList);\n const currentUploadState = useSelector(selectCurrentUploadState);\n const currentUploadError = useSelector(selectCurrentUploadError);\n\n const titleLabel = intl.formatMessage({ id: 'importFileCreationModal.title' });\n const backLabel = intl.formatMessage({ id: 'importFileCreationModal.backButton' });\n const doneLabel = intl.formatMessage({ id: 'importFileCreationModal.doneButton' });\n const uploadLabel = intl.formatMessage({ id: 'importFileCreationModal.uploadButton' });\n const cancelLabel = intl.formatMessage({ id: 'importFileCreationModal.cancelButton' });\n\n const onHandleClose = () => {\n setFiles([]);\n setStep('DRAG');\n dispatch(resetFileUploadState());\n handleClose();\n };\n\n const handleDrop = (filesUploading) => {\n const fileList = files;\n for (let i = 0; i < filesUploading.length; i += 1) {\n if (!filesUploading[i].name) return;\n if (fileList.findIndex((item) => (item.name === filesUploading[i].name && item.size === filesUploading[i].size)) === -1) {\n fileList.push(filesUploading[i]);\n }\n }\n setFiles([...fileList]);\n if (fileList.length > 0) setStep('LIST');\n dispatch(setFileIndex(fileList.length - 1));\n dispatch(setUploadState());\n };\n\n const stepComponent = {\n LIST: <ListStep\n files={ files }\n setFiles={ setFiles }\n ignoreInfo={ ignoreInfo }\n setIgnoreInfo={ setIgnoreInfo }\n resolveHost={ resolveHost }\n setResolveHost={ setResolveHost }\n setStep={ setStep }\n handleDrop={ handleDrop }\n />,\n DRAG: <DragStep\n files={ files }\n setFiles={ setFiles }\n ignoreInfo={ ignoreInfo }\n setIgnoreInfo={ setIgnoreInfo }\n resolveHost={ resolveHost }\n setResolveHost={ setResolveHost }\n setStep={ setStep }\n />,\n UPLOAD: <UploadStep\n files={ files }\n ignoreInfo={ ignoreInfo }\n resolveHost={ resolveHost }\n />,\n SUMMARY: <UploadSummary\n files={ files }\n errorFilesList={ errorFilesList }\n />\n };\n\n useEffect(() => {\n if (step === 'UPLOAD' && uploadState === 'PROCESSED' && fileIndex >= 0) dispatch(uploadFile([{ name: 'file', value: files[fileIndex] }]));\n if (step === 'UPLOAD' && uploadState === 'FINISHED' && fileIndex <= -1 && (currentUploadError === '' || files.length > 1)) setStep('SUMMARY');\n if (currentUploadState === 'Error' && step === 'DRAG') dispatch(resetFileUploadState());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dispatch, step, uploadState]);\n\n if (!show) return null;\n return (\n <ModalWrapper>\n <Wrapper>\n <LeftTitle children={ titleLabel } />\n { stepComponent[step] }\n <ButtonsContainer>\n { step === 'UPLOAD' && <BackButton onClick={ () => setStep('LIST') } children={ backLabel } /> }\n { step === 'SUMMARY'\n ? <Button onClick={ onHandleClose } children={ doneLabel } />\n : <Button onClick={ () => setStep('UPLOAD') } disabled={ step !== 'LIST' || isEmpty(files) } children={ uploadLabel } />\n }\n <BackBtn onClick={ onHandleClose } children={ cancelLabel } />\n </ButtonsContainer>\n </Wrapper>\n </ModalWrapper>\n );\n};\n\nImportFileCreationModal.propTypes = {\n show: PropTypes.bool.isRequired,\n handleClose: PropTypes.func.isRequired\n};\n\nexport default ImportFileCreationModal;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n display: flex;\n align-items: center;\n flex-direction: column;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Image = styled.img`\n max-width: 573px;\n width: 100%;\n`;\nImage.displayName = 'Image';\n\nexport const Label = styled.div`\n font-size: 15px;\n color: ${colors.blueGrey};\n padding-bottom: 21px;\n padding-top: 13px;\n`;\nLabel.displayName = 'Label';\n\nexport const ButtonLink = styled.button`\n color: ${colors.blueCerulean};\n text-decoration: none;\n font-size: 12px;\n font-weight: 500;\n background: transparent;\n border: 0;\n padding: 0 5px;\n`;\nButtonLink.displayName = 'ButtonLink';\n","import React from 'react';\nimport Button from 'Common/Components/BlueButton/styled';\nimport {\n Wrapper, Label, Image, ButtonLink\n} from './styled';\n\nconst EmptyVulns = ({ toggleModalUploadVulns, toggleModalCreateVuln, image }) => (\n <Wrapper>\n <Image src={ image } />\n <Label>You don’t have any vulnerabilities yet.</Label>\n <Button onClick={ toggleModalUploadVulns }>Upload Vulnerabilities</Button>\n <Label>\n Or\n <ButtonLink onClick={ toggleModalCreateVuln }>Create vulnerabilities manually</ButtonLink>\n </Label>\n </Wrapper>\n);\n\nexport default EmptyVulns;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n position: relative;\n`;\n\nexport const RedAster = styled.span`\n color: #ea3158;\n bottom: 12px;\n position: relative;\n left: 2px;\n`;\nRedAster.displayName = 'RedAster';\n","\nimport styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n width: 406px;\n max-height: 350px;\n border-radius: 2px;\n box-shadow: 2px 2px 30px 0 rgba(0, 0, 0, 0.14);\n background-color: #ffffff;\n overflow-y: auto;\n padding: 18px 0;\n position: absolute;\n top: 100%;\n z-index: 10;\n ${({ customStyles }) => customStyles && `\n width: 100%;\n height: 100%;\n max-height: 100px;\n overflow: auto;\n position: relative;\n box-shadow: none;\n padding: 0;\n `}\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const DataItem = styled.div`\n font-size: ${(props) => (`${props.customStyles ? '14.5px' : '13px'}`)};\n color: #1c2243;\n cursor: pointer;\n padding: ${(props) => (`${props.customStyles ? '10px' : '7px 5px 7px 20px'}`)};\n border-radius: 3px;\n user-select: none;\n background-color: ${(props) => (`${props.isActive ? colors.iceBlue : ''}`)};\n font-weight: ${(props) => (`${props.isActive ? 600 : 400}`)};\n`;\nDataItem.displayName = 'DataItem';\n","\n/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useState, useEffect, createRef } from 'react';\nimport { useKeyPress } from 'Common/Components/SearchBar/components/BasicFilter/functions';\nimport get from 'lodash/get';\nimport { Wrapper, DataItem } from './styled';\n\nconst DataContainer = ({ filteredData, onSelectHandler, customStyles = false }) => {\n const [cursor, setCursor] = useState(0);\n const downPress = useKeyPress('ArrowDown');\n const upPress = useKeyPress('ArrowUp');\n const enterPress = useKeyPress('Enter');\n const [hovered, setHovered] = useState(undefined);\n const [elRefs, setElRefs] = React.useState([]);\n\n useEffect(() => {\n setElRefs((elRefs) => (\n Array(filteredData.length).fill().map((_, i) => elRefs[i] || createRef())\n ));\n }, [filteredData.length]);\n\n const executeScroll = (cursor) => {\n const ref = get(elRefs, `[${cursor}].current`, null);\n if (ref) ref.scrollIntoView(false);\n };\n\n useEffect(() => {\n const maxIndex = filteredData.length - 1;\n if (cursor > maxIndex) {\n setCursor(maxIndex);\n executeScroll(maxIndex);\n }\n if (filteredData.length === 1) {\n setCursor(0);\n }\n }, [filteredData]);\n\n useEffect(() => {\n if (downPress) {\n const maxIndex = filteredData.length - 1;\n if (cursor < maxIndex) {\n const newCursor = cursor + 1;\n setCursor(newCursor);\n executeScroll(newCursor);\n } else if (cursor === maxIndex) {\n setCursor(0);\n executeScroll(0);\n }\n }\n }, [downPress]);\n\n useEffect(() => {\n if (upPress) {\n if (cursor > 0) {\n const newCursor = cursor - 1;\n setCursor(newCursor);\n executeScroll(newCursor);\n } else if (cursor === 0) {\n const newCursor = filteredData.length - 1;\n setCursor(newCursor);\n executeScroll(newCursor);\n }\n }\n }, [upPress]);\n\n useEffect(() => {\n if (enterPress) {\n onSelectHandler(filteredData[cursor]);\n }\n }, [enterPress]);\n\n useEffect(() => {\n if (hovered && filteredData.length) {\n setCursor(filteredData.indexOf(hovered));\n }\n }, [hovered]);\n\n return (\n <Wrapper>\n { filteredData.map((item, i) =>\n <DataItem\n key={ item.id }\n onMouseDown={ (e) => { onSelectHandler(item); e.stopPropagation(); e.preventDefault(); } }\n ref={ elRefs[i] }\n isActive={ i === cursor }\n onMouseEnter={ () => setHovered(item) }\n onMouseLeave={ () => setHovered(undefined) }\n customStyles={ customStyles }\n >\n {item.name}\n </DataItem>\n ) }\n </Wrapper>\n );\n};\n\nexport default DataContainer;\n","/* eslint-disable react/destructuring-assignment */\nimport React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { FaChevronDown as ChevronDown } from 'react-icons/fa';\nimport { Wrapper, RedAster } from './styled';\nimport './styles.scss';\nimport DataContainer from './components/DataContainer';\n\nconst InputFilter = ({\n value, getObjects, onChange, cleanOnSelect, onSelect, type, data, placeholder, id, required, customStyles\n}) => {\n const [inputValue, setValue] = useState(value);\n const [showData, setShowData] = useState(false);\n\n const filteredData = data.filter((it) => inputValue === '' || it.name.toLowerCase().includes(inputValue.toLowerCase()));\n\n useEffect(() => {\n getObjects();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const onChangeHandler = (v) => {\n setValue(v);\n setShowData(true);\n onChange('name', v);\n };\n\n const onSelectHandler = (item) => {\n if (cleanOnSelect) setValue('');\n else setValue(item.name);\n\n setShowData(false);\n onSelect(item);\n };\n\n return (\n <Wrapper onBlur={ () => { setShowData(false); } }>\n <input id={ id } className={ `input-filter ${inputValue.length > 0 ? 'full' : ''}` } value={ inputValue } placeholder={ placeholder } type={ type } onChange={ (e) => onChangeHandler(e.target.value) } autoComplete=\"off\" />\n { required ? <RedAster>*</RedAster> : null }\n <ChevronDown color=\"#515a65\" className=\"input-filter-arrow\" onClick={ () => { setShowData(!showData); } } />\n {\n (filteredData.length > 0 && showData) &&\n <DataContainer filteredData={ filteredData } onSelectHandler={ onSelectHandler } customStyles={ customStyles } />\n }\n </Wrapper>\n );\n};\n\nInputFilter.propTypes = {\n data: PropTypes.array.isRequired,\n getObjects: PropTypes.func.isRequired,\n type: PropTypes.string,\n placeholder: PropTypes.string,\n onSelect: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n required: PropTypes.bool,\n value: PropTypes.string,\n customStyles: PropTypes.bool\n};\n\nInputFilter.defaultProps = {\n type: 'text',\n placeholder: 'Enter value',\n required: false,\n value: '',\n customStyles: false\n};\n\nexport default InputFilter;\n","import styled from 'styled-components';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const Wrapper = styled.div`\n margin-right: 56px;\n display: inline-flex;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const RedAster = styled.span`\n color: #ea3158;\n bottom: 8px;\n position: relative;\n left: 2px;\n`;\nRedAster.displayName = 'RedAster';\n\nexport const SeverityName = styled.span`\n margin-left: 10px;\n`;\n","/* eslint-disable no-useless-constructor */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport Dropdown from 'Common/Components/Dropdown';\nimport { severityDropdownStyle } from 'Common/styles/style';\nimport { severities } from 'Screens/Constants';\nimport SeverityIcon from '../SeverityIcon';\nimport { Wrapper, RedAster, SeverityName } from './styled';\n\nconst SeverityItem = ({ title }) => (\n <div className=\"d-inline-flex item-option\">\n <SeverityIcon type={ title.charAt(0).toUpperCase() }>{title.charAt(0).toUpperCase()}</SeverityIcon>\n <SeverityName>{title.charAt(0).toUpperCase() + title.slice(1).toLowerCase()}</SeverityName>\n </div>\n);\n\nSeverityItem.propTypes = {\n title: PropTypes.string.isRequired\n};\n\nclass SeverityDropdown extends React.Component {\n constructor (props) {\n super(props);\n\n this.onChange = this.onChange.bind(this);\n }\n\n onChange (value) {\n const { updateValue } = this.props;\n updateValue('severity', value);\n }\n\n render () {\n const { defaultValue } = this.props;\n const options = severities.map((element) => ({ label: <SeverityItem title={ element.desc } />, value: element.name }));\n return (\n <Wrapper>\n <Dropdown customStyle={ severityDropdownStyle } options={ options } updateValue={ this.onChange } placeholder=\"Severity\" className=\"severity\" defaultValue={ defaultValue } />\n <RedAster>*</RedAster>\n </Wrapper>\n );\n }\n}\n\nSeverityDropdown.propTypes = {\n updateValue: PropTypes.func.isRequired,\n defaultValue: PropTypes.string\n\n};\n\nSeverityDropdown.defaultProps = {\n defaultValue: undefined\n};\n\nexport default withRouter(SeverityDropdown);\n","import styled from 'styled-components';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const Wrapper = styled.div`\n \n`;\nWrapper.displayName = 'Wrapper';\n","/* eslint-disable react/destructuring-assignment */\n/* eslint-disable no-useless-constructor */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport Dropdown from 'Common/Components/Dropdown';\nimport { eorDropdownStyle } from 'Common/styles/style';\nimport { easeOfResolution } from 'Screens/Constants';\nimport { Wrapper } from './styled';\n\nconst Item = (props) => (\n <div className=\"d-inline-flex item-option\">\n <span>{props.title.charAt(0).toUpperCase() + props.title.slice(1).toLowerCase()}</span>\n </div>\n);\n\nItem.propTypes = {\n title: PropTypes.string.isRequired\n};\n\nclass EORDropdown extends React.Component {\n constructor (props) {\n super(props);\n\n this.onChange = this.onChange.bind(this);\n }\n\n onChange (value) {\n this.props.updateValue('easeOfResolution', value);\n }\n\n render () {\n const { defaultValue } = this.props;\n const options = easeOfResolution.map((element) => ({ label: <Item title={ element.desc } />, value: element.name }));\n\n return (\n <Wrapper>\n <Dropdown customStyle={ eorDropdownStyle } options={ options } className=\"ease-of-resolution\" updateValue={ this.onChange } placeholder=\"Ease of Resolution\" defaultValue={ defaultValue } />\n </Wrapper>\n );\n }\n}\n\nEORDropdown.propTypes = {\n defaultValue: PropTypes.string,\n updateValue: PropTypes.func.isRequired\n};\n\nEORDropdown.defaultProps = {\n defaultValue: null\n};\n\nexport default withRouter(EORDropdown);\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n width: 100%;\n position: relative;\n display: flex;\n flex-direction: column;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n font-size: 13px;\n font-weight: 600;\n color: #0b2128;;\n user-select: none;\n margin-bottom: 12px;\n ${(props) => props.isRequired && `\n &:after {\n content: '*';\n color: ${colors.redPink};\n }\n `};\n`;\nTitle.displayName = 'Title';\n","import React from 'react';\nimport MarkdownEditor from 'Common/Components/v2/MarkdownEditor';\nimport { Wrapper, Title } from './styled';\n\nconst MarkdownInput = ({ title, value, onBlur, isRequired, plainText, minHeight = 60 }) => {\n return (\n <Wrapper>\n <Title children={ title } isRequired={ isRequired } />\n <MarkdownEditor\n value={ value }\n onBlur={ onBlur }\n plainText={ plainText }\n minHeight={ minHeight }\n />\n </Wrapper>\n );\n};\n\nexport default MarkdownInput;\n","import styled from 'styled-components';\nimport StringField from 'Common/Components/StringField';\n\nexport const Wrapper = styled.div`\ndisplay: flex;\njustify-content: space-between;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Row = styled.div`\n display: flex;\n`;\nRow.displayName = 'Row';\n\nexport const NewColumn = styled.div`\nwidth: 406px;\n`;\nRow.displayName = 'Row';\n\nexport const Column = styled.div`\n display: flex;\n flex-direction: column;\n width: 50%;\n`;\nColumn.displayName = 'Column';\n\nexport const ExternalId = styled(StringField)`\n\n`;\n\nExternalId.displayName = 'ExternalId';\n\nexport const RightColumn = styled(Column)`\n & > :first-child{\n margin-bottom: 10px;\n }\n`;\nRightColumn.displayName = 'RightColumn';\n\nexport const PolicyColumn = styled(Column)`\n margin-right: 20px;\n width: 48%;\n`;\nPolicyColumn.displayName = 'PolicyColumn';\n\nexport const AditionalText = styled.div`\n width: 220px;\n height: 36px; \n font-size: 13.5px;\n font-weight: 300;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.67;\n letter-spacing: 0.1px;\n color: #afb1bc;\n margin-left: 20px;\n`;\nAditionalText.displayName = 'AditionalText';\n\nexport const Gap = styled.div`\n height: 20px;\n`;\n\nexport const Title = styled.div`\n font-size: 12.5px;\n font-weight: 500;\n line-height: 2.08;\n color: #0b2128;\n font-weight: 600;\n margin-bottom: 12px;\n`;\nTitle.displayName = 'Title';\n","import React from 'react';\nimport { Input } from 'Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/CVE';\n\nconst CVE = ({ listData, onAdd, onRemove }) => {\n return (\n <div>\n <Input\n placeholder=\"CVE-YYYY-NNNN\"\n errorMessage=\"CVE not valid\"\n validator={ /^(CVE-(1999|2\\d{3})-(\\d{4,7}))$/ }\n listData={ listData }\n onAdd= { onAdd }\n onRemove={ onRemove }\n />\n </div>\n );\n};\n\nexport default CVE;\n","/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport InputFilter from 'Common/Components/InputFilter';\nimport {\n getTemplates,\n setValueFieldPreview,\n setField,\n addPolicy,\n removePolicy,\n selectCheckbox,\n addReference,\n removeReference,\n addCVE,\n removeCVE\n} from 'Screens/ManageEditCreate/actions/Actions';\nimport {\n selectTemplates,\n selectManageEditCreate,\n selectReadonly,\n selectPermissions,\n selectNameField\n} from 'store/ManageEditCreate/selectors';\nimport SeverityDropdown from 'Common/Components/SeverityDropdown';\nimport EORDropdown from 'Common/Components/EORDropdown';\nimport CustomList from 'Common/Components/CustomList';\nimport Impacts from 'Common/Components/Impacts';\nimport MarkdownInput from '../MarkdownInput';\nimport {\n Wrapper, Row, ExternalId, NewColumn, Gap, Title\n} from './styled';\nimport debounce from 'lodash/debounce';\nimport CVE from './InputCVE';\n\nclass General extends React.Component {\n constructor (props) {\n super(props);\n this.state = {\n policy: '',\n references: ''\n };\n\n this.applyTemplate = this.applyTemplate.bind(this);\n this.setPolicyViolations = this.setPolicyViolations.bind(this);\n this.setReferences = this.setReferences.bind(this);\n this.setExternalId = this.setExternalId.bind(this);\n this.saveDescription = this.saveDescription.bind(this);\n this.saveResolution = this.saveResolution.bind(this);\n this.debouncedSetField = debounce((fieldName, value) => this.props.setVulnField(fieldName, value), 300);\n }\n\n setPolicyViolations (value) {\n this.setState({ policy: value });\n }\n\n setReferences (value) {\n this.setState({ references: value });\n }\n\n setExternalId (value) {\n this.debouncedSetField('externalId', value);\n }\n\n applyTemplate (template) {\n const { setVulnField } = this.props;\n setVulnField('name', template.name);\n setVulnField('description', template.description);\n setVulnField('resolution', template.resolution);\n setVulnField('severity', template.exploitation);\n setVulnField('policies', template.policyviolations);\n setVulnField('references', template.refs);\n setVulnField('externalId', template.external_id);\n setVulnField('accountability', template.impact.accountability);\n setVulnField('availability', template.impact.availability);\n setVulnField('integrity', template.impact.integrity);\n setVulnField('confidentiality', template.impact.confidentiality);\n setVulnField('easeOfResolution', template.easeofresolution);\n setVulnField('data', template.data);\n setVulnField('customFields', template.customfields);\n }\n\n saveDescription (value) {\n this.debouncedSetField('description', value);\n }\n\n saveResolution (value) {\n this.debouncedSetField('resolution', value);\n }\n\n render () {\n const {\n getAllTemplates,\n templates,\n manageEditCreate,\n addPolicyViolation,\n removePolicyViolation,\n addReference,\n removeReference,\n addCVE,\n removeCVE,\n name\n } = this.props;\n\n const impacts = {\n accountability: manageEditCreate.accountability,\n availability: manageEditCreate.availability,\n confidentiality: manageEditCreate.confidentiality,\n integrity: manageEditCreate.integrity\n };\n\n return (\n <Wrapper>\n <NewColumn>\n <InputFilter\n getObjects={ getAllTemplates }\n data={ templates }\n width=\"405px\"\n height=\"38px\"\n placeholder=\"Search or give a name to your Vulnerability\"\n onSelect={ this.applyTemplate }\n onChange={ this.debouncedSetField }\n value={ name }\n />\n <Gap />\n <Title>CVE\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n );\n }\n}\n\nGeneral.propTypes = {\n templates: PropTypes.array.isRequired,\n manageEditCreate: PropTypes.object.isRequired,\n getAllTemplates: PropTypes.func.isRequired,\n setVulnField: PropTypes.func.isRequired,\n addPolicyViolation: PropTypes.func.isRequired,\n removePolicyViolation: PropTypes.func.isRequired\n};\n\nconst mapDispatchToProps = (dispatch) => ({\n getAllTemplates: () => {\n dispatch(getTemplates());\n },\n setValueFieldPreview: (vuln, field, value) => {\n dispatch(setValueFieldPreview(vuln, field, value));\n },\n setVulnField: (fieldName, value) => {\n dispatch(setField(fieldName, value));\n },\n addPolicyViolation: (val) => {\n dispatch(addPolicy(val));\n },\n removePolicyViolation: (index) => {\n dispatch(removePolicy(index));\n },\n addReference: (val) => {\n dispatch(addReference(val));\n },\n removeReference: (index) => {\n dispatch(removeReference(index));\n },\n addCVE: (val) => {\n dispatch(addCVE(val));\n },\n removeCVE: (val) => {\n dispatch(removeCVE(val));\n },\n selectCheckbox: (field) => {\n dispatch(selectCheckbox(field));\n }\n});\n\nconst mapStateToProps = (state) => ({\n templates: selectTemplates(state),\n manageEditCreate: selectManageEditCreate(state),\n readonly: selectReadonly(state),\n permissions: selectPermissions(state),\n name: selectNameField(state)\n});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(General));\n","import styled from 'styled-components';\nimport { Title } from '../MarkdownInput/styled';\n\nexport const Wrapper = styled.div`\n overflow-y: auto;\n user-select: none;\n & >:first-child {\n margin-bottom: 12px;\n }\n >:nth-child(3), >:nth-child(4), >:nth-child(5) {\n margin-bottom: 20px;\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const AditionalText = styled.div`\n width: 220px;\n height: 36px;\n font-size: 13.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.67;\n letter-spacing: 0.1px;\n color: #afb1bc;\n margin-left: 20px;\n`;\nAditionalText.displayName = 'AditionalText';\n\nexport const Row = styled.div`\n display:flex;\n align-items: flex-start;\n`;\nRow.displayName = 'Row';\n\nexport const Field = styled.div`\n width: 50%;\n`;\nField.displayName = 'Field';\n\nexport const MethodTitle = styled(Title)`\n`;\nMethodTitle.displayName = 'MethodTitle';\n","/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport { setField } from 'Screens/ManageEditCreate/actions/Actions';\nimport {\n selectDataField,\n selectRequestField,\n selectResponseField,\n selectWebsiteField,\n selectMethodField,\n selectQueryField,\n selectParamNameField,\n selectParamsField,\n selectStatusCodeField,\n selectIsWebVuln,\n selectPathField\n} from 'store/ManageEditCreate/selectors';\nimport { methodOptions } from 'Screens/Constants';\nimport MarkdownInput from '../MarkdownInput';\nimport CheckBox from 'Common/Components/Checkbox/index';\nimport StringField from 'Common/Components/StringField';\nimport StandardDropdown from 'Common/Components/StandarDropdown';\nimport { Wrapper, Row, Field, MethodTitle } from './styled';\nclass TechnicalDetails extends React.Component {\n constructor (props) {\n super(props);\n this.state = {};\n\n this.saveField = this.saveField.bind(this);\n }\n\n saveField (field, value) {\n this.props.setField(field, value);\n }\n\n render () {\n return (\n \n \n this.saveField('isWebVuln', !this.props.isWebVuln) } state={ this.props.isWebVuln } text={ 'Web Vulnerability' } />\n \n \n \n this.saveField('data', value) }\n />\n \n { this.props.isWebVuln &&\n \n this.saveField('query', value) }\n plainText\n />\n \n }\n \n { this.props.isWebVuln &&\n (\n <>\n \n \n this.saveField('website', value) }\n />\n \n \n this.saveField('path', value) }\n />\n \n \n \n \n Method\n this.saveField('method', value) }\n placeholder=\"Select method\"\n width=\"154px\"\n normal\n />\n \n this.saveField('status_code', value) }\n type=\"number\"\n />\n \n \n \n this.saveField('paramName', value) }\n />\n \n \n this.saveField('params', value) }\n />\n \n \n \n this.saveField('request', value) }\n plainText\n />\n this.saveField('response', value) }\n plainText\n />\n \n )}\n \n );\n }\n}\n\nTechnicalDetails.propTypes = {\n setField: PropTypes.func.isRequired\n};\n\nconst mapDispatchToProps = (dispatch) => ({\n setField: (fieldName, value) => {\n dispatch(setField(fieldName, value));\n }\n});\n\nconst mapStateToProps = (state) => ({\n data: selectDataField(state),\n isWebVuln: selectIsWebVuln(state),\n request: selectRequestField(state),\n response: selectResponseField(state),\n website: selectWebsiteField(state),\n method: selectMethodField(state),\n query: selectQueryField(state),\n paramName: selectParamNameField(state),\n params: selectParamsField(state),\n statusCode: selectStatusCodeField(state),\n path: selectPathField(state)\n});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(TechnicalDetails));\n","import React from 'react';\nimport CustomFieldsTab from 'Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/index';\nimport { Wrapper } from '../General/styled';\n\nconst CustomFields = () => (\n \n \n \n);\n\nexport default CustomFields;\n","import EvidenceTab from 'Common/Components/EvidenceTab';\nimport React from 'react';\nimport { Wrapper } from '../General/styled';\n\nconst Evidence = () => (\n \n \n \n);\n\nexport default Evidence;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n \n`;\nWrapper.displayName = 'Wrapper';\n\nexport const SearchAction = styled.div`\n font-size: 14.5px;\n font-weight: 600;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: #1c2243;\n padding: 8px 20px;\n cursor: pointer;\n border-top: solid 1px #c7d6e4;\n margin-left: -20px;\n margin-right: -20px;\n\n &:hover{\n background-color: #e4ecf3;\n box-shadow: 0 1px 0 0 #afafaf;\n font-weight: 600;\n }\n`;\nSearchAction.displayName = 'SearchAction';\n\nexport const DataContainer = styled.div`\n width: 400px;\n max-height: 350px;\n border-radius: 2px;\n box-shadow: 0 1px 0 0 #afafaf;\n background-color: #ffffff;\n overflow-y: auto;\n padding: 0 20px;\n position: absolute;\n z-index: 10;\n background-color: ${colors.iceBlue};\n \n \n`;\nDataContainer.displayName = 'DataContainer';\n\nexport const DataItem = styled.div`\n font-size: 13px;\n color: #1c2243;\n cursor: pointer;\n padding: 7px 20px 7px 20px;\n border-radius: 3px;\n margin-left: -20px;\n margin-right: -20px;\n}\n\n &:hover{\n background-color: #e4ecf3;\n box-shadow: 0 1px 0 0 #afafaf;\n font-weight: 600;\n }\n`;\nDataItem.displayName = 'DataItem';\n","/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport { FaChevronDown as ArrowDown } from 'react-icons/fa';\nimport {\n Wrapper,\n DataContainer,\n DataItem,\n SearchAction\n} from './styled';\nimport './styles.scss';\n\nclass InputSearch extends React.Component {\n constructor (props) {\n super(props);\n this.onChangeHandler = this.onChangeHandler.bind(this);\n this.onSelectHandler = this.onSelectHandler.bind(this);\n this.parseTitle = this.parseTitle.bind(this);\n\n this.state = {\n value: '',\n showData: false\n };\n }\n\n onChangeHandler (v) {\n this.setState({ value: v });\n this.setState({ showData: true });\n this.props.onChange(v);\n }\n\n onSelectHandler (item) {\n this.setState({ value: '' });\n this.setState({ showData: false });\n this.props.onSelect(item);\n }\n\n parseTitle (item, raw) {\n if (item.type && item.type === 'Host') {\n const hostname = `${item.hostnames.length > 0 ? `(${item.hostnames[0]})` : ''}`;\n return `${item.name} ${hostname}`;\n }\n if (item.type && item.type === 'Service') {\n const hData = item.hostnameData.length > 0 ? `(${item.hostnameData})` : '';\n return `${item.hostname} ${hData} ${raw ? item.name : ''}`;\n }\n\n return item.name;\n }\n\n render () {\n const { value, showData } = this.state;\n const {\n type,\n data,\n placeholder,\n searchAction,\n functionAction\n } = this.props;\n\n const filteredData = data.filter((it) => ((it.name.toLowerCase().includes(value.toLowerCase()) ||\n (it.type === 'Host' &&\n it.hostnames && it.hostnames.filter((element) => element.includes(value.toLowerCase())).length > 0))));\n\n return (\n { this.setState({ showData: false }); } }\n >\n 0 ? 'full' : ''}` } value={ value } placeholder={ placeholder } type={ type } onChange={ (e) => this.onChangeHandler(e.target.value) } onFocus={ () => { this.setState({ showData: true }); } } />\n { this.setState({ showData: true }); } } />\n {\n showData &&\n (\n \n { filteredData.length > 0 && filteredData.map((item) => (\n { this.onSelectHandler(item); } } onMouseDown={ (e) => { e.preventDefault(); } }>\n { this.parseTitle(item) }\n {item.type && item.type === 'Service' && {item.name} }\n \n )) }\n { value.length > 0 && functionAction(value) } onMouseDown={ (e) => { e.preventDefault(); } }>{ searchAction } }\n \n )\n }\n \n );\n }\n}\n\nInputSearch.propTypes = {\n data: PropTypes.array.isRequired,\n type: PropTypes.string,\n placeholder: PropTypes.string,\n onSelect: PropTypes.func.isRequired,\n onChange: PropTypes.func,\n functionAction: PropTypes.func,\n searchAction: PropTypes.object\n};\n\nInputSearch.defaultProps = {\n type: 'text',\n placeholder: 'Enter value',\n searchAction: null,\n onChange: null,\n functionAction: null\n};\n\nexport default withRouter(InputSearch);\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div` \n padding: 21px;\n background-color: #fafbfc;\n border: none;\n border-left: 8px solid #53a9ff;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n font-size: 14.5px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: #53a9ff;\n`;\nTitle.displayName = 'Title';\n\nexport const TitleField = styled.div`\n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: 0.09px;\n color: #afb1bc;\n margin-bottom: 8px;\n`;\nTitleField.displayName = 'TitleField';\n\nexport const FieldsWrapper = styled.div`\n display: inline-flex;\n margin-top: 21px;\n`;\nFieldsWrapper.displayName = 'FieldsWrapper';\n\nexport const FieldItem = styled.div`\n \n`;\nFieldItem.displayName = 'FieldItem';\n\nexport const ButtonsWrapper = styled.div`\n margin-top: 34px;\n text-align: right;\n`;\nButtonsWrapper.displayName = 'ButtonsWrapper';\n\nexport const BtnCancel = styled.button`\n width: 89px;\n height: 34px;\n margin: 0 8px 0 0;\n padding: 9px 21px 8px 22px;\n border-radius: 2px;\n border: solid 1px #707070;\n font-size: 14px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n text-align: center;\n color: #1c2243c;\n background-color: #fff;\n`;\nBtnCancel.displayName = 'BtnCancel';\n\nexport const BtnCreate = styled.button`\n width: 89px;\n height: 34px;\n margin: 0 0 0 8px;\n padding: 9px 30px 8px 32px;\n border-radius: 2px;\n background-color: ${(props) => (props.disabled ? '#c5c5c5' : '#53a9ff')};\n font-size: 14px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n text-align: center;\n color: #ffffff;\n border: none;\n cursor: ${(props) => (props.disabled ? 'default' : 'pointer')};\n`;\nBtnCreate.displayName = 'BtnCreate';\n\nexport const CustomInput = styled.input`\n width: ${(props) => (props.width ? `${props.width}` : '224px')};\n height: ${(props) => (props.height ? `${props.height}` : '34px')}; \n border-bottom: ${(props) => (props.error ? '1px solid red' : 'none')};\n border-left: none;\n border-top: none;\n border-right: none;\n box-shadow: inset 0 -1px 0 0 #afafaf;\n background-color: ${colors.iceBlue};\n padding-left: 15px;\n padding-right: 5px;\n font-size: 14.5px;\n font-weight: 300;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.48;\n letter-spacing: normal;\n color: #1c2243;\n\n &.full{\n background-color: white; \n }\n\n &::placeholder {\n color: #afb1bc;\n font-size: 13.5px;\n font-weight: 300;\n }\n\n &:hover{\n border: 1px solid #afb1bc; \n }\n\n &:focus{\n background-color: white; \n\n &::placeholder {\n color: transparent;\n }\n }\n`;\nCustomInput.displayName = 'CustomInput';\n","import React, { useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { createService } from 'Screens/ManageEditCreate/actions/Actions';\nimport {\n Wrapper,\n Title,\n FieldsWrapper,\n BtnCreate,\n BtnCancel,\n ButtonsWrapper,\n CustomInput,\n TitleField,\n FieldItem\n} from './styled';\n\nfunction AddServicePanel ({ cancelAction, hostId }) {\n const [name, setName] = useState('');\n const [port, setPort] = useState('');\n const [protocol, setProtocol] = useState('');\n const dispatch = useDispatch();\n\n const isFormValid = () => (\n name !== '' && port !== '' && protocol !== '' && Number(port)\n );\n\n const onChangeHandlerPort = (evt) => {\n const v = (evt.target.validity.valid) ? evt.target.value : port;\n setPort(v);\n };\n\n const AddService = () => {\n const data = {\n name,\n port,\n protocol,\n parent: hostId\n };\n dispatch(createService(data));\n cancelAction();\n };\n\n return (\n \n Add Service\n \n \n Name*\n setName(e.target.value) } />\n \n\n \n Port*\n onChangeHandlerPort(e) } />\n \n\n \n Protocol*\n setProtocol(e.target.value) } />\n \n\n \n \n { cancelAction(); } }>Cancel\n { AddService(); } }>Add\n \n\n \n );\n}\n\nAddServicePanel.propTypes = {\n cancelAction: PropTypes.func.isRequired,\n hostId: PropTypes.number.isRequired\n};\n\nAddServicePanel.defaultProps = {\n\n};\nexport default AddServicePanel;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n font-size: 12.5px;\n font-weight: 400;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.08;\n letter-spacing: normal;\n color: #0b2128;\n margin-bottom:15px\n`;\nTitle.displayName = 'Title';\n\nexport const AddAssets = styled.div`\n\n`;\nAddAssets.displayName = 'AddAssets';\n\nexport const AddedAssets = styled.div`\n border-left: solid 1px #e8e8e8;\n padding-left: 35px;\n height: 480px;\n overflow-y: auto;\n`;\nAddedAssets.displayName = 'AddedAssets';\n\nexport const AssetItem = styled.div`\n width: 370px;\n height: 38px;\n box-shadow: inset 0 -1px 0 0 #cbcdd6;\n font-size: 14.5px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.66;\n letter-spacing: 0.11px;\n color: #262d37;\n padding: 5px 10px;\n`;\nAssetItem.displayName = 'AssetItem';\n\nexport const AssetItemWrapper = styled.div`\n \n`;\nAssetItemWrapper.displayName = 'AssetItemWrapper';\n\nexport const RemoveAssetIcon = styled.div`\n padding: 1px 6px 4px;\n float: right;\n margin-left: 10px;\n cursor: pointer;\n font-size: 15px;\n border-radius: 50%;\n position: relative;\n top: -26px;\n\n &:hover{\n background-color: #95acc2; \n \n svg { \n color: white!important; \n } \n }\n`;\nRemoveAssetIcon.displayName = 'RemoveAssetIcon';\n\nexport const CreateAsset = styled.div`\n font-weight: 500;\n`;\nCreateAsset.displayName = 'CreateAsset';\n\nexport const AssetTitle = styled.span`\n text-overflow: ellipsis;\n overflow: hidden;\n width: 225px;\n white-space: nowrap;\n display: block;\n font-weight: 300;\n`;\nAssetTitle.displayName = 'AssetTitle';\n\nexport const EmptyInfoText = styled.div`\n font-size: 13.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: 0.1px;\n color: #63758d;\n width: 372px;\n`;\nEmptyInfoText.displayName = 'EmptyInfoText';\n\nexport const AddServiceWarning = styled.div`\n width: 370px;\n height: 34px; \n padding: 9px 1px 8px 21px;\n background-color: rgba(245, 146, 32, 0.1);\n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: #f59220;\n`;\nAddServiceWarning.displayName = 'AddServiceWarning';\n\nexport const ServiceLink = styled.span`\n color: #0082ed;\n margin-left: 5px;\n cursor: pointer;\n text-decoration: underline;\n`;\nServiceLink.displayName = 'ServiceLink';\n\nexport const Row = styled.div`\n display:flex;\n`;\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgNewVulnModalIcon = function SvgNewVulnModalIcon(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 44,\n height: 44,\n viewBox: \"0 0 44 44\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1C2243\",\n d: \"M42.124 34.012c.28-.29.426-.683.406-1.085l-.067-1.394h-1.4v-1.466h2.098c.39 0 .714.306.733.697l.103 2.09c.039.802-.253 1.586-.807 2.168-.554.582-1.323.911-2.127.911v-1.466c.402 0 .786-.164 1.061-.455zM1.467 33v-1.467h12.465v-1.466H4.4v-19.8c0-1.215.985-2.2 2.2-2.2V28.6h1.466V3.667c0-1.215.985-2.2 2.2-2.2H33.73c1.215 0 2.2.985 2.2 2.2v13.2h1.466v-8.8c1.215 0 2.2.985 2.2 2.2v11h1.466v-11c-.002-2.024-1.642-3.665-3.666-3.667V3.667C37.395 1.643 35.755.002 33.731 0H10.266C8.242.002 6.602 1.643 6.599 3.667V6.6c-2.023.002-3.663 1.643-3.666 3.667v19.8h-2.2c-.405 0-.733.328-.733.733V33c0 1.62 1.313 2.933 2.933 2.933h13.2v-1.466h-13.2c-.81 0-1.466-.657-1.466-1.467zm35.893-4.4c-.461 5.11-4.927 8.913-10.046 8.551-5.118-.36-9.006-4.752-8.745-9.877.262-5.125 4.576-9.098 9.705-8.937 5.128.162 9.184 4.398 9.123 9.53v.733h-.037zm-1.43-.733c0-4.456-3.61-8.067-8.066-8.067-4.454 0-8.066 3.611-8.066 8.067 0 4.455 3.612 8.066 8.066 8.066 4.453-.005 8.061-3.614 8.066-8.066zM9.533 2.933V4.4h1.466V2.933H9.533zm2.933 0V4.4h1.466V2.933h-1.466zm2.933 0V4.4h1.466V2.933H15.4zm19.065 2.934H9.533v1.466h24.93V5.867zm8.71 33.34c1.097 1.097 1.097 2.874 0 3.97-1.096 1.097-2.873 1.097-3.97 0l-4.748-4.75c-5.393 3.375-12.46 2.164-16.423-2.814-3.962-4.978-3.557-12.138.942-16.637 4.499-4.499 11.657-4.904 16.635-.942 4.978 3.963 6.189 11.03 2.814 16.424l4.75 4.75zm-15.31-.34c6.075 0 11-4.925 11-11 0-6.076-4.925-11-11-11-6.074 0-10.999 4.924-10.999 11 .007 6.072 4.928 10.993 11 11zm14.666 2.326c0-.356-.142-.697-.392-.949l-4.57-4.57c-.563.698-1.198 1.334-1.896 1.897l4.57 4.57c.383.383.96.497 1.46.29.5-.208.827-.696.828-1.238zM32.264 27.867v4.4c0 .405-.328.733-.733.733h-7.333c-.405 0-.733-.328-.733-.733v-4.4c0-.405.328-.734.733-.734h5.866V26.4c.001-.997-.668-1.87-1.63-2.128-.963-.258-1.979.164-2.476 1.028l-1.269-.733c.83-1.438 2.522-2.138 4.124-1.709 1.603.43 2.718 1.882 2.718 3.542v.733c.405 0 .733.329.733.734zm-1.466.733H24.93v2.933h5.867V28.6zM11.732 15.4c-1.215 0-2.2-.985-2.2-2.2v-1.467c0-1.215.985-2.2 2.2-2.2 1.215 0 2.2.985 2.2 2.2V13.2c0 1.215-.985 2.2-2.2 2.2zm0-1.467c.405 0 .734-.328.734-.733v-1.467c0-.405-.329-.733-.734-.733-.405 0-.733.328-.733.733V13.2c0 .405.328.733.733.733zm8.8-4.4c1.215 0 2.2.985 2.2 2.2V13.2c0 1.215-.985 2.2-2.2 2.2-1.215 0-2.2-.985-2.2-2.2v-1.467c0-1.215.985-2.2 2.2-2.2zm0 1.467c-.405 0-.734.328-.734.733V13.2c0 .405.329.733.734.733.405 0 .733-.328.733-.733v-1.467c0-.405-.328-.733-.733-.733zm9.434 2.567l1.27.733c.193-.335.295-.714.295-1.1v-1.467c0-1.215-.985-2.2-2.2-2.2-1.215 0-2.2.985-2.2 2.2V13.2c0 .386.101.765.293 1.1l1.271-.733c-.064-.112-.098-.238-.097-.367v-1.467c0-.405.328-.733.733-.733.405 0 .733.328.733.733V13.2c0 .129-.033.255-.098.367zm-13.1 1.1v-4.4h-1.467v4.4h1.466zm8.799 0v-4.4h-1.467v4.4h1.467zm-13.933 6.6v-4.4h-1.466v4.4h1.466zm2.934-4.4h-1.467v4.4h1.467v-4.4zm-5.133 8.066c0-1.215.984-2.2 2.2-2.2 1.214 0 2.2.985 2.2 2.2V26.4c0 1.215-.986 2.2-2.2 2.2-1.216 0-2.2-.985-2.2-2.2v-1.467zm1.466 1.467c0 .405.328.733.733.733.405 0 .734-.328.734-.733v-1.467c0-.405-.329-.733-.734-.733-.405 0-.733.328-.733.733V26.4zm23.465-11.733v-4.4h-1.467v4.4h1.467z\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgNewVulnModalIcon, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/new_vuln_modal_icon.033159cd.svg\";\nexport { ForwardRef as ReactComponent };","/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport InputSearch from 'Common/Components/InputSearch';\nimport { FiTrash2 as Trash } from 'react-icons/fi';\nimport { AiFillExclamationCircle as Warning } from 'react-icons/ai';\nimport {\n getServices,\n getHosts,\n createHost,\n addAsset,\n removeAsset\n} from 'Screens/ManageEditCreate/actions/Actions';\nimport { selectServicesAndHosts, selectManageEditCreate, selectIsWebVuln } from 'store/ManageEditCreate/selectors';\nimport AddServicePanel from './components/AddServicePanel';\nimport {\n Wrapper,\n Title,\n AddAssets,\n AddedAssets,\n AssetItem,\n RemoveAssetIcon,\n CreateAsset,\n AssetTitle,\n EmptyInfoText,\n AssetItemWrapper,\n AddServiceWarning,\n ServiceLink,\n Row\n} from './styled';\n\nclass Assets extends React.Component {\n constructor (props) {\n super(props);\n this.state = {\n assets: [],\n actionValue: '',\n showAddServicePanel: false,\n selectedAsset: null\n };\n this.addAsset = this.addAsset.bind(this);\n this.removeAsset = this.removeAsset.bind(this);\n this.parseTitle = this.parseTitle.bind(this);\n this.onChangeActionValueHandler = this.onChangeActionValueHandler.bind(this);\n }\n\n componentDidMount () {\n this.props.getServices();\n this.props.getHosts();\n }\n\n componentDidUpdate () {\n if (this.props.manageEditCreate.targets !== this.state.assets) {\n this.setState({ assets: this.props.manageEditCreate.targets });\n }\n }\n\n onChangeActionValueHandler (v) {\n this.setState({ actionValue: v });\n }\n\n addAsset (value) {\n const temp = this.state.assets;\n const found = temp.find((item) => item.type === value.type && item.id === value.id);\n if (!found) this.props.addVulnAsset(value);\n }\n\n removeAsset (value) {\n const temp = this.state.assets;\n const index = temp.findIndex((item) => item.type === value.type && item.id === value.id);\n if (index > -1) {\n temp.splice(index, 1);\n this.setState({ assets: temp });\n this.props.removeVulnAsset(value);\n }\n }\n\n parseTitle (item, raw) {\n if (item.type && item.type === 'Host') {\n const hostname = `${item.hostnames.length > 0 ? `(${item.hostnames[0]})` : ''}`;\n return `${item.name} ${hostname}`;\n }\n if (item.type && item.type === 'Service') {\n const hData = item.hostnameData.length > 0 ? `(${item.hostnameData})` : '';\n return `${item.hostname} ${hData} ${raw ? item.name : ''}`;\n }\n\n return item.name;\n }\n\n render () {\n const { servicesAndHost, createHostAsAsset, manageEditCreate, isWebVuln } = this.props;\n const { actionValue, showAddServicePanel, selectedAsset } = this.state;\n // const isVulnWeb = manageEditCreate.request !== '' && manageEditCreate.response !== '';\n const searchAction = (\n \n Create new Asset:\n {actionValue}\n \n );\n return (\n \n \n \n Add Assets\n \n \n \n Added Assets\n { manageEditCreate.targets.length === 0\n ? No Assets added yet. Please search & select or create new Assets on the left.\n : manageEditCreate.targets.map((item) => (\n \n \n { this.parseTitle(item) }\n this.removeAsset(item) }>\n {item.type && item.type === 'Service' && {item.name} }\n \n {\n isWebVuln && item.type === 'Host' &&\n (\n showAddServicePanel && selectedAsset.id === item.id\n ? { this.setState({ showAddServicePanel: false }); } } hostId={ item.id } />\n : (\n \n \n Web Vulns must be assigned to a\n { this.setState({ selectedAsset: item }); this.setState({ showAddServicePanel: true }); } }>Service\n \n )\n )\n }\n \n )) }\n \n \n \n );\n }\n}\n\nAssets.propTypes = {\n getServices: PropTypes.func.isRequired,\n getHosts: PropTypes.func.isRequired,\n createHostAsAsset: PropTypes.func.isRequired,\n servicesAndHost: PropTypes.array.isRequired,\n addVulnAsset: PropTypes.func.isRequired,\n removeVulnAsset: PropTypes.func.isRequired,\n manageEditCreate: PropTypes.object.isRequired\n};\n\nconst mapDispatchToProps = (dispatch) => ({\n getHosts: () => {\n dispatch(getHosts());\n },\n\n getServices: () => {\n dispatch(getServices());\n },\n\n createHostAsAsset: (value) => {\n dispatch(createHost(value));\n },\n\n addVulnAsset: (target) => {\n dispatch(addAsset(target));\n },\n\n removeVulnAsset: (target) => {\n dispatch(removeAsset(target));\n }\n});\n\nconst mapStateToProps = (state) => ({\n servicesAndHost: selectServicesAndHosts(state),\n manageEditCreate: selectManageEditCreate(state),\n isWebVuln: selectIsWebVuln(state)\n});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Assets));\n","import styled from 'styled-components';\n\nimport colors from 'Styles/colors';\nimport { Accept } from 'Common/Components/Button/styled';\nimport { ReactComponent as _modalIcon } from 'Images/new_vuln_modal_icon.svg';\nimport { slideIn } from 'Styles/effects';\n\nexport const Wrapper = styled.div`\n width: 906px;\n height: 725px !important;\n border-radius: 8px 8px 2px 2px;\n box-shadow: 0 2px 50px 0 rgba(0, 0, 0, 0.24);\n border: solid 1px #d6d6d6;\n background-color: #ffffff;\n border-top: 10px solid #419bf9;\n padding: 40px 25px 40px 30px;\n text-align: left;\n ${slideIn}\n`;\n\nexport const GeneralWrapper = styled.div`\n height: 530px;\n overflow-y: auto;\n padding-top: 24px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n width: 350px;\n height: 32px;\n font-size: 21.5px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.49;\n letter-spacing: normal;\n color: ${colors.blue9};\n`;\nTitle.displayName = 'Title';\n\nexport const ErrorMessage = styled.p`\n font-size: 12.5px;\n font-weight: normal;\n text-align: left;\n color: ${colors.redPink};\n float: left;\n width: 245px;\n margin-bottom: 8px !important;\n margin-top: 8px;\n`;\nErrorMessage.displayName = 'ErrorMessage';\n\nexport const CreateButton = styled(Accept)`\n width: 194px;\n margin-left: 10px;\n margin-right: 34px;\n background-color: ${(props) => (props.disabled ? colors.blueCerulean : colors.blue12)};\n opacity:1;\n\n & span {\n padding: 0 55px;\n }\n\n & svg {\n margin-bottom: 2px;\n }\n\n`;\nCreateButton.displayName = 'CreateButton';\n\nexport const Header = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nexport const ButtonWrapper = styled.div``;\n\nexport const ModalBody = styled.div`\n height: 96%;\n display: flex;\n flex-direction: column;\n overflow: auto;\n`;\n\nexport const ModalIcon = styled(_modalIcon)``;\n\nexport const Tabs = styled.div`\n display: flex;\n margin: 21px 0;\n user-select: none;\n`;\n\nexport const Tab = styled.div`\n margin-right: 28px;\n padding: 0 13px;\n padding-bottom: 10px;\n cursor: pointer;\n &:hover {\n border: none;\n color: #419bf9;\n }\n border-bottom: 2px solid transparent;\n\n ${({ active }) => (active\n? `\n color: #419bf9;\n border: none;\n border-bottom: 2px solid #419bf9;\n font-weight: 600;\n &:hover {\n border-bottom: 2px solid #419bf9;\n }\n `\n: '')}\n\n ${({ disable }) => (disable\n? `\n color: #afb1bc;\n cursor: not-allowed;\n &:hover {\n color: #afb1bc;\n }\n`\n: '')}\n\n`;\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgNextArrow = function SvgNextArrow(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 6,\n height: 10,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.795 5.528L1.845 9.78a.66.66 0 01-.984 0l-.656-.707a.788.788 0 010-1.06L3.005 5l-2.8-3.013a.788.788 0 010-1.06L.86.22a.66.66 0 01.985 0l3.95 4.252a.784.784 0 010 1.056z\",\n fill: \"#FFF\",\n fillRule: \"nonzero\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgNextArrow, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/next_arrow.407b029f.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as _modalIcon } from 'Images/new_vuln_modal_icon.svg';\nimport { ReactComponent as NextSVG } from 'Images/next_arrow.svg';\nimport { Accept } from 'Common/Components/Button/styled';\n\nexport const Wrapper = styled.div`\n display: flex;\n justify-content: space-between;\n user-select: none;\n`;\n\nexport const Title = styled.div`\n width: 350px;\n height: 32px;\n font-size: 21.5px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.49;\n letter-spacing: normal;\n color: ${colors.blue9};\n`;\nTitle.displayName = 'Title';\n\nexport const ModalIcon = styled(_modalIcon)`\n cursor: default;\n`;\n\nexport const NextIcon = styled(NextSVG)`\n cursor: ${({ disabled }) => (disabled ? 'default' : 'pointer')};\n`;\nNextIcon.displayName = 'NextIcon';\n\nexport const ButtonWrapper = styled.div``;\n\nexport const CreateButton = styled(Accept)`\n width: 194px;\n margin-left: 10px;\n margin-right: 34px;\n user-select: none;\n cursor: ${({ disabled }) => (disabled ? 'default' : 'pointer')};\n background-color: ${({ disabled }) => (disabled ? colors.blue12 : colors.blueCerulean)};\n opacity:1;\n\n & span {\n padding: 0 55px;\n }\n\n & svg {\n margin-bottom: 2px;\n }\n\n`;\nCreateButton.displayName = 'CreateButton';\n","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { createVulnerability, resetState } from 'Screens/ManageEditCreate/actions/Actions';\nimport {\n selectNameField,\n selectDescriptionField,\n selectSeverityField,\n selectTargetsField,\n selectIsWebVuln\n} from 'store/ManageEditCreate/selectors';\nimport { Cancel } from 'Common/Components/Button/styled';\nimport isEmpty from 'lodash/isEmpty';\nimport { PropTypes } from 'prop-types';\nimport {\n Wrapper, Title, ModalIcon, ButtonWrapper, CreateButton, NextIcon\n} from './styled';\n\nconst ManualCreationModal = ({ handleClose, activeTab, setActiveTab }) => {\n const dispatch = useDispatch();\n\n const name = useSelector(selectNameField);\n const description = useSelector(selectDescriptionField);\n const severity = useSelector(selectSeverityField);\n const targets = useSelector(selectTargetsField);\n const isWebVuln = useSelector(selectIsWebVuln);\n const hasTargets = !isEmpty(targets);\n\n const validTargets = () => {\n if (isWebVuln) return hasTargets && targets.every((t) => (t.type === 'Service'));\n return hasTargets;\n };\n\n const onHandleClose = () => {\n handleClose();\n setActiveTab('general');\n dispatch(resetState());\n };\n\n const handleCreateVuln = () => {\n if (validTargets()) {\n dispatch(createVulnerability());\n if (hasTargets) onHandleClose();\n }\n };\n\n const text = 'Create';\n const action = activeTab === 'assets' ? handleCreateVuln : () => setActiveTab('assets');\n const mandatoryFieldsFilled = !isEmpty(name) && !isEmpty(description) && !isEmpty(severity);\n const enabled = activeTab === 'assets' ? validTargets() : mandatoryFieldsFilled;\n\n return (\n \n \n <ButtonWrapper>\n <Cancel onClick={ onHandleClose } children=\"Cancel\" />\n <CreateButton\n disabled={ !enabled }\n onClick={ enabled ? action : undefined }\n >\n <span children={ text } />\n <NextIcon disabled={ !enabled } />\n </CreateButton>\n <ModalIcon />\n </ButtonWrapper>\n </Wrapper>\n );\n};\n\nManualCreationModal.propTypes = {\n handleClose: PropTypes.func.isRequired,\n activeTab: PropTypes.string.isRequired,\n setActiveTab: PropTypes.func.isRequired\n};\n\nexport default ManualCreationModal;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as _Warning } from 'Images/warning-delete.svg';\n\nexport const Wrapper = styled.div`\n max-width: 505px;\n width: 100%;\n padding: 36px 40px 27px 40px;\n box-shadow: rgb(167 167 167 / 50%) 18px 43px 50px 0px;\n border-top: 10px solid ${colors.softBlue};\n border-radius: 2px 2px 0px 0px;\n overflow: auto;\n max-height: 85%;\n text-align: left;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Header = styled.div`\n display: flex;\n margin-bottom: 17px;\n`;\nHeader.displayName = 'Header';\n\nexport const Warning = styled(_Warning)`\n align-self: center;\n margin-right: 11px;\n`;\nWarning.displayName = 'Warning';\n\nexport const Title = styled.div`\n display: inline-block;\n font-size: 21.5px;\n font-weight: 600;\n line-height: 1.49;\n color: ${colors.darkBlueGrey};\n`;\nTitle.displayName = 'Title';\n\nexport const Message = styled.div`\n display: block;\n font-size: 12.5px;\n color: ${colors.grey19};\n`;\nMessage.displayName = 'Message';\n\nexport const Footer = styled.div`\n display: flex;\n justify-content: flex-end;\n padding: 25px 0 0;\n`;\nFooter.displayName = 'Footer';\n","import React, { useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { closeModal } from 'store/modals/actions';\nimport { MODAL_EVIDENCE_WARNING_UPLOAD } from 'store/modals/modals';\nimport { Cancel } from 'Common/Components/Button/styled';\nimport {\n Wrapper, Header, Warning, Title, Message,\n Footer\n} from './styled';\n\nconst ModalWarning = () => {\n const dispatch = useDispatch();\n\n useEffect(() => () => {\n dispatch(closeModal(MODAL_EVIDENCE_WARNING_UPLOAD));\n }, [dispatch]);\n\n const close = () => dispatch(closeModal(MODAL_EVIDENCE_WARNING_UPLOAD));\n\n return (\n <Wrapper>\n <Header>\n <Warning />\n <Title>Warning\n \n\n \n The maximum size allowed is 20MB.\n \n
\n Close\n
\n
\n );\n};\n\nexport default ModalWarning;\n","import React, { useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { selectManageEditCreate } from 'store/ManageEditCreate/selectors';\nimport PropTypes from 'prop-types';\nimport General from 'Screens/ManageEditCreate/components/ManualCreationModal/components/General';\nimport ModalWrapper from 'Common/Components/ModalWrapper';\nimport TechnicalDetails from './components/TechnicalDetails';\nimport CustomFields from './components/CustomFields';\nimport Evidence from './components/Evidence';\nimport Assets from './components/Assets';\nimport {\n Wrapper, ModalBody, Tab, Tabs\n} from './styled';\nimport Header from './components/Header';\nimport { MODAL_EVIDENCE_WARNING_UPLOAD } from 'store/modals/modals';\nimport ModalWarning from 'Common/Components/EvidenceTab/components/ModalWarning';\nimport ReduxModal from 'Common/Components/ReduxModal';\n\nconst ManualCreationModal = ({ handleClose, show }) => {\n const [activeTab, setActiveTab] = useState('general');\n\n const RenderTab = {\n general: ,\n technicalDetails: ,\n customFields: ,\n assets: ,\n evidence: \n };\n\n const { name, description, severity } = useSelector(selectManageEditCreate);\n const disable = name === '' || description === '' || severity === '';\n\n if (!show) return null;\n return (\n \n \n
\n \n \n setActiveTab('general') } active={ activeTab === 'general' }>General\n setActiveTab('technicalDetails') } active={ activeTab === 'technicalDetails' }>Technical Details\n setActiveTab('customFields') } active={ activeTab === 'customFields' }>Custom Attributes\n setActiveTab('evidence') } active={ activeTab === 'evidence' }>Evidence\n !disable && setActiveTab('assets') } active={ activeTab === 'assets' } disable={ disable }>Assets\n \n {RenderTab[activeTab]}\n \n \n \n \n \n \n );\n};\n\nManualCreationModal.propTypes = {\n show: PropTypes.bool.isRequired,\n handleClose: PropTypes.func.isRequired\n};\n\nexport default ManualCreationModal;\n","import styled from 'styled-components';\nimport { Col } from 'Common/Components/Grid';\n\nexport const Wrapper = styled.div.attrs({\n id: 'feed_section_container'\n})`\n padding-bottom: 22px;\n height: 100%;\n overflow: auto;\n ::-webkit-scrollbar {\n display: none;\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const StyledCol = styled(Col)`\n & > *:not(:last-child) {\n margin-bottom: 14px;\n }\n`;\nStyledCol.displayName = 'StyledCol';\n","import React, { useState, useEffect } from 'react';\nimport Layout from 'Screens/Dashboard/components/Layout';\nimport ImportFileCreationModal from 'Screens/ManageEditCreate/components/ImportFileCreationModal';\nimport { getVulnsCount } from 'Screens/Dashboard/actions/Actions';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\n\nimport EmptyVulns from 'Common/Components/EmptyVulns';\nimport emptyFeed from 'Images/empty-feed.png';\nimport ManualCreationModal from 'Screens/ManageEditCreate/components/ManualCreationModal';\n\nimport { selectTotalVulns } from 'store/Workspace/selectors';\nimport { StyledCol, Wrapper } from './Dashboard/styled';\n\nconst DashboardLayout = () => {\n const dispatch = useDispatch();\n const props = useSelector((state) => ({\n dashboard: state.dashboard,\n vulns: state.dashboard.tools[0].data,\n workspaceSelected: selectCurrentWorkspace(state),\n reloadVulnerabilities: state.dashboard.reloadVulnerabilities,\n faraday: state.faraday,\n totalVulns: selectTotalVulns(state),\n isFetching: state.dashboard.isFetching\n }));\n const {\n workspaceSelected, reloadVulnerabilities\n } = props;\n\n useEffect(() => {\n dispatch(getVulnsCount());\n }, [workspaceSelected, reloadVulnerabilities, dispatch]);\n\n const [showModalUploadVulns, toggleModalUploadVulns] = useState(false);\n const [showModalCreateVuln, toggleModalCreateVuln] = useState(false);\n\n if (props.totalVulns === 0 && !props.isFetching) {\n return (\n <>\n toggleModalUploadVulns(true) } toggleModalCreateVuln={ () => toggleModalCreateVuln(true) } />\n toggleModalUploadVulns(false) } />\n toggleModalCreateVuln(false) } />\n \n );\n }\n const { tools } = props.dashboard;\n\n return (\n \n \n { tools.filter((t) => t.render).length > 0 ? : null }\n \n \n );\n};\n\nexport default DashboardLayout;\n","import React from 'react';\nimport { DashboardTour } from 'Common/Components/Tour';\nimport DashboardLayout from '../DashboardLayout';\n\nconst Dashboard = () => (\n <>\n \n \n \n);\n\nexport default Dashboard;\n","import { useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { redirect } from 'store/Router/actions';\n\nconst NotFound = () => {\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(redirect('/'));\n }, [dispatch]);\n\n return null;\n};\n\nexport default NotFound;\n","import { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport NotFound from './NotFound';\n\nconst mapStateToProps = (state) => ({\n loggedIn: state.sesion.loggedIn\n});\n\nconst mapDispatchToProps = () => ({});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(NotFound));\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport BlueButton from 'Common/Components/BlueButton/index';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const Wrapper = styled.div`\n \n`;\nWrapper.displayName = 'Wrapper';\n\nexport const OptionsContainer = styled.div`\n display: inline-block;\n margin-top: 14px;\n`;\nOptionsContainer.displayName = 'OptionsContainer';\n\nexport const ForgotPassword = styled.div`\n color: ${colors.blue9};\n font-size: 12.5px;\n font-weight: 300;\n font-stretch: normal;\n float:left;\n display: inline-block;\n text-decoration: underline;\n cursor: pointer;\n`;\nForgotPassword.displayName = 'ForgotPassword';\n\nexport const RememberMe = styled.div`\n display: flex;\n flex-direction: row;\n font-weight: 300;\n\n .checkbox-container {\n display: inline;\n float: left;\n margin-right: 9px;\n margin-bottom: 0px;\n margin-top: 2px;\n }\n`;\nRememberMe.displayName = 'RememberMe';\n\nexport const RememberMeLabel = styled.div`\n color: ${colors.grey11};\n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n display: inline;\n float: left;\n margin-top: 1px;\n`;\nRememberMe.displayName = 'RememberMe';\n\nexport const InputTitle = styled.p`\n color: ${(props) => (props.error ? colors.redPink : colors.grey11)};\n font-weight: 300 !important;\n`;\nInputTitle.displayName = 'InputTitle';\n\nexport const ErrorMessage = styled.p.attrs({\n id: 'login_error_message'\n})`\n font-size: 10.5px;\n font-weight: normal;\n text-align: left;\n color: ${colors.redPink};\n float: left;\n width: 245px;\n margin-bottom: 8px !important;\n margin-top: 8px;\n`;\nErrorMessage.displayName = 'ErrorMessage';\n\nexport const WrapperField = styled.div`\n ${InputTitle} {\n width: 348px;\n display: flex;\n justify-content: left;\n height: 14px;\n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.12;\n letter-spacing: normal;\n text-align: left;\n padding-left: 5px;\n }\n`;\nWrapperField.displayName = 'WrapperField';\n\nexport const AcceptButton = styled(BlueButton)`\n margin-top: 34px;\n width: 100%;\n `;\nAcceptButton.displayName = 'AcceptButton';\n","/* eslint-disable react/destructuring-assignment */\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport { resetState } from 'Screens/Wizard/actions/Actions';\nimport {\n selectIsFetching, selectRememberMe, selectErrorMessage, selectIsLoggedIn\n} from 'store/Sesion/selectors';\nimport { login, loginStart, setRememberMe } from 'Screens/Login/actions/Actions';\nimport StringField from 'Common/Components/StringField';\nimport 'Screens/Login/styles/loginStyles.scss';\nimport MainContainer from 'Common/Components/MainContainer';\nimport CustomCheckbox from 'Common/Components/CustomCheckbox';\nimport { redirect } from 'store/Router/actions';\nimport {\n OptionsContainer, RememberMe, RememberMeLabel,\n InputTitle, ErrorMessage, WrapperField, AcceptButton\n} from './styled';\n\nclass Login extends Component {\n constructor (props) {\n super(props);\n this.state = {\n user: '',\n password: '',\n error: false,\n fetched: false\n };\n this.submit = this.submit.bind(this);\n }\n\n componentDidMount () {\n this.props.resetState();\n this.setState({ fetched: false });\n }\n\n UNSAFE_componentWillReceiveProps (nextProps) {\n if (nextProps.errorMessage && nextProps.errorMessage.length > 0 && this.state.fetched) this.setState({ error: true });\n if (nextProps.loggedIn) {\n this.setState({\n user: '', password: '', error: false, fetched: false\n });\n }\n }\n\n // Chrome only sets the autofill value once the user interacts with the app by cliking somewhere.\n // Because of that, we need to delay the submit of the login until state is updated with autofill values\n // This can be fixed by using a login with form and login url\n\n submit () {\n this.props.loginStart();\n\n setTimeout(() => {\n this.props.login(this.state.user, this.state.password);\n this.setState({\n error: false, fetched: true\n });\n }, 500);\n }\n\n render () {\n const {\n isFetching,\n rememberMe\n } = this.props;\n\n return (\n \n
\n

Sign in

\n
\n\n <>\n \n Username\n \n \n { this.setState({ user: v, error: false, fetched: false }); } } submit={ () => { this.submit(); } } error={ this.state.error } />\n \n \n\n
\n \n Password\n \n \n { this.setState({ password: v, error: false, fetched: false }); } } submit={ () => { this.submit(); } } error={ this.state.error } />\n \n
\n\n {this.state.error ? Invalid username or password : null}\n\n \n \n { this.props.setRememberMe(!rememberMe); } } key=\"rememberMe\" isChecked={ rememberMe } id=\"test_id_remember_me\" />\n Remember Me\n \n \n\n \n this.submit() } label=\"Login\" isLoading={ isFetching } />\n \n
\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n isFetching: selectIsFetching(state),\n rememberMe: selectRememberMe(state),\n errorMessage: selectErrorMessage(state),\n isLoggedIn: selectIsLoggedIn(state)\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n loginStart: () => {\n dispatch(loginStart());\n },\n login: (user, password) => {\n dispatch(login(user, password));\n },\n resetState: () => {\n dispatch(resetState());\n },\n setRememberMe: (value) => {\n dispatch(setRememberMe(value));\n },\n redirect: (pathname) => {\n dispatch(redirect(pathname));\n }\n});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Login));\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const AditionalText = styled.div`\n width: 220px;\n height: 36px; \n font-size: 13.5px;\n font-weight: 300;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.67;\n letter-spacing: 0.1px;\n color: #afb1bc;\n margin-left: 20px;\n margin-top: 10px;\n`;\nAditionalText.displayName = 'AditionalText';\n\nexport const DropdownsContainer = styled.div`\n display: flex;\n margin-left: 17px;\n align-self: flex-end;\n`;\nDropdownsContainer.displayName = 'DropdownsContainer';\n\nexport const RedDot = styled.div`\n color: ${colors.redPink};\n padding-top: 9px;\n margin-left: 3px;\n`;\nRedDot.displayName = 'RedDot';\n\nexport const Black = styled.div`\n color: #0b2128;\n display: inline;\n`;\nBlack.displayName = 'Black';\n\nexport const Row = styled.div`\n display:flex;\n`;\n\nexport const PolicyColumn = styled.div`\n width: 51%;\n`;\nPolicyColumn.displayName = 'PolicyColumn';\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport StringField from 'Common/Components/StringField';\nimport {\n setField,\n addPolicy,\n removePolicy\n} from 'Screens/KnowledgeBaseEditCreate/actions/Actions';\nimport {\n selectTemplateEditCreate,\n selectPermissions,\n selectReadonly\n} from 'store/KnowledgeBase/selectors';\nimport SeverityDropdown from 'Common/Components/SeverityDropdown';\nimport EORDropdown from 'Common/Components/EORDropdown';\nimport CustomList from 'Common/Components/CustomList';\nimport Impacts from 'Common/Components/Impacts';\nimport {\n Wrapper, DropdownsContainer, RedDot, Black, Row, PolicyColumn\n} from './styled';\nimport MarkdownInput from 'Screens/ManageEditCreate/components/ManualCreationModal/components/MarkdownInput';\n\nconst General = () => {\n const dispatch = useDispatch();\n const props = useSelector((state) => ({ ...selectReadonly(state), ...selectPermissions(state), ...selectTemplateEditCreate(state) }));\n\n const saveData = (field, value) => {\n dispatch(setField(field, value));\n };\n\n const impacts = {\n accountability: props.accountability,\n availability: props.availability,\n confidentiality: props.confidentiality,\n integrity: props.integrity\n };\n\n return (\n \n \n saveData('name', value) }\n title={ (\n \n Name\n {' '}\n *\n \n) }\n />\n \n saveData('exploitation', value) } defaultValue={ props.exploitation } />\n saveData('easeofresolution', value) } defaultValue={ props.easeofresolution } />\n \n \n\n \n saveData('description', value) }\n />\n\n saveData('resolution', value) }\n />\n \n\n \n \n dispatch(addPolicy()) }\n removeItem={ (index) => dispatch(removePolicy(index)) }\n setItem={ (value) => saveData('policy', value) }\n listData={ props.policyviolations }\n />\n \n <>\n saveData(field, !props[field]) }\n impacts={ impacts }\n margin={ false }\n />\n \n \n \n );\n};\n\nexport default withRouter(General);\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const AditionalText = styled.div`\n width: 220px;\n height: 36px; \n font-size: 13.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.67;\n letter-spacing: 0.1px;\n color: #afb1bc;\n margin-left: 20px;\n`;\nAditionalText.displayName = 'AditionalText';\n\nexport const ListWraper = styled.div`\nmargin-top: 17px;\n`;\nListWraper.displayName = 'ListWraper';\n\nexport const Row = styled.div`\n display:flex;\n`;\nexport const Data = styled.div`\nmargin-left: 14px;\n`;\nData.displayName = 'Data';\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport {\n selectTemplateEditCreate\n} from 'store/KnowledgeBase/selectors';\nimport {\n addReference,\n removeReference,\n setField\n} from 'Screens/KnowledgeBaseEditCreate/actions/Actions';\n\nimport Md from 'Common/Components/Md';\nimport StringField from 'Common/Components/StringField';\nimport CustomList from 'Common/Components/CustomList';\nimport {\n Wrapper, ListWraper, Row, Data\n} from './styled';\n\nconst TechnicalDetails = () => {\n const dispatch = useDispatch();\n const props = useSelector((state) => ({ ...selectTemplateEditCreate(state) }));\n\n const saveData = (value) => {\n dispatch(setField('data', value));\n };\n\n return (\n \n \n \n \n dispatch(setField('external_id', value)) } defaultValue={ props.external_id } />\n \n dispatch(addReference()) }\n removeItem={ (index) => dispatch(removeReference(index)) }\n setItem={ (value) => dispatch(setField('reference', value)) }\n listData={ props.references }\n />\n \n \n \n \n );\n};\n\nexport default withRouter(TechnicalDetails);\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { Accept } from 'Common/Components/Button/styled';\nimport { ReactComponent as _modalIcon } from 'Images/new_vuln_modal_icon.svg';\nimport { slideIn } from 'Styles/effects';\nimport { ReactComponent as NextSVG } from 'Images/next_arrow.svg';\n\nexport const Wrapper = styled.div`\n width: 906px;\n height: 725px !important;\n border-radius: 8px 8px 2px 2px;\n box-shadow: 0 2px 50px 0 rgba(0, 0, 0, 0.24);\n border: solid 1px #d6d6d6;\n background-color: #ffffff;\n border-top: 10px solid #419bf9;\n padding: 40px 30px;\n text-align: left;\n overflow: auto;\n ${slideIn}\n`;\n\nexport const GeneralWrapper = styled.div`\n height: 530px;\n overflow-y: auto;\n padding-top: 24px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n width: 350px;\n height: 32px;\n font-size: 21.5px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.49;\n letter-spacing: normal;\n color: ${colors.blue9};\n`;\nTitle.displayName = 'Title';\n\nexport const ErrorMessage = styled.p`\n font-size: 12.5px;\n font-weight: normal;\n text-align: left;\n color: ${colors.redPink};\n float: left;\n width: 245px;\n margin-bottom: 8px !important;\n margin-top: 8px;\n`;\nErrorMessage.displayName = 'ErrorMessage';\n\nexport const CreateButton = styled(Accept)`\n width: 194px;\n margin-left: 10px;\n margin-right: 34px;\n user-select: none;\n cursor: ${({ disabled }) => (disabled ? 'default' : 'pointer')};\n background-color: ${({ disabled }) => (disabled ? colors.blue12 : colors.blueCerulean)};\n opacity:1;\n\n & span {\n padding: 0 55px;\n }\n\n & svg {\n margin-bottom: 2px;\n }\n\n`;\nCreateButton.displayName = 'CreateButton';\n\nexport const NextIcon = styled(NextSVG)`\n cursor: ${({ disabled }) => (disabled ? 'default' : 'pointer')};\n`;\nNextIcon.displayName = 'NextIcon';\n\nexport const Header = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nexport const ButtonWrapper = styled.div``;\n\nexport const ModalBody = styled.div`\n height: 89%;\n`;\n\nexport const ModalIcon = styled(_modalIcon)`\n cursor: default;\n`;\n\nexport const Tabs = styled.div`\n display: flex;\n margin: 21px 0;\n`;\n\nexport const Tab = styled.div`\n margin-right: 28px;\n padding: 0 13px;\n padding-bottom: 10px;\n cursor: pointer;\n &:hover {\n border: none;\n color: #419bf9;\n }\n border-bottom: 2px solid transparent;\n\n ${({ active }) => (active\n? `\n color: #419bf9;\n border: none;\n border-bottom: 2px solid #419bf9;\n font-weight: 600;\n &:hover {\n border-bottom: 2px solid #419bf9;\n }\n `\n: '')}\n \n`;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n flex: 1 1 0;\n overflow-y: auto;\n padding-right: 5px;\n user-select: none;\n height: 98%;\n \n > :not(:last-child){\n margin-bottom: 26px;\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Content = styled.div`\n\n > :not(:last-child) {\n margin-bottom: 21px;\n }\n`;\n\nContent.displayName = 'Content';\n\nexport const NoFieldsText = styled.span`\n font-size: 12.5px;\n line-height: 1.76;\n color: ${colors.grey19};\n user-select: none;\n`;\n\nNoFieldsText.displayName = 'NoFieldsText';\n","import React from 'react';\nimport { useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport { selectCustomAttributes } from 'store/CustomAttributes/selectors';\nimport { templatesSelected, selectField } from 'store/KnowledgeBase/selectors';\nimport CustomField from 'Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/components/CustomField/index';\nimport { Wrapper, Content, NoFieldsText } from './styled';\nimport ToggleButtons from 'Screens/Manage/components/ToggleButtons';\nimport ExpandableWrapper from 'Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/GeneralTab/components/ExpandableWrapper';\nimport { setCustomAttribute } from 'Screens/KnowledgeBaseEditCreate/actions/Actions';\nimport useExpandable from 'Hooks/useExpandable';\nimport getCustomFieldValueFromVuln from 'Screens/Manage/components/VulnerabilityDetail/components/Tabs/components/CustomFieldsTab/functions';\nconst ID = 'customAttributes';\n\nconst CustomFieldWrapper = ({ field }) => {\n const templateSelected = useSelector(templatesSelected);\n const editValue = useSelector((state) => selectField(state, field));\n const value = Object.keys(templateSelected).length === 0 ? editValue : getCustomFieldValueFromVuln(templateSelected, field, 'template');\n const initialValue = value ? value.toString() : '';\n const dispatch = useDispatch();\n const isExpanded = useExpandable(ID, field.field_name, initialValue);\n const saveData = (fieldName, fieldValue) => {\n dispatch(setCustomAttribute(fieldName, fieldValue));\n };\n return (\n \n \n \n );\n};\n\nconst CustomAttributes = () => {\n const intl = useIntl();\n const customFields = useSelector(selectCustomAttributes);\n const hasCustomFields = customFields.length > 0;\n return (\n \n \n \n\n {customFields.map((field) => (\n \n ))}\n {!hasCustomFields && {intl.formatMessage({ id: 'customAttributes.empty' })}}\n \n \n );\n};\n\nexport default withRouter(CustomAttributes);\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { selectTemplateEditCreate } from 'store/KnowledgeBase/selectors';\nimport { resetState, createTemplate } from 'Screens/KnowledgeBaseEditCreate/actions/Actions';\nimport { Cancel } from 'Common/Components/Button/styled';\nimport ModalWrapper from 'Common/Components/ModalWrapper';\nimport { useDispatch, useSelector } from 'react-redux';\nimport isEmpty from 'lodash/isEmpty';\nimport General from './components/General';\nimport TechnicalDetails from './components/TechnicalDetails';\nimport {\n Wrapper, Title, ErrorMessage, CreateButton, Header, ButtonWrapper, ModalBody, ModalIcon, Tabs, Tab, NextIcon\n} from './styled';\nimport CustomAttributes from './components/CustomAttributes';\n\nconst ManualCreationModal = ({ handleClose, show }) => {\n const {\n errorMessage, exploitation, id, name\n } = useSelector(selectTemplateEditCreate);\n const [activeTab, setActiveTab] = useState('general');\n const dispatch = useDispatch();\n const onHandleClose = () => {\n handleClose();\n setActiveTab('general');\n dispatch(resetState());\n };\n const onHandleSubmitClose = async () => {\n dispatch(createTemplate());\n onHandleClose();\n };\n const RenderTab = {\n general: ,\n technicalDetails: ,\n customAttributes: \n };\n\n const saveDisabled = isEmpty(name) || isEmpty(exploitation);\n\n return show && (\n \n \n
\n { id > 0 ? 'Edit Vulnerability Template' : 'Create New Vulnerability Template'}\n \n Cancel\n \n { id ? 'Save' : 'Create'}\n \n \n \n \n
\n \n \n setActiveTab('general') } active={ activeTab === 'general' }>General\n setActiveTab('technicalDetails') } active={ activeTab === 'technicalDetails' }>Technical Details\n setActiveTab('customAttributes') } active={ activeTab === 'customAttributes' }>Custom Attributes\n \n {RenderTab[activeTab]}\n \n {errorMessage.length > 0 ? {errorMessage} : null}\n
\n
\n );\n};\n\nManualCreationModal.propTypes = {\n show: PropTypes.bool.isRequired,\n handleClose: PropTypes.func.isRequired\n};\n\nexport default ManualCreationModal;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as _PlusIcon } from 'Images/icon-action-bar-plus.svg';\n\nexport const Wrapper = styled.div`\n position: relative;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const AddButton = styled.span`\n font-weight: 300;\n appearence: none;\n font-size: 12px;\n -webkit-appearance: none;\n color: ${colors.black}\n`;\nAddButton.displayName = 'AddButton';\n\nexport const DropdownText = styled.span`\n font-weight: 500;\n color: ${colors.dark2};\n font-size: 11.5px;\n`;\nDropdownText.displayName = 'DropdownText';\n\nexport const DropdownItem = styled.div`\nheight: 34px;\npadding: 10px 17px;\ndisplay: flex;\n\nsvg {\n position: relative;\n margin-right: 15px;\n}\n\n&:hover {\n background-color: #f1f4f7;\n font-weight: 600;\n}\n font-size: 12px;\n font-weight: 300;\n`;\nDropdownItem.displayName = 'DropdownItem';\n\nexport const Dropdown = styled.div`\n position: absolute;\n left: 0;\n width: 244px;\n height: 76px;\n border-radius: 3px;\n box-shadow: 2px 2px 30px 0 #d5dee6;\n border: solid 1px #cdd5dd;\n background-color: #ffffff;\n padding: 3px 4px;\n z-index: 1000;\n`;\n\nexport const PlusIcon = styled(_PlusIcon)`\nheight: 11px;\nmargin-right: 10px;\n& > path {\n fill: #1c2243;\n}\n`;\n\nexport const DropdownWrapper = styled.div`\nbackground-color: transparent;\n padding: 0px 10px;\n font-size: 11.5px;\n font-weight: 500;\n line-height: 34px;\n height: 34px;\n border-radius: 2px;\n border: solid 1px rgba(144, 169, 192, 0.3);\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n &:hover {\n border-radius: 3px;\n border: solid 1px #d8dee5;\n background-color: #f1f4f7;\n }\n\n &:active {\n border: solid 1px #bcccd9;\n background-color: #dde5ec;\n }\n`;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n margin-top: 34px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const SummaryContainer = styled.div`\n width: 100%;\n height: 229px;\n border-radius: 3px;\n border: solid 1px #f6f6f8;\n background-color: #f6f6f8;\n overflow-y: auto;\n`;\nSummaryContainer.displayName = 'SummaryContainer';\n\nexport const Icon = styled.div`\n text-align: center;\n margin-top: 34px;\n`;\nIcon.displayName = 'Icon';\n\nexport const Filenames = styled.div` \n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal; \n letter-spacing: normal;\n text-align: left;\n color: #419bf9;\n text-align: center;\n margin-top: 7px;\n\n span {\n margin-right: 5px;\n }\n`;\nFilenames.displayName = 'Filenames';\n\nexport const SubText = styled.div` \n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.44;\n letter-spacing: normal;\n text-align: center;\n color: #7a7e8f;\n text-align: center;\n margin-top: 34px;\n padding: 0 20px;\n padding-bottom: 34px;\n\n`;\nSubText.displayName = 'SubText';\n\nexport const File = styled.img`\n width: 28px;\n height: 34px;\n color: #7a7e8f; \n`;\nFile.displayName = 'File';\n\nexport const ErrorText = styled.div` \n color: #c71717;\n`;\nErrorText.displayName = 'ErrorText';\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport fileImg from 'Images/generic_file.svg';\nimport { FormattedMessage } from 'react-intl';\nimport {\n Wrapper,\n SummaryContainer,\n Icon,\n File,\n Filenames,\n SubText,\n ErrorText\n} from './styled';\n\nclass UploadSummary extends React.Component {\n constructor (props) {\n super(props);\n this.state = {};\n }\n\n render () {\n const { files, errorFilesList, transactional } = this.props;\n const subText = transactional ? 'file_upload_modal.file_uploaded' : 'file_upload_modal.processing';\n return (\n \n \n \n \n { files.map((f) => (errorFilesList.indexOf(f.name) === -1 ?
{f.name}
: {f.name})) }\n
\n \n \n \n
\n
\n\n );\n }\n}\n\nUploadSummary.propTypes = {\n files: PropTypes.array.isRequired,\n errorFilesList: PropTypes.array.isRequired\n};\n\nconst mapDispatchToProps = () => ({\n\n});\n\nconst mapStateToProps = () => ({\n\n});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(UploadSummary));\n","import styled from 'styled-components';\nimport { BackButton } from 'Common/Components/MainContainer/styled';\n\nexport const Wrapper = styled.div`\nwidth: 450px;\nheight: fit-content;\nborder-radius: 2px;\nbox-shadow: 0 2px 50px 0 rgba(0, 0, 0, 0.24);\nborder: solid 1px #d6d6d6;\nbackground-color: #ffffff;\nborder-top: 10px solid #419bf9;\npadding: 34px;\nmargin-left: auto;\nmargin-right: auto;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Text = styled.label`\n color: #0082ed;\n float: right;\n margin-top: 42px;\n font-size: 12.5px;\n cursor: pointer;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n font-size: 21.5px;\n font-weight: 600;\n line-height: 1.16;\n text-align: left;\n margin-bottom: 34px;\n`;\nTitle.displayName = 'Title';\n\nexport const BackBtn = styled(BackButton)`\n float: right;\n margin-right: 9px\n`;\nBackBtn.displayName = 'BackBtn';\n\nexport const CLink = styled.div`\n margin-top: 5px;\n a{\n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.12;\n letter-spacing: normal;\n text-align: left;\n color: #419bf9; \n }\n`;\nCLink.displayName = 'CLink';\n\nexport const AddMore = styled.div`\n margin-top: 10px;\n cursor:pointer;\n font-size: 12.5px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.12;\n letter-spacing: normal;\n text-align: left;\n color: #0082ed;\n\n svg {\n margin-right: 5px;\n font-size: 0.9em;\n position: relative;\n top: -2px;\n }\n`;\nAddMore.displayName = 'AddMore';\n","/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport DragFile from 'Common/Components/DragFile';\nimport FileUploader from 'Common/Components/FileUploader';\nimport { FaPlus as Plus } from 'react-icons/fa';\nimport {\n Button,\n ButtonsContainer,\n PullLeft,\n BackButton\n} from 'Common/Components/MainContainer/styled';\nimport './styles.scss';\nimport FilesList from 'Common/Components/FilesList';\nimport UploadSummary from 'Common/Components/UploadSummary';\nimport ModalWrapper from '../ModalWrapper';\nimport { Wrapper, Title, BackBtn, CLink, AddMore } from './styled';\nimport { FormattedMessage } from 'react-intl';\n\nclass ImportFileModal extends React.Component {\n constructor (props) {\n super(props);\n this.state = {\n files: [],\n step: 'DRAG',\n dragCount: 0\n };\n this.onHandleClose = this.onHandleClose.bind(this);\n this.handleDrop = this.handleDrop.bind(this);\n this.removeFileFromList = this.removeFileFromList.bind(this);\n this.uploadFileManage = this.uploadFileManage.bind(this);\n }\n\n componentDidMount () {\n this.props.setUploadState('');\n }\n\n componentDidUpdate () {\n if (this.state.step === 'UPLOAD' && this.props.uploadState === 'PROCESSED' && this.props.fileIndex >= 0) {\n this.props.uploadFile(this.state.files[this.props.fileIndex]);\n }\n\n if (this.state.step === 'UPLOAD' && this.props.uploadState === 'FINISHED' && this.props.fileIndex === -1 && (this.props.currentUploadError === '' || this.state.files.length > 1)) {\n this.setState({ step: 'SUMMARY' });\n }\n }\n\n handleDragIn () {\n const { dragCount } = this.state;\n this.setState({ dragCount: dragCount + 1 });\n }\n\n handleDragOut () {\n const { dragCount } = this.state;\n this.setState({ dragCount: dragCount + 1 });\n }\n\n onHandleClose () {\n this.setState({ files: [] });\n this.setState({ step: 'DRAG' });\n this.props.resetFileUploadState();\n this.props.handleClose();\n }\n\n handleDrop (files) {\n const fileList = this.state.files;\n for (let i = 0; i < files.length; i += 1) {\n if (!files[i].name) return;\n if (fileList.findIndex((item) => (item.name === files[i].name && item.size === files[i].size)) === -1) {\n fileList.push(files[i]);\n }\n }\n this.setState({ files: [...fileList] });\n if (fileList.length > 0) {\n this.setState({ step: 'LIST' });\n }\n\n this.props.setFileIndex(fileList.length - 1);\n this.props.setUploadState('');\n }\n\n removeFileFromList (file) {\n const fileList = [];\n const files = this.state.files;\n for (let i = 0; i < files.length; i += 1) {\n if (files[i].name !== file.name || files[i].size !== file.size) {\n fileList.push(files[i]);\n }\n }\n this.setState({ files: fileList });\n if (fileList.length === 0) {\n this.setState({ step: 'DRAG' });\n }\n }\n\n uploadFileManage () {\n this.props.setFilesCount(this.state.files);\n if (this.props.fileIndex >= 0) {\n this.props.uploadFile(this.state.files[this.props.fileIndex]);\n }\n }\n\n render () {\n const {\n show, errorFilesList, title, transactional\n } = this.props;\n const { files, step } = this.state;\n\n let child = null;\n switch (step) {\n case 'DRAG':\n child = ;\n break;\n case 'LIST':\n child = ;\n break;\n case 'UPLOAD':\n child = (\n (f.name)).join(', ') }\n />\n );\n break;\n case 'SUMMARY':\n child = ;\n break;\n default:\n child = ;\n break;\n }\n\n if (!show) return null;\n return (\n \n \n { title } } />\n { child }\n { step === 'DRAG' && } /> } /> }\n { step === 'LIST' &&\n (\n { this.setState({ step: 'DRAG' }); } }>\n \n Add more files\n \n ) }\n \n { step === 'UPLOAD' && { this.setState({ step: 'LIST' }); } }>Go Back }\n { step === 'SUMMARY' ? : }\n { this.onHandleClose(); } }>Cancel\n \n \n \n );\n }\n}\n\nImportFileModal.propTypes = {\n show: PropTypes.bool.isRequired,\n handleClose: PropTypes.func.isRequired,\n errorFilesList: PropTypes.array.isRequired\n};\n\nexport default withRouter(ImportFileModal);\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport ImportFileModal from 'Common/Components/ImportFileModal';\nimport {\n uploadFile, setFileIndex, setUploadState, setFilesCount, resetFileUploadState\n} from 'Screens/KnowledgeBase/actions/Actions';\n\nclass ImportFileModalContainer extends React.Component {\n constructor (props) {\n super(props);\n this.state = {};\n }\n\n render () {\n const {\n title, subtitle, show, handleClose, errorFilesList, onUpload, onSetFileIndex,\n onSetUploadState, onSetFilesCount, files, uploadState, fileIndex,\n currentUploadState, onResetFileUploadState, currentUploadPercent, currentUploadError\n } = this.props;\n\n return (\n \n );\n }\n}\n\nImportFileModalContainer.defaultProps = {\n subtitle: '',\n onSetFileIndex: () => {},\n onSetUploadState: () => {},\n onSetFilesCount: () => {},\n onResetFileUploadState: () => {},\n uploadState: '',\n currentUploadState: '',\n currentUploadPercent: 0,\n currentUploadError: '',\n onUpload: () => {}\n};\n\nImportFileModalContainer.propTypes = {\n show: PropTypes.bool.isRequired,\n handleClose: PropTypes.func.isRequired,\n subtitle: PropTypes.string,\n onSetFileIndex: PropTypes.func,\n onSetUploadState: PropTypes.func,\n onSetFilesCount: PropTypes.func,\n onResetFileUploadState: PropTypes.func,\n files: PropTypes.arrayOf(PropTypes.object).isRequired,\n uploadState: PropTypes.string,\n fileIndex: PropTypes.number.isRequired,\n currentUploadState: PropTypes.string,\n currentUploadPercent: PropTypes.number,\n currentUploadError: PropTypes.string,\n onUpload: PropTypes.func,\n errorFilesList: PropTypes.array.isRequired,\n title: PropTypes.object.isRequired\n};\n\nconst mapDispatchToProps = (dispatch) => ({\n onUpload: (files) => {\n dispatch(uploadFile(files));\n },\n onSetFileIndex: (index) => {\n dispatch(setFileIndex(index));\n },\n onSetUploadState: (state) => {\n dispatch(setUploadState(state));\n },\n onSetFilesCount: (files) => {\n dispatch(setFilesCount(files));\n },\n onResetFileUploadState: () => {\n dispatch(resetFileUploadState());\n }\n});\n\nconst mapStateToProps = (state) => ({\n files: state.knowledgeBase.filesToUpload,\n uploadState: state.knowledgeBase.uploadState,\n fileIndex: state.knowledgeBase.fileIndex,\n errorFilesList: state.knowledgeBase.errorFilesList,\n currentUploadState: state.knowledgeBase.currentUploadState,\n currentUploadPercent: state.knowledgeBase.currentUploadPercent,\n currentUploadError: state.knowledgeBase.currentUploadError\n});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ImportFileModalContainer));\n","/* eslint-disable no-empty */\nimport React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport { RiFileEditLine as EditLine, RiFileDownloadLine as DownloadLine } from 'react-icons/ri';\nimport ManualCreationModal from 'Screens/KnowledgeBase/components/ManualCreationModal';\nimport useClickOutside from 'Hooks/useClickOutside';\nimport { useDispatch } from 'react-redux';\nimport { setVisibilityCreateModal } from 'Screens/KnowledgeBase/actions/Actions';\nimport {\n DropdownText, DropdownItem, Dropdown, Wrapper, PlusIcon, DropdownWrapper\n} from './styled';\nimport ImportFileModalContainer from '../ImportFileModalContainer';\n\nconst CreateActions = ({ showModalCreate }) => {\n const [showImportFromFile, setShowImportFromFile] = useState(false);\n const [showDropdown, setShowDropdown] = useState(false);\n const dropdownRef = useRef();\n useClickOutside(dropdownRef, () => setShowDropdown(false));\n\n const handleShowImportFromFile = () => {\n setShowImportFromFile(true);\n handleDropdown();\n };\n const handleCloseImportFromFile = () => setShowImportFromFile(false);\n\n const dispatch = useDispatch();\n const handleShow = () => {\n dispatch(setVisibilityCreateModal(true));\n handleDropdown();\n };\n const handleClose = () => dispatch(setVisibilityCreateModal(false));\n\n const handleDropdown = () => setShowDropdown(!showDropdown);\n\n return (\n \n \n \n \n \n {showDropdown && (\n \n \n \n Manual Creation\n \n \n \n Import from File\n \n \n )}\n \n }\n subtitle=\"this is a subtitle\"\n show={ showImportFromFile }\n handleClose={ handleCloseImportFromFile }\n />\n \n );\n};\n\nCreateActions.propTypes = {\n showModalCreate: PropTypes.bool.isRequired\n};\n\nexport default CreateActions;\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport IconButton from 'Common/Components/IconButton';\nimport { Edit } from 'Screens/Manage/components/CustomActionBar/styled';\nimport { showVulnTemplateModalEdit } from 'Screens/KnowledgeBase/actions/Actions';\n\nconst EditButton = () => {\n const dispatch = useDispatch();\n const handleClick = () => dispatch(showVulnTemplateModalEdit());\n\n return (\n } title=\"Edit\" onClick={ handleClick } />\n );\n};\n\nexport default EditButton;\n","\nimport React from 'react';\nimport { useDispatch } from 'react-redux';\nimport IconButton from 'Common/Components/IconButton';\nimport { Trash } from 'Screens/Manage/components/CustomActionBar/styled';\nimport { showVulnTemplateModalDelete } from 'Screens/KnowledgeBase/actions/Actions';\n\nconst DeleteButton = () => {\n const dispatch = useDispatch();\n const handleClick = () => dispatch(showVulnTemplateModalDelete());\n\n return (\n } title=\"Delete\" onClick={ handleClick } />\n );\n};\n\nexport default DeleteButton;\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n deleteVulnTemplateSelected, hideVulnTemplateModalDelete\n} from 'Screens/KnowledgeBase/actions/Actions';\nimport ModalConfirmation from 'Common/Components/ModalConfirmation';\nimport { selectKnowledgeBaseProps } from 'store/KnowledgeBase/selectors';\n\nconst DeleteConfirmationModal = () => {\n const dispatch = useDispatch();\n const knowledgeBaseProps = useSelector(selectKnowledgeBaseProps);\n const { showDeleteConfirmation, templatesSelected } = knowledgeBaseProps;\n\n return (\n dispatch(deleteVulnTemplateSelected()) }\n handleClose={ () => dispatch(hideVulnTemplateModalDelete()) }\n entity=\"template\"\n count={ templatesSelected.length }\n />\n );\n};\n\nexport default DeleteConfirmationModal;\n","import styled from 'styled-components';\nimport { ReactComponent as RefreshImage } from 'Images/reload.svg';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const RefreshIcon = styled(RefreshImage)`\n`;\nRefreshIcon.displayName = 'RefreshIcon';\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport IconButton from 'Common/Components/IconButton';\nimport { RefreshIcon } from './styled';\nimport { getData } from 'Screens/KnowledgeBase/actions/Actions';\n\nconst RefreshButton = () => {\n const dispatch = useDispatch();\n\n const handleClick = () => (dispatch(getData()));\n\n return (\n } title=\"Refresh\" onClick={ handleClick } />\n );\n};\n\nexport default RefreshButton;\n","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { Wrapper, LeftGroup, RightGroup, Separator, Group } from 'Common/Components/CustomActionBar/styled';\nimport { setPage } from 'Screens/KnowledgeBase/actions/Actions';\nimport { selectKnowledgeBaseProps } from 'store/KnowledgeBase/selectors';\nimport CreateActions from '../CreateActions';\nimport EditButton from './components/EditButton';\nimport DeleteButton from './components/DeleteButton';\nimport Pagination from 'Common/Components/Pagination';\nimport DeleteConfirmationModal from './components/DeleteConfirmationModal';\nimport RefreshButton from 'Screens/KnowledgeBase/components/RefreshButton';\n\nconst ActionBar = () => {\n const dispatch = useDispatch();\n const knowledgeBaseProps = useSelector(selectKnowledgeBaseProps);\n const {\n templatesSelected,\n readonly,\n showModalCreate,\n totalVulnTemplate,\n rowsPerPage,\n page\n } = knowledgeBaseProps;\n\n const showKbActionButtons = (!readonly && templatesSelected.length > 0);\n const hasTemplates = totalVulnTemplate > 0;\n const onPrev = () => dispatch(setPage(page - 1));\n const onNext = () => dispatch(setPage(page + 1));\n\n return (\n \n \n \n {!readonly && }\n { showKbActionButtons &&\n <>\n \n \n \n \n \n \n \n }\n \n { hasTemplates &&\n \n \n \n \n \n \n }\n \n );\n};\n\nexport default ActionBar;\n","import styled from 'styled-components';\n\nexport const TableWrapper = styled.div`\n margin-top: 13px;\n margin-right: -8px;\n margin-left: -8px;\n width: 100%;\n height: ${(props) => props.height};\n`;\nTableWrapper.displayName = 'TableWrapper';\n\nexport const Wrapper = styled.div`\n height: 100%;\n`;\nWrapper.displayName = 'Wrapper';\n","import uniq from 'lodash/uniq';\nimport { GROUP_BY } from 'store/Filters/constants';\n\nconst processCtrl = (rowInfo, selected, currentSelectedRows) => {\n const { index } = rowInfo;\n let newRowsSelected = currentSelectedRows;\n if (selected) newRowsSelected.push(rowInfo.original);\n else newRowsSelected = newRowsSelected.filter((v) => v._id !== rowInfo.original._id);\n\n return { newRowsSelected, lastSelected: index, rowSelected: rowInfo.original };\n};\n\nconst isGrouped = (group_by) => group_by.length > 0 && group_by !== GROUP_BY.none.key.value;\n\nconst validateShiftForProcessing = (rowList, lastRowSelected, group_by, groupContainingCurrentSelection) => {\n const lastRowSelectedGroup = rowList.filter((g) => g.groupData && g.groupData.filter((element) => element._id === lastRowSelected._id).length > 0);\n const rowsAreGrouped = isGrouped(group_by);\n const selectingRowInSameGroup = rowsAreGrouped && lastRowSelectedGroup[0].groupData[0]._id === groupContainingCurrentSelection[0]._id;\n return !rowsAreGrouped || selectingRowInSameGroup;\n};\n\nconst processShift = (rowInfo, rowList, currentSelectedRows, groupContainingCurrentSelection, lastIndexForRange, lastSelected) => {\n const { index } = rowInfo;\n const arrayToWork = groupContainingCurrentSelection.length > 0 ? groupContainingCurrentSelection : rowList;\n let newRowsSelected = currentSelectedRows;\n let indexForRange = -1;\n\n if (lastIndexForRange > 0) {\n if (lastSelected < lastIndexForRange) {\n newRowsSelected = newRowsSelected.filter((x) => !arrayToWork.slice(lastSelected + 1, lastIndexForRange + 1).map((y) => y._id).includes(x._id));\n } else {\n newRowsSelected = newRowsSelected.filter((x) => !arrayToWork.slice(lastIndexForRange, lastSelected).map((y) => y._id).includes(x._id));\n }\n }\n\n if (lastSelected < index) {\n newRowsSelected = newRowsSelected.concat(arrayToWork.slice(lastSelected + 1, index + 1));\n indexForRange = index;\n } else {\n newRowsSelected = newRowsSelected.concat(arrayToWork.slice(index, lastSelected));\n indexForRange = index;\n }\n // newRowsSelected: tiene valores repetidos, hack usando uniq.\n return {\n newRowsSelected: uniq(newRowsSelected, 'id'), indexForRange, lastSelected, rowSelected: rowInfo.original\n };\n};\n\nconst processSingle = (selected, rowInfo) => {\n const newRowsSelected = [];\n if (selected) newRowsSelected.push(rowInfo.original);\n return { newRowsSelected, rowSelected: rowInfo.original, lastSelected: rowInfo.index };\n};\n\nconst handleLeftClick = (event, rowInfo, group_by, selected, rowList, currentSelectedRows, lastRowSelected, lastIndexForRange, lastSelected) => {\n let groupContainingCurrentSelection = [];\n if (isGrouped(group_by)) {\n groupContainingCurrentSelection = rowList.filter((g) => g.groupData && g.groupData.filter((element) => element._id === rowInfo.original._id).length > 0);\n groupContainingCurrentSelection = groupContainingCurrentSelection[0].groupData;\n }\n\n if (event.ctrlKey || event.metaKey) {\n return processCtrl(rowInfo, !selected, currentSelectedRows, groupContainingCurrentSelection);\n }\n\n if (event.shiftKey) {\n // Avoid shift click between diferent groups\n if (validateShiftForProcessing(rowList, lastRowSelected, group_by, groupContainingCurrentSelection)) return processShift(rowInfo, rowList, currentSelectedRows, groupContainingCurrentSelection, lastIndexForRange, lastSelected);\n return null;\n }\n\n return processSingle(!selected, rowInfo);\n};\n\nexport default handleLeftClick;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Col = styled.div`\n font-size: 12.5px;\n font-weight: 300;\n color: ${colors.dark5};\n pointer-events: none;\n`;\n\nexport const ColKbName = styled(Col)`\n font-size: 14.5px;\n font-weight: 400;\n color: ${colors.dark5} !important;\n z-index: 10;\n`;\nColKbName.displayName = 'ColKbName';\n\nexport const ColKbDescription = styled(Col)`\n`;\nColKbDescription.displayName = 'ColKbDescription';\n\nexport const ColKbReferences = styled(Col)`\n`;\nColKbReferences.displayName = 'ColKbReferences';\n\nexport const ColKbResolution = styled(Col)`\n`;\nColKbResolution.displayName = 'ColKbResolution';\n\nexport const ColKbSeverity = styled(Col)`\n`;\nColKbSeverity.displayName = 'ColKbSeverity';\n\nexport const ColKbPolicyViolations = styled(Col)`\n`;\nColKbPolicyViolations.displayName = 'ColKbPolicyViolations';\n\nexport const ColKbCreator = styled(Col)`\n`;\nColKbCreator.displayName = 'ColKbCreator';\n\nexport const ColKbCreatedDate = styled(Col)`\n`;\nColKbCreatedDate.displayName = 'ColKbCreatedDate';\n","/* eslint-disable no-nested-ternary */\n/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\nimport TimeAgo from 'javascript-time-ago';\nimport en from 'javascript-time-ago/locale/en';\nimport { FormattedMessage } from 'react-intl';\nimport DateFormatter from 'Common/Components/DateFormatter';\nimport Skeleton from 'Common/Components/Skeleton';\nimport {\n ColKbName, ColKbDescription, ColKbReferences,\n ColKbResolution, ColKbPolicyViolations, ColKbCreator,\n ColKbCreatedDate, Col\n} from './styled';\n\nTimeAgo.addLocale(en);\n\nexport default function getColumns (isFetching) {\n // Severity column is copy/paste from manage. It should be refactored\n const columns = [{\n Header: () => (\n
\n ),\n accessor: 'exploitation',\n maxWidth: 45,\n minWidth: 45,\n id: 'severity',\n resizable: false,\n Cell: (rowInfo) => (\n isFetching\n ? \n : (\n
\n
\n
{rowInfo.original.doc.exploitation ? rowInfo.original.doc.exploitation.charAt(0).toUpperCase() : ''}
\n
\n \n )\n ),\n getProps: () => ({ 'column-type': 'exploitation' })\n }, {\n Header: () => ,\n id: 'name',\n resizable: false,\n maxWidth: 400,\n minWidth: 200,\n Cell: (rowInfo) => (isFetching ? : {rowInfo.original.doc.name}),\n getProps: () => ({ 'column-type': 'name' })\n }, {\n Header: () => ,\n id: 'description',\n resizable: false,\n Cell: (rowInfo) => (\n isFetching\n ? \n : (\n \n { rowInfo.original.doc.description }\n \n )\n ),\n getProps: () => ({ 'column-type': 'description' })\n }, {\n Header: () => ,\n id: 'references',\n resizable: false,\n sortable: false,\n Cell: (rowInfo) => (\n isFetching\n ? \n : (\n \n { rowInfo.original.doc.references }\n \n )\n ),\n getProps: () => ({ 'column-type': 'references' })\n }, {\n Header: () => ,\n id: 'resolution',\n resizable: false,\n Cell: (rowInfo) => (\n isFetching\n ? \n : (\n \n { rowInfo.original.doc.resolution }\n \n )\n ),\n getProps: () => ({ 'column-type': 'resolution' })\n }, {\n Header: () => ,\n id: 'policyviolations',\n resizable: false,\n sortable: false,\n Cell: (rowInfo) => (\n isFetching\n ? \n : (\n \n { rowInfo.original.doc.policyviolations.map((policy, index) => {\n const { policyviolations } = rowInfo.original.doc;\n if (policyviolations.length > 1 && index + 1 < policyviolations.length) return `${policy}, `;\n return `${policy}`;\n }) }\n \n )\n ),\n getProps: () => ({ 'column-type': 'creator' })\n }, {\n Header: () => ,\n id: 'creator_id',\n resizable: false,\n minWidth: 100,\n maxWidth: 100,\n Cell: (rowInfo) => (\n isFetching\n ? \n : (\n \n { rowInfo.original.doc.creator }\n \n )\n ),\n getProps: () => ({ 'column-type': 'creator' })\n }, {\n Header: () => ,\n id: 'create_date',\n resizable: false,\n minWidth: 120,\n maxWidth: 120,\n Cell: (rowInfo) => (\n isFetching\n ? \n : (\n \n { rowInfo.original.doc.create_at ? : '-'}\n \n )\n ),\n getProps: () => ({ 'column-type': 'created_date' })\n }];\n return columns;\n}\n","/* eslint-disable react/destructuring-assignment */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport CustomReactTable from 'Common/Components/CustomReactTable/styled';\nimport handleLeftClick from 'Common/Components/CustomReactTable/leftClickHelper';\nimport {\n ContextMenuTrigger\n} from 'react-contextmenu';\nimport { connect } from 'react-redux';\nimport {\n vulnTemplateSelected, sortData, showVulnTemplateModalEdit\n} from 'Screens/KnowledgeBase/actions/Actions';\nimport { selectKnowledgeBaseTableProps } from 'store/KnowledgeBase/selectors';\nimport getColumns from './Columns';\nimport { FormattedMessage } from 'react-intl';\n\nclass Table extends Component {\n constructor (props) {\n super(props);\n this.table = React.createRef();\n this.tableBody = React.createRef();\n this.fetchData = this.fetchData.bind(this);\n this.getTrProps = this.getTrProps.bind(this);\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick (e, rowInfo) {\n const {\n data, templatesSelected, lastTemplateSelected, lastIndexForRange, lastSelected\n } = this.props;\n const selected = templatesSelected.filter((x) => x.id === rowInfo.original.id).length > 0;\n\n const leftClickResponse = handleLeftClick(e, rowInfo, '', selected, data, templatesSelected, lastTemplateSelected, lastIndexForRange, lastSelected);\n if (leftClickResponse) this.props.vulnTemplateSelected(leftClickResponse);\n }\n\n getTrProps (state, rowInfo) {\n if (rowInfo && rowInfo.row && !rowInfo.original.count) {\n const selected = this.props.templatesSelected.filter((x) => x.id === rowInfo.original.id).length > 0;\n\n return {\n onClick: (e) => {\n this.handleClick(e, rowInfo);\n e.stopPropagation();\n return true;\n },\n onDoubleClick: (e) => {\n e.stopPropagation();\n if (rowInfo.original._id || rowInfo.original.id) {\n this.props.vulnTemplateSelected({ newRowsSelected: [rowInfo.original] });\n this.props.showVulnTemplateModalEdit();\n }\n },\n onContextMenu: () => {\n if (!selected) this.props.vulnTemplateSelected({ newRowsSelected: [rowInfo.original] });\n return false;\n },\n style: {\n background: selected ? '#e2f0fb' : 'transparent'\n }\n };\n }\n\n return {};\n }\n\n fetchData (state) {\n const {\n isFetching\n } = this.props;\n\n if (!isFetching) {\n this.props.sortData(state.sorted);\n\n if (this.tableBody.scrollTo) {\n this.tableBody.scrollTo(0, 0);\n }\n }\n }\n\n render () {\n const {\n data,\n isFetching\n } = this.props;\n\n const mockData = [...Array(13).keys()];\n\n return (\n
{ this.table = element; } }>\n \n }\n />\n \n
\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n ...selectKnowledgeBaseTableProps(state)\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n vulnTemplateSelected: (selectionInfo) => {\n dispatch(vulnTemplateSelected(selectionInfo));\n },\n showVulnTemplateModalEdit: () => {\n dispatch(showVulnTemplateModalEdit());\n },\n sortData: (sorting) => {\n dispatch(sortData(sorting));\n }\n});\n\nTable.propTypes = {\n data: PropTypes.arrayOf(PropTypes.object).isRequired,\n isFetching: PropTypes.bool.isRequired,\n lastIndexForRange: PropTypes.number.isRequired,\n lastSelected: PropTypes.number.isRequired,\n lastTemplateSelected: PropTypes.arrayOf(PropTypes.object).isRequired,\n showVulnTemplateModalEdit: PropTypes.func.isRequired,\n sortData: PropTypes.func.isRequired,\n templatesSelected: PropTypes.arrayOf(PropTypes.object).isRequired,\n vulnTemplateSelected: PropTypes.func.isRequired\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Table);\n","/* eslint-disable react/destructuring-assignment */\nimport React, { Component } from 'react';\nimport { withBreakpoints } from 'react-breakpoints';\nimport { connect } from 'react-redux';\nimport ActionBar from './ActionBar';\nimport { selectKnowledgeBaseProps } from 'store/KnowledgeBase/selectors';\nimport { resetFilters, setSelectedEntity } from 'store/Filters/actions';\nimport { getSelectedEntity } from 'store/Filters/selectors';\nimport get from 'lodash/get';\nimport { TableWrapper, Wrapper } from './styled';\nimport Table from './Table';\n\nclass KnowledgeBase extends Component {\n constructor (props) {\n super(props);\n this.state = {};\n this.actionBar = React.createRef();\n this.getTableContainerHeight = this.getTableContainerHeight.bind(this);\n }\n\n componentDidMount () {\n const { selectedEntity, clearSelectedEntity } = this.props;\n if (selectedEntity !== 'knowledgeBase') clearSelectedEntity();\n }\n\n componentWillUnmount () {\n const { resetFilters } = this.props;\n resetFilters();\n }\n\n getTableContainerHeight () {\n const actionBarHeight = get(this.actionBar, 'current.clientHeight', 34);\n const tableContainerTopMargin = 30;\n return `calc(100% - ${actionBarHeight + tableContainerTopMargin}px)`;\n }\n\n render () {\n return (\n \n
\n \n
\n \n
\n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n ...selectKnowledgeBaseProps(state),\n selectedEntity: getSelectedEntity(state)\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n resetFilters: () => {\n dispatch(resetFilters('knowledgeBase'));\n },\n clearSelectedEntity: () => {\n dispatch(setSelectedEntity(''));\n }\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withBreakpoints(KnowledgeBase));\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n`;\n\nWrapper.displayName = 'Wrapper';\n\nexport const TableContainer = styled.div`\n position: relative;\n display: flex;\n flex-direction: row;\n overflow: hidden;\n flex: 1 1 0;\n width: 100%;\n`;\nTableContainer.displayName = 'TableContainer';\n","import styled from 'styled-components';\n\nexport const Title = styled.div`\n font-weight: 400;\n font-size: 12.5px;\n line-height: 2.08;\n user-select: none;\n text-transform: capitalize;\n color: #AFB1BC;\n`;\n\nexport const LabelWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const OptionsCount = styled.div`\n background-color: #edf2f7;\n border-radius: 2em;\n color: #1c2243;\n font-size: 9.5px;\n font-weight: 900;\n display: inline-block;\n line-height: 1;\n min-width: 1;\n padding: 3px 8px;\n text-align: center;\n box-shadow: inset 0 0 12px 0 rgba(0, 0, 0, 0.13);\n`;\n\nexport const Label = styled.div`\n`;\n\nconst backgroundColorFunc = (isFocused, required) => {\n if (isFocused) return '#edf2f7';\n else if (required) return 'rgba(255,86,48,0.1)';\n else return 'white';\n};\n\nexport const dropdownStyle = {\n control: (provided, { isDisabled }) => ({\n display: 'flex',\n minHeight: '35px',\n borderRadius: '1px',\n boxShadow: '2px 2px 5px 0 rgba(0, 0, 0, 0.06), inset 0 -1px 0 0 #afafaf',\n backgroundColor: isDisabled ? '#edf2f7' : '#ffffff',\n border: 'solid 1px #fafbfc',\n borderBottomWidth: '0px',\n color: 'white',\n paddingLeft: '10px',\n fontWeight: '700',\n textOverflow: 'ellipsis'\n }),\n indicatorSeparator: () => ({\n display: 'none'\n }),\n placeholder: (provided, { isDisabled }) => ({\n ...provided,\n fontSize: '13px',\n color: '#1c2243',\n opacity: isDisabled ? 0.5 : 0.7,\n fontWeight: 300\n }),\n input: (provided) => ({\n ...provided,\n fontSize: '13px',\n color: '#1c2243',\n fontWeight: 300\n }),\n dropdownIndicator: (provided) => ({\n ...provided,\n color: '#505965',\n width: '30px'\n }),\n option: (provided, { isFocused, data }) => ({\n ...provided,\n backgroundColor: backgroundColorFunc(isFocused, data.required),\n fontSize: '14px',\n textAlign: 'left',\n color: '#1c2243',\n cursor: isFocused ? 'pointer' : 'default',\n paddingLeft: '22px',\n paddingRight: '22px',\n height: '36px',\n textTransform: 'capitalize',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden'\n }),\n valueContainer: () => ({\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n marginRight: 'auto'\n }),\n menu: () => ({\n position: 'absolute',\n marginTop: '6px',\n zIndex: 5000,\n width: '100%',\n border: 'none',\n borderRadius: '3px',\n backgroundColor: '#fff',\n boxShadow: '2px 2px 30px 0 #d5dee6',\n minWidth: '190px'\n }),\n menuList: () => ({\n maxHeight: '250px',\n overflowX: 'auto',\n borderRadius: '3px',\n paddingTop: '17px',\n paddingBottom: '13px'\n }),\n singleValue: (provided, state) => {\n const opacity = state.isDisabled ? 0.5 : 1;\n const transition = 'opacity 300ms';\n return {\n ...provided, opacity, transition, color: '#1c2243', width: 'fit-content', height: '19px', fontSize: '14px', fontWeight: 400, top: '8px', position: 'relative'\n };\n },\n multiValue: (provided, state) => ({\n ...provided,\n backgroundColor: state?.data?.required ? '#bec8d2' : '#edf2f7',\n color: '#63758d',\n fontSize: '11.5px',\n fontWeight: 500\n\n }),\n multiValueLabel: (provided, state) => (state.data.required\n ? {\n ...provided, fontWeight: 'bold', color: 'white', paddingRight: 6\n }\n : provided),\n multiValueRemove: (provided, state) => (state.data.required ? { ...provided, display: 'none' } : provided)\n};\n\nexport const inputDropdownStyle = {\n control: (provided, { isDisabled }) => ({\n display: 'flex',\n minHeight: '35px',\n boxShadow: '2px 2px 5px 0 rgba(0, 0, 0, 0.06), inset 0 -1px 0 0 #afafaf',\n backgroundColor: isDisabled ? '#edf2f7' : '#edf2f7',\n border: 'solid 1px #fafbfc',\n borderBottomWidth: '0px',\n color: 'white',\n paddingLeft: '10px',\n fontWeight: '700',\n textOverflow: 'ellipsis',\n borderLeft: '12px solid #53a9ff'\n }),\n indicatorSeparator: () => ({\n display: 'none'\n }),\n placeholder: (provided, { isDisabled }) => ({\n ...provided,\n fontSize: '13px',\n color: '#1c2243',\n opacity: isDisabled ? 0.5 : 0.7,\n fontWeight: 300\n }),\n input: (provided) => ({\n ...provided,\n fontSize: '13px',\n color: '#1c2243',\n fontWeight: 300\n }),\n dropdownIndicator: (provided) => ({\n ...provided,\n color: '#505965',\n width: '30px'\n }),\n option: (provided, { isFocused, data }) => ({\n ...provided,\n backgroundColor: backgroundColorFunc(isFocused, data.required),\n fontSize: '14px',\n textAlign: 'left',\n color: '#1c2243',\n cursor: isFocused ? 'pointer' : 'default',\n paddingLeft: '22px',\n paddingRight: '22px',\n height: '36px',\n textTransform: 'capitalize',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden'\n }),\n valueContainer: () => ({\n display: 'flex',\n overflow: 'hidden',\n alignItems: 'center',\n marginRight: 'auto'\n }),\n menu: () => ({\n position: 'absolute',\n marginTop: '6px',\n zIndex: 5000,\n width: '100%',\n border: 'none',\n borderRadius: '3px',\n backgroundColor: '#fff',\n boxShadow: '2px 2px 30px 0 #d5dee6',\n minWidth: '190px'\n }),\n menuList: () => ({\n maxHeight: '250px',\n overflowX: 'auto',\n borderRadius: '3px',\n paddingTop: '17px',\n paddingBottom: '13px'\n }),\n singleValue: (provided, state) => {\n const opacity = state.isDisabled ? 0.5 : 1;\n const transition = 'opacity 300ms';\n return {\n ...provided, opacity, transition, color: '#1c2243', width: 'fit-content', height: '19px', fontSize: '14px', fontWeight: 400, top: '8px', position: 'relative'\n };\n },\n multiValue: (provided, state) => ({\n ...provided,\n backgroundColor: state?.data?.required ? '#bec8d2' : '#edf2f7',\n color: '#63758d',\n fontSize: '11.5px',\n fontWeight: 500\n\n }),\n multiValueLabel: (provided, state) => (state.data.required\n ? {\n ...provided, fontWeight: 'bold', color: 'white', paddingRight: 6\n }\n : provided),\n multiValueRemove: (provided, state) => (state.data.required ? { ...provided, display: 'none' } : provided)\n};\n\nexport const Input = styled.input`\nheight: 35px;\nborder-radius: 1px;\nbox-shadow: 2px 2px 5px 0 rgba(0, 0, 0, 0.06), inset 0 -1px 0 0 #afafaf;\nbackground-color: #ffffff;\nborder: solid 1px #fafbfc;\npadding-left: 10px;\nfont-weight: 300;\nfont-size: 14px;\n`;\n","/* eslint-disable react/no-children-prop */\nimport React from 'react';\nimport { PropTypes } from 'prop-types';\nimport Select from 'react-select';\nimport {\n Title, dropdownStyle, LabelWrapper, OptionsCount, Label\n} from '../styled';\n// To see aviable props go to https://react-select.com/props\n// options prop must have a label (and value if is Multi) key to work properly\nconst Dropdown = ({\n className, required, title, isMulti = false, style = dropdownStyle, ...props\n}) => {\n const formatGroupLabel = (data) => (\n \n \n {data.options.length}\n \n );\n\n const parsedTitle = required ? `${title}*` : title;\n return (\n
\n {title && }\n <Select\n styles={ style }\n formatGroupLabel={ formatGroupLabel }\n closeMenuOnSelect={ !isMulti }\n isMulti={ isMulti }\n required={ required }\n { ...props }\n />\n </div>\n );\n};\n\nDropdown.propTypes = {\n className: PropTypes.string,\n required: PropTypes.bool,\n title: PropTypes.string,\n isMulti: PropTypes.bool\n};\n\nDropdown.defaultProps = {\n className: '',\n required: false,\n title: '',\n isMulti: false\n};\n\nexport default Dropdown;\n","import styled from 'styled-components';\nimport { slideIn } from 'Styles/effects';\nimport colors from 'Styles/colors';\nimport { Cancel } from 'Common/Components/Button/styled';\nimport BlueButton from 'Common/Components/BlueButton';\n\nexport const ModalContent = styled.div`\n display: flex;\n flex-direction: column;\n padding: 34px;\n padding-top: 16px;\n box-shadow: 0 2px 50px 0 rgba(0, 0, 0, 0.24);\n border-radius: 2px;\n border-top: 10px solid ${colors.softBlue};\n background: #fff;\n width: 505px;\n user-select: none;\n max-height: 90%;\n ${slideIn}\n`;\nModalContent.displayName = 'ModalContent';\n\nexport const Title = styled.div`\n color: #1c2243;\n font-weight: 600;\n font-size: 21.5px;\n line-height: 1.49;\n margin-top: 18px;\n`;\nTitle.displayName = 'Title';\n\nexport const Subtitle = styled.h4`\n font-size: 13px;\n color: #63758d;\n text-align: left;\n margin: 14px 0;\n`;\nSubtitle.displayName = 'Subtitle';\n\nexport const ButtonsContainer = styled.div`\ndisplay: flex;\njustify-content: flex-end;\nmargin-top: 34px;\n`;\nButtonsContainer.displayName = 'ButtonsContainer';\n\nexport const ConfirmButton = styled(BlueButton)`\n`;\nConfirmButton.displayName = 'ConfirmButton';\n\nexport const CancelButton = styled(Cancel)`\n margin-right: 10px;\n`;\nCancelButton.displayName = 'CancelButton';\n\nexport const Fields = styled.div`\n margin-top:20px;\n max-height: 539px;\n overflow: auto;\n & > * {\n margin-bottom: 21px;\n }\n`;\nFields.displayName = 'Fields';\n","import styled, { css } from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as ArrowCollapsed } from 'Images/wf_arrow_collapsed.svg';\nimport { ReactComponent as ArrowExpanded } from 'Images/wf_arrow_expand.svg';\nimport { ReactComponent as _Resizer } from 'Images/resize_bottom_right.svg';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n background-color: #fff;\n position: relative;\n border: solid 1px #dbdbdb;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n font-size: 14.5px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.73;\n letter-spacing: normal;\n color: #63758d;\n user-select: none;\n text-align: left;\n`;\nTitle.displayName = 'Title';\n\nexport const Header = styled.div`\n display: flex;\n flex: 0 0 44px;\n padding: 9px 20px;\n align-items: center;\n cursor: pointer;\n & > * {\n margin-right: 10px;\n }\n`;\nHeader.displayName = 'Header';\n\nexport const Counter = styled.div`\n ${({ show }) => !show && 'display: none'};\n user-select: none;\n padding: 3px 12px 3px 12px;\n color: ${colors.darkBlueGrey};\n font-size: 10px;\n font-weight: 900;\n border-radius: 9px;\n box-shadow: inset 0 0 12px 0 rgba(0, 0, 0, 0.13);\n background-color: ${colors.iceBlue};\n margin-left: 14px;\n`;\nCounter.displayName = 'Counter';\n\nconst IconWrapper = css`\n position: absolute;\n top: 17px;\n right: 15px;\n`;\n\nexport const ExpandedIcon = styled(ArrowExpanded)`\n ${IconWrapper};\n margin: auto 0px auto auto;\n width: 12px;\n color: #63758d;\n path {\n fill: ${colors.greyBlue};\n }\n`;\nExpandedIcon.displayName = 'ExpandedIcon';\n\nexport const CollapsedIcon = styled(ArrowCollapsed)`\n ${IconWrapper};\n margin: auto 0px auto auto;\n height: 12px;\n path {\n fill: ${colors.greyBlue};\n }\n`;\nCollapsedIcon.displayName = 'CollapsedIcon';\n\nexport const ChildWrapper = styled.div.attrs(({ containerHeight }) => {\n let height = '';\n if (containerHeight) height = `${containerHeight}px`;\n return ({ style: { height } });\n})`\n ${({ $isExpanded }) => (!$isExpanded && 'display: none')};\n overflow: visible;\n`;\nChildWrapper.displayName = 'ChildWrapper';\n\nexport const Resizer = styled(_Resizer)`\n cursor: ns-resize;\n ${({ $isExpanded }) => (!$isExpanded && 'display: none')};\n margin: 18px 12px 15px auto;\n flex: 0 0 20px;\n width: 20px;\n`;\nResizer.displayName = 'Resizer';\n","/* eslint-disable react/no-children-prop */\nimport React, { useRef, useState } from 'react';\nimport { useResizeY } from 'Hooks/useResize/index';\nimport { PropTypes } from 'prop-types';\nimport Checkbox from 'Common/Components/Checkbox';\nimport {\n Wrapper, Title, ChildWrapper,\n Header, ExpandedIcon, CollapsedIcon\n} from './styled';\n\nconst ExpandableWrapper = ({\n children, title, canResize, onChange, selected, expanded\n}) => {\n const ref = useRef(null);\n const childRef = useRef(null);\n\n const [isExpanded, setIsExpanded] = useState(!!expanded);\n const handleClick = () => setIsExpanded(!isExpanded);\n\n const minHeight = (min) => Math.max(min - 97, 0);\n const defaultHeight = (def) => Math.max(def - 97, 0);\n const resizerHeight = useResizeY(childRef, ref, defaultHeight(350), minHeight(150));\n\n const height = canResize ? resizerHeight : 0;\n\n return (\n <Wrapper>\n <Header onClick={ handleClick }>\n <Checkbox onChange={ onChange } state={ selected } />\n <Title children={ title } />\n { isExpanded ? <ExpandedIcon /> : <CollapsedIcon /> }\n </Header>\n <ChildWrapper ref={ childRef } containerHeight={ height } $isExpanded={ isExpanded } children={ children } />\n </Wrapper>\n );\n};\n\nExpandableWrapper.propTypes = {\n title: PropTypes.string,\n children: PropTypes.node.isRequired,\n canResize: PropTypes.bool\n};\n\nExpandableWrapper.defaultProps = {\n title: '',\n canResize: false\n};\n\nexport default ExpandableWrapper;\n","import styled from 'styled-components';\nimport ReactMarkdown from 'react-markdown';\n\nexport const PreviewWrapper = styled.div`\n background-color: #F4F7FA;\n padding: 15px 18px 18px 21px;\n cursor: pointer;\n overflow: auto;\n margin: 20px;\n margin-top: 0;\n\n ul, ol {\n padding-left: 0;\n list-style-position: inside;\n }\n code {\n color: inherit;\n }\n pre {\n display: block;\n padding: 20px;\n line-height: 28px;\n background-color: #f5f5f5;\n }\n\n blockquote {\n position: relative;\n margin: 16px 0;\n padding: 5px 8px 5px 30px;\n background: none repeat scroll 0 0 rgba(102,128,153,.05);\n border: none;\n color: #333;\n border-left: 10px solid #d6dbdf;\n }\n\n a {\n color: #007bff;\n }\n`;\nPreviewWrapper.displayName = 'PreviewWrapper';\n\nexport const StyledReactMarkdown = styled(ReactMarkdown)`\n white-space: pre-wrap;\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.69;\n letter-spacing: normal;\n color: #63758d;\n h1 { font-size: 21px; font-weight: bold; }\n h2 { font-size: 17px; font-weight: bold; }\n h3 { font-size: 15px; font-weight: bold; }\n h4 { font-size: 14px; font-weight: bold; }\n h5 { font-size: 13px; font-weight: bold; }\n`;\nStyledReactMarkdown.displayName = 'StyledReactMarkdown';\n","/* eslint-disable react/no-children-prop */\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector } from 'react-redux';\nimport { selectCurrentlySelectedWorkspace } from 'store/Workspace/selectors';\nimport {\n PreviewWrapper,\n StyledReactMarkdown\n} from './styled';\n\nconst MarkdownEditor = ({\n value\n}) => {\n const [markdown, setMarkdown] = useState(value);\n\n useEffect(() => {\n setMarkdown(value);\n }, [value]);\n\n const selectedWorkspace = useSelector(selectCurrentlySelectedWorkspace);\n\n const parseMD = (textBlock) => {\n // eslint-disable-next-line no-useless-escape\n const regex = /\\(evidence\\:(\\w+)\\:(\\d+)\\:([a-zA-Z0-9\\s_\\\\.\\-\\(:]+\\.\\w+)\\)/g;\n\n return textBlock.replace(regex, (match) => {\n const filename = match.split(':')[3].slice(0, -1);\n const content = match.replace(regex, `![$1 With Id $2 Evidence ](/_api/v3/ws/${selectedWorkspace}/vulns/$2/attachment/${filename})`);\n return content;\n });\n };\n\n return (\n <PreviewWrapper>\n <StyledReactMarkdown>\n { parseMD(markdown) }\n </StyledReactMarkdown>\n </PreviewWrapper>\n );\n};\n\nMarkdownEditor.propTypes = {\n value: PropTypes.string\n};\n\nMarkdownEditor.defaultProps = {\n value: ''\n};\n\nexport default MarkdownEditor;\n","import React from 'react';\nimport ExpandableWrapper from '../ExpandableWrapper';\nimport MarkdownEditor from '../MarkdownEditor';\n\nconst ExternalId = ({\n value, title, id, onChange, selected, expanded\n}) => (\n <ExpandableWrapper id={ id } title={ title } onChange={ onChange } selected={ selected } expanded={ expanded }>\n <MarkdownEditor value={ value || '' } />\n </ExpandableWrapper>\n);\n\nexport default ExternalId;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n margin: 0px 20px 20px 20px;\n border: solid 1px #edf2f7;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const ListItem = styled.div`\n color: #1c2243;\n font-size: 13.5px;\n line-height: 2.52;\n padding: 0 20px;\n`;\nListItem.displayName = 'ListItem';\n","import React from 'react';\nimport { Wrapper, ListItem } from './styled';\nimport ExpandableWrapper from '../ExpandableWrapper';\n\nconst Policies = ({\n value, title, id, onChange, selected\n}) => (\n <ExpandableWrapper selected={ selected } id={ id } title={ title } onChange={ onChange }>\n <Wrapper>\n {value.map((name) => <ListItem key={ `${id}-${name}` } >{name}</ListItem>)}\n </Wrapper>\n </ExpandableWrapper>\n);\n\nexport default Policies;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n height: 80px;\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-content: center;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const ImpactItem = styled.div`\n width: 195px;\n height: 24px;\n border-radius: 3px;\n box-shadow: inset 0 -1px 0 0 #acbdd2; \n font-size: 12.5px;\n font-weight: 400;\n line-height: 2.08;\n text-align: center; \n margin-right: 2px;\n margin-bottom: 3px;\n background-color: ${(props) => (props.active ? '#686A76' : '#edf2f7')};\n color: ${(props) => (props.active ? 'white' : '#0b2128')};\n\n`;\nImpactItem.displayName = 'ImpactItem';\n","import React from 'react';\nimport { useIntl } from 'react-intl';\nimport ExpandableWrapper from '../ExpandableWrapper';\nimport { Wrapper, ImpactItem } from './styled';\n\nconst ImpactsTab = ({ value, onChange, selected }) => {\n const intl = useIntl();\n\n return (\n <ExpandableWrapper onChange={ onChange } selected={ selected } id=\"impact\" title={ intl.formatMessage({ id: 'manage.detail.tab.general.impact' }) }>\n <Wrapper>\n <ImpactItem active={ value.accountability }>Accountability</ImpactItem>\n <ImpactItem active={ value.availability }>Availability</ImpactItem>\n <ImpactItem active={ value.integrity }>Integrity</ImpactItem>\n <ImpactItem active={ value.confidentiality }>Confidentiality</ImpactItem>\n </Wrapper>\n </ExpandableWrapper>\n );\n};\n\nexport default ImpactsTab;\n","import React from 'react';\nimport { useIntl } from 'react-intl';\nimport ExpandableWrapper from '../ExpandableWrapper';\nimport MarkdownEditor from '../MarkdownEditor';\n\nconst Resolution = ({\n value, onChange, selected, expanded\n}) => {\n const intl = useIntl();\n\n return (\n <ExpandableWrapper selected={ selected } onChange={ onChange } id=\"resolution\" title={ intl.formatMessage({ id: 'manage.detail.tab.general.resolution' }) } expanded={ expanded }>\n <MarkdownEditor value={ value } />\n </ExpandableWrapper>\n );\n};\n\nexport default Resolution;\n","import React from 'react';\nimport { useIntl } from 'react-intl';\nimport ExpandableWrapper from '../ExpandableWrapper';\nimport MarkdownEditor from '../MarkdownEditor';\n\nconst Description = ({\n value, onChange, selected, expanded\n}) => {\n const intl = useIntl();\n\n return (\n <ExpandableWrapper onChange={ onChange } selected={ selected } id=\"description\" title={ intl.formatMessage({ id: 'manage.detail.tab.general.description' }) } expanded={ expanded }>\n <MarkdownEditor value={ value } />\n </ExpandableWrapper>\n );\n};\n\nexport default Description;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nconst sevColor = {\n critical: colors.warmPurple,\n high: colors.redPink,\n med: colors.tangerine,\n low: colors.apple,\n info: colors.grey2,\n unclassified: colors.grey4,\n disable: '#d6d6d6'\n};\n\nexport const Wrapper = styled.div`\n margin: 0px 20px 20px 20px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const SeverityName = styled.div`\n color: #ffffff;\n background: ${({ type }) => sevColor[type]};\n font-size: 13.5px;\n line-height: 2.52;\n padding: 0 20px;\n width: 127px;\n height: 34px;\n font-size: 13.5px;\n font-weight: 500;\n text-transform: capitalize;\n`;\nSeverityName.displayName = 'SeverityName';\n","import React from 'react';\nimport { Wrapper, SeverityName } from './styled';\nimport ExpandableWrapper from '../ExpandableWrapper';\n\nconst Severity = ({\n value, title, id, onChange, selected, expanded\n}) => (\n <ExpandableWrapper id={ id } title={ title } onChange={ onChange } selected={ selected } expanded={ expanded }>\n <Wrapper>\n <SeverityName type={ value }>{value}</SeverityName>\n </Wrapper>\n </ExpandableWrapper>\n);\n\nexport default Severity;\n","import React from 'react';\nimport { useIntl } from 'react-intl';\nimport ExpandableWrapper from '../ExpandableWrapper';\nimport MarkdownEditor from '../MarkdownEditor';\n\nconst Data = ({\n value, onChange, selected, expanded\n}) => {\n const intl = useIntl();\n\n return (\n <ExpandableWrapper onChange={ onChange } selected={ selected } id=\"data\" title={ intl.formatMessage({ id: 'manage.detail.tab.technicalDetails.data' }) } expanded={ expanded }>\n <MarkdownEditor value={ value } />\n </ExpandableWrapper>\n );\n};\n\nexport default Data;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n margin: 0px 20px 20px 20px;\n border: solid 1px #edf2f7;\n background-color: #F4F7FA;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const ListItem = styled.div`\n color: #1c2243;\n font-size: 13.5px;\n line-height: 2.52;\n padding: 0 20px;\n`;\nListItem.displayName = 'ListItem';\n","import { isArray, isEmpty, isNumber, toString } from 'lodash';\nimport React from 'react';\nimport ExpandableWrapper from '../ExpandableWrapper';\nimport MarkdownEditor from '../MarkdownEditor';\nimport { Wrapper, ListItem } from './styled';\n\nconst CustomAttributes = ({\n fields, onChange, expanded\n}) => {\n if (isEmpty(fields)) return null;\n\n const getContent = (name, value) => {\n if (!value) return null;\n else if (isNumber(value)) return <MarkdownEditor value={ toString(value) } />;\n else if (isArray(value)) {\n return (\n <Wrapper>\n { value.map((v) => <ListItem key={ `${name}-${v}` } >{v}</ListItem>) }\n </Wrapper>\n );\n }\n return <MarkdownEditor value={ value } />;\n };\n return <>\n {\n Object.keys(fields).map((name) => {\n const value = fields[name];\n if (!value) return null;\n return (\n <ExpandableWrapper key={ `field_${name}` } onChange={ () => onChange(name) } selected={ value } id={ name } title={ name } expanded={ expanded }>\n { getContent(name, value) }\n </ExpandableWrapper>\n );\n })\n }\n </>;\n};\n\nexport default CustomAttributes;\n","import React, { useEffect, useMemo, useState } from 'react';\nimport { useIntl } from 'react-intl';\nimport ModalWrapper from 'Common/Components/ModalWrapper';\nimport { Dropdown } from 'Common/Components/Inputs';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectTemplates } from 'store/ManageEditCreate/selectors';\nimport { selectVulnsSelected } from 'store/Manage/selectors';\nimport { getTemplates } from 'Screens/ManageEditCreate/actions/Actions';\nimport { applyTemplate } from 'Screens/KnowledgeBase/actions/Actions';\nimport { closeModal } from 'store/modals/actions';\nimport { MODAL_APPLY_TEMPLATE } from 'store/modals/modals';\nimport { inputDropdownStyle } from 'Common/Components/Inputs/styled';\nimport {\n ModalContent, Title, Subtitle, ButtonsContainer, ConfirmButton, CancelButton, Fields\n} from './styled';\nimport ExternalId from './components/ExternalId';\nimport Policies from './components/Policies';\nimport ImpactsTab from './components/ImpactsTab';\nimport Resolution from './components/Resolution';\nimport Description from './components/Description';\nimport Severity from './components/Severity';\nimport Data from './components/Data';\nimport { isEmpty } from 'lodash';\nimport CustomAttributes from './components/CustomAttributes';\n\nconst ApplyTemplateModal = () => {\n const dispatch = useDispatch();\n const intl = useIntl();\n const savedTemplates = useSelector(selectTemplates);\n const vulnsSelected = useSelector(selectVulnsSelected);\n const vulnsCount = vulnsSelected.length;\n const [selectedTemplate, setSelectedTemplate] = useState(null);\n const [selectedFields, setSelectedFields] = useState(null);\n const vulnsText = vulnsCount > 1 ? 'vulnerabilities' : 'vulnerability';\n\n useEffect(() => {\n dispatch(getTemplates());\n }, [dispatch]);\n\n const formatTemplates = (templatesList) => templatesList.map((template) => ({\n label: template.name,\n value: template\n }));\n\n const options = useMemo(() => formatTemplates(savedTemplates), [savedTemplates]);\n\n const onChange = (template) => {\n setSelectedTemplate(template);\n setSelectedFields({\n name: !!template.value.name,\n exploitation: !!template.value.exploitation,\n desc: !!template.value.desc,\n resolution: !!template.value.resolution,\n easeofresolution: !!template.value.easeofresolution,\n policyviolations: template.value.policyviolations.length !== 0,\n impact: template.value.impact,\n data: !!template.value.data,\n external_id: !!template.value.external_id,\n refs: !!template.value.refs.length !== 0,\n customfields: !isEmpty(template.value.customfields)\n });\n };\n\n const toggleFn = (field) => (e) => {\n e.stopPropagation();\n setSelectedFields({ ...selectedFields, [field]: !selectedFields[field] });\n };\n\n const removeCustomAttribute = (customAttribute) => {\n setSelectedTemplate({\n ...selectedTemplate,\n value: {\n ...selectedTemplate.value,\n customfields: {\n ...selectedTemplate.value.customfields,\n [customAttribute]: null\n }\n }\n });\n };\n\n const close = () => dispatch(closeModal(MODAL_APPLY_TEMPLATE));\n const accept = () => {\n dispatch(applyTemplate(selectedTemplate?.value, selectedFields));\n close();\n };\n return (\n <ModalWrapper>\n <ModalContent>\n <Title>Select template from Vulnerability DB\n Search for a template or select it from the list. \n \n Preview template and choose fields\n {selectedTemplate?.value\n ? (\n <>\n { intl.formatMessage({ id: 'manage.applyTemplate.subtitle' }, { vulnsCount, vulnsText }) }\n \n \n )\n : Select a template above to load the preview.}\n \n \n Cancel\n \n \n Apply\n \n \n \n \n );\n};\n\nexport default ApplyTemplateModal;\n\nconst TemplateField = ({ template, toggleFn, selectedFields, removeCustomAttribute }) => {\n const {\n name, exploitation, desc, resolution, easeofresolution, policyviolations, impact, data, external_id, refs, customfields\n } = selectedFields;\n return (\n \n { name ? : null }\n { exploitation ? : null }\n { desc ? : null }\n { resolution ? : null }\n { easeofresolution ? : null }\n { policyviolations ? : null }\n { !!impact.accountability || !!impact.availability || !!impact.confidentiality || !!impact.integrity\n ? \n : null }\n { data ? : null }\n { external_id ? : null }\n { refs ? : null }\n { customfields ? removeCustomAttribute(field) } /> : null }\n \n );\n};\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n height: 100%;\n padding: 13px 0px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const EmptyWrapper = styled.div`\n margin: 0px auto auto auto;\n`;\nEmptyWrapper.displayName = 'EmptyWrapper';\n\nexport const TableContainer = styled.div`\n height: 100%;\n flex: 1 1 0px;\n overflow: hidden;\n`;\nTableContainer.displayName = 'TableContainer';\n","import styled from 'styled-components';\n\nexport const contextMenuWidth = 200;\n\nexport const MenuWrapper = styled.div`\n display: flex;\n position: fixed;\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n z-index: 3;\n top: ${({ yPos }) => `${yPos}px`};\n left: ${({ xPos }) => `${xPos}px`};\n max-height: 515px;\n width: ${`${contextMenuWidth}px`};\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0,0,0,.15);\n border-radius: 0.25rem;\n color: #373a3c;\n font-size: 16px;\n text-align: left;\n box-shadow: 2px 2px 10px 0 #d5dee6;\n & > :first-child {\n border-radius: 0.25rem 0.25rem 0 0;\n }\n & > :last-child {\n border-radius: 0 0 0.25rem 0.25rem;\n }\n &::-webkit-scrollbar {\n border-radius: 0 0.25rem 0.25rem 0;\n background-color: #ffffff;\n opacity: 1;\n }\n`;\nMenuWrapper.displayName = 'MenuWrapper';\n\nexport const Separator = styled.div`\n display: ${({ show }) => (show ? 'block' : 'none')};\n flex: 1 1 auto;\n height: 2px;\n border: 1px solid #d8e0e7;\n margin-left: 16px;\n margin-right: 16px;\n margin-top: 3px;\n margin-bottom: 3px;\n`;\nSeparator.displayName = 'Separator';\n","import React, { useEffect, useRef, useCallback } from 'react';\nimport { PropTypes } from 'prop-types';\nimport { MenuWrapper, contextMenuWidth } from './styled';\n\nconst ContextMenu = ({\n children, show, xPos, yPos, displayFunction, disableOutsideClick\n}) => {\n const contextMenuRef = useRef(null);\n\n const outsideClickHandler = useCallback((e) => {\n // if target is outside of the context menu, hide it.\n const node = contextMenuRef ? contextMenuRef.current : null;\n const containsTarget = node && node.contains(e.target);\n\n if (!containsTarget && !disableOutsideClick) {\n displayFunction(false);\n }\n }, [disableOutsideClick, displayFunction]);\n\n const insideRightClickHandler = useCallback((e) => {\n e.preventDefault();\n e.stopPropagation();\n displayFunction(false);\n }, [displayFunction]);\n\n useEffect(() => {\n document.addEventListener('click', outsideClickHandler, { capture: true });\n if (contextMenuRef && contextMenuRef.current) contextMenuRef.current.addEventListener('contextmenu', insideRightClickHandler, { capture: true });\n return () => {\n document.removeEventListener('click', outsideClickHandler, { capture: true });\n if (contextMenuRef && contextMenuRef.current) contextMenuRef.current.removeEventListener('contextmenu', insideRightClickHandler, { capture: true });\n };\n }, [contextMenuRef, insideRightClickHandler, outsideClickHandler]);\n\n useEffect(() => {\n const totalWidth = document.body.clientWidth;\n const totalHeight = document.body.clientHeight;\n const contextMenuHeight = contextMenuRef.current ? contextMenuRef.current.clientHeight : 0;\n let newXPos = xPos;\n let newYPos = yPos;\n if (contextMenuRef.current) {\n if (xPos + contextMenuWidth > totalWidth) {\n newXPos = xPos - contextMenuWidth;\n }\n if (yPos + contextMenuHeight > totalHeight) {\n newYPos = yPos - contextMenuHeight;\n }\n }\n if (newXPos !== xPos || newYPos !== yPos) displayFunction(show, newXPos, newYPos);\n }, [displayFunction, show, xPos, yPos]);\n\n const setRef = useCallback((el) => {\n contextMenuRef.current = el;\n }, []);\n\n return (\n \n {children}\n \n );\n};\n\nContextMenu.propTypes = {\n disableOutsideClick: PropTypes.bool,\n show: PropTypes.bool.isRequired,\n xPos: PropTypes.number.isRequired,\n yPos: PropTypes.number.isRequired,\n displayFunction: PropTypes.func.isRequired,\n children: PropTypes.node.isRequired\n};\n\nContextMenu.defaultProps = {\n disableOutsideClick: false\n};\n\nexport default ContextMenu;\n","import styled from 'styled-components';\nimport { ReactComponent as ArrowSVG } from 'Images/arrow-right.svg';\n\nexport const menuItemHeight = 36;\n\nexport const StyledMenuItem = styled.div`\n display: flex;\n flex-direction: row;\n user-select: none;\n align-items: center;\n background: 0 0;\n border: 0;\n cursor: pointer;\n font-weight: ${({ isSelected }) => (isSelected ? 500 : 300)};\n line-height: 1.5;\n text-align: inherit;\n white-space: nowrap;\n height: ${`${menuItemHeight}px`};\n padding: 7px 15px;\n outline: none;\n font-size: 14px;\n color: ${({ color }) => color || '#1c2243'};\n &:hover {\n background-color: #f1f4f7\n }\n`;\nStyledMenuItem.displayName = 'StyledMenuItem';\n\nexport const ArrowIcon = styled(ArrowSVG)`\n margin: auto 0px auto auto;\n`;\nArrowIcon.displayName = 'ArrowIcon';\n","import React from 'react';\nimport { PropTypes } from 'prop-types';\nimport { StyledMenuItem, ArrowIcon } from './styled';\n\nconst MenuItem = ({\n isSelected, onClick, title, icon, hasSubMenu, color, show\n}) => {\n if (!show) return null;\n return (\n \n {icon}\n {title}\n {hasSubMenu && }\n \n );\n};\nMenuItem.propTypes = {\n show: PropTypes.bool,\n icon: PropTypes.element,\n onClick: PropTypes.func,\n title: PropTypes.string,\n color: PropTypes.string,\n hasSubMenu: PropTypes.bool,\n isSelected: PropTypes.bool\n};\n\nMenuItem.defaultProps = {\n isSelected: false,\n onClick: () => {},\n title: '',\n color: '',\n hasSubMenu: false,\n show: true,\n icon: null\n};\n\nexport default MenuItem;\n","import styled, { keyframes, css } from 'styled-components';\nimport { menuItemHeight } from 'Common/Components/ContextMenu/components/MenuItem/styled';\nimport { MenuWrapper } from 'Common/Components/ContextMenu/styled';\n\nexport const subMenuWidth = 200;\n\nconst fadeInKeyframes = (from = 0, to = 1) => keyframes`\n from { opacity: ${from};}\n to { opacity: ${to};}\n`;\n\nconst fadeIn = (from, to) => css`\n animation: ${fadeInKeyframes(from, to)} 0.5s forwards ease;\n`;\n\nexport const SubMenuWrapper = styled(MenuWrapper)`\n display: flex;\n left: auto;\n top: auto;\n margin-left: ${({ xPos }) => `${xPos}px`};\n margin-top: ${({ yPos }) => `${yPos}px`};\n width: ${`${subMenuWidth}px`};\n ${fadeIn(0, 1)};\n`;\nSubMenuWrapper.displayName = 'SubMenuWrapper';\n\nexport const RelativeWrapper = styled.div`\n position: relative;\n height: ${`${menuItemHeight}px`};\n width: ${`${subMenuWidth}px`};\n`;\nRelativeWrapper.displayName = 'RelativeWrapper';\n\nexport const AbsoluteWrapper = styled.div`\n position: absolute;\n height: ${`${menuItemHeight}px`};\n width: ${`${subMenuWidth}px`};\n`;\nAbsoluteWrapper.displayName = 'AbsoluteWrapper';\n","import React, { useState, useCallback } from 'react';\nimport MenuItem from 'Common/Components/ContextMenu/components/MenuItem';\nimport { PropTypes } from 'prop-types';\nimport useMouseHover from 'Hooks/useMouseHover';\nimport { menuItemHeight } from 'Common/Components/ContextMenu/components/MenuItem/styled';\nimport {\n RelativeWrapper, AbsoluteWrapper, SubMenuWrapper, subMenuWidth\n} from './styled';\n\nconst ContextSubMenu = ({\n enabled, children, title, color, icon\n}) => {\n const [showSubmenu, setShowSubmenu] = useState(false);\n const positiveOffsetX = subMenuWidth - 1;\n const negativeOffsetX = -subMenuWidth - 1;\n const positiveOffsetY = -menuItemHeight - 1;\n const [xPos, setXPos] = useState(positiveOffsetX);\n const [yPos, setYPos] = useState(positiveOffsetY);\n\n const measuredRef = useCallback((ref) => {\n if (ref !== null) {\n const {\n width, height, x, y\n } = ref.getBoundingClientRect();\n const viewHeight = document.body.clientHeight;\n const viewWidth = document.body.clientWidth;\n const overflowY = y + height > viewHeight;\n const overflowX = x + width > viewWidth;\n const isInitialYPos = yPos === positiveOffsetY;\n const isInitialXPos = xPos === positiveOffsetX;\n\n if (isInitialYPos && overflowY) setYPos(-height);\n if (isInitialXPos && overflowX) setXPos(negativeOffsetX);\n }\n }, [negativeOffsetX, positiveOffsetX, positiveOffsetY, xPos, yPos]);\n\n const mouseEnter = () => setShowSubmenu(true);\n const mouseLeave = () => setShowSubmenu(false);\n\n const [mouseEnterDebounced, mouseLeaveDebounced] = useMouseHover(mouseEnter, mouseLeave, 300);\n\n if (!enabled) return null;\n return (\n \n \n \n \n { showSubmenu && (\n \n {children}\n \n )}\n \n \n
\n );\n};\n\nContextSubMenu.propTypes = {\n title: PropTypes.string,\n color: PropTypes.string,\n icon: PropTypes.node,\n children: PropTypes.node.isRequired,\n enabled: PropTypes.bool\n};\n\nContextSubMenu.defaultProps = {\n title: '',\n color: '',\n icon: null,\n enabled: true\n};\n\nexport default ContextSubMenu;\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgShape = function SvgShape(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 17,\n viewBox: \"0 0 18 17\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#979AAF\",\n d: \"M10.461 7.726l5.231-6.356H2.202l5.286 6.356c.11.164.165.329.165.493v5.699l2.588 1.26V8.164c0-.164.11-.328.22-.438zm7.268-6.575l-6.056 7.287v7.836c0 .548-.55.877-.991.657l-4.02-1.917c-.22-.11-.44-.33-.44-.658V8.438L.166 1.151C-.22.712.11 0 .716 0H17.18c.605 0 .936.658.55 1.15z\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgShape, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/shape.9ea9d3d6.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconEditEnabled = function SvgIconEditEnabled(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 17,\n viewBox: \"0 0 17 17\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#979AAF\",\n d: \"M16.378 14.839c.344 0 .622.272.622.608 0 .336-.278.609-.622.609H.622c-.344 0-.622-.273-.622-.609 0-.336.278-.608.622-.608h15.756zm-.007-11.035l-9.87 9.656-3.848.385.393-3.764 8.583-8.397 1.288-1.26c.579-.566 1.588-.566 2.167 0l1.287 1.26c.288.28.45.663.45 1.06 0 .4-.16.777-.45 1.06zM4.046 12.482l1.888-.188 7.83-7.66-1.695-1.659-7.83 7.66-.193 1.847zM14 1.202c-.076 0-.15.03-.204.083l-.848.83 1.696 1.658.847-.83c.113-.11.113-.288 0-.398l-1.287-1.26c-.054-.053-.127-.083-.204-.082z\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconEditEnabled, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon-edit-enabled.a68d0409.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconEvidence = function SvgIconEvidence(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 19,\n height: 17,\n viewBox: \"0 0 19 17\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#979AAF\",\n stroke: \"#979AAF\",\n strokeWidth: 0.3,\n d: \"M1.35 1c-.19.02-.35.214-.35.423v14.365c0 .221.184.423.386.423h16.228c.202 0 .386-.202.386-.423V1.423C18 1.2 17.816 1 17.614 1H1.35zm.423.845h15.454V13.22l-3.386-4.06c-.078-.09-.195-.14-.308-.132-.052.002-.104.015-.151.04l-5.053 2.766-2.016-2.456c-.086-.107-.223-.16-.35-.139-.04.007-.08.02-.115.04L1.773 11.51V1.845zm7.34 2.535c-1.062 0-1.931.951-1.931 2.113 0 1.161.87 2.112 1.932 2.112 1.062 0 1.931-.95 1.931-2.112 0-1.162-.869-2.113-1.931-2.113zm0 .845c.645 0 1.16.563 1.16 1.268 0 .705-.515 1.267-1.16 1.267-.644 0-1.158-.562-1.158-1.267 0-.705.514-1.268 1.159-1.268zm4.36 4.747l3.754 4.496v.897h-6.006l-2.36-2.878 4.611-2.515zm-7.54.211l4.243 5.182H1.773v-2.904l4.16-2.278z\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconEvidence, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon-evidence.fdee90dd.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgTemplate = function SvgTemplate(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 16,\n viewBox: \"0 0 18 16\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#979AAF\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.772 6.26h12.456c.234 0 .424-.194.424-.434V2.783c0-.24-.19-.435-.424-.435H2.772c-.234 0-.424.194-.424.435v3.043c0 .24.19.435.424.435zm.425-3.043h11.606v2.174H3.197V3.217zM2.785 14.087h5.387c.241 0 .437-.197.437-.44V7.484c0-.243-.196-.44-.437-.44H2.785c-.242 0-.437.197-.437.44v6.163c0 .243.195.44.437.44zm.437-6.163h4.513v5.283H3.222V7.924zM15.215 7.043H9.828c-.241 0-.437.198-.437.44v6.164c0 .243.196.44.437.44h5.387c.242 0 .437-.197.437-.44V7.484c0-.243-.195-.44-.437-.44zm-.437 6.164h-4.513V7.924h4.513v5.283z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18 15.23V.422C18 .189 17.805 0 17.564 0H.436C.195 0 0 .19 0 .423v14.806c0 .234.195.423.436.423h17.128c.241 0 .436-.19.436-.423zm-.871-.424H.871V.846h16.258v13.96z\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgTemplate, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/template.bc90870d.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgStatus = function SvgStatus(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 9,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 1.455c0 .8-.655 1.454-1.455 1.454a1.236 1.236 0 0 1-.37-.05l-2.59 2.581a1.459 1.459 0 0 1-1.404 1.833A1.459 1.459 0 0 1 8.779 5.44L6.924 3.585c-.117.037-.248.051-.379.051-.13 0-.261-.014-.378-.05L2.858 6.901c.037.116.051.24.051.37 0 .8-.654 1.455-1.454 1.455C.655 8.727 0 8.073 0 7.273c0-.8.655-1.455 1.455-1.455.13 0 .254.015.37.051L5.142 2.56A1.459 1.459 0 0 1 6.546.727 1.459 1.459 0 0 1 7.948 2.56l1.855 1.855c.116-.037.247-.051.378-.051.13 0 .262.014.378.05l2.582-2.589a1.236 1.236 0 0 1-.051-.37c0-.8.654-1.455 1.454-1.455.8 0 1.455.655 1.455 1.455Z\",\n fill: \"#90A9C0\",\n fillRule: \"nonzero\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgStatus, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/status.660ac4e6.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconSeverity = function SvgIconSeverity(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 19,\n height: 20,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#90A9C0\",\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.423 15.64v-5.442c0-3.524-2.743-6.391-6.115-6.391-3.372 0-6.115 2.867-6.115 6.39v5.443A1.79 1.79 0 0 0 2 17.325v1.906c0 .328.267.595.595.595H16.02a.595.595 0 0 0 .595-.595v-1.906c0-.777-.498-1.44-1.192-1.685ZM9.308 4.996c2.716 0 4.926 2.334 4.926 5.202v5.34H4.382v-5.34c0-2.868 2.21-5.202 4.926-5.202Zm6.117 13.64H3.191v-1.311c0-.33.267-.597.596-.597H14.83c.329 0 .596.267.596.597v1.311ZM8.713.04h1.19v2.662h-1.19zM4.925 2.035l.839 1.459-1.032.593-.839-1.46zM.676 4.955 2.61 6.27l-.669.984L.007 5.94zM.352 10.228H1.65v1.19H.352zM17.043 10.228h1.298v1.19h-1.298zM18.536 6.012l-1.865 1.246-.66-.99 1.865-1.245zM14.738 2.843l-.879 1.283-.982-.673.88-1.283z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.261 9.873h1.19v4.203h-1.19z\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconSeverity, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon_severity.b2244c26.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgSaveTemplate = function SvgSaveTemplate(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 19,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.664 0c.227 0 .425.139.503.345l.026.093.007.085.001 8.833-.034.024A4.502 4.502 0 0 1 16.6 18.1a4.499 4.499 0 0 1-3.924-2.296l-.029.049H.536a.534.534 0 0 1-.503-.346l-.026-.093L0 15.33V.523C0 .3.143.107.354.032L.45.007.536 0h17.128ZM16.6 10.1a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7Zm-.171.714c.302 0 .552.206.599.475l.008.092v3.165l.785-.732a.638.638 0 0 1 .858 0c.211.196.235.502.07.722l-.07.079-1.82 1.7a.646.646 0 0 1-.8.049l-.06-.05-1.821-1.7a.54.54 0 0 1 0-.8.64.64 0 0 1 .774-.066l.084.066.785.732v-3.165c0-.313.272-.567.608-.567Zm.699-9.768H1.071v13.76l11.193.002a4.487 4.487 0 0 1-.152-.875l-.006.007H9.88a.537.537 0 0 1-.507-.368l-.022-.085-.008-.088V7.236a.54.54 0 0 1 .365-.51l.085-.023.087-.007h5.387c.232 0 .433.148.508.367l.022.085.007.088V9.17a4.527 4.527 0 0 1 1.325-.04l-.001-8.084Zm-8.904 5.65c.232 0 .433.148.507.367l.022.085.008.088v6.163a.54.54 0 0 1-.365.51l-.085.023-.087.007H2.837a.537.537 0 0 1-.508-.367l-.022-.085-.007-.088V7.236a.54.54 0 0 1 .365-.51l.084-.023.088-.007h5.387Zm6.506 1.08h-4.313v5.082h1.728l.013.016a4.506 4.506 0 0 1 2.612-3.386l-.04-.027V7.776Zm-7.043 0H3.373v5.082h4.314V7.776ZM15.28 2c.223 0 .417.143.492.354l.025.094.007.087v3.043c0 .227-.139.424-.346.502l-.093.026-.085.007H2.825a.525.525 0 0 1-.493-.354l-.025-.094-.007-.087V2.535c0-.227.14-.424.346-.502l.093-.026L2.825 2H15.28Zm-.525 1.069H3.349v1.974h11.406V3.069Z\",\n fill: \"#90A9C0\",\n fillRule: \"nonzero\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgSaveTemplate, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/save_template.d74f944a.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as FilterSVG } from 'Images/shape.svg';\nimport { ReactComponent as DeleteSVG } from 'Images/icon-trash-red.svg';\nimport { ReactComponent as EditSVG } from 'Images/icon-edit-enabled.svg';\nimport { ReactComponent as EvidenceSVG } from 'Images/icon-evidence.svg';\nimport { ReactComponent as TemplateSVG } from 'Images/template.svg';\nimport { ReactComponent as StatusSVG } from 'Images/status.svg';\nimport { ReactComponent as SeveritySVG } from 'Images/icon_severity.svg';\nimport { ReactComponent as CopyLinkSVG } from 'Images/copy_link.svg';\nimport { ReactComponent as CopyApiLinkSVG } from 'Images/api_link.svg';\nimport { ReactComponent as SaveTemplateSVG } from 'Images/save_template.svg';\nimport SeverityComponent from 'Common/Components/SeverityIcon';\n\nexport const SeverityLetter = styled(SeverityComponent)`\n margin: auto 13px auto 0px;\n & > path {\n fill: ${colors.blueGrey};\n }\n`;\nSeverityLetter.displayName = 'SeverityLetter';\n\nexport const FilterIcon = styled(FilterSVG)`\n margin: auto 13px auto 0px;\n & > path {\n fill: ${colors.blueGrey};\n }\n`;\nFilterIcon.displayName = 'FilterIcon';\n\nexport const DeleteIcon = styled(DeleteSVG)`\n margin: auto 13px auto 0px;\n width: 20px;\n height: 20px;\n`;\nDeleteIcon.displayName = 'DeleteIcon';\n\nexport const EditIcon = styled(EditSVG)`\n margin: auto 14px auto 0px;\n & > path {\n fill: ${colors.blueGrey};\n }\n`;\nEditIcon.displayName = 'EditIcon';\n\nexport const StatusIcon = styled(StatusSVG)`\n margin: auto 15px auto 0px;\n & > path {\n fill: ${colors.blueGrey};\n }\n`;\nStatusIcon.displayName = 'StatusIcon';\n\nexport const SeverityIcon = styled(SeveritySVG)`\n margin: auto 12px auto 0px;\n & > path {\n fill: ${colors.blueGrey};\n }\n`;\nSeverityIcon.displayName = 'SeverityIcon';\n\nexport const EvidenceIcon = styled(EvidenceSVG)`\n margin: auto 12px auto 0px;\n & > path {\n fill: ${colors.blueGrey};\n stroke: ${colors.blueGrey};\n }\n`;\nEvidenceIcon.displayName = 'EvidenceIcon';\n\nexport const TemplateIcon = styled(TemplateSVG)`\n margin: auto 13px auto 0px;\n & g {\n & path{\n fill: ${colors.blueGrey};\n } \n }\n`;\nTemplateIcon.displayName = 'TemplateIcon';\n\nexport const CopyLinkIcon = styled(CopyLinkSVG)`\n margin: auto 10px auto 3px;\n & > path {\n fill: ${colors.blueGrey};\n }\n`;\nCopyLinkIcon.displayName = 'CopyLinkIcon';\n\nexport const CopyApiLinkIcon = styled(CopyApiLinkSVG)`\n margin: auto 10px auto 0px;\n & > path {\n fill: ${colors.blueGrey};\n }\n`;\nCopyApiLinkIcon.displayName = 'CopyApiLinkIcon';\n\nexport const SaveTemplateIcon = styled(SaveTemplateSVG)`\n margin: 3px 10px auto 0;\n`;\nSaveTemplateIcon.displayName = 'SaveTemplateIcon';\n","/* eslint-disable import/prefer-default-export */\nimport React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport ContextSubMenu from 'Common/Components/ContextMenu/components/ContextSubMenu';\nimport MenuItem from 'Common/Components/ContextMenu/components/MenuItem';\nimport { selectVulnsSelected } from 'store/Manage/selectors';\nimport { VULNS_CONTEXT_MENU_FILTER_KEYS } from 'store/Filters/constants';\nimport { setContextMenuFilter } from 'store/Manage/filterActions';\nimport { useIntl } from 'react-intl';\nimport { showContextMenu } from 'store/Manage/actions';\nimport { FilterIcon } from '../styled';\n\nexport const Filter = () => {\n const vulnsSelected = useSelector(selectVulnsSelected);\n const dispatch = useDispatch();\n const title = useIntl().formatMessage({ id: 'manage.cm.filter' });\n const isBulk = useSelector(selectVulnsSelected).length > 1;\n const noVulnsSelected = vulnsSelected.length === 0;\n\n const setFilter = (filterName) => {\n dispatch(setContextMenuFilter(filterName, vulnsSelected[0]));\n dispatch(showContextMenu(false));\n };\n\n if (noVulnsSelected) return null;\n return (\n }\n enabled={ !isBulk }\n >\n {\n VULNS_CONTEXT_MENU_FILTER_KEYS.map(\n (filter) => setFilter(filter.name) } />\n )\n }\n \n );\n};\n","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport ContextSubMenu from 'Common/Components/ContextMenu/components/ContextSubMenu';\nimport MenuItem from 'Common/Components/ContextMenu/components/MenuItem';\nimport { selectVulnsSelected } from 'store/Manage/selectors';\nimport { updateVuln, setBulkUpdateField, setBulkUpdateValue } from 'store/Manage/actions';\nimport { useIntl } from 'react-intl';\nimport { MODAL_MANAGE_BULK_UPDATE_CONFIRMATION } from 'store/modals/modals';\nimport { openModal } from 'store/modals/actions';\n\nconst EaseOfResolution = () => {\n const items = [\n { name: 'trivial', label: 'Trivial' },\n { name: 'simple', label: 'Simple' },\n { name: 'moderate', label: 'Moderate' },\n { name: 'difficult', label: 'Difficult' },\n { name: 'infeasible', label: 'Infeasible' }\n ];\n\n const dispatch = useDispatch();\n const vulnsSelected = useSelector(selectVulnsSelected);\n const isBulk = vulnsSelected.length > 1;\n\n const onEaseOfResolutionEdit = (easeOfResolution) => {\n if (isBulk) {\n dispatch(setBulkUpdateField('easeofresolution'));\n dispatch(setBulkUpdateValue(easeOfResolution));\n dispatch(openModal(MODAL_MANAGE_BULK_UPDATE_CONFIRMATION));\n } else dispatch(updateVuln(vulnsSelected[0], 'easeofresolution', easeOfResolution));\n };\n\n return (\n \n {items.map((item) => onEaseOfResolutionEdit(item.name) } />)}\n \n );\n};\n\nexport default EaseOfResolution;\n","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { setBulkUpdateField, setBulkUpdateValue } from 'store/Manage/actions';\nimport { selectVulnsSelected } from 'store/Manage/selectors';\nimport ContextSubMenu from 'Common/Components/ContextMenu/components/ContextSubMenu';\nimport MenuItem from 'Common/Components/ContextMenu/components/MenuItem';\nimport { useIntl } from 'react-intl';\nimport { MODAL_MANAGE_BULK_UPDATE_CONFIRMATION } from 'store/modals/modals';\nimport { openModal } from 'store/modals/actions';\n\nconst ConfirmFalsePositive = () => {\n const dispatch = useDispatch();\n const isBulk = useSelector(selectVulnsSelected).length > 1;\n const intl = useIntl();\n\n const onConfirmedEdit = (confirmed) => {\n dispatch(setBulkUpdateField('confirmed'));\n dispatch(setBulkUpdateValue(confirmed));\n dispatch(openModal(MODAL_MANAGE_BULK_UPDATE_CONFIRMATION));\n };\n\n return (\n \n onConfirmedEdit(true) } />\n onConfirmedEdit(false) } />\n \n );\n};\n\nexport default ConfirmFalsePositive;\n","/* eslint-disable import/prefer-default-export */\nimport React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport ContextSubMenu from 'Common/Components/ContextMenu/components/ContextSubMenu';\nimport MenuItem from 'Common/Components/ContextMenu/components/MenuItem';\nimport { selectVulnsSelected } from 'store/Manage/selectors';\nimport { selectGroupByField } from 'store/Filters/selectors';\nimport {\n showContextMenu,\n showBulkUpdateModal,\n showVulnerabilityDetail\n} from 'store/Manage/actions';\nimport { useIntl } from 'react-intl';\nimport get from 'lodash/get';\nimport head from 'lodash/head';\nimport { EditIcon } from '../styled';\nimport EaseOfResolution from './components/EaseOfResolution';\nimport ConfirmFalsePositive from './components/ConfirmFalsePositive';\n\nexport const Edit = () => {\n const dispatch = useDispatch();\n const vulnsSelected = useSelector(selectVulnsSelected);\n const groupBy = useSelector((state) => selectGroupByField('vulns', state));\n const isBulk = vulnsSelected.length > 1;\n const selectedVuln = head(vulnsSelected);\n const selectedVulnID = get(selectedVuln, '_id', null);\n const intl = useIntl();\n\n const goToTabDetail = (selectedTab, inputName) => {\n if (isBulk) dispatch(showBulkUpdateModal(inputName, ''));\n else if (selectedVulnID) dispatch(showVulnerabilityDetail(selectedVulnID, selectedTab));\n dispatch(showContextMenu(false));\n };\n\n const onNameEdit = () => {\n dispatch(showBulkUpdateModal('name', isBulk ? '' : selectedVuln.name));\n dispatch(showContextMenu(false));\n };\n const onRefEdit = () => {\n dispatch(showBulkUpdateModal('references', isBulk ? [] : selectedVuln.refs.map((r) => r.name)));\n dispatch(showContextMenu(false));\n };\n const onImpactEdit = () => {\n dispatch(showBulkUpdateModal('impact', isBulk ? [] : Object.keys(vulnsSelected[0].impact).filter((item) => vulnsSelected[0].impact[item] === true)));\n dispatch(showContextMenu(false));\n };\n const onPolicyEdit = () => {\n dispatch(showBulkUpdateModal('policy violations', isBulk ? [] : selectedVuln.policyviolations));\n dispatch(showContextMenu(false));\n };\n\n return (\n }\n title={ intl.formatMessage({ id: 'manage.cm.edit' }) }\n >\n \n goToTabDetail('technicalDetails', 'data') } />\n goToTabDetail('general', 'description') } />\n goToTabDetail('general', 'resolution') } />\n \n \n \n \n \n \n );\n};\n","/* eslint-disable import/prefer-default-export */\nimport React from 'react';\nimport MenuItem from 'Common/Components/ContextMenu/components/MenuItem';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { showContextMenu, showVulnModalDelete } from 'store/Manage/actions';\nimport { selectVulnsSelected } from 'store/Manage/selectors';\nimport { useIntl } from 'react-intl';\nimport { DeleteIcon } from './styled';\n\nexport const Delete = () => {\n const dispatch = useDispatch();\n const vulnsCount = useSelector(selectVulnsSelected).length;\n const singleDelete = useIntl().formatMessage({ id: 'manage.cm.delete' });\n const bulkDelete = useIntl().formatMessage({ id: 'manage.cm.bulkDelete' });\n const title = vulnsCount === 1 ? singleDelete : bulkDelete;\n\n const handleClick = () => {\n dispatch(showVulnModalDelete());\n dispatch(showContextMenu(false));\n };\n\n return (\n }\n onClick={ handleClick }\n />\n );\n};\n","/* eslint-disable import/prefer-default-export */\nimport React from 'react';\nimport MenuItem from 'Common/Components/ContextMenu/components/MenuItem';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectVulnsSelected } from 'store/Manage/selectors';\nimport {\n showVulnerabilityDetail, showContextMenu\n} from 'store/Manage/actions';\nimport { useIntl } from 'react-intl';\nimport get from 'lodash/get';\nimport head from 'lodash/head';\nimport { EvidenceIcon } from './styled';\n\nexport const AddNewEvidence = () => {\n const dispatch = useDispatch();\n const intl = useIntl();\n const vulnsSelected = useSelector(selectVulnsSelected);\n const selectedVulnID = get(head(vulnsSelected), '_id', null);\n const isBulk = vulnsSelected.length > 1;\n\n if (isBulk) return null;\n return (\n }\n onClick={ () => {\n if (selectedVulnID) dispatch(showVulnerabilityDetail(selectedVulnID, 'evidence'));\n dispatch(showContextMenu(false));\n } }\n />\n );\n};\n","/* eslint-disable import/prefer-default-export */\nimport React from 'react';\nimport MenuItem from 'Common/Components/ContextMenu/components/MenuItem';\nimport { useDispatch } from 'react-redux';\nimport { saveTemplateFromVuln, showContextMenu } from 'store/Manage/actions';\nimport { useIntl } from 'react-intl';\nimport { SaveTemplateIcon } from './styled';\n\nexport const SaveAsTemplate = () => {\n const intl = useIntl();\n const dispatch = useDispatch();\n\n return (\n }\n onClick={ () => {\n dispatch(saveTemplateFromVuln());\n dispatch(showContextMenu(false));\n } }\n />\n );\n};\n","/* eslint-disable import/prefer-default-export */\nimport React from 'react';\nimport { useIntl } from 'react-intl';\nimport ContextSubMenu from 'Common/Components/ContextMenu/components/ContextSubMenu';\nimport MenuItem from 'Common/Components/ContextMenu/components/MenuItem';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectVulnsSelected } from 'store/Manage/selectors';\nimport {\n setBulkUpdateField, setBulkUpdateValue, showContextMenu, updateVuln\n} from 'store/Manage/actions';\nimport { PropTypes } from 'prop-types';\nimport { selectGroupByField } from 'store/Filters/selectors';\nimport { MODAL_MANAGE_BULK_UPDATE_CONFIRMATION } from 'store/modals/modals';\nimport { openModal } from 'store/modals/actions';\nimport { SeverityIcon, SeverityLetter } from './styled';\n\nconst SeverityItem = ({ title }) => {\n const dispatch = useDispatch();\n const vulnsSelected = useSelector(selectVulnsSelected);\n const oneVulnSelected = vulnsSelected.length === 1;\n const isBulk = vulnsSelected.length > 1;\n const selectedVuln = vulnsSelected[0];\n const capitalizedSeverity = title.charAt(0).toUpperCase() + title.slice(1);\n const letter = capitalizedSeverity.charAt(0);\n\n const applySeverity = () => {\n if (isBulk) {\n dispatch(setBulkUpdateField('severity'));\n dispatch(setBulkUpdateValue(title));\n dispatch(openModal(MODAL_MANAGE_BULK_UPDATE_CONFIRMATION));\n } else dispatch(updateVuln(selectedVuln, 'severity', title));\n dispatch(showContextMenu(false));\n };\n\n return (\n \n { letter }\n \n ) }\n onClick={ applySeverity }\n />\n );\n};\n\nSeverityItem.propTypes = { title: PropTypes.string.isRequired };\n\nexport const Severity = () => {\n const groupBy = useSelector((state) => selectGroupByField('vulns', state));\n const intl = useIntl();\n\n if (groupBy === 'severity') return null;\n return (\n }\n >\n \n \n \n \n \n \n \n );\n};\n","/* eslint-disable import/prefer-default-export */\nimport React from 'react';\nimport ContextSubMenu from 'Common/Components/ContextMenu/components/ContextSubMenu';\nimport MenuItem from 'Common/Components/ContextMenu/components/MenuItem';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectGroupByField } from 'store/Filters/selectors';\nimport { selectVulnsSelected } from 'store/Manage/selectors';\nimport {\n setBulkUpdateField, setBulkUpdateValue,\n showContextMenu, updateVuln\n} from 'store/Manage/actions';\nimport { useIntl } from 'react-intl';\nimport { PropTypes } from 'prop-types';\nimport { MODAL_MANAGE_BULK_UPDATE_CONFIRMATION } from 'store/modals/modals';\nimport { openModal } from 'store/modals/actions';\nimport { StatusIcon } from './styled';\n\nconst StatusItem = ({ type }) => {\n const vulnsSelected = useSelector(selectVulnsSelected);\n const selectedVuln = vulnsSelected[0];\n const dispatch = useDispatch();\n const intl = useIntl();\n const oneVulnSelected = vulnsSelected.length === 1;\n const isBulk = vulnsSelected.length > 1;\n\n const applyStatus = (status) => {\n if (isBulk) {\n dispatch(setBulkUpdateField('status'));\n dispatch(setBulkUpdateValue(status));\n dispatch(openModal(MODAL_MANAGE_BULK_UPDATE_CONFIRMATION));\n } else dispatch(updateVuln(selectedVuln, 'status', status));\n dispatch(showContextMenu(false));\n };\n\n return (\n applyStatus(type) }\n />\n );\n};\n\nStatusItem.propTypes = { type: PropTypes.string.isRequired };\n\nexport const Status = () => {\n const groupBy = useSelector((state) => selectGroupByField('vulns', state));\n const intl = useIntl();\n\n if (groupBy === 'status') return null;\n return (\n }\n >\n \n \n \n \n \n );\n};\n","/* eslint-disable import/prefer-default-export */\nimport React from 'react';\nimport MenuItem from 'Common/Components/ContextMenu/components/MenuItem';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectVulnsSelected } from 'store/Manage/selectors';\nimport { showContextMenu } from 'store/Manage/actions';\nimport { useIntl } from 'react-intl';\nimport get from 'lodash/get';\nimport head from 'lodash/head';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport copyToClipboard from 'utils/clipboard';\nimport { CopyLinkIcon } from './styled';\n\nexport const CopyLink = () => {\n const dispatch = useDispatch();\n const intl = useIntl();\n const workspaceSelected = useSelector(selectCurrentWorkspace);\n const vulnsSelected = useSelector(selectVulnsSelected);\n const isBulk = vulnsSelected.length > 1;\n\n const onClick = () => {\n const selectedVulnID = get(head(vulnsSelected), '_id', 0);\n if (selectedVulnID && workspaceSelected) {\n const baseUrl = get(window, 'location.origin', '');\n const link = `${baseUrl}/manage/${workspaceSelected}/${selectedVulnID}`;\n copyToClipboard(link);\n }\n dispatch(showContextMenu(false));\n };\n\n if (isBulk) return null;\n return (\n }\n onClick={ onClick }\n />\n );\n};\n","/* eslint-disable import/prefer-default-export */\nimport React from 'react';\nimport { getRequestUrl } from 'services/api/connector';\nimport MenuItem from 'Common/Components/ContextMenu/components/MenuItem';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectVulnsSelected } from 'store/Manage/selectors';\nimport { showContextMenu } from 'store/Manage/actions';\nimport { useIntl } from 'react-intl';\nimport get from 'lodash/get';\nimport head from 'lodash/head';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport copyToClipboard from 'utils/clipboard';\nimport { CopyApiLinkIcon } from './styled';\n\nexport const CopyApiLink = () => {\n const dispatch = useDispatch();\n const intl = useIntl();\n const workspaceSelected = useSelector(selectCurrentWorkspace);\n const vulnsSelected = useSelector(selectVulnsSelected);\n const isBulk = vulnsSelected.length > 1;\n\n const onClick = () => {\n const selectedVulnID = get(head(vulnsSelected), '_id', 0);\n if (selectedVulnID && workspaceSelected) {\n const vulnPath = `ws/${workspaceSelected}/vulns/${selectedVulnID}`;\n const link = getRequestUrl(vulnPath);\n copyToClipboard(link);\n }\n dispatch(showContextMenu(false));\n };\n\n if (isBulk) return null;\n return (\n }\n onClick={ onClick }\n />\n );\n};\n","import React from 'react';\nimport MenuItem from 'Common/Components/ContextMenu/components/MenuItem';\nimport { useDispatch } from 'react-redux';\nimport { showContextMenu } from 'store/Manage/actions';\nimport { openModal } from 'store/modals/actions';\nimport { MODAL_APPLY_TEMPLATE } from 'store/modals/modals';\nimport { TemplateIcon } from './styled';\n\nconst ApplyTemplate = () => {\n const dispatch = useDispatch();\n\n return (\n }\n onClick={ () => {\n dispatch(openModal(MODAL_APPLY_TEMPLATE));\n dispatch(showContextMenu(false));\n } }\n />\n );\n};\n\nexport default ApplyTemplate;\n","import React from 'react';\nimport ContextMenu from 'Common/Components/ContextMenu';\nimport { Separator } from 'Common/Components/ContextMenu/styled';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n selectShowContextMenu, selectContextMenuXPos, selectContextMenuYPos, selectVulnsSelected, selectReadOnly, selectPermissions\n} from 'store/Manage/selectors';\nimport { showContextMenu } from 'store/Manage/actions';\nimport get from 'lodash/get';\nimport {\n AddNewEvidence, Delete, Edit, Filter, Severity, Status, CopyLink, CopyApiLink, SaveAsTemplate\n} from './components';\nimport ApplyTemplate from './components/ApplyTemplate';\n\nconst VulnsContextMenu = () => {\n const dispatch = useDispatch();\n const displayContextMenu = useSelector(selectShowContextMenu);\n const xPos = useSelector(selectContextMenuXPos);\n const yPos = useSelector(selectContextMenuYPos);\n const vulnsSelected = useSelector(selectVulnsSelected);\n const isBulk = vulnsSelected.length > 1;\n const areVulnsSelected = vulnsSelected.length > 0;\n const readOnly = useSelector(selectReadOnly);\n const permissions = useSelector(selectPermissions);\n const cantUpdate = !get(permissions, 'update.allowed', false);\n\n if (readOnly || cantUpdate || !displayContextMenu || !areVulnsSelected) return null;\n return (\n dispatch(showContextMenu(show, x, y)) }\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default VulnsContextMenu;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as _Warning } from 'Images/warning-delete.svg';\nimport { slideIn } from 'Styles/effects';\nimport { Accept, Cancel } from '../Button/styled';\n\nexport const ModalContent = styled.div`\n padding: 34px;\n box-shadow: 0 2px 50px 0 rgba(0, 0, 0, 0.24);\n border-radius: 2px;\n border-top: 10px solid ${colors.softBlue};\n background: #fff;\n width: 505px;\n ${slideIn}\n`;\nModalContent.displayName = 'ModalContent';\n\nexport const ModalTitle = styled.div`\n display: flex;\n margin-bottom: 16px;\n`;\nModalTitle.displayName = 'ModalTitle';\n\nexport const Warning = styled(_Warning)`\n align-self: center;\n`;\nWarning.displayName = 'Warning';\n\nexport const Title = styled.div`\n color: ${colors.datk2};\n font-weight: 600;\n font-size: 21.5px;\n margin-left: 13px;\n`;\nTitle.displayName = 'Title';\n\nexport const ModalBody = styled.div`\n & > *:not(:last-child) {\n margin-right: 4px;\n };\n`;\nModalBody.displayName = 'ModalBody';\n\nexport const BodyText = styled.div`\n color: ${colors.grey19};\n font-size: 12.5px;\n font-weight: 300;\n display: inline-block;\n`;\nBodyText.displayName = 'BodyText';\n\nexport const BlueText = styled(BodyText)`\n color: ${colors.softBlue};\n`;\nBlueText.displayName = 'BlueText';\n\nexport const ButtonsContainer = styled.div`\ndisplay: flex;\njustify-content: space-between;\nmargin-top: 34px;\nwidth: 190px;\nmargin-left: auto;\n`;\nButtonsContainer.displayName = 'ButtonsContainer';\n\nexport const ConfirmButton = styled(Accept)`\n`;\nConfirmButton.displayName = 'ConfirmButton';\n\nexport const CancelButton = styled(Cancel)`\n margin-right: 10px;\n`;\nCancelButton.displayName = 'CancelButton';\n","const colors = {\n grey1: '#122d46',\n grey2: '#31556d',\n grey3: '#4f7d94',\n grey4: '#668ea2',\n grey5: '#7d9fb0',\n grey6: '#94b0be',\n grey7: '#abc1cd',\n grey8: '#c2d2db',\n grey9: '#d9e3e9',\n grey10: '#f0f4f7',\n grey11: '#8DA6BE',\n grey12: '#6A91A5',\n blue1: '#00365b',\n blue2: '#004980',\n blue3: '#005ca4',\n blue4: '#006fc9',\n blue5: '#0082ed',\n blue6: '#2496f1',\n blue7: '#49aaf4',\n blue8: '#6dbdf8',\n blue9: '#92d1fb',\n blue10: '#b6e5ff',\n red1: '#a32851',\n red2: '#c62d55',\n red3: '#ea3158',\n purple: '#A4247A',\n orange: '#F59220',\n green: '#88CC3F',\n lightBlue: '#82B8E5',\n yellow: '#FFD76B',\n white: '#FFFFFF',\n black: '#000000'\n};\n\nexport default colors;\n","import styled from 'styled-components';\nimport colors from 'Common/Kit/colors';\n\nexport const H1 = styled.p`\n font-family: 'Sequel Sans';\n font-size: 26px;\n font-weight: bold;\n color: ${colors.grey1};\n font-stretch: normal;\n font-style: normal;\n line-height: 1.38;\n letter-spacing: normal;\n`;\nH1.displayName = 'H1';\n\nexport const H2 = styled(H1)`\n font-size: 24px;\n line-height: 1.42;\n`;\nH2.displayName = 'H2';\n\nexport const H3 = styled(H1)`\n font-size: 22px;\n line-height: 1.41;\n`;\nH3.displayName = 'H3';\n\nexport const H4 = styled(H1)`\n font-size: 20px;\n font-weight: 600;\n line-height: 1.4;\n`;\nH4.displayName = 'H4';\n\nexport const H5 = styled(H1)`\n font-size: 18px;\n font-weight: 600;\n line-height: 1.39;\n`;\nH5.displayName = 'H5';\n\nexport const H6 = styled(H1)`\n font-size: 16px;\n font-weight: 600;\n line-height: 1.38;\n`;\nH6.displayName = 'H6';\n\nexport const DefaultParagraph = styled(H1)`\n font-size: 14px;\n font-weight: normal;\n line-height: normal;\n color: ${colors.black};\n`;\nDefaultParagraph.displayName = 'DefaultParagraph';\n\nexport const StrongParagraph = styled(DefaultParagraph)`\n font-weight: 600;\n line-height: 1.43;\n color: ${colors.grey1};\n`;\nStrongParagraph.displayName = 'StrongParagraph';\n\nexport const SmallParagraph = styled(DefaultParagraph)`\n font-size: 10px;\n line-height: 1.4;\n color: ${colors.grey7};\n`;\nSmallParagraph.displayName = 'SmallParagraph';\n\nexport const TableText = styled(DefaultParagraph)`\n`;\nTableText.displayName = 'TableText';\n\nexport const TableTextStrong = styled(DefaultParagraph)`\n font-weight: 600;\n line-height: 1.43;\n color: ${colors.grey1};\n`;\nTableTextStrong.displayName = 'TableTextStrong';\n\nexport const TableLabel = styled.p`\n font-family: 'CentraNo2';\n font-size: 12px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.33;\n letter-spacing: normal;\n color: ${colors.grey11};\n`;\nTableLabel.displayName = 'TableLabel';\n\nexport const ButtonText = styled(TableLabel)`\n font-size: 14px;\n line-height: normal;\n color: ${colors.black};\n`;\nButtonText.displayName = 'ButtonText';\n\nexport const TagsText = styled(TableLabel)`\n font-size: 14px;\n font-weight: normal;\n line-height: 1.14;\n color: ${colors.grey1};\n`;\nTagsText.displayName = 'TagsText';\n\nexport const MenuText = styled(TableLabel)`\n font-size: 14px;\n line-height: normal;\n color: ${colors.black};\n`;\nMenuText.displayName = 'MenuText';\n\nexport const MenuTextBold = styled(MenuText)`\n font-weight: bold;\n`;\nMenuTextBold.displayName = 'MenuTextBold';\n\nexport const Link = styled.a`\n font-family: 'Sequel Sans';\n font-size: 14px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.21;\n letter-spacing: normal;\n color: ${colors.blue5};\n`;\nLink.displayName = 'Link';\n","import styled from 'styled-components';\nimport colors from '../colors';\nimport { spinner } from 'Styles/effects';\nimport { ButtonText } from '../Typography/styled';\n\nconst buttonColors = {\n blue: {\n default: colors.blue5,\n hover: colors.blue4,\n active: colors.blue3\n },\n red: {\n default: colors.red3,\n hover: colors.red2,\n active: colors.red1\n },\n white: {\n default: colors.white,\n hover: colors.white,\n active: colors.white\n }\n};\n\nexport const Text = styled(ButtonText)`\n color: ${colors.white};\n`;\n\nexport const StyledButton = styled.button`\n background-color: ${({ color }) => buttonColors[color].default};\n border: none;\n border-radius: 3px;\n padding: ${({ narrow_sides }) => narrow_sides ? '10px' : '10px 25px'};\n border: solid 2px transparent;\n display: flex;\n align-items: center;\n width: max-content;\n height: 38px;\n\n &:hover {\n background-color: ${({ color }) => buttonColors[color].hover};\n }\n\n &:active {\n background-color: ${({ color }) => buttonColors[color].active};\n }\n\n &:focus {\n box-shadow: 0 0 4px 0 rgba(0, 111, 201, 0.4);\n border: solid 2px #006fc9;\n }\n\n &:disabled {\n border-radius: 3px;\n background-color: #d9e3e9;\n & ${Text} {\n color: ${colors.grey7};\n }\n }\n \n pointer-events: ${({ isLoading }) => isLoading && 'none'};\n ${({ isLoading }) => isLoading && spinner({ diameter: '15px' })};\n \n \n color: ${colors.white};\n\n ${({ color }) => {\n if (color === 'white') {\n return `\n border-color: ${buttonColors.blue.default};\n & ${Text} {color: ${buttonColors.blue.default};}\n\n &:hover {\n & ${Text} {color: ${buttonColors.blue.hover};}\n border-color: ${buttonColors.blue.hover};\n }\n \n &:active {\n & ${Text} {color: ${buttonColors.blue.active};}\n border-color: ${buttonColors.blue.active};;\n } \n `;\n }\n}}\n`;\n\nStyledButton.displayName = 'Button';\n\nexport const IconWrapper = styled.div`\n//margin: 0 5px;\n margin: 0 5px 0 0;\n display: flex;\n\n`;\n\n// height: 34px;\n// border-radius: 2px;\n// background-color: ${(props) => (props.disabled ? colors.blue12 : colors.blueCerulean)};\n// padding: 7px 22px;\n// color: ${(props) => (props.isLoading ? 'transparent' : colors.white)};\n// text-transform: none;\n// border: none;\n// font-size: 14px;\n// font-weight: 500;\n// font-stretch: normal;\n// font-style: normal;\n// line-height: normal;\n// letter-spacing: normal;\n// text-align: center;\n// pointer-events: ${(props) => props.isLoading && 'none'};\n// ${(props) => props.isLoading && spinner({ diameter: '15px' })};\n\n// &:hover {\n// background-color: ${(props) => (props.disabled ? '' : colors.blue11)};\n// }\n\n// &:active {\n// background-color: ${(props) => (props.disabled ? '' : colors.softBlue)};\n// }\n","import React from 'react';\nimport { StyledButton, IconWrapper, Text } from './styled';\n\nconst Button = ({\n onClick, disabled, isLoading, id, children, Icon = null, color = 'blue'\n}) => (\n \n {Icon && }\n { children }\n \n);\n\nexport default Button;\n","import React from 'react';\nimport ModalWrapper from 'Common/Components/ModalWrapper';\nimport { PropTypes } from 'prop-types';\nimport {\n ModalTitle, Title, BodyText, ModalContent, ButtonsContainer,\n BlueText, Warning, ModalBody\n} from './styled';\nimport Button from 'Common/Kit/Button';\n\nconst ConfirmationDialog = ({\n show, title, count, upperCaseTitle, handleClose, handleSubmit, isLoading\n}) => {\n if (!show) return null;\n return (\n \n \n \n \n \n {title}\n \n \n \n You’re editing\n \n {`${count} ${upperCaseTitle}(s)`}\n \n and changing their properties. Are you sure?\n \n \n \n \n \n \n \n );\n};\n\nConfirmationDialog.propTypes = {\n show: PropTypes.bool,\n handleSubmit: PropTypes.func.isRequired,\n handleClose: PropTypes.func.isRequired,\n count: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n upperCaseTitle: PropTypes.string.isRequired\n};\n\nConfirmationDialog.defaultProps = {\n show: true\n};\n\nexport default ConfirmationDialog;\n","import React from 'react';\nimport CommonConfirmationDialog from 'Common/Components/ConfirmationDialog';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { bulkUpdateVulns } from 'store/Manage/actions';\nimport {\n selectIsFetching, selectModalBulkUpdateValue,\n selectSelectAll,\n selectVulnsCount,\n selectVulnsSelected\n} from 'store/Manage/selectors';\nimport { MODAL_MANAGE_BULK_UPDATE_CONFIRMATION } from 'store/modals/modals';\nimport { closeModal } from 'store/modals/actions';\nimport selectModal from 'store/modals/selectors';\n\nconst BulkUpdateConfirmationDialog = () => {\n const showModal = useSelector((state) => selectModal(state, MODAL_MANAGE_BULK_UPDATE_CONFIRMATION));\n const dispatch = useDispatch();\n const vulnsSelected = useSelector(selectVulnsSelected);\n const vulnsCount = useSelector(selectVulnsCount);\n const selectAll = useSelector(selectSelectAll);\n const count = selectAll ? vulnsCount : vulnsSelected.length;\n\n const isFetching = useSelector(selectIsFetching);\n const bulkUpdateValue = useSelector(selectModalBulkUpdateValue);\n\n if (!showModal) return null;\n return (\n dispatch(bulkUpdateVulns(bulkUpdateValue)) }\n handleClose={ () => dispatch(closeModal(MODAL_MANAGE_BULK_UPDATE_CONFIRMATION)) }\n count={ count }\n upperCaseTitle=\"Vulnerabilities\"\n isLoading={ isFetching }\n />\n );\n};\nexport default BulkUpdateConfirmationDialog;\n","/* eslint-disable no-nested-ternary */\n/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\nimport 'react-table-6/react-table.css';\nimport {\n IoMdCheckmark as Check,\n IoMdClose as Remove\n} from 'react-icons/io';\nimport get from 'lodash/get';\nimport FlagIcon from 'Common/Components/FlagIcon';\nimport DateFormatter from 'Common/Components/DateFormatter';\nimport Skeleton from 'Common/Components/Skeleton';\nimport {\n Impact, GenericCell, Name, CheckColum, CheckHeader, Confirm, Severity, Expander, SeverityHeader, CVE\n} from './index';\n\nexport default function getColumns (isPivot, customFields, showVulnDetail, currentBreakpoint, group_by, fields, isFetching, isFetchingExpandedData, hasGroupedData) {\n const extendFieldName = (showVulnDetail && currentBreakpoint === 'second');\n const showSkeleton = isFetching || (isFetchingExpandedData && !isPivot && !hasGroupedData);\n const columns = [\n {\n headerStyle: { display: 'none' },\n id: 'expander',\n show: !!(group_by && isPivot),\n sortable: false,\n filterable: false,\n maxWidth: 50,\n minWidth: 50,\n expander: true,\n custom_order: -1,\n style: { display: isFetching ? 'none' : '' },\n Expander: ({ isExpanded, original }) => \n }, {\n Header: () => ((!group_by || !isPivot) && ),\n id: 'selected',\n accessor: 'Selected',\n show: true,\n sortable: false,\n resizable: false,\n maxWidth: 55,\n minWidth: 55,\n headerStyle: { overflow: 'visible' },\n style: { display: 'flex' },\n Cell: (rowInfo) => (!group_by || !isPivot) && !isFetching && (!isFetchingExpandedData || hasGroupedData) && \n }, {\n Header: () => ,\n headerClassName: 'hideSortIcon',\n id: 'severity',\n accessor: 'severity',\n show: fields.severity.visible && (!group_by || group_by !== 'severity'),\n sortable: !group_by,\n resizable: false,\n maxWidth: 55,\n minWidth: 55,\n Cell: (rowInfo) => (showSkeleton ? : (!isPivot || !group_by) && ),\n custom_order: fields.severity.order\n }, {\n Header: () => ,\n headerClassName: 'hideSortIcon',\n id: 'confirmed',\n accessor: 'confirmed',\n show: fields.confirmed.visible,\n sortable: !group_by,\n resizable: false,\n maxWidth: 45,\n minWidth: 45,\n Cell: (rowInfo) => (showSkeleton ? : (!isPivot || !group_by) && ),\n custom_order: fields.confirmed.order\n }, {\n Header: () =>
,\n id: 'name',\n accessor: 'name',\n show: fields.name.visible,\n sortable: !group_by,\n resizable: !group_by,\n maxWidth: group_by ? fields.name.defaultMin : fields.name.maxWidth,\n minWidth: fields.name.minWidth,\n getProps: (state, rowInfo) => {\n const index = get(rowInfo, 'index', 0);\n const selected = get(state, 'selected', 0);\n if (index !== selected) return ({ className: `column_name min-wd-${fields.name.defaultMin} ${extendFieldName ? '' : `max-wd-${fields.name.maxWidth}`}` });\n return ({ className: `min-wd-${fields.name.defaultMin} ${extendFieldName ? '' : `max-wd-${fields.name.maxWidth}`}` });\n },\n custom_order: fields.name.order,\n Cell: (rowInfo) => \n }, {\n Header: () =>
,\n id: 'service__name',\n show: fields.service__name.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: !group_by,\n resizable: !group_by,\n maxWidth: group_by ? fields.service__name.defaultMin : fields.service__name.maxWidth,\n minWidth: fields.service__name.minWidth,\n Cell: (rowInfo) => (\n showSkeleton ? : rowInfo.original.service ? `(${rowInfo.original.service.ports}/${rowInfo.original.service.protocol}) ${rowInfo.original.service.name}` : ''\n ),\n getProps: () => ({ className: `min-wd-${fields.service__name.defaultMin}` }),\n custom_order: fields.service__name.order\n }, {\n Header: () =>
,\n id: 'target',\n accessor: 'asset',\n show: fields.asset.visible && !(showVulnDetail && currentBreakpoint === 'second') && group_by !== 'cve_instances__name',\n sortable: !group_by,\n resizable: !group_by,\n maxWidth: group_by ? fields.asset.defaultMin : fields.asset.maxWidth,\n minWidth: fields.asset.minWidth,\n // eslint-disable-next-line no-negated-condition\n getProps: (state, rowInfo) => (rowInfo.index !== state.selected ? { className: `column_target min-wd-${fields.asset.defaultMin}` } : { className: `min-wd-${fields.asset.defaultMin}` }),\n custom_order: fields.asset.order,\n Cell: (rowInfo) => \n }, {\n Header: () =>
,\n id: 'cvss',\n accessor: 'cvss',\n show: fields.cvss.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: false,\n resizable: !group_by,\n maxWidth: group_by ? fields.cvss.defaultMin : fields.cvss.maxWidth,\n minWidth: fields.cvss.minWidth,\n custom_order: fields.cvss.order,\n Cell: (rowInfo) => {\n if (!rowInfo.original.cvss3) return null;\n return <>{rowInfo.original.cvss3.base_score || rowInfo.original.cvss3.base_score};\n },\n getProps: () => ({ className: `min-wd-${fields.cvss.defaultMin}` })\n }, {\n Header: () =>
,\n id: 'cve',\n accessor: 'cve',\n show: fields.cve.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: false,\n resizable: !group_by,\n maxWidth: group_by ? fields.cve.defaultMin : fields.cve.maxWidth,\n minWidth: fields.cve.minWidth,\n Cell: (rowInfo) => ,\n getProps: () => ({ className: `min-wd-${fields.cve.defaultMin}` }),\n custom_order: fields.cve.order\n }, {\n Header: () =>
,\n id: 'cwe',\n accessor: 'cwe',\n show: fields.cwe.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: false,\n resizable: !group_by,\n maxWidth: group_by ? fields.cwe.defaultMin : fields.cwe.maxWidth,\n minWidth: fields.cwe.minWidth,\n custom_order: fields.cwe.order,\n Cell: (rowInfo) => {\n if (!rowInfo.original.cwe) return null;\n return <>{rowInfo.original.cwe.map(el => (<>{el} ))};\n },\n getProps: () => ({ className: `min-wd-${fields.cwe.defaultMin}` })\n }, {\n Header: () =>
,\n id: 'description',\n accessor: 'description',\n show: fields.description.visible && (!(showVulnDetail && currentBreakpoint === 'second') || (showVulnDetail && currentBreakpoint === 'second' && group_by === 'name')) && (!group_by || group_by !== 'description'),\n sortable: !group_by,\n resizable: !group_by,\n maxWidth: group_by ? fields.description.defaultMin : fields.description.maxWidth,\n minWidth: fields.description.minWidth,\n getProps: () => ({ className: `min-wd-${fields.description.defaultMin}` }),\n custom_order: fields.description.order,\n Cell: (rowInfo) => \n }, {\n Header: () =>
,\n id: 'data',\n accessor: 'data',\n show: fields.data.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: !group_by,\n resizable: !group_by,\n maxWidth: group_by ? fields.data.defaultMin : fields.data.maxWidth,\n minWidth: fields.data.minWidth,\n getProps: () => ({ className: `min-wd-${fields.data.defaultMin}` }),\n custom_order: fields.data.order,\n Cell: (rowInfo) => \n }, {\n Header: () =>
,\n id: 'id',\n accessor: '_id',\n show: fields.id.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: !group_by,\n resizable: !group_by,\n maxWidth: group_by ? fields.id.defaultMin : fields.id.maxWidth,\n minWidth: fields.id.minWidth,\n getProps: () => ({ className: `min-wd-${fields.id.defaultMin}` }),\n custom_order: fields.id.order,\n Cell: (rowInfo) => \n }, {\n Header: () =>
,\n id: 'host__os',\n accessor: 'host_os',\n show: fields.host__os.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: !group_by,\n resizable: !group_by,\n maxWidth: group_by ? fields.host__os.defaultMin : fields.host__os.maxWidth,\n minWidth: fields.host__os.minWidth,\n getProps: () => ({ className: `min-wd-${fields.host__os.defaultMin}` }),\n custom_order: fields.host__os.order,\n Cell: (rowInfo) => \n }, {\n Header: () =>
,\n id: 'resolution',\n accessor: 'resolution',\n show: fields.resolution.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: !group_by,\n resizable: !group_by,\n maxWidth: group_by ? fields.resolution.defaultMin : fields.resolution.maxWidth,\n minWidth: fields.resolution.minWidth,\n getProps: () => ({ className: `min-wd-${fields.resolution.defaultMin}` }),\n custom_order: fields.resolution.order,\n Cell: (rowInfo) => \n }, {\n Header: () =>
,\n id: 'easeofresolution',\n accessor: 'easeofresolution',\n show: fields.easeofresolution.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: !group_by,\n resizable: !group_by,\n maxWidth: group_by ? fields.easeofresolution.defaultMin : fields.easeofresolution.maxWidth,\n minWidth: fields.easeofresolution.minWidth,\n getProps: () => ({ className: `min-wd-${fields.easeofresolution.defaultMin}` }),\n custom_order: fields.easeofresolution.order,\n Cell: (rowInfo) => \n }, {\n Header: () =>
,\n id: 'website',\n accessor: 'website',\n show: fields.website.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: false,\n resizable: !group_by,\n maxWidth: group_by ? fields.website.defaultMin : fields.website.maxWidth,\n minWidth: fields.website.minWidth,\n getProps: () => ({ className: `min-wd-${fields.website.defaultMin}` }),\n custom_order: fields.website.order,\n Cell: (rowInfo) => \n }, {\n Header: () =>
,\n id: 'path',\n accessor: 'path',\n show: fields.path.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: false,\n resizable: !group_by,\n maxWidth: group_by ? fields.path.defaultMin : fields.path.maxWidth,\n minWidth: fields.path.minWidth,\n getProps: () => ({ className: `min-wd-${fields.path.defaultMin}` }),\n custom_order: fields.path.order,\n Cell: (rowInfo) => \n }, {\n Header: () =>
,\n id: 'status_code',\n accessor: 'status_code',\n show: fields.status_code.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: !group_by,\n resizable: !group_by,\n maxWidth: group_by ? fields.status_code.defaultMin : fields.status_code.maxWidth,\n minWidth: fields.status_code.minWidth,\n getProps: () => ({ className: `min-wd-${fields.status_code.defaultMin}` }),\n custom_order: fields.status_code.order,\n Cell: (rowInfo) => \n }, {\n Header: () =>
,\n id: 'request',\n accessor: 'request',\n show: fields.request.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: false,\n resizable: !group_by,\n maxWidth: group_by ? fields.request.defaultMin : fields.request.maxWidth,\n minWidth: fields.request.minWidth,\n getProps: () => ({ className: `min-wd-${fields.request.defaultMin}` }),\n custom_order: fields.request.order,\n Cell: (rowInfo) => \n }, {\n Header: () =>
,\n id: 'references',\n accessor: 'references',\n show: fields.references.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: false,\n resizable: !group_by,\n maxWidth: group_by ? fields.references.defaultMin : fields.references.maxWidth,\n minWidth: fields.references.minWidth,\n Cell: (rowInfo) => (\n showSkeleton\n ? \n : (\n
\n {rowInfo.original.refs ? rowInfo.original.refs.map((reference, i) => {reference.name ? reference.name : reference}) : null}\n
\n )\n ),\n getProps: () => ({ className: `min-wd-${fields.references.defaultMin}` }),\n custom_order: fields.references.order\n }, {\n Header: () =>
,\n id: 'hostnames',\n accessor: 'hostnames',\n show: fields.hostnames.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: false,\n resizable: !group_by,\n maxWidth: group_by ? fields.hostnames.defaultMin : fields.hostnames.maxWidth,\n minWidth: fields.hostnames.minWidth,\n Cell: (rowInfo) => {\n const hostnames = get(rowInfo, 'original.hostnames', []);\n return (\n showSkeleton\n ? \n :
{hostnames.join(', ')}
\n );\n },\n getProps: () => ({ className: `min-wd-${fields.hostnames.defaultMin}` }),\n custom_order: fields.hostnames.order\n }, {\n Header: () =>
,\n id: 'impact',\n show: fields.impact.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: false,\n resizable: !group_by,\n maxWidth: group_by ? fields.impact.defaultMin : fields.impact.maxWidth,\n minWidth: fields.impact.minWidth,\n Cell: (rowInfo) => ,\n getProps: () => ({ className: `min-wd-${fields.impact.defaultMin}` }),\n custom_order: fields.impact.order\n }, {\n Header: () =>
,\n id: 'method',\n accessor: 'method',\n show: fields.method.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: false,\n resizable: !group_by,\n maxWidth: group_by ? fields.method.defaultMin : fields.method.maxWidth,\n minWidth: fields.method.minWidth,\n getProps: () => ({ className: `min-wd-${fields.method.defaultMin}` }),\n custom_order: fields.method.order,\n Cell: (rowInfo) => \n }, {\n Header: () =>
,\n id: 'params',\n accessor: 'params',\n show: fields.params.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: false,\n resizable: !group_by,\n maxWidth: group_by ? fields.params.defaultMin : fields.params.maxWidth,\n minWidth: fields.params.minWidth,\n getProps: () => ({ className: `min-wd-${fields.params.defaultMin}` }),\n custom_order: fields.params.order,\n Cell: (rowInfo) => \n }, {\n Header: () =>
,\n id: 'query',\n accessor: 'query',\n show: fields.query.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: false,\n resizable: !group_by,\n maxWidth: group_by ? fields.query.defaultMin : fields.query.maxWidth,\n minWidth: fields.query.minWidth,\n getProps: () => ({ className: `min-wd-${fields.query.defaultMin}` }),\n custom_order: fields.query.order,\n Cell: (rowInfo) => \n }, {\n Header: () =>
,\n id: 'evidence',\n accessor: 'evidence',\n show: fields.evidence.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: false,\n resizable: !group_by,\n maxWidth: group_by ? fields.evidence.defaultMin : fields.evidence.maxWidth,\n minWidth: fields.evidence.minWidth,\n getProps: () => ({ className: `min-wd-${fields.evidence.defaultMin}` }),\n custom_order: fields.evidence.order,\n Cell: (rowInfo) => \n }, {\n Header: () =>
,\n id: 'response',\n accessor: 'response',\n show: fields.response.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: false,\n resizable: !group_by,\n maxWidth: group_by ? fields.response.defaultMin : fields.response.maxWidth,\n minWidth: fields.response.minWidth,\n getProps: () => ({ className: `min-wd-${fields.response.defaultMin}` }),\n custom_order: fields.response.order,\n Cell: (rowInfo) => \n }, {\n Header: () =>
,\n id: 'type',\n accessor: 'type',\n show: fields.web.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: !group_by,\n resizable: !group_by,\n maxWidth: group_by ? fields.web.defaultMin : fields.web.maxWidth,\n minWidth: fields.web.minWidth,\n Cell: (rowInfo) => {\n if (showSkeleton) return ;\n if (group_by) return null;\n if (rowInfo.original.type === 'VulnerabilityWeb') return ;\n return ;\n },\n getProps: () => ({ className: `min-wd-${fields.web.defaultMin}` }),\n custom_order: fields.web.order\n }, {\n Header: () =>
,\n id: 'tool',\n accessor: 'metadata.tool',\n show: fields.tool.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: !group_by,\n resizable: !group_by,\n maxWidth: group_by ? fields.tool.defaultMin : fields.tool.maxWidth,\n minWidth: fields.tool.minWidth,\n getProps: () => ({ className: `min-wd-${fields.tool.defaultMin}` }),\n custom_order: fields.tool.order,\n Cell: (rowInfo) => \n }, {\n Header: () =>
,\n id: 'policyviolations',\n accessor: 'policyviolations',\n show: fields.policyviolations.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: false,\n resizable: !group_by,\n maxWidth: group_by ? fields.policyviolations.defaultMin : fields.policyviolations.maxWidth,\n minWidth: fields.policyviolations.minWidth,\n getProps: () => ({ className: `min-wd-${fields.policyviolations.defaultMin}` }),\n custom_order: fields.policyviolations.order,\n Cell: (rowInfo) => \n }, {\n Header: () =>
,\n id: 'external_id',\n accessor: 'external_id',\n show: fields.external_id.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: !group_by,\n resizable: !group_by,\n maxWidth: group_by ? fields.external_id.defaultMin : fields.external_id.maxWidth,\n minWidth: fields.external_id.minWidth,\n getProps: () => ({ className: `min-wd-${fields.external_id.defaultMin}` }),\n custom_order: fields.external_id.order,\n Cell: (rowInfo) => \n }, {\n Header: () =>
,\n id: 'create_date',\n show: fields.create_date.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: !group_by,\n resizable: !group_by,\n maxWidth: group_by ? fields.create_date.defaultMin : fields.create_date.maxWidth,\n minWidth: fields.create_date.minWidth,\n Cell: (rowInfo) => (showSkeleton ? : rowInfo.original.date ? : null),\n getProps: () => ({ className: `min-wd-${fields.create_date.defaultMin}` }),\n custom_order: fields.create_date.order\n }, {\n Header: () =>
,\n id: 'update_date',\n show: fields.update_date.visible && !(showVulnDetail && currentBreakpoint === 'second'),\n sortable: !group_by,\n resizable: !group_by,\n maxWidth: group_by ? fields.update_date.defaultMin : fields.update_date.maxWidth,\n minWidth: fields.update_date.minWidth,\n Cell: (rowInfo) => {\n const updateTime = get(rowInfo, 'original.metadata.update_time', null);\n if (showSkeleton) return ;\n if (!updateTime) return null;\n return ;\n },\n getProps: () => ({ className: `min-wd-${fields.update_date.defaultMin}` }),\n custom_order: fields.update_date.order\n }, {\n Header: () =>
,\n id: 'status',\n accessor: 'status',\n show: fields.status.visible && !(showVulnDetail && currentBreakpoint === 'second') && (!group_by || group_by !== 'status'),\n sortable: !group_by,\n resizable: !group_by,\n maxWidth: group_by ? fields.status.defaultMin : fields.status.maxWidth,\n minWidth: fields.status.minWidth,\n Cell: (rowInfo) => ,\n getProps: (state, rowInfo) => (rowInfo.original.status === 'open' ? { 'className': `open min-wd-${fields.status.defaultMin}`, 'column-type': 'status' } : { 'className': `${rowInfo.original.status} min-wd-${fields.status.defaultMin}`, 'column-type': 'status' }),\n custom_order: fields.status.order\n }\n ];\n\n if (customFields) {\n customFields.forEach((cf) => {\n if (fields[cf.field_display_name] && fields[cf.field_display_name].visible && !(showVulnDetail && currentBreakpoint === 'second')) {\n columns.push({\n Header: () =>
,\n id: cf.field_name,\n show: true,\n sortable: false,\n resizable: false,\n maxWidth: 200,\n minWidth: 200,\n custom_order: fields[cf.field_display_name].order,\n Cell: (rowInfo) => (\n showSkeleton ? :

{rowInfo.original.custom_fields && !group_by ? rowInfo.original.custom_fields[cf.field_name] : ''}

\n )\n });\n }\n });\n }\n\n const ordered_columns = columns.filter((row, index) => row.show === true || index === 0).sort((a, b) => (a.custom_order < b.custom_order ? -1 : 1));\n return ordered_columns;\n}\n","import get from 'lodash/get';\n\nconst parseId = (id) => {\n if (id === '_id') return 'id';\n if (id === 'service__name') return 'service';\n if (id === 'create_date') return 'created';\n return id;\n};\n\n// Saves field width when user resize column\nexport const handleResizedChange = (changes, fields, pSetFieldWidth) => {\n changes.forEach((change) => {\n const id = parseId(change.id);\n const field = get(fields, id, null);\n const newValue = get(change, 'value', 0);\n const defaultMin = get(field, 'defaultMin', 0);\n const roundedValue = Math.abs(Math.round(newValue));\n\n if (!field) return;\n if (roundedValue >= defaultMin) pSetFieldWidth(id, roundedValue);\n else pSetFieldWidth(id, defaultMin);\n });\n return false;\n};\n\n// Set styles and events for rows\nexport const getTrProps = (rowInfo, vulnsSelected, selectVuln, unSelectAll, showContextMenu, isFetching) => {\n const selected = vulnsSelected.find((vuln) => vuln._id === rowInfo.original._id);\n if (rowInfo && rowInfo.row) {\n return {\n onContextMenu: (e) => {\n e.preventDefault();\n showContextMenu(true, e.pageX, e.pageY);\n if (!selected && !isFetching) {\n unSelectAll();\n selectVuln(rowInfo.original);\n }\n },\n style: {\n background: selected ? '#edf2f7' : 'transparent'\n },\n className: selected ? 'selected' : 'test-table-selector'\n };\n }\n return {};\n};\n\n// Set width and styles for table header\nexport const getThProps = (column, fields, currentBreakpoint, showVulnDetail, showContextMenu, isDisplayingContextMenu) => {\n const extendFieldName = (showVulnDetail && currentBreakpoint === 'second');\n const defaultMin = fields[column.id] ? fields[column.id].defaultMin : 0;\n const response = { minWidth: defaultMin };\n\n if (column.id === 'name') response.maxWidth = extendFieldName ? '' : `max-wd-${fields.name.maxWidth}`;\n\n return {\n style: defaultMin ? response : {},\n className: column.id === 'expander' ? `display-none ${extendFieldName ? '' : `max-wd-${fields.name.maxWidth}`}` : `${extendFieldName ? '' : `max-wd-${fields.name.maxWidth}`}`,\n onContextMenu: (e) => {\n e.preventDefault();\n if (isDisplayingContextMenu) showContextMenu(false);\n }\n };\n};\n","import React from 'react';\nimport CustomReactTable from 'Common/Components/CustomReactTable/styled';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { withBreakpoints } from 'react-breakpoints';\nimport {\n selectVulnsSelected,\n selectIsFetchingExpandedData,\n selectVulnsGroupedData\n} from 'store/Manage/selectors';\nimport {\n showContextMenu,\n selectRow,\n unSelectAll\n} from 'store/Manage/actions';\nimport { PropTypes } from 'prop-types';\nimport get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport { getTrProps } from '../../Functions';\n\nconst SubTable = ({ getColumns, row }) => {\n const dispatch = useDispatch();\n const rowCount = get(row, 'original.count', 0);\n const vulnsSelected = useSelector(selectVulnsSelected);\n const isFetchingExpandedData = useSelector(selectIsFetchingExpandedData);\n const groupedData = useSelector((state) => selectVulnsGroupedData(state, row.index));\n\n const selectRowAction = (row) => dispatch(selectRow({}, row));\n const unSelectAllAction = (row) => dispatch(unSelectAll({}, row));\n const showContextMenuAction = (value, xPos, yPos) => dispatch(showContextMenu(value, xPos, yPos));\n\n const hasGroupedData = !isEmpty(groupedData);\n const emptyState = isFetchingExpandedData ? [''] : [];\n\n return (\n null }\n getTrProps={ (_, rowInfo) => getTrProps(rowInfo, vulnsSelected, selectRowAction, unSelectAllAction, showContextMenuAction) }\n />\n );\n};\n\nSubTable.propTypes = {\n getColumns: PropTypes.func.isRequired,\n row: PropTypes.object.isRequired\n};\n\nexport default withBreakpoints(SubTable);\n","import styled from 'styled-components';\n\nconst EmptyWrapper = styled.div`\n margin: 0px auto auto auto;\n`;\nEmptyWrapper.displayName = 'EmptyWrapper';\n\nexport default EmptyWrapper;\n","import React, { useState } from 'react';\nimport EmptyVulns from 'Common/Components/EmptyVulns';\nimport empty from 'Images/empty-vulns.png';\nimport ImportFileCreationModal from 'Screens/ManageEditCreate/components/ImportFileCreationModal';\nimport ManualCreationModal from 'Screens/ManageEditCreate/components/ManualCreationModal';\nimport EmptyWrapper from './styled';\n\nconst EmptyState = () => {\n const [showModalUploadVulns, setShowModalUploadVulns] = useState(false);\n const [showModalCreateVuln, setShowModalCreateVuln] = useState(false);\n\n return (\n \n setShowModalUploadVulns(true) } toggleModalCreateVuln={ () => setShowModalCreateVuln(true) } />\n setShowModalUploadVulns(false) } />\n setShowModalCreateVuln(false) } />\n \n );\n};\n\nexport default EmptyState;\n","import React, { useState, useEffect } from 'react';\nimport CustomReactTable from 'Common/Components/CustomReactTable/styled';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport debounce from 'lodash/debounce';\nimport { withBreakpoints } from 'react-breakpoints';\nimport {\n selectVulnsSelected,\n selectVulnsList,\n selectIsFetching,\n selectIsFetchingExpandedData,\n selectShowDetail\n} from 'store/Manage/selectors';\nimport { setOrderByVulns, expandGroupByVulns } from 'store/Manage/filterActions';\nimport { selectGroupByField, selectFilters, selectIsFiltering } from 'store/Filters/selectors';\nimport { selectCustomAttributes } from 'store/CustomAttributes/selectors';\nimport { selectManageFields } from 'store/Preferences/manage/selectors';\nimport {\n showContextMenu,\n selectRow,\n unSelectAll\n} from 'store/Manage/actions';\nimport { setFieldWidth } from 'store/Preferences/manage/actions';\nimport { PropTypes } from 'prop-types';\nimport selectTourFinished from 'store/Preferences/Tour/selectors';\nimport getColumns from './columns/Columns';\nimport { handleResizedChange, getThProps, getTrProps } from './Functions';\nimport SubTable from './components/SubTable';\nimport EmptyState from './components/EmptyState';\nimport { selectTotalVulns } from 'store/Workspace/selectors';\n\nconst Table = ({ currentBreakpoint }) => {\n const dispatch = useDispatch();\n const [expanded, setExpanded] = useState([]);\n\n const vulnsCount = useSelector(selectTotalVulns);\n const tourFinished = useSelector(selectTourFinished);\n const groupByField = useSelector((state) => selectGroupByField('vulns', state));\n const customFields = useSelector(selectCustomAttributes);\n const showVulnDetail = useSelector(selectShowDetail);\n const vulnsSelected = useSelector(selectVulnsSelected);\n const isFetching = useSelector(selectIsFetching);\n const isFetchingExpandedData = useSelector(selectIsFetchingExpandedData);\n const data = useSelector(selectVulnsList);\n const fields = useSelector(selectManageFields);\n const filters = useSelector((state) => selectFilters('vulns', state));\n const isFiltering = useSelector((state) => selectIsFiltering('vulns', state));\n\n const noDataText = isFetching ? '' : ;\n const columns = getColumns(true, customFields, showVulnDetail, currentBreakpoint, groupByField, fields, isFetching, isFetchingExpandedData);\n const subTableColumns = (hasGroupedData) => getColumns(false, customFields, showVulnDetail, currentBreakpoint, groupByField, fields, isFetching, isFetchingExpandedData, hasGroupedData);\n\n const selectRowAction = (row) => dispatch(selectRow({}, row));\n const unSelectAllAction = (row) => dispatch(unSelectAll({}, row));\n const setFieldWidthAction = (field, value) => dispatch(setFieldWidth(field, value, 'manage_table'));\n const showContextMenuAction = (value, xPos, yPos) => dispatch(showContextMenu(value, xPos, yPos));\n\n const onExpandedChange = (expanded, index) => {\n if (expanded[index]) {\n const expandData = data[index];\n dispatch(expandGroupByVulns(index, expandData));\n }\n setExpanded(expanded);\n };\n\n const handleResizeColumn = (newResized) => !groupByField && handleResizedChange(newResized, fields, setFieldWidthAction);\n\n const fetchData = (tableState) => !isFetching && dispatch(setOrderByVulns(tableState.sorted));\n\n useEffect(() => {\n setExpanded([]);\n }, [groupByField, filters]);\n\n const mockData = [...Array(15).keys()];\n\n if (!groupByField && tourFinished && vulnsCount === 0 && !isFetching && !isFiltering) return ;\n return (\n getTrProps(rowInfo, vulnsSelected, selectRowAction, unSelectAllAction, showContextMenuAction, isFetching) }\n getTheadThProps={ (_, __, column) => getThProps(column, fields, currentBreakpoint, showVulnDetail, showContextMenuAction, showContextMenu) }\n onResizedChange={ debounce(handleResizeColumn, 200) }\n expanded={ expanded }\n onExpandedChange={ onExpandedChange }\n noDataText={ noDataText }\n SubComponent={ (row) => }\n />\n );\n};\n\nTable.propTypes = {\n currentBreakpoint: PropTypes.string.isRequired\n};\n\nexport default withBreakpoints(Table);\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n user-select: none;\n margin-bottom: 15px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Icon = styled.img`\n margin-right: 14px;\n font-size: 24px;\n position: relative;\n bottom: 5px;\n display: inline-block;\n width: 26px;\n height: 24px;\n vertical-align: bottom;\n`;\nIcon.displayName = 'Icon';\n\nexport const Title = styled.div`\n color: ${colors.datk2};\n font-weight: 500;\n font-size: 21.5px;\n display: inline-block;\n`;\nTitle.displayName = 'Title';\n","import React from 'react';\nimport Warning from 'Images/warning-delete.svg';\nimport { useSelector } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport { selectVulnsSelected } from 'store/Manage/selectors';\nimport {\n Wrapper, Icon, Title\n} from './styled';\n\nconst BulkTitle = () => {\n const vulnsSelected = useSelector(selectVulnsSelected);\n const selectedVulnsCount = vulnsSelected.length;\n\n return (\n \n \n \n { selectedVulnsCount > 1 ? <FormattedMessage id=\"vulns.edit.bulkTitle\" /> : <FormattedMessage id=\"vulns.edit.title\" /> }\n \n \n );\n};\n\nexport default BulkTitle;\n","import styled from 'styled-components';\n\nconst ButtonsContainer = styled.div`\n flex: 0 0 34px;\n display: flex;\n justify-content: flex-end;\n margin-top: 20px;\n & :not(:last-child) {\n margin-right: 10px;\n }\n`;\nButtonsContainer.displayName = 'ButtonsContainer';\n\nexport default ButtonsContainer;\n","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { Accept, Cancel } from 'Common/Components/Button/styled';\nimport {\n selectModalBulkUpdateField, selectModalBulkUpdateValue,\n selectVulnsSelected\n} from 'store/Manage/selectors';\nimport { MODAL_MANAGE_BULK_UPDATE, MODAL_MANAGE_BULK_UPDATE_CONFIRMATION } from 'store/modals/modals';\nimport { closeModal, openModal } from 'store/modals/actions';\nimport { bulkUpdateVulns } from 'store/Manage/actions';\nimport { useIntl } from 'react-intl';\nimport ButtonsContainer from './styled';\n\nconst SubmitButtons = () => {\n const dispatch = useDispatch();\n const intl = useIntl();\n\n const cancelLabel = intl.formatMessage({ id: 'common.components.button.cancel' });\n const saveLabel = intl.formatMessage({ id: 'common.components.button.save' });\n\n const bulkUpdateField = useSelector(selectModalBulkUpdateField);\n const bulkUpdateValue = useSelector(selectModalBulkUpdateValue);\n\n const vulnsSelected = useSelector(selectVulnsSelected);\n const selectedVulnsCount = vulnsSelected.length;\n\n const handleClose = () => dispatch(closeModal(MODAL_MANAGE_BULK_UPDATE));\n\n const handleSubmit = (e) => {\n e.preventDefault();\n if (selectedVulnsCount > 1) dispatch(openModal(MODAL_MANAGE_BULK_UPDATE_CONFIRMATION));\n else dispatch(bulkUpdateVulns(bulkUpdateValue));\n };\n\n return (\n \n \n \n \n\n );\n};\n\nexport default SubmitButtons;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n z-index: 99999;\n width: 100%;\n height: 100%;\n display:flex;\n align-items: center;\n justify-content: center;\n background-color: rgba(0,0,0,0.5);\n `;\nWrapper.displayName = 'Wrapper';\n\nexport const ModalContent = styled.div`\n display: flex;\n flex-direction: column;\n min-width: 500px;\n padding: 27px 33px;\n box-shadow: 0 2px 50px 0 rgba(0, 0, 0, 0.24);\n border-radius: 2px;\n border-top: 10px solid ${colors.softBlue};\n background-color: #fafbfc;\n`;\nModalContent.displayName = 'ModalContent';\n\nexport const EditorWrapper = styled.div`\n flex: 1 1 0px;\n`;\nEditorWrapper.displayName = 'EditorWrapper';\n","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { selectModalBulkUpdateField, selectModalBulkUpdateValue } from 'store/Manage/selectors';\nimport { setBulkUpdateValue } from 'store/Manage/actions';\nimport MarkdownEditor from 'Common/Components/v2/MarkdownEditor';\n\nconst BulkMarkdownEditor = () => {\n const dispatch = useDispatch();\n const bulkUpdateField = useSelector(selectModalBulkUpdateField);\n const bulkUpdateValue = useSelector(selectModalBulkUpdateValue);\n\n return (\n dispatch(setBulkUpdateValue(value)) }\n value={ bulkUpdateValue }\n />\n );\n};\n\nexport default BulkMarkdownEditor;\n","import React, { useState, useEffect, useRef } from 'react';\nimport PropType from 'prop-types';\nimport {\n Input, Title, Wrapper, Asterisk, Texts, ErrorMessage, Warning\n} from 'Common/Components/StandardTextField/styled';\nimport debounce from 'lodash/debounce';\nimport get from 'lodash/get';\n\nconst DebouncedInput = ({\n focusOnMount, value, name, disabled, onChange,\n placeholder, title, mandatory, error, errorMessage,\n className, boldTitle, type, min, max, step\n}) => {\n const [fieldValue, setFieldValue] = useState('');\n const inputRef = useRef(null);\n\n useEffect(() => {\n const currentRef = get(inputRef, 'current', null);\n if (focusOnMount && currentRef) currentRef.focus();\n }, [focusOnMount]);\n\n useEffect(() => {\n setFieldValue(value);\n }, [value]);\n\n const updateName = useRef(debounce((v) => {\n if (name) onChange(v);\n }, 250));\n\n const handleChange = (e) => {\n const v = e.target.value;\n setFieldValue(v);\n updateName.current(v);\n };\n\n return (\n \n \n {title && {title}}\n {mandatory && *}\n \n \n {error && }\n {error && { errorMessage }}\n \n\n );\n};\nDebouncedInput.defaultProps = {\n disabled: false,\n placeholder: '',\n value: '',\n mandatory: false,\n error: false,\n className: '',\n boldTitle: false,\n type: 'text',\n title: '',\n min: '',\n max: '',\n step: '',\n errorMessage: '',\n focusOnMount: false\n};\n\nDebouncedInput.propTypes = {\n value: PropType.string,\n name: PropType.string.isRequired,\n disabled: PropType.bool,\n onChange: PropType.func.isRequired,\n placeholder: PropType.string,\n mandatory: PropType.bool,\n error: PropType.bool,\n boldTitle: PropType.bool,\n className: PropType.string,\n type: PropType.string,\n title: PropType.string,\n min: PropType.number,\n max: PropType.number,\n step: PropType.number,\n errorMessage: PropType.string,\n focusOnMount: PropType.bool\n};\n\nexport default DebouncedInput;\n","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport DebouncedInput from 'Common/Components/v2/DebouncedInput';\nimport { setBulkUpdateValue } from 'store/Manage/actions';\nimport { selectModalBulkUpdateValue } from 'store/Manage/selectors';\n\nconst NameInput = () => {\n const dispatch = useDispatch();\n const bulkUpdateValue = useSelector(selectModalBulkUpdateValue);\n\n const onChange = (value) => dispatch(setBulkUpdateValue(value));\n\n return (\n \n );\n};\n\nexport default NameInput;\n","import React, { useState } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport CustomList from 'Common/Components/CustomList';\nimport { selectModalBulkUpdateField, selectModalBulkUpdateValue } from 'store/Manage/selectors';\nimport { addBulkUpdateValue, removeBulkUpdateValue } from 'store/Manage/actions';\n\nconst ItemList = () => {\n const [newItem, setNewItem] = useState('');\n const dispatch = useDispatch();\n const bulkUpdateField = useSelector(selectModalBulkUpdateField);\n const bulkUpdateValue = useSelector(selectModalBulkUpdateValue);\n\n const addItem = () => {\n if (newItem) {\n dispatch(addBulkUpdateValue(newItem));\n setNewItem('');\n }\n };\n\n return (\n dispatch(removeBulkUpdateValue(bulkUpdateValue[index])) }\n setItem={ setNewItem }\n listData={ bulkUpdateValue }\n responsive\n />\n );\n};\n\nexport default ItemList;\n","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport Impacts from 'Common/Components/Impacts';\nimport { selectModalBulkUpdateValue } from 'store/Manage/selectors';\nimport {\n addBulkUpdateValue,\n removeBulkUpdateValue\n} from 'store/Manage/actions';\n\nconst Impact = () => {\n const dispatch = useDispatch();\n const bulkUpdateValue = useSelector(selectModalBulkUpdateValue);\n const isChecked = (impactType) => bulkUpdateValue.includes(impactType);\n const selectField = (field) => {\n if (isChecked(field)) dispatch(removeBulkUpdateValue(field));\n else dispatch(addBulkUpdateValue(field));\n };\n\n return (\n \n );\n};\n\nexport default Impact;\n","import React from 'react';\nimport BulkMarkdownEditor from './BulkMarkdownEditor';\nimport NameInput from './NameInput';\nimport ItemList from './ItemList';\nimport Impact from './Impact';\n\nconst BULK_UPDATE_COMPONENTS = {\n 'description': ,\n 'data': ,\n 'resolution': ,\n 'request': ,\n 'response': ,\n 'name': ,\n 'references': ,\n 'impact': ,\n 'policy violations': \n};\n\nexport default BULK_UPDATE_COMPONENTS;\n","import React, { useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { selectModalBulkUpdateField } from 'store/Manage/selectors';\nimport selectModal from 'store/modals/selectors';\nimport { MODAL_MANAGE_BULK_UPDATE } from 'store/modals/modals';\nimport { setBulkUpdateValue, setBulkUpdateField } from 'store/Manage/actions';\nimport get from 'lodash/get';\nimport BulkTitle from './components/BulkTitle';\nimport SubmitButtons from './components/SubmitButtons';\nimport { ModalContent, Wrapper, EditorWrapper } from './styled';\nimport BULK_UPDATE_COMPONENTS from './components/components';\n\nconst BulkUpdateModal = () => {\n const dispatch = useDispatch();\n\n const bulkUpdateField = useSelector(selectModalBulkUpdateField);\n const showModal = useSelector((state) => selectModal(state, MODAL_MANAGE_BULK_UPDATE));\n const bulkUpdateComponent = get(BULK_UPDATE_COMPONENTS, bulkUpdateField, null);\n\n useEffect(() => () => {\n dispatch(setBulkUpdateValue(''));\n dispatch(setBulkUpdateField(''));\n }, [dispatch]);\n\n if (!showModal) return null;\n return (\n \n \n \n \n { bulkUpdateComponent }\n \n \n \n \n );\n};\n\nexport default BulkUpdateModal;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n height: 40px;\n background-color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n border-bottom: 1px solid #e9e9e9;\n `;\n\nexport const Text = styled.p`\ncolor: #53686f;\nfont-size: 14.5px;\n`;\n\nexport const Bold = styled.b`\nfont-weight: 600;\n`;\nexport const Blue = styled.span`\ncolor: #0082ed;\nfont-size: 14.5px;\n font-weight: 500;\n margin-left: 12px;\n cursor: pointer;\n padding: 6px 12px;\n\n &:hover{\n border-radius: 2px;\n background-color:rgba(0,130,237, 0.06);\n}\n`;\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectIsFiltering, selectRowsPerPage } from 'store/Filters/selectors';\nimport { selectTotalVulns, unSelectAll, unselectTotalVulns } from 'store/Manage/actions';\nimport { allVulnsAreSelected, selectSelectAll, selectVulnsCount, selectVulnsSelected } from 'store/Manage/selectors';\nimport { Wrapper, Text, Blue, Bold } from './styled';\n\nconst SelectAll = () => {\n const dispatch = useDispatch();\n const allVisualVulnsSelected = useSelector(allVulnsAreSelected);\n const vulnPageLimit = useSelector((state) => selectRowsPerPage('vulns', state));\n const selectAll = useSelector(selectSelectAll);\n const vulnsSelected = useSelector(selectVulnsSelected);\n const vulnCount = useSelector(selectVulnsCount);\n const isFiltering = useSelector(state => selectIsFiltering('vulns', state));\n // All 50 Vulnerabilities on this page are selected. Select all 302 Vulnerabilities in Workspace\n // All 302 Vulnerabilities on this Workspace are selected. Clear Selection\n\n const handleSelectAll = () => {\n dispatch(selectTotalVulns());\n };\n const handleClear = () => {\n dispatch(unselectTotalVulns());\n dispatch(unSelectAll());\n };\n\n const content = () => {\n if (selectAll) {\n return (\n \n All {vulnCount} Vulnerabilities on this {isFiltering ? 'search' : 'Workspace'} are selected. Clear Selection\n \n );\n } else if (isFiltering) {\n return (\n\n All {vulnsSelected.length} Vulnerabilities on this page are selected. Select all Vulnerabilities that match this search.\n\n );\n } else {\n return (\n\n All {vulnsSelected.length} Vulnerabilities on this page are selected. Select all {vulnCount} Vulnerabilities in Workspace\n\n );\n }\n };\n if (!allVisualVulnsSelected) return null;\n if (vulnsSelected.length < vulnPageLimit || vulnCount <= vulnPageLimit) return null;\n return \n {content()}\n ;\n};\n\nexport default SelectAll;\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { getWorkspaces } from 'Screens/Workspaces/actions/Actions';\nimport { MODAL_APPLY_TEMPLATE, MODAL_EVIDENCE_WARNING_UPLOAD } from 'store/modals/modals';\nimport selectModal from 'store/modals/selectors';\nimport ApplyTemplateModal from 'Screens/KnowledgeBase/components/EditVuln';\nimport { resetState } from 'store/Manage/actions';\nimport { TableContainer } from './styled';\nimport VulnsContextMenu from './components/ContextMenu';\nimport BulkUpdateConfirmationDialog from './components/BulkUpdateConfirmationDialog';\nimport Table from './components/Table';\nimport BulkUpdateModal from './components/BulkUpdateModal';\nimport SelectAll from './components/SelecAll';\nimport ModalWarning from 'Common/Components/EvidenceTab/components/ModalWarning';\nimport ReduxModal from 'Common/Components/ReduxModal';\nimport { selectError, selectErrorMessage } from 'store/ManageEditCreate/selectors';\nimport ErrorDialog from 'Common/Components/ErrorDialog';\nimport { resetErrorValue } from 'Screens/ManageEditCreate/actions/Actions';\n\nconst ManageTable = () => {\n const dispatch = useDispatch();\n const showTemplateModal = useSelector((state) => selectModal(state, MODAL_APPLY_TEMPLATE));\n const error = useSelector(selectError);\n const errorMessage = useSelector(selectErrorMessage);\n\n useEffect(() => {\n dispatch(getWorkspaces());\n return () => {\n dispatch(resetState());\n };\n }, [dispatch]);\n\n return (\n \n \n {showTemplateModal && }\n \n \n \n
\n \n \n \n dispatch(resetErrorValue()) } />\n \n );\n};\n\nexport default ManageTable;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const TabSelectorWrapper = styled.div`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n flex: 1 1 0px;\n align-items: center;\n`;\nTabSelectorWrapper.displayName = 'TabSelectorWrapper';\n\nexport const TabButton = styled.div`\n cursor: pointer;\n padding: 8px 16px;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 155px;\n height: 34px;\n text-align: center;\n user-select: none;\n background-color: #fafbfc;\n font-weight: ${({ active }) => (active ? '600' : '400')};\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n font-size: 14px;\n color: ${({ active }) => (active ? colors.blueCerulean : colors.darkBlueGrey)};\n border-bottom: ${({ active }) => (active ? `2px solid ${colors.blueCerulean}` : 'none')};\n opacity: 1;\n &:hover {\n opacity: 0.8;\n }\n`;\n","import React from 'react';\nimport { setVulnerabilityDetailTab } from 'store/Manage/actions';\nimport { selectVulnDetailSelectedTab } from 'store/Manage/selectors';\nimport { useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport TABS from './tabs';\nimport { TabSelectorWrapper, TabButton } from './styled';\n\nconst Tabs = () => {\n const dispatch = useDispatch();\n const intl = useIntl();\n const selectedTab = useSelector(selectVulnDetailSelectedTab);\n\n const getLabel = (tab) => intl.formatMessage({ id: tab.intlId });\n const isActive = (tab) => tab.id === selectedTab.id;\n\n return (\n \n { TABS.map((tab) => (\n dispatch(setVulnerabilityDetailTab(tab.id)) }\n children={ getLabel(tab) }\n />\n ))}\n \n );\n};\n\nexport default Tabs;\n","import styled from 'styled-components';\nimport { fadeIn } from 'Styles/effects';\nimport { ReactComponent as CloseSVG } from 'Images/icon-close-without-background.svg';\n\nexport const Wrapper = styled.div`\n position: relative;\n display: flex;\n flex-direction: row;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Transparency = styled.div`\n position: absolute;\n z-index: 1;\n top: 100%;\n left: 0px;\n width: 100%;\n height: 70px;\n background-image: linear-gradient(to bottom, #fafbfc, rgba(216, 216, 216, 0));\n ${fadeIn(0, 1)};\n`;\nTransparency.displayName = 'Transparency ';\n\nexport const CloseIcon = styled(CloseSVG)`\n position: absolute;\n left: 9px;\n top: 9px;\n margin: auto;\n cursor: pointer;\n &>:hover{\n left: 8px;\n top: 8px;\n & g {\n & circle{\n background-color: #edf2f7;\n } \n }\n } \n & g {\n & path{\n fill: #63758d;\n } \n }\n`;\nCloseIcon.displayName = 'CloseIcon';\n\nexport const CloseIconWrapper = styled.div`\n flex: 0 0 37px;\n position: relative;\n padding-left: 3px;\n height: 37px;\n margin: auto 0 auto auto;\n cursor: pointer;\n &:hover{\n background-color: #edf2f7;\n border-radius: 50%;\n } \n`;\nCloseIconWrapper.displayName = 'CloseIconWrapper';\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectShowDetail } from 'store/Manage/selectors';\nimport { redirectToManage } from 'store/Manage/actions';\nimport { PropTypes } from 'prop-types';\nimport TabSelector from '../Tabs/components/TabSelector';\nimport {\n Wrapper,\n CloseIconWrapper,\n CloseIcon,\n Transparency\n} from './styled';\n\nconst Header = ({ showTransparency }) => {\n const dispatch = useDispatch();\n const show = useSelector(selectShowDetail);\n\n if (!show) return null;\n return (\n \n \n dispatch(redirectToManage()) }>\n \n \n {showTransparency && }\n \n );\n};\n\nHeader.propTypes = {\n showTransparency: PropTypes.bool.isRequired\n};\n\nexport default Header;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n padding-top: 5px;\n padding-right: 29px;\n display: flex;\n flex-direction: column;\n flex: 1 1 0;\n overflow: scroll;\n`;\nWrapper.displayName = 'Wrapper ';\n\nexport default Wrapper;\n","import React from 'react';\nimport { PropTypes } from 'prop-types';\nimport { selectVulnDetailSelectedTab } from 'store/Manage/selectors';\nimport { useSelector } from 'react-redux';\nimport TabWrapper from './styled';\n\nconst Tabs = ({ onScroll, tabRef }) => {\n const selectedTab = useSelector(selectVulnDetailSelectedTab);\n\n return (\n \n { selectedTab.component }\n \n );\n};\n\nTabs.propTypes = {\n onScroll: PropTypes.func.isRequired,\n tabRef: PropTypes.object.isRequired\n};\n\nexport default Tabs;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { slideInLeft } from 'Styles/effects';\n\nexport const DetailWrapper = styled.div`\n display: flex;\n flex: 1 1 0px;\n flex-direction: column;\n padding-left: 4px;\n background-color: ${colors.white1};\n height: 100%;\n width: 97%;\n`;\nDetailWrapper.displayName = 'DetailWrapper';\n\nexport const Wrapper = styled.div.attrs(({ wrapperWidth }) => {\n let width = '55%';\n if (wrapperWidth) width = `${wrapperWidth}px`;\n return ({ style: { width } });\n})`\n display: flex;\n flex-direction: row;\n overflow-y: hidden;\n overflow-x: hidden;\n position: absolute;\n right: 0;\n z-index: 1;\n box-shadow: none;\n height: 100%;\n ${slideInLeft};\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Resizer = styled.div`\n height: 100%;\n border-radius: 4px;\n width: 8px;\n margin-right: auto;\n background-color: ${colors.white1};\n`;\nResizer.displayName = 'Resizer';\n\nexport const ResizerWrapper = styled.div`\n display: flex;\n height: 100%;\n cursor: col-resize;\n flex: 0 0 25px;\n background-color: ${colors.white1};\n &:hover{\n & > * {\n background-color: ${colors.light2};\n }\n }\n &:active{\n & > * {\n background-color: ${colors.light3};\n }\n }\n`;\nResizerWrapper.displayName = 'ResizerWrapper';\n","import { useState, useEffect } from 'react';\n\nconst getWindowDimensions = () => {\n const { innerWidth: width, innerHeight: height } = window;\n return {\n width,\n height\n };\n};\n\nconst useWindowDimensions = () => {\n const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions());\n\n useEffect(() => {\n const handleResize = () => setWindowDimensions(getWindowDimensions());\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n return windowDimensions;\n};\n\nexport default useWindowDimensions;\n","import styled from 'styled-components';\nimport { ReactComponent as CloseSVG } from 'Images/icon-close-without-background.svg';\nimport ModalWrapper from 'Common/Components/ModalWrapper';\nimport { fadeIn } from 'Styles/effects';\n\nexport const Modal = styled(ModalWrapper)`\n background-color: rgba(0,0,0,0.85);\n ${fadeIn(0, 1)}\n`;\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin: auto;\n height: 70%;\n width: 70%;\n`;\nModal.displayName = 'Modal';\n\nexport const Image = styled.img`\n object-fit: scale-down;\n`;\nImage.displayName = 'Image';\n\nexport const CloseIcon = styled(CloseSVG)`\n margin: auto;\n cursor: pointer;\n &>:hover{\n left: 8px;\n top: 8px;\n & g {\n & circle{\n background-color: #edf2f7;\n } \n }\n } \n & g {\n & path{\n fill: #63758d;\n } \n }\n`;\nCloseIcon.displayName = 'CloseIcon';\n\nexport const CloseWrapper = styled.div`\n position: fixed;\n top: 20px;\n right: 20px;\n display: flex;\n height: 40px;\n width: 40px;\n cursor: pointer;\n background-color: #eee;\n border-radius: 50%;\n &:hover{\n background-color: #ddd;\n border-radius: 50%;\n } \n`;\nCloseWrapper.displayName = 'CloseWrapper';\n\nexport const ImageWrapper = styled.div`\n height: 100%;\n width: 100%;\n`;\nCloseWrapper.displayName = 'CloseWrapper';\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { setImagePreview } from 'store/Manage/actions';\nimport { selectImagePreview } from 'store/Manage/selectors';\nimport { Wrapper, Modal, Image, ImageWrapper, CloseWrapper, CloseIcon } from './styled';\n\nconst ImagePreviewModal = () => {\n const dispatch = useDispatch();\n const previewSrc = useSelector(selectImagePreview);\n\n if (!previewSrc) return null;\n return (\n \n \n dispatch(setImagePreview('')) }>\n \n \n } />\n \n \n );\n};\n\nexport default ImagePreviewModal;\n","import React, { useState, useRef } from 'react';\nimport get from 'lodash/get';\nimport Header from './components/Header';\nimport Tabs from './components/Tabs';\nimport { Wrapper, DetailWrapper, ResizerWrapper, Resizer } from './styled';\nimport ReduxModal from 'Common/Components/ReduxModal';\nimport { MODAL_UPGRADE_LICENSE_VULN_DETAIL } from 'store/modals/modals';\nimport UpgradeLicense from 'Common/Components/UpgradeLicense';\nimport FFTags from 'Images/ff_tags.png';\nimport { useResizeX } from 'Hooks/useResize';\nimport useWindowDimensions from 'Hooks/useWindowSize';\nimport ImagePreviewModal from './components/ImagePreviewModal';\n\nconst VulnerabilityDetail = () => {\n const [showTransparency, setShowTransparency] = useState(false);\n const ref = useRef(null);\n const wrapperRef = useRef(null);\n const resizerRef = useRef(null);\n const { width } = useWindowDimensions();\n const minWidth = width < 3000 ? width * 0.55 : width * 0.35;\n const maxWidth = width < 3000 ? width * 0.75 : width * 0.55;\n const wrapperWidth = useResizeX(wrapperRef, resizerRef, minWidth, minWidth, maxWidth);\n\n const onScroll = () => {\n const scrollTop = get(ref, 'current.scrollTop', 0);\n if (scrollTop === 0) setShowTransparency(false);\n else setShowTransparency(true);\n };\n\n return (\n <>\n \n \n \n \n \n } />\n \n
\n \n \n \n \n );\n};\n\nexport default VulnerabilityDetail;\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n display: flex;\n height: 34px;\n margin-right: 16px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const IconWrapper = styled.button`\n background-color: #f7f9fb;\n border: solid 1px #e6e9ed;\n height: 34px;\n width: 34px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n`;\nIconWrapper.displayName = 'IconWrapper';\n","import React, { useEffect, useState } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { CONFIRMED_FLAG_FILTERS } from 'store/Filters/constants';\nimport { addFilter, removeFilter } from 'store/Filters/actions';\nimport { newGetVulns } from 'store/Manage/filterActions';\nimport { isFilteringBy } from 'store/Filters/selectors';\nimport FlagIcon from '../FlagIcon';\nimport { Wrapper, IconWrapper } from './styled';\n\nconst VulnFlagFilter = () => {\n const dispatch = useDispatch();\n const { confirmed, notConfirmed } = CONFIRMED_FLAG_FILTERS;\n const themeList = ['allVulns', 'confirmed', 'notConfirmed'];\n const [theme, setTheme] = useState(0);\n const isFilteringByConfirm = useSelector((state) => isFilteringBy(state, 'vulns', confirmed));\n const isFilteringByNotConfirm = useSelector((state) => isFilteringBy(state, 'vulns', notConfirmed));\n const isFilteringByConfirmAndNotConfirmed = isFilteringByConfirm && isFilteringByNotConfirm;\n\n useEffect(() => {\n if (isFilteringByConfirmAndNotConfirmed) setTheme(0);\n else if (isFilteringByConfirm) setTheme(1);\n else if (isFilteringByNotConfirm) setTheme(2);\n else setTheme(0);\n }, [isFilteringByConfirm, isFilteringByNotConfirm, isFilteringByConfirmAndNotConfirmed, setTheme]);\n\n const handleClick = () => {\n if (theme === 0) {\n dispatch(removeFilter('vulns', notConfirmed));\n dispatch(addFilter('vulns', confirmed));\n } else if (theme === 1) {\n dispatch(removeFilter('vulns', confirmed));\n dispatch(addFilter('vulns', notConfirmed));\n } else {\n dispatch(removeFilter('vulns', confirmed));\n dispatch(removeFilter('vulns', notConfirmed));\n }\n dispatch(newGetVulns());\n };\n\n const getLabel = () => {\n if (theme === 0) return 'All vulnerabilities';\n if (theme === 1) return 'Confirmed vulnerabilities';\n if (theme === 2) return 'Not confirmed vulnerabilities';\n return '';\n };\n\n return (\n \n \n \n \n \n );\n};\n\nexport default VulnFlagFilter;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as _PlusIcon } from 'Images/icon-action-bar-plus.svg';\n\nexport const DropdownText = styled.span`\n font-weight: 500;\n color: ${colors.dark2};\n font-size: 11.5px;\n user-select: none;\n width: 92px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\nDropdownText.displayName = 'DropdownText';\n\nexport const DropdownItem = styled.div`\nheight: 34px;\npadding: 10px 17px;\ndisplay: flex;\nalign-items: center;\n\nsvg {\n position: relative;\n margin-right: 15px;\n}\n\n&:hover {\n background-color: #f1f4f7;\n font-weight: 600;\n}\n font-size: 12px;\n font-weight: 300;\n`;\nDropdownItem.displayName = 'DropdownItem';\n\nexport const DropdownWrapper = styled.div`\nbackground-color: transparent;\n padding: 0px 10px;\n font-size: 11.5px;\n font-weight: 500;\n line-height: 34px;\n height: 34px;\n border-radius: 2px;\n border: solid 1px rgba(144, 169, 192, 0.3);\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n &:hover {\n border-radius: 3px;\n border: solid 1px #d8dee5;\n background-color: #f1f4f7;\n }\n\n &:active {\n border: solid 1px #bcccd9;\n background-color: #dde5ec;\n }\n`;\n\nexport const Wrapper = styled.div`\n position: relative;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const PlusIcon = styled(_PlusIcon)`\nheight: 11px;\nmargin-right: 10px;\n& > path {\n fill: #1c2243;\n}\n`;\n\nexport const Dropdown = styled.div`\n position: absolute;\n width: 244px;\n height: 76px;\n border-radius: 3px;\n box-shadow: 2px 2px 30px 0 #d5dee6;\n border: solid 1px #cdd5dd;\n background-color: #ffffff;\n padding: 3px 4px;\n z-index: 1000;\n`;\n","var _title, _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconActionBarMore = function SvgIconActionBarMore(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"16px\",\n height: \"4px\",\n viewBox: \"0 0 16 4\",\n ref: svgRef\n }, props), title === undefined ? _title || (_title = /*#__PURE__*/React.createElement(\"title\", null, \"Group\")) : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Icon-More/icon_more\",\n transform: \"translate(-11.000000, -16.000000)\",\n fill: \"#1C4566\",\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group\",\n transform: \"translate(11.000000, 16.000000)\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 2,\n cy: 2,\n r: 2\n }), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 8,\n cy: 2,\n r: 2\n }), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 14,\n cy: 2,\n r: 2\n }))))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconActionBarMore, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon-action-bar-more.fd9db67e.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState, useRef } from 'react';\nimport { RiFileEditLine as EditLine, RiFileDownloadLine as DownloadLine } from 'react-icons/ri';\nimport ManualCreationModal from 'Screens/ManageEditCreate/components/ManualCreationModal';\nimport ImportFileCreationModal from 'Screens/ManageEditCreate/components/ImportFileCreationModal';\nimport useClickOutside from 'Hooks/useClickOutside';\nimport {\n DropdownText, DropdownItem, Wrapper, DropdownWrapper, PlusIcon, Dropdown\n} from './styled';\n\nconst CreateActions = () => {\n const [showModalCreation, setShowModalCreation] = useState(false);\n const [showModalImport, setShowModalImport] = useState(false);\n const [showDropdown, setShowDropdown] = useState(false);\n\n const dropdownRef = useRef();\n useClickOutside(dropdownRef, () => setShowDropdown(false));\n\n const handleShow = () => {\n setShowModalCreation(true);\n setShowDropdown(false);\n };\n const handleClose = () => setShowModalCreation(false);\n const handleShowImportFromFile = () => {\n setShowModalImport(true);\n setShowDropdown(false);\n };\n const handleCloseImportFromFile = () => setShowModalImport(false);\n\n const handleDropdown = () => setShowDropdown(!showDropdown);\n\n return (\n \n \n \n Add Vulnerability\n \n {showDropdown && (\n \n \n \n Manual Creation\n \n \n \n Import from File\n \n \n )}\n\n \n \n \n );\n};\n\nexport default CreateActions;\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n deleteSelectedVulns, hideVulnModalDelete\n} from 'store/Manage/actions';\nimport ModalConfirmation from 'Common/Components/ModalConfirmation';\nimport { selectIsFetching, selectSelectAll, selectShowDeleteConfirmation, selectVulnsCount, selectVulnsSelected } from 'store/Manage/selectors';\n\nconst DeleteConfirmationModal = () => {\n const dispatch = useDispatch();\n const showDeleteConfirmation = useSelector(selectShowDeleteConfirmation);\n const vulnsSelected = useSelector(selectVulnsSelected);\n const vulnsCount = useSelector(selectVulnsCount);\n const selectAll = useSelector(selectSelectAll);\n const count = selectAll ? vulnsCount : vulnsSelected.length;\n const isFetching = useSelector(selectIsFetching);\n\n return (\n dispatch(deleteSelectedVulns()) }\n handleClose={ () => dispatch(hideVulnModalDelete()) }\n entity=\"vulnerability\"\n count={ count }\n loading={ isFetching }\n />\n );\n};\n\nexport default DeleteConfirmationModal;\n","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport get from 'lodash/get';\nimport IconButton from 'Common/Components/IconButton';\nimport { Edit } from '../../styled';\nimport { redirectToVulnDetail } from 'store/Manage/actions';\n\nconst EditButton = () => {\n const dispatch = useDispatch();\n const vulnsSelected = useSelector((state) => get(state, 'manage.vulnsSelected', []));\n const handleClick = () => dispatch(redirectToVulnDetail(vulnsSelected[0]._id));\n\n return (\n } title=\"Edit\" onClick={ handleClick } />\n );\n};\n\nexport default EditButton;\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport IconButton from 'Common/Components/IconButton';\nimport { Trash } from '../../styled';\nimport { showVulnModalDelete } from 'store/Manage/actions';\n\nconst DeleteButton = () => {\n const dispatch = useDispatch();\n const handleClick = () => dispatch(showVulnModalDelete());\n\n return (\n } title=\"Delete\" onClick={ handleClick } />\n );\n};\n\nexport default DeleteButton;\n","import styled from 'styled-components';\n\nexport { ReactComponent as MoreIcon } from 'Images/icon-action-bar-more.svg';\n\nexport const Wrapper = styled.div`\n`;\nWrapper.displayName = 'Wrapper';\n","import React from 'react';\nimport IconButton from 'Common/Components/IconButton';\nimport { showContextMenu } from 'store/Manage/actions';\nimport { selectShowContextMenu } from 'store/Manage/selectors';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { PropTypes } from 'prop-types';\nimport { Wrapper, MoreIcon } from './styled';\n\nconst OpenContextMenuButton = ({ display }) => {\n const showingContextMenu = useSelector(selectShowContextMenu);\n const dispatch = useDispatch();\n const toggleContextMenu = (e) => dispatch(showContextMenu(!showingContextMenu, e.pageX, e.pageY));\n\n if (display) {\n return (\n \n } title=\"More\" />\n \n );\n }\n return null;\n};\n\nOpenContextMenuButton.propTypes = {\n display: PropTypes.bool.isRequired\n};\n\nexport default OpenContextMenuButton;\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconShowDuplicates = function SvgIconShowDuplicates(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 19,\n height: 19,\n viewBox: \"0 0 19 19\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.056 1c.215 0 .482.051.684.254.203.202.26.475.26.69v9.823c0 .215-.057.482-.26.684-.202.203-.47.26-.684.26h-3.4a.567.567 0 1 1 0-1.133h3.21V2.133H7.423v3.211a.567.567 0 1 1-1.133 0v-3.4c0-.215.057-.488.26-.69C6.75 1.05 7.018 1 7.233 1h9.823zm-5.29 5.289c.514 0 .945.43.945.944v9.823a.955.955 0 0 1-.944.944H1.944A.955.955 0 0 1 1 17.056V7.233c0-.513.431-.944.944-.944h9.823zm-.188 1.133H2.133v9.445h9.445V7.422z\",\n fill: \"#1C4566\",\n fillRule: \"nonzero\",\n stroke: \"#1C4566\",\n strokeWidth: 0.2\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconShowDuplicates, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon-show-duplicates.79a1569d.svg\";\nexport { ForwardRef as ReactComponent };","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport Select, { components } from 'react-select';\nimport { groupSelect } from 'Common/styles/style';\nimport { VULNS_GROUP_BY_KEYS } from 'store/Filters/constants';\nimport { selectGroupBy } from 'store/Filters/selectors';\nimport { setGroupByVulns, clearGroupByVulns } from 'store/Manage/filterActions';\nimport { FormattedMessage } from 'react-intl';\n\nclass GroupFieldSelector extends Component {\n constructor (props) {\n super(props);\n this.state = {};\n }\n\n render () {\n const {\n group_by,\n setGroupBy,\n clearGroupBy\n } = this.props;\n\n const alias = 'group';\n\n const SingleValue = ({ children, ...props }) => (\n components.SingleValue && (\n // eslint-disable-next-line react/jsx-props-no-spreading\n \n {`Group By: ${children}`}\n \n )\n );\n\n const options = VULNS_GROUP_BY_KEYS;\n\n return (\n
\n opt.value === group_by) }\n components={ { SingleValue } }\n placeholder={ }\n onChange={ (e) => {\n if (e.value.length > 0) {\n setGroupBy(e.value);\n } else {\n clearGroupBy();\n }\n } }\n options={ options.filter((opt) => opt.value !== group_by) }\n />\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n group_by: selectGroupBy('vulns', state),\n parsed: state.manage.parsed,\n rowsPerPage: state.manage.rowsPerPage\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n setGroupBy: (group_by) => {\n dispatch(setGroupByVulns(group_by));\n },\n clearGroupBy: () => {\n dispatch(clearGroupByVulns());\n }\n});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(GroupFieldSelector));\n","import styled from 'styled-components';\nimport { ReactComponent as DuplicateSVG } from 'Images/icon-show-duplicates.svg';\n\nconst DuplicateIcon = styled(DuplicateSVG)`\n`;\nDuplicateIcon.dipslayName = 'DuplicateIcon';\n\nexport default DuplicateIcon;\n","var _style, _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIconActionBarTags = function SvgIconActionBarTags(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 17.2 17.1\",\n style: {\n enableBackground: \"new 0 0 17.2 17.1\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\\n\\t.st0{fill:#264D6D;}\\n\")), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M17.2,3.1V1.3c0-0.1,0-0.1,0-0.2c0-0.7-0.5-1.1-1.2-1.1c-1.3,0-2.6,0-3.9,0c-1.1,0-2.2,0-3.2,0l0,0 C8.6,0,8.2,0.1,8.1,0.3C7.8,0.6,7.4,1,7.2,1.3L4.8,3.7C3.4,5,2,6.4,0.8,7.7c-1,1-1,2.4,0,3.4s1.9,2,2.9,2.9 c0.8,0.8,1.6,1.6,2.4,2.4c0.4,0.4,0.8,0.6,1.2,0.7l0,0c0,0,0,0,0.1,0h0.8l0,0c0.4-0.2,0.9-0.4,1.3-0.8c2.1-2.1,4.4-4.4,7.2-7.2 c0.4-0.4,0.5-0.8,0.5-1.3C17.2,6.4,17.2,4.7,17.2,3.1z M15.8,7.4c0,0.4-0.1,0.7-0.4,1l0,0c-0.1,0.1-0.1,0.1-0.2,0.2 c-1.7,1.7-3.4,3.4-5.1,5.1L10,13.8L3.4,7.1L3.5,7c1.7-1.7,3.4-3.4,5.1-5.1c0.1-0.1,0.2-0.2,0.4-0.3c0.2-0.2,0.5-0.3,0.8-0.3 c1.3,0,2.6,0,4,0h1.6c0.1,0,0.2,0,0.3,0c0.2,0,0.3,0.1,0.3,0.3c0,0.1,0,0.1,0,0.2v1.5C15.8,4.7,15.8,6.1,15.8,7.4z M1.6,8.9 c0.1-0.2,0.3-0.4,0.5-0.6l0.1-0.1L8.9,15l-0.1,0.1c-0.2,0.2-0.4,0.4-0.6,0.6C7.9,16,7.4,16,7,15.7c-0.1-0.1-0.1-0.1-0.2-0.2 l-5.2-5.2c-0.1-0.1-0.1-0.1-0.2-0.2C1.3,9.7,1.3,9.2,1.6,8.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M12.1,2.8c-0.6,0-1.2,0.2-1.6,0.6c-0.4,0.4-0.7,1-0.7,1.6c0,1.3,1,2.3,2.3,2.3l0,0c0.6,0,1.2-0.2,1.6-0.7 c0.4-0.4,0.7-1,0.7-1.6C14.4,3.9,13.4,2.8,12.1,2.8z M12.1,5.8L12.1,5.8c-0.4,0-0.7-0.3-0.7-0.7c0-0.2,0.1-0.4,0.2-0.5 c0.1-0.1,0.3-0.2,0.5-0.2l0,0c0.4,0,0.7,0.3,0.7,0.7C12.8,5.5,12.4,5.8,12.1,5.8z\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconActionBarTags, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon-action-bar-tags.c0f5d2b3.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport IconButton from 'Common/Components/IconButton';\nimport { selectVulnsSelected, selectShowDetail } from 'store/Manage/selectors';\nimport { useIntl } from 'react-intl';\nimport DuplicateIcon from './styled';\nimport { openModal } from 'store/modals/actions';\nimport { MODAL_UPGRADE_LICENSE_ACTION_BAR } from 'store/modals/modals';\nimport FFDuplicates from 'Images/ff_duplicates.png';\n\nconst DuplicateButton = ({ setFF }) => {\n const dispatch = useDispatch();\n const selectedVulns = useSelector(selectVulnsSelected);\n const multipleVulnsSelected = selectedVulns.length > 1;\n const showVulnDetail = useSelector(selectShowDetail);\n const intl = useIntl();\n const title = intl.formatMessage({ id: 'vuln.detail.duplicates.markAsDuplicates' });\n\n const onClick = () => {\n setFF(FFDuplicates, 'upgradeLicense.sidebar.duplicates.description');\n dispatch(openModal(MODAL_UPGRADE_LICENSE_ACTION_BAR));\n };\n\n if (!multipleVulnsSelected || showVulnDetail) return null;\n return } title={ title } onClick={ onClick } />;\n};\n\nexport default DuplicateButton;\n","import styled from 'styled-components';\nimport { ReactComponent as TagSVG } from 'Images/icon-action-bar-tags.svg';\n\nexport const TagIcon = styled(TagSVG)`\n height: 17px;\n`;\nTagIcon.displayName = 'Tag';\n\nexport default TagIcon;\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport IconButton from 'Common/Components/IconButton';\nimport TagIcon from './styled';\nimport { openModal } from 'store/modals/actions';\nimport { MODAL_UPGRADE_LICENSE_ACTION_BAR } from 'store/modals/modals';\nimport FFTags from 'Images/ff_tags.png';\n\nconst TagButton = ({ setFF }) => {\n const dispatch = useDispatch();\n\n const onClick = () => {\n setFF(FFTags, 'upgradeLicense.sidebar.tags.description');\n dispatch(openModal(MODAL_UPGRADE_LICENSE_ACTION_BAR));\n };\n\n return } title=\"Tags\" onClick={ onClick } />;\n};\n\nexport default TagButton;\n","import styled from 'styled-components';\nimport { ReactComponent as RefreshImage } from 'Images/reload.svg';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const RefreshIcon = styled(RefreshImage)`\n`;\nRefreshIcon.displayName = 'RefreshIcon';\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport IconButton from 'Common/Components/IconButton';\nimport { RefreshIcon } from './styled';\nimport { newGetVulns } from 'store/Manage/filterActions';\n\nconst RefreshButton = () => {\n const dispatch = useDispatch();\n\n const handleClick = () => (dispatch(newGetVulns()));\n\n return (\n } title=\"Refresh\" onClick={ handleClick } />\n );\n};\n\nexport default RefreshButton;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { slideIn } from 'Styles/effects';\n\nexport const ModalWrapper = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background: rgb(39, 39, 39, 0.2);\n z-index: 500;\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n ${slideIn}\n`;\nModalWrapper.displayName = 'CustomAttributesModalWrapper';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n background-color: #ffffff;\n width: 567px;\n box-shadow: 18px 43px 50px 0 rgba(167, 167, 167, 0.5);\n border-top: 10px solid ${colors.softBlue};\n border-radius: 2px 2px 0 0;\n padding: 26px 36px 36px 36px;\n max-height: 85%;\n`;\nWrapper.displayName = 'CustomFieldsWrapper';\n\nexport const Header = styled.div`\n display: flex;\n`;\n\nHeader.displayName = 'Header';\n\nexport const Description = styled.span`\n color: ${colors.grey19};\n font-size: 12.5px;\n line-height: 1.36;\n`;\n\nDescription.displayName = 'Description';\n","import React from 'react';\nimport { DragDropContext } from 'react-beautiful-dnd';\nimport { useDispatch } from 'react-redux';\nimport { dragCustomAttribute } from 'store/CustomAttributes/actions';\nimport AttributeList from './components/AttributeList';\nimport { Wrapper, ModalWrapper } from './styled';\nimport AddCustomAttribute from './components/AddCustomAttribute';\nimport Header from './components/Header/index';\n// TODO:\n\n// Error handling (no dejar crear CF si el back tira un error // disable buttom si no cumple con condiciones minimas)\n\nconst CustomAttributesModal = () => {\n const dispatch = useDispatch();\n const handleDragEnd = (result) => dispatch(dragCustomAttribute(result));\n return (\n \n \n
\n \n \n \n \n \n \n );\n};\nexport default CustomAttributesModal;\n","import React, { useState } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport CustomAttributesModal from 'Screens/Manage/components/CustomAttributesModal';\nimport ContextMenuButton from 'Common/Components/ContextMenuButton';\nimport IconButton from 'Common/Components/IconButton';\nimport EditColumnContext from 'Common/Components/EditColumnContext';\nimport { selectManageFields } from 'store/Preferences/manage/selectors';\nimport selectModal from 'store/modals/selectors';\nimport { MODAL_CUSTOM_ATTRIBUTES } from 'store/modals/modals';\nimport { resetDefault, setFieldVisibility, setNewOrderColumns } from 'store/Preferences/manage/actions';\nimport { EditColumns } from '../../styled';\n\nconst AddRemoveColumnsButton = () => {\n const [showContext, toggleContext] = useState(false);\n const dispatch = useDispatch();\n const fields = useSelector(selectManageFields);\n const showCustomAttributesModal = useSelector((state) => selectModal(state, MODAL_CUSTOM_ATTRIBUTES));\n\n const addRemoveColumns = (\n toggleContext(!showContext) }\n setFieldVisibility={ (fieldObj, value) => dispatch(setFieldVisibility(fieldObj, value)) }\n setNewOrderColumns={ (columns) => dispatch(setNewOrderColumns(columns)) }\n resetDefault={ () => dispatch(resetDefault()) }\n />\n );\n\n return (\n <>\n { showCustomAttributesModal && }\n } title=\"Columns\" /> }\n />\n \n );\n};\n\nexport default AddRemoveColumnsButton;\n","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport get from 'lodash/get';\nimport { setPage } from 'store/Manage/filterActions';\nimport { downloadVulns } from 'store/Manage/actions';\nimport { selectPage, selectRowsPerPage, selectGroupByField } from 'store/Filters/selectors';\nimport {\n selectVulnsSelected, selectVulnsCount,\n selectShowDetail\n} from 'store/Manage/selectors';\nimport VulnFlagFilter from 'Common/Components/VulnFlagFilter';\nimport { Wrapper, LeftGroup, RightGroup, Separator, Group } from 'Common/Components/CustomActionBar/styled';\nimport IconButton from 'Common/Components/IconButton';\nimport Pagination from 'Common/Components/Pagination';\nimport CreateActions from 'Screens/Manage/components/CreateActions';\nimport DeleteConfirmationModal from '../DeleteConfirmationModal';\nimport EditButton from '../EditButton';\nimport DeleteButton from '../DeleteButton';\nimport OpenContextMenuButton from '../OpenContextMenu';\nimport GroupFieldSelector from '../GroupFieldSelector';\nimport FilterSideBarIcon from '../FilterSidebarIcon';\nimport DuplicateButton from '../DuplicateButton';\nimport TagButton from '../TagButton';\nimport RefreshButton from '../RefreshButton';\nimport AddRemoveColumnsButton from '../AddRemoveColumnsButton';\nimport { Download } from '../../styled';\n\nconst ActionBar = ({ setFF }) => {\n const dispatch = useDispatch();\n const readonly = useSelector((state) => get(state, 'faraday.readonly', false));\n const vulnsSelected = useSelector(selectVulnsSelected);\n const vulnsCount = useSelector(selectVulnsCount);\n const showVulnDetail = useSelector(selectShowDetail);\n const page = useSelector((state) => selectPage('vulns', state));\n const rowsPerPage = useSelector((state) => selectRowsPerPage('vulns', state));\n const isGrouping = useSelector((state) => selectGroupByField('vulns', state));\n const hasVulns = vulnsCount > 0;\n const showVulnsActionButtons = (!readonly && vulnsSelected.length > 0);\n const onPrev = () => dispatch(setPage(page - 1));\n const onNext = () => dispatch(setPage(page + 1));\n\n return (\n \n \n \n {!readonly && }\n { showVulnsActionButtons &&\n <>\n \n \n \n \n \n \n 0 } />\n \n \n }\n \n\n \n { (hasVulns && !isGrouping) && }\n\n { ((hasVulns) && (vulnsSelected.length === 0 && !showVulnDetail)) && }\n\n { }\n\n { hasVulns &&\n \n } title=\"Download Filtered Workspace\" onClick={ () => dispatch(downloadVulns()) } />\n \n \n \n }\n\n \n \n \n \n \n );\n};\n\nexport default ActionBar;\n","import React, { useState } from 'react';\nimport ActionBar from './components/ActionBar';\nimport { MODAL_UPGRADE_LICENSE_ACTION_BAR } from 'store/modals/modals';\nimport ReduxModal from 'Common/Components/ReduxModal';\nimport UpgradeLicense from 'Common/Components/UpgradeLicense';\n\nconst CustomActionBar = () => {\n const [FFImage, setFFImage] = useState(null);\n const [FFDescription, setFFDescription] = useState('');\n\n const setFF = (image, description) => {\n setFFImage(image);\n setFFDescription(description);\n };\n\n return (\n <>\n \n \n \n \n \n );\n};\n\nexport default CustomActionBar;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as Warning } from 'Images/warning-delete.svg';\nimport { Accept } from 'Common/Components/Button/styled';\n\nexport const Wrapper = styled.div`\n margin-bottom: 10px;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const ModalWrapper = styled.div`\n display: flex;\n flex-direction: column;\n min-width: 430px;\n width: 505px;\n background-color: #fff;\n padding: 34px;\n border-top-style: solid;\n border-top-width: 10px;\n border-top-color: ${colors.softBlue};\n`;\nModalWrapper.displayName = 'ModalWrapper';\n\nexport const Title = styled.div`\n margin-bottom: 5px;\n font-size: 21.5px;\n font-weight: 600;\n color: ${colors.darkBlueGrey};\n display: flex;\n align-items: center;\n`;\nTitle.displayName = 'Title';\n\nexport const WarningIcon = styled(Warning)`\n margin-right: 13px;\n`;\nWarningIcon.displayName = 'WarningIcon';\n\nexport const Subtitle = styled.p`\n font-size: 12.5px;\n color: #63758d;\n margin-top: 15px;\n`;\nSubtitle.displayName = 'Subtitle';\n\nexport const Bold = styled.span`\n color: ${colors.darkBlueGrey}; \n font-size: 12.5px;\n font-weight: 600;\n margin-top: 15px;\n`;\nBold.displayName = 'Bold';\n\nexport const List = styled.ul`\n margin-top: 17px;\n font-size: 12.5px;\n font-weight: 500;\n color: ${colors.darkBlueGrey};\n list-style-type: none;\n`;\nList.displayName = 'List';\n\nexport const Item = styled.li`\n margin-bottom: 3px;\n`;\nItem.displayName = 'Item';\n\nexport const Done = styled(Accept)`\n width: 89px;\n align-self: flex-end;\n`;\nDone.displayName = 'Done';\n","import React from 'react';\nimport { PropTypes } from 'prop-types';\nimport {\n Wrapper, ModalWrapper, Title, WarningIcon, Subtitle, List,\n Item, Done, Bold\n} from './styled';\n\nconst BoldSubtitle = ({ sub }) => {\n if (!sub) return null;\n return (\n \n {sub.start}\n {sub.middle}\n {sub.end}\n \n );\n};\n\nconst renderList = (list, listWithDoubleQuotes) => {\n if (list && listWithDoubleQuotes) return { list.map((el) => { `\"${el}\"` }) };\n else if (list) return { list.map((el) => { `- ${el}` }) };\n else return null;\n};\n\nconst WarningModal = ({\n title, subtitle, firstSubtitleBold, secondSubtitleBold, list, showIcon, onDone, listWithDoubleQuotes\n}) => (\n \n \n \n { showIcon ? <WarningIcon /> : null }\n { title }\n \n { firstSubtitleBold ? : null }\n { secondSubtitleBold ? : null }\n { subtitle ? { subtitle } : null }\n {renderList(list, listWithDoubleQuotes)}\n OK\n \n \n);\n\nWarningModal.propTypes = {\n title: PropTypes.string.isRequired,\n subtitle: PropTypes.string,\n firstSubtitleBold: PropTypes.instanceOf(Object),\n secondSubtitleBold: PropTypes.instanceOf(Object),\n list: PropTypes.instanceOf(Object),\n showIcon: PropTypes.bool,\n onDone: PropTypes.func.isRequired,\n listWithDoubleQuotes: PropTypes.bool\n};\n\nWarningModal.defaultProps = {\n subtitle: '',\n firstSubtitleBold: null,\n secondSubtitleBold: null,\n list: null,\n showIcon: false,\n listWithDoubleQuotes: false\n};\n\nexport default WarningModal;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { fadeIn } from 'Styles/effects';\n\nconst Wrapper = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background: rgba(99, 117, 141, 0.5);\n z-index: 500;\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n & > :first-child {\n box-shadow: 18px 43px 50px 0 rgba(167, 167, 167, 0.5);\n border-radius: 2px 2px 0 0;\n overflow: auto;\n max-height: 85%;\n background: ${colors.white};\n }\n ${fadeIn(0, 1)}\n`;\nWrapper.displayName = 'Wrapper';\n\nexport default Wrapper;\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { isEmpty } from 'lodash';\nimport { useIntl } from 'react-intl';\nimport {\n selectTemplatesCreated, selectFailedTemplates, selectStatusTemplateMessage, modalData,\n selecListTemplates\n} from 'store/Manage/selectors';\nimport { closeTemplateModalMessage } from 'store/Manage/actions';\nimport WarningModal from 'Common/Components/WarningModal';\nimport Wrapper from './styled';\n\nconst SaveTemplateModal = () => {\n const templatesCreated = useSelector(selectTemplatesCreated);\n const failedTemplates = useSelector(selectFailedTemplates);\n const dispatch = useDispatch();\n const intl = useIntl();\n const getIntl = (id) => intl.formatMessage({ id: `manage.saveTemplate.${id}` });\n\n const status = useSelector(selectStatusTemplateMessage);\n const title = getIntl(`title.${modalData[status].title}`);\n const subtitle = modalData[status].subtitle ? getIntl(`subtitle.${modalData[status].subtitle}`) : '';\n\n const list = useSelector((state) => selecListTemplates(state, status));\n\n const partialSuccess = (status === 'singlePartialSuccess') || (status === 'multiplePartialSuccess');\n const numTemplatesCreated = partialSuccess ? `${templatesCreated.length} vulnerabilities ` : '';\n const firstSubtitleBold = { start: getIntl('boldSub.number.start'), middle: numTemplatesCreated, end: getIntl('boldSub.number.end') };\n\n const onlyOneFailed = failedTemplates.length === 1;\n const nameFailedTemplate = onlyOneFailed ? failedTemplates.map((t) => t.name).toString() : '';\n const secondSubtitleBold = { start: getIntl('boldSub.singleFail.start'), middle: `\"${nameFailedTemplate}\"`, end: getIntl('boldSub.singleFail.end') };\n\n return (\n \n dispatch(closeTemplateModalMessage()) }\n listWithDoubleQuotes\n />\n \n );\n};\n\nconst TemplateModal = () => {\n const dispatch = useDispatch();\n const templatesCreated = useSelector(selectTemplatesCreated);\n const failedTemplates = useSelector(selectFailedTemplates);\n useEffect(() => () => {\n dispatch(closeTemplateModalMessage());\n }, [dispatch]);\n\n return (\n <>\n { (!isEmpty(templatesCreated) || !isEmpty(failedTemplates)) && }\n \n );\n};\n\nexport default TemplateModal;\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useCallback, useEffect } from 'react';\nimport { PropTypes } from 'prop-types';\nimport ErrorDialog from 'Common/Components/ErrorDialog';\nimport { getCustomAttributes } from 'store/CustomAttributes/actions';\nimport {\n resetErrorValue,\n resetState,\n showManageLeftFilters,\n hideVulnerabilityDetail,\n loadVulnerabilityDetail\n} from 'store/Manage/actions';\nimport {\n clearAdvancedFilter, getCustomFilters, resetFilters\n} from 'store/Filters/actions';\nimport { getSelectedEntity } from 'store/Filters/selectors';\nimport { selectShowHostLeftFilters } from 'store/Host/selectors';\nimport { useSelector, useDispatch } from 'react-redux';\nimport get from 'lodash/get';\nimport selectTourFinished from 'store/Preferences/Tour/selectors';\nimport { selectTotalVulns } from 'store/Workspace/selectors';\nimport { selectError, selectErrorMessage, selectShowDetail } from 'store/Manage/selectors';\nimport { ManageTour } from 'Common/Components/Tour';\nimport { Wrapper, TableContainer } from './styled';\nimport ManageTable from './components/ManageTable';\nimport VulnerabilityDetail from './components/VulnerabilityDetail';\nimport CustomActionBar from './components/CustomActionBar';\nimport FilterSideBar from './components/FilterSideBar';\nimport TemplateModal from './components/ManageTable/components/ContextMenu/components/TemplateModal';\nimport 'Screens/Manage/styles/manageStyles.scss';\n\nconst Manage = ({ params }) => {\n const dispatch = useDispatch();\n const error = useSelector(selectError);\n const errorMessage = useSelector(selectErrorMessage);\n const selectedEntity = useSelector(getSelectedEntity);\n const tourFinished = useSelector(selectTourFinished);\n const showHostFilters = useSelector(selectShowHostLeftFilters);\n const totalVulns = useSelector(selectTotalVulns);\n const showDetail = useSelector(selectShowDetail);\n\n const handleParamId = useCallback(() => {\n const id = get(params, 'id', 0);\n if (parseInt(id, 10) > 0) dispatch(loadVulnerabilityDetail(id));\n else dispatch(hideVulnerabilityDetail());\n }, [params]);\n\n useEffect(() => {\n dispatch(getCustomAttributes());\n dispatch(getCustomFilters());\n if (showHostFilters) dispatch(showManageLeftFilters(true));\n else dispatch(showManageLeftFilters(false));\n }, [showHostFilters, selectedEntity, dispatch]);\n\n useEffect(() => {\n handleParamId();\n }, [handleParamId]);\n\n useEffect(() => () => {\n dispatch(resetState());\n dispatch(resetFilters('vulns'));\n dispatch(clearAdvancedFilter('vulns'));\n }, [dispatch]);\n\n const emptyState = totalVulns === 0 && tourFinished;\n\n return (\n \n { !emptyState && }\n \n \n \n { showDetail && }\n \n \n dispatch(resetErrorValue()) } />\n \n \n );\n};\n\nManage.propTypes = {\n params: PropTypes.object.isRequired\n};\n\nexport default Manage;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { SubMenu } from 'react-contextmenu';\n\nexport const Wrapper = styled.div`\n\n .react-contextmenu {\n width: 269px;\n box-shadow: 2px 2px 10px 0 #d5dee6;\n border-radius: 2px;\n box-shadow: 2px 2px 30px 0 rgba(0, 0, 0, 0.14);\n border: solid 1px #cdd5dd;\n background-color: #ffffff;\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const MenuItemContent = styled.div`\n`;\nMenuItemContent.displayName = 'MenuItemContent';\n\nexport const Text = styled.div`\n display: inline-block;\n font-size: 13.5px;\n font-weight: 400;\n font-stretch: normal;\n font-style: normal;\n`;\nText.displayName = 'Text';\n\nexport const Icon = styled.img`\n width: 18px;\n height: 17px;\n display: inline-block;\n margin-right: 13px;\n`;\nIcon.displayName = 'Icon';\n\nexport const IconActiveInactive = styled(Icon)`\n margin-bottom: 2px;\n`;\nIconActiveInactive.displayName = 'IconActiveInactive';\n\nexport const IconEdit = styled(Icon)`\n margin-bottom: 2px;\n`;\nIconEdit.displayName = 'IconEdit';\n\nexport const ArrowIcon = styled.div`\n width: 10px;\n height: 6px;\n margin-right: 34px;\n margin-top: 3px;\n display: inline-block;\n float: right;\n color: ${colors.blueGrey};\n`;\nArrowIcon.displayName = 'ArrowIcon';\n\nexport const SubMenuStatus = styled(SubMenu)`\n width: 118px !important;\n height: 85px !important; \n`;\nSubMenuStatus.displayName = 'SubMenuStatus';\n\nexport const StatusText = styled.div`\n color: ${(props) => (props.value === 'editable' ? colors.blueCerulean : colors.warmPurple)};\n padding-left: 13px;\n font-weight: 300;\n`;\nStatusText.displayName = 'StatusText';\n","import React from 'react';\nimport { PropTypes } from 'prop-types';\nimport {\n ContextMenu, MenuItem\n} from 'react-contextmenu';\nimport { changeReadOnly, massiveUpdateWorkspacesActive, moreStatusChange } from 'Screens/Workspaces/actions/Actions';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport Filters from 'Images/shape.svg';\nimport Edit from 'Images/icon-edit-enabled.svg';\nimport { MdKeyboardArrowRight as Arrow } from 'react-icons/md';\nimport { selectWorkspacesSelected } from 'store/Workspace/selectors';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport find from 'lodash/find';\nimport {\n MenuItemContent, Text, IconActiveInactive, Wrapper, ArrowIcon, IconEdit, SubMenuStatus, StatusText\n} from './styled';\n\nconst ContextMenuWorkspaceMassiveUpdate = ({ trigger }) => {\n const dispatch = useDispatch();\n const workspacesSelected = useSelector((state) => selectWorkspacesSelected(state));\n const currentWorkspace = useSelector((state) => selectCurrentWorkspace(state));\n\n const setReadOnly = (value) => {\n if (workspacesSelected.length > 0) {\n workspacesSelected.forEach((ws) => {\n dispatch(changeReadOnly(ws.name, value));\n });\n }\n };\n\n return (\n \n dispatch(moreStatusChange(false)) } onShow={ () => moreStatusChange(true) }>\n { !find(workspacesSelected, { name: currentWorkspace }) && (\n { dispatch(massiveUpdateWorkspacesActive()); } }>\n \n \n \n \n \n ) }\n \n \n \n \n \n ) }\n >\n { setReadOnly(false); } }>\n { setReadOnly(true); } }>\n \n \n \n );\n};\n\nContextMenuWorkspaceMassiveUpdate.propTypes = {\n trigger: PropTypes.string.isRequired\n};\n\nexport default ContextMenuWorkspaceMassiveUpdate;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const TableWrapper = styled.div.attrs(({\n id: 'workspaces-table'\n}))`\n width: 100%;\n height: 94%;\n`;\nTableWrapper.displayName = 'TableWrapper';\n\nexport const Col = styled.div`\n color: ${(props) => (props.active ? '' : `${colors.grey12} !important`)};\n`;\nCol.displayName = 'Col';\n\nexport const ColWorkspaceName = styled(Col)`\n font-size: 14.5px;\n font-weight: 400;\n color: ${colors.dark5} !important;\n cursor: pointer;\n z-index: 10;\n`;\nColWorkspaceName.displayName = 'ColWorkspaceName';\n\nexport const ColWorkspaceDescription = styled(Col)`\n font-size: 12.5px;\n font-weight: 300;\n color: ${colors.dark5};\n pointer-events: none;\n`;\nColWorkspaceDescription.displayName = 'ColWorkspaceDescription';\n\nexport const ColWorkspaceNumeric = styled(ColWorkspaceDescription)`\n text-align: center;\n font-size: 12.5px;\n font-weight: 300;\n pointer-events: none;\n`;\nColWorkspaceDescription.displayName = 'ColWorkspaceDescription';\n\nexport const ColWorkspaceTimeAgo = styled(Col)`\n font-size: 11.5px;\n font-weight: 300;\n color: ${colors.blueGrey};\n pointer-events: none;\n`;\nColWorkspaceTimeAgo.displayName = 'ColWorkspaceTimeAgo';\n\nexport const SwitchContainer = styled.div`\n text-align: left;\n\n .react-switch-bg {\n border: 1px solid ${(props) => (props.checked ? colors.green3 : colors.grey16)};\n }\n\n .react-switch-handle {\n border: 1px solid ${(props) => (props.checked ? colors.green3 : colors.grey16)};\n }\n`;\nSwitchContainer.displayName = 'SwitchContainer';\n\nexport const ColWorkspaceStatus = styled(Col)`\n width: ${(props) => {\n const { readonly, active } = props;\n\n if (!active) return '64px';\n if (readonly) return '80px';\n return '63px';\n }};\n height: 25px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: 0.11px;\n cursor: pointer;\n color: white !important;\n font-size: 12.5px;\n border-radius: 10px;\n padding-top: 5px;\n padding-left: ${(props) => {\n const { readonly, active } = props;\n\n if (!active) return '9px';\n if (readonly) return '10px';\n return '8px';\n }};\n background-color: ${(props) => {\n const { readonly, active } = props;\n\n if (!active) return colors.grey26;\n if (readonly) return colors.warmPurple;\n return colors.blueCerulean;\n }};\n`;\nColWorkspaceStatus.displayName = 'ColWorkspaceStatus';\n\nexport const ColWorkspaceBetweenTime = styled.div`\n font-size: 12.5px;\n font-weight: 300;\n color: ${colors.dark5};\n`;\nColWorkspaceBetweenTime.displayName = 'ColWorkspaceBetweenTime';\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n display: flex;\n width: 100%;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Text = styled.div`\n flex: 0 1 auto;\n font-size: 13.5px;\n color: #53686f;\n font-weight: normal;\n cursor: pointer;\n &:hover {\n text-decoration: underline;\n }\n`;\nText.displayName = 'Text';\n","import React from 'react';\nimport get from 'lodash/get';\nimport { useDispatch } from 'react-redux';\nimport { Wrapper, Text } from './styled';\nimport { workspaceSelectedFromTable } from 'Screens/Workspaces/actions/Actions';\nimport Skeleton from 'Common/Components/Skeleton';\n\nconst Name = ({ isFetching, ws }) => {\n const dispatch = useDispatch();\n const name = get(ws, 'name', '');\n const totalVulns = get(ws.total_vulns, 'stats.total_vulns', 0);\n const isWsActive = get(ws, 'active', false);\n\n const handleClick = (e) => isWsActive && dispatch(workspaceSelectedFromTable(name, totalVulns));\n\n if (isFetching) return ;\n return (\n \n \n \n );\n};\n\nexport default Name;\n","import styled from 'styled-components';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const Wrapper = styled.div`\n display: flex;\n justify-content: center;\n`;\nWrapper.displayName = 'Wrapper';\n","import Importance from 'Common/Components/Importance';\nimport React from 'react';\nimport { useDispatch } from 'react-redux';\nimport { updateWS } from 'Screens/Workspaces/actions/Actions';\nimport { Wrapper } from './styled';\n\nconst ImportanceColumn = ({ ws }) => {\n const dispatch = useDispatch();\n const callback = (importance) => dispatch(updateWS(ws.name, { importance }));\n\n return (\n \n \n \n );\n};\n\nexport default ImportanceColumn;\n","import React from 'react';\nimport get from 'lodash/get';\nimport { useDispatch, useSelector } from 'react-redux';\nimport Skeleton from 'Common/Components/Skeleton';\nimport { SwitchContainer } from '../styled';\nimport Switch from 'react-switch';\nimport { enableDisable } from 'Screens/Workspaces/actions/Actions';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport colors from 'Styles/colors';\n\nconst EnableDisableWs = ({ isFetching, ws, setShowConfirmation, setShowWarning }) => {\n const dispatch = useDispatch();\n const name = get(ws, 'name', '');\n const isWsActive = get(ws, 'active', false);\n const currrentWorkspace = useSelector(selectCurrentWorkspace);\n\n const changeWsStatus = (e, checked) => {\n e.stopPropagation();\n if (currrentWorkspace === name) {\n setShowWarning(true);\n } else {\n if (checked) {\n dispatch(enableDisable(name, !checked));\n } else {\n setShowConfirmation({ show: true, ws: name });\n }\n }\n };\n\n if (isFetching) return ;\n return (\n \n { changeWsStatus(e, checked); } }\n onColor={ colors.green4 }\n offColor={ colors.grey14 }\n onHandleColor={ colors.green3 }\n offHandleColor={ colors.grey15 }\n boxShadow=\"0 0 4px 0 rgba(83, 83, 83, 0.5)\"\n activeBoxShadow=\"\"\n height={ 14 }\n width={ 39 }\n handleDiameter={ 21 }\n uncheckedIcon={ false }\n checkedIcon={ false }\n />\n \n );\n};\n\nexport default EnableDisableWs;\n","/* eslint-disable no-nested-ternary */\n/* eslint-disable no-negated-condition */\n/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\nimport TimeAgo from 'javascript-time-ago';\n// Load locale-specific relative date/time formatting rules.\nimport en from 'javascript-time-ago/locale/en';\nimport { FormattedMessage } from 'react-intl';\nimport Skeleton from 'Common/Components/Skeleton';\nimport DateFormatter from 'Common/Components/DateFormatter';\nimport {\n ColWorkspaceDescription, ColWorkspaceNumeric, ColWorkspaceStatus, ColWorkspaceBetweenTime\n} from './styled';\nimport Name from './Name';\nimport ImportanceColumn from './ImportanceColumn';\nimport EnableDisableWs from './EnableDisableWs';\n\nTimeAgo.addLocale(en);\n\nexport default function getColumns (changeReadOnly, handleSingleClick, isFetching, setShowConfirmation, setShowWarning) {\n const columns = [{\n Header: () => ,\n id: 'name',\n resizable: false,\n Cell: (rowInfo) => ,\n getProps: () => ({ 'column-type': 'name' })\n },\n {\n Header: () => ,\n id: 'importance',\n accessor: 'importance',\n resizable: false,\n width: 90,\n Cell: (rowInfo) => ((isFetching) ? : )\n },\n {\n Header: () => ,\n id: 'description',\n sortable: false,\n resizable: false,\n Cell: (rowInfo) => (\n isFetching\n ? \n : (\n \n { rowInfo.original.description }\n \n )\n ),\n getProps: () => ({ 'column-type': 'description' })\n }, {\n Header: () => ,\n resizable: false,\n id: 'create_date',\n maxWidth: 160,\n Cell: (rowInfo) => (isFetching ? : )\n }, {\n Header: () => ,\n resizable: false,\n id: 'vulnerabilities',\n maxWidth: 140,\n Cell: (rowInfo) => (\n isFetching\n ? \n : (\n \n { rowInfo.original.stats.total_vulns }\n \n )\n ),\n getProps: () => ({ 'column-type': 'vulnerabilities' }),\n sortable: false\n }, {\n Header: () => ,\n resizable: false,\n id: 'hosts',\n sortable: false,\n maxWidth: 80,\n Cell: (rowInfo) => (\n isFetching\n ? \n : (\n \n { rowInfo.original.stats.hosts }\n \n )\n ),\n getProps: () => ({ 'column-type': 'hosts' })\n }, {\n Header: () => ,\n resizable: false,\n id: 'services',\n sortable: false,\n maxWidth: 90,\n Cell: (rowInfo) => (\n isFetching\n ? \n : (\n \n { rowInfo.original.stats.services }\n \n )\n ),\n getProps: () => ({ 'column-type': 'services' })\n }, {\n Header: () => ,\n resizable: false,\n id: 'range_dates',\n maxWidth: 230,\n sortable: false,\n Cell: (rowInfo) => (\n isFetching\n ? \n : (\n \n {`${rowInfo.original.duration.start_date ? new Date(rowInfo.original.duration.start_date).toString().substring(0, 15) : ''}${rowInfo.original.duration.start_date && rowInfo.original.duration.end_date ? ' - ' : ''}${rowInfo.original.duration.end_date ? new Date(rowInfo.original.duration.end_date).toString().substring(0, 15) : ''}`}\n \n )\n ),\n getProps: () => ({ 'column-type': 'range_dates' })\n }, {\n Header: () => ,\n id: 'update_date',\n accessor: 'update_date',\n resizable: false,\n Cell: (rowInfo) => {\n if (isFetching) {\n return ;\n }\n const date = new Date(rowInfo.original.update_date);\n const formattedDate = `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')} ${String(date.getHours()).padStart(2, '0')}:${String(date.getMinutes()).padStart(2, '0')}:${String(date.getSeconds()).padStart(2, '0')}`;\n return
{formattedDate}
;\n },\n getProps: () => ({ 'column-type': 'update_date' })\n },\n\n {\n Header: () => ,\n maxWidth: 90,\n resizable: false,\n filterable: false,\n id: 'active',\n Cell: (rowInfo) => ,\n getProps: () => ({ 'column-type': 'active' })\n }, {\n Header: () => ,\n id: 'readonly',\n filterable: false,\n Cell: (rowInfo) => (\n isFetching\n ? \n : (\n { if (rowInfo.original.active) { e.stopPropagation(); changeReadOnly(rowInfo.original.name, !rowInfo.original.readonly); } } } active={ rowInfo.original.active }>\n {!rowInfo.original.active ? : (rowInfo.original.readonly ? : )}\n \n )\n ),\n resizable: false,\n maxWidth: 120,\n getProps: () => ({ 'column-type': 'status' })\n }];\n return columns;\n}\n","/* eslint-disable react/destructuring-assignment */\nimport React, { Component } from 'react';\nimport CustomReactTable from 'Common/Components/CustomReactTable/styled';\nimport handleLeftClick from 'Common/Components/CustomReactTable/leftClickHelper';\nimport PropTypes from 'prop-types';\nimport {\n ContextMenuTrigger\n} from 'react-contextmenu';\nimport ContextMenuWorkspaceMassiveUpdate from 'Screens/Workspaces/components/ContextMenuWorkspaceMassiveUpdate';\nimport {\n enableDisable,\n changeReadOnly,\n selectWorkspace,\n setOrderByWorkspaces\n} from 'Screens/Workspaces/actions/Actions';\nimport { connect } from 'react-redux';\nimport {\n selectIsFetching, selectLastIndexForRange, selectLastSelected, selectLastWorkspaceSelected, selectShowInactive, selectWorkspacesOrdered, selectWorkspacesSelected\n} from 'store/Workspace/selectors';\nimport { TableWrapper } from './styled';\nimport getColumns from './Columns';\nimport { FormattedMessage } from 'react-intl';\n\nconst getSorting = (sorted) => {\n const vulnsSortIndex = sorted.findIndex((s) => s.id === 'vulnerabilities');\n\n if (vulnsSortIndex >= 0) {\n const desc = sorted[vulnsSortIndex].desc;\n const sortTotalCount = { id: 'vulnerability_total_count', desc };\n\n const newSorting = [...sorted];\n newSorting.splice(vulnsSortIndex, 1, sortTotalCount);\n return newSorting;\n }\n return sorted;\n};\n\nclass Table extends Component {\n constructor (props) {\n super(props);\n this.table = React.createRef();\n this.tableBody = React.createRef();\n this.fetchData = this.fetchData.bind(this);\n this.getTrProps = this.getTrProps.bind(this);\n this.handleClick = this.handleClick.bind(this);\n }\n\n componentDidMount () {\n const tbody = this.table;\n\n if (tbody) {\n tbody.addEventListener('scroll', this.handleScroll, true);\n this.tableBody = document.getElementsByClassName('ReactTable')[0];\n }\n }\n\n handleClick (e, rowInfo) {\n const selected = this.props.workspacesSelected.filter((x) => x.id === rowInfo.original.id).length > 0;\n\n const {\n workspaceList, workspacesSelected, lastWorkspaceSelected, lastIndexForRange, lastSelected\n } = this.props;\n const leftClickResponse = handleLeftClick(e, rowInfo, '', selected, workspaceList, workspacesSelected, lastWorkspaceSelected, lastIndexForRange, lastSelected);\n if (leftClickResponse) this.props.selectWorkspace(leftClickResponse);\n }\n\n getTrProps (state, rowInfo) {\n const selected = this.props.workspacesSelected.filter((x) => x.id === rowInfo.original.id).length > 0;\n\n return {\n onClick: (e) => {\n this.handleClick(e, rowInfo);\n return true;\n },\n onContextMenu: () => {\n if (!selected) this.props.selectWorkspace({ newRowsSelected: [rowInfo.original] });\n return false;\n },\n style: {\n background: selected ? '#edf2f7' : 'transparent'\n }\n };\n }\n\n fetchData (state) {\n const { isFetching } = this.props;\n const { sorted } = state;\n if (!isFetching) {\n const sorting = getSorting(sorted);\n this.props.setOrderBy(sorting);\n }\n }\n\n render () {\n const {\n workspaceList,\n isFetching,\n showInactive,\n permissions,\n setShowConfirmation,\n setShowWarning\n } = this.props;\n\n const mockData = [...Array(13).keys()];\n\n return (\n { this.table = element; } }>\n \n ws.active) }\n columns={ getColumns(this.props.changeReadOnly, this.handleClick, isFetching, setShowConfirmation, setShowWarning) }\n minRows={ 0 }\n style={ { height: 'calc(100vh - 158px)', boxShadow: '-8px 14px 20px 0px rgba(0, 0, 0, 0.03)' } }\n onFetchData={ this.fetchData }\n manual\n getTrProps={ this.getTrProps }\n showPagination={ false }\n noDataText={ }\n />\n \n { permissions.update.allowed\n ? { } } />\n : null}\n \n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n workspacesSelected: selectWorkspacesSelected(state),\n lastWorkspaceSelected: selectLastWorkspaceSelected(state),\n lastIndexForRange: selectLastIndexForRange(state),\n lastSelected: selectLastSelected(state),\n workspaceList: selectWorkspacesOrdered(state),\n isFetching: selectIsFetching(state),\n showInactive: selectShowInactive(state),\n permissions: state.faraday.permissions.workspaces\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n enableDisable: (ws, value) => {\n dispatch(enableDisable(ws, value));\n },\n changeReadOnly: (ws, readonly) => {\n dispatch(changeReadOnly(ws, readonly));\n },\n selectWorkspace: (index, workspace, selected, reset, shiftPressed) => {\n dispatch(selectWorkspace(index, workspace, selected, reset, shiftPressed));\n },\n setOrderBy: (sorting) => {\n dispatch(setOrderByWorkspaces(sorting));\n }\n});\n\nTable.propTypes = {\n enableDisable: PropTypes.func.isRequired,\n changeReadOnly: PropTypes.func.isRequired,\n selectWorkspace: PropTypes.func.isRequired,\n workspacesSelected: PropTypes.arrayOf(PropTypes.object).isRequired,\n lastWorkspaceSelected: PropTypes.instanceOf(Object).isRequired,\n lastIndexForRange: PropTypes.number.isRequired,\n lastSelected: PropTypes.number.isRequired,\n workspaceList: PropTypes.arrayOf(PropTypes.object).isRequired,\n isFetching: PropTypes.bool.isRequired,\n showInactive: PropTypes.bool.isRequired,\n permissions: PropTypes.instanceOf(Object).isRequired\n};\nexport default connect(mapStateToProps, mapDispatchToProps)(Table);\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n text-align: right;\n margin: 0px;\n box-sizing: border-box;\n display: flex;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: wrap;\n height: 37px;\n margin-bottom: 9px;\n`;\n\nexport const Separator = styled.div`\n &::after {\n margin: auto 0px;\n width: 1px;\n content: ' ';\n background: transparent;\n border-right: 1px #B5BEC6;\n border-right-style: dashed;\n height: 11px;\n }\n`;\nSeparator.displayName = 'Separator';\n\nexport const Group = styled.div`\n display: flex;\n align-items: center;\n`;\nGroup.displayName = 'Group';\n\nexport const LeftGroup = styled(Group)`\n & > *:not(:last-child) {\n margin-right: 15px;\n }\n`;\nLeftGroup.displayName = 'LeftGroup';\n\nexport const RightGroup = styled(LeftGroup)`\n margin-left: auto;\n`;\nRightGroup.displayName = 'RightGroup';\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport AddButton from 'Common/Components/AddButton';\nimport { openModal } from 'store/modals/actions';\nimport { MODAL_WORKSPACE_CREATE_EDIT } from 'store/modals/modals';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const WsAddButton = () => {\n const dispatch = useDispatch();\n return dispatch(openModal(MODAL_WORKSPACE_CREATE_EDIT)) } />;\n};\n","import styled from 'styled-components';\nimport { ReactComponent as TrashIcon } from 'Images/icon-action-bar-trash.svg';\n\nconst Trash = styled(TrashIcon).attrs({\n id: 'qa-delete-ws'\n})`\n height: 17px;\n `;\n\nTrash.displayName = 'Trash';\nexport default Trash;\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n deleteWorkspaceSelected\n} from 'Screens/Workspaces/actions/Actions';\nimport ModalConfirmation from 'Common/Components/ModalConfirmation';\nimport { selectIsFetching, selectWorkspacesSelected } from 'store/Workspace/selectors';\n\nconst DeleteConfirmationModal = ({ onCloseCallback }) => {\n const dispatch = useDispatch();\n const selectedWs = useSelector(selectWorkspacesSelected);\n const isFetching = useSelector(selectIsFetching);\n\n return (\n dispatch(deleteWorkspaceSelected()) }\n handleClose={ onCloseCallback }\n entity=\"workspace\"\n count={ selectedWs.length }\n loading={ isFetching }\n />\n );\n};\n\nexport default DeleteConfirmationModal;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as _Warning } from 'Images/warning-delete.svg';\nimport { slideIn } from 'Styles/effects';\nimport { Accept, Cancel } from '../Button/styled';\n\nexport const ModalContent = styled.div`\n padding: 34px;\n box-shadow: 0 2px 50px 0 rgba(0, 0, 0, 0.24);\n border-radius: 2px;\n border-top: 10px solid ${colors.softBlue};\n background: #fff;\n width: 505px;\n ${slideIn}\n`;\nModalContent.displayName = 'ModalContent';\n\nexport const ModalTitle = styled.div`\n display: flex;\n margin-bottom: 21px;\n`;\nModalTitle.displayName = 'ModalTitle';\n\nexport const Warning = styled(_Warning)`\n align-self: center;\n`;\nWarning.displayName = 'Warning';\n\nexport const Title = styled.div`\n color: ${colors.datk2};\n font-weight: 600;\n font-size: 21.5px;\n margin-left: 13px;\n`;\nTitle.displayName = 'Title';\n\nexport const ModalBody = styled.div`\n\n`;\nexport const BodyText = styled.div`\n color: ${colors.grey19};\n font-size: 12.5px;\n font-weight: 300;\n display: inline-block;\n text-align: initial;\n`;\nBodyText.displayName = 'BodyText';\n\nexport const ButtonsContainer = styled.div`\ndisplay: flex;\njustify-content: flex-end;\nmargin-top: 34px;\n`;\nButtonsContainer.displayName = 'ButtonsContainer';\n\nexport const ConfirmButton = styled(Accept)`\n`;\nConfirmButton.displayName = 'ConfirmButton';\n\nexport const CancelButton = styled(Cancel)`\n margin-right: 10px;\n`;\nCancelButton.displayName = 'CancelButton';\n","import React from 'react';\nimport ModalWrapper from 'Common/Components/ModalWrapper';\nimport {\n ModalTitle, Title, BodyText, ModalContent, ButtonsContainer,\n ConfirmButton, Warning, ModalBody\n} from './styled';\n\nconst ModalWarning = ({\n onCloseCallback, title, description\n}) => {\n return (\n \n \n \n \n { title }\n \n \n { description }\n \n \n \n Ok\n \n \n \n \n );\n};\n\nexport default ModalWarning;\n","import React, { useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { selectWorkspacesSelected } from 'store/Workspace/selectors';\nimport some from 'lodash/some';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport IconButton from 'Common/Components/IconButton';\nimport Trash from './styled';\nimport DeleteConfirmationModal from '../../DeleteConfirmationModal';\nimport ModalWarning from 'Common/Components/ModalWarning';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const WsDeleteButton = () => {\n const selectedWs = useSelector(selectWorkspacesSelected);\n const currentWs = useSelector(selectCurrentWorkspace);\n const [showWarning, setShowWarning] = useState();\n const [showConfirmation, setShowConfirmation] = useState();\n\n const onClick = () => {\n if (some(selectedWs, { name: currentWs })) setShowWarning(true);\n else setShowConfirmation(true);\n };\n\n const onCloseWarning = () => setShowWarning(false);\n\n const onCloseConfirmation = () => setShowConfirmation(false);\n\n return (\n <>\n } title=\"Delete\" onClick={ onClick } />\n { showConfirmation && }\n { showWarning && }\n \n );\n};\n","import styled from 'styled-components';\nimport { ReactComponent as EditIcon } from 'Images/icon-action-bar-edit.svg';\n\nconst Edit = styled(EditIcon).attrs({\n id: 'qa-edit-ws'\n})`\n height: 17px;\n `;\n\nEdit.displayName = 'Edit';\n\nexport default Edit;\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport { showEditModal } from 'Screens/Workspaces/actions/Actions';\nimport IconButton from 'Common/Components/IconButton';\nimport { openModal } from 'store/modals/actions';\nimport { MODAL_WORKSPACE_CREATE_EDIT } from 'store/modals/modals';\nimport Edit from './styled';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const WsEditButton = () => {\n const dispatch = useDispatch();\n\n const showEditionModal = () => {\n dispatch(showEditModal());\n dispatch(openModal(MODAL_WORKSPACE_CREATE_EDIT));\n };\n\n return } title=\"Edit\" onClick={ showEditionModal } />;\n};\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { moreStatusChange } from 'Screens/Workspaces/actions/Actions';\nimport { selectMoreOptionsOpened, selectWorkspacesSelected } from 'store/Workspace/selectors';\nimport isEmpty from 'lodash/isEmpty';\nimport IconButton from 'Common/Components/IconButton';\nimport { ReactComponent as MoreIcon } from 'Images/icon-action-bar-more.svg';\nimport ContextMenuButton from 'Common/Components/ContextMenuButton';\nimport ContextMenuWorkspaceMassiveUpdate from 'Screens/Workspaces/components/ContextMenuWorkspaceMassiveUpdate';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const MoreOptionsButton = () => {\n const dispatch = useDispatch();\n const moreOptionsOpened = useSelector(selectMoreOptionsOpened);\n const selectedWs = useSelector(selectWorkspacesSelected);\n const hasSelectedWs = !isEmpty(selectedWs);\n\n return (\n dispatch(moreStatusChange(true)) } /> }\n trigger=\"massive_update_workspaces_table_nav\"\n display={ hasSelectedWs }\n icon={ } title=\"More\" /> }\n />\n );\n};\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Button = styled.div`\n align-items: center;\n background-color: transparent;\n border-radius: 2px;\n border: solid 1px rgba(144, 169, 192, 0.3);\n cursor: pointer;\n display: flex;\n font-size: 11.5px;\n font-weight: 500;\n height: 34px;\n justify-content: center;\n line-height: 34px;\n padding: 0 10px;\n & > svg {\n margin-right: 10px;\n & > path {\n fill: ${colors.dark2};\n }\n }\n &:hover {\n background-color: #f1f4f7;\n border-radius: 3px;\n border: solid 1px #d8dee5;\n }\n`;\nButton.displayName = 'Button';\n\nexport const Text = styled.div`\n appearence: none;\n color: ${colors.black};\n font-size: 11.5px;\n font-weight: 500;\n line-height: 34px;\n`;\nText.displayName = 'Text';\n","import React from 'react';\nimport { Button, Text } from './styled';\n\nconst CustomButton = ({ onClick, icon, text }) => (\n \n);\nexport default CustomButton;\n","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgGridView = function SvgGridView(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 17,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#1C2243\",\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 0c.55228475 0 1 .44771525 1 1v6c0 .55228475-.44771525 1-1 1H1c-.55228475 0-1-.44771525-1-1V1c0-.55228475.44771525-1 1-1h6zm-.4 1.4H1.4v5.2h5.2V1.4zM16 0c.5522847 0 1 .44771525 1 1v6c0 .55228475-.4477153 1-1 1h-6c-.55228475 0-1-.44771525-1-1V1c0-.55228475.44771525-1 1-1h6zm-.4 1.4h-5.2v5.2h5.2V1.4zM7 9c.55228475 0 1 .44771525 1 1v6c0 .5522847-.44771525 1-1 1H1c-.55228475 0-1-.4477153-1-1v-6c0-.55228475.44771525-1 1-1h6zm-.4 1.4H1.4v5.2h5.2v-5.2zM16 9c.5522847 0 1 .44771525 1 1v6c0 .5522847-.4477153 1-1 1h-6c-.55228475 0-1-.4477153-1-1v-6c0-.55228475.44771525-1 1-1h6zm-.4 1.4h-5.2v5.2h5.2v-5.2z\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgGridView, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/grid_view.580f3d12.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\nimport { ReactComponent as GridViewImage } from 'Images/grid_view.svg';\nimport { disableTextSelection } from 'Styles/effects/text';\n\nexport const Wrapper = styled.div`\n display: flex;\n align-items: center;\n ${disableTextSelection}\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const GridViewIcon = styled(GridViewImage)`\n height: auto;\n`;\nGridViewImage.displayName = 'GridViewImage';\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport CustomButton from 'Common/Components/CustomButton';\nimport { selectShowGridView } from 'store/Workspace/selectors';\nimport { toogleGridView } from 'Screens/Workspaces/actions/Actions';\nimport { Wrapper, GridViewIcon } from './styled';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const GridViewButton = () => {\n const showGridView = useSelector(selectShowGridView);\n const dispatch = useDispatch();\n\n return !showGridView && (\n \n } title=\"Grid View\" text=\"Grid View\" onClick={ () => dispatch(toogleGridView(!showGridView)) } />\n \n );\n};\n","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgListView = function SvgListView(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 13,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.9873423 2.16071436H5.30632932c-.5670887 0-1.01265832-.43214287-1.01265832-.98214289 0-.55000002.44556962-.9821429 1.01265832-.9821429h9.68101298c.5670886 0 1.0126582.43214288 1.0126582.9821429s-.4455696.98214289-1.0126582.98214289zm1.0126582 4.12500014c0-.55000002-.4455696-.98214289-1.0126582-.98214289H5.30632932c-.5670887 0-1.01265832.43214287-1.01265832.98214289 0 .55000002.44556962.98214289 1.01265832.98214289h9.68101298c.5670886 0 1.0126582-.43214287 1.0126582-.98214289zm0 5.107143c0-.55-.4455696-.9821429-1.0126582-.9821429H5.30632932c-.5670887 0-1.01265832.4321429-1.01265832.9821429s.44556962.9821429 1.01265832.9821429h9.68101298c.5670886 0 1.0126582-.4321429 1.0126582-.9821429zM2.43037985 1.17857147C2.43037985.5107143 1.90379755 0 1.21518987 0 .56708859 0 0 .5107143 0 1.17857147c0 .62857145.5265823 1.17857147 1.21518987 1.17857147.68860768 0 1.21518998-.51071431 1.21518998-1.17857147zm0 5.10714303c0-.66785717-.5265823-1.17857147-1.21518998-1.17857147C.56708859 5.10714303 0 5.61785733 0 6.2857145c0 .62857145.5265823 1.17857147 1.21518987 1.17857147.68860768 0 1.21518998-.5107143 1.21518998-1.17857147zm0 5.107143c0-.6678571-.5265823-1.1785714-1.21518998-1.1785714C.56708859 10.2142861 0 10.7250004 0 11.3928575c0 .6285715.5265823 1.1785715 1.21518987 1.1785715.68860768 0 1.21518998-.5107143 1.21518998-1.1785715z\",\n fill: \"#1C2243\",\n fillRule: \"nonzero\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgListView, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/list_view.cacc94c7.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\nimport { ReactComponent as ListViewImage } from 'Images/list_view.svg';\nimport { disableTextSelection } from 'Styles/effects/text';\n\nexport const Wrapper = styled.div`\n display: flex;\n align-items: center;\n ${disableTextSelection}\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const ListViewIcon = styled(ListViewImage)`\n height: auto;\n`;\nListViewIcon.displayName = 'ListViewIcon';\n","import React from 'react';\nimport CustomButton from 'Common/Components/CustomButton';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { toogleGridView } from 'Screens/Workspaces/actions/Actions';\nimport { selectShowGridView } from 'store/Workspace/selectors';\nimport { Wrapper, ListViewIcon } from './styled';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const ListViewButton = () => {\n const showGridView = useSelector((state) => selectShowGridView(state));\n const dispatch = useDispatch();\n\n return showGridView && (\n \n } title=\"List View\" text=\"List View\" onClick={ () => dispatch(toogleGridView(!showGridView)) } />\n \n );\n};\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n display: flex;\n align-items: center;\n margin-right: 14px;\n .checkbox-container {\n display: inline;\n margin-bottom: 0px;\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Text = styled.div`\n color: ${colors.dark2};\n font-size: 11.5px;\n font-weight: 300;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n display: inline;\n`;\nText.displayName = 'Text';\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport CustomCheckbox from 'Common/Components/CustomCheckbox';\nimport { toggleInactive } from 'Screens/Workspaces/actions/Actions';\nimport { selectWorkspacesSelected } from 'store/Workspace/selectors';\nimport { Wrapper, Text } from './styled';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const ShowInactive = () => {\n const dispatch = useDispatch();\n const showInactive = useSelector((state) => (state.workspace.showInactive));\n const workspacesSelected = useSelector(selectWorkspacesSelected);\n\n return (\n 0 }>\n dispatch(toggleInactive()) } key=\"showInactive\" isChecked={ showInactive } id=\"test_id_show_inactive\" />\n Show Inactive\n \n );\n};\n","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgWsLock = function SvgWsLock(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 19,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#264D6D\",\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.9140625 6.9765625H11.576752V3.92505859C11.576752 1.76076562 9.77883984 0 7.56893945 0c-2.20990039 0-4.0078125 1.76076563-4.0078125 3.92505859V6.9765625H2.2265625C.99883594 6.9765625 0 7.97539844 0 9.203125v7.5703125C0 18.0011641.99883594 19 2.2265625 19h10.6875c1.2277266 0 2.2265625-.9988359 2.2265625-2.2265625V9.203125c0-1.22772656-.9988359-2.2265625-2.2265625-2.2265625zM5.04550195 3.92505859c0-1.34580859 1.13202149-2.44068359 2.5234375-2.44068359 1.39141602 0 2.52343755 1.094875 2.52343755 2.44068359V6.9765625H5.04550195V3.92505859zM13.65625 16.7734375c0 .4092422-.3329453.7421875-.7421875.7421875h-10.6875c-.40924219 0-.7421875-.3329453-.7421875-.7421875V9.203125c0-.40924219.33294531-.7421875.7421875-.7421875h10.6875c.4092422 0 .7421875.33294531.7421875.7421875v7.5703125z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5703125 10.6132813c-.75833008 0-1.37304687.6147167-1.37304687 1.3730468 0 .4842032.25085937.9095508.62948632 1.1540274v1.6291758c0 .409873.33227735.7421875.7421875.7421875.40987305 0 .7421875-.3323145.7421875-.7421875v-1.6274317c.38014844-.2441797.63223243-.6703808.63223243-1.1557715 0-.7583301-.6147168-1.3730468-1.37304688-1.3730468z\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgWsLock, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/ws-lock.5d1e24be.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport {\n Wrapper, Group, LeftGroup, RightGroup, Separator\n} from './styled';\nimport { selectWorkspacesSelected } from 'store/Workspace/selectors';\nimport isEmpty from 'lodash/isEmpty';\nimport { WsAddButton, WsEditButton, WsDeleteButton, MoreOptionsButton } from './components/LeftGroup';\nimport { ShowInactive, GridViewButton, ListViewButton } from './components/RightGroup';\n\nconst WSActionBar = () => {\n const selectedWs = useSelector(selectWorkspacesSelected);\n const hasSelectedWs = !isEmpty(selectedWs);\n\n return (\n \n \n \n { hasSelectedWs && (\n <>\n \n \n \n \n \n \n \n )}\n \n \n \n \n \n \n \n );\n};\n\nexport default WSActionBar;\n","import styled from 'styled-components';\n\nconst Wrapper = styled.div`\n height: 100%;\n`;\n\nexport default Wrapper;\n","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _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); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgWsUnlock = function SvgWsUnlock(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 19,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#264D6D\",\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.9140625 6.9765625H5.04550195V3.92505859c0-1.34580859 1.13202149-2.44068359 2.5234375-2.44068359 1.39141602 0 2.52343755 1.094875 2.52343755 2.44068359V5.34375h1.484375V3.92505859C11.576752 1.76076562 9.77883984 0 7.56893945 0c-2.20990039 0-4.0078125 1.76076563-4.0078125 3.92505859V6.9765625H2.2265625C.99883594 6.9765625 0 7.97539844 0 9.203125v7.5703125C0 18.0011641.99883594 19 2.2265625 19h10.6875c1.2277266 0 2.2265625-.9988359 2.2265625-2.2265625V9.203125c0-1.22772656-.9988359-2.2265625-2.2265625-2.2265625zm.7421875 9.796875c0 .4092422-.3329453.7421875-.7421875.7421875h-10.6875c-.40924219 0-.7421875-.3329453-.7421875-.7421875V9.203125c0-.40924219.33294531-.7421875.7421875-.7421875h10.6875c.4092422 0 .7421875.33294531.7421875.7421875v7.5703125z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5703125 10.6132813c-.75833008 0-1.37304687.6147167-1.37304687 1.3730468 0 .4842032.25085937.9095508.62948632 1.1540274v1.6291758c0 .409873.33227735.7421875.7421875.7421875.40987305 0 .7421875-.3323145.7421875-.7421875v-1.6274317c.38014844-.2441797.63223243-.6703808.63223243-1.1557715 0-.7583301-.6147168-1.3730468-1.37304688-1.3730468z\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgWsUnlock, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/ws-unlock.b7653513.svg\";\nexport { ForwardRef as ReactComponent };","import { css } from 'styled-components';\n\nexport const pressed = css`\n &:active {\n transform: translateY(2px);\n }\n`;\n\nexport const hover = css`\n &:hover {\n opacity: 1;\n }\n`;\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\nimport { ReactComponent as LockImage } from 'Images/ws-lock.svg';\nimport { ReactComponent as UnlockImage } from 'Images/ws-unlock.svg';\nimport { disableTextSelection } from 'Styles/effects/text';\nimport { pressed } from 'Styles/effects/click';\nimport { fadeIn, fadeOut } from 'Styles/effects';\n\nexport const Wrapper = styled.div`\n width: 375px;\n height: 465px;\n margin: 0 30px 33px 0;\n padding: 25px 30px 22px 32px;\n border-radius: 2px;\n box-shadow: 0 2px 20px 0 rgba(28, 34, 67, 0.05);\n border: solid 1px ${colors.iceBlue};\n background-color: ${colors.paleGrey};\n text-align: left;\n cursor: pointer;\n ${({ selected }) => selected && `\n border: 1px solid ${colors.blueCerulean};\n `}\n ${({ active }) => (active ? fadeIn(0.55, 1) : fadeOut(1, 0.55))}\n ${disableTextSelection}\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const Title = styled.div`\n font-size: 17px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: ${colors.dark2};\n text-align: left;\n padding-bottom: 8px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n cursor: pointer;\n &:hover {\n text-decoration: underline;\n }\n\n`;\nTitle.displayName = 'Title';\n\nexport const Label = styled.div`\n font-size: 13px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: ${colors.grey19};\n`;\nLabel.displayName = 'Label';\n\nexport const Text = styled(Label)`\n font-weight: normal;\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n`;\nText.displayName = 'Text';\n\nexport const FieldContainer = styled.div`\n display: flex;\n align-items: center;\n padding-bottom: 13px;\n & > *:not(:last-child) {\n margin-right: 8px;\n }\n`;\nFieldContainer.displayName = 'FieldContainer';\n\nexport const ReadOnlyContainer = styled.div`\n display: flex;\n align-items: center;\n flex-grow: 1;\n & > *:not(:last-child) {\n margin-right: 8px;\n }\n`;\nReadOnlyContainer.displayName = 'ReadOnlyContainer';\n\nexport const ActiveContainer = styled.div`\n display: flex;\n align-items: center;\n z-index: 999;\n & > *:not(:last-child) {\n margin-right: 8px;\n }\n`;\nActiveContainer.displayName = 'ActiveContainer';\n\nexport const LockIcon = styled(LockImage)`\n z-index: 999;\n ${pressed}\n`;\nLockImage.displayName = 'LockImage';\n\nexport const UnlockIcon = styled(UnlockImage)`\n z-index: 999;\n ${pressed}\n`;\nUnlockIcon.displayName = 'UnlockIcon';\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: row;\n flex-flow: wrap;\n margin: 21px 0;\n background: ${colors.white};\n & > *:not(:last-child) {\n border-bottom: 1px solid ${colors.iceBlue};\n }\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const WrapperItem = styled.div`\n flex-direction: row;\n width: 100%;\n display: flex;\n`;\nWrapperItem.displayName = 'WrapperItem';\n\nexport const Item = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1 0 21%;\n margin: 13px;\n text-align: center;\n`;\nItem.displayName = 'Item';\n\nexport const TotalBlack = styled.div`\n font-size: 24px;\n font-weight: 600;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: ${colors.dark2};\n`;\nTotalBlack.displayName = 'TotalBlack';\n\nexport const TotalGrey = styled(TotalBlack)`\n color: ${colors.blueGrey};\n`;\nTotalGrey.displayName = 'TotalGrey';\n\nexport const TotalPurple = styled(TotalBlack)`\n color: ${colors.warmPurple};\n`;\nTotalPurple.displayName = 'TotalPurple';\n\nexport const Label = styled.div`\n font-size: 10px;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: ${colors.grey6};\n`;\nLabel.displayName = 'Label';\n","import React from 'react';\nimport { PropTypes } from 'prop-types';\nimport {\n Wrapper, Item, Label, TotalBlack, TotalPurple, TotalGrey, WrapperItem\n} from './styled';\n\nconst Stats = ({\n totalVulns, totalAssets, totalServices, totalConfirmed, totalCritical, totalOpen\n}) => (\n \n \n \n { totalVulns }\n \n \n \n { totalAssets }\n \n \n \n { totalServices }\n \n \n \n \n \n { totalConfirmed }\n \n \n \n { totalCritical }\n \n \n \n { totalOpen }\n \n \n \n \n);\n\nStats.propTypes = {\n totalVulns: PropTypes.number.isRequired,\n totalAssets: PropTypes.number.isRequired,\n totalServices: PropTypes.number.isRequired,\n totalConfirmed: PropTypes.number.isRequired,\n totalCritical: PropTypes.number.isRequired,\n totalOpen: PropTypes.number.isRequired\n};\n\nexport default Stats;\n","import styled from 'styled-components';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const Wrapper = styled.div`\n`;\nWrapper.displayName = 'Wrapper';\n","import styled from 'styled-components';\nimport colors from 'Styles/colors';\n\nexport const Wrapper = styled.div`\n border: 1px solid black;\n background-color: #FFF;\n width: 190px;\n height: 190px;\n padding: 12px 20px;\n border-radius: 2px;\n border: solid 1px #d9e4ef;\n`;\nWrapper.displayName = 'Wrapper';\n\nexport const StringDate = styled.p`\n font-size: 17px;\n font-weight: 500;\n color: #63758d;\n padding-bottom: 10px;\n`;\nStringDate.displayName = 'Date';\n\nexport const VulnsWrapper = styled.div`\n display: flex;\n margin-bottom: 5px;\n`;\nVulnsWrapper.displayName = 'VulnsWrapper';\n\nexport const VulnType = styled.span`\n font-size: 16px;\n color: ${(props) => props.color};\n width: 48px;\n margin-right: 60px;\n`;\nVulnType.displayName = 'VulnType';\n\nexport const VulnCount = styled.span`\n font-size: 16px;\n font-weight: 600;\n color: ${colors.grey19};\n\n`;\nVulnCount.displayName = 'VulnCount';\n\nexport const Separator = styled.hr`\n height: 0;\n background-color: #edf2f7;\n margin: 12px 5px 8px 5px;\n`;\nSeparator.displayName = 'Separator';\n","import React from 'react';\nimport moment from 'moment';\nimport colors from 'Styles/colors';\nimport {\n Wrapper, StringDate, VulnsWrapper,\n VulnType, VulnCount, Separator\n} from './styled';\n\nconst Flyout = ({\n data, datum, x, y\n}) => {\n const dateFormatter = (d) => moment(d).format('ll');\n return (\n data && data.map((d) => (\n \n \n \n {dateFormatter(datum.date)}\n \n Critical\n { datum.critical }\n \n \n High\n { datum.high }\n \n \n Medium\n { datum.medium }\n \n \n \n Confirmed\n { datum.confirmed }\n \n \n \n \n ))\n );\n};\n\nexport default Flyout;\n","import React from 'react';\nimport { VictoryStack, VictoryBar, VictoryTooltip } from 'victory';\nimport { Wrapper } from './styled';\nimport Flyout from './components/Flyout';\n\nconst Histogram = ({ data }) => (\n \n {data &&\n (\n \n '' }\n labelComponent={ (\n }\n />\n ) }\n barWidth={ 15 }\n />\n '' }\n labelComponent={ (\n }\n />\n ) }\n barWidth={ 15 }\n />\n '' }\n labelComponent={ (\n }\n />\n ) }\n barWidth={ 15 }\n />\n \n )}\n \n);\n\nexport default Histogram;\n","import React from 'react';\nimport CheckBox from 'Common/Components/Checkbox/styled';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n changeReadOnly, enableDisable, selectWorkspace, updateWS, workspaceSelectedFromTable\n} from 'Screens/Workspaces/actions/Actions';\nimport TimeAgo from 'react-timeago';\nimport get from 'lodash/get';\nimport { PropTypes } from 'prop-types';\nimport moment from 'moment';\nimport {\n Wrapper, Title, Label, Text, FieldContainer, ReadOnlyContainer, ActiveContainer, LockIcon, UnlockIcon\n} from './styled';\nimport Stats from '../Stats';\nimport Histogram from '../Histogram';\nimport Importance from 'Common/Components/Importance';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\n\nconst WorkspaceItem = ({\n ws, selected, setShowConfirmation, setShowWarning\n}) => {\n const dispatch = useDispatch();\n const updateDate = get(ws, 'update_date', null);\n const lastRunAgent = get(ws, 'last_run_agent_date', null);\n const currrentWorkspace = useSelector(selectCurrentWorkspace);\n\n const handleSelectWorkspace = () => {\n dispatch(selectWorkspace({\n rowSelected: selected ? {} : ws,\n newRowsSelected: selected ? [] : [ws],\n lastSelected: -1,\n lastIndexForRange: -1\n }));\n };\n\n const handleSelect = () => (ws.active) && dispatch(workspaceSelectedFromTable(ws.name, get(ws, 'stats.total_vulns', 0)));\n\n const toggleActive = (e) => {\n e.stopPropagation();\n if (currrentWorkspace === ws.name) {\n setShowWarning(true);\n } else {\n if (e.target.checked) {\n dispatch(enableDisable(ws.name, !e.target.checked));\n } else {\n setShowConfirmation({ show: true, ws: ws.name });\n }\n }\n };\n\n const toggleReadOnly = (e, value) => {\n e.stopPropagation();\n dispatch(changeReadOnly(ws.name, !value));\n };\n\n const parseDate = (d) => {\n const today = moment();\n const isToday = moment(d).isSame(today, 'day');\n if (isToday) return 'Today';\n return moment(d).format('ddd D MMM YYYY');\n };\n\n const parsedDateRange = (ws) => {\n const startDate = get(ws, 'duration.start_date', null);\n const endDate = get(ws, 'duration.end_date', null);\n if (!startDate || !endDate) return 'No start or end date defined.';\n return `${parseDate(startDate)} - ${parseDate(endDate)}`;\n };\n\n return (\n \n \n dispatch(updateWS(ws.name, { importance })) } />\n \n { ws.readonly ? toggleReadOnly(e, true) } /> : toggleReadOnly(e, false) } />}\n { ws.readonly ? 'Read Only' : 'Editable' }\n \n \n \n { ws.active ? 'Active' : 'Inactive' }\n \n \n\n { ws.name }\n \n { parsedDateRange(ws) }\n \n \n \n { ws.description }\n \n \n \n \n \n { updateDate ? :
}\n \n \n \n \n \n { lastRunAgent ? :
}\n \n \n \n \n );\n};\n\nWorkspaceItem.propTypes = {\n ws: PropTypes.instanceOf(Object).isRequired,\n selected: PropTypes.bool.isRequired\n};\n\nexport default WorkspaceItem;\n","import styled from 'styled-components';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const Wrapper = styled.div`\n display: flex;\n flex-wrap: wrap;\n padding: 12px;\n overflow: scroll;\n height: 100%;\n justify-content: center;\n`;\nWrapper.displayName = 'Wrapper';\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport {\n selectShowInactive, selectWorkspacesOrdered, selectWorkspacesSelected\n} from 'store/Workspace/selectors';\nimport some from 'lodash/some';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport WorkspaceItem from './components/WorkspaceItem';\nimport { Wrapper } from './styled';\n\nconst GridView = ({ setShowConfirmation, setShowWarning }) => {\n const workspaceList = useSelector(selectWorkspacesOrdered);\n const workspacesSelected = useSelector(selectWorkspacesSelected);\n const showInactive = useSelector(selectShowInactive);\n const currentWorkspace = useSelector(selectCurrentWorkspace);\n\n return (\n \n { workspaceList.filter((ws) => ws.active).map((ws) => ) }\n { showInactive && workspaceList.filter((ws) => ws.name !== currentWorkspace && !ws.active).map((ws) => ) }\n \n );\n};\n\nexport default GridView;\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n enableDisable\n} from 'Screens/Workspaces/actions/Actions';\nimport { selectIsFetching } from 'store/Workspace/selectors';\nimport ModalWrapper from 'Common/Components/ModalWrapper';\nimport {\n ModalTitle, Title, BodyText, ModalContent, ButtonsContainer,\n ConfirmButton, CancelButton, Warning, ModalBody\n} from 'Common/Components/ModalConfirmation/styled';\n\nconst DeactivateConfirmationModal = ({ onCloseCallback, show, ws }) => {\n const dispatch = useDispatch();\n const isFetching = useSelector(selectIsFetching);\n\n const handleSubmit = () => {\n dispatch(enableDisable(ws, true));\n onCloseCallback();\n };\n\n if (!show) return null;\n return (\n \n \n \n \n {'Deactivate Workspace'}\n \n \n {'You’re deactivating a workspace. Are you sure you want to proceed?'}\n \n \n \n Cancel\n \n \n Deactivate Workspace\n \n \n \n \n );\n};\n\nexport default DeactivateConfirmationModal;\n","/* eslint-disable react/destructuring-assignment */\nimport React, { useEffect, useState } from 'react';\nimport { Redirect } from 'react-router-dom';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectRedirect, selectShowGridView } from 'store/Workspace/selectors';\nimport { selectCurrentWorkspace } from 'store/Faraday/selectors';\nimport { stopRedirect, getData, selectWorkspace } from 'Screens/Workspaces/actions/Actions';\nimport { setSelectedEntity, resetFilters } from 'store/Filters/actions';\nimport Table from './components/Table';\nimport WSActionBar from './components/WSActionBar';\nimport Wrapper from './styled';\nimport GridView from './components/GridView';\nimport DeactivateConfirmationModal from './components/GridView/components/ DeactivateConfirmationModal';\nimport ModalWarning from 'Common/Components/ModalWarning';\n\nconst Workspace = () => {\n const dispatch = useDispatch();\n const currentWorkspace = useSelector(selectCurrentWorkspace);\n const redirect = useSelector(selectRedirect);\n const showGridView = useSelector(selectShowGridView);\n const [showWarning, setShowWarning] = useState();\n const [showConfirmation, setShowConfirmation] = useState({ show: false, ws: '' });\n\n useEffect(() => {\n dispatch(getData());\n }, [dispatch]);\n\n useEffect(() => () => {\n dispatch(resetFilters('workspaces'));\n dispatch(setSelectedEntity(''));\n dispatch(selectWorkspace({\n rowSelected: {},\n newRowsSelected: [],\n lastSelected: -1,\n lastIndexForRange: -1\n }));\n }, [dispatch]);\n\n if (redirect) {\n dispatch(stopRedirect());\n return ;\n }\n\n return (\n \n \n { showGridView\n ? \n :
\n }\n { showConfirmation.show ? setShowConfirmation({ show: false, name: '' }) } show={ showConfirmation.show } ws={ showConfirmation.ws } /> : null}\n { showWarning && setShowWarning(false) } title={ 'Deactivate Workspace' } description={ 'The Workspace you´re currently using can´t be deactivated. Switch to a different Workspace and retry.' } /> }\n \n );\n};\n\nexport default Workspace;\n","import React from 'react';\nimport { Route, matchPath } from 'react-router-dom';\nimport { useDispatch, useSelector } from 'react-redux';\nimport get from 'lodash/get';\n\nimport { selectLocation } from 'store/Router/selectors';\nimport { checkWorkspace } from '../Screens/Faraday/actions/Actions';\n\nconst AppRoute = ({\n exact, path, component, edit\n}) => {\n const Component = component;\n const dispatch = useDispatch();\n\n const location = useSelector((state) => selectLocation(state));\n const match = matchPath(location.pathname, {\n path,\n exact: true,\n strict: false\n });\n const ws = get(match, 'params.ws', '');\n const params = get(match, 'params', {});\n\n return (\n } onEnter={ dispatch(checkWorkspace(ws)) } />\n );\n};\n\nexport default AppRoute;\n","/* eslint-disable react/jsx-max-depth */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.scss';\nimport { Provider } from 'react-redux';\nimport { Switch } from 'react-router-dom';\nimport { PersistGate } from 'redux-persist/lib/integration/react';\nimport ReactBreakpoints from 'react-breakpoints';\nimport IntlProviderContainer from 'settings/IntlProvider';\nimport * as Sentry from '@sentry/react';\nimport { Integrations } from '@sentry/tracing';\nimport { SENTRY_DSN } from 'settings/constants';\nimport { ConnectedRouter } from 'connected-react-router';\nimport App from './App';\nimport { persistor, store, history } from './store/Store';\nimport ApplicationRoutes from './Routes/Routes';\nimport AppRoute from './Routes/AppRoute';\n\nconst breakpoints = {\n first: 900,\n second: 1200,\n third: 1800,\n fourth: 2500\n};\n\nconst { Routes } = ApplicationRoutes;\n\nSentry.init({\n dsn: SENTRY_DSN,\n integrations: [new Integrations.BrowserTracing(\n {\n beforeNavigate: (context) => ({\n ...context,\n name: window.location.pathname\n .replace(/[a-f0-9]{32}/g, '')\n .replace(/\\d+/g, '')\n })\n }\n )],\n tracesSampleRate: 1.0 // Be sure to lower this in production\n});\n\nSentry.setTag('build_version', process.env.REACT_APP_VERSION);\n\n// Global store reference - used for fetchApi dispatch\nwindow.store = store;\n\nReactDOM.render(\n \n \n \n \n \n \n \n {Routes.map((route) => (\n \n ))}\n \n \n \n \n \n \n , document.getElementById('root')\n);\n","// import asyncRoute from '../asyncRoute';\nimport LogOutForced from 'Common/Components/LogOutForced/index';\nimport Wizard from 'Screens/Wizard/components/Main';\nimport ForgotPassword from 'Screens/ForgotPassword';\nimport ResetPassword from 'Screens/ResetPassword';\nimport Agents from 'Screens/Automation/Agents';\nimport Host from 'Screens/Host';\nimport Dashboard from 'Screens/Dashboard/components/Dashboard/index';\nimport NotFound from '../Screens/Errores/NotFoundContainer'; // 404\nimport Login from '../Screens/Login/components/Login';\nimport KnowledgeBase from '../Screens/KnowledgeBase/components';\nimport Manage from '../Screens/Manage';\nimport Workspace from '../Screens/Workspaces';\nimport Swagger from 'Screens/Swagger';\n\nconst ApplicationRoutes = {\n Routes: [\n {\n path: '/automation/agents', exact: true, component: Agents, isPrivate: true, requireWorkspace: false\n },\n {\n path: '/login', exact: true, component: Login, isPrivate: false\n },\n {\n path: '/forgotpass', exact: true, component: ForgotPassword, isPrivate: false\n },\n {\n path: '/resetpass/:hash', exact: true, component: ResetPassword, isPrivate: false\n },\n {\n path: '/', exact: true, component: Workspace, isPrivate: true\n },\n {\n path: '/knowledge_base', exact: true, component: KnowledgeBase, isPrivate: true, requireWorkspace: false\n },\n {\n path: '/manage/:ws/:id?', exact: false, component: Manage, isPrivate: true, requireWorkspace: true\n },\n {\n path: '/host/:ws/:id?', exact: true, component: Host, isPrivate: true, requireWorkspace: true\n },\n {\n path: '/workspaces', exact: true, component: Workspace, isPrivate: true\n },\n {\n path: '/feed/:ws', exact: true, component: Dashboard, isPrivate: true, requireWorkspace: true, edit: false\n },\n {\n path: '/wizard', exact: true, component: Wizard, isPrivate: true, requireWorkspace: false\n },\n {\n path: '/api-definitions', exact: true, component: Swagger, isPrivate: true, requireWorkspace: false, edit: false\n },\n {\n path: '/logout', exact: true, component: LogOutForced, isPrivate: true, requireWorkspace: false, edit: false\n },\n {\n path: '/404', exact: true, component: NotFound, isPrivate: false, requireWorkspace: false, edit: false\n },\n { component: NotFound }\n ]\n};\n\nexport default ApplicationRoutes;\n","import React from 'react';\nimport SwaggerUI from 'swagger-ui-react';\nimport 'swagger-ui-react/swagger-ui.css';\n\nconst Swagger = () => {\n return ;\n};\n\nexport default Swagger;\n","module.exports = __webpack_public_path__ + \"static/media/generic_file.f9988671.svg\";","module.exports = __webpack_public_path__ + \"static/media/ff_users.ea35eac5.png\";","module.exports = __webpack_public_path__ + \"static/media/faraday_loadingbar.13bdbd54.gif\";","module.exports = __webpack_public_path__ + \"static/media/ff_tags.ccc5427b.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfjBBYRBRJP3CFFAAABgklEQVQ4y43Rv2tTURjG8U9TtcYfwdJCinqlKvgDp2InwaVgnQVH6X+gk4Kru6tDN0GKQ8HOHYQO0kFxEkwtCZYObYcYqdpob5J7HWK992pyyXuWe977fJ/nPefQv4puWbLgpIFq1EM7ml4qDCIfMqcqUvNgMP8L5rU1LTiT/XGoDxCY9NUrz+z8G52uskkjNm0pu4YvSk74ppJgCTBhzoyygh8qPui44qpxR7RsW/ZcI+191rwNoVgssqtmXV1bLBYLVT11LDlDwX13jP/JG1JSyox62Cm/tJLGlLW/br3Wd4supx0eaeTIY5/MHki7r3jd0Zw3CW14kwUmDOcALXXNLJBfBcVE1/1oiHKAEacFWaAqzE0I3FXsbrqzj7rteA5SFNhSt3fQOKeik3uxbTX3kpE2rSZ0zxo25ny6MWMtN6Pto0vpa13x2m5f/1jDovVs86IV+338f1o29r/PrPdaIh37mvY0hToiobeme0fftGTbqsemBW544p3PXphKJL8Br7CtRvnkhDcAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTktMDQtMjJUMTU6MDU6MTgrMDI6MDBdo7oaAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE5LTA0LTIyVDE1OjA1OjE4KzAyOjAwLP4CpgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/ff_pipelines.165eec78.png\";","module.exports = __webpack_public_path__ + \"static/media/tool_logo_wpscan.92adc6c5.png\";","module.exports = __webpack_public_path__ + \"static/media/tool_logo_openvas.88898507.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAApgAAAKYB3X3/OAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAMSSURBVEiJrZVdaJNnFMd/5+3bvH4kJiltTKhto25t2vnN0EkLs7Vz3ijCCmPQwS6qCOLVvHH40Qu9EhQRHETQu8FkSO+EblmT1o+a2fpVlZa5zrKKkUmsfbWpLn286BuNIV/FHTg3z3nO+b3P/znPeVFKUcgBH7AfuALEgJ+AdUXlFlHcBtwGVIbHgJr/A9CSpXjKzxXK1yhs1cA08BLA4/EMulyuISu2ulByMQBEZMrr9d4HcLvdCZ/P99wKNYhISd7kIiT6hlk5ZqxTJC1PyVT7oRIlgeSeLWV9D08F9BPf+gZEMNPi3nzJxQAWACX3xl+pX/qf3ThwPuaoqfHfB/6z4l98KKCxo6MjsnDpJhW87kz+2nNJRkdHNzQ0NFyz4rtFxJ0zu4D+20VkwjRNU2VYNBod4d09BOf8DpjV9t/m5uZwZvGUeTyeAd41wMa5Ao4CyZGRkbFcgM7Ozr60U9wC9KIAgAE8qaqqiuYqrpRS8Xh8AkikQb4vFtAOqGAw2J8PoJRSfr+/Pw0wCZQVA/gdeJFIJBKFAK2trWHen08b0mvlatM1IqIMwzAK9fDk5KRkLLnytilp07O7u/tOvq8Ph8N3DcP4K+MEK7NKBDiB48D03i/Le41SeSAiZldX141cgLq6uivA6wzA3lyAhxWL9OuHv1p8+dHpetV7aNnfwJSImKFQaCgboLKyMuqvsF0V4anPpf+x41NnD3ANKMkGMEM/LH/w6HS9SvnXn7l6ANXY2BjJLD48PDymaVps37aKvtT+0ZOBqXK7PgiEUm9CAxCRBcDCMofmSL+fY+3epnml8qfNZlOptfHx8VhbW1s4EAjYZ2ZmPKuWGG9zNEHbvMI+AdQDDgDditUAyYPnH9/dutZh3/yJo9Y5X1uka6Lv21bx5MiFns81TZtQShnAYssBqC63OQF+GzJv7zzzj336tXID25VS8fe6CNgC/AgMAK/K7frgrpayyPqP5kesy3sMRIGLwE3gKaDam9zhVdXzepn9Ge0nY1zkG3TfAT8DEWBrjn0nLdBZ4ONse94A2M/e2Ss17kAAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/ff_2fa.efd0850b.png\";","module.exports = __webpack_public_path__ + \"static/media/ff_saml.119fe76f.png\";","module.exports = __webpack_public_path__ + \"static/media/ff_ldap.e96f786d.png\";","module.exports = __webpack_public_path__ + \"static/media/mini-terminal.f5a8e1d0.svg\";","module.exports = __webpack_public_path__ + \"static/media/faraday-logo.6f6c122b.svg\";","module.exports = __webpack_public_path__ + \"static/media/help.61ace590.svg\";","module.exports = __webpack_public_path__ + \"static/media/ff_analytics.b39bc4e5.png\";","module.exports = __webpack_public_path__ + \"static/media/ff_planner.7afb07e6.png\";","module.exports = __webpack_public_path__ + \"static/media/ff_reporting.a9a7890d.png\";","module.exports = __webpack_public_path__ + \"static/media/ff_scheduler.b29ac5ec.png\";","module.exports = __webpack_public_path__ + \"static/media/faraday_logo.3af44fcb.svg\";","module.exports = __webpack_public_path__ + \"static/media/tool_logo_w3af.221ef0f2.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/tool_logo_arachni.ac5b15cb.png\";","module.exports = __webpack_public_path__ + \"static/media/tool_logo_nikto.9acc1459.png\";","module.exports = __webpack_public_path__ + \"static/media/tool_logo_nessus.8ed3098d.png\";","module.exports = __webpack_public_path__ + \"static/media/tool_logo_nmap.9a81da35.png\";","module.exports = \"data:image/png;base64,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G23EdFg67bzzzryUAs3rr7+u6tevz39bbbUVAxYEEka2Cy+8UNEeQ/Xv3z+IROJKAIFly5ape+65h/sF2MVAOWjQIIUZrBiu6IqxYsUK9dJLL6mHHnpIvffee2rVqlVq8803V82bN1d77LEHzxjYO8ydO1dde+21auONN1ZQBowMGOnPOOMM7tTfffedWrt2rUJ5f/zxh6JNt5oyZYqaPXu2+v7771l5cOpEuylVvXp1VqJ9991Xde3alZVohx12KAZ+UmZMCGy55ZbcR95//33el6LvNGnSpHi1h27LC0igEV8PGDCAT5JoytO33XabJg0PLfHMM8/U1Jn1zJkzmeavv/7StFnWdNSqX3755dB8JoFmBT1q1Cj9yiuvmCh+kjLpcePG6eOOO07TvoT5wcnURRddpEmhPLQSyA+Bd955R9NAxlhSr9S0x8gvY4lRYYStVHfvvfcyaLRs0f/8809eZS9fvpyPUqEMb7/9tqaNNh+90uziyb948WL9wQcf6Dlz5njiERg5ciTXe//992ekuRHgacKECfqAAw5gelrKaVqruiR5+X/++WdNJ2KaZjbm9+qrr9a0/NM33nij3mmnnWzHQefBX7169XS/fv00ncKFlo/8OHJG+/F39NFHh9KaBNo76c0224z5AC+PP/64SQp9vvnmm1w2jsoNf+6zWbNmmu6V9MKFCzPKqKhiYNCimV8fcsgheosttsior3Hjxhp9BYNYLgcZAxe0EwPd119/nStL5PRKVwxa92ua4jTtAyrEFIRlRqIbbrjBk/e1117TdHqVASod3Xrohg0bxjR0MeiJzxagS0G95557arpI1HTqlY3Uk4YOjnaaDkUHCdaP+MMOO0x369ZN00mYjTe0iIcS+B3i6LLT0vfo0cNPkhGmvRd3FFP2mDFjMmgQQXs6njkNnftER6OliqccpNNBhf7yyy895eWrGLTk1XQxa9vi1le7dm3u4G4c/HQxq5977jlPfW7gvvvus+VhMPDz5tIW6q90xZg3b57GKEB3DBqdLl93wQUXcKOxfPJ37KOOOsoC4oKJOmi/4anihBNOYNC/+uorT3yuwBtvvMFLt759++Yi5XS/YoCv888/PzQvlnpG8UFLdy8ZtMVSDCxRN910U4shRl3MbP7LUpchzKKYvczy1qTloxh0pK5pr2jrw8xEhyWmCM+Tjup1r169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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/tool_logo_insightVM.f0295560.png\";","module.exports = __webpack_public_path__ + \"static/media/tool_logo_qualys.8f7b2a7f.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAAAgCAYAAADKbvy8AAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGYktHRAD/AP8A/6C9p5MAAAzxSURBVGje7Zp7fF1Vlce/59xHbpLmudMkfaVNX5TSYps2aZMBCrSoRRgqIDAiHR46IEWlDGjVeeDMfEYdR8cZioIdcFS0ijPaFiwvxUIfCbRNk75N+m7SpElWHjfJTe695zF/nHPhcrk3TYOfT7Sf/j6f81mfs/faa+291n6stc/RGCGq55VPN/v6brAikWs0TZ8FdjeavtWTmfFa1YG6V0Yq9yLOD9pIGm2bPvtJTOPBQGkpGdOm4i8qxOzrZ+DkSQaOHcfo6an35ubeV1m3c/doD/BCx3k58K2FlVqko6PGpwoqiu+4lczZs9E8HjCimKaFhk20vQN59bf0vL0Tb3b29ZV7d7802oO8kKGfD3OkQ37pLyqsKP3KF8mpXIwR7MW2LDzZ2XjSAxhd3Wg+H+PuupO8q5dgBns318yvmDLag7yQ4U1WWD2vvNQKha61BsMLbNsq0DS9HU2L6j7fLRPu/mt8+XmET54iZ/Ei0qdMBt2ZB9GODrq2bifU2EjBR64jcvYsoT80PgV8dLQHeqHiPVtozYLFuUZn1xO2bX0qMLmE9MkleHNyMfv6CO6uZcxlsxn/6XsJNzejrluGv7goqdDm/34WM9hLVDpp+/UGNL9/UmX9rqbRHuyFiHdWYM38ioWR1tZNmTNnjiu4YTmB0lI8gQC2bWObJnlLrsS2LAZOnCBz5syUzgPIX3oNTU+tw5eXh7+4mHBLy9XAcyPtpIjcDdwIFAMngA1KqV+OtvH+FOAFqClbpCJtbTtyKyt9Ex74DJpHJ9LWju3zofl9WIYBuo4diWKG+vHl5w0pNFBSgjcrC2twEE/WGGgyZ4y0gyLyOnBNXFEV8EkReV4pdftoG3C04QWIdnb9b+all/omPng/ZjCIbdtkly8kMGkimtcLlsVgUzPBnbsINTZiW9bQUm0bs7cXyzDBNEHTzZF0TkT+Fcd5vwI+q5RqE5EJwFeBnATeNEBTSg0mkeMHfEqp/iF0jQeygW6lVOsf29AiogOZSqneEbb3A3ri+PTqyxfM1f3+qwtvXoEVCWObJgUfW0566RTHeQC6TqBkEoW3fJz0adMIniO969u3n9DRY2BbGL19aF7voRGO+z6X3qaUagNQSjUrpR5USt2ZwHsMOCEiyVKjN4EmERmXxDArReQo0AwcAlpEZL+I/FUS3o+KyCER6RYR231aRWStiJQNYXwFHAfaROSfUvAsdWUfFpFbk7DUAnsTC3Wzr+/2jBnTSJswnkhbO3nLrkXz+VJadNxdd9J/4GBKJ9rRKE3f/wF6IIDRE3RSC79vywgdGFvq04fBOx5IdTBfAuQCGQlG+3fgR8BU4CfAt3FW+2XAz0TkHxLkLABmAd3AJuAloB9YBewWkU+n0H8HUAIEgK+k4Kl0ZV8CrHdXXDxmAe87inTbMK9NnzIZ2zTwFRTgzc4e0kqejHSyyxdw+om1yMuvEpVOwHFccOcuGh55jMFTp/AXKAaOHsM2os9V1u1sH4HzcI0KsElE5p+DNwKk2qo7XGrEOW8p8LfAKaBAKbVSKfWoUuoWoAxn8nxNRKbFyelx6Rql1E1KqeuVUtOAZW75OhGZm0T/F4EW4BnAIyIrkvDEttZ6nKPt8YT6dkDe50DN553lzc3D6uvHmzVmWFYNlEzCtixa1/+Co4//M0f//nEaVj/Gka/+IwMnT5MxYwahxqNE2tpqqg7tvWuEzgNYA9QBM4FaEXlaRGan4PUAKKXsJHVGkrJHXPp5pdR7DKOU2gN8I1afpG1hAv/vgEcT5AIgIrNwVt8zwANucapVCPAYcAT4soic0yE6tt1h9vdjRQ3Mvv5z8QMQ7ezCCkfxjx0LwOCp00Q7u/AXFaF7vXRv207Pzl2YoVDD9llzy6vnlY8bluAEKKUspdR84D/dor8BDojI2iTsEddgU0RkcvyDs3UlosqlW1Oof8OlFUnqkp2zsd3i+oTyz7j0eaWUgbPSykUkK4Xeet49+7/BOaDbtr09fOYMmkd3Ao9hoHtHNb68HMKtrYQOHsLo6WHg2DFCDQ1Eu7sIlExCfXgZWWXzV/qUetvs7TuxrfSSH9WULRo/LAUJUEo9jHPG/ZtbtEpEfu9GdjE04azC4zi5YvwzJV6eiGTjnImDSqnOFGr7XDqsbSkWZAGFIhIfRDwEBJVS+9z3d8aQQtRspdSbONv1KhHJdcs9yZi9nvT0FwZPnrrb6O3F6O6hY/PLFFyf+uarY/NL9O7cTeblcxg4foJgXT26z0fulVXkXvEXpI2fgCcjHQArEsEaGGDwxEl/55Y3V4YaGm6unlv2qcp9tRtH4MQW4Esi8izwe+Bq4Dbg5y5LHmADT+CcX5r7DnAPCWmHi6HugmOXHAbDgIjEG9h0yz4M+IEvx43jX0Tka8AXSL7CClz6eZwA6z/c/lvJ+qvrgcDGSHv7QO+eOtLGj0NeeZX2TS9Aklyv48XNnPruWgIlkzDaOwg1HsWv8il5+HOUrH6YjOnT0XQN24hiGwaWYWAbBhkzZzJp1QPkL712jNHbt6H68gUrzteBcQb4A/Bf7uvl8VWApZT6glJqtVLqYZeuxlmd8TKCODPcLyJjU6ly6alhdm2qS/cqpWLGi6U694jIa+7zG9cRxe75mAjD7eOP3X7fLSL5wAGSrELv4tq3zOo5ZZ/s2VHza1++In3qVDo2v0Lv7joyLpmBNzcXo7OL3vp6gnvqSRtXDB4PwZ27sE2DiZ99iJzFiwgdPUp6SQkZC8vw5uSgeb1Yg2EiZ88S3LmLcGsLY2+6Eduy6Hp9y69q5ldMXLzn7TOprCEiHqVUqqgy3aXxSXEUJ8LTkgQyaUlkvA1cBywHfpyk/h6Xrk9SF01SFgt2nnf7n4WTPtg4Qcyc+OHhTJAvxelJhgdx0pVvuXLeZw8doHJ/7QbQvtmx+SX69x8gMHEC0a4u2je+SNP3nqblJ88ROnqcjKmlYFn01u4h3NJC4cdXkLOoglBjIzkV5eRedYUTyAQCaF4vnjGZpE+bStHtnyAweTL9hw6jli1lzJzZmhEMfp+hMV9E9orIDQmOXcC7Ed8GRo4nXPqkiLwnUBGRNTh3r61KqZ/HVcWCFzOON9PlfwhnVccCrJtwts+nlFI5Sikt9uDkfOCsrmSTCwCl1AvAPuBenCPjdFIHAlQdql8D3Nv15jar8/UtRM6exZM1hrTx4/AXFgI2A8eO0bf/QH9E5HcZ06fbeVddwcDJk2ReNpuMmUNcd2oaY2/8GL78PCLt7WTNn4fm9f5l9bzy1DfizvYxF3jBvfFoEJFWYBdOQv6AUir+hsdPioMeiOVy7wQXrnG+jROkvCUiba4OG/g6Tu64JEFO7Bx9SkTCImLhBDtfx7kJqlBK9bjn4ZOxCZLEMY1Ag/saW7n5Lk2MTmOph4eE9AUSvgdWHaj7Yc38iq3hlpY7wmfOXKOnpy/S09IybcMwrMHBXdj2Fs3vfxLLvj19yuSluvu1Irss5S3Se5B35ZU0P/tDfEqRVlxE+Gz7cuB/kvEqpVrdJPo+4BM4tzFB4GfAOqXUloQmGwBPijxwHU4k2pmg41ER2QasBJa6OhpcHWsT80NgszsZClxDR4FGYKtSKn6r9QEHgSNKqQMpzHE/8Hdx7zXAa8DhhD7uEJFHgA8B77v+GvKXiuoPLVRY1nh0vbOyfldzrHzrlJlHim69eVp2xUL8hWPJW3LVsBxomyYnv/UdbMukt7aO3vq9P7jiyKH7h9X4IpLCO1RlZf0uIeH6pnpe+RgrFJrizc7CHBhATwswXGgeD57MTAabmtEDaWiaVjjsxheRFOf1TwyABmHbsjrNUAg7GsUaHDiv9tHuLqzBQcyBMGj68K5+LiIlztuBi+t2Rm3D2BFuaUHTPYSbW4bdNny6idDhBjSPBzPYAx5977AbX0RSnLcDAXSfvzrc3AK27V6hNQ6rXdvGTZj9IazBAYyubnSf7zejbYA/d4zMgZkZGwdPnybU0IgvL5fWn64n0j70FyN5+VXaN71IoGQS4TOtGP39jZV7dx8YpsqLSAHPSBo903qm4z41Nivc2lqVOecyrHCYrje24QkE8BcXvfslH4i0nqV1/S9oenodgYkTsSMRQocPo3k8tz1ztuX4aBvgzx0j+rU+hm3TZh0MlJRcWrD8I5j9/QwcP05acTGB0lL0QBqRllZ66/cRbmkhY7qTS/ft3YcZCn236mD96tEe/IWAD+TAmrJFWUYw+Ia/oGB+9sIFeHKyMbq7ne+FoRDYNp7cHHR/GkZnJwPHjmNFo9+rOlC36oPovYh38YEcGMP2WXO/o2n65/xFhV5ffh6ejExsbCdd6A9h9PRg9PQ0oetrqvbV/nS0B30h4Y/iQIDqeeWTrMHwCmxriebzXap5vJlYZodlGHWax/Nb3e//v8W1b0U/uKaLiMf/A1OTf2BiLRGDAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/tool_logo_sonarQube.3af1625a.jpeg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVQAAADZCAIAAADwqV9QAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTBGOENENDI0NkVDMTFFQTgzMDNENDY4NzVEOERCMTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTBGOENENDM0NkVDMTFFQTgzMDNENDY4NzVEOERCMTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1MEY4Q0Q0MDQ2RUMxMUVBODMwM0Q0Njg3NUQ4REIxMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1MEY4Q0Q0MTQ2RUMxMUVBODMwM0Q0Njg3NUQ4REIxMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Ph/ZOmEAACE3SURBVHja7J0JeFPF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\"","module.exports = __webpack_public_path__ + \"static/media/tool_logo_tenable.05c390dc.png\";","module.exports = __webpack_public_path__ + \"static/media/tool_logo_zap.62021c39.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAACmAAAApgHdff84AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAI1QTFRF////M5nMLpfRK5XKKZbMKZXMKJXNKpXLKpXLKJbMKZXMKZXMKZXMLpfNL5jNS6XTTqbTT6fUUKfUUajUWKvVZbHYabPZbrXab7bacbfadrnbi8PgjcTgj8Xgj8Xhksbhk8fhlcjin8zkn83kos7kpM/lp9DlqdHmrNPmrdPnuNjpw97rzOLt3Onw9fX17t/nZgAAAAx0Uk5TAAUWMEtqf4Cy0Ob69Vq7RgAAALFJREFUKFN1ktcWwyAIhjExxJXu3aR7r/d/vGqaNtij/40cPkRAAD5KOAqlBPIEqFiuTSONrPWn0hDJ9OvPtPGksyb+z29JfYf98nQGs+r62FlLundyaxS9+fZ2X7yczi4GbZ0uUe16EqAT4CYEDAcMAwQRBgKUO0an42FfDTfrVbkc10BR0PUASTXxUmEYIC2XAk4bJMA2SEZCAHpDLPrT8tIOMTr2+EfFvza+DBBYnzefSCYIf6LBWgAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/laptop_icon.21863406.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAQAAAAngNWGAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffCBkSIRpcgswJAAACNElEQVQoz12Su09TYRiHn+9cCgicXmgp4Vbar0gIJUAYEBJvKYoRB92MiSvxr3BycXFyxgkNiYOLA16CC4vGkKhBEzxaakqhaAuFUkoP53NoYyLP8lue5H3ze18AQFLPRnk7vt6vzqp4Vj6QPv4hJHZN0fDg4WHDvQhRNNKk2F/VrttbNUMAxL3O+ZOECmrtzXdn1JQIosixyhvyL82b6w6AAXKg+siT7G2wKBFiUiToRuM3ecZ4O36SZAnAkM1qMTwyTQiDEgbNRHFwCTPIJ7wtu521HQ3ut4zMMsIwfkqscIROFXAxKKIJtJqoiTt9DDNKByY+rlAlgwYoXlFhv6Tnap0YoruLJoK49QFtPOESBkus8gdnR/8ONhIDTqgAAhcBVPjKR4poCIqIcHUu9uzHexs9MKe3dhIghMBgj0VSZOihn17ihM845w6u+tcKtu43y9Om2hElqnxhgW9sM8QUk0wwSBCLA9/eDf9zPfDZmc51HbPBCh/YJE0HSS4wRJAQERSKdFMlpBcqgRfV8c1oVhXIsqUQo1xkAA8CgQeLLFnyEUNi75CUl8u3Dr0C3jXMe/HRiALApZ1GLIRl2Ehs7GWWAbotNX+MU9cAFIeUAY3699QwzYqTw+aofhAPKTbIowo6/9EmnH43YVCiBwuTFE9ZI4PzWHCK2IR4HWkdxMSizCZFfrGfJaGfFguZQHp3ZstTJk+WbTIc5sU1fp7SJBKQY7Gl6EGfirqxQmxBhgH+ApfUxTCnl4CcAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/Checkbox_empty.195b4c92.svg\";","module.exports = __webpack_public_path__ + \"static/media/Checkbox_ok.52c5a6cc.svg\";","module.exports = __webpack_public_path__ + \"static/media/drag.b17c0ec9.svg\";","module.exports = __webpack_public_path__ + \"static/media/noun-help.a93b0458.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAASCAYAAAC5DOVpAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAE6ADAAQAAAABAAAAEgAAAAAdD3kWAAAB3UlEQVQ4Eb2Tv2sUQRTH35s9hICklrCzCTt7aU6wERsTPdjZixwm8ddhpSA2dvkXtlNQ8UclBIREjRZJHTAWRyDBQgKC3XGRKAjaHMSIRrPzfBMzcFdkvYvgNt/lO9/5zLw3MwgH/GSkx4jgJgB9RxJTH9eX3uBBWEExPmsMPi4IMU5g/MzQI/SgKnqFBVFlnAwuINH7/j54t9F4teAJvAEZzvUEk1EyQWTmeQNNAjjR2soWS6XaYYPeFy75UNcw7tEkWBDR9PUrI0cBcZqBo5s/WnXKsnkQeLWrKi1IqvhnoPRDN6FWq3lS6YYf6m9DkS47P1elqpyzIF8lD1wwTVPBoBkGbXUNYsD5P6D4fjvIV3rWgvwoOe38XB0M9QUL4hLvuaAtzQ/jJxYki5VTzs/VwaK+6Kv4lwyTuy5oQUGon7L/VQ6PjTo/V/keXdoFqfiOC+42O9TPegLtNXabm3u7A6Ti5xbEOxtx/l91qFQ9IsN42QX3jv8FgzYDlZx0/n7acWlpOxsAwIYNl8tp4fVaa46Aqh54Zz40l1b2gzi/46HbB0wGbgHBOiAovuH9DLq80Xy56ibkaaF9kIRYAzTXCPo+RQPHP9fr6U77+H/9Rz65RS7r2D+vivD2N4uNozJWxM7sAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/command.4ada7185.svg\";","module.exports = __webpack_public_path__ + \"static/media/empty-feed.3ebce7f3.png\";","module.exports = __webpack_public_path__ + \"static/media/empty-vulns.1b2994f2.png\";","module.exports = __webpack_public_path__ + \"static/media/warning-delete.33357364.svg\";","module.exports = __webpack_public_path__ + \"static/media/ff_duplicates.46352b01.png\";","module.exports = __webpack_public_path__ + \"static/media/shape.9ea9d3d6.svg\";","module.exports = __webpack_public_path__ + \"static/media/icon-edit-enabled.a68d0409.svg\";"],"sourceRoot":""}