{"version":3,"file":"static/js/HomePage.194d268f.js","sources":["webpack://@jotforminc/portal/../../../../src/icons/products/ai-filled.svg","webpack://@jotforminc/portal/./src/modules/Builder/components/AiAssistant/AiAssistantButton.js","webpack://@jotforminc/portal/../../../../src/icons/technology/microphone-filled.svg","webpack://@jotforminc/portal/../../../../src/icons/technology/screencast.svg","webpack://@jotforminc/portal/../../../../src/icons/editor/paint-roller-diagonal-filled.svg","webpack://@jotforminc/portal/../../../../src/icons/general/info.svg","webpack://@jotforminc/portal/../../../../src/icons/general/divider.svg","webpack://@jotforminc/portal/../../../../src/icons/editor/list-number.svg","webpack://@jotforminc/portal/../../../../src/icons/editor/heading-square-filled.svg","webpack://@jotforminc/portal/../../../../src/icons/editor/list-bullet.svg","webpack://@jotforminc/portal/../../../../src/icons/general/plus-square-filled.svg","webpack://@jotforminc/portal/../../../../src/icons/arrows/arrows-4way-from-center.svg","webpack://@jotforminc/portal/../../../../src/icons/general/floppy-disk.svg","webpack://@jotforminc/portal/../../../../src/icons/arrows/chevron-up.svg","webpack://@jotforminc/portal/../../../../src/icons/general/table.svg","webpack://@jotforminc/portal/../../../../src/icons/products/product-tables-exclamation-triangle-filled.svg","webpack://@jotforminc/portal/../../../../src/icons/arrows/arrow-reverse-left.svg","webpack://@jotforminc/portal/../../libs/ai-builder/src/assets/svg/AILogo.svg","webpack://@jotforminc/portal/../../libs/ai-builder/src/assets/svg/guest-podo.svg","webpack://@jotforminc/portal/../../libs/ai-builder/src/assets/svg/PromptLoader.svg","webpack://@jotforminc/portal/../../../../src/icons/users/face-smile.svg","webpack://@jotforminc/portal/../../../../src/icons/users/user-woman-filled.svg","webpack://@jotforminc/portal/../../../../src/icons/editor/type-square-filled.svg","webpack://@jotforminc/portal/../../../../src/icons/editor/palette-filled.svg","webpack://@jotforminc/portal/../../../../src/icons/media/bolt-filled.svg","webpack://@jotforminc/portal/../../libs/ai-builder/src/assets/svg/roboto.svg","webpack://@jotforminc/portal/../../libs/ai-builder/src/assets/svg/opensans.svg","webpack://@jotforminc/portal/../../libs/ai-builder/src/assets/svg/helvetica.svg","webpack://@jotforminc/portal/../../libs/ai-builder/src/assets/svg/inter.svg","webpack://@jotforminc/portal/../../libs/ai-builder/src/assets/svg/tahoma.svg","webpack://@jotforminc/portal/../../libs/ai-builder/src/assets/svg/couriernew.svg","webpack://@jotforminc/portal/../../libs/ai-builder/src/assets/svg/trebuchetms.svg","webpack://@jotforminc/portal/../../libs/ai-builder/src/assets/svg/lucidagrande.svg","webpack://@jotforminc/portal/../../libs/ai-builder/src/assets/svg/timesnewroman.svg","webpack://@jotforminc/portal/./src/assets/jotform_ai.svg","webpack://@jotforminc/portal/../../libs/custom-socket-client/src/utils/index.js","webpack://@jotforminc/portal/../../libs/custom-socket-client/src/CustomWebSocket.js","webpack://@jotforminc/portal/../../libs/zoom-socket/src/libs/zoomSocketAdapter.js","webpack://@jotforminc/portal/../../libs/zoom-socket/src/libs/zoomSocket.js","webpack://@jotforminc/portal/../../libs/zoom-socket/src/components/ZoomWidget/RequestHelp.js","webpack://@jotforminc/portal/../../libs/zoom-socket/src/components/ZoomWidget/ConnectSection.js","webpack://@jotforminc/portal/../../libs/zoom-socket/src/components/ZoomWidget/WaitingAgentResponse.js","webpack://@jotforminc/portal/../../libs/zoom-socket/src/components/ZoomWidget/MeetingReady.js","webpack://@jotforminc/portal/../../libs/zoom-socket/src/components/ZoomWidget/NotAvailableScreen.js","webpack://@jotforminc/portal/../../libs/zoom-socket/src/components/ZoomWidget/DeclinedScreen.js","webpack://@jotforminc/portal/../../libs/zoom-socket/src/components/ZoomWidget/steps.js","webpack://@jotforminc/portal/../../libs/zoom-socket/src/components/ZoomWidget/ZoomWidget.js","webpack://@jotforminc/portal/../../libs/zoom-socket/src/components/ZoomSocketLayer.js","webpack://@jotforminc/portal/../../libs/panel-components/src/components/PanelToggle/panelToggle.cva.js","webpack://@jotforminc/portal/../../libs/panel-components/src/components/PanelToggle/PanelToggleWrapper.js","webpack://@jotforminc/portal/../../libs/common/src/utils/lib.js","webpack://@jotforminc/portal/../../libs/panel-components/src/components/PanelToggle/PanelToggleButton.js","webpack://@jotforminc/portal/./src/modules/Builder/components/DesignButton.js","webpack://@jotforminc/portal/./src/modules/Builder/components/AddItemButton.js","webpack://@jotforminc/portal/./src/modules/Builder/styles/scLeftPanel.js","webpack://@jotforminc/portal/./src/modules/Builder/constants/AppItems.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/LeftPanel/AppItemList/AppItem/ScAppItem.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/LeftPanel/AppItemList/AppItem/index.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/LeftPanel/AppItemList/hoc/withDraggableWrapper.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/LeftPanel/ScLeftPanelDivider.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/LeftPanel/AppItemList/index.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/LeftPanel/BasicsPanel.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/LeftPanel/SearchInput/index.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/LeftPanel/WidgetsPanel.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/LeftPanel/constants.js","webpack://@jotforminc/portal/./src/components/AccessibleTabButton/index.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/LeftPanel/wrappers/wrappers.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/LeftPanel/LeftPanelContainer.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/LeftPanel/index.js","webpack://@jotforminc/portal/../../libs/common/src/components/PageNavigationBar/defaults/AddNewPage.js","webpack://@jotforminc/portal/../../libs/common/src/components/PageNavigationBar/defaults/PageItem.js","webpack://@jotforminc/portal/../../libs/common/src/components/PageNavigationBar/defaults/PageListContainer.js","webpack://@jotforminc/portal/../../libs/common/src/components/PageNavigationBar/defaults/PageItemListWrapper.js","webpack://@jotforminc/portal/../../libs/common/src/components/PageNavigationBar/PageList.js","webpack://@jotforminc/portal/../../libs/common/src/components/PageNavigationBar/index.js","webpack://@jotforminc/portal/../../libs/common/src/components/PageNavigationBar/defaults/utils.js","webpack://@jotforminc/portal/./src/modules/Builder/components/MultiPageNavigationBar/ScNavBar.js","webpack://@jotforminc/portal/./src/modules/Builder/components/MultiPageNavigationBar/ScNavigationItemRenderer.js","webpack://@jotforminc/portal/./src/modules/Builder/components/MultiPageNavigationBar/NavigationItemSettingsPopover.js","webpack://@jotforminc/portal/./src/modules/Builder/components/MultiPageNavigationBar/NavigationItemRenderer.js","webpack://@jotforminc/portal/./src/modules/Builder/components/MultiPageNavigationBar/ScMultiPageNav.js","webpack://@jotforminc/portal/./src/modules/Builder/components/MultiPageNavigationBar/index.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/Main/ScMain.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/BuilderItem/ScBuilderItemWrapper.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/AppHeader/ScBuilderAppHeaderWrapper.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/DashedLineButton/ScDashedLineButton.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/DashedLineButton/index.js","webpack://@jotforminc/portal/../../libs/image-cropper/src/components/defaults.js","webpack://@jotforminc/portal/../../libs/image-cropper/src/components/ImageCropper.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/AppHeader/ImageCropperAppHeader/index.js","webpack://@jotforminc/portal/./src/modules/Builder/styles/scBuilder.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/AppHeader/BuilderAppHeaderLogo/index.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/AppHeader/BuilderAppHeader.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/BuilderPortalBrandingFooter/ScBuilderPortalBrandingFooter.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/BuilderPortalBrandingFooter/index.js","webpack://@jotforminc/portal/./src/modules/Builder/components/ItemToolbox/ScItemToolbox.js","webpack://@jotforminc/portal/./src/modules/Builder/components/PaymentSettingsWarningIcon/index.js","webpack://@jotforminc/portal/./src/modules/Builder/components/ItemToolbox/ItemToolbox.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/BuilderItem/BuilderItemToolbox.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/ScBuilderItemListWrapper.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/PageName/ScPageName.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/PageName/index.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/PageItem/PageInlineEdit.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/ItemContainer/ScItemContainer.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/AddFirstElementBtn/ScAddFirstElementBtn.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/AddFirstElementBtn/index.js","webpack://@jotforminc/portal/./src/modules/Builder/components/BuilderDocumentItem/index.js","webpack://@jotforminc/portal/../../libs/uikit/src/components/RichTextEditor/defaults/ImageUploadPanel.js","webpack://@jotforminc/portal/../../libs/uikit/src/components/RichTextEditor/constants/index.js","webpack://@jotforminc/portal/../../libs/uikit/src/components/RichTextEditor/utils/popoverButtonUtils.js","webpack://@jotforminc/portal/../../libs/uikit/src/components/RichTextEditor/utils/index.js","webpack://@jotforminc/portal/../../libs/uikit/src/components/RichTextEditor/index.js","webpack://@jotforminc/portal/../../libs/uikit/src/components/RichTextEditor/defaults/Container.js","webpack://@jotforminc/portal/../../libs/uikit/src/components/RichTextEditor/defaults/ErrorWrapper.js","webpack://@jotforminc/portal/../../libs/uikit/src/components/RichTextEditor/defaults/LoadingWrapper.js","webpack://@jotforminc/portal/../../libs/multiselect-with-search/src/components/MultiSelectWithSearch/scMultipleSelection.js","webpack://@jotforminc/portal/../../libs/multiselect-with-search/src/components/MultiSelectWithSearch/index.js","webpack://@jotforminc/portal/../../libs/submission-table-modal/src/components/SubmissionTableModal.js","webpack://@jotforminc/portal/../../libs/image-upload-modal/src/index.js","webpack://@jotforminc/portal/../../libs/rich-text-editor/src/components/DeleteSubmissionTableDialog.js","webpack://@jotforminc/portal/../../libs/rich-text-editor/src/editorHelpers.js","webpack://@jotforminc/portal/../../libs/rich-text-editor/src/index.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/Editors/ContentEditor.js","webpack://@jotforminc/portal/./src/modules/Builder/components/BuilderParagraphItem/index.js","webpack://@jotforminc/portal/./src/modules/Builder/components/BuilderImageItem/index.js","webpack://@jotforminc/portal/./src/components/Items/ProductListItem/ScProductList.js","webpack://@jotforminc/portal/./src/components/Items/ProductListItem/utils.js","webpack://@jotforminc/portal/./src/components/Items/ProductListItem/ScInlineEditor.js","webpack://@jotforminc/portal/./src/components/Items/ProductListItem/InlineEditor.js","webpack://@jotforminc/portal/./src/components/Items/ProductListItem/index.js","webpack://@jotforminc/portal/./src/components/Items/ContactInformationItem/index.js","webpack://@jotforminc/portal/./src/components/Items/ListItem/index.js","webpack://@jotforminc/portal/./src/utils/getItemComponentByType.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/BuilderItem/ScBuilderEmbedItemWrapper.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/BuilderItem/EditableItem.js","webpack://@jotforminc/portal/./src/modules/Builder/components/DataSourceItemHoc.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/BuilderItem/index.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/DraggableBuilderItem/index.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/ItemContainer/index.js","webpack://@jotforminc/portal/./src/modules/Builder/components/DsPageHoc/index.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/PageItem/index.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/ContactInformationPage/index.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/Pages/index.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/Main/index.js","webpack://@jotforminc/portal/./src/modules/Builder/components/PaymentSettingsButton.js","webpack://@jotforminc/portal/../../libs/selectable/src/index.js","webpack://@jotforminc/portal/./src/modules/Builder/components/BuilderSelectable/index.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/MobileView/components/PreviewPanelContainer.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/MobileView/components/PreviewPanelBody.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/MobileView/components/PopoverListItem.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/MobileView/components/PopoverList.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/MobileView/components/TriggerHeaderPopover.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/MobileView/components/PreviewPanelHeader.js","webpack://@jotforminc/portal/./src/utils/hooks/usePanelAnimations.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/MobileView/PreviewPanel.js","webpack://@jotforminc/portal/../../libs/voice-button/src/SpeechRecognition.js","webpack://@jotforminc/portal/../../libs/voice-button/src/index.js","webpack://@jotforminc/portal/../../libs/ai-builder/src/constants/index.ts","webpack://@jotforminc/portal/../../libs/ai-builder/src/components/ChatInput/index.tsx","webpack://@jotforminc/portal/../../libs/ai-builder/src/components/Message/index.tsx","webpack://@jotforminc/portal/../../libs/ai-builder/src/utils/index.ts","webpack://@jotforminc/portal/../../libs/drawer/src/utils/index.js","webpack://@jotforminc/portal/../../libs/drawer/src/components/MenuComponents/MenuItemSubheader.js","webpack://@jotforminc/portal/../../libs/drawer/src/components/MenuComponents/MenuItemButton.js","webpack://@jotforminc/portal/../../libs/drawer/src/components/MenuComponents/MenuItemIcon.js","webpack://@jotforminc/portal/../../libs/drawer/src/components/MenuComponents/MenuItemTitle.js","webpack://@jotforminc/portal/../../libs/drawer/src/components/MenuComponents/MenuItemBadge.js","webpack://@jotforminc/portal/../../libs/drawer/src/components/MenuComponents/MenuItemShortcut.js","webpack://@jotforminc/portal/../../libs/drawer/src/components/MenuComponents/MenuItem.js","webpack://@jotforminc/portal/../../libs/drawer/src/components/MenuComponents/MenuList.js","webpack://@jotforminc/portal/../../libs/drawer/src/components/MenuComponents/MenuDivider.js","webpack://@jotforminc/portal/../../libs/context-menu/src/components/ContextMenu.js","webpack://@jotforminc/portal/../../libs/ai-builder/src/components/SVG/index.tsx","webpack://@jotforminc/portal/../../libs/ai-builder/src/components/ActionGroup/index.tsx","webpack://@jotforminc/portal/../../libs/ai-builder/src/components/Chat/index.tsx","webpack://@jotforminc/portal/./src/modules/Builder/components/AiAssistant/TopBar.js","webpack://@jotforminc/portal/./src/modules/Builder/components/AiAssistant/index.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/RightPanel/RightPanelTransition.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/index.js","webpack://@jotforminc/portal/../../../../src/icons/communication/paper-plane-filled.svg","webpack://@jotforminc/portal/../../../../src/icons/forms-files/file-filled.svg","webpack://@jotforminc/portal/../../../../src/icons/general/magnifying-glass-plus.svg","webpack://@jotforminc/portal/../../../../src/icons/products/ai-color.svg"],"sourcesContent":["\n \n\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Button } from '@jotforminc/magnet';\nimport { bool } from 'prop-types';\nimport { IconAiFilled } from '@jotforminc/svg-icons';\nimport * as ACTION_CREATORS from '../../../../store/actionCreators';\nimport SELECTORS from '../../../../store/selectors';\n\nfunction AiAssistantButton({ isMobile }) {\n const dispatch = useDispatch();\n const isAiAssistantOpen = useSelector(SELECTORS.isAiAssistantOpen);\n const isLeftPanelOpen = useSelector(SELECTORS.isLeftPanelOpenSelector);\n const isPreviewPanelOpen = useSelector(SELECTORS.isPreviewPanelOpenSelector);\n\n const handleClick = () => {\n if (isLeftPanelOpen && isPreviewPanelOpen) {\n dispatch(ACTION_CREATORS.toggleLeftPanelAction(false));\n dispatch(ACTION_CREATORS.aiShowAssistant(true));\n } else {\n dispatch(ACTION_CREATORS.aiShowAssistant(!isAiAssistantOpen));\n }\n };\n\n return (\n \n Copilot\n \n );\n}\n\nAiAssistantButton.propTypes = {\n isMobile: bool\n};\n\nAiAssistantButton.defaultProps = {\n isMobile: false\n};\n\nexport default AiAssistantButton;\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\n","var _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgAiLogo = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"ai-star1\",\n d: \"M5.73111 5.61379C6.08963 5.74646 6.08963 6.25354 5.73111 6.38621L5.20344 6.58146C4.45199 6.85952 3.85952 7.45199 3.58146 8.20344L3.38621 8.73111C3.25354 9.08963 2.74646 9.08963 2.61379 8.73111L2.41854 8.20344C2.14048 7.45199 1.54801 6.85952 0.796562 6.58146L0.268889 6.38621C-0.0896293 6.25354 -0.0896293 5.74646 0.268889 5.61379L0.796561 5.41854C1.54801 5.14048 2.14048 4.54801 2.41854 3.79656L2.61379 3.26889C2.74646 2.91037 3.25354 2.91037 3.38621 3.26889L3.58146 3.79656C3.85952 4.54801 4.45199 5.14048 5.20344 5.41854L5.73111 5.61379Z\",\n fill: \"#0099FF\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"ai-star2\",\n d: \"M15.4622 13.2276C16.1793 13.4929 16.1793 14.5071 15.4622 14.7724L14.4069 15.1629C12.904 15.719 11.719 16.904 11.1629 18.4069L10.7724 19.4622C10.5071 20.1793 9.49292 20.1793 9.22759 19.4622L8.83708 18.4069C8.28096 16.904 7.09602 15.719 5.59312 15.1629L4.53778 14.7724C3.82074 14.5071 3.82074 13.4929 4.53778 13.2276L5.59312 12.8371C7.09602 12.281 8.28096 11.096 8.83708 9.59312L9.22759 8.53778C9.49292 7.82074 10.5071 7.82074 10.7724 8.53778L11.1629 9.59312C11.719 11.096 12.904 12.281 14.4069 12.8371L15.4622 13.2276Z\",\n fill: \"#FF6100\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"ai-star3\",\n d: \"M15.4851 0.358519C15.6619 -0.119506 16.3381 -0.119507 16.5149 0.358519L16.7753 1.06208C17.146 2.06401 17.936 2.85397 18.9379 3.22472L19.6415 3.48506C20.1195 3.66194 20.1195 4.33806 19.6415 4.51494L18.9379 4.77528C17.936 5.14603 17.146 5.93599 16.7753 6.93792L16.5149 7.64148C16.3381 8.11951 15.6619 8.11951 15.4851 7.64148L15.2247 6.93792C14.854 5.93599 14.064 5.14603 13.0621 4.77528L12.3585 4.51494C11.8805 4.33806 11.8805 3.66194 12.3585 3.48506L13.0621 3.22472C14.064 2.85397 14.854 2.06401 15.2247 1.06208L15.4851 0.358519Z\",\n fill: \"#FFB629\"\n})));\nexport default SvgAiLogo;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgGuestPodo = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 92 92\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0 C0.99 0 1.98 0 3 0 C3.495 2.475 3.495 2.475 4 5 C4.99 5.0825 5.98 5.165 7 5.25 C12.65100788 6.0425194 17.31501032 8.87667354 22 12 C25.00267905 11.58334329 25.00267905 11.58334329 28.1875 10.625 C29.27417969 10.32851563 30.36085938 10.03203125 31.48046875 9.7265625 C32.31191406 9.48679687 33.14335938 9.24703125 34 9 C33.47790027 17.10154749 33.47790027 17.10154749 31.4375 20.9375 C29.94239654 24.12272042 29.90370885 25.3465764 30.0625 28.75 C30.2645193 36.21349098 27.84698945 42.40477563 22.75 47.875 C13.81795647 56.03703978 3.73524608 56.65689876 -7.83886719 56.17919922 C-15.46341405 55.54697855 -21.96236847 51.64053956 -27 46 C-30.78899474 40.6746141 -32.15680015 36.26114871 -31.8125 29.8125 C-31.73821885 24.74787623 -32.83104781 21.47601204 -35.109375 17.015625 C-36.31336497 14.29080559 -36.3007587 11.93239736 -36 9 C-35.11248047 9.2165625 -35.11248047 9.2165625 -34.20703125 9.4375 C-28.15505767 11.02691365 -28.15505767 11.02691365 -22 11 C-20.63875 10.071875 -20.63875 10.071875 -19.25 9.125 C-15.69291874 6.7992161 -13.08928625 6.25024303 -8.953125 5.6875 C-6.80006289 5.16022438 -6.80006289 5.16022438 -5.734375 2.9375 C-5.49203125 2.298125 -5.2496875 1.65875 -5 1 C-4.34 1 -3.68 1 -3 1 C-3 1.66 -3 2.32 -3 3 C-2.34 3 -1.68 3 -1 3 C-0.67 2.01 -0.34 1.02 0 0 Z \",\n fill: \"#FFFFFF\",\n transform: \"translate(47,17)\"\n})));\nexport default SvgGuestPodo;","var _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgPromptLoader = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"20 0 54 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"loading-item item-1\",\n d: \"M27.868 8.06059C28.3311 7.84766 28.8092 8.32574 28.5963 8.78883L28.2829 9.47041C27.8365 10.441 27.8365 11.5582 28.2829 12.5288L28.5963 13.2104C28.8092 13.6735 28.3311 14.1516 27.868 13.9387L27.1864 13.6253C26.2158 13.1789 25.0986 13.1789 24.128 13.6253L23.4464 13.9387C22.9833 14.1516 22.5053 13.6735 22.7182 13.2104L23.0316 12.5288C23.4779 11.5582 23.4779 10.441 23.0316 9.47041L22.7182 8.78883C22.5053 8.32574 22.9833 7.84766 23.4464 8.06059L24.128 8.374C25.0986 8.82031 26.2158 8.82031 27.1864 8.374L27.868 8.06059Z\",\n fill: \"#0099FF\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"loading-item item-2\",\n d: \"M43.1815 8.06059C43.6446 7.84766 44.1227 8.32574 43.9097 8.78883L43.5963 9.47041C43.15 10.441 43.15 11.5582 43.5963 12.5288L43.9097 13.2104C44.1227 13.6735 43.6446 14.1516 43.1815 13.9387L42.4999 13.6253C41.5293 13.1789 40.4121 13.1789 39.4415 13.6253L38.7599 13.9387C38.2968 14.1516 37.8187 13.6735 38.0317 13.2104L38.3451 12.5288C38.7914 11.5582 38.7914 10.441 38.3451 9.47041L38.0317 8.78883C37.8187 8.32574 38.2968 7.84766 38.7599 8.06059L39.4415 8.374C40.4121 8.82031 41.5293 8.82031 42.4999 8.374L43.1815 8.06059Z\",\n fill: \"#FF6100\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"loading-item item-3\",\n d: \"M58.495 8.06059C58.9581 7.84766 59.4362 8.32574 59.2232 8.78883L58.9098 9.47041C58.4635 10.441 58.4635 11.5582 58.9098 12.5288L59.2232 13.2104C59.4362 13.6735 58.9581 14.1516 58.495 13.9387L57.8134 13.6253C56.8428 13.1789 55.7256 13.1789 54.755 13.6253L54.0734 13.9387C53.6103 14.1516 53.1322 13.6735 53.3451 13.2104L53.6585 12.5288C54.1049 11.5582 54.1049 10.441 53.6586 9.47041L53.3451 8.78883C53.1322 8.32574 53.6103 7.84766 54.0734 8.06059L54.755 8.374C55.7256 8.82031 56.8428 8.82031 57.8134 8.374L58.495 8.06059Z\",\n fill: \"#FFB629\"\n})));\nexport default SvgPromptLoader;","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgRoboto = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 36 10\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.5244 0.332031H13.4346V9.33203H14.4307L14.4865 8.59923C14.4971 8.61318 14.5078 8.62698 14.5186 8.64062C14.7256 8.90234 14.9795 9.10352 15.2803 9.24414C15.585 9.38086 15.9385 9.44922 16.3408 9.44922C16.7354 9.44922 17.085 9.36914 17.3896 9.20898C17.6943 9.04883 17.9521 8.82422 18.1631 8.53516C18.374 8.24609 18.5342 7.90625 18.6436 7.51562C18.7529 7.12109 18.8076 6.69336 18.8076 6.23242V6.10938C18.8076 5.625 18.7529 5.18555 18.6436 4.79102C18.5342 4.39258 18.374 4.05078 18.1631 3.76562C17.9561 3.48047 17.6982 3.26172 17.3896 3.10938C17.0811 2.95312 16.7275 2.875 16.3291 2.875C15.9307 2.875 15.5811 2.94531 15.2803 3.08594C14.9823 3.22137 14.7304 3.42005 14.5244 3.68197V0.332031ZM14.5244 7.52754V4.77397C14.6085 4.60159 14.712 4.44712 14.835 4.31055C14.9756 4.15039 15.1455 4.02344 15.3447 3.92969C15.5479 3.83594 15.7861 3.78906 16.0596 3.78906C16.3682 3.78906 16.6279 3.85156 16.8389 3.97656C17.0498 4.09766 17.2197 4.26562 17.3486 4.48047C17.4775 4.69141 17.5713 4.9375 17.6299 5.21875C17.6885 5.49609 17.7178 5.79297 17.7178 6.10938V6.23242C17.7178 6.54883 17.6865 6.8457 17.624 7.12305C17.5615 7.40039 17.4639 7.64453 17.3311 7.85547C17.2021 8.06641 17.0322 8.23242 16.8213 8.35352C16.6143 8.4707 16.3643 8.5293 16.0713 8.5293C15.7158 8.5293 15.417 8.44922 15.1748 8.28906C14.9365 8.12891 14.7451 7.92383 14.6006 7.67383C14.5738 7.62542 14.5484 7.57666 14.5244 7.52754ZM29.0527 3.82422V2.99219H27.8691V1.45117H26.7852V2.99219H25.625V3.82422H26.7852V7.75586C26.7852 8.17773 26.8496 8.51367 26.9785 8.76367C27.1113 9.00977 27.2891 9.18555 27.5117 9.29102C27.7344 9.39648 27.9785 9.44922 28.2441 9.44922C28.4395 9.44922 28.6055 9.43555 28.7422 9.4082C28.8828 9.38477 28.9961 9.35938 29.082 9.33203L29.0762 8.44727C29.0254 8.45898 28.9492 8.47461 28.8477 8.49414C28.75 8.50977 28.6562 8.51758 28.5664 8.51758C28.4453 8.51758 28.332 8.5 28.2266 8.46484C28.1211 8.42969 28.0352 8.35742 27.9688 8.24805C27.9023 8.13867 27.8691 7.97656 27.8691 7.76172V3.82422H29.0527ZM29.6084 6.09766V6.23242C29.6084 6.68945 29.6748 7.11328 29.8076 7.50391C29.9404 7.89453 30.1318 8.23633 30.3818 8.5293C30.6357 8.81836 30.9404 9.04492 31.2959 9.20898C31.6514 9.36914 32.0518 9.44922 32.4971 9.44922C32.9424 9.44922 33.3408 9.36914 33.6924 9.20898C34.0479 9.04492 34.3506 8.81836 34.6006 8.5293C34.8545 8.23633 35.0479 7.89453 35.1807 7.50391C35.3135 7.11328 35.3799 6.68945 35.3799 6.23242V6.09766C35.3799 5.64062 35.3135 5.2168 35.1807 4.82617C35.0479 4.43164 34.8545 4.08984 34.6006 3.80078C34.3506 3.50781 34.0459 3.28125 33.6865 3.12109C33.3311 2.95703 32.9307 2.875 32.4854 2.875C32.0439 2.875 31.6455 2.95703 31.29 3.12109C30.9346 3.28125 30.6318 3.50781 30.3818 3.80078C30.1318 4.08984 29.9404 4.43164 29.8076 4.82617C29.6748 5.2168 29.6084 5.64062 29.6084 6.09766ZM30.6924 6.23242V6.09766C30.6924 5.78516 30.7295 5.49023 30.8037 5.21289C30.8779 4.93164 30.9893 4.68359 31.1377 4.46875C31.29 4.25 31.4775 4.07812 31.7002 3.95312C31.9268 3.82812 32.1885 3.76562 32.4854 3.76562C32.7861 3.76562 33.0479 3.82812 33.2705 3.95312C33.4971 4.07812 33.6846 4.25 33.833 4.46875C33.9854 4.68359 34.0986 4.93164 34.1729 5.21289C34.251 5.49023 34.29 5.78516 34.29 6.09766V6.23242C34.29 6.54883 34.251 6.84766 34.1729 7.12891C34.0986 7.40625 33.9873 7.65234 33.8389 7.86719C33.6904 8.08203 33.5029 8.25195 33.2764 8.37695C33.0537 8.49805 32.7939 8.55859 32.4971 8.55859C32.1963 8.55859 31.9326 8.49805 31.7061 8.37695C31.4795 8.25195 31.29 8.08203 31.1377 7.86719C30.9893 7.65234 30.8779 7.40625 30.8037 7.12891C30.7295 6.84766 30.6924 6.54883 30.6924 6.23242ZM19.5801 6.23242V6.09766C19.5801 5.64062 19.6465 5.2168 19.7793 4.82617C19.9121 4.43164 20.1035 4.08984 20.3535 3.80078C20.6035 3.50781 20.9062 3.28125 21.2617 3.12109C21.6172 2.95703 22.0156 2.875 22.457 2.875C22.9023 2.875 23.3027 2.95703 23.6582 3.12109C24.0176 3.28125 24.3223 3.50781 24.5723 3.80078C24.8262 4.08984 25.0195 4.43164 25.1523 4.82617C25.2852 5.2168 25.3516 5.64062 25.3516 6.09766V6.23242C25.3516 6.68945 25.2852 7.11328 25.1523 7.50391C25.0195 7.89453 24.8262 8.23633 24.5723 8.5293C24.3223 8.81836 24.0195 9.04492 23.6641 9.20898C23.3125 9.36914 22.9141 9.44922 22.4688 9.44922C22.0234 9.44922 21.623 9.36914 21.2676 9.20898C20.9121 9.04492 20.6074 8.81836 20.3535 8.5293C20.1035 8.23633 19.9121 7.89453 19.7793 7.50391C19.6465 7.11328 19.5801 6.68945 19.5801 6.23242ZM20.6641 6.09766V6.23242C20.6641 6.54883 20.7012 6.84766 20.7754 7.12891C20.8496 7.40625 20.9609 7.65234 21.1094 7.86719C21.2617 8.08203 21.4512 8.25195 21.6777 8.37695C21.9043 8.49805 22.168 8.55859 22.4688 8.55859C22.7656 8.55859 23.0254 8.49805 23.248 8.37695C23.4746 8.25195 23.6621 8.08203 23.8105 7.86719C23.959 7.65234 24.0703 7.40625 24.1445 7.12891C24.2227 6.84766 24.2617 6.54883 24.2617 6.23242V6.09766C24.2617 5.78516 24.2227 5.49023 24.1445 5.21289C24.0703 4.93164 23.957 4.68359 23.8047 4.46875C23.6562 4.25 23.4688 4.07812 23.2422 3.95312C23.0195 3.82812 22.7578 3.76562 22.457 3.76562C22.1602 3.76562 21.8984 3.82812 21.6719 3.95312C21.4492 4.07812 21.2617 4.25 21.1094 4.46875C20.9609 4.68359 20.8496 4.93164 20.7754 5.21289C20.7012 5.49023 20.6641 5.78516 20.6641 6.09766ZM6.62207 6.23242V6.09766C6.62207 5.64062 6.68848 5.2168 6.82129 4.82617C6.9541 4.43164 7.14551 4.08984 7.39551 3.80078C7.64551 3.50781 7.94824 3.28125 8.30371 3.12109C8.65918 2.95703 9.05762 2.875 9.49902 2.875C9.94434 2.875 10.3447 2.95703 10.7002 3.12109C11.0596 3.28125 11.3643 3.50781 11.6143 3.80078C11.8682 4.08984 12.0615 4.43164 12.1943 4.82617C12.3271 5.2168 12.3936 5.64062 12.3936 6.09766V6.23242C12.3936 6.68945 12.3271 7.11328 12.1943 7.50391C12.0615 7.89453 11.8682 8.23633 11.6143 8.5293C11.3643 8.81836 11.0615 9.04492 10.7061 9.20898C10.3545 9.36914 9.95605 9.44922 9.51074 9.44922C9.06543 9.44922 8.66504 9.36914 8.30957 9.20898C7.9541 9.04492 7.64941 8.81836 7.39551 8.5293C7.14551 8.23633 6.9541 7.89453 6.82129 7.50391C6.68848 7.11328 6.62207 6.68945 6.62207 6.23242ZM7.70605 6.09766V6.23242C7.70605 6.54883 7.74316 6.84766 7.81738 7.12891C7.8916 7.40625 8.00293 7.65234 8.15137 7.86719C8.30371 8.08203 8.49316 8.25195 8.71973 8.37695C8.94629 8.49805 9.20996 8.55859 9.51074 8.55859C9.80762 8.55859 10.0674 8.49805 10.29 8.37695C10.5166 8.25195 10.7041 8.08203 10.8525 7.86719C11.001 7.65234 11.1123 7.40625 11.1865 7.12891C11.2646 6.84766 11.3037 6.54883 11.3037 6.23242V6.09766C11.3037 5.78516 11.2646 5.49023 11.1865 5.21289C11.1123 4.93164 10.999 4.68359 10.8467 4.46875C10.6982 4.25 10.5107 4.07812 10.2842 3.95312C10.0615 3.82812 9.7998 3.76562 9.49902 3.76562C9.20215 3.76562 8.94043 3.82812 8.71387 3.95312C8.49121 4.07812 8.30371 4.25 8.15137 4.46875C8.00293 4.68359 7.8916 4.93164 7.81738 5.21289C7.74316 5.49023 7.70605 5.78516 7.70605 6.09766ZM2.81445 0.800781H-0.00976562V9.33203H1.12109V5.875H3.12234L4.97656 9.33203H6.18359V9.26172L4.17961 5.63892C4.44286 5.53847 4.67726 5.41013 4.88281 5.25391C5.17969 5.02734 5.40625 4.75391 5.5625 4.43359C5.72266 4.10938 5.80273 3.75195 5.80273 3.36133C5.80273 2.80664 5.68555 2.33984 5.45117 1.96094C5.2207 1.57812 4.88281 1.28906 4.4375 1.09375C3.99609 0.898438 3.45508 0.800781 2.81445 0.800781ZM1.12109 4.95508V1.72656H2.81445C3.24805 1.72656 3.60156 1.79492 3.875 1.93164C4.15234 2.06445 4.35547 2.25391 4.48438 2.5C4.61328 2.74609 4.67773 3.0332 4.67773 3.36133C4.67773 3.6543 4.60938 3.92188 4.47266 4.16406C4.33594 4.40625 4.13281 4.59961 3.86328 4.74414C3.59375 4.88477 3.25586 4.95508 2.84961 4.95508H1.12109Z\",\n fill: \"#343C6A\"\n})));\nexport default SvgRoboto;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgOpensans = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 58 13\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7.62695 8.54688C8.32227 7.76172 8.66992 6.68359 8.66992 5.3125C8.66992 3.9375 8.32422 2.85938 7.63281 2.07812C6.94141 1.29688 5.98047 0.90625 4.75 0.90625C3.48438 0.90625 2.50781 1.29102 1.82031 2.06055C1.13281 2.82617 0.789062 3.90625 0.789062 5.30078C0.789062 6.70703 1.13086 7.79688 1.81445 8.57031C2.50195 9.33984 3.47656 9.72461 4.73828 9.72461C5.97266 9.72461 6.93555 9.33203 7.62695 8.54688ZM2.58203 7.95508C2.08984 7.35352 1.84375 6.47266 1.84375 5.3125C1.84375 4.16797 2.08984 3.29688 2.58203 2.69922C3.07812 2.09766 3.80078 1.79688 4.75 1.79688C5.69531 1.79688 6.4082 2.0957 6.88867 2.69336C7.37305 3.28711 7.61523 4.16016 7.61523 5.3125C7.61523 6.47656 7.37305 7.35742 6.88867 7.95508C6.4043 8.55273 5.6875 8.85156 4.73828 8.85156C3.79688 8.85156 3.07812 8.55273 2.58203 7.95508ZM37.626 9.0918C38.1729 8.66992 38.4463 8.08203 38.4463 7.32812C38.4463 6.74219 38.2764 6.26562 37.9365 5.89844C37.6006 5.53125 36.9834 5.1875 36.085 4.86719C35.5498 4.67578 35.1514 4.50195 34.8896 4.3457C34.6318 4.18555 34.4482 4.01172 34.3389 3.82422C34.2295 3.63281 34.1748 3.38867 34.1748 3.0918C34.1748 2.68945 34.3232 2.375 34.6201 2.14844C34.917 1.92188 35.3291 1.80859 35.8564 1.80859C36.5244 1.80859 37.2119 1.95703 37.9189 2.25391L38.2295 1.38672C37.5146 1.07422 36.7314 0.917969 35.8799 0.917969C35.0635 0.917969 34.4072 1.11328 33.9111 1.50391C33.415 1.89453 33.167 2.41992 33.167 3.08008C33.167 3.70898 33.3369 4.21875 33.6768 4.60938C34.0205 5 34.5908 5.33789 35.3877 5.62305C35.958 5.82617 36.3818 6.00781 36.6592 6.16797C36.9404 6.32812 37.1396 6.50391 37.2568 6.69531C37.3779 6.88281 37.4385 7.125 37.4385 7.42188C37.4385 7.87109 37.2705 8.22266 36.9346 8.47656C36.5986 8.72656 36.0986 8.85156 35.4346 8.85156C35.0283 8.85156 34.6182 8.80859 34.2041 8.72266C33.79 8.63672 33.4072 8.51953 33.0557 8.37109V9.33203C33.6025 9.59375 34.3838 9.72461 35.3994 9.72461C36.3369 9.72461 37.0791 9.51367 37.626 9.0918ZM50.502 5.45312V9.60742H51.4746V5.41797C51.4746 4.59766 51.2793 4.00195 50.8887 3.63086C50.498 3.25586 49.916 3.06836 49.1426 3.06836C48.7012 3.06836 48.3008 3.15625 47.9414 3.33203C47.582 3.50391 47.3027 3.74805 47.1035 4.06445H47.0566L46.8984 3.18555H46.1074V9.60742H47.0801V6.23828C47.0801 5.40234 47.2363 4.80273 47.5488 4.43945C47.8613 4.07617 48.3535 3.89453 49.0254 3.89453C49.5332 3.89453 49.9062 4.02344 50.1445 4.28125C50.3828 4.53906 50.502 4.92969 50.502 5.45312ZM56.6406 9.23828C57.0859 8.91406 57.3086 8.45312 57.3086 7.85547C57.3086 7.42969 57.1738 7.07617 56.9043 6.79492C56.6387 6.51367 56.125 6.23438 55.3633 5.95703C54.8086 5.75 54.4336 5.5918 54.2383 5.48242C54.043 5.37305 53.9004 5.25781 53.8105 5.13672C53.7246 5.01562 53.6816 4.86914 53.6816 4.69727C53.6816 4.44336 53.7988 4.24414 54.0332 4.09961C54.2676 3.95508 54.6152 3.88281 55.0762 3.88281C55.5996 3.88281 56.1836 4.01562 56.8281 4.28125L57.1738 3.49023C56.5137 3.20898 55.8379 3.06836 55.1465 3.06836C54.4043 3.06836 53.8203 3.2207 53.3945 3.52539C52.9688 3.82617 52.7559 4.23828 52.7559 4.76172C52.7559 5.05469 52.8164 5.30664 52.9375 5.51758C53.0625 5.72852 53.25 5.91797 53.5 6.08594C53.7539 6.25 54.1797 6.44336 54.7773 6.66602C55.4062 6.9082 55.8281 7.11914 56.043 7.29883C56.2617 7.47461 56.3711 7.6875 56.3711 7.9375C56.3711 8.26953 56.2344 8.51758 55.9609 8.68164C55.6875 8.8418 55.2969 8.92188 54.7891 8.92188C54.4609 8.92188 54.1191 8.87695 53.7637 8.78711C53.4121 8.69727 53.082 8.57422 52.7734 8.41797V9.32031C53.25 9.58984 53.9141 9.72461 54.7656 9.72461C55.5703 9.72461 56.1953 9.5625 56.6406 9.23828ZM43.6885 9.60742L43.4951 8.69336H43.4482C43.1279 9.0957 42.8076 9.36914 42.4873 9.51367C42.1709 9.6543 41.7744 9.72461 41.2979 9.72461C40.6611 9.72461 40.1611 9.56055 39.7979 9.23242C39.4385 8.9043 39.2588 8.4375 39.2588 7.83203C39.2588 6.53516 40.2959 5.85547 42.3701 5.79297L43.46 5.75781V5.35938C43.46 4.85547 43.3506 4.48438 43.1318 4.24609C42.917 4.00391 42.5713 3.88281 42.0947 3.88281C41.5596 3.88281 40.9541 4.04688 40.2783 4.375L39.9795 3.63086C40.2959 3.45898 40.6416 3.32422 41.0166 3.22656C41.3955 3.12891 41.7744 3.08008 42.1533 3.08008C42.9189 3.08008 43.4854 3.25 43.8525 3.58984C44.2236 3.92969 44.4092 4.47461 44.4092 5.22461V9.60742H43.6885ZM41.4912 8.92188C42.0967 8.92188 42.5713 8.75586 42.915 8.42383C43.2627 8.0918 43.4365 7.62695 43.4365 7.0293V6.44922L42.4639 6.49023C41.6904 6.51758 41.1318 6.63867 40.7881 6.85352C40.4482 7.06445 40.2783 7.39453 40.2783 7.84375C40.2783 8.19531 40.3838 8.46289 40.5947 8.64648C40.8096 8.83008 41.1084 8.92188 41.4912 8.92188ZM27.9961 9.60742V5.45312C27.9961 4.92969 27.877 4.53906 27.6387 4.28125C27.4004 4.02344 27.0273 3.89453 26.5195 3.89453C25.8477 3.89453 25.3555 4.07617 25.043 4.43945C24.7305 4.80273 24.5742 5.40234 24.5742 6.23828V9.60742H23.6016V3.18555H24.3926L24.5508 4.06445H24.5977C24.7969 3.74805 25.0762 3.50391 25.4355 3.33203C25.7949 3.15625 26.1953 3.06836 26.6367 3.06836C27.4102 3.06836 27.9922 3.25586 28.3828 3.63086C28.7734 4.00195 28.9688 4.59766 28.9688 5.41797V9.60742H27.9961ZM17.6377 8.85742C18.1885 9.43555 18.9385 9.72461 19.8877 9.72461C20.3213 9.72461 20.6904 9.69141 20.9951 9.625C21.3037 9.5625 21.6299 9.45703 21.9736 9.30859V8.44141C21.2979 8.73047 20.6143 8.875 19.9229 8.875C19.2666 8.875 18.7568 8.67969 18.3936 8.28906C18.0342 7.89844 17.8447 7.32617 17.8252 6.57227H22.249V5.95703C22.249 5.08984 22.0146 4.39258 21.5459 3.86523C21.0771 3.33398 20.4404 3.06836 19.6357 3.06836C18.7764 3.06836 18.0908 3.37305 17.5791 3.98242C17.0713 4.5918 16.8174 5.41406 16.8174 6.44922C16.8174 7.47656 17.0908 8.2793 17.6377 8.85742ZM18.3877 4.38672C18.6963 4.05078 19.1084 3.88281 19.624 3.88281C20.1318 3.88281 20.5225 4.04688 20.7959 4.375C21.0693 4.69922 21.2061 5.16797 21.2061 5.78125H17.8486C17.9033 5.1875 18.083 4.72266 18.3877 4.38672ZM13.1162 9.72461C12.6982 9.72461 12.3154 9.64844 11.9678 9.49609C11.624 9.33984 11.335 9.10156 11.1006 8.78125H11.0303C11.0771 9.15625 11.1006 9.51172 11.1006 9.84766V12.4902H10.1279V3.18555H10.9189L11.0537 4.06445H11.1006C11.3506 3.71289 11.6416 3.45898 11.9736 3.30273C12.3057 3.14648 12.6865 3.06836 13.1162 3.06836C13.9678 3.06836 14.624 3.35938 15.085 3.94141C15.5498 4.52344 15.7822 5.33984 15.7822 6.39062C15.7822 7.44531 15.5459 8.26562 15.0732 8.85156C14.6045 9.43359 13.9521 9.72461 13.1162 9.72461ZM12.9756 3.89453C12.3193 3.89453 11.8447 4.07617 11.5518 4.43945C11.2588 4.80273 11.1084 5.38086 11.1006 6.17383V6.39062C11.1006 7.29297 11.251 7.93945 11.5518 8.33008C11.8525 8.7168 12.335 8.91016 12.999 8.91016C13.5537 8.91016 13.9873 8.68555 14.2998 8.23633C14.6162 7.78711 14.7744 7.16797 14.7744 6.37891C14.7744 5.57812 14.6162 4.96484 14.2998 4.53906C13.9873 4.10938 13.5459 3.89453 12.9756 3.89453Z\",\n fill: \"#343C6A\"\n})));\nexport default SvgOpensans;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgHelvetica = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 46 9\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M1.17773 0H0V8.60742H1.17773V4.58203H5.6543V8.60742H6.83203V0H5.6543V3.55664H1.17773V0ZM15.6416 0H14.5869V8.60742H15.6416V0ZM33.0732 2.36133H32.001V8.60742H33.0732V2.36133ZM33.0732 0H32.001V1.19531H33.0732V0ZM36.7812 2.15039C37.4883 2.15039 38.0625 2.32227 38.5039 2.66602C38.9492 3.00977 39.2168 3.60156 39.3066 4.44141H38.2812C38.2188 4.05469 38.0762 3.73438 37.8535 3.48047C37.6309 3.22266 37.2734 3.09375 36.7812 3.09375C36.1094 3.09375 35.6289 3.42188 35.3398 4.07812C35.1523 4.50391 35.0586 5.0293 35.0586 5.6543C35.0586 6.2832 35.1914 6.8125 35.457 7.24219C35.7227 7.67188 36.1406 7.88672 36.7109 7.88672C37.1484 7.88672 37.4941 7.75391 37.748 7.48828C38.0059 7.21875 38.1836 6.85156 38.2812 6.38672H39.3066C39.1895 7.21875 38.8965 7.82812 38.4277 8.21484C37.959 8.59766 37.3594 8.78906 36.6289 8.78906C35.8086 8.78906 35.1543 8.49023 34.666 7.89258C34.1777 7.29102 33.9336 6.54102 33.9336 5.64258C33.9336 4.54102 34.2012 3.68359 34.7363 3.07031C35.2715 2.45703 35.9531 2.15039 36.7812 2.15039ZM40.8574 6.9375C40.8574 7.24219 40.9688 7.48242 41.1914 7.6582C41.4141 7.83398 41.6777 7.92188 41.9824 7.92188C42.3535 7.92188 42.7129 7.83594 43.0605 7.66406C43.6465 7.37891 43.9395 6.91211 43.9395 6.26367V5.41406C43.8105 5.49609 43.6445 5.56445 43.4414 5.61914C43.2383 5.67383 43.0391 5.71289 42.8438 5.73633L42.2051 5.81836C41.8223 5.86914 41.5352 5.94922 41.3438 6.05859C41.0195 6.24219 40.8574 6.53516 40.8574 6.9375ZM43.4121 4.80469C43.6543 4.77344 43.8164 4.67188 43.8984 4.5C43.9453 4.40625 43.9688 4.27148 43.9688 4.0957C43.9688 3.73633 43.8398 3.47656 43.582 3.31641C43.3281 3.15234 42.9629 3.07031 42.4863 3.07031C41.9355 3.07031 41.5449 3.21875 41.3145 3.51562C41.1855 3.67969 41.1016 3.92383 41.0625 4.24805H40.0781C40.0977 3.47461 40.3477 2.9375 40.8281 2.63672C41.3125 2.33203 41.873 2.17969 42.5098 2.17969C43.248 2.17969 43.8477 2.32031 44.3086 2.60156C44.7656 2.88281 44.9941 3.32031 44.9941 3.91406V7.5293C44.9941 7.63867 45.0156 7.72656 45.0586 7.79297C45.1055 7.85938 45.2012 7.89258 45.3457 7.89258C45.3926 7.89258 45.4453 7.89062 45.5039 7.88672C45.5625 7.87891 45.625 7.86914 45.6914 7.85742V8.63672C45.5273 8.68359 45.4023 8.71289 45.3164 8.72461C45.2305 8.73633 45.1133 8.74219 44.9648 8.74219C44.6016 8.74219 44.3379 8.61328 44.1738 8.35547C44.0879 8.21875 44.0273 8.02539 43.9922 7.77539C43.7773 8.05664 43.4688 8.30078 43.0664 8.50781C42.6641 8.71484 42.2207 8.81836 41.7363 8.81836C41.1543 8.81836 40.6777 8.64258 40.3066 8.29102C39.9395 7.93555 39.7559 7.49219 39.7559 6.96094C39.7559 6.37891 39.9375 5.92773 40.3008 5.60742C40.6641 5.28711 41.1406 5.08984 41.7305 5.01562L43.4121 4.80469ZM29.1846 0.580078H30.251V2.33203H31.2529V3.19336H30.251V7.28906C30.251 7.50781 30.3252 7.6543 30.4736 7.72852C30.5557 7.77148 30.6924 7.79297 30.8838 7.79297H31.0479C31.1064 7.78906 31.1748 7.7832 31.2529 7.77539V8.60742C31.1318 8.64258 31.0049 8.66797 30.8721 8.68359C30.7432 8.69922 30.6025 8.70703 30.4502 8.70703C29.958 8.70703 29.624 8.58203 29.4482 8.33203C29.2725 8.07812 29.1846 7.75 29.1846 7.34766V3.19336H28.335V2.33203H29.1846V0.580078ZM26.5137 2.50781C26.0957 2.29688 25.6641 2.19141 25.2188 2.19141C24.3359 2.19141 23.6211 2.50586 23.0742 3.13477C22.5273 3.76367 22.2539 4.58203 22.2539 5.58984C22.2539 6.61328 22.5254 7.41016 23.0684 7.98047C23.6113 8.54688 24.2734 8.83008 25.0547 8.83008C25.375 8.83008 25.6621 8.79883 25.916 8.73633C26.3887 8.62695 26.7852 8.41602 27.1055 8.10352C27.2969 7.92383 27.4688 7.69336 27.6211 7.41211C27.7773 7.12695 27.8691 6.86914 27.8965 6.63867H26.8594C26.7812 6.91602 26.6484 7.16016 26.4609 7.37109C26.1328 7.73438 25.6934 7.91602 25.1426 7.91602C24.5527 7.91602 24.1172 7.72461 23.8359 7.3418C23.5547 6.95508 23.4043 6.44336 23.3848 5.80664H27.9844C27.9844 5.17383 27.9531 4.71289 27.8906 4.42383C27.8203 4.00195 27.6797 3.63281 27.4688 3.31641C27.25 2.98438 26.9316 2.71484 26.5137 2.50781ZM26.6016 3.87305C26.7578 4.14648 26.8574 4.51172 26.9004 4.96875H23.4141C23.4336 4.42969 23.6074 3.98633 23.9355 3.63867C24.2637 3.28711 24.6699 3.11133 25.1543 3.11133C25.8301 3.11133 26.3125 3.36523 26.6016 3.87305ZM17.4336 2.33203L19.1094 7.44141L20.8613 2.33203H22.0156L19.6484 8.60742H18.5234L16.209 2.33203H17.4336ZM10.8037 2.19141C11.249 2.19141 11.6807 2.29688 12.0986 2.50781C12.5166 2.71484 12.835 2.98438 13.0537 3.31641C13.2646 3.63281 13.4053 4.00195 13.4756 4.42383C13.5381 4.71289 13.5693 5.17383 13.5693 5.80664H8.96973C8.98926 6.44336 9.13965 6.95508 9.4209 7.3418C9.70215 7.72461 10.1377 7.91602 10.7275 7.91602C11.2783 7.91602 11.7178 7.73438 12.0459 7.37109C12.2334 7.16016 12.3662 6.91602 12.4443 6.63867H13.4814C13.4541 6.86914 13.3623 7.12695 13.2061 7.41211C13.0537 7.69336 12.8818 7.92383 12.6904 8.10352C12.3701 8.41602 11.9736 8.62695 11.501 8.73633C11.2471 8.79883 10.96 8.83008 10.6396 8.83008C9.8584 8.83008 9.19629 8.54688 8.65332 7.98047C8.11035 7.41016 7.83887 6.61328 7.83887 5.58984C7.83887 4.58203 8.1123 3.76367 8.65918 3.13477C9.20605 2.50586 9.9209 2.19141 10.8037 2.19141ZM12.4854 4.96875C12.4424 4.51172 12.3428 4.14648 12.1865 3.87305C11.8975 3.36523 11.415 3.11133 10.7393 3.11133C10.2549 3.11133 9.84863 3.28711 9.52051 3.63867C9.19238 3.98633 9.01855 4.42969 8.99902 4.96875H12.4854Z\",\n fill: \"#343C6A\"\n})));\nexport default SvgHelvetica;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgInter = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 10\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M1.05682 9.0593V0.332031H0V9.0593H1.05682ZM12.2817 3.36674V2.51447H10.884V0.946289H9.87828V2.51447H8.88965V3.36674H9.87828V7.45765C9.87828 7.83833 9.96635 8.15368 10.1425 8.40368C10.3215 8.65368 10.5459 8.83976 10.8158 8.96191C11.0885 9.08407 11.3669 9.14515 11.651 9.14515C11.8385 9.14515 11.9933 9.13095 12.1155 9.10254C12.2377 9.07697 12.3328 9.0514 12.401 9.02584L12.1965 8.12243L12.026 8.15652C11.955 8.16788 11.8641 8.17356 11.7533 8.17356C11.6056 8.17356 11.4649 8.15084 11.3314 8.10538C11.2007 8.05709 11.0928 7.96333 11.0075 7.82413C10.9252 7.68208 10.884 7.46902 10.884 7.18493V3.36674H12.2817ZM20.085 9.05984V2.51438H21.0566V3.50302H21.1247C21.2441 3.17916 21.46 2.91637 21.7725 2.71467C22.085 2.51296 22.4372 2.41211 22.8293 2.41211C22.9031 2.41211 22.9955 2.41353 23.1063 2.41637C23.2171 2.41921 23.3009 2.42347 23.3577 2.42916V3.45188C23.3236 3.44336 23.2455 3.43058 23.1233 3.41353C23.004 3.39364 22.8776 3.3837 22.7441 3.3837C22.4259 3.3837 22.1418 3.45046 21.8918 3.58399C21.6446 3.71467 21.4486 3.89648 21.3037 4.12944C21.1617 4.35955 21.0906 4.62234 21.0906 4.91779V9.05984H20.085ZM16.1566 9.19576C15.5259 9.19576 14.9819 9.05655 14.5245 8.77814C14.07 8.49689 13.7191 8.10485 13.4719 7.60201C13.2276 7.09632 13.1055 6.50826 13.1055 5.8378C13.1055 5.16735 13.2276 4.57644 13.4719 4.06507C13.7191 3.55087 14.0629 3.1503 14.5032 2.86337C14.9464 2.5736 15.4634 2.42871 16.0543 2.42871C16.3952 2.42871 16.7319 2.48553 17.0643 2.59916C17.3967 2.7128 17.6992 2.89746 17.9719 3.15314C18.2447 3.40598 18.462 3.74121 18.6239 4.15882C18.7859 4.57644 18.8668 5.09064 18.8668 5.70144V6.12757H14.1134C14.1278 6.56305 14.2123 6.93663 14.3668 7.24831C14.5401 7.58922 14.7802 7.84917 15.087 8.02814C15.3938 8.20428 15.7504 8.29235 16.1566 8.29235C16.4208 8.29235 16.6594 8.25542 16.8725 8.18155C17.0884 8.10485 17.2745 7.99121 17.4308 7.84064C17.587 7.68723 17.7077 7.49689 17.793 7.26962L18.7646 7.54235C18.6623 7.87189 18.4904 8.16167 18.2489 8.41167C18.0075 8.65882 17.7092 8.85201 17.354 8.99121C16.9989 9.12757 16.5998 9.19576 16.1566 9.19576ZM14.1159 5.25826H17.8441C17.8441 4.88894 17.7702 4.55939 17.6225 4.26962C17.4776 3.97985 17.2702 3.75115 17.0004 3.58354C16.7333 3.41593 16.418 3.33212 16.0543 3.33212C15.6538 3.33212 15.3072 3.43155 15.0146 3.63042C14.7248 3.82644 14.5018 4.08212 14.3455 4.39746C14.2116 4.6677 14.1351 4.95463 14.1159 5.25826ZM3.73322 5.12189V9.05939H2.72754V2.51394H3.69913V3.53667H3.78436C3.93777 3.20428 4.17072 2.93723 4.48322 2.73553C4.79572 2.53098 5.19913 2.42871 5.69345 2.42871C6.13663 2.42871 6.52441 2.51962 6.8568 2.70144C7.18919 2.88042 7.44771 3.15314 7.63237 3.51962C7.81703 3.88326 7.90936 4.34348 7.90936 4.9003V9.05939H6.90368V4.96848C6.90368 4.45428 6.77015 4.05371 6.50311 3.76678C6.23606 3.47701 5.86958 3.33212 5.40368 3.33212C5.08265 3.33212 4.79572 3.40172 4.54288 3.54093C4.29288 3.68013 4.09544 3.88326 3.95055 4.1503C3.80566 4.41735 3.73322 4.74121 3.73322 5.12189Z\",\n fill: \"#343C6A\"\n})));\nexport default SvgInter;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgTahoma = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 40 10\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16.1924 9.33203H17.2939V5.08398C17.2939 4.2793 17.1123 3.66602 16.749 3.24414C16.3857 2.81836 15.8818 2.60547 15.2373 2.60547C14.8818 2.60547 14.5439 2.68359 14.2236 2.83984C13.9033 2.99609 13.5791 3.2207 13.251 3.51367V0.214844H12.1494V9.33203H13.251V4.44531C13.5283 4.21094 13.8115 4.02148 14.1006 3.87695C14.3936 3.72852 14.6768 3.6543 14.9502 3.6543C15.2275 3.6543 15.4463 3.69531 15.6064 3.77734C15.7666 3.85547 15.8916 3.97656 15.9814 4.14062C16.0635 4.29688 16.1182 4.50586 16.1455 4.76758C16.1768 5.02539 16.1924 5.30469 16.1924 5.60547V9.33203ZM23.9141 6.0625C23.9141 7.16406 23.6484 8.01562 23.1172 8.61719C22.5859 9.21484 21.8789 9.51367 20.9961 9.51367C20.0859 9.51367 19.3691 9.20508 18.8457 8.58789C18.3262 7.9668 18.0664 7.125 18.0664 6.0625C18.0664 4.96875 18.334 4.11914 18.8691 3.51367C19.4082 2.9082 20.1172 2.60547 20.9961 2.60547C21.8789 2.60547 22.5859 2.9082 23.1172 3.51367C23.6484 4.11523 23.9141 4.96484 23.9141 6.0625ZM22.7773 6.0625C22.7773 5.21484 22.623 4.58594 22.3145 4.17578C22.0059 3.76172 21.5664 3.55469 20.9961 3.55469C20.4219 3.55469 19.9785 3.76172 19.666 4.17578C19.3574 4.58594 19.2031 5.21484 19.2031 6.0625C19.2031 6.88281 19.3574 7.50586 19.666 7.93164C19.9785 8.35352 20.4219 8.56445 20.9961 8.56445C21.5625 8.56445 22 8.35742 22.3086 7.94336C22.6211 7.52539 22.7773 6.89844 22.7773 6.0625ZM32.1621 5.54688V9.33203H33.2637V5.02539C33.2637 4.57617 33.2148 4.20312 33.1172 3.90625C33.0234 3.60938 32.8887 3.36133 32.7129 3.16211C32.541 2.9668 32.3398 2.82617 32.1094 2.74023C31.8789 2.65039 31.623 2.60547 31.3418 2.60547C30.9707 2.60547 30.627 2.70117 30.3105 2.89258C29.9941 3.08398 29.6699 3.36523 29.3379 3.73633C29.1816 3.33398 28.9531 3.04492 28.6523 2.86914C28.3555 2.69336 28.0137 2.60547 27.627 2.60547C27.2871 2.60547 26.9746 2.68555 26.6895 2.8457C26.4082 3.00195 26.123 3.22461 25.834 3.51367V2.78711H24.7324V9.33203H25.834V4.44531C26.0801 4.21484 26.334 4.02539 26.5957 3.87695C26.8574 3.72852 27.1074 3.6543 27.3457 3.6543C27.5918 3.6543 27.7871 3.69141 27.9316 3.76562C28.0762 3.83984 28.1875 3.95508 28.2656 4.11133C28.3398 4.25586 28.3887 4.45703 28.4121 4.71484C28.4355 4.96875 28.4473 5.24609 28.4473 5.54688V9.33203H29.5488V5.02539C29.5488 4.90039 29.5449 4.79297 29.5371 4.70312C29.5332 4.60938 29.5293 4.5293 29.5254 4.46289C29.8027 4.20117 30.0703 4.00195 30.3281 3.86523C30.5898 3.72461 30.834 3.6543 31.0605 3.6543C31.3066 3.6543 31.502 3.69141 31.6465 3.76562C31.791 3.83984 31.9023 3.95508 31.9805 4.11133C32.0547 4.25586 32.1035 4.45703 32.127 4.71484C32.1504 4.96875 32.1621 5.24609 32.1621 5.54688ZM38.1553 5.9043V7.7207C37.9092 7.93945 37.6455 8.125 37.3643 8.27734C37.083 8.42578 36.7686 8.5 36.4209 8.5C36.0146 8.5 35.7061 8.4043 35.4951 8.21289C35.2842 8.02148 35.1787 7.73828 35.1787 7.36328C35.1787 7.03125 35.2744 6.77344 35.4658 6.58984C35.6572 6.40234 35.8994 6.26367 36.1924 6.17383C36.4385 6.09961 36.7607 6.04297 37.1592 6.00391C37.5615 5.96094 37.8936 5.92773 38.1553 5.9043ZM37.792 8.91602C37.9443 8.79492 38.0654 8.70117 38.1553 8.63477V9.33203H39.251V4.85547C39.251 4.44531 39.1924 4.09766 39.0752 3.8125C38.958 3.52734 38.7803 3.29492 38.542 3.11523C38.2959 2.93164 38.0186 2.80469 37.71 2.73438C37.4014 2.66406 37.0225 2.62891 36.5732 2.62891C36.2021 2.62891 35.8271 2.66406 35.4482 2.73438C35.0693 2.80469 34.7783 2.86914 34.5752 2.92773V4.04688H34.6396C34.9834 3.90234 35.3271 3.79297 35.6709 3.71875C36.0146 3.64062 36.3135 3.60156 36.5674 3.60156C36.7822 3.60156 36.9912 3.61719 37.1943 3.64844C37.3975 3.67578 37.5693 3.73438 37.71 3.82422C37.8506 3.91016 37.96 4.0332 38.0381 4.19336C38.1162 4.34961 38.1553 4.55664 38.1553 4.81445V5.02539C37.5771 5.05664 37.0381 5.10547 36.5381 5.17188C36.0381 5.23438 35.6045 5.34961 35.2373 5.51758C34.8232 5.70508 34.5205 5.95898 34.3291 6.2793C34.1377 6.5957 34.042 6.98047 34.042 7.43359C34.042 7.72656 34.0947 8.00586 34.2002 8.27148C34.3057 8.5332 34.4463 8.75391 34.6221 8.93359C34.8057 9.11719 35.0186 9.25977 35.2607 9.36133C35.5029 9.46289 35.7588 9.51367 36.0283 9.51367C36.3564 9.51367 36.6104 9.48633 36.79 9.43164C36.9736 9.37695 37.1631 9.29883 37.3584 9.19727C37.499 9.12695 37.6436 9.0332 37.792 8.91602ZM9.81348 7.7207V5.9043C9.55176 5.92773 9.21973 5.96094 8.81738 6.00391C8.41895 6.04297 8.09668 6.09961 7.85059 6.17383C7.55762 6.26367 7.31543 6.40234 7.12402 6.58984C6.93262 6.77344 6.83691 7.03125 6.83691 7.36328C6.83691 7.73828 6.94238 8.02148 7.15332 8.21289C7.36426 8.4043 7.67285 8.5 8.0791 8.5C8.42676 8.5 8.74121 8.42578 9.02246 8.27734C9.30371 8.125 9.56738 7.93945 9.81348 7.7207ZM9.81348 8.63477C9.72363 8.70117 9.60254 8.79492 9.4502 8.91602C9.30176 9.0332 9.15723 9.12695 9.0166 9.19727C8.82129 9.29883 8.63184 9.37695 8.44824 9.43164C8.26855 9.48633 8.01465 9.51367 7.68652 9.51367C7.41699 9.51367 7.16113 9.46289 6.91895 9.36133C6.67676 9.25977 6.46387 9.11719 6.28027 8.93359C6.10449 8.75391 5.96387 8.5332 5.8584 8.27148C5.75293 8.00586 5.7002 7.72656 5.7002 7.43359C5.7002 6.98047 5.7959 6.5957 5.9873 6.2793C6.17871 5.95898 6.48145 5.70508 6.89551 5.51758C7.2627 5.34961 7.69629 5.23438 8.19629 5.17188C8.69629 5.10547 9.23535 5.05664 9.81348 5.02539V4.81445C9.81348 4.55664 9.77441 4.34961 9.69629 4.19336C9.61816 4.0332 9.50879 3.91016 9.36816 3.82422C9.22754 3.73438 9.05566 3.67578 8.85254 3.64844C8.64941 3.61719 8.44043 3.60156 8.22559 3.60156C7.97168 3.60156 7.67285 3.64062 7.3291 3.71875C6.98535 3.79297 6.6416 3.90234 6.29785 4.04688H6.2334V2.92773C6.43652 2.86914 6.72754 2.80469 7.10645 2.73438C7.48535 2.66406 7.86035 2.62891 8.23145 2.62891C8.68066 2.62891 9.05957 2.66406 9.36816 2.73438C9.67676 2.80469 9.9541 2.93164 10.2002 3.11523C10.4385 3.29492 10.6162 3.52734 10.7334 3.8125C10.8506 4.09766 10.9092 4.44531 10.9092 4.85547V9.33203H9.81348V8.63477ZM2.92383 1.63867V9.33203H4.08398V1.63867H7.01367V0.607422H-0.00585938V1.63867H2.92383Z\",\n fill: \"#343C6A\"\n})));\nexport default SvgTahoma;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgCouriernew = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 76 9\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M31.2363 2.00391V0.732422H29.8066V2.00391H31.2363ZM31.4004 7.13086V3.01172H29.2324C28.9434 3.01172 28.7363 3.06836 28.6113 3.18164C28.4902 3.29102 28.4297 3.43359 28.4297 3.60938C28.4297 3.78906 28.4922 3.93555 28.6172 4.04883C28.7422 4.1582 28.9473 4.21289 29.2324 4.21289H30.1992V7.13086H28.7578C28.4688 7.13086 28.2617 7.1875 28.1367 7.30078C28.0156 7.41016 27.9551 7.55273 27.9551 7.72852C27.9551 7.9082 28.0156 8.05469 28.1367 8.16797C28.2617 8.27734 28.4688 8.33203 28.7578 8.33203H32.8418C33.1309 8.33203 33.3359 8.27734 33.457 8.16797C33.582 8.05469 33.6445 7.91016 33.6445 7.73438C33.6445 7.55469 33.582 7.41016 33.457 7.30078C33.3359 7.1875 33.1309 7.13086 32.8418 7.13086H31.4004ZM56.8828 3.49805V7.13086H57.3164C57.6055 7.13086 57.8105 7.1875 57.9316 7.30078C58.0566 7.41016 58.1191 7.55469 58.1191 7.73438C58.1191 7.91016 58.0566 8.05469 57.9316 8.16797C57.8105 8.27734 57.6055 8.33203 57.3164 8.33203H55.7402C55.4512 8.33203 55.2441 8.27734 55.1191 8.16797C54.998 8.05469 54.9375 7.9082 54.9375 7.72852C54.9375 7.55664 54.998 7.41406 55.1191 7.30078C55.2402 7.1875 55.4277 7.13086 55.6816 7.13086V2.43164H55.4941C55.2051 2.43164 54.998 2.37695 54.873 2.26758C54.752 2.1543 54.6914 2.00781 54.6914 1.82812C54.6914 1.64844 54.752 1.50391 54.873 1.39453C54.998 1.28125 55.2051 1.22461 55.4941 1.22461L56.8828 1.23047L59.9531 6.04688V2.43164H59.5195C59.2305 2.43164 59.0234 2.37695 58.8984 2.26758C58.7773 2.1543 58.7168 2.00781 58.7168 1.82812C58.7168 1.64844 58.7773 1.50391 58.8984 1.39453C59.0234 1.28125 59.2305 1.22461 59.5195 1.22461L61.0957 1.23047C61.3848 1.23047 61.5898 1.28516 61.7109 1.39453C61.8359 1.50391 61.8984 1.64844 61.8984 1.82812C61.8984 2.00391 61.8379 2.14844 61.7168 2.26172C61.5957 2.375 61.4102 2.43164 61.1602 2.43164V8.33203H59.9707L56.8828 3.49805ZM63.3682 6.28125H68.2959V5.77148C68.2959 5.38086 68.2334 5.03711 68.1084 4.74023C67.9248 4.31445 67.6924 3.95703 67.4111 3.66797C67.2119 3.46875 66.9072 3.2832 66.4971 3.11133C66.0908 2.93945 65.6436 2.85352 65.1553 2.85352C64.3428 2.85352 63.624 3.11914 62.999 3.65039C62.3779 4.17773 62.0674 4.86328 62.0674 5.70703C62.0674 6.5 62.3545 7.16797 62.9287 7.71094C63.5068 8.25391 64.2764 8.52539 65.2373 8.52539C65.7959 8.52539 66.3779 8.46094 66.9834 8.33203C67.5889 8.19922 67.9697 8.06055 68.126 7.91602C68.2432 7.80664 68.3018 7.67383 68.3018 7.51758C68.3018 7.3457 68.2471 7.20312 68.1377 7.08984C68.0283 6.97656 67.8936 6.91992 67.7334 6.91992C67.6162 6.91992 67.4053 6.95898 67.1006 7.03711C66.3623 7.22852 65.7705 7.32422 65.3252 7.32422C64.7822 7.32422 64.3506 7.22852 64.0303 7.03711C63.7139 6.8457 63.4932 6.59375 63.3682 6.28125ZM66.2451 4.3125C66.542 4.48047 66.7822 4.73633 66.9658 5.08008H63.4033C63.5908 4.73633 63.833 4.48047 64.1299 4.3125C64.4268 4.14062 64.7783 4.05469 65.1846 4.05469C65.5947 4.05469 65.9482 4.14062 66.2451 4.3125ZM71.3525 8.33203L72.1846 6.11719L73.0635 8.33203H74.1768L75.1611 4.21289C75.3721 4.19727 75.5303 4.13477 75.6357 4.02539C75.7451 3.91211 75.7998 3.77539 75.7998 3.61523C75.7998 3.43555 75.7373 3.29102 75.6123 3.18164C75.4912 3.06836 75.2861 3.01172 74.9971 3.01172H73.8662C73.5771 3.01172 73.3701 3.06836 73.2451 3.18164C73.124 3.29102 73.0635 3.43359 73.0635 3.60938C73.0635 3.83203 73.1572 4.00391 73.3447 4.125C73.4385 4.18359 73.6338 4.21289 73.9307 4.21289L73.4619 6.11719L72.7119 4.16602H71.6455L70.9014 6.11719L70.4443 4.21289C70.7529 4.21289 70.96 4.16602 71.0654 4.07227C71.2061 3.94727 71.2764 3.79492 71.2764 3.61523C71.2764 3.43555 71.2139 3.29102 71.0889 3.18164C70.9678 3.06836 70.7627 3.01172 70.4736 3.01172H69.3545C69.0654 3.01172 68.8584 3.06836 68.7334 3.18164C68.6123 3.29102 68.5518 3.43359 68.5518 3.60938C68.5518 3.77734 68.6064 3.91797 68.7158 4.03125C68.8291 4.14062 68.9951 4.20117 69.2139 4.21289L70.2217 8.33203H71.3525ZM44.3467 3.76172V3.01172H42.7119C42.4229 3.01172 42.2158 3.06836 42.0908 3.18164C41.9697 3.29102 41.9092 3.43359 41.9092 3.60938C41.9092 3.78906 41.9697 3.93555 42.0908 4.04883C42.2158 4.1582 42.4229 4.21289 42.7119 4.21289H43.1455V7.13086H42.4307C42.1416 7.13086 41.9346 7.1875 41.8096 7.30078C41.6885 7.41016 41.6279 7.55273 41.6279 7.72852C41.6279 7.9082 41.6885 8.05469 41.8096 8.16797C41.9346 8.27734 42.1416 8.33203 42.4307 8.33203H46.0576C46.3467 8.33203 46.5518 8.27734 46.6729 8.16797C46.7979 8.05469 46.8604 7.91016 46.8604 7.73438C46.8604 7.55469 46.7979 7.41016 46.6729 7.30078C46.5518 7.1875 46.3467 7.13086 46.0576 7.13086H44.3467V5.32031C44.8467 4.89844 45.2627 4.58203 45.5947 4.37109C45.9307 4.16016 46.1826 4.05469 46.3506 4.05469C46.4795 4.05469 46.626 4.12891 46.79 4.27734C46.9541 4.42578 47.1104 4.5 47.2588 4.5C47.4268 4.5 47.5693 4.44141 47.6865 4.32422C47.8076 4.20312 47.8682 4.05664 47.8682 3.88477C47.8682 3.68164 47.7432 3.48242 47.4932 3.28711C47.126 2.99805 46.7471 2.85352 46.3564 2.85352C46.1025 2.85352 45.8291 2.91406 45.5361 3.03516C45.2471 3.15625 44.8506 3.39844 44.3467 3.76172ZM40.7158 6.28125H35.7881C35.9131 6.59375 36.1338 6.8457 36.4502 7.03711C36.7705 7.22852 37.2021 7.32422 37.7451 7.32422C38.1904 7.32422 38.7822 7.22852 39.5205 7.03711C39.8252 6.95898 40.0361 6.91992 40.1533 6.91992C40.3135 6.91992 40.4482 6.97656 40.5576 7.08984C40.667 7.20312 40.7217 7.3457 40.7217 7.51758C40.7217 7.67383 40.6631 7.80664 40.5459 7.91602C40.3896 8.06055 40.0088 8.19922 39.4033 8.33203C38.7979 8.46094 38.2158 8.52539 37.6572 8.52539C36.6963 8.52539 35.9268 8.25391 35.3486 7.71094C34.7744 7.16797 34.4873 6.5 34.4873 5.70703C34.4873 4.86328 34.7979 4.17773 35.4189 3.65039C36.0439 3.11914 36.7627 2.85352 37.5752 2.85352C38.0635 2.85352 38.5107 2.93945 38.917 3.11133C39.3271 3.2832 39.6318 3.46875 39.8311 3.66797C40.1123 3.95703 40.3447 4.31445 40.5283 4.74023C40.6533 5.03711 40.7158 5.38086 40.7158 5.77148V6.28125ZM39.3857 5.08008C39.2021 4.73633 38.9619 4.48047 38.665 4.3125C38.3682 4.14062 38.0146 4.05469 37.6045 4.05469C37.1982 4.05469 36.8467 4.14062 36.5498 4.3125C36.2529 4.48047 36.0107 4.73633 35.8232 5.08008H39.3857ZM23.6621 3.01172V3.76172C24.166 3.39844 24.5625 3.15625 24.8516 3.03516C25.1445 2.91406 25.418 2.85352 25.6719 2.85352C26.0625 2.85352 26.4414 2.99805 26.8086 3.28711C27.0586 3.48242 27.1836 3.68164 27.1836 3.88477C27.1836 4.05664 27.123 4.20312 27.002 4.32422C26.8848 4.44141 26.7422 4.5 26.5742 4.5C26.4258 4.5 26.2695 4.42578 26.1055 4.27734C25.9414 4.12891 25.7949 4.05469 25.666 4.05469C25.498 4.05469 25.2461 4.16016 24.9102 4.37109C24.5781 4.58203 24.1621 4.89844 23.6621 5.32031V7.13086H25.373C25.6621 7.13086 25.8672 7.1875 25.9883 7.30078C26.1133 7.41016 26.1758 7.55469 26.1758 7.73438C26.1758 7.91016 26.1133 8.05469 25.9883 8.16797C25.8672 8.27734 25.6621 8.33203 25.373 8.33203H21.7461C21.457 8.33203 21.25 8.27734 21.125 8.16797C21.0039 8.05469 20.9434 7.9082 20.9434 7.72852C20.9434 7.55273 21.0039 7.41016 21.125 7.30078C21.25 7.1875 21.457 7.13086 21.7461 7.13086H22.4609V4.21289H22.0273C21.7383 4.21289 21.5312 4.1582 21.4062 4.04883C21.2852 3.93555 21.2246 3.78906 21.2246 3.60938C21.2246 3.43359 21.2852 3.29102 21.4062 3.18164C21.5312 3.06836 21.7383 3.01172 22.0273 3.01172H23.6621ZM19.5674 7.13086V3.01172H17.9326C17.6436 3.01172 17.4365 3.06836 17.3115 3.18164C17.1904 3.29102 17.1299 3.43359 17.1299 3.60938C17.1299 3.78906 17.1904 3.93555 17.3115 4.04883C17.4365 4.1582 17.6436 4.21289 17.9326 4.21289H18.3662V6.66211C17.9561 6.91211 17.6104 7.08594 17.3291 7.18359C17.0518 7.27734 16.792 7.32422 16.5498 7.32422C16.2959 7.32422 16.1064 7.26562 15.9814 7.14844C15.8604 7.02734 15.7998 6.83984 15.7998 6.58594V3.01172H14.3936C14.1045 3.01172 13.8975 3.06836 13.7725 3.18164C13.6514 3.29102 13.5908 3.43359 13.5908 3.60938C13.5908 3.78906 13.6514 3.93555 13.7725 4.04883C13.8975 4.1582 14.1045 4.21289 14.3936 4.21289H14.5986V6.79688C14.5986 7.11328 14.6592 7.37695 14.7803 7.58789C14.9482 7.88086 15.1768 8.11133 15.4658 8.2793C15.7549 8.44336 16.0967 8.52539 16.4912 8.52539C16.7725 8.52539 17.0693 8.48633 17.3818 8.4082C17.6943 8.33008 18.0225 8.21289 18.3662 8.05664V8.33203H19.5088C19.7979 8.33203 20.0029 8.27734 20.124 8.16797C20.249 8.05469 20.3115 7.91016 20.3115 7.73438C20.3115 7.55859 20.251 7.41406 20.1299 7.30078C20.0088 7.1875 19.8213 7.13086 19.5674 7.13086ZM13.2412 5.77148C13.2412 6.23242 13.1123 6.67969 12.8545 7.11328C12.6006 7.54297 12.2197 7.88672 11.7119 8.14453C11.208 8.39844 10.6807 8.52539 10.1299 8.52539C9.58301 8.52539 9.05957 8.40039 8.55957 8.15039C8.05957 7.89648 7.67871 7.55273 7.41699 7.11914C7.15527 6.68555 7.02441 6.23242 7.02441 5.75977C7.02441 5.2793 7.15723 4.80859 7.42285 4.34766C7.68848 3.88281 8.06934 3.51758 8.56543 3.25195C9.06543 2.98633 9.58691 2.85352 10.1299 2.85352C10.6768 2.85352 11.2021 2.99023 11.7061 3.26367C12.2139 3.5332 12.5967 3.89844 12.8545 4.35938C13.1123 4.81641 13.2412 5.28711 13.2412 5.77148ZM12.04 5.77734C12.04 5.39062 11.9014 5.03516 11.624 4.71094C11.2451 4.27344 10.7471 4.05469 10.1299 4.05469C9.58691 4.05469 9.13379 4.22852 8.77051 4.57617C8.40723 4.92383 8.22559 5.32617 8.22559 5.7832C8.22559 6.1582 8.40918 6.50977 8.77637 6.83789C9.14355 7.16211 9.59473 7.32422 10.1299 7.32422C10.6689 7.32422 11.1221 7.16211 11.4893 6.83789C11.8564 6.50977 12.04 6.15625 12.04 5.77734ZM5.34961 1.30664C5.26367 1.35742 5.18359 1.43359 5.10938 1.53516C4.84766 1.37109 4.56445 1.25 4.25977 1.17188C3.95898 1.08984 3.63477 1.04883 3.28711 1.04883C2.70898 1.04883 2.16211 1.19531 1.64648 1.48828C1.13086 1.78125 0.726562 2.19922 0.433594 2.74219C0.144531 3.28125 0 3.86328 0 4.48828V5.30273C0 5.90039 0.162109 6.45312 0.486328 6.96094C0.810547 7.46484 1.20312 7.83398 1.66406 8.06836C2.23438 8.36133 2.875 8.50781 3.58594 8.50781C4.19531 8.50781 4.75195 8.40234 5.25586 8.19141C5.63086 8.03516 5.9375 7.82031 6.17578 7.54688C6.33984 7.35938 6.42188 7.18359 6.42188 7.01953C6.42188 6.85547 6.36133 6.71289 6.24023 6.5918C6.11914 6.4707 5.97852 6.41016 5.81836 6.41016C5.72852 6.41016 5.64844 6.42969 5.57812 6.46875C5.50781 6.50391 5.41016 6.58398 5.28516 6.70898C5.08203 6.91602 4.89062 7.05469 4.71094 7.125C4.40234 7.24609 4.02539 7.30664 3.58008 7.30664C2.83398 7.30664 2.25 7.11328 1.82812 6.72656C1.41016 6.33984 1.20117 5.85742 1.20117 5.2793V4.5C1.20117 4.01562 1.31641 3.59766 1.54688 3.24609C1.77734 2.89453 2.04297 2.64062 2.34375 2.48438C2.64453 2.32812 2.97461 2.25 3.33398 2.25C3.62305 2.25 3.91016 2.30273 4.19531 2.4082C4.48438 2.51367 4.70898 2.6543 4.86914 2.83008C4.95117 2.91992 5.00586 3.04688 5.0332 3.21094C5.08008 3.45703 5.15234 3.625 5.25 3.71484C5.34766 3.80469 5.47656 3.84961 5.63672 3.84961C5.8125 3.84961 5.95508 3.78906 6.06445 3.66797C6.17773 3.54297 6.23438 3.33594 6.23438 3.04688V2.02734C6.23438 1.73828 6.17773 1.5332 6.06445 1.41211C5.95508 1.29102 5.8125 1.23047 5.63672 1.23047C5.53516 1.23047 5.43945 1.25586 5.34961 1.30664Z\",\n fill: \"#343C6A\"\n})));\nexport default SvgCouriernew;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgTrebuchetms = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 70 10\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M18.9922 8.88086L18.5996 9.44922H18.043V0.484375H19.1562V3.51953C19.2617 3.375 19.459 3.24219 19.748 3.12109C20.041 3 20.3281 2.93945 20.6094 2.93945C21.4688 2.93945 22.1641 3.23633 22.6953 3.83008C23.2305 4.42383 23.498 5.17383 23.498 6.08008C23.498 7.12695 23.2305 7.95117 22.6953 8.55273C22.1602 9.15039 21.4355 9.44922 20.5215 9.44922C20.2246 9.44922 19.9316 9.39453 19.6426 9.28516C19.3574 9.17188 19.1406 9.03711 18.9922 8.88086ZM19.1562 4.36914V7.99023C19.1562 8.05273 19.2949 8.15625 19.5723 8.30078C19.8496 8.44141 20.0605 8.51172 20.2051 8.51172C20.9629 8.51172 21.5059 8.33008 21.834 7.9668C22.1621 7.60352 22.3262 6.99414 22.3262 6.13867C22.3262 5.42773 22.1348 4.87305 21.752 4.47461C21.3691 4.07617 20.8535 3.87695 20.2051 3.87695C20.0684 3.87695 19.877 3.93555 19.6309 4.05273C19.3887 4.16992 19.2305 4.27539 19.1562 4.36914ZM40.1689 5.38867V9.33203H41.2822V5.38867C41.2822 4.63086 41.0928 4.0332 40.7139 3.5957C40.3389 3.1582 39.8193 2.93945 39.1553 2.93945C38.8037 2.93945 38.4619 3.01758 38.1299 3.17383C37.8018 3.32617 37.5635 3.51758 37.415 3.74805V0.484375H36.3018V9.33203H37.415V4.66797C37.5596 4.45703 37.7666 4.27344 38.0361 4.11719C38.3096 3.95703 38.5811 3.87695 38.8506 3.87695C39.2686 3.87695 39.5928 4.01172 39.8232 4.28125C40.0537 4.55078 40.1689 4.91992 40.1689 5.38867ZM64.4551 8.93945L64.8828 7.86133C65.1016 8.02148 65.373 8.15625 65.6973 8.26562C66.0254 8.37109 66.3184 8.42383 66.5762 8.42383C67.0332 8.42383 67.4004 8.29883 67.6777 8.04883C67.9551 7.79883 68.0938 7.48047 68.0938 7.09375C68.0938 6.80469 68.0156 6.53711 67.8594 6.29102C67.707 6.04102 67.3203 5.76953 66.6992 5.47656L66.0078 5.1543C65.4219 4.88086 65.0117 4.55664 64.7773 4.18164C64.5469 3.80664 64.4316 3.35547 64.4316 2.82812C64.4316 2.1875 64.6582 1.65625 65.1113 1.23438C65.5645 0.8125 66.1465 0.601562 66.8574 0.601562C67.8066 0.601562 68.4668 0.755859 68.8379 1.06445L68.4922 2.08398C68.3359 1.9707 68.0977 1.86133 67.7773 1.75586C67.457 1.65039 67.1602 1.59766 66.8867 1.59766C66.4883 1.59766 66.1738 1.71094 65.9434 1.9375C65.7168 2.16406 65.6035 2.45508 65.6035 2.81055C65.6035 3.0293 65.6445 3.22852 65.7266 3.4082C65.8086 3.58789 65.9219 3.73828 66.0664 3.85938C66.2148 3.98047 66.5156 4.15039 66.9688 4.36914L67.6719 4.70312C68.2578 4.98047 68.668 5.3125 68.9023 5.69922C69.1406 6.08203 69.2598 6.57031 69.2598 7.16406C69.2598 7.80859 69 8.35547 68.4805 8.80469C67.9648 9.25391 67.2734 9.47852 66.4062 9.47852C65.6445 9.47852 64.9941 9.29883 64.4551 8.93945ZM63.0967 9.33203L62.0771 3.81836L60.2021 9.44922H59.9092L57.9814 3.81836L56.9854 9.33203H55.8721L57.4775 0.748047H58.0107L60.0557 7.01172L61.9424 0.748047H62.4697L64.21 9.33203H63.0967ZM48.4629 3.93555H49.1895V7.49805C49.1895 8.06055 49.3594 8.52734 49.6992 8.89844C50.043 9.26562 50.4629 9.44922 50.959 9.44922C51.5098 9.44922 52.0156 9.39062 52.4766 9.27344L52.3125 8.29492C52.0078 8.43945 51.7129 8.51172 51.4277 8.51172C51.0332 8.51172 50.7461 8.40039 50.5664 8.17773C50.3906 7.95508 50.3027 7.58008 50.3027 7.05273V3.93555H52.0254V3.05664H50.3027V1.31641L49.1895 1.74414V3.05664H48.4629V3.93555ZM47.8379 6.30273H43.3145C43.3145 7.03711 43.5156 7.60156 43.918 7.99609C44.2734 8.33984 44.7305 8.51172 45.2891 8.51172C45.9258 8.51172 46.457 8.32617 46.8828 7.95508L47.3516 8.75781C47.1797 8.92969 46.916 9.07812 46.5605 9.20312C46.1152 9.36719 45.6191 9.44922 45.0723 9.44922C44.2832 9.44922 43.6133 9.18164 43.0625 8.64648C42.4492 8.05664 42.1426 7.26367 42.1426 6.26758C42.1426 5.23242 42.457 4.40234 43.0859 3.77734C43.6484 3.21875 44.3145 2.93945 45.084 2.93945C45.9785 2.93945 46.6797 3.19141 47.1875 3.69531C47.6797 4.17969 47.9258 4.82227 47.9258 5.62305C47.9258 5.86914 47.8965 6.0957 47.8379 6.30273ZM45.1367 3.87695C44.6406 3.87695 44.2246 4.03711 43.8887 4.35742C43.5684 4.66211 43.3867 5.04102 43.3438 5.49414H46.8184C46.8184 5.04492 46.6777 4.66992 46.3965 4.36914C46.0879 4.04102 45.668 3.87695 45.1367 3.87695ZM35.4072 3.56641L34.8564 4.35156C34.7432 4.23828 34.542 4.13086 34.2529 4.0293C33.9678 3.92773 33.6865 3.87695 33.4092 3.87695C32.8037 3.87695 32.3232 4.08984 31.9678 4.51562C31.6123 4.9375 31.4346 5.51758 31.4346 6.25586C31.4346 6.99023 31.6162 7.55078 31.9795 7.9375C32.3428 8.32031 32.8467 8.51172 33.4912 8.51172C33.9912 8.51172 34.4951 8.31836 35.0029 7.93164L35.4424 8.86914C34.8447 9.25586 34.1045 9.44922 33.2217 9.44922C32.3662 9.44922 31.6592 9.16211 31.1006 8.58789C30.542 8.01367 30.2627 7.23633 30.2627 6.25586C30.2627 5.25586 30.5518 4.45312 31.1299 3.84766C31.7119 3.24219 32.5068 2.93945 33.5146 2.93945C33.8389 2.93945 34.1904 3.00781 34.5693 3.14453C34.9482 3.28125 35.2275 3.42188 35.4072 3.56641ZM25.4766 7.05859V3.05664H24.3633V7.17578C24.3633 7.90234 24.5449 8.46289 24.9082 8.85742C25.2754 9.25195 25.8027 9.44922 26.4902 9.44922C26.8496 9.44922 27.2168 9.34766 27.5918 9.14453C27.9707 8.9375 28.2227 8.71094 28.3477 8.46484V9.33203H29.4609V3.05664H28.3477V7.46289C28.25 7.74023 28.0488 7.98438 27.7441 8.19531C27.4395 8.40625 27.1035 8.51172 26.7363 8.51172C25.8965 8.51172 25.4766 8.02734 25.4766 7.05859ZM12.5654 6.30273H17.0889C17.1475 6.0957 17.1768 5.86914 17.1768 5.62305C17.1768 4.82227 16.9307 4.17969 16.4385 3.69531C15.9307 3.19141 15.2295 2.93945 14.335 2.93945C13.5654 2.93945 12.8994 3.21875 12.3369 3.77734C11.708 4.40234 11.3936 5.23242 11.3936 6.26758C11.3936 7.26367 11.7002 8.05664 12.3135 8.64648C12.8643 9.18164 13.5342 9.44922 14.3232 9.44922C14.8701 9.44922 15.3662 9.36719 15.8115 9.20312C16.167 9.07812 16.4307 8.92969 16.6025 8.75781L16.1338 7.95508C15.708 8.32617 15.1768 8.51172 14.54 8.51172C13.9814 8.51172 13.5244 8.33984 13.1689 7.99609C12.7666 7.60156 12.5654 7.03711 12.5654 6.30273ZM13.1396 4.35742C13.4756 4.03711 13.8916 3.87695 14.3877 3.87695C14.9189 3.87695 15.3389 4.04102 15.6475 4.36914C15.9287 4.66992 16.0693 5.04492 16.0693 5.49414H12.5947C12.6377 5.04102 12.8193 4.66211 13.1396 4.35742ZM10.8623 4.12891C10.6201 3.96094 10.376 3.87695 10.1299 3.87695C9.73535 3.87695 9.38965 4.05859 9.09277 4.42188C8.7998 4.78516 8.65332 5.22266 8.65332 5.73438V9.33203H7.54004V3.05664H8.65332V4.05859C9.05957 3.3125 9.66309 2.93945 10.4639 2.93945C10.6631 2.93945 10.9502 2.97461 11.3252 3.04492L10.8623 4.12891ZM4.00781 9.33203V1.80273H6.86133V0.748047H0.105469V1.80273H2.83594V9.33203H4.00781Z\",\n fill: \"#343C6A\"\n})));\nexport default SvgTrebuchetms;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgLucidagrande = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 78 10\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M26.3438 8.13672V9.33203H27.5039V0.0800781H26.3438V3.69531C25.8477 3.11719 25.2227 2.82812 24.4688 2.82812C23.6562 2.82812 23 3.15039 22.5 3.79492C22.0039 4.43945 21.7559 5.29102 21.7559 6.34961C21.7559 7.31836 21.9746 8.08203 22.4121 8.64062C22.8535 9.19922 23.457 9.47852 24.2227 9.47852C25.168 9.47852 25.875 9.03125 26.3438 8.13672ZM24.6445 3.69531C25.1797 3.69531 25.7461 3.95898 26.3438 4.48633V7.41602C25.7305 8.11523 25.1035 8.46484 24.4629 8.46484C23.4785 8.46484 22.9863 7.7207 22.9863 6.23242C22.9863 4.54102 23.5391 3.69531 24.6445 3.69531ZM69.8164 8.13672V9.33203H70.9766V0.0800781H69.8164V3.69531C69.3203 3.11719 68.6953 2.82812 67.9414 2.82812C67.1289 2.82812 66.4727 3.15039 65.9727 3.79492C65.4766 4.43945 65.2285 5.29102 65.2285 6.34961C65.2285 7.31836 65.4473 8.08203 65.8848 8.64062C66.3262 9.19922 66.9297 9.47852 67.6953 9.47852C68.6406 9.47852 69.3477 9.03125 69.8164 8.13672ZM68.1172 3.69531C68.6523 3.69531 69.2188 3.95898 69.8164 4.48633V7.41602C69.2031 8.11523 68.5762 8.46484 67.9355 8.46484C66.9512 8.46484 66.459 7.7207 66.459 6.23242C66.459 4.54102 67.0117 3.69531 68.1172 3.69531ZM75.6562 9.47852C76.207 9.47852 76.8691 9.36133 77.6426 9.12695V8.21289C76.9434 8.4707 76.3535 8.59961 75.873 8.59961C74.5605 8.59961 73.8203 7.84375 73.6523 6.33203H77.666L77.6719 5.97461C77.6719 4.9668 77.4609 4.18945 77.0391 3.64258C76.6211 3.0957 76.0273 2.82227 75.2578 2.82227C74.4453 2.82227 73.7773 3.13086 73.2539 3.74805C72.7344 4.36523 72.4746 5.15625 72.4746 6.12109C72.4746 7.11328 72.7695 7.92188 73.3594 8.54688C73.9531 9.16797 74.7188 9.47852 75.6562 9.47852ZM76.5117 5.46484H73.7051C73.8066 4.28125 74.3008 3.68945 75.1875 3.68945C76.0703 3.68945 76.5117 4.28125 76.5117 5.46484ZM58.5908 9.33203V2.96875H59.7451V4.16406C60.3545 3.27344 61.1006 2.82812 61.9834 2.82812C62.5342 2.82812 62.9736 3.00391 63.3018 3.35547C63.6299 3.70312 63.7939 4.17188 63.7939 4.76172V9.33203H62.6396V5.13672C62.6396 4.66406 62.5693 4.32812 62.4287 4.12891C62.292 3.92578 62.0635 3.82422 61.7432 3.82422C61.0361 3.82422 60.3701 4.28711 59.7451 5.21289V9.33203H58.5908ZM53.5537 9.47852C54.1943 9.47852 54.8604 9.16016 55.5518 8.52344C55.7002 9.16016 56.0439 9.47852 56.583 9.47852C56.8994 9.47852 57.1885 9.41602 57.4502 9.29102L57.3682 8.65234C57.2705 8.66797 57.1963 8.67578 57.1455 8.67578C56.7393 8.67578 56.5361 8.3457 56.5361 7.68555V4.80273C56.5361 4.12695 56.3662 3.62891 56.0264 3.30859C55.6904 2.98828 55.167 2.82812 54.4561 2.82812C53.7764 2.82812 53.0479 2.98633 52.2705 3.30273V4.25781C52.9775 3.88281 53.6357 3.69531 54.2451 3.69531C55.0029 3.69531 55.3818 4.06445 55.3818 4.80273V5.57031H55.1064C54.0166 5.57031 53.1787 5.75781 52.5928 6.13281C52.0107 6.50391 51.7197 7.03711 51.7197 7.73242C51.7197 8.23633 51.8936 8.6543 52.2412 8.98633C52.5889 9.31445 53.0264 9.47852 53.5537 9.47852ZM55.3818 6.25V7.89648C54.8623 8.32227 54.3623 8.53516 53.8818 8.53516C53.6006 8.53516 53.3623 8.43945 53.167 8.24805C52.9717 8.05664 52.874 7.82227 52.874 7.54492C52.874 7.1543 53.0693 6.83984 53.46 6.60156C53.8506 6.35938 54.3623 6.23828 54.9951 6.23828L55.3818 6.25ZM47.6719 9.33203V2.96875H48.8262V4.16406C49.2832 3.27344 49.9473 2.82812 50.8184 2.82812C50.9355 2.82812 51.0586 2.83789 51.1875 2.85742V3.93555C50.9883 3.86914 50.8125 3.83594 50.6602 3.83594C49.9297 3.83594 49.3184 4.26953 48.8262 5.13672V9.33203H47.6719ZM43.0449 9.54883C43.8262 9.54883 44.7422 9.39844 45.793 9.09766V5.58789H44.5684V8.41211C44.0918 8.55664 43.6484 8.62891 43.2383 8.62891C42.2383 8.62891 41.4609 8.3125 40.9062 7.67969C40.3516 7.04297 40.0742 6.15234 40.0742 5.00781C40.0742 3.85156 40.332 2.95508 40.8477 2.31836C41.3672 1.68164 42.0957 1.36328 43.0332 1.36328C43.6699 1.36328 44.5859 1.56641 45.7812 1.97266V0.835938C44.8281 0.574219 43.9102 0.443359 43.0273 0.443359C41.6797 0.443359 40.6328 0.84375 39.8867 1.64453C39.1406 2.44141 38.7676 3.55859 38.7676 4.99609C38.7676 6.46094 39.1348 7.58594 39.8691 8.37109C40.6074 9.15625 41.666 9.54883 43.0449 9.54883ZM32.7881 8.52344C32.0967 9.16016 31.4307 9.47852 30.79 9.47852C30.2627 9.47852 29.8252 9.31445 29.4775 8.98633C29.1299 8.6543 28.9561 8.23633 28.9561 7.73242C28.9561 7.03711 29.2471 6.50391 29.8291 6.13281C30.415 5.75781 31.2529 5.57031 32.3428 5.57031H32.6182V4.80273C32.6182 4.06445 32.2393 3.69531 31.4814 3.69531C30.8721 3.69531 30.2139 3.88281 29.5068 4.25781V3.30273C30.2842 2.98633 31.0127 2.82812 31.6924 2.82812C32.4033 2.82812 32.9268 2.98828 33.2627 3.30859C33.6025 3.62891 33.7725 4.12695 33.7725 4.80273V7.68555C33.7725 8.3457 33.9756 8.67578 34.3818 8.67578C34.4326 8.67578 34.5068 8.66797 34.6045 8.65234L34.6865 9.29102C34.4248 9.41602 34.1357 9.47852 33.8193 9.47852C33.2803 9.47852 32.9365 9.16016 32.7881 8.52344ZM32.6182 7.89648V6.25L32.2314 6.23828C31.5986 6.23828 31.0869 6.35938 30.6963 6.60156C30.3057 6.83984 30.1104 7.1543 30.1104 7.54492C30.1104 7.82227 30.208 8.05664 30.4033 8.24805C30.5986 8.43945 30.8369 8.53516 31.1182 8.53516C31.5986 8.53516 32.0986 8.32227 32.6182 7.89648ZM19.1035 9.33203V2.96875H20.2578V9.33203H19.1035ZM19.1035 1.81445V0.660156H20.2578V1.81445H19.1035ZM13.6084 8.52344C14.1748 9.16016 14.8877 9.47852 15.7471 9.47852C16.29 9.47852 16.9346 9.36523 17.6807 9.13867V8.14258C17.1221 8.41211 16.5791 8.54688 16.0518 8.54688C15.458 8.54688 14.9775 8.32617 14.6104 7.88477C14.2432 7.44336 14.0596 6.86523 14.0596 6.15039C14.0596 5.41211 14.2373 4.82227 14.5928 4.38086C14.9521 3.93555 15.4268 3.71289 16.0166 3.71289C16.4268 3.71289 16.958 3.80859 17.6104 4V3.0332C16.9971 2.89648 16.4424 2.82812 15.9463 2.82812C14.9424 2.82812 14.1592 3.11719 13.5967 3.69531C13.0381 4.27344 12.7588 5.08008 12.7588 6.11523C12.7588 7.08398 13.042 7.88672 13.6084 8.52344ZM10.1006 9.33203V8.13672C9.4873 9.03125 8.74316 9.47852 7.86816 9.47852C7.31348 9.47852 6.87207 9.30469 6.54395 8.95703C6.21582 8.60547 6.05176 8.13281 6.05176 7.53906V2.96875H7.20605V7.16406C7.20605 7.64062 7.27441 7.98047 7.41113 8.18359C7.55176 8.38281 7.78418 8.48242 8.1084 8.48242C8.81152 8.48242 9.47559 8.01953 10.1006 7.09375V2.96875H11.2549V9.33203H10.1006ZM0 0.660156V9.33203H5.13281V8.41211H1.23047V0.660156H0Z\",\n fill: \"#343C6A\"\n})));\nexport default SvgLucidagrande;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgTimesnewroman = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 89 9\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.40137 0C8.56543 0 8.7041 0.0585938 8.81738 0.175781C8.93457 0.289062 8.99316 0.427734 8.99316 0.591797C8.99316 0.755859 8.93457 0.896484 8.81738 1.01367C8.7041 1.13086 8.56543 1.18945 8.40137 1.18945C8.2373 1.18945 8.09668 1.13086 7.97949 1.01367C7.8623 0.896484 7.80371 0.755859 7.80371 0.591797C7.80371 0.427734 7.86035 0.289062 7.97363 0.175781C8.09082 0.0585938 8.2334 0 8.40137 0ZM8.8877 2.80664V7.11914C8.8877 7.45508 8.91113 7.67969 8.95801 7.79297C9.00879 7.90234 9.08105 7.98438 9.1748 8.03906C9.27246 8.09375 9.44824 8.12109 9.70215 8.12109V8.33203H7.09473V8.12109C7.35645 8.12109 7.53223 8.0957 7.62207 8.04492C7.71191 7.99414 7.78223 7.91016 7.83301 7.79297C7.88769 7.67578 7.91504 7.45117 7.91504 7.11914V5.05078C7.91504 4.46875 7.89746 4.0918 7.8623 3.91992C7.83496 3.79492 7.79199 3.70898 7.7334 3.66211C7.6748 3.61133 7.59473 3.58594 7.49316 3.58594C7.38379 3.58594 7.25098 3.61523 7.09473 3.67383L7.0127 3.46289L8.62988 2.80664H8.8877ZM30.6299 0.386719H32.7861L37.6436 6.3457V1.76367C37.6436 1.27539 37.5889 0.970703 37.4795 0.849609C37.335 0.685547 37.1064 0.603516 36.7939 0.603516H36.5186V0.386719H39.2842V0.603516H39.0029C38.667 0.603516 38.4287 0.705078 38.2881 0.908203C38.2021 1.0332 38.1592 1.31836 38.1592 1.76367V8.46094H37.9482L32.71 2.0625V6.95508C32.71 7.44336 32.7627 7.74805 32.8682 7.86914C33.0166 8.0332 33.2451 8.11523 33.5537 8.11523H33.835V8.33203H31.0693V8.11523H31.3447C31.6846 8.11523 31.9248 8.01367 32.0654 7.81055C32.1514 7.68555 32.1943 7.40039 32.1943 6.95508V1.42969C31.9639 1.16016 31.7881 0.982422 31.667 0.896484C31.5498 0.810547 31.376 0.730469 31.1455 0.65625C31.0322 0.621094 30.8604 0.603516 30.6299 0.603516V0.386719ZM61.2041 8.33203H63.3252V8.11523C62.8916 8.06836 62.54 7.95898 62.2705 7.78711C62.001 7.61523 61.6787 7.26758 61.3037 6.74414L59.6631 4.46484C60.3311 4.31641 60.8232 4.0625 61.1396 3.70312C61.46 3.34375 61.6201 2.91992 61.6201 2.43164C61.6201 1.97461 61.4795 1.58203 61.1982 1.25391C60.9209 0.921875 60.5811 0.695312 60.1787 0.574219C59.7803 0.449219 59.1592 0.386719 58.3154 0.386719H55.4209V0.603516H55.7197C56.0205 0.603516 56.2471 0.689453 56.3994 0.861328C56.5088 0.982422 56.5635 1.29297 56.5635 1.79297V6.92578C56.5635 7.37891 56.5225 7.66602 56.4404 7.78711C56.2959 8.00586 56.0557 8.11523 55.7197 8.11523H55.4209V8.33203H58.8252V8.11523H58.5146C58.2178 8.11523 57.9951 8.0293 57.8467 7.85742C57.7373 7.73633 57.6826 7.42578 57.6826 6.92578V4.61719C57.7451 4.62109 57.8057 4.625 57.8643 4.62891H58.0283C58.1533 4.62891 58.3154 4.625 58.5146 4.61719L61.2041 8.33203ZM57.876 4.25391C57.8213 4.25 57.7568 4.24805 57.6826 4.24805V0.943359C58.0693 0.869141 58.376 0.832031 58.6025 0.832031C59.1143 0.832031 59.5244 0.988281 59.833 1.30078C60.1455 1.60938 60.3018 2.01172 60.3018 2.50781C60.3018 3.01562 60.1084 3.43359 59.7217 3.76172C59.3389 4.08984 58.7686 4.25391 58.0107 4.25391H57.876ZM65.9082 2.80664C66.7207 2.80664 67.373 3.11523 67.8652 3.73242C68.2832 4.25977 68.4922 4.86523 68.4922 5.54883C68.4922 6.0293 68.377 6.51562 68.1465 7.00781C67.916 7.5 67.5977 7.87109 67.1914 8.12109C66.7891 8.37109 66.3398 8.49609 65.8438 8.49609C65.0352 8.49609 64.3926 8.17383 63.916 7.5293C63.5137 6.98633 63.3125 6.37695 63.3125 5.70117C63.3125 5.20898 63.4336 4.7207 63.6758 4.23633C63.9219 3.74805 64.2441 3.38867 64.6426 3.1582C65.041 2.92383 65.4629 2.80664 65.9082 2.80664ZM65.7266 3.1875C65.5195 3.1875 65.3105 3.25 65.0996 3.375C64.8926 3.49609 64.7246 3.71094 64.5957 4.01953C64.4668 4.32812 64.4023 4.72461 64.4023 5.20898C64.4023 5.99023 64.5566 6.66406 64.8652 7.23047C65.1777 7.79688 65.5879 8.08008 66.0957 8.08008C66.4746 8.08008 66.7871 7.92383 67.0332 7.61133C67.2793 7.29883 67.4023 6.76172 67.4023 6C67.4023 5.04688 67.1973 4.29688 66.7871 3.75C66.5098 3.375 66.1562 3.1875 65.7266 3.1875ZM71.2559 3.27539C71.1855 3.33398 70.9551 3.55859 70.5645 3.94922V2.80664H70.3125L68.6953 3.46289L68.7832 3.67383C68.9355 3.61523 69.0664 3.58594 69.1758 3.58594C69.2773 3.58594 69.3574 3.61133 69.416 3.66211C69.4746 3.70898 69.5176 3.79688 69.5449 3.92578C69.5801 4.09766 69.5977 4.47852 69.5977 5.06836V7.11914C69.5977 7.45117 69.5723 7.67578 69.5215 7.79297C69.4707 7.90625 69.3965 7.99023 69.2988 8.04492C69.2012 8.0957 69.0293 8.12109 68.7832 8.12109V8.33203H71.4375V8.12109C71.1445 8.12109 70.9492 8.0957 70.8516 8.04492C70.7578 7.99023 70.6855 7.91016 70.6348 7.80469C70.5879 7.69922 70.5645 7.4707 70.5645 7.11914V4.24219C70.7402 4.02734 70.9902 3.83398 71.3145 3.66211C71.5215 3.54883 71.7305 3.49219 71.9414 3.49219C72.25 3.49219 72.4902 3.61719 72.6621 3.86719C72.791 4.05859 72.8555 4.37305 72.8555 4.81055V7.11914C72.8555 7.43945 72.8457 7.63281 72.8262 7.69922C72.7832 7.83984 72.7051 7.94531 72.5918 8.01562C72.4824 8.08594 72.2793 8.12109 71.9824 8.12109V8.33203H74.6953V8.12109C74.4219 8.12109 74.2285 8.0918 74.1152 8.0332C74.002 7.9707 73.9238 7.89453 73.8809 7.80469C73.8418 7.71484 73.8223 7.48633 73.8223 7.11914V4.55859L73.8105 4.30664L73.8223 4.24219C74.1191 3.96094 74.3711 3.76953 74.5781 3.66797C74.7891 3.5625 74.998 3.50977 75.2051 3.50977C75.541 3.50977 75.7852 3.63477 75.9375 3.88477C76.043 4.06445 76.0957 4.37305 76.0957 4.81055V7.11914C76.0957 7.43164 76.0879 7.62109 76.0723 7.6875C76.0332 7.82422 75.9688 7.92383 75.8789 7.98633C75.75 8.07617 75.5703 8.12109 75.3398 8.12109H75.2285V8.33203H77.877V8.12109C77.6387 8.12109 77.4668 8.0918 77.3613 8.0332C77.2559 7.9707 77.1836 7.89648 77.1445 7.81055C77.0938 7.68555 77.0684 7.45508 77.0684 7.11914V4.81055C77.0684 4.32617 77.0254 3.9707 76.9395 3.74414C76.8105 3.41211 76.6348 3.17383 76.4121 3.0293C76.1934 2.88086 75.9414 2.80664 75.6562 2.80664C75.3633 2.80664 75.0781 2.88086 74.8008 3.0293C74.5234 3.17383 74.1836 3.48047 73.7812 3.94922C73.6992 3.57812 73.5371 3.29492 73.2949 3.09961C73.0527 2.9043 72.7637 2.80664 72.4277 2.80664C72.2285 2.80664 72.0273 2.84766 71.8242 2.92969C71.6211 3.01172 71.4316 3.12695 71.2559 3.27539ZM81.04 7.55859C80.4893 7.98438 80.1436 8.23047 80.0029 8.29688C79.792 8.39453 79.5674 8.44336 79.3291 8.44336C78.958 8.44336 78.6514 8.31641 78.4092 8.0625C78.1709 7.80859 78.0518 7.47461 78.0518 7.06055C78.0518 6.79883 78.1104 6.57227 78.2275 6.38086C78.3877 6.11523 78.665 5.86523 79.0596 5.63086C79.458 5.39648 80.1182 5.11133 81.04 4.77539V4.56445C81.04 4.0293 80.9541 3.66211 80.7822 3.46289C80.6143 3.26367 80.3682 3.16406 80.0439 3.16406C79.7979 3.16406 79.6025 3.23047 79.458 3.36328C79.3096 3.49609 79.2354 3.64844 79.2354 3.82031L79.2471 4.16016C79.2471 4.33984 79.2002 4.47852 79.1064 4.57617C79.0166 4.67383 78.8975 4.72266 78.749 4.72266C78.6045 4.72266 78.4854 4.67188 78.3916 4.57031C78.3018 4.46875 78.2568 4.33008 78.2568 4.1543C78.2568 3.81836 78.4287 3.50977 78.7725 3.22852C79.1162 2.94727 79.5986 2.80664 80.2197 2.80664C80.6963 2.80664 81.0869 2.88672 81.3916 3.04688C81.6221 3.16797 81.792 3.35742 81.9014 3.61523C81.9717 3.7832 82.0068 4.12695 82.0068 4.64648V6.46875C82.0068 6.98047 82.0166 7.29492 82.0361 7.41211C82.0557 7.52539 82.0869 7.60156 82.1299 7.64062C82.1768 7.67969 82.2295 7.69922 82.2881 7.69922C82.3506 7.69922 82.4053 7.68555 82.4521 7.6582C82.5342 7.60742 82.6924 7.46484 82.9268 7.23047V7.55859C82.4893 8.14453 82.0713 8.4375 81.6729 8.4375C81.4814 8.4375 81.3291 8.37109 81.2158 8.23828C81.1025 8.10547 81.0439 7.87891 81.04 7.55859ZM81.04 7.17773V5.13281C80.4502 5.36719 80.0693 5.5332 79.8975 5.63086C79.5889 5.80273 79.3682 5.98242 79.2354 6.16992C79.1025 6.35742 79.0361 6.5625 79.0361 6.78516C79.0361 7.06641 79.1201 7.30078 79.2881 7.48828C79.4561 7.67188 79.6494 7.76367 79.8682 7.76367C80.165 7.76367 80.5557 7.56836 81.04 7.17773ZM84.583 3.94336C85.2119 3.18555 85.8115 2.80664 86.3818 2.80664C86.6748 2.80664 86.9268 2.88086 87.1377 3.0293C87.3486 3.17383 87.5166 3.41406 87.6416 3.75C87.7275 3.98438 87.7705 4.34375 87.7705 4.82812V7.11914C87.7705 7.45898 87.7979 7.68945 87.8525 7.81055C87.8955 7.9082 87.9639 7.98438 88.0576 8.03906C88.1553 8.09375 88.333 8.12109 88.5908 8.12109V8.33203H85.9365V8.12109H86.0479C86.2979 8.12109 86.4717 8.08398 86.5693 8.00977C86.6709 7.93164 86.7412 7.81836 86.7803 7.66992C86.7959 7.61133 86.8037 7.42773 86.8037 7.11914V4.92188C86.8037 4.43359 86.7393 4.08008 86.6104 3.86133C86.4854 3.63867 86.2725 3.52734 85.9717 3.52734C85.5068 3.52734 85.0439 3.78125 84.583 4.28906V7.11914C84.583 7.48242 84.6045 7.70703 84.6475 7.79297C84.7021 7.90625 84.7764 7.99023 84.8701 8.04492C84.9678 8.0957 85.1631 8.12109 85.4561 8.12109V8.33203H82.8018V8.12109H82.9189C83.1924 8.12109 83.376 8.05273 83.4697 7.91602C83.5674 7.77539 83.6162 7.50977 83.6162 7.11914V5.12695C83.6162 4.48242 83.6006 4.08984 83.5693 3.94922C83.542 3.80859 83.4971 3.71289 83.4346 3.66211C83.376 3.61133 83.2959 3.58594 83.1943 3.58594C83.085 3.58594 82.9541 3.61523 82.8018 3.67383L82.7139 3.46289L84.3311 2.80664H84.583V3.94336ZM44.2441 2.96484H46.4941V3.18164C46.2871 3.19727 46.1504 3.23438 46.084 3.29297C46.0215 3.35156 45.9902 3.43555 45.9902 3.54492C45.9902 3.66602 46.0234 3.8125 46.0898 3.98438L47.2383 7.07227L48.3926 4.55859L48.0879 3.76758C47.9941 3.5332 47.8711 3.37109 47.7188 3.28125C47.6328 3.22656 47.4727 3.19336 47.2383 3.18164V2.96484H49.793V3.18164C49.5117 3.19336 49.3125 3.24414 49.1953 3.33398C49.1172 3.39648 49.0781 3.49609 49.0781 3.63281C49.0781 3.71094 49.0938 3.79102 49.125 3.87305L50.3438 6.95508L51.4746 3.98438C51.5527 3.77344 51.5918 3.60547 51.5918 3.48047C51.5918 3.40625 51.5527 3.33984 51.4746 3.28125C51.4004 3.22266 51.252 3.18945 51.0293 3.18164V2.96484H52.7227V3.18164C52.3828 3.23242 52.1328 3.46289 51.9727 3.87305L50.1797 8.49609H49.9395L48.5977 5.06836L47.0332 8.49609H46.8164L45.0938 3.98438C44.9805 3.69922 44.8691 3.50781 44.7598 3.41016C44.6504 3.30859 44.4785 3.23242 44.2441 3.18164V2.96484ZM41.0059 6.86133C40.6152 6.4082 40.4219 5.7832 40.4258 4.98633H44.1348C44.1348 4.32227 43.9414 3.79297 43.5547 3.39844C43.168 3 42.6738 2.80078 42.0723 2.80078C41.3613 2.80078 40.7695 3.05859 40.2969 3.57422C39.8281 4.08594 39.5938 4.80078 39.5938 5.71875C39.5938 6.56641 39.8223 7.24219 40.2793 7.74609C40.7402 8.24609 41.293 8.49609 41.9375 8.49609C42.5312 8.49609 43.0254 8.27734 43.4199 7.83984C43.8145 7.39844 44.0527 6.91016 44.1348 6.375L43.9531 6.25781C43.7773 6.72656 43.5586 7.05859 43.2969 7.25391C43.0391 7.44531 42.7344 7.54102 42.3828 7.54102C41.8555 7.54102 41.3965 7.31445 41.0059 6.86133ZM42.9102 4.64648H40.4258C40.4688 4.19727 40.6172 3.84766 40.8711 3.59766C41.1289 3.34375 41.4199 3.2168 41.7441 3.2168C41.9551 3.2168 42.1562 3.2793 42.3477 3.4043C42.543 3.5293 42.6895 3.70117 42.7871 3.91992C42.8496 4.06055 42.8906 4.30273 42.9102 4.64648ZM27.5801 4.63477V2.80664H27.3867C27.3398 2.90039 27.2988 2.96094 27.2637 2.98828C27.2285 3.01562 27.1797 3.0293 27.1172 3.0293C27.0508 3.0293 26.918 3 26.7188 2.94141C26.418 2.85156 26.1621 2.80664 25.9512 2.80664C25.4707 2.80664 25.0781 2.95508 24.7734 3.25195C24.4727 3.54883 24.3223 3.91797 24.3223 4.35938C24.3223 4.69922 24.4102 4.98047 24.5859 5.20312C24.7617 5.42969 25.1328 5.68359 25.6992 5.96484C26.2656 6.24609 26.6426 6.47852 26.8301 6.66211C27.0215 6.8457 27.1172 7.07227 27.1172 7.3418C27.1172 7.56445 27.0312 7.75586 26.8594 7.91602C26.6914 8.07227 26.4727 8.15039 26.2031 8.15039C25.8203 8.15039 25.4746 8.01172 25.166 7.73438C24.8574 7.45703 24.6484 7.04492 24.5391 6.49805H24.3457V8.41406H24.5391C24.5898 8.3125 24.6602 8.26172 24.75 8.26172C24.832 8.26172 24.9375 8.28125 25.0664 8.32031C25.4883 8.4375 25.8633 8.49609 26.1914 8.49609C26.6484 8.49609 27.0605 8.34766 27.4277 8.05078C27.7988 7.75 27.9844 7.35547 27.9844 6.86719C27.9844 6.23438 27.5879 5.72461 26.7949 5.33789L25.9395 4.92188C25.5684 4.74219 25.3223 4.57227 25.2012 4.41211C25.0762 4.25586 25.0137 4.06836 25.0137 3.84961C25.0137 3.67383 25.0977 3.51367 25.2656 3.36914C25.4336 3.22461 25.6543 3.15234 25.9277 3.15234C26.2871 3.15234 26.582 3.25586 26.8125 3.46289C27.0469 3.66992 27.2383 4.06055 27.3867 4.63477H27.5801ZM19.9941 4.98633C19.9902 5.7832 20.1836 6.4082 20.5742 6.86133C20.9648 7.31445 21.4238 7.54102 21.9512 7.54102C22.3027 7.54102 22.6074 7.44531 22.8652 7.25391C23.127 7.05859 23.3457 6.72656 23.5215 6.25781L23.7031 6.375C23.6211 6.91016 23.3828 7.39844 22.9883 7.83984C22.5938 8.27734 22.0996 8.49609 21.5059 8.49609C20.8613 8.49609 20.3086 8.24609 19.8477 7.74609C19.3906 7.24219 19.1621 6.56641 19.1621 5.71875C19.1621 4.80078 19.3965 4.08594 19.8652 3.57422C20.3379 3.05859 20.9297 2.80078 21.6406 2.80078C22.2422 2.80078 22.7363 3 23.123 3.39844C23.5098 3.79297 23.7031 4.32227 23.7031 4.98633H19.9941ZM19.9941 4.64648H22.4785C22.459 4.30273 22.418 4.06055 22.3555 3.91992C22.2578 3.70117 22.1113 3.5293 21.916 3.4043C21.7246 3.2793 21.5234 3.2168 21.3125 3.2168C20.9883 3.2168 20.6973 3.34375 20.4395 3.59766C20.1855 3.84766 20.0371 4.19727 19.9941 4.64648ZM12.3486 3.27539C12.2783 3.33398 12.0479 3.55859 11.6572 3.94922V2.80664H11.4053L9.78809 3.46289L9.87598 3.67383C10.0283 3.61523 10.1592 3.58594 10.2686 3.58594C10.3701 3.58594 10.4502 3.61133 10.5088 3.66211C10.5674 3.70898 10.6104 3.79688 10.6377 3.92578C10.6729 4.09766 10.6904 4.47852 10.6904 5.06836V7.11914C10.6904 7.45117 10.665 7.67578 10.6143 7.79297C10.5635 7.90625 10.4893 7.99023 10.3916 8.04492C10.2939 8.0957 10.1221 8.12109 9.87598 8.12109V8.33203H12.5303V8.12109C12.2373 8.12109 12.042 8.0957 11.9443 8.04492C11.8506 7.99023 11.7783 7.91016 11.7275 7.80469C11.6807 7.69922 11.6572 7.4707 11.6572 7.11914V4.24219C11.833 4.02734 12.083 3.83398 12.4072 3.66211C12.6143 3.54883 12.8232 3.49219 13.0342 3.49219C13.3428 3.49219 13.583 3.61719 13.7549 3.86719C13.8838 4.05859 13.9482 4.37305 13.9482 4.81055V7.11914C13.9482 7.43945 13.9385 7.63281 13.9189 7.69922C13.876 7.83984 13.7979 7.94531 13.6846 8.01562C13.5752 8.08594 13.3721 8.12109 13.0752 8.12109V8.33203H15.7881V8.12109C15.5146 8.12109 15.3213 8.0918 15.208 8.0332C15.0947 7.9707 15.0166 7.89453 14.9736 7.80469C14.9346 7.71484 14.915 7.48633 14.915 7.11914V4.55859L14.9033 4.30664L14.915 4.24219C15.2119 3.96094 15.4639 3.76953 15.6709 3.66797C15.8818 3.5625 16.0908 3.50977 16.2979 3.50977C16.6338 3.50977 16.8779 3.63477 17.0303 3.88477C17.1357 4.06445 17.1885 4.37305 17.1885 4.81055V7.11914C17.1885 7.43164 17.1807 7.62109 17.165 7.6875C17.126 7.82422 17.0615 7.92383 16.9717 7.98633C16.8428 8.07617 16.6631 8.12109 16.4326 8.12109H16.3213V8.33203H18.9697V8.12109C18.7314 8.12109 18.5596 8.0918 18.4541 8.0332C18.3486 7.9707 18.2764 7.89648 18.2373 7.81055C18.1865 7.68555 18.1611 7.45508 18.1611 7.11914V4.81055C18.1611 4.32617 18.1182 3.9707 18.0322 3.74414C17.9033 3.41211 17.7275 3.17383 17.5049 3.0293C17.2861 2.88086 17.0342 2.80664 16.749 2.80664C16.4561 2.80664 16.1709 2.88086 15.8936 3.0293C15.6162 3.17383 15.2764 3.48047 14.874 3.94922C14.792 3.57812 14.6299 3.29492 14.3877 3.09961C14.1455 2.9043 13.8564 2.80664 13.5205 2.80664C13.3213 2.80664 13.1201 2.84766 12.917 2.92969C12.7139 3.01172 12.5244 3.12695 12.3486 3.27539ZM6.66797 2.25L6.58008 0.386719H0.09375L0 2.25H0.222656C0.25 1.89062 0.335938 1.60547 0.480469 1.39453C0.625 1.18359 0.798828 1.04102 1.00195 0.966797C1.1582 0.912109 1.42188 0.884766 1.79297 0.884766H2.74805V6.95508C2.74805 7.40039 2.70508 7.68555 2.61914 7.81055C2.47852 8.01367 2.24023 8.11523 1.9043 8.11523H1.62305V8.33203H4.99219V8.11523H4.7168C4.4082 8.11523 4.17969 8.0332 4.03125 7.86914C3.92578 7.74805 3.87305 7.44336 3.87305 6.95508V0.884766H4.99219C5.32031 0.884766 5.58398 0.939453 5.7832 1.04883C5.98633 1.1543 6.14844 1.32031 6.26953 1.54688C6.34375 1.6875 6.40234 1.92188 6.44531 2.25H6.66797Z\",\n fill: \"#343C6A\"\n})));\nexport default SvgTimesnewroman;","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgJotformAi = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 20,\n height: 20,\n fill: \"none\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M6.731 5.357a.387.387 0 0 1 0 .737l-.528.186a2.69 2.69 0 0 0-1.622 1.548l-.195.504c-.132.342-.64.342-.772 0l-.195-.504A2.69 2.69 0 0 0 1.797 6.28l-.528-.186a.387.387 0 0 1 0-.737l.528-.186a2.69 2.69 0 0 0 1.622-1.548l.195-.504c.132-.342.64-.342.772 0l.195.504c.279.717.871 1.282 1.622 1.548z\",\n opacity: 0.2\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M15.462 12.623a.774.774 0 0 1 0 1.474l-1.055.373c-1.503.53-2.688 1.66-3.244 3.095l-.39 1.007c-.266.684-1.28.684-1.545 0l-.39-1.007C8.28 16.131 7.095 15 5.592 14.469l-1.055-.372a.774.774 0 0 1 0-1.474l1.055-.373c1.503-.53 2.688-1.661 3.244-3.096l.39-1.007c.266-.684 1.28-.684 1.545 0l.39 1.007c.557 1.435 1.742 2.565 3.245 3.096zM14.485 1.342c.177-.456.853-.456 1.03 0l.26.672a3.58 3.58 0 0 0 2.163 2.063l.704.249a.516.516 0 0 1 0 .982l-.704.249a3.58 3.58 0 0 0-2.163 2.064l-.26.671c-.177.456-.853.456-1.03 0l-.26-.671a3.58 3.58 0 0 0-2.163-2.064l-.703-.249a.516.516 0 0 1 0-.982l.703-.249a3.58 3.58 0 0 0 2.163-2.063z\"\n})));\nexport default SvgJotformAi;","import { getUrlParameter } from '@jotforminc/utils';\n\nconst isDevelopment = () => {\n return ['.jotform.pro', '.jotform.biz', '.jotform.dev'].indexOf(window.location.hostname.substr(-12)) > -1;\n};\n\nconst isRC = () => {\n return window.location.hostname === 'www.jotform.ooo';\n};\n\nexport const getSocketURL = () => {\n let socketUrl = `wss://${window.location.hostname}/ws`;\n\n if (isDevelopment()) {\n socketUrl = `wss://${window.location.hostname}/socket`;\n }\n\n if (isRC()) {\n socketUrl = 'wss://www.jotform.ooo/socket';\n }\n\n if (getUrlParameter('ws')) {\n socketUrl = getUrlParameter('ws');\n }\n\n return socketUrl;\n};\n\nexport const getChannelNamespace = () => {\n if (window.JOTFORM_ENV === 'ENTERPRISE') {\n return `/${window.COMPANY_SLUG}`;\n }\n\n return '';\n};\n","import { getUrlParameter } from '@jotforminc/utils';\n\nconst heartbeatInterval = Number.parseInt(getUrlParameter('heartbeatInterval'), 10) || 30000;\nconst lastHeartbeatResponseAcceptanceDuration = Number.parseInt(getUrlParameter('lastHeartbeatResponseAcceptanceDuration'), 10) || 65000;\n\nexport class CustomWebSocket {\n constructor(\n socketUrl,\n {\n socketSecret,\n onMessage,\n onOpen\n } = {}\n ) {\n this.baseSocketUrl = socketUrl;\n this.counter = 0;\n this.socketSecret = socketSecret;\n this.initTimeoutCounter = 2;\n this.lastHeartbeatResponse = 0;\n this.lastActivity = Date.now();\n this.useReconnectFromNowOn = false;\n this.reconnect = true;\n\n if (onMessage) {\n this.onMessage(onMessage);\n }\n if (onOpen) {\n this.onOpen(onOpen);\n }\n\n window.addEventListener('beforeunload', this.handleWindowBeforeUnload);\n\n this.initWS();\n }\n\n initWS = () => {\n this.reconnectTimer = null;\n\n if (this.initTimeoutCounter === 10) {\n return;\n }\n\n this.counter++;\n this.ws = new global.WebSocket(this.socketUrl);\n\n this.ws.addEventListener('open', this.handleOpen);\n this.ws.addEventListener('error', this.handleClose);\n this.ws.addEventListener('close', this.handleClose);\n this.ws.addEventListener('message', this.handleMessage);\n };\n\n handleOpen = () => {\n this.initTimeoutCounter = 2;\n this.lastHeartbeatResponse = Date.now();\n\n if (this.onOpenFunction) this.onOpenFunction();\n\n // Start heartbeating\n this.heartbeat();\n };\n\n handleClose = (e = {}) => {\n const { type = null } = e;\n if (type === 'error') {\n this.initTimeoutCounter++;\n }\n this.useReconnectFromNowOn = true;\n\n // Remove event listeners immediately\n this.ws.removeEventListener('open', this.handleOpen);\n this.ws.removeEventListener('error', this.handleClose);\n this.ws.removeEventListener('close', this.handleClose);\n this.ws.removeEventListener('message', this.handleMessage);\n if (typeof this.heartbeatTimer === 'number') {\n this.heartbeatTimer = clearTimeout(this.heartbeatTimer);\n }\n\n // Start trying to reconnect with a new ws after 1000ms\n if (this.reconnect) {\n this.reconnectTimer = setTimeout(this.initWS, this.initTimeoutCounter * 1000);\n }\n };\n\n handleMessage = event => {\n const message = JSON.parse(event.data);\n const { action, payload } = message;\n\n if (action === 'heartbeat') {\n this.lastHeartbeatResponse = payload.timestamp;\n } else if (this.onMessageFunction) {\n this.lastActivity = payload?.timestamp || Date.now();\n this.onMessageFunction(event);\n }\n };\n\n handleUnsubscribed = () => {\n this.reconnect = false;\n this.ws.close();\n };\n\n heartbeat = () => {\n if (this.ws.readyState !== 1) {\n return;\n }\n\n const now = Date.now();\n // If we did not receive any heartbeatResponse within lastHeartbeatResponseAcceptanceDuration\n // we assume that socket server died - even though we did not receive on('close') message somehow\n if (\n now - this.lastHeartbeatResponse\n > lastHeartbeatResponseAcceptanceDuration\n ) {\n this.handleClose();\n return;\n }\n\n // Send heartbeat message to socket\n this.sendJSON({\n action: 'heartbeat',\n payload: {\n timestamp: now\n }\n });\n\n // As long as socket is connected, heartbeat continues every heartbeatInterval\n this.heartbeatTimer = setTimeout(this.heartbeat, heartbeatInterval);\n };\n\n // Users of this class can use this function to pass a callback function\n // that will be called when socket receives a new message\n onMessage = callback => {\n this.onMessageFunction = callback;\n };\n\n // Users of this class can use this function to pass a callback function\n // that will be called when socket successfully establishes connection\n onOpen = callback => {\n this.onOpenFunction = callback;\n };\n\n send = data => {\n if (this.ws.readyState === 1 && global.navigator.onLine) {\n this.ws.lastActivity = Date.now();\n this.ws.send(data);\n }\n };\n\n sendJSON = data => {\n try {\n this.send(JSON.stringify(data));\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n };\n\n get socketUrl() {\n const url = new URL(this.baseSocketUrl);\n\n url.searchParams.set('referer', window.location.pathname);\n url.searchParams.set('counter', this.counter);\n url.searchParams.set('socketSecret', this.socketSecret);\n\n return url;\n }\n\n handleWindowBeforeUnload = () => {\n this.reconnect = false;\n if (typeof this.reconnectTimer === 'number') {\n this.reconnectTimer = clearTimeout(this.reconnectTimer);\n }\n\n const { ws } = this;\n if (ws && ws.readyState === global.WebSocket.OPEN) {\n ws.close();\n }\n };\n}\n","import { CustomWebSocket, getChannelNamespace, getSocketURL } from '@jotforminc/custom-socket-client';\n\nexport const createDummySocketClient = () => {\n return {\n on: () => { },\n emit: () => { }\n };\n};\n\nconst websocketHandlerMap = {};\nconst getActionAndActionType = action => {\n switch (action) {\n case 'join-channel':\n case 'leave-channel':\n case 'set-client-id':\n case 'set-available':\n case 'reconnect-channel': {\n return { action, actionType: '' };\n }\n default: {\n return { action: 'zoom-support-action', actionType: action };\n }\n }\n};\n\nconst getChannel = () => {\n const namespace = getChannelNamespace();\n\n return `${namespace}/zoomsupport`;\n};\n\nconst getAction = (action, actionType) => {\n switch (action) {\n case 'join-channel':\n case 'leave-channel':\n case 'set-available':\n case 'set-client-id': {\n return action;\n }\n default: {\n return actionType;\n }\n }\n};\n\nconst onMessage = event => {\n const message = JSON.parse(event.data);\n const { action: _action, payload, payload: { actionType } } = message;\n const action = getAction(_action, actionType);\n if (websocketHandlerMap[action]) websocketHandlerMap[action](payload);\n};\n\nexport const createWebSocketClient = async () => {\n let socketSecret = null;\n\n try {\n const response = await fetch('/API/share/socketChannel/createSocketSecret').then(res => res.json());\n socketSecret = response.content;\n } catch (e) {\n console.log('error', e);\n }\n\n const socket = new CustomWebSocket(getSocketURL(), { onMessage, socketSecret });\n\n return {\n on: (action, handler) => {\n websocketHandlerMap[action] = handler;\n },\n emit: (_action, payload) => {\n const channel = getChannel(payload);\n\n const { action, actionType } = getActionAndActionType(_action);\n if (actionType) {\n // eslint-disable-next-line no-param-reassign\n payload.actionType = actionType;\n }\n const data = JSON.stringify({ channel, payload, action });\n socket.send(data);\n }\n };\n};\n","import { createWebSocketClient, createDummySocketClient } from './zoomSocketAdapter';\n\nconst isDevEnvironment = window.JOTFORM_ENV === 'DEVELOPMENT';\n\nexport const Config = {\n socket: undefined,\n user: undefined\n};\n\nexport async function connect() {\n if (isDevEnvironment && false) {\n Config.socket = createDummySocketClient();\n return;\n }\n Config.socket = await createWebSocketClient();\n}\n\nexport function enableMockSocket() {\n Config.socket = createDummySocketClient();\n}\n\nexport function setUser(user) {\n Config.user = user;\n}\n\nconst getUser = ({ username, name, avatarUrl }) => ({ username, name, avatarUrl });\n\nexport function initialize() {\n const COLLAB_KEY_REGEX = /iak=([\\d | \\w | -]*)/;\n const isThereInvitation = global.location.href.match(COLLAB_KEY_REGEX) !== null && global.location.href.match(COLLAB_KEY_REGEX).length === 2;\n const invitationAPIKey = isThereInvitation ? global.location.href.match(COLLAB_KEY_REGEX)[1] : '';\n if (Config.user) {\n Config.socket.emit('join-channel', {\n timestamp: Config.socket.lastActivity,\n sid: Config.sid,\n user: {\n ...getUser(Config.user),\n type: 'USER',\n socketAPIKey: invitationAPIKey\n }\n });\n }\n}\n\nexport function createZoomRequest() {\n Config.socket.emit('chat-request', {\n user: {\n ...getUser(Config.user),\n type: 'USER'\n }\n });\n}\n\nexport function selfDenyRequest() {\n Config.socket.emit('self-deny', {\n user: {\n ...getUser(Config.user),\n type: 'USER'\n }\n });\n}\n\nasync function logSupportAction(product, username, action, keepAlive) {\n const data = {\n type: 'EVENT',\n product,\n username,\n location: window.location?.href,\n action\n };\n\n try {\n await fetch('/API/support-product-logs', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n keepalive: keepAlive,\n body: JSON.stringify(data)\n });\n } catch (error) {\n console.log(error);\n }\n}\n\nexport function handleZoomSupportLog(username, action, keepAlive = false) {\n logSupportAction('zoom-widget', username, action, keepAlive);\n}\n\nexport function joinRoom() {\n initialize();\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\nimport { handleZoomSupportLog } from '../../libs/zoomSocket';\n\nclass RequestHelp extends React.Component {\n handleRequest = () => {\n const { username } = this.props.user;\n\n handleZoomSupportLog(username, 'request-help-click');\n this.props.changeStep('connection-start');\n };\n\n handleClose = () => {\n this.props.closeWidget(true);\n };\n\n getTypeText = () => {\n const from = this.props.from || '';\n\n switch (from) {\n case 'form-builder':\n return 'form';\n case 'app-builder':\n return 'app';\n default:\n return 'form';\n }\n };\n\n render() {\n return (\n <>\n
\n \n
\n

\n Need help with creating \n {this.getTypeText()}\n ?\n

\n

\n Feel free to request personalized assistance. We would be delighted to assist you in creating your \n {this.getTypeText()}\n  through a\n Zoom video call. \n It’s\n FREE!\n

\n
\n \n Request Help\n \n \n Ask Me Later\n \n
\n \n );\n }\n}\n\nexport default RequestHelp;\n","/* eslint-disable react/jsx-one-expression-per-line */\n/* eslint-disable react/prop-types */\n/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\nimport { IconMicrophoneFilled, IconScreencast } from '@jotforminc/svg-icons';\nimport { createZoomRequest, handleZoomSupportLog } from '../../libs/zoomSocket';\n\nclass ConnectSection extends React.Component {\n handleConnect = () => {\n const { username } = this.props.user;\n\n handleZoomSupportLog(username, 'connect-meeting-click');\n\n createZoomRequest();\n this.props.changeStep('waiting-agent-response');\n };\n\n render() {\n const name = this.props.user.name || this.props.user.username;\n return (\n <>\n
\n \n \n Hello {name},\n \n
\n Before starting the call, please make sure that:\n
\n \n \n \n Your microphone is working properly.\n
\n
\n \n \n \n You are available for screen sharing during the meeting.\n
\n \n Request Help\n \n \n );\n }\n}\n\nexport default ConnectSection;\n","/* eslint-disable react/prop-types */\n/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\n\nimport { Loader } from '@jotforminc/magnet';\n\nclass WaitingAgentResponse extends React.Component {\n render() {\n return (\n <>\n
\n \n Please wait...\n
\n We are looking for a support agent who is available to assist you.\n \n Waiting\n \n \n \n );\n }\n}\n\nexport default WaitingAgentResponse;\n","/* eslint-disable react/prop-types */\n/* eslint-disable react/no-access-state-in-setstate */\n/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\n\nimport { IconCheck } from '@jotforminc/svg-icons';\nimport { handleCustomNavigation } from '@jotforminc/utils';\nimport { handleZoomSupportLog } from '../../libs/zoomSocket';\n\nclass MeetingReady extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n time: 300\n };\n\n this.meetingTimeInterval = null;\n }\n\n componentDidMount() {\n this.playNotificationSFX();\n this.meetingTimeInterval = setInterval(() => {\n if (this.state.time === 0) {\n this.props.closeWidget();\n } else {\n this.setState({\n time: this.state.time - 1\n });\n }\n }, 1000);\n }\n\n componentWillUnmount() {\n clearInterval(this.meetingTimeInterval);\n }\n\n handleStartMeeting = () => {\n const { username } = this.props.user;\n const { agentResponse } = this.props;\n const { zoomLink } = agentResponse;\n\n handleZoomSupportLog(username, 'start-meeting-click');\n handleCustomNavigation(zoomLink, '_blank', true);\n };\n\n playNotificationSFX() {\n // eslint-disable-next-line no-undef\n const notificationAudio = new Audio('https://batuhanbudak.jotform.pro/opt/notification_sfx.mp3');\n notificationAudio.play();\n }\n\n formatTime = () => {\n const minutes = Math.floor(this.state.time / 60);\n const remainingSeconds = this.state.time % 60;\n return `${String(minutes).padStart(2, '0')}:${String(remainingSeconds).padStart(2, '0')}`;\n };\n\n render() {\n return (\n <>\n
\n \n \n \n Your meeting is ready!\n
\n Start meeting to get help from our support agent.\n \n Join Meeting (\n {this.formatTime()}\n )\n \n \n );\n }\n}\n\nexport default MeetingReady;\n","/* eslint-disable react/prop-types */\n/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\nimport { handleZoomSupportLog } from '../../libs/zoomSocket';\n\nclass NotAvailableScreen extends React.Component {\n constructor(props) {\n super(props);\n\n this.meetingTimeOut = null;\n }\n\n componentDidMount() {\n const { username } = this.props.user;\n\n handleZoomSupportLog(username, 'not-available-screen-shown');\n\n this.meetingTimeOut = setTimeout(() => {\n this.props.closeWidget();\n }, 10000);\n }\n\n componentWillUnmount() {\n clearTimeout(this.meetingTimeOut);\n }\n\n render() {\n return (\n <>\n
\n \n We are sorry :(\n
\n All of our support agents are busy right now. Please try again later.\n \n );\n }\n}\n\nexport default NotAvailableScreen;\n","/* eslint-disable react/prop-types */\n/* eslint-disable react/destructuring-assignment */\n/* eslint-disable react/jsx-one-expression-per-line */\nimport React from 'react';\n\nimport { handleZoomSupportLog } from '../../libs/zoomSocket';\n\nclass NotAvailableScreen extends React.Component {\n constructor(props) {\n super(props);\n\n this.meetingTimeOut = null;\n }\n\n componentDidMount() {\n const { username } = this.props.user;\n\n handleZoomSupportLog(username, 'declined-screen-shown');\n\n this.meetingTimeOut = setTimeout(() => {\n this.props.closeWidget();\n }, 10000);\n }\n\n componentWillUnmount() {\n clearTimeout(this.meetingTimeOut);\n }\n\n render() {\n const name = this.props.user.name || this.props.user.username;\n\n return (\n <>\n
\n \n \n Hello {name},\n \n
\n Thank you for using Jotform. All our support agents are too busy with helping other users. Please try again later.\n \n );\n }\n}\n\nexport default NotAvailableScreen;\n","import RequestHelp from './RequestHelp';\nimport ConnectSection from './ConnectSection';\nimport WaitingAgentResponse from './WaitingAgentResponse';\nimport MeetingReady from './MeetingReady';\nimport NotAvailableScreen from './NotAvailableScreen';\nimport DeclinedScreen from './DeclinedScreen';\n\nexport const stepConfig = [\n {\n key: 'request-help',\n name: 'Request Help',\n component: RequestHelp\n }, {\n key: 'connection-start',\n name: 'Connection Start',\n component: ConnectSection\n }, {\n key: 'waiting-agent-response',\n name: 'Waiting Agent Response',\n component: WaitingAgentResponse\n }, {\n key: 'meeting-ready',\n name: 'Meeting Ready',\n component: MeetingReady\n }, {\n key: 'not-available',\n name: 'Not available',\n component: NotAvailableScreen\n }, {\n key: 'declined',\n name: 'Declined',\n component: DeclinedScreen\n }\n];\n","/* eslint-disable react/prop-types */\n/* eslint-disable react/destructuring-assignment */\nimport React from 'react';\n\nimport { IconXmarkSm } from '@jotforminc/svg-icons';\n\nimport { stepConfig } from './steps';\nimport NotAvailableScreen from './NotAvailableScreen';\nimport { handleZoomSupportLog, selfDenyRequest } from '../../libs/zoomSocket';\n\nclass ZoomWidget extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n step: 'request-help',\n closedWidgetByUser: false,\n agentResponse: {}\n };\n this.agentImage = 'https://support.jotform.com/uploads/forum/muhammetburak/1704728810_659c18ea1e281_shutterstock_1170187057.png';\n }\n\n componentDidMount() {\n window.addEventListener('beforeunload', this.handleBeforeUnload);\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps.user?.username === nextProps.agentResponse?.target || nextProps.agentResponse?.targets?.includes(nextProps.user?.username)) {\n this.setState({\n agentResponse: nextProps.agentResponse\n });\n if (nextProps.agentResponse?.actionType === 'accept-request') {\n this.setState({\n step: 'meeting-ready'\n });\n } else if (nextProps.agentResponse?.actionType === 'deny-request') {\n this.setState({\n step: 'declined'\n });\n } else if (this.state.step !== 'request-help') {\n this.setState({\n step: 'declined'\n });\n }\n }\n }\n\n componentDidUpdate(prevProps) {\n const prevOptions = prevProps.zoomWidgetOptions;\n const currentOptions = this.props.zoomWidgetOptions;\n\n // Check if there's a change in the relevant props\n if (prevOptions.isAgentsAvailable !== currentOptions.isAgentsAvailable || prevOptions.isChatLimitReached !== currentOptions.isChatLimitReached) {\n this.checkAndLogZoomWidget();\n }\n }\n\n componentWillUnmount() {\n window.removeEventListener('beforeunload', this.handleBeforeUnload);\n }\n\n handleBeforeUnload = () => {\n const { username } = this.props.user;\n\n const { isAgentsAvailable, isChatLimitReached } = this.props.zoomWidgetOptions;\n const showZoomWidget = isAgentsAvailable && !isChatLimitReached;\n\n if (showZoomWidget) {\n handleZoomSupportLog(username, 'page-closed', true);\n }\n };\n\n checkAndLogZoomWidget = () => {\n const { isAgentsAvailable, isChatLimitReached } = this.props.zoomWidgetOptions;\n const showZoomWidget = isAgentsAvailable && !isChatLimitReached;\n\n if (showZoomWidget) {\n const { username } = this.props.user;\n handleZoomSupportLog(username, 'zoom-widget-shown');\n }\n };\n\n closeWidget = (isUserClick = false) => {\n if (isUserClick) {\n selfDenyRequest(); // Removes chat request on close button click\n const { username } = this.props.user;\n\n handleZoomSupportLog(username, 'close-widget-click');\n }\n\n this.setState({\n closedWidgetByUser: true\n });\n };\n\n changeStep = (step = 'request-help') => {\n this.setState({\n step: step\n });\n };\n\n renderStep = () => {\n const { step } = this.state;\n const { isAgentsAvailable, isChatLimitReached } = this.props.zoomWidgetOptions;\n\n const showZoomWidget = isAgentsAvailable && !isChatLimitReached;\n\n const Component = stepConfig.find(item => item.key === step)?.component;\n\n if (!showZoomWidget && step === 'connection-start') {\n return (\n \n );\n }\n\n if (!isAgentsAvailable && step === 'waiting-agent-response') {\n return (\n \n );\n }\n\n return (\n \n );\n };\n\n render() {\n const { step, closedWidgetByUser } = this.state;\n const { isAgentsAvailable, isChatLimitReached } = this.props.zoomWidgetOptions;\n\n const showZoomWidget = isAgentsAvailable && !isChatLimitReached;\n\n // If user closes, return null\n if (closedWidgetByUser) {\n return null;\n }\n\n // If show is false and step is request-help\n if (!showZoomWidget && step === 'request-help') {\n return null;\n }\n\n return (\n
\n {this.state.step !== 'request-help' && (\n \n )}\n {this.renderStep()}\n
\n );\n }\n}\n\nexport default ZoomWidget;\n","/* eslint-disable react/prop-types */\nimport React from 'react';\n\nimport ZoomWidget from './ZoomWidget/ZoomWidget';\nimport * as ZoomSocket from '../libs/zoomSocket';\nimport '../styles/style.css';\n\nclass ZoomSocketLayer extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n agentResponse: {},\n zoomWidgetOptions: {\n isAgentsAvailable: false,\n isChatLimitReached: true\n }\n };\n }\n\n UNSAFE_componentWillMount() {\n const { user, isAllowedToSeeZoomWidget } = this.props;\n if (user && isAllowedToSeeZoomWidget) {\n ZoomSocket.connect()\n .then(() => {\n ZoomSocket.setUser(user);\n ZoomSocket.initialize();\n this.initZoomSocketMessageListeners();\n });\n }\n }\n\n initZoomSocketMessageListeners = () => {\n ZoomSocket.Config.socket.on('reconnect', () => {\n if (ZoomSocket.Config.user) {\n ZoomSocket.joinRoom();\n }\n });\n\n ZoomSocket.Config.socket.on('set-client-id', () => {\n ZoomSocket.joinRoom();\n });\n\n ZoomSocket.Config.socket.on('status', data => {\n const { isAgentsAvailable, isChatLimitReached } = data;\n this.setState({\n zoomWidgetOptions: {\n isAgentsAvailable: isAgentsAvailable, isChatLimitReached: isChatLimitReached\n }\n });\n });\n\n ZoomSocket.Config.socket.on('accept-request', data => {\n this.setState({\n agentResponse: data\n });\n });\n\n ZoomSocket.Config.socket.on('deny-request', data => {\n this.setState({\n agentResponse: data\n });\n });\n };\n\n render() {\n const { agentResponse, zoomWidgetOptions } = this.state;\n\n return (\n \n );\n }\n}\n\nexport default ZoomSocketLayer;\n","import { cva } from 'class-variance-authority';\n\nconst panelToggleWrapperDefaultClasses = 'panelToggle-wrapper absolute flex flex-col-reverse xs:flex-col gap-3.5';\nconst panelToggleButtonDefaultClasses = 'panelToggle-button flex justify-between items-center border-0 p-0 cursor-pointer bg-transparent';\n\n// Classes\nexport const panelToggleWrapperCVA = cva(panelToggleWrapperDefaultClasses, {\n variants: {\n noSlide: {\n false: 'ease-in-out duration-500'\n },\n bottomOnMobile: {\n true: 'xs:top-12 xs:bottom-auto',\n false: 'top-12'\n },\n position: {\n left: 'to-left',\n right: 'to-right'\n }\n },\n compoundVariants: [\n // Wrapper placement adjustments if no free form //\n {\n position: 'left',\n freeForm: false,\n className: 'left-full'\n },\n {\n position: 'right',\n freeForm: false,\n className: 'right-full'\n },\n {\n visibility: false,\n freeForm: false,\n className: 'transform pointer-events-none'\n },\n {\n position: 'left',\n visibility: false,\n freeForm: false,\n className: '-translate-x-120'\n },\n {\n position: 'right',\n visibility: false,\n freeForm: false,\n className: 'translate-x-120'\n },\n // Bottom placement & mobile app differencies //\n {\n bottomOnMobile: true,\n selectedQuestion: false,\n isMobileApp: false,\n className: 'bottom-6'\n },\n {\n bottomOnMobile: true,\n selectedQuestion: true,\n isMobileApp: false,\n className: '-bottom-3.5'\n },\n {\n bottomOnMobile: true,\n selectedQuestion: false,\n isMobileApp: true,\n className: 'bottom-18'\n },\n {\n bottomOnMobile: true,\n selectedQuestion: true,\n isMobileApp: true,\n className: 'bottom-8'\n }\n ]\n});\n\nexport const panelToggleButtonCVA = cva(panelToggleButtonDefaultClasses, {\n variants: {\n invert: {\n true: 'inverted-button',\n false: 'color-white'\n },\n stickButton: {\n true: 'stickButton xs:bg-gray-600 xs:w-40',\n false: 'relative'\n },\n animateCount: {\n true: 'animate-count'\n },\n position: {\n right: 'flex-row-reverse'\n }\n },\n compoundVariants: [\n // Button visuals according to type & position //\n {\n animate: true,\n className: 'animated-icon'\n },\n {\n stickButton: true,\n position: 'left',\n className: 'xs:radius-r-full'\n },\n {\n stickButton: true,\n position: 'right',\n className: 'xs:radius-l-full'\n },\n {\n position: 'left',\n selectedQuestion: false,\n className: 'ml-2.5'\n },\n {\n position: 'right',\n selectedQuestion: false,\n className: 'mr-2.5'\n },\n {\n position: 'left',\n stickButton: true,\n className: 'xs:ml-0'\n },\n {\n position: 'right',\n stickButton: true,\n className: 'xs:mr-0'\n },\n {\n position: 'left',\n stickButton: false,\n className: 'xs:ml-5'\n },\n {\n position: 'right',\n stickButton: false,\n className: 'xs:mr-5'\n },\n {\n position: 'left',\n selectedQuestion: true,\n className: '-ml-3.5'\n },\n {\n position: 'right',\n selectedQuestion: true,\n className: '-mr-3.5'\n }\n ]\n});\n\nexport const panelToggleChildrenCVA = cva('', {\n variants: {\n stickButton: {\n true: 'hiddenjf xs:block flex-1 px-1.5 text-sm font-medium',\n false: 'panelToggle-tooltip absolute py-2.5 px-3 mr-2.5 text-xs top-1/2 whitespace-nowrap duration-150'\n },\n invert: {\n true: 'bg-navy-100 color-gray-600',\n false: 'bg-gray-600 color-white'\n }\n },\n compoundVariants: [\n {\n position: 'left',\n stickButton: false,\n className: 'left-full ml-2'\n },\n {\n position: 'right',\n stickButton: false,\n className: 'right-full mr-2'\n }\n ]\n});\n\nexport const panelToggleIconCVA = cva('w-full h-full relative z-1 inline-flex justify-center items-center radius-full shrink-0 shadow-dark-md xs:shadow-none', {\n variants: {\n stickButton: {\n true: 'bg-gray-600'\n }\n },\n compoundVariants: [\n // Icon visuals according to type & bg-color //\n {\n stickButton: false,\n invert: false,\n colorStyle: 'primary',\n className: 'bg-blue-500'\n },\n {\n stickButton: false,\n invert: false,\n colorStyle: 'primary-light',\n className: 'bg-blue-400'\n },\n {\n stickButton: false,\n invert: false,\n colorStyle: 'success',\n className: 'bg-green-500'\n },\n {\n stickButton: false,\n invert: false,\n colorStyle: 'success-light',\n className: 'bg-green-400'\n },\n {\n stickButton: false,\n invert: false,\n colorStyle: 'navy-darkest',\n className: 'bg-navy-700'\n },\n {\n stickButton: false,\n invert: false,\n colorStyle: '',\n className: 'bg-green-400'\n },\n {\n stickButton: false,\n invert: true,\n className: 'bg-white'\n },\n {\n stickButton: false,\n invert: true,\n colorStyle: 'primary',\n className: 'color-blue-500'\n },\n {\n stickButton: false,\n invert: true,\n colorStyle: 'primary-light',\n className: 'color-blue-400'\n },\n {\n stickButton: false,\n invert: true,\n colorStyle: 'success',\n className: 'color-green-500'\n },\n {\n stickButton: false,\n invert: true,\n colorStyle: 'success-light',\n className: 'color-green-400'\n },\n {\n stickButton: false,\n invert: true,\n colorStyle: 'navy-darkest',\n className: 'color-navy-700'\n },\n // A/B Test: formBuilderIntegrationsButton\n {\n stickButton: false,\n invert: false,\n colorStyle: 'integrations',\n className: 'bg-purple-400'\n }\n ]\n});\n","import React, { createContext, useContext } from 'react';\nimport {\n bool, node, oneOf, string\n} from 'prop-types';\nimport { cx } from 'class-variance-authority';\nimport { panelToggleWrapperCVA } from './panelToggle.cva';\n\nconst PanelToggleContext = createContext();\n\nconst PanelToggleWrapper = ({\n className, position, children, noSlide, freeForm, visibility,\n bottomOnMobile, selectedQuestion, isMobileApp, invert, ...props\n}) => {\n const panelToggleWrapperClasses = cx(panelToggleWrapperCVA({\n bottomOnMobile, freeForm, isMobileApp, noSlide, position, selectedQuestion, visibility\n }), className);\n\n return (\n \n \n {children}\n \n \n );\n};\n\nPanelToggleWrapper.propTypes = {\n bottomOnMobile: bool,\n children: node,\n className: string,\n freeForm: bool,\n invert: bool,\n isMobileApp: bool,\n noSlide: bool,\n position: oneOf(['left', 'right']),\n selectedQuestion: bool,\n visibility: bool\n};\n\nPanelToggleWrapper.defaultProps = {\n bottomOnMobile: false,\n children: null,\n className: null,\n freeForm: false,\n invert: false,\n isMobileApp: false,\n noSlide: false,\n position: 'left',\n selectedQuestion: false,\n visibility: false\n};\n\nexport default PanelToggleWrapper;\nexport const usePanelToggleWrapper = () => useContext(PanelToggleContext);\n","import { BLOT_REGEX } from '../components/TextEditor/helpers/constants';\nimport { parseBlotId, isOldBlotId, setBlotId } from '../components/TextEditor/helpers/utils';\n\nexport const BGColorLightness = hex => {\n const isHex = /^#[0-9A-F]{6}$/i.test(hex);\n let result = [];\n // is hex value\n if (!isHex) {\n // Get r, g, b values\n result = hex.match(/\\d+/g);\n } else {\n // turn hex val to RGB\n result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n result.shift();\n }\n\n // Do not proceed if these conditions does not match\n if (!result || result.length < 3) return false;\n\n const r = parseInt(result[0], 16) / 255;\n const g = parseInt(result[1], 16) / 255;\n const b = parseInt(result[2], 16) / 255;\n // Calculate max/min\n const maxColor = Math.max(r, g, b);\n const minColor = Math.min(r, g, b);\n // Calculate lightness\n const lightness = ((maxColor + minColor) / 2) * 100;\n\n return !(lightness > 65);\n};\n\nexport {\n BLOT_REGEX,\n parseBlotId,\n isOldBlotId,\n setBlotId\n};\n","import React from 'react';\nimport {\n bool, elementType, node, oneOf, string\n} from 'prop-types';\nimport { IconInfo } from '@jotforminc/svg-icons';\nimport { Badge } from '@jotforminc/magnet';\nimport { cx } from 'class-variance-authority';\nimport { panelToggleButtonCVA, panelToggleChildrenCVA, panelToggleIconCVA } from './panelToggle.cva';\nimport { usePanelToggleWrapper } from './PanelToggleWrapper';\nimport '../../styles/panelToggle.scss';\n\nconst PanelToggleButton = ({\n badgeType, badgeIcon: BadgeIcon, icon: Icon, children, className, stickButton, animate, animateCount, colorStyle, ...props\n}) => {\n const {\n invert, position, selectedQuestion\n // visibility\n } = usePanelToggleWrapper();\n const panelToggleButtonClasses = cx(panelToggleButtonCVA({\n animate, animateCount, invert, position, selectedQuestion, stickButton\n // visibility\n }), className);\n const panelToggleChildrenClasses = cx(panelToggleChildrenCVA({ invert, position, stickButton }));\n const panelToggleIconClasses = cx(panelToggleIconCVA({ colorStyle, invert, stickButton }));\n\n return (\n \n {badgeType && (\n \n )}\n \n {children}\n \n \n \n \n \n \n \n );\n};\n\nPanelToggleButton.propTypes = {\n animate: bool,\n animateCount: bool,\n badgeType: oneOf(['success', 'warning', 'error']),\n children: node,\n className: string,\n colorStyle: oneOf(['primary', 'primary-light', 'success', 'success-light']),\n icon: elementType.isRequired,\n badgeIcon: elementType,\n invert: bool,\n stickButton: bool\n};\n\nPanelToggleButton.defaultProps = {\n animate: false,\n animateCount: false,\n badgeType: null,\n badgeIcon: null,\n children: null,\n className: null,\n colorStyle: 'primary',\n invert: false,\n stickButton: false\n};\n\nexport default PanelToggleButton;\n","import React from 'react';\nimport { bool } from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { useDispatch } from 'react-redux';\nimport { IconPaintRollerDiagonalFilled } from '@jotforminc/svg-icons';\nimport { PanelToggleButton } from '@jotforminc/panel-components';\nimport classnames from 'classnames';\nimport { openRightPanelWithModeAction, togglePreviewPanelAction } from '../../../store/actionCreators';\nimport { RightPanelModes } from './HomePage/constants';\n\nconst DesignButton = ({ active }) => {\n const dispatch = useDispatch();\n\n const handleDesignButtonClick = () => {\n dispatch(togglePreviewPanelAction(false));\n dispatch(openRightPanelWithModeAction(RightPanelModes.APP_DESIGNER));\n };\n\n return (\n \n {t('App Designer')}\n \n );\n};\n\nDesignButton.propTypes = {\n active: bool.isRequired\n};\n\nexport default DesignButton;\n","import React, { memo } from 'react';\nimport { bool } from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { PanelToggleButton } from '@jotforminc/panel-components';\nimport { IconPlus } from '@jotforminc/svg-icons';\nimport classnames from 'classnames';\nimport * as ACTION_CREATORS from '../../../store/actionCreators';\nimport SELECTORS from '../../../store/selectors';\nimport { UI_PROPS } from '../../../constants';\n\nconst AddItemButton = ({ active }) => {\n const dispatch = useDispatch();\n const addElementButtonPulseVisible = useSelector(SELECTORS.getUIProp(UI_PROPS.addElementButtonPulseVisible));\n\n return (\n {\n dispatch(ACTION_CREATORS.toggleLeftPanelAction(true));\n }}\n stickButton\n >\n {t('Add Element')}\n \n );\n};\n\nAddItemButton.propTypes = {\n active: bool.isRequired\n};\n\nexport default memo(AddItemButton);\n","import Styled, { css } from 'styled-components';\nimport { DEFAULT_BUILDER_WIDTHS } from '../../../constants';\nimport {\n leftPanelBgColor, primaryPurple, leftPanelItemSeperatorColor\n} from '../../../styles/colors';\nimport { ScrollBar, ScrollBarLeft } from '../../../styles/global';\nimport { isNewPanel } from '../../../utils';\n\nconst newPanel = isNewPanel();\n\nconst ScrollableWithFixedPart = css`\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n`;\n\nconst FixedPart = css`\n flex: 0 0 auto;\n`;\n\nconst Panel = Styled.aside`\n position: absolute;\n background-color: ${leftPanelBgColor};\n color: #fff;\n top: 0;\n transition: all .4s ease;\n box-shadow: 0 6px 6px 3px rgba(0, 0, 0, 0.25);\n font-size: 1em;\n ${ScrollableWithFixedPart}\n`;\n\nexport const ScLeftPanel = Styled(Panel)`\n left: 0;\n user-select: none;\n ${newPanel ? `\n width: var(--jfv-left-panel-width);\n background-color: var(--jfv-left-panel-background);\n ` : `\n width: ${DEFAULT_BUILDER_WIDTHS.leftPanel}px;\n `}\n opacity: 0;\n transform: translateX(-70%);\n pointer-events: none;\n z-index: 3;\n\n &.isOpen {\n opacity: 1;\n pointer-events: all;\n transform: translateX(0);\n }\n\n .lp-title {\n display: flex;\n flex-basis: 2.75rem;\n align-items: center;\n justify-content: space-between;\n color: #fff;\n overflow-wrap: break-word;\n ${newPanel ? `\n background-color: var(--jfv-panel-title-background);\n height: var(--jfv-panel-title-height);\n padding-left: var(--jfv-panel-title-padding-left);\n padding-right: var(--jfv-panel-title-padding-right);\n border-bottom: var(--jfv-panel-title-border-bottom);\n font-size: var(--jfv-panel-title-font-size);\n font-weight: var(--jfv-panel-title-weight);\n ` : `\n font-size: 18px;\n padding: 14px 15px 14px 11px;\n border-bottom: 1px solid ${leftPanelItemSeperatorColor};\n `}\n ${FixedPart}\n }\n\n .lp-tabs {\n ${FixedPart}\n ${newPanel ? `\n background-color: var(--jfv-panel-tab-wrapper-background);\n ` : `\n background-color: #303339;\n `}\n text-transform: uppercase;\n display: flex;\n }\n\n .lp-tabItem {\n ${newPanel ? `\n display: flex;\n align-items: center;\n justify-content: center;\n border-bottom: var(--jfv-panel-tab-border-bottom) solid transparent;\n color: var(--jfv-panel-tab-color);\n font-size: var(--jfv-panel-tab-font-size);\n height: var(--jfv-panel-tab-height);\n padding: var(--jfv-panel-tab-padding);\n transition: all .2s ease;\n ` : `\n font-size: 13px;\n padding: 21px 2px;\n `}\n text-align: center;\n flex: 1 1 auto;\n cursor: pointer;\n\n &:hover {\n ${newPanel ? `\n border-bottom-color: var(--jfv-apps-default);\n color: var(--jfv-panel-tab-color-active);\n ` : `\n transition: box-shadow .4s ease;\n box-shadow: inset 0 -4px ${primaryPurple};\n `}\n }\n\n &[data-isactive=\"true\"] {\n ${newPanel ? `\n border-bottom-color: var(--jfv-apps-default);\n color: var(--jfv-panel-tab-color-active);\n ` : `\n box-shadow: inset 0 -4px ${primaryPurple};\n `}\n }\n }\n\n .lp-elements-container {\n position: relative;\n flex: 1 1 auto;\n\n div[data-tabid=\"Basic\"], div[data-tabid=\"Widgets\"] {\n position: absolute;\n width: 100%;\n height: 100%;\n flex: 1 1 auto;\n ${newPanel ? `\n padding-top: 64px;\n ` : `\n padding-top: 72px;\n `}\n }\n\n div[data-tabid=\"Basic\"] {\n padding-top: 0px;\n }\n }\n\n .lp-elements {\n background-color: ${leftPanelBgColor};\n ${ScrollBar}\n ${ScrollBarLeft}\n overflow-y: auto;\n max-height: 100%;\n\n li,ul {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n li {\n ${newPanel ? `\n height: 56px;\n max-height: 56px;\n ` : `\n height: 60px;\n max-height: 60px;\n `}\n overflow: hidden;\n }\n }\n\n @media screen and (max-width: 480px) {\n position: fixed;\n z-index: 1001;\n top: 114px;\n padding-bottom: 114px;\n\n &.isOpen {\n width: ${DEFAULT_BUILDER_WIDTHS.mobileLeftPanel}px;\n }\n }\n`;\n","import React from 'react';\nimport {\n IconFormFilled, IconProductSignFilled, IconHeadingSquareFilled, IconText, IconLinkDiagonal,\n IconFileFilled, IconImageFilled, IconLabelButtonFilled, IconCartShoppingFilled,\n IconProductTablesFilled, IconProductReportBuilderFilled, IconProductInboxFilled, IconDivider,\n IconHeartFilled, IconArrowUpRightFromSquareSm, IconListNumber, IconGrid2Filled, IconListBullet\n} from '@jotforminc/svg-icons';\nimport { ITEM_TYPES, featurePermissionKeys } from '../../../constants/itemTypes';\nimport { FEATURE_NAMES } from '../../../constants/features';\nimport { isFeatureEnabled } from '../../../utils/features/helper';\n\nexport const DividerLeftPanelElement = {\n type: ITEM_TYPES.DIVIDER,\n title: 'Divider',\n icon: () => \n};\n\nconst TableLeftPanelElement = {\n type: ITEM_TYPES.TABLE_LINK,\n title: 'Table',\n icon: () => \n};\n\nconst ReportLeftPanelElement = {\n type: ITEM_TYPES.REPORT_LINK,\n title: 'Report',\n icon: () => \n};\n\nconst SentboxLeftPanelElement = {\n type: ITEM_TYPES.SENTBOX_LINK,\n title: 'Sentbox',\n icon: () => \n};\n\nexport const dataItems = [\n TableLeftPanelElement,\n ReportLeftPanelElement,\n SentboxLeftPanelElement\n];\n\nconst ProductListLeftPanelElement = {\n type: ITEM_TYPES.PRODUCT_LIST,\n title: 'Product List',\n icon: () => \n};\n\nconst DonationBoxLeftPanelElement = {\n type: ITEM_TYPES.DONATION,\n title: 'Donation Box',\n icon: () => \n};\n\nconst paymentLeftPanelElements = [\n ProductListLeftPanelElement\n];\n\nif (isFeatureEnabled(FEATURE_NAMES.DonationItem)) {\n paymentLeftPanelElements.push(DonationBoxLeftPanelElement);\n}\n\nexport const paymentElements = paymentLeftPanelElements;\n\nexport const collectionElements = [\n ...isFeatureEnabled(FEATURE_NAMES.CardItem) ? [\n {\n type: ITEM_TYPES.CARD_ITEM,\n title: 'List Item',\n icon: () => \n }\n ] : []\n];\n\nconst getAppItems = () => {\n const appItems = [\n {\n type: ITEM_TYPES.FORM,\n title: 'Form',\n icon: () => \n },\n {\n type: ITEM_TYPES.HEADING,\n title: 'Heading',\n icon: () => \n },\n ...isFeatureEnabled(FEATURE_NAMES.List) ? [\n {\n type: ITEM_TYPES.LIST,\n title: 'List',\n icon: () => ,\n isNew: true\n }\n ] : [],\n ...isFeatureEnabled(FEATURE_NAMES.CardItem) ? [\n {\n type: ITEM_TYPES.CARD_ITEM,\n title: 'Card',\n icon: () => \n }\n ] : [],\n ...isFeatureEnabled(FEATURE_NAMES.SignField) ? [{\n type: ITEM_TYPES.SIGN_LINK,\n title: 'Sign Document',\n icon: () => \n }] : [],\n {\n type: ITEM_TYPES.PARAGRAPH,\n title: 'Paragraph',\n icon: () => \n },\n {\n type: ITEM_TYPES.LINK,\n title: 'Link',\n icon: () => \n }, {\n type: ITEM_TYPES.DOCUMENT,\n title: 'Document',\n icon: () => \n }, {\n type: ITEM_TYPES.IMAGE,\n title: 'Image',\n icon: () => \n },\n {\n type: ITEM_TYPES.BUTTON,\n title: 'Button',\n icon: () => \n },\n ...isFeatureEnabled(FEATURE_NAMES.ShareOptions) ? [{\n type: ITEM_TYPES.SHARE_BUTTON,\n title: 'Share Button',\n icon: () => \n }] : []\n ];\n\n return appItems;\n};\n\nexport const getAppItemsWithPermissions = usedPermissions => {\n const filteredItemList = getAppItems().filter(item => {\n const permissionKey = featurePermissionKeys[item.type];\n if (permissionKey !== undefined && usedPermissions[permissionKey] === false) {\n return false;\n }\n return true;\n });\n return filteredItemList;\n};\n\nexport default getAppItems;\n","import Styled from 'styled-components';\nimport {\n leftPanelItemIconBgColor, leftPanelItemIconBgColorHovered, primaryPurple\n} from '../../../../../../../styles/colors';\n\nconst ScAppItem = Styled.div`\n position: relative;\n width: 100%;\n height: 100%;\n background-color: #434a60;\n // value should come from the var(--jfv-panel-left-item-wrapper-background) variable,\n // but since the variable is undefined in the draggable item, it was given manually\n color: var(--jfv-panel-left-item-wrapper-color);\n font-size: var(--jfv-panel-left-item-text-font-size);\n font-weight: var(--jfv-panel-left-item-text-font-weight);\n\n .svgWrapper {\n background-color: ${leftPanelItemIconBgColor};\n }\n\n &.visual {\n pointer-events: none;\n }\n\n &:hover {\n background-color: ${primaryPurple};\n\n .svgWrapper {\n background-color: ${leftPanelItemIconBgColorHovered};\n }\n\n .panelItemTitle {\n border-color: transparent;\n }\n }\n\n .svgWrapper {\n background-color: #33384a;\n width: 56px;\n // values should come from the var(--jfv-panel-left-item-icon-wrapper-background) and var(--jfv-panel-left-item-icon-wrapper-dimension) variables,\n // but since the variable is undefined in the draggable item, it was given manually\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n\n svg {\n height: var(--jfv-panel-left-item-icon-dimension);\n width: var(--jfv-panel-left-item-icon-dimension);\n }\n }\n\n .panelItemTitle {\n position: relative;\n width: 100%;\n height: 100%;\n border-bottom: 1px solid var(--jfv-panel-left-item-divider);\n font-size: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 20px 16px 19px 76px;\n vertical-align: top;\n display: inline-block;\n color: #fff;\n }\n\n .newBadge {\n position: absolute;\n top: 50%;\n right: 18px;\n transform: translateY(-50%);\n width: unset;\n border-radius: 230px;\n font-weight: 500;\n padding: 8px 14px;\n font-size: 12px;\n border: none;\n background: rgba(137, 45, 202, 1);\n\n &.beta {\n background-color: #0099FF;\n }\n }\n\n ${({ disabled }) => ((disabled) ? `\n .svgWrapper, .panelItemTitle {\n opacity: 0.5;\n }\n\n &:hover {\n background-color: #545F6F;\n cursor: not-allowed;\n\n .svgWrapper {\n background-color: #394049;\n }\n }\n\n .tooltip {\n font-size: 12px;\n padding: 8px 12px;\n border-radius: 4px;\n color: #fff;\n font-weight: 400;\n background-color: #2F333A;\n text-align: center;\n z-index: 2;\n position: absolute;\n opacity: 0;\n pointer-events: none;\n margin: 6px 8px;\n left: 0;\n top: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: left;\n\n svg {\n color: #fff;\n min-width: 24px;\n height: 24px;\n margin-right: 11px;\n }\n }\n\n &:hover {\n .tooltip {\n transition: .2 ease opacity;\n opacity: 1;\n pointer-events: all;\n }\n }\n ` : '')}\n`;\n\nexport default ScAppItem;\n","import React, { memo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n shape, func, elementType, string, bool\n} from 'prop-types';\nimport { Utils } from '@jotforminc/uikit';\nimport { t } from '@jotforminc/translation';\nimport { IconInfoCircleFilled } from '@jotforminc/svg-icons';\nimport * as ACTION_CREATORS from '../../../../../../../store/actionCreators';\nimport SELECTORS from '../../../../../../../store/selectors';\nimport ScAppItem from './ScAppItem';\nimport { FEATURE_NAMES } from '../../../../../../../constants/features';\nimport { isFeatureEnabled } from '../../../../../../../utils/features/helper';\n\nconst getStyle = (providedStyle, snapshot) => (\n snapshot.isDropAnimating\n ? { ...providedStyle, transitionDuration: '0.01s' } // Skip animation on drop\n : providedStyle\n);\n\nconst AppItem = ({\n provided, snapshot, item, isPlaceholder, ...rest\n}) => {\n const { innerRef, draggableProps, dragHandleProps } = provided;\n const {\n type, title, Icon, isNew, isBeta, categoryTitle\n } = item;\n // TODO do we need Icon as prop??\n\n const dispatch = useDispatch();\n const isItemAvailable = isFeatureEnabled(FEATURE_NAMES.DonationItem) && useSelector(SELECTORS.getIsItemAvailable(type));\n const shouldShowInUse = isFeatureEnabled(FEATURE_NAMES.DonationItem) && useSelector(SELECTORS.getShouldShowInUse(type));\n const isDisabled = isFeatureEnabled(FEATURE_NAMES.DonationItem) && useSelector(SELECTORS.getIsItemAdditionDisabled(type));\n\n let badge = null;\n\n if (isDisabled) {\n badge = shouldShowInUse ? {t('IN USE')} : null;\n } else if (isNew) {\n badge = {t('New')};\n } else if (isBeta) {\n badge = {t('BETA')};\n }\n const { style: providedStyle } = draggableProps;\n const style = getStyle(providedStyle, snapshot);\n\n const handleAppItemClick = () => {\n if (!isDisabled) {\n dispatch(ACTION_CREATORS.onLeftPanelItemClickAction(type));\n }\n };\n\n const handleKeyPress = e => (Utils.isPressedKeyEnter(e) && handleAppItemClick());\n\n return (\n \n
\n {t(title)}\n {badge}\n {isItemAvailable ? (\n \n \n {t('Product List and Donation Box can\\'t be used at the same time.')}\n \n ) : null}\n \n );\n};\n\nAppItem.propTypes = {\n provided: shape({\n innerRef: func,\n draggableProps: shape({}),\n dragHandleProps: shape({})\n }),\n snapshot: shape({}),\n item: shape({\n Icon: elementType,\n title: string,\n isNew: bool,\n isBeta: bool,\n categoryTitle: string\n }),\n isPlaceholder: bool\n};\n\nAppItem.defaultProps = {\n provided: {\n innerRef: f => f,\n snapshot: {},\n draggableProps: {},\n dragHandleProps: {}\n },\n snapshot: {},\n item: {\n isNew: false,\n isBeta: false\n },\n isPlaceholder: false\n};\n\nexport default memo(AppItem);\n","import React from 'react';\nimport { Draggable, Droppable } from 'react-beautiful-dnd';\nimport { useSelector } from 'react-redux';\nimport SELECTORS from '../../../../../../../store/selectors';\n\n/* eslint-disable react/prop-types */\nexport const withDraggableWrapper = WrappedComponent => ({\n type, title, Icon, isNew, isBeta, categoryTitle, index\n}) => {\n const isDisabled = useSelector(SELECTORS.getIsItemAdditionDisabled(type));\n\n const renderClone = (provided, snapshot) => {\n // TODO reflect to change on draggingOver as in pdf-editor\n // const { draggingOver } = snapshot;\n return (\n \n );\n };\n\n const getCloneContainer = () => document.querySelector('.pageStageContainer');\n const visualPlaceholder = ;\n return (\n \n {({ innerRef: droppableRef, droppableProps, placeholder }) => (\n \n \n {(draggableProvided, draggableStateSnapshot) => {\n return (\n \n );\n }}\n \n {visualPlaceholder}\n {placeholder}\n \n )}\n \n );\n};\n/* eslint-enable react/prop-types */\n","import Styled from 'styled-components';\nimport { settingsLeftPanelBgColor } from '../../../../../styles/colors';\nimport { isNewPanel } from '../../../../../utils';\n\nconst ScLeftPanelDivider = Styled.div`\n ${isNewPanel() ? `\n background-color: var(--jfv-panel-sub-header-background);\n color: var(--jfv-panel-sub-header-color);\n font-size: var(--jfv-panel-sub-header-font-size);\n font-weight: var(--jfv-panel-sub-header-font-weight);\n height: var(--jfv-panel-sub-header-height);\n display: flex;\n align-items: center;\n justify-content: center;\n ` : `\n font-size: 14px;\n background-color: ${settingsLeftPanelBgColor};\n color: #E8EDEE;\n padding: 6px;\n text-align: center;\n `}\n text-transform: uppercase;\n`;\n\nexport default ScLeftPanelDivider;\n","import { t } from '@jotforminc/translation';\nimport { arrayOf, shape } from 'prop-types';\nimport React, { useCallback, useMemo, Fragment } from 'react';\nimport AppItem from './AppItem';\nimport { withDraggableWrapper } from './hoc/withDraggableWrapper';\nimport ScLeftPanelDivider from '../ScLeftPanelDivider';\n\nconst AppItemList = ({ items, categoryItems = {} }) => {\n const AppItemComponent = useMemo(() => withDraggableWrapper(AppItem), []);\n const categories = Object.keys(categoryItems);\n const useCategoryTypes = categories.length > 0;\n\n const generateList = useCallback((elements, categoryTitle) => {\n return (\n
\n {elements.map(({\n type, title, icon, isNew, isBeta\n }, index) => (\n \n ))}\n
\n );\n }, []);\n\n return (\n
\n {useCategoryTypes ? (\n categories.map(category => {\n const { items: _items, title, showTitle = true } = categoryItems[category];\n const elements = generateList(_items, title);\n return (\n \n {showTitle && (\n \n {t(title)}\n \n )}\n
    \n {elements}\n
\n
\n );\n })\n ) : generateList(items)}\n
\n );\n};\n\nAppItemList.propTypes = {\n items: arrayOf(shape({})),\n categoryItems: shape({})\n};\n\nAppItemList.defaultProps = {\n items: [{}],\n categoryItems: {}\n};\n\nexport default AppItemList;\n","import React from 'react';\nimport AppItemList from './AppItemList';\n\nconst BasicsPanel = props => ;\n\nexport default BasicsPanel;\n","import React, { useCallback } from 'react';\nimport { func, string } from 'prop-types';\nimport Styled from 'styled-components';\nimport { transparentize } from 'polished';\nimport { t } from '@jotforminc/translation';\n\nimport { IconMagnifyingGlass, IconXmark } from '@jotforminc/svg-icons';\nimport Button from '../../../../../../components/Button';\n\nimport { branding21MainBlue } from '../../../../../../styles/colors';\n\nconst ScSearchInput = Styled.div`\n background-color: var(--jfv-panel-search-wrapper-background);\n border-bottom-color: var(--jfv-panel-left-item-divider);\n color: var(--jfv-panel-search-wrapper-color);\n height: var(--jfv-panel-search-wrapper-height);\n padding: 16px var(--jfv-panel-search-wrapper-padding-inline);\n position: absolute;\n width: 100%;\n top: 0;\n &[data-activetab=\"Basic\"] {\n display: none;\n }\n input[type=\"text\"] {\n background-color: var(--jfv-panel-search-input-background);\n border: var(--jfv-panel-search-border);\n color: var(--jfv-panel-search-wrapper-color);\n font-size: var(--jfv-panel-search-input-font-size);\n height: var(--jfv-panel-search-input-height);\n width: 100%;\n box-shadow: none;\n padding: 6px 30px;\n border-radius: 15px;\n transition: .3s all ease-in-out;\n\n &:focus, &:hover {\n border-color: ${branding21MainBlue};\n }\n\n &:placeholder {\n color: ${transparentize(0.5, '#fff')};\n }\n }\n\n .lp-fieldsSearchButton {\n width: var(--jfv-panel-search-icon-dimension);\n height: var(--jfv-panel-search-icon-dimension);\n border: 0;\n padding: 0;\n text-decoration: none;\n background: transparent;\n cursor: pointer;\n margin: 0;\n position: absolute;\n top: 50%;\n left: 24px;\n transform: translateY(-45%);\n }\n`;\n\nconst SearchInput = ({ value, onChange }) => {\n const handleInputChange = useCallback(e => onChange(e.target.value), [onChange]);\n\n const handleClearInput = useCallback(() => onChange(''), []);\n\n return (\n \n \n \n \n );\n};\n\nSearchInput.propTypes = {\n value: string,\n onChange: func\n};\n\nSearchInput.defaultProps = {\n value: '',\n onChange: f => f\n};\n\nexport default SearchInput;\n","import { Hooks } from '@jotforminc/uikit';\nimport { arrayOf, shape } from 'prop-types';\nimport React, { useMemo, useState } from 'react';\nimport { ITEM_TYPES } from '../../../../../constants/itemTypes';\nimport SearchInput from './SearchInput';\nimport AppItemList from './AppItemList';\n\nconst WidgetsPanel = ({ widgets }) => {\n const [widgetFilterQuery, setWidgetFilterQuery] = useState('');\n\n const filteredWidgets = Hooks.useFuse(\n widgets,\n widgetFilterQuery,\n ['name', 'description', 'shortDescription', 'translatedName', 'translatedShortDescription', 'translatedDescription'],\n { threshold: 0.1, tokenize: true, matchAllTokens: true }\n );\n\n const widgetsArray = useMemo(() => {\n return filteredWidgets.reduce((prev, widget) => {\n const widgetData = widget.item ?? widget;\n const { client_id: clientID, name, smallImage } = widgetData;\n const draggableWidgetElementID = `${ITEM_TYPES.WIDGET}_${clientID}`;\n const WidgetIcon = () => {draggableWidgetElementID};\n\n return [...prev, {\n type: draggableWidgetElementID,\n title: name,\n icon: WidgetIcon\n }];\n }, []);\n }, [filteredWidgets]);\n\n return (\n <>\n \n \n \n );\n};\n\nWidgetsPanel.propTypes = {\n widgets: arrayOf(shape({}))\n};\n\nWidgetsPanel.defaultProps = {\n widgets: []\n};\n\nexport default WidgetsPanel;\n","import { t } from '@jotforminc/translation';\nimport BasicsPanel from './BasicsPanel';\nimport WidgetsPanel from './WidgetsPanel';\nimport { tabVisibilityCheck } from '../../../../../utils';\n\nexport const getTabList = () => {\n const tabList = {\n Basic: {\n label: t('Basic'),\n visibility: true\n },\n Widgets: {\n label: t('Widgets'),\n visibility: tabVisibilityCheck('widgets')\n }\n };\n return tabList;\n};\n\nexport const getPanels = () => {\n return [\n {\n id: 'Basic',\n PanelComponent: BasicsPanel\n },\n {\n id: 'Widgets',\n PanelComponent: WidgetsPanel\n }\n ];\n};\n","import { bool, func } from 'prop-types';\nimport React from 'react';\nimport { Utils } from '@jotforminc/uikit';\n\nconst AccessibleTabButton = props => {\n const { onClick } = props;\n const handleKeyDown = e => Utils.isPressedKeyEnter(e) && onClick();\n\n return (\n \n );\n};\n\nAccessibleTabButton.propTypes = {\n 'data-isactive': bool,\n onClick: func\n};\n\nAccessibleTabButton.defaultProps = {\n 'data-isactive': false,\n onClick: f => f\n};\n\nexport default AccessibleTabButton;\n","import { t } from '@jotforminc/translation';\nimport React from 'react';\nimport { IconXmark } from '@jotforminc/svg-icons';\nimport { getTabList } from '../constants';\nimport AccessibleTabButton from '../../../../../../components/AccessibleTabButton';\n\n// eslint-disable-next-line react/prop-types\nexport const TabListWrapper = ({ handleClose, children }) => {\n return (\n <>\n
\n {t('App Elements')}\n \n \n \n
\n {children}\n \n );\n};\n\nexport const TabListContainer = props =>
;\n\n// eslint-disable-next-line react/prop-types\nexport const TabButtonContainer = props => {\n return
;\n};\n\nexport const TabButton = props => ;\n","import { t } from '@jotforminc/translation';\nimport { Tab, TabList } from '@jotforminc/tabs';\nimport { arrayOf, shape } from 'prop-types';\nimport React, {\n memo, useCallback, useMemo, useRef\n} from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ITEM_TYPES } from '../../../../../constants/itemTypes';\nimport {\n DividerLeftPanelElement, dataItems, getAppItemsWithPermissions, paymentElements\n} from '../../../constants/AppItems';\nimport { getPanels, getTabList } from './constants';\nimport SELECTORS from '../../../../../store/selectors';\nimport {\n TabButton,\n TabListWrapper,\n TabListContainer,\n TabButtonContainer\n} from './wrappers/wrappers';\nimport { getWidgets, tabVisibilityCheck } from '../../../../../utils';\nimport * as ACTION_CREATORS from '../../../../../store/actionCreators';\n\nconst filterVisible = obj => Object.entries(obj).reduce((prev, [key, value]) => {\n if (value.visibility) {\n return { ...prev, [key]: value };\n }\n return prev;\n}, {});\n\nconst LeftPanelContainer = ({ otherWidgets, featuredWidgets, pageWidgets }) => {\n const dispatch = useDispatch();\n const { allowSign } = useSelector(SELECTORS.getUser);\n const items = getAppItemsWithPermissions({ allowSign });\n\n const dataElementItems = dataItems;\n const paymentElementsItems = paymentElements;\n const tabListRef = useRef();\n const itemsWithoutDividerElement = useMemo(() => items.filter(({ type }) => type !== ITEM_TYPES.DIVIDER), [items]);\n\n const featuredWidgetItems = getWidgets(featuredWidgets);\n const pageWidgetItems = getWidgets(pageWidgets);\n\n const translatedOtherWidgets = useMemo(() => otherWidgets.map(widget => ({\n ...widget,\n translatedName: t(widget.name),\n translatedShortDescription: t(widget.shortDescription),\n translatedDescription: t(widget.description)\n })), [otherWidgets]);\n\n const categoryItems = useMemo(() => ({\n basic: {\n items: itemsWithoutDividerElement,\n title: t('Basic Elements'),\n showTitle: false,\n visibility: true\n },\n payments: {\n items: paymentElementsItems,\n title: t('Payment Elements'),\n visibility: tabVisibilityCheck('payments')\n },\n widgets: {\n items: featuredWidgetItems,\n title: t('Featured Widgets'),\n visibility: tabVisibilityCheck('widgets')\n },\n data: {\n items: dataElementItems,\n title: t('Data Elements'),\n visibility: true\n },\n page: {\n items: [DividerLeftPanelElement, ...pageWidgetItems],\n title: t('Page Elements'),\n visibility: true\n }\n }), [itemsWithoutDividerElement, paymentElementsItems, featuredWidgetItems, dataElementItems, DividerLeftPanelElement, pageWidgetItems]);\n\n const panelProps = useMemo(() => ({\n categoryItems: filterVisible(categoryItems),\n widgets: translatedOtherWidgets\n }), [translatedOtherWidgets, categoryItems]);\n\n const handleClose = useCallback(() => dispatch(ACTION_CREATORS.toggleLeftPanelAction(false)), []);\n\n const MemoTabListWrapper = useCallback(props => , []);\n\n return (\n \n {getPanels().map(panel => {\n const { id, PanelComponent } = panel;\n return (\n \n \n \n );\n })}\n \n );\n};\n\nLeftPanelContainer.propTypes = {\n otherWidgets: arrayOf(shape({})),\n featuredWidgets: arrayOf(shape({})),\n pageWidgets: arrayOf(shape({}))\n};\n\nLeftPanelContainer.defaultProps = {\n otherWidgets: [{}],\n featuredWidgets: [{}],\n pageWidgets: [{}]\n};\n\nexport default memo(LeftPanelContainer);\n","import React, { memo } from 'react';\nimport { t } from '@jotforminc/translation';\nimport { useSelector } from 'react-redux';\nimport { Hooks } from '@jotforminc/uikit';\nimport SELECTORS from '../../../../../store/selectors';\nimport { ScLeftPanel } from '../../../styles/scLeftPanel';\nimport LeftPanelContainer from './LeftPanelContainer';\nimport { isNewPanel } from '../../../../../utils';\n\nconst LeftPanel = () => {\n const isLeftPanelOpen = useSelector(SELECTORS.isLeftPanelOpenSelector);\n const otherWidgets = useSelector(SELECTORS.getOtherWidgetsSelector);\n const featuredWidgets = useSelector(SELECTORS.getFeaturedWidgetsSelector);\n const pageWidgets = useSelector(SELECTORS.getPageWidgetsSelector);\n const panelRef = Hooks.useContinueFocus(isLeftPanelOpen);\n\n return (\n \n \n \n );\n};\n\nexport default memo(LeftPanel);\n","import { func } from 'prop-types';\nimport React from 'react';\nimport Styled from 'styled-components';\nimport { t } from '@jotforminc/translation';\n\nconst ScAddPageBtn = Styled.button`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background-color: #E6F5FF;\n border: 1px solid #0099FF;\n color: #0099FF;\n font-weight: 500;\n font-size: 15px;\n font-family: inherit;\n text-transform: capitalize;\n margin-left: 20px;\n min-width: 105px;\n height: 45px;\n padding: .5em .75em;\n border-radius: 4px;\n cursor: pointer;\n line-height: 1.5;\n\n & > span.desktop { display: inline; }\n & > span.mobile { display: none; }\n\n @media screen and (max-width: 480px) {\n & > span.desktop { display: none; }\n & > span.mobile { display: inline; }\n }\n`;\nconst AddNewPage = ({ onAddNewPage }) => {\n return (\n \n {`+ ${t('Add Page')}`}\n {`+ ${t('Add')}`}\n \n );\n};\n\nAddNewPage.propTypes = {\n onAddNewPage: func\n};\n\nAddNewPage.defaultProps = {\n onAddNewPage: f => f\n};\n\nexport default AddNewPage;\n","/* eslint-disable max-len */\nimport React, { useRef } from 'react';\nimport {\n string, func, bool, number, oneOfType, elementType\n} from 'prop-types';\nimport Styled, { css } from 'styled-components';\nimport InlineEditor from '../../InlineEditor';\n\nconst ScPageNavigation = Styled.div`\n width: 175px;\n max-height: 45px;\n font-size: 15px;\n padding: 13px 5px;\n text-align: center;\n background-color: transparent;\n border-radius: 4px;\n min-width: 173px;\n color: #6F76A7;\n line-height: 19px;\n overflow: hidden;\n cursor: pointer;\n margin-left: 10px;\n display: flex;\n z-index: 99999999;\n\n &:first-of-type {\n margin-left: 0;\n }\n\n .pageName {\n flex-grow: 1;\n overflow: hidden;\n white-space: nowrap;\n padding: 0 3px;\n max-width: 138px;\n\n & > [contenteditable=\"true\"] {\n outline: none;\n overflow: hidden;\n }\n }\n\n .dragHandle {\n opacity: 0;\n pointer-events: none;\n flex-basis: 14px;\n background-repeat: no-repeat;\n background-position: center center;\n height: 20px;\n background-image: url(\"data:image/svg+xml,%3Csvg width='10' height='14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.4 2.8c.7732 0 1.4-.6268 1.4-1.4C2.8.6268 2.1732 0 1.4 0 .6268 0 0 .6268 0 1.4c0 .7732.6268 1.4 1.4 1.4ZM1.4 8.39961c.7732 0 1.4-.6268 1.4-1.4 0-.7732-.6268-1.4-1.4-1.4-.7732 0-1.4.6268-1.4 1.4 0 .7732.6268 1.4 1.4 1.4ZM1.4 13.9992c.7732 0 1.4-.6268 1.4-1.4 0-.7732-.6268-1.4-1.4-1.4-.7732 0-1.4.6268-1.4 1.4 0 .7732.6268 1.4 1.4 1.4ZM7.6998 2.8c.7732 0 1.4-.6268 1.4-1.4 0-.7732-.6268-1.4-1.4-1.4-.77319 0-1.4.6268-1.4 1.4 0 .7732.62681 1.4 1.4 1.4ZM7.6998 8.39961c.7732 0 1.4-.6268 1.4-1.4 0-.7732-.6268-1.4-1.4-1.4-.77319 0-1.4.6268-1.4 1.4 0 .7732.62681 1.4 1.4 1.4ZM7.6998 13.9992c.7732 0 1.4-.6268 1.4-1.4 0-.7732-.6268-1.4-1.4-1.4-.77319 0-1.4.6268-1.4 1.4 0 .7732.62681 1.4 1.4 1.4Z' fill='%236F76A7'/%3E%3C/svg%3E\");\n }\n\n .dummy {\n flex-basis: 14px;\n }\n\n &:hover {\n background-color: #F3F3FE;\n color: #6F76A7;\n\n .dragHandle {\n opacity: 1;\n pointer-events: all;\n }\n }\n\n ${({ isActiveItem }) => ((isActiveItem) ? css`\n background-color: #E3E5F5;\n color: #0A1551;\n\n .dragHandle {\n opacity: 1;\n pointer-events: all;\n flex-basis: 14px;\n }\n ` : '')}\n`;\n\nconst NavigationItem = ({\n id,\n name,\n isActiveItem,\n onClick,\n onPageNameChange,\n DragHandleRenderer,\n SortableDragHandle\n}) => {\n const inlineEditorRef = useRef();\n\n const handlePageNameChange = newTitle => {\n if (!newTitle) {\n inlineEditorRef.current.contentEditableRef.current.textContent = name;\n return;\n }\n onPageNameChange(id, newTitle);\n };\n\n const handleInlineEditorFocus = () => {\n const editor = inlineEditorRef?.current?.contentEditableRef?.current;\n if (editor && window.getSelection) {\n // without timeout, selects from 0 to click position\n setTimeout(() => {\n const sel = window.getSelection();\n const range = document.createRange();\n range.selectNodeContents(inlineEditorRef.current.contentEditableRef.current);\n sel.removeAllRanges();\n sel.addRange(range);\n }, 0);\n }\n };\n\n const DragHandle = () => (\n \n \n \n );\n\n const handleItemBlur = e => {\n e.target.scrollLeft = 0;\n };\n\n return (\n onClick(id)}\n >\n \n
\n { isActiveItem ? (\n \n ) : name }\n
\n
\n \n );\n};\n\nNavigationItem.propTypes = {\n id: oneOfType([number, string]),\n name: string,\n isActiveItem: bool,\n onClick: func,\n onPageNameChange: func,\n DragHandleRenderer: elementType.isRequired,\n SortableDragHandle: elementType.isRequired\n};\n\nNavigationItem.defaultProps = {\n id: '',\n name: '',\n isActiveItem: false,\n onClick: f => f,\n onPageNameChange: f => f\n};\n\nexport default NavigationItem;\n","import React from 'react';\nimport Styled from 'styled-components';\n\nconst ScPageListContainer = Styled.div`\n position: relative;\n bottom: 0;\n z-index: 11;\n height: 63px;\n background-color: #fff;\n display: flex;\n align-items: center;\n padding: 0 12px;\n border-top: 1px solid #C9CADD80;\n`;\n\nconst PageListContainer = ({\n ...props\n}) => {\n return (\n \n );\n};\n\nexport default PageListContainer;\n","import React, { forwardRef } from 'react';\nimport Styled from 'styled-components';\n\nconst ScPageItemListWrapper = Styled.div`\n display: flex;\n overflow-y: auto;\n`;\n\nconst PageItemListWrapper = forwardRef(({\n ...props\n}, ref) => {\n return (\n \n );\n});\n\nexport default PageItemListWrapper;\n","import { Hooks } from '@jotforminc/uikit';\nimport {\n arrayOf, bool, elementType, func, number, shape, string\n} from 'prop-types';\nimport React, { useRef } from 'react';\nimport { SortableContainer, SortableElement, SortableHandle } from 'react-sortable-hoc';\n\nconst SortablePageListContainer = SortableContainer(({ children, PageListContainer, ...props }) => {\n return (\n \n {children}\n \n );\n});\n\nconst SortableDragHandle = SortableHandle(({ children }) => <>{children});\n\nconst SortablePageItem = SortableElement(({ PageItemRenderer, ...itemProps }) => (\n <>\n \n \n));\n\nconst PageList = ({\n pages,\n activePage,\n useDragHandle,\n pressDelay,\n onSortChange,\n onAddNewPage,\n onShouldCancelStart,\n onPageItemClick,\n onPageNameChange,\n PageItemRenderer,\n PageListContainer,\n PageItemListWrapper,\n AddNewPageRenderer,\n DragHandleRenderer,\n isDragDisabled\n}) => {\n const placeholderItemRef = useRef();\n const navigationItemWrapperRef = useRef();\n\n const handleOnSortEnd = ({ oldIndex, newIndex }) => {\n onSortChange({ oldIndex, newIndex });\n };\n\n Hooks.useEffectIgnoreFirst(() => {\n if (placeholderItemRef.current) {\n const { offsetLeft } = placeholderItemRef.current;\n navigationItemWrapperRef.current.scrollTo({ left: offsetLeft, behavior: 'smooth' });\n }\n }, [pages]);\n\n return (\n \n \n {pages.map((page, index) => {\n const { id } = page;\n const isActiveItem = id === activePage;\n return (id\n ? (\n \n ) : (
)\n );\n })}\n \n \n \n );\n};\n\nPageList.propTypes = {\n pages: arrayOf(shape({})),\n activePage: string,\n useDragHandle: bool,\n pressDelay: number,\n onSortChange: func,\n onAddNewPage: func,\n onShouldCancelStart: func,\n onPageItemClick: func,\n onPageNameChange: func,\n PageItemRenderer: elementType.isRequired,\n PageListContainer: elementType.isRequired,\n AddNewPageRenderer: elementType.isRequired,\n DragHandleRenderer: elementType.isRequired,\n PageItemListWrapper: elementType.isRequired,\n isDragDisabled: bool\n};\n\nPageList.defaultProps = {\n pages: [],\n activePage: '',\n useDragHandle: true,\n pressDelay: 0,\n onSortChange: f => f,\n onAddNewPage: f => f,\n onPageItemClick: f => f,\n onShouldCancelStart: f => f,\n onPageNameChange: f => f,\n isDragDisabled: false\n};\n\nexport default PageList;\n","import {\n arrayOf, bool, elementType, func, number, shape, string\n} from 'prop-types';\nimport React from 'react';\nimport DefaultAddNewPage from './defaults/AddNewPage';\nimport DefaultPageItem from './defaults/PageItem';\nimport DefaultPageListContainer from './defaults/PageListContainer';\nimport DefaultPageItemListWrapper from './defaults/PageItemListWrapper';\nimport PageList from './PageList';\nimport { onShouldCancelStart as onDefaultShouldCancelStart } from './defaults/utils';\n\nconst PageNavigationBar = ({\n pages,\n activePage,\n useDragHandle,\n pressDelay,\n onSortChange,\n onAddNewPage,\n onShouldCancelStart,\n onPageItemClick,\n onPageNameChange,\n PageItemRenderer,\n PageListContainer,\n PageItemListWrapper,\n AddNewPageRenderer,\n DragHandleRenderer,\n isDragDisabled\n}) => {\n return (\n \n );\n};\n\nPageNavigationBar.propTypes = {\n pages: arrayOf(shape({})),\n activePage: string,\n useDragHandle: bool,\n pressDelay: number,\n onSortChange: func,\n onAddNewPage: func,\n onShouldCancelStart: func,\n onPageItemClick: func,\n onPageNameChange: func,\n PageItemRenderer: elementType,\n PageListContainer: elementType,\n PageItemListWrapper: elementType,\n AddNewPageRenderer: elementType,\n DragHandleRenderer: elementType,\n isDragDisabled: bool\n};\n\nPageNavigationBar.defaultProps = {\n pages: [],\n activePage: '',\n useDragHandle: true,\n pressDelay: 0,\n onSortChange: f => f,\n onAddNewPage: f => f,\n onShouldCancelStart: onDefaultShouldCancelStart,\n onPageItemClick: f => f,\n onPageNameChange: f => f,\n PageItemRenderer: DefaultPageItem,\n PageListContainer: DefaultPageListContainer,\n PageItemListWrapper: DefaultPageItemListWrapper,\n AddNewPageRenderer: DefaultAddNewPage,\n DragHandleRenderer: () => (\n \n ),\n isDragDisabled: false\n};\n\nexport default PageNavigationBar;\n","export const onShouldCancelStart = e => {\n const { nodeName } = e.target;\n\n if (nodeName === 'SPAN') return false;\n return true;\n};\n","import Styled from 'styled-components';\nimport { FEATURE_NAMES } from '../../../../constants/features';\nimport { isFeatureEnabled } from '../../../../utils/features/helper';\n\nexport const ScNavBar = Styled.div`\n${({ isPaymentApp }) => (isPaymentApp ? 'max-width: calc(100% - 288px)' : 'max-width: calc(100% - 88px)')};\n @media screen and (max-width: 480px) {\n position: relative;\n ${({ isPaymentApp }) => (isPaymentApp ? 'max-width: calc(100% - 84px)' : 'max-width: calc(100% - 40px)')};\n }\n\n position: absolute;\n z-index: 11;\n display: flex;\n align-items: center;\n \n ${!isFeatureEnabled(FEATURE_NAMES.MultipageImps) && `\n height: 64px;\n background-color: #fff;\n padding: 0 12px;\n border-top: 1px solid #C9CADD80;\n `};\n\n .navBarItems {\n display: flex;\n overflow-x: scroll;\n gap: 8px;\n\n @media (min-width: 768px) {\n &::-webkit-scrollbar {\n height: 4px;\n }\n\n &::-webkit-scrollbar-track {\n background-color: #fff;\n }\n\n &::-webkit-scrollbar-thumb {\n background: #c1c1c1;\n border-radius: 6px;\n }\n\n &::-webkit-scrollbar-thumb:hover {\n background: darken(#c1c1c1, 10%);\n }\n }\n }\n`;\n","/* eslint-disable max-len */\nimport Styled, { css } from 'styled-components';\nimport { FEATURE_NAMES } from '../../../../constants/features';\nimport { isFeatureEnabled } from '../../../../utils/features/helper';\nimport { iconSelector } from '../../styles/scRightPanel';\n\nconst ScNavigationItemRenderer = Styled.div`\n min-width: 148px;\n width: 148px;\n height: 40px;\n font-size: 14px;\n font-weight: 400;\n padding: 10px 8px;\n text-align: left;\n border-radius: 4px;\n background-color: #F3F3FE;\n color: #343C6A;\n line-height: normal;\n overflow: hidden;\n cursor: pointer;\n display: flex;\n gap: 4px;\n fill: #6F76A7;\n z-index: 99999999;\n transition: all .25s ease-in-out;\n\n ${isFeatureEnabled(FEATURE_NAMES.MultipageImps) ? `\n text-align: left;\n align-items: center;\n ` : `\n text-align: center;\n `}\n\n &:first-of-type {\n margin-left: 0;\n }\n\n .pageName {\n flex-grow: 1;\n overflow: hidden;\n white-space: nowrap;\n ${isFeatureEnabled(FEATURE_NAMES.MultipageImps) ? 'padding: 0;' : 'padding: 0 3px;'}\n max-width: 148px;\n\n & > [contenteditable=\"true\"] {\n outline: none;\n overflow: hidden;\n\n :not(:focus) {\n text-overflow: ellipsis;\n }\n }\n\n :not(:focus) {\n text-overflow: ellipsis;\n }\n }\n\n .dragHandle {\n background-repeat: no-repeat;\n background-position: center center;\n height: 20px;\n min-width: 14px;\n background-image: url('data:image/svg+xml,');\n ${isFeatureEnabled(FEATURE_NAMES.MultipageImps) ? css`\n ` : ''}\n }\n\n button.navigation-add-icon {\n width: 14px;\n height: 14px;\n border-radius: 4px;\n padding: 1px;\n background: #c8ceed;\n\n &.hasIcon,\n &.hasIcon:hover {\n display: flex;\n background: transparent;\n }\n\n > span {\n display: flex;\n padding: 0;\n }\n\n &:hover {\n background: #979dc6;\n }\n }\n\n button.navigation-elipsis {\n width: 16px;\n\n > span {\n display: flex;\n padding: 0;\n }\n\n &:hover {\n background: transparent;\n }\n }\n\n .showOnClick {\n display: none;\n }\n\n .navigation-popover {\n &.page-settings-popover {\n &:after {\n content: '';\n position: absolute;\n right: 9px;\n bottom: -6px;\n width: 12px;\n height: 12px;\n background: #252D5B;\n transform: rotate(45deg);\n }\n \n &[data-popper-placement=\"top-start\"] {\n transform: translate3d(0, -52px, 0px) !important;\n \n &:after {\n right: unset;\n left: 50%;\n transform: translateX(-50%) rotate(45deg);\n }\n }\n }\n }\n\n ${iconSelector}\n\n .icon-selector-wizard {\n background: #303339;\n padding: 0;\n border-radius: 4px;\n overflow: hidden;\n\n .iconSelectorPanel {\n width: 378px;\n\n .tabMenu {\n display: flex;\n justify-content: space-around;\n align-items: center;\n\n &-link {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n border-bottom: 4px solid transparent;\n\n &.is-active {\n border-bottom-color: #0075e3;\n }\n }\n }\n\n .tabContent {\n min-height: 290px;\n }\n }\n\n .remove-icon-button {\n position: relative;\n background-color: #DC2626;\n width: 95%;\n margin: 10px auto;\n left: 50%;\n transform: translateX(-50%);\n font-weight: 500;\n text-transform: capitalize;\n }\n }\n\n @media (max-width: 768px) {\n min-width: 120px;\n width: 120px;\n\n .icon-selector-wizard {\n margin-left: 12px;\n }\n }\n \n ${isFeatureEnabled(FEATURE_NAMES.MultipageImps) ? css`\n .showPageNavigation {\n display: flex;\n flex-shrink: 0;\n\n svg {\n width: 16px;\n }\n }\n ` : css`\n .dummy {\n flex-basis: 14px;\n }\n `}\n\n &:hover {\n background-color: #DADEF3;\n }\n\n ${({ isActiveItem }) => ((isActiveItem) ? css`\n background-color: #DADEF3;\n border: 1px solid #C8CEED;\n padding: 10px 4px;\n\n .showOnClick {\n display: flex;\n }\n ` : '')}\n\n ${({ hidePageNavigation }) => ((hidePageNavigation) ? css`\n background-color: #F3F3FE;\n color: #6C73A8;\n\n &:hover {\n background-color: #F3F3FE;\n }\n\n ${({ isActiveItem }) => ((isActiveItem) && css`\n background-color: #F3F3FE;\n `)}\n\n ` : ''\n )}\n`;\n\nexport default ScNavigationItemRenderer;\n","import React from 'react';\nimport {\n IconTrashFilled,\n IconPencilFilled,\n IconEyeFilled,\n IconEyeSlashFilled,\n IconPlusSquareFilled\n} from '@jotforminc/svg-icons';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { t } from '@jotforminc/translation';\nimport {\n number,\n oneOfType,\n string,\n func,\n bool\n} from 'prop-types';\nimport { Button } from '@jotforminc/magnet';\nimport { onDeletePage, updatePageAction } from '../../../../store/actionCreators';\nimport { DELETE_PAGE_TYPES } from '../HomePage/constants';\nimport { isYes } from '../../../../utils';\nimport { ScPageSettingsPopover } from '../../styles/ScPageSettingsPopover';\nimport SELECTORS from '../../../../store/selectors';\n\nconst NavigationItemSettingsPopover = ({\n pageId, pageIcon, handleNavigationItemClick, handleInlineEditorFocus, showPageOnNavigation: _showPageOnNavigation, handleOpenAddIcon\n}) => {\n const showPageOnNavigation = isYes(_showPageOnNavigation);\n const dispatch = useDispatch();\n const isMultiPage = useSelector(SELECTORS.getIsMultiPage);\n\n const handlePageRename = () => {\n handleNavigationItemClick();\n\n setTimeout(() => {\n handleInlineEditorFocus();\n }, 0);\n };\n\n const handlePageVisibility = () => {\n dispatch(updatePageAction({\n pageID: pageId,\n prop: { showPageOnNavigation: showPageOnNavigation ? 'No' : 'Yes' }\n }));\n };\n\n const handlePageDeleteClick = () => {\n dispatch(onDeletePage({\n pageID: pageId,\n type: DELETE_PAGE_TYPES.navigationSettings\n }));\n };\n\n const renderText = value => {\n return
{t(value)}
;\n };\n\n return (\n \n \n {renderText(pageIcon ? 'Change Icon' : 'Add Icon')}\n \n\n \n\n \n {showPageOnNavigation ? renderText('Hide Page') : renderText('Show Page')}\n \n\n \n\n \n {renderText('Rename')}\n \n\n {isMultiPage && (\n <>\n \n \n {renderText('Delete')}\n \n \n )}\n \n );\n};\n\nNavigationItemSettingsPopover.propTypes = {\n pageId: oneOfType([number, string]),\n pageIcon: string,\n handleNavigationItemClick: func,\n handleInlineEditorFocus: func,\n handleOpenAddIcon: func,\n showPageOnNavigation: bool\n};\n\nNavigationItemSettingsPopover.defaultProps = {\n pageId: '',\n pageIcon: '',\n handleNavigationItemClick: f => f,\n handleInlineEditorFocus: f => f,\n handleOpenAddIcon: f => f,\n showPageOnNavigation: true\n};\n\nexport default NavigationItemSettingsPopover;\n","import React, { useRef } from 'react';\nimport {\n string, func, bool, number, oneOfType, elementType, shape\n} from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { InlineEditor } from '@jotforminc/jotform-common';\nimport { Feature } from '@jotforminc/feature-toggle';\nimport { Hooks, Popover } from '@jotforminc/uikit';\nimport { Button } from '@jotforminc/magnet';\nimport {\n IconEllipsisVertical,\n IconEyeSlashFilled,\n IconPlusSm,\n IconGearFilled\n} from '@jotforminc/svg-icons';\nimport { useDispatch, useSelector } from 'react-redux';\nimport ScNavigationItemRenderer from './ScNavigationItemRenderer';\nimport PageIcon from '../HomePage/PageIcon';\nimport { actAsButton, checkMobileOrTablet, isYes } from '../../../../utils';\nimport { FEATURE_NAMES } from '../../../../constants/features';\nimport Tooltip from '../../../../components/Tooltip';\nimport * as ACTION_CREATORS from '../../../../store/actionCreators';\nimport SELECTORS from '../../../../store/selectors';\nimport NavigationItemSettingsPopover from './NavigationItemSettingsPopover';\nimport IconSelector from '../../../../components/IconSelector';\nimport { OVERRIDED_ICON_LIST, RightPanelModes } from '../HomePage/constants';\n\nconst NavigationItemRenderer = ({\n id,\n name,\n isActiveItem,\n onClick,\n onPageNameChange,\n DragHandleRenderer,\n SortableDragHandle,\n showPageIcon,\n pageIcon,\n showPageOnNavigation,\n wrapperRef\n}) => {\n const dispatch = useDispatch();\n const selectedPagePopoverId = useSelector(SELECTORS.getNavigationSettingsPopoverId);\n const inlineEditorRef = useRef();\n const isMobileOrTablet = checkMobileOrTablet();\n const navigationItemRef = useRef();\n const pagePopoverRef = useRef();\n const pagePopoverTargetRef = useRef();\n\n const [isTooltipVisible, setTooltipVisible] = Hooks.useClickOutsideStateWithSelector(false, '.popover-settings-item');\n const [isIconSelectorVisible, setIsIconSelectorVisible] = Hooks.useClickOutsideState(false, [pagePopoverRef, pagePopoverTargetRef]);\n\n Hooks.useEffectIgnoreFirst(() => {\n if (!wrapperRef.current || !navigationItemRef.current) {\n return;\n }\n if (isActiveItem) {\n const { offsetLeft } = navigationItemRef.current;\n wrapperRef.current.scrollTo({ left: offsetLeft, behavior: 'smooth' });\n }\n }, [isActiveItem]);\n\n const handlePageUpdate = prop => {\n dispatch(ACTION_CREATORS.updatePageAction({\n pageID: id,\n prop\n }));\n };\n\n const handlePageNameChange = newTitle => {\n if (!newTitle) {\n inlineEditorRef.current.contentEditableRef.current.textContent = name;\n return;\n }\n onPageNameChange(id, newTitle);\n };\n\n const handlePageSettingsClick = () => {\n dispatch(ACTION_CREATORS.selectPageAction(id));\n dispatch(ACTION_CREATORS.openRightPanelWithModeAction(RightPanelModes.PAGE_SETTINGS));\n };\n\n const handleInlineEditorFocus = () => {\n const editor = inlineEditorRef?.current?.contentEditableRef?.current;\n if (editor && window.getSelection) {\n // without timeout, selects from 0 to click position\n setTimeout(() => {\n const sel = window.getSelection();\n const range = document.createRange();\n range.selectNodeContents(inlineEditorRef.current.contentEditableRef.current);\n sel.removeAllRanges();\n sel.addRange(range);\n }, 0);\n }\n };\n\n const DragHandle = () => (\n \n \n \n );\n\n const handleItemBlur = e => {\n e.target.scrollLeft = 0;\n };\n\n const showPageNavigation = useRef();\n const hidePageNavigation = !isYes(showPageOnNavigation);\n\n const handlePagePopoverClick = e => {\n e.stopPropagation();\n setTooltipVisible(true);\n setIsIconSelectorVisible(false);\n dispatch(ACTION_CREATORS.setNavigationSettingsPopoverIdAction(id));\n };\n\n const handleNavigationItemClick = () => {\n onClick(id);\n if (selectedPagePopoverId !== false) {\n dispatch(ACTION_CREATORS.setNavigationSettingsPopoverIdAction(false));\n }\n };\n\n const handleOpenAddIcon = () => {\n setIsIconSelectorVisible(true);\n setTooltipVisible(false);\n };\n\n return (\n handleNavigationItemClick())}\n aria-label={t('Page: {pageName}').replace('{pageName}', name)}\n aria-pressed={isActiveItem}\n ref={navigationItemRef}\n hidePageNavigation={hidePageNavigation}\n >\n {!isMobileOrTablet ? (\n <>\n \n setIsIconSelectorVisible(isVisible => !isVisible)}\n >\n {pageIcon ? : }\n \n \n ) : (\n pageIcon && \n )}\n
\n {isActiveItem ? (\n \n ) : name}\n
\n \n {t('Hidden from navigation')}\n
\n handlePageUpdate({ showPageOnNavigation: hidePageNavigation ? 'Yes' : 'No' })} />\n
\n \n )\n )}\n inactiveComponent={(\n
\n )}\n />\n {isMobileOrTablet ? (\n \n \n \n ) : (\n \n \n \n )}\n\n {((isTooltipVisible && selectedPagePopoverId === id) || isIconSelectorVisible) && (\n \n {isTooltipVisible && (\n \n )}\n\n {isIconSelectorVisible && (\n <>\n handlePageUpdate({ showPageIcon: 'Yes', pageIcon: url })}\n onRemove={() => handlePageUpdate({ showPageIcon: 'No', pageIcon: '' })}\n uniqKey=\"pageItem\"\n removeButtonText={t('Remove Icon')}\n resettable={true}\n />\n
\n \n )}\n \n )}\n \n );\n};\n\nNavigationItemRenderer.propTypes = {\n id: oneOfType([number, string]),\n name: string,\n isActiveItem: bool,\n onClick: func,\n onPageNameChange: func,\n DragHandleRenderer: elementType.isRequired,\n SortableDragHandle: elementType.isRequired,\n showPageIcon: string,\n pageIcon: string,\n showPageOnNavigation: string,\n wrapperRef: shape({})\n};\n\nNavigationItemRenderer.defaultProps = {\n id: '',\n name: '',\n isActiveItem: false,\n onClick: f => f,\n onPageNameChange: f => f,\n showPageIcon: 'No',\n pageIcon: '',\n showPageOnNavigation: 'Yes',\n wrapperRef: {}\n};\n\nexport default NavigationItemRenderer;\n","import Styled, { css } from 'styled-components';\n\nconst ScMultiPageNav = Styled.div`\n display: flex;\n justify-content: space-between;\n position: relative;\n bottom: 0;\n z-index: 11;\n height: 64px;\n background-color: #fff;\n align-items: center;\n padding: 0 12px;\n border-top: 1px solid #C9CADD80;\n flex-wrap: nowrap;\n\n @media screen and (max-width: 480px) {\n justify-content: unset;\n }\n\n ${({ isPreviewPanelOpen }) => (isPreviewPanelOpen && css`\n transition: all 0.2s ease;\n `)}\n`;\n\nexport default ScMultiPageNav;\n","import React, { useCallback, useRef } from 'react';\nimport { Hooks, Tooltip } from '@jotforminc/uikit';\nimport { t } from '@jotforminc/translation';\nimport { PageNavigationBar } from '@jotforminc/jotform-common';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { IconPlusCircleFilled, IconGearFilled, IconUserIdCardFilled } from '@jotforminc/svg-icons';\nimport { Button } from '@jotforminc/magnet';\nimport { ScNavBar } from './ScNavBar';\nimport { RightPanelModes } from '../HomePage/constants';\nimport NavigationItemRenderer from './NavigationItemRenderer';\nimport { checkMobileOrTablet, checkHasMobileWidth } from '../../../../utils';\nimport * as ACTION_CREATORS from '../../../../store/actionCreators';\nimport SELECTORS from '../../../../store/selectors';\nimport ScMultiPageNav from './ScMultiPageNav';\n\nconst MultiPageNavigationBar = () => {\n const dispatch = useDispatch();\n const contactInformationTargetRef = useRef(null);\n const navigationSettingsTargetRef = useRef(null);\n const lastInteractedPageID = useSelector(SELECTORS.getLastInteractedPageID);\n const _pages = useSelector(SELECTORS.getPagesWithNames);\n const pages = _pages.filter(page => !page.linkedItemID);\n const placeholderItemRef = useRef();\n const navigationItemWrapperRef = useRef();\n const handlePageSort = useCallback(data => {\n dispatch(ACTION_CREATORS.trackEventAction({ action: 'pageSorted' }));\n dispatch(ACTION_CREATORS.changePageOrderAction(data));\n }, []);\n\n Hooks.useEffectIgnoreFirst(() => {\n if (placeholderItemRef.current) {\n const { offsetLeft } = placeholderItemRef.current;\n navigationItemWrapperRef.current.scrollTo({ left: offsetLeft, behavior: 'smooth' });\n }\n }, [pages]);\n\n const handleNavigationItemClick = useCallback(pageID => {\n dispatch(ACTION_CREATORS.selectPageAction(pageID));\n dispatch(ACTION_CREATORS.setCheckoutFormVisibility(false));\n }, []);\n const isPaymentApp = useSelector(SELECTORS.getIsPaymentApp);\n\n const isPreviewPanelOpen = useSelector(SELECTORS.isPreviewPanelOpenSelector);\n\n const AddNewPage = useCallback(() => (\n
\n dispatch(ACTION_CREATORS.addNewPageAction({ newPageOrder: pages.length + 1 }))}\n data-testid=\"pageNavPanel_addPageButton\"\n colorStyle=\"secondary\"\n startIcon={IconPlusCircleFilled}\n variant=\"outline\"\n aria-label={t('Add a Page')}\n showTextOnly=\"sm\"\n >\n {t('Add Page')}\n \n
\n ), [pages.length]);\n\n const handleOpenPageSettingsPanel = () => dispatch(ACTION_CREATORS.openRightPanelWithModeAction(RightPanelModes.MENU_SETTINGS));\n const handleContactInfoClick = () => {\n dispatch(ACTION_CREATORS.setCheckoutFormVisibility(true));\n dispatch(ACTION_CREATORS.selectPortalItemAction('contactInformationItem'));\n const contactInfoElement = document.querySelector('div[type=\"CONTACT_INFORMATION\"]');\n contactInfoElement?.scrollIntoView({ block: 'center' });\n dispatch(ACTION_CREATORS.openRightPanelWithModeAction(RightPanelModes.CONTACT_INFORMATION_SETTINGS));\n };\n\n const defaultPopoverOptions = {\n placement: 'bottom',\n modifiers: [{ name: 'offset', options: { offset: [0, 10] } }]\n };\n\n const rightBottomPopoverOptions = {\n placement: 'bottom-end',\n modifiers: [{ name: 'offset', options: { offset: [-6, 10] } }]\n };\n\n const PageListContainer = useCallback(props => (\n \n \n
\n {isPaymentApp && (\n <>\n \n {t('Contact Information')}\n \n {checkHasMobileWidth() && (\n \n {t('Contact Information')}\n \n )}\n \n )}\n \n \n {t('Navigation Settings')}\n \n
\n \n ), [isPaymentApp, isPreviewPanelOpen]);\n\n const handlePageNameChange = (pageID, name) => dispatch(ACTION_CREATORS.updatePageAction({ pageID, prop: { name } }));\n\n return (\n \n );\n};\n\nexport default MultiPageNavigationBar;\n","import Styled, { css } from 'styled-components';\nimport { WINDOW_SQUEEZE_VALUE } from '../../../../../constants';\nimport { FEATURE_NAMES } from '../../../../../constants/features';\nimport { isFeatureEnabled } from '../../../../../utils/features/helper';\nimport { getWidth } from '../../../../../utils/styleUtils';\n\nexport const ScMain = Styled.main`\n scroll-behavior: smooth;\n .lpOpen.rpOpen &,\n .lpOpen.previewPanelOpen & {\n padding-left: 200px;\n }\n\n\n @media screen and (min-width: 480px) and (max-width: ${WINDOW_SQUEEZE_VALUE}px ) {\n .lpOpen & { padding-left: 200px; }\n }\n\n @media screen and (max-width: 480px ) {\n .rpOpen & { margin-right: 0; padding-right: 0; }\n .lpOpen & { margin-left: 200px; }\n }\n\n ${({ appBgColor, appBgColorEnd }) => (appBgColor === appBgColorEnd || appBgColor === '') && `background-color: ${appBgColor};`}\n ${({ appBgColor, appBgColorEnd }) => (appBgColor && appBgColorEnd) && `background: linear-gradient(${appBgColor}, ${appBgColorEnd});`}\n ${({ appBgURL }) => appBgURL && `background: url(\"${appBgURL}\") no-repeat center / cover;`}\n\n height: 100%;\n min-height: -webkit-fill-available;\n width: 100%;\n position: absolute;\n display: block;\n transition-property: all;\n transition-duration: .4s;\n transition-timing-function: ease-in-out;\n will-change: margin, padding;\n min-width: ${getWidth()};\n\n @media screen and (max-width: 768px) {\n min-width: ${getWidth('tablet')};\n }\n\n @media screen and (max-width: 480px) {\n min-width: ${getWidth('mobile')};\n }\n\n ${isFeatureEnabled(FEATURE_NAMES.AppFooter) ? css`\n .appStage {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow-y: auto;\n\n &-body {\n flex: 1 0 auto;\n }\n \n &-footer {\n flex-shrink: 0;\n }\n }\n ` : css`\n overflow-y: auto;\n `};\n`;\n","import Styled, { css } from 'styled-components';\nimport ScAppItemWrapper from '../../../../PublicApp/AppItem/ScAppItemWrapper';\nimport { useItemDefaults } from '../../../../../properties';\nimport { ITEM_TYPES } from '../../../../../constants/itemTypes';\n\nconst { itemBorderColor: defaultItemBorderColor } = useItemDefaults(ITEM_TYPES.FORM); // Naked item borders should look like Forms on hover/active etc.\n\nexport const selectableBuilderItem = css`\n .form-dropdown {\n border-color: ${({ itemBorderColor = defaultItemBorderColor }) => itemBorderColor};\n }\n\n [aria-selected=\"true\"].builderItem &, [aria-selected=\"true\"].builderItem &:focus {\n .itemDragHandle {\n opacity: 1;\n }\n\n .description[contenteditable=true][placeholder]:empty:before {\n content: attr(placeholder);\n }\n }\n\n &:focus {\n outline: 1;\n border: 1px solid ${({ itemBorderColor = defaultItemBorderColor }) => itemBorderColor};\n background-color: #f7f7f8;\n }\n`;\n\nconst ScBuilderItemWrapper = Styled(ScAppItemWrapper)`\n\n\n\n ${selectableBuilderItem}\n \n ${({ isDragging }) => (isDragging) && css`\n border-radius: 4px;\n box-shadow: 0px 0px 0px 2px #0087E0;\n `}\n\n ${({ type }) => (type === ITEM_TYPES.BUTTON) && css`\n && .buttonItem {\n &:hover {\n ${({ itemBgColor }) => (itemBgColor) && `background: ${itemBgColor}`}; \n }\n\n &:active {\n transition: .3s background ease;\n ${({ itemBgColor }) => (itemBgColor) && `background: ${itemBgColor}`}; \n }\n }\n `}\n`;\n\nexport default ScBuilderItemWrapper;\n","import Styled, { css } from 'styled-components';\nimport { selectableBuilderItem } from '../BuilderItem/ScBuilderItemWrapper';\nimport { applyAlpha } from '../../../../../utils/styleUtils';\nimport { mainFont } from '../../../../../styles/global';\n\nexport const ScBuilderAppHeaderWrapper = Styled.div`\n position: relative;\n border-radius: 4px;\n ${selectableBuilderItem}\n margin: 0 auto;\n font-family: ${mainFont};\n\n${// Display content editable placeholder with dimmed color\n ({ isSelected, itemFontColor }) => css`\n [contenteditable=true][placeholder]:empty:before {\n ${isSelected ? `\n content: attr(placeholder);\n ${itemFontColor && `color: ${applyAlpha(itemFontColor, 0.5)};`}\n ` : ''}\n }\n `\n}\n\n${({ isSelected }) => !isSelected && css`\n [contenteditable=true]:empty {\n display: none;\n }\n`}\n\n${({ isSelected }) => isSelected && css`\n box-shadow: rgb(214 215 231) 0px 0px 10px 0px;\n\n .appTitle:empty ~ .appDesc {\n margin-top: 4px;\n }\n .appTitle:empty, .appDesc:empty {\n display: inline-block;\n }\n`}\n\n &:hover {\n .imageDragButton {\n opacity: 1;\n pointer-events: auto;\n transition: opacity .4s ease;\n }\n }\n\n .imageDragButton {\n opacity: 0;\n pointer-events: none;\n display: flex;\n position: absolute;\n bottom: 12px;\n left: 12px;\n width: 155px;\n height: 30px;\n background-color: ${applyAlpha('#ffffff', 0.5)};\n border-radius: 4px;\n justify-content: center;\n align-items: center;\n z-index: 2;\n cursor: pointer;\n\n svg {\n color: #23283a;\n width: 16px;\n }\n\n .imageDragButtonText {\n margin-left: 7px;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n color: #23283a;\n }\n\n &:hover {\n background-color: white;\n box-shadow: 0 0 0 2px ${applyAlpha('#CFD5E5', 0.3)};\n transition: background-color,box-shadow .3s ease;\n }\n }\n\n .appCoverCropperActive & {\n z-index: 4;\n opacity: .8;\n pointer-events: none;\n transition: opacity ease .3s;\n\n .appHeader {\n background: #ffffff;\n\n & > * {\n opacity: 0;\n }\n }\n }\n`;\n\nexport const ScImageCropperAppHeader = Styled.div`\n background-color: #fff;\n transition: opacity ease .3s;\n font-family: ${mainFont};\n\n .wrapper {\n position: relative;\n width: 100%;\n border-radius: 4px;\n margin: 0;\n background-color: ${applyAlpha('#ffffff', 0.5)};\n }\n\n .wrapperButtons {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n height: 51px;\n #slider {\n margin-right: 20px;\n }\n }\n border: 1px solid #aeaeae;\n border-radius: 4px;\n\n .wrapper {\n height: 260px;\n }\n`;\n","import Styled, { css } from 'styled-components';\nimport { getWidth } from '../../../../../utils/styleUtils';\n\nexport const responsivenessRules = `\n max-width: ${getWidth()};\n min-width: ${getWidth()};\n\n @media screen and (max-width: 768px) {\n max-width: ${getWidth('tablet')};\n min-width: ${getWidth('tablet')};\n }\n\n @media screen and (max-width: 480px) {\n max-width: ${getWidth('mobile')};\n min-width: ${getWidth('mobile')};\n }\n`;\nexport const ScDashedLineButton = Styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n\n ${({ forAppHeader }) => ((forAppHeader) ? css`\n margin: 28px auto;\n ${responsivenessRules}\n ` : 'margin: 16px auto;')}\n \n ${({ forEditAppHeader }) => ((forEditAppHeader) ? css`\n margin: 0;\n ${responsivenessRules}\n ` : '')}\n\n .dashedLineButton {\n margin: 0 4px;\n height: 24px;\n background-color: transparent;\n color: #6c73a8;\n\n &:hover {\n background-color: #f3f3fd;\n }\n\n svg {\n fill: #6c73a8;\n }\n }\n\n .dashedLine {\n border: 0 none;\n border-top: 1px dashed #c8ceed;\n flex: 1 1 100%;\n }\n`;\n","import React from 'react';\nimport { func, string } from 'prop-types';\nimport { Button } from '@jotforminc/magnet';\nimport { IconPlusSm } from '@jotforminc/svg-icons';\nimport { ScDashedLineButton } from './ScDashedLineButton';\n\nconst DashedLineButton = ({\n onClick, text, forAppHeader, forEditAppHeader, Icon, ...rest\n}) => {\n return (\n \n
\n \n {text}\n \n
\n \n );\n};\n\nDashedLineButton.propTypes = {\n text: string,\n forAppHeader: string,\n forEditAppHeader: string,\n onClick: func,\n Icon: func\n};\n\nDashedLineButton.defaultProps = {\n text: '',\n forAppHeader: '',\n forEditAppHeader: '',\n onClick: f => f,\n Icon: IconPlusSm\n};\n\nexport default DashedLineButton;\n","import React, {\n forwardRef, useCallback, useEffect, useState\n} from 'react';\nimport { number, func } from 'prop-types';\nimport { Hooks } from '@jotforminc/uikit';\nimport { t } from '@jotforminc/translation';\nimport './style.scss';\nimport { Button } from '@jotforminc/magnet';\n\nimport { IconMinus, IconPlus } from '@jotforminc/svg-icons';\n\nexport const DefaultCropperWrapper = forwardRef(({ ...props }, ref) =>
);\n\nexport const DefaultActionButtonWrapper = props =>
;\n\nexport const DefaultSaveButton = props => (\n \n {t('Save')}\n \n);\n\nexport const DefaultCloseButton = props => (\n \n {t('Cancel')}\n \n);\nexport const DefaultZoomSlider = ({\n value: initialValue, min, max, step, onChange\n}) => {\n const [val, setVal] = useState(initialValue);\n\n Hooks.useEffectIgnoreFirst(() => {\n setVal(initialValue);\n }, [initialValue]);\n\n const handleDecrement = useCallback(() => {\n const decremented = parseFloat(val) - parseFloat(step);\n setVal(Math.max(decremented, min));\n }, [step, val, min]);\n\n const handleIncrement = useCallback(() => {\n const incremented = parseFloat(val) + parseFloat(step);\n setVal(Math.min(incremented, max));\n }, [step, val, max]);\n\n const handleChange = useCallback(e => onChange(parseFloat(e.target.value)), []);\n\n useEffect(() => {\n onChange(val);\n }, [val]);\n\n return (\n
\n
\n \n
\n \n
\n \n
\n
\n );\n};\nDefaultZoomSlider.propTypes = {\n value: number.isRequired,\n min: number.isRequired,\n max: number.isRequired,\n step: number,\n onChange: func\n};\n\nDefaultZoomSlider.defaultProps = {\n step: 0.4,\n onChange: f => f\n};\n","import {\n elementType, func, number, shape, string, bool\n} from 'prop-types';\nimport React, {\n useCallback, useEffect, useMemo, useRef, useState, forwardRef, useImperativeHandle\n} from 'react';\n\nimport Cropper from 'react-easy-crop';\nimport { Hooks } from '@jotforminc/uikit';\nimport { useDebounce } from '@jotforminc/hooks';\nimport {\n DefaultActionButtonWrapper, DefaultCloseButton, DefaultCropperWrapper, DefaultSaveButton, DefaultZoomSlider\n} from './defaults';\n\nconst ImageCropper = forwardRef(({\n Wrapper,\n CropperWrapper,\n ActionButtonsWrapper,\n SaveButtonRenderer,\n CloseButtonRenderer,\n ZoomSliderRenderer,\n cropHeight,\n cropWidth,\n initialCropInfo,\n onClose,\n onSave,\n image,\n disableZoom,\n useFullWidthImage\n}, ref) => {\n const cropperRef = useRef();\n\n const hasInitialCropInfo = !!Object.keys(initialCropInfo).length;\n\n const [cropperReady, setCropperReady] = useState(false);\n const [mediaLoaded, setMediaLoaded] = useState(false);\n const [cropInfo, setCropInfo] = useState(hasInitialCropInfo ? initialCropInfo : { x: 0, y: 0, zoom: 1 });\n const [minZoom, setMinZoom] = useState(1);\n const [cropSize, setCropSize] = useState({ width: cropWidth, height: cropHeight });\n const [fullWidthYPerc, setFullWidthYPerc] = useState(hasInitialCropInfo ? initialCropInfo.fullWidthYPercentage : 0);\n\n const { rawCrop, rawZoom } = useMemo(() => ({\n rawCrop: { x: cropInfo.x, y: cropInfo.y },\n rawZoom: cropInfo.zoom\n }), [cropInfo]);\n\n useImperativeHandle(ref, () => ({\n cropSize,\n cropperRef\n }));\n\n const handleMediaLoaded = useCallback(mediaSize => {\n const { current } = cropperRef;\n if (current) {\n setMediaLoaded(true);\n }\n const initialCropAreaWidth = cropWidth || cropSize.width;\n const initialCropAreaHeight = cropHeight || cropSize.height;\n const cropAreaWidth = initialCropAreaWidth || current?.clientWidth;\n const cropAreaHeight = initialCropAreaHeight || current?.clientHeight;\n const {\n width: mediaWidth, height: mediaHeight, naturalWidth, naturalHeight\n } = mediaSize;\n const useNaturalSizes = useFullWidthImage && !hasInitialCropInfo && cropAreaWidth > naturalWidth && cropAreaHeight > naturalHeight;\n const mWidth = useNaturalSizes ? naturalWidth : mediaWidth;\n const mHeight = useNaturalSizes ? naturalHeight : mediaHeight;\n\n const zoomToFitRatio = mediaHeight < cropHeight ? cropAreaHeight / mHeight : cropAreaWidth / mWidth;\n\n setMinZoom(zoomToFitRatio);\n if (!hasInitialCropInfo) {\n setCropInfo({ ...cropInfo, zoom: zoomToFitRatio });\n }\n }, [cropWidth, cropHeight, hasInitialCropInfo, cropInfo, cropperRef]);\n\n const maxZoom = useMemo(() => { return minZoom * 12; }, [minZoom]);\n\n const isExist = val => typeof val !== 'undefined' && !Number.isNaN(val);\n\n const handleCropChange = cropData => {\n if (isExist(cropData.x) && isExist(cropData.y)) {\n setCropInfo({ ...cropInfo, ...cropData });\n }\n };\n\n const handleZoomChange = zoomData => {\n if (zoomData) {\n setCropInfo({ ...cropInfo, zoom: zoomData });\n }\n };\n\n const handleSliderValueChange = zoomVal => {\n setCropInfo(currCropInfo => ({ ...currCropInfo, zoom: zoomVal }));\n };\n\n const handleOnClose = () => onClose();\n\n const handleOnSave = () => {\n onSave(cropInfo, fullWidthYPerc);\n handleOnClose();\n };\n\n const updateSize = useDebounce(() => {\n const { current } = cropperRef;\n if (current && ((current.clientWidth !== cropSize.width) || (current.clientHeight !== cropSize.height))) {\n setCropSize({\n width: current.clientWidth,\n height: current.clientHeight\n });\n }\n }, 150);\n\n const handleCropComplete = () => {\n if (!cropWidth && !cropHeight) {\n updateSize();\n }\n };\n\n const handleCropAreaChange = croppedArea => {\n if (croppedArea && isExist(croppedArea.y)) {\n setFullWidthYPerc(croppedArea.y);\n }\n };\n\n useEffect(() => {\n if (!cropperReady) { // large media may take a little time\n setCropperReady(true);\n }\n }, [minZoom]);\n\n Hooks.useEffectIgnoreFirst(() => {\n setCropInfo(initialCropInfo);\n }, [initialCropInfo]);\n\n useEffect(() => {\n handleCropComplete();\n }, []);\n\n const isFullWidth = useFullWidthImage && isExist(fullWidthYPerc);\n\n return (\n \n \n \n \n \n {\n mediaLoaded && !disableZoom && !useFullWidthImage && (\n \n )\n }\n \n \n \n \n );\n});\n\nImageCropper.propTypes = {\n Wrapper: elementType,\n CropperWrapper: elementType,\n ActionButtonsWrapper: elementType,\n SaveButtonRenderer: elementType,\n CloseButtonRenderer: elementType,\n ZoomSliderRenderer: elementType,\n cropWidth: number,\n cropHeight: number,\n initialCropInfo: shape({}),\n onClose: func,\n onSave: func,\n image: string,\n disableZoom: bool,\n useFullWidthImage: bool\n};\n\nImageCropper.defaultProps = {\n Wrapper: props =>
,\n CropperWrapper: DefaultCropperWrapper,\n ActionButtonsWrapper: DefaultActionButtonWrapper,\n SaveButtonRenderer: DefaultSaveButton,\n CloseButtonRenderer: DefaultCloseButton,\n ZoomSliderRenderer: DefaultZoomSlider,\n cropWidth: undefined,\n cropHeight: undefined,\n initialCropInfo: {},\n onClose: f => f,\n onSave: f => f,\n image: '',\n disableZoom: false,\n useFullWidthImage: false\n};\n\nexport default ImageCropper;\n","import React, { useCallback, useMemo } from 'react';\nimport { ImageCropper as LibImageCropper } from '@jotforminc/image-cropper';\nimport { safeJSONParse } from '@jotforminc/utils';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useDebounce } from '@jotforminc/hooks';\nimport SELECTORS from '../../../../../../store/selectors';\nimport * as ACTION_CREATORS from '../../../../../../store/actionCreators';\nimport { updatePortalAction } from '../../../../../../store/actionCreators';\nimport { ScImageCropperAppHeader } from '../ScBuilderAppHeaderWrapper';\n\nconst ImageCropperAppHeader = () => {\n const dispatch = useDispatch();\n\n const appHeaderBgCropInfo = useSelector(SELECTORS.getAppHeaderBgCropInfo);\n const appHeaderBgURL = useSelector(SELECTORS.getAppHeaderBgURL);\n\n const handleSaveButtonClick = useDebounce(useCallback(cropInfo => {\n dispatch(updatePortalAction({ appHeaderBgCropInfo: JSON.stringify(cropInfo) }));\n }, []), 200);\n\n const closeCropper = () => dispatch(ACTION_CREATORS.toggleImageCropState('appHeaderBgURL', false));\n\n const initialCropInfo = useMemo(() => safeJSONParse(appHeaderBgCropInfo), [appHeaderBgCropInfo]);\n\n return (\n \n );\n};\n\nexport default ImageCropperAppHeader;\n","import Styled from 'styled-components';\nimport { FEATURE_NAMES } from '../../../constants/features';\nimport { isFeatureEnabled } from '../../../utils/features/helper';\n\nexport const ScBuildHead = Styled.div`\n margin-bottom: 3em;\n\n div { font-size: 1.5em; font-weight: 700; }\n p { color: #747484; font-size: 1.125em; }\n\n div + p { margin-top: 6px; }\n\n @media screen and (max-width: 480px) {\n p { font-size: 1em; }\n div + p { margin-top: 9px; }\n }\n`;\n\nexport const ScAppInfoEdit = Styled.div`\n ${isFeatureEnabled(FEATURE_NAMES.AppLogoSize) ? 'display: block;' : 'display: flex;'}\n\n .labelish { font-weight: 700; font-size: 1.125em; display: block; }\n .labelish + input { margin-top: .375em; }\n .labelish + div { margin-top .375em; }\n input + .labelish { margin-top: 1.5em; }\n\n input { display: block; width: 100%; font-size: 1.125em; }\n\n .appInfo { flex: 1 1 auto; padding: 2em 0 0 2.5em; }\n\n .appLogo { flex: 0 0 230px; }\n\n p {\n color: #747484;\n font-size: 1.125em;\n margin: 0.5em 0 0.8em;\n }\n\n .appLogo-cont {\n position: relative;\n ${isFeatureEnabled(FEATURE_NAMES.AppLogoSize) ? `\n width: unset;\n height: unset;\n border-radius: 0;\n ` : `\n width: 100%;\n height: 80px;\n border-radius: 14px;\n\n @media screen and (max-width: 480px) {\n height: 80px;\n }\n `}\n display: flex;\n align-items: center;\n justify-content: center;\n &:focus { outline: none; }\n\n &:hover, &:focus {\n box-shadow: 0 0 0 3px rgba(69, 115, 227, 0.3);\n border-color: #4573e3;\n }\n }\n`;\n","import React, { useCallback } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport AppLogo from '../../../../../../components/AppLogo';\nimport SELECTORS from '../../../../../../store/selectors';\nimport * as ACTION_CREATORS from '../../../../../../store/actionCreators';\nimport { RightPanelModes } from '../../constants';\nimport { ScAppInfoEdit } from '../../../../styles/scBuilder';\nimport { useAppDefaults } from '../../../../../../properties';\n\nconst BuilderAppHeaderLogo = () => {\n const dispatch = useDispatch();\n const { logoURL: defaultLogoURL } = useAppDefaults();\n const { logoURL: _logoURL, ...rest } = useSelector(SELECTORS.getLogoProperties, shallowEqual);\n const isSelected = useSelector(SELECTORS.getIsAppHeaderSelected);\n const placeholder = 'https://cdn.jotfor.ms/assets/img/portal/placeholderAppLogo.png';\n\n const logoURL = isSelected && !_logoURL ? placeholder : _logoURL;\n\n const handleLogoPropertyEditClick = useCallback(e => {\n e.stopPropagation();\n dispatch(ACTION_CREATORS.openRightPanelWithModeAction(RightPanelModes.APP_LOGO));\n }, []);\n\n return (\n \n f}\n className=\"appLogo-cont\"\n data-testid=\"appLogo-cont\"\n id=\"appLogo-container\"\n role=\"button\"\n tabIndex=\"0\"\n >\n {_logoURL && }\n
\n \n );\n};\n\nexport default BuilderAppHeaderLogo;\n","import React, { useMemo, useCallback } from 'react';\nimport { t } from '@jotforminc/translation';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { IconArrows4WayFromCenter } from '@jotforminc/svg-icons';\nimport { safeJSONParse } from '@jotforminc/utils';\nimport AppHeader from '../../../../../components/Items/AppHeader';\nimport { ScBuilderAppHeaderWrapper } from './ScBuilderAppHeaderWrapper';\nimport { actAsButton, isYes } from '../../../../../utils';\nimport ScAppHeaderWrapper from '../../../../../components/Items/AppHeader/ScAppHeaderWrapper';\nimport DashedLineButton from '../DashedLineButton';\nimport SELECTORS from '../../../../../store/selectors';\nimport * as ACTION_CREATORS from '../../../../../store/actionCreators';\nimport { RightPanelModes } from '../constants';\nimport ImageCropperAppHeader from './ImageCropperAppHeader';\nimport { toggleImageCropState } from '../../../../../store/actionCreators';\nimport BuilderAppHeaderLogo from './BuilderAppHeaderLogo';\nimport EditableTextRenderer from '../../../../../components/EditableTextRenderer';\nimport ScAppHeader from '../../../../../components/Items/AppHeader/ScAppHeader';\n\nconst BuilderAppHeader = () => {\n const dispatch = useDispatch();\n const isSelected = useSelector(SELECTORS.getIsAppHeaderSelected);\n const shouldShowEditAppHeader = useSelector(SELECTORS.getShouldShowEditAppHeader);\n const imageCropState = useSelector(SELECTORS.getAppHeaderCropState);\n const appFontColor = useSelector(SELECTORS.getAppFontColor);\n const openAppHeader = useSelector(SELECTORS.getOpenAppHeader);\n const showAppHeader = useSelector(SELECTORS.getShowAppHeader);\n\n const logoProperties = useSelector(SELECTORS.getLogoProperties, shallowEqual);\n const appFontFamily = useSelector(SELECTORS.getAppFontFamily);\n const {\n appHeaderBgColor, appHeaderBgURL, appHeaderBgCropInfo, appHeaderTextAlignment\n } = useSelector(SELECTORS.getAppHeaderProperties, shallowEqual);\n const parsedCropInfo = useMemo(() => safeJSONParse(appHeaderBgCropInfo), [appHeaderBgCropInfo]);\n const { appLogoSize } = logoProperties;\n\n const onOpenCropper = useCallback(e => {\n e.stopPropagation();\n dispatch(toggleImageCropState('appHeaderBgURL', true));\n }, []);\n\n const handleShowHeaderButtonClick = e => {\n e.stopPropagation();\n dispatch(ACTION_CREATORS.updatePortalAction({ openAppHeader: 'Yes' }));\n dispatch(ACTION_CREATORS.openRightPanelWithModeAction(RightPanelModes.APP_HEADER));\n };\n\n const handleAppHeaderClick = () => {\n dispatch(ACTION_CREATORS.openRightPanelWithModeAction(RightPanelModes.APP_STYLE));\n };\n\n const isAppHeaderStylesActive = useMemo(() => isYes(showAppHeader), [showAppHeader]);\n\n const builderAppHeader = useMemo(() => {\n switch (true) {\n case !!(imageCropState && appHeaderBgURL):\n return (\n \n );\n case !isYes(openAppHeader):\n return (\n \n );\n case !isSelected && shouldShowEditAppHeader:\n return (\n \n \n \n );\n default:\n return (\n \n {isAppHeaderStylesActive && appHeaderBgURL && (\n
\n \n {t('Reposition image')}\n
\n )}\n \n \n );\n }\n }, [isSelected, imageCropState, openAppHeader, appHeaderBgURL, appFontColor, shouldShowEditAppHeader]);\n\n return (\n \n {builderAppHeader}\n \n );\n};\n\nexport default BuilderAppHeader;\n","import Styled from 'styled-components';\n\nexport const ScBuilderPortalBrandingFooter = Styled.div`\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n margin-top: 28px;\n position: relative;\n flex-direction: column;\n\n .removeBrandingButton {\n color: #6F76A7;\n font-weight: 500;\n font-size: 13px;\n padding: 5px;\n text-align: center;\n text-transform: capitalize;\n transition: .3s background-color ease;\n margin-bottom: 8px;\n margin-left: auto;\n border-radius: 2px;\n\n &:hover {\n background-color: #0A15511A;\n }\n }\n\n .removeBrandingTooltip {\n background-color: #FFFFFF;\n font-size: 14px;\n padding: 8px;\n border-radius: 4px;\n z-index: 2;\n display: flex;\n flex-direction: column;\n box-shadow: 0px 0px 15px 0px #0000001A;\n\n button {\n padding: 0;\n }\n\n div[data-popper-arrow=\"true\"] {\n top: -5px;\n\n &::before {\n box-shadow: none;\n border: none;\n }\n }\n\n &-text {\n font-weight: 500;\n }\n\n }\n\n .jfBrandingFooter {\n position: static;\n cursor: text;\n user-select: text\n }\n\n @media screen and (max-width: 768px) {\n padding: 0 8px 8px 8px;\n }\n`;\n","import React, { useCallback, useMemo, useRef } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { t, translationRenderer } from '@jotforminc/translation';\nimport { Hooks, Popover } from '@jotforminc/uikit';\nimport { Button } from '@jotforminc/magnet';\nimport PortalBrandingFooter from '../../../../../components/PortalBrandingFooter';\nimport ScArrow from '../../../../PublicApp/FormItem/InlineCtxMenu/ScArrow';\nimport { isUserWhiteLabeled } from '../../../../../utils';\nimport { brandingButtonClickAction, trackEventAction, updateUserSettings } from '../../../../../store/actionCreators';\nimport SELECTORS from '../../../../../store/selectors';\nimport { ScBuilderPortalBrandingFooter } from './ScBuilderPortalBrandingFooter';\n\nconst BuilderPortalBrandingFooter = () => {\n const dispatch = useDispatch();\n const user = useSelector(SELECTORS.getUser);\n\n const [showBranding, isPaidUser] = useMemo(() => isUserWhiteLabeled(user), [user]);\n const [isTooltipVisible, setTooltipVisible] = Hooks.useClickOutsideStateWithSelector(false, '.removeBrandingButton, .removeBrandingTooltip');\n\n const handleUpgradeAccountLinkClick = useCallback(() => {\n dispatch(brandingButtonClickAction());\n dispatch(trackEventAction({ action: 'upgradeAccountLinkClicked' }));\n });\n\n const handleRemoveJotformPowered = useCallback(() => {\n dispatch(updateUserSettings({ showJotFormPowered: 0 }));\n dispatch(trackEventAction({ action: 'showJotFormPoweredDisabled' }));\n }, []);\n\n const handleRemoveButtonClick = useCallback(() => {\n if (isPaidUser) {\n handleRemoveJotformPowered();\n } else {\n setTooltipVisible(true);\n dispatch(trackEventAction({ action: 'removeBrandingTooltipOpened' }));\n }\n }, [setTooltipVisible, isPaidUser, handleRemoveJotformPowered]);\n\n const removeBrandingPopoverRef = useRef();\n const removeBrandingButtonPopoverRef = useRef();\n\n return (\n \n {showBranding && (\n \n {t('Remove Branding')}\n \n )}\n \n {isTooltipVisible && (\n (\n \n \n {t('Remove Jotform Branding?')}\n
\n {translationRenderer('[1[Upgrade your account]] to remove it.')({\n renderer1: str => {\n return (\n \n {` ${str}`}\n \n );\n }\n })}\n
\n \n )\n )}\n
\n );\n};\n\nexport default BuilderPortalBrandingFooter;\n","import Styled from 'styled-components';\n\nexport const ScNewItemToolbox = Styled.div`\n position: absolute;\n height: 100%;\n top: 0;\n z-index: 4;\n \n .toolbox-icons {\n display: flex;\n align-items: flex-start;\n flex-direction: column;\n gap: 5px;\n position: sticky;\n top: 50%;\n right: 0;\n\n .app-loading-spinner {\n padding: 0;\n width: 100%;\n + span {\n display: none;\n }\n }\n\n button {\n max-width: 40px;\n overflow: visible;\n position: relative;\n justify-content: flex-start;\n\n > span {\n overflow: hidden;\n }\n\n &:hover {\n max-width: 200px;\n transition: max-width .5s;\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n\n &.forEditForm {\n background-color: #FF6100;\n &:hover { background-color: #FF7B1A; }\n &:active { background-color: #E64800; }\n }\n\n &.forEditReport {\n background-color: #344067;\n &:hover { background-color: #415181; }\n &:active { background-color: #293457; }\n }\n\n &.forEditTable {\n background-color: #0D953B;\n &:hover { background-color: #11AE47; }\n &:active { background-color: #0D923A; }\n }\n\n &.forSettings, &.forEdit, &.forProductList, &.forDonationSettings {\n background-color: #0099FF;\n &:hover { background-color: #1AB3FF; }\n &:active { background-color: #0080E6; }\n }\n\n &.forContactInformationProperties, &.forViewContactInformation {\n background-color: #6C73A8;\n }\n\n &.forViewDetailPage {\n background-color: #9c4dd3;\n }\n \n &.forEditList {\n background-color: #0D953B;\n &:hover { background-color: #11AE47; }\n &:active { background-color: #0D923A; }\n }\n\n &.forDelete {\n background-color: #D3381E;\n &:hover { background-color: #ED5238; }\n &:active { background-color: #BA1F05; }\n }\n\n &.forDone {\n background-color: #78BB07;\n &:hover { background-color: #92D521; }\n &:active { background-color: #5FA200; }\n }\n\n &.forOpenLink {\n background-color: #6F76A7;\n &:hover { background-color: #8990C1; }\n &:active { background-color: #565D8E; }\n }\n\n &.forMoveDown, &.forMoveUp {\n background-color: #0A1551;\n &:hover { background-color: #242F6B; }\n &:active { background-color: #000038; }\n }\n\n &.forProductList {\n background-color: #6F76A7;\n &:hover { background-color: #7D84B0; }\n &:active { background-color: #5F669B; }\n }\n\n &.forEditPayment {\n background-color: #78BB07;\n &:hover { background-color: #8CD908; }\n &:active { background-color: #6CA806; }\n }\n\n &.forEditSign {\n background-color: #78BB07;\n &:hover { background-color: #8CD908; }\n &:active { background-color: #6CA806; }\n\n // Sign Icon is left aligned\n .icon {\n svg {\n position: absolute;\n left: 12px;\n }\n }\n }\n }\n\n @media screen and (max-width: 600px) {\n flex-direction: row;\n }\n\n @media screen and (min-width: 480px) and (max-width: 1200px) {\n .rpOpen &, .lpOpen & {\n flex-direction: row;\n }\n }\n\n @media screen and (max-width: 600px) {\n left: 50%;\n bottom: 0;\n \n top: calc(100% + 4px);\n right: unset;\n transform: translateX(-50%);\n }\n\n @media screen and (min-width: 480px) and (max-width: 1200px) {\n .rpOpen &, .lpOpen & {\n left: 50%;\n bottom: 0;\n top: calc(100% + 4px);\n right: unset;\n transform: translateX(-50%);\n }\n }\n }\n`;\n\nexport const ScItemToolboxWrapper = Styled.div`\n position: absolute;\n top: 50%;\n right: 0;\n display: flex;\n transform: translate(140%, -50%);\n z-index: 4;\n\n @media screen and (max-width: 600px) {\n left: 50%;\n bottom: 0;\n top: unset;\n right: unset;\n transform: translateX(-50%);\n }\n\n @media screen and (min-width: 480px) and (max-width: 1200px) {\n .rpOpen &, .lpOpen & {\n left: 50%;\n bottom: 0;\n top: unset;\n right: unset;\n transform: translateX(-50%);\n }\n }\n`;\n\nexport const ScItemToolbox = Styled.div`\n background-color: #5e74e6;\n border-radius: 2px;\n z-index: 1;\n display: flex;\n align-items: center;\n flex-direction: column;\n\n span {\n display: flex;\n justify-content: center;\n cursor: pointer;\n\n svg {\n margin: 6px;\n }\n }\n\n @keyframes slideInFromLeft {\n 0% {\n transform: translateX(-100%);\n opacity: 0;\n }\n 100% {\n transform: translateX(0);\n opacity: 1;\n }\n }\n\n @media screen and (max-width: 600px) {\n flex-direction: row;\n }\n\n @media screen and (min-width: 480px) and (max-width: 1200px) {\n .rpOpen &, .lpOpen & {\n flex-direction: row;\n }\n }\n`;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport cn from 'classnames';\nimport Styled from 'styled-components';\nimport { string } from 'prop-types';\nimport { IconInfo } from '@jotforminc/svg-icons';\nimport SELECTORS from '../../../../store/selectors';\n\nconst ScWarningBadge = Styled.div`\ndisplay: flex;\nalign-items: center;\njustify-content: center;\nposition: absolute;\ntop: -1px;\nleft: -4px;\nmin-width: 18px;\nheight: 18px;\ncolor: #fff;\nborder-radius: 99px;\npadding: 4px;\nz-index: 2;\n\n.iconWarning {\n width: 16px;\n height: 16px;\n border-radius: 50%;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n background-color: #D11F42;\n color: #fff;\n}\n\n&.not-configured {\n svg.iconWarning {\n background-color: #D11F42;\n }\n\n &:after, &:before {\n background-color: #D11F42;\n }\n}\n\n&.test-mode {\n svg.iconWarning {\n background-color: #FFB629;\n }\n\n &:after, &:before {\n background-color: #FFB629;\n }\n}\n\n&.stage {\n left: unset;\n right: -5px;\n\n .warningIcon { width: 14px; }\n\n &:after, &:before { display : none; }\n}\n\n@keyframes pulseAnim {\n 0% { transform: scale(1); }\n 25% { opacity: 0.4; }\n 100% {\n transform: scale(1.5);\n opacity: 0;\n }\n}\n\n&:after, &:before {\n content: \"\";\n display: inline-block;\n width: 18px;\n height: 18px;\n position: absolute;\n left: -3; top: 0;\n border-radius: 50%;\n animation: pulseAnim 2s infinite;\n pointer-events: none;\n z-index: -1;\n}\n\n&:after { animation-delay: .54s; }\n`;\n\nconst PaymentSettingsWarningIcon = ({ className }) => {\n const {\n showErrorIcon,\n erroredClassname\n } = useSelector(SELECTORS.getPaymentErrors);\n\n return showErrorIcon && (\n \n \n \n );\n};\n\nPaymentSettingsWarningIcon.propTypes = {\n className: string\n};\n\nPaymentSettingsWarningIcon.defaultProps = {\n className: ''\n};\n\nexport default PaymentSettingsWarningIcon;\n","import React, { useCallback, useMemo } from 'react';\nimport {\n arrayOf, func, number, oneOfType, shape, string\n} from 'prop-types';\nimport { Utils } from '@jotforminc/uikit';\nimport { t } from '@jotforminc/translation';\nimport {\n IconChevronDown, IconChevronUp, IconPencilFilled, IconCheck,\n IconPencilToSquare, IconTrashFilled,\n IconArrowUpRightFromSquareSm, IconGearFilled,\n IconFloppyDisk, IconProductSignFilled,\n IconProductReportBuilderFilled, IconProductTablesFilled, IconCreditCardFilled,\n IconListBullet, IconEyeFilled, IconProductPagesFilled\n} from '@jotforminc/svg-icons';\nimport { Button } from '@jotforminc/magnet';\nimport { ScNewItemToolbox } from './ScItemToolbox';\nimport PaymentSettingsWarningIcon from '../PaymentSettingsWarningIcon';\nimport { Loading } from '../../../../components/Loading';\n\nconst TOOLBOX_ICON_MAPPER = {\n IconEdit: IconPencilToSquare,\n IconFloppyDisk: IconFloppyDisk,\n IconTrash: IconTrashFilled,\n IconGear: IconGearFilled,\n IconEditForm: IconPencilFilled,\n IconEditReport: IconProductReportBuilderFilled,\n IconEditTable: IconProductTablesFilled,\n IconEditSign: IconProductSignFilled,\n IconDone: IconCheck,\n IconOpenLink: IconArrowUpRightFromSquareSm,\n IconUp: IconChevronUp,\n IconDown: IconChevronDown,\n IconProductList: IconListBullet,\n IconEditPayment: IconCreditCardFilled,\n DonationSettings: IconGearFilled,\n IconView: IconEyeFilled,\n IconDetailsPage: IconProductPagesFilled\n};\n\nconst TOOLBOX_CLASSNAME_SUFFIX_MAPPER = {\n editIcon: 'Edit',\n saveIcon: 'Save',\n deleteIcon: 'Delete',\n settingsIcon: 'Settings',\n editFormIcon: 'EditForm',\n editReportIcon: 'EditReport',\n editTableIcon: 'EditTable',\n editSignIcon: 'EditSign',\n doneIcon: 'Done',\n openLinkIcon: 'OpenLink',\n upIcon: 'MoveUp',\n downIcon: 'MoveDown',\n productList: 'ProductList',\n editPayment: 'EditPayment',\n editDonationPayment: 'EditPayment',\n donationSettings: 'DonationSettings',\n contactInformationProperties: 'ContactInformationProperties',\n viewContactInformation: 'ViewContactInformation',\n viewDetailPage: 'ViewDetailPage',\n editList: 'EditList'\n};\n\nconst TOOLBOX_TITLE_MAPPER = {\n editIcon: t('Edit Text'),\n saveIcon: t('Save'),\n deleteIcon: t('Delete'),\n settingsIcon: t('Properties'),\n editFormIcon: t('Edit Form'),\n editReportIcon: t('Edit Report'),\n editSignIcon: t('Edit Sign Document'),\n editTableIcon: t('View Table'),\n doneIcon: t('Done'),\n openLinkIcon: 'Open Link',\n upIcon: t('Move Up'),\n downIcon: t('Move Down'),\n productList: t('Products'),\n editPayment: t('Store Properties'),\n editDonationPayment: t('Payment Properties'),\n donationSettings: t('Donation Box Properties'),\n contactInformationProperties: t('Contact Information Properties'),\n viewContactInformation: 'View Contact Information',\n viewDetailPage: t('Detail Page'),\n editList: t('Edit List')\n};\n\nconst TOOLBOX_SUFFIX_MARKUP_MAPPER = {\n editPayment: PaymentSettingsWarningIcon,\n editDonationPayment: PaymentSettingsWarningIcon\n};\n\nconst ItemToolbox = ({ items, elementID }) => {\n const handleWrapperClick = e => e.stopPropagation();\n\n const generateItem = useCallback(item => {\n const { isVisible = true } = item;\n\n if (!isVisible) {\n return null;\n }\n\n const SuffixMarkup = TOOLBOX_SUFFIX_MARKUP_MAPPER[item.id];\n const isLoading = item?.getIsLoading?.();\n\n return (\n (Utils.isPressedKeyEnter(e) && item.onClick())}\n title={t(TOOLBOX_TITLE_MAPPER[item.id])}\n aria-label={t(TOOLBOX_TITLE_MAPPER[item.id])}\n className={`bare for${TOOLBOX_CLASSNAME_SUFFIX_MAPPER[item.id]}`}\n rounded\n showTextOnHover={{\n base: !SuffixMarkup,\n sm: false\n }}\n showTextOnly=\"sm\"\n startIcon={!isLoading ? TOOLBOX_ICON_MAPPER[item.icon] : Loading}\n data-fs-toolbox={TOOLBOX_TITLE_MAPPER[item.id]}\n >\n\n
\n {t(TOOLBOX_TITLE_MAPPER[item.id])}\n
\n {SuffixMarkup && }\n \n );\n }, [elementID]);\n\n const Icons = useMemo(() => () => {\n return (\n items.map(item => generateItem(item))\n );\n }, [items]);\n return (\n \n
\n \n
\n \n );\n};\n\nItemToolbox.propTypes = {\n items: arrayOf(shape({\n id: string,\n icon: string,\n onClick: func\n })),\n elementID: oneOfType([string, number])\n};\n\nItemToolbox.defaultProps = {\n items: [],\n elementID: ''\n};\n\nexport default ItemToolbox;\n","import React, { useMemo } from 'react';\nimport {\n func, bool, string, number, oneOfType, shape, object\n} from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\nimport { useDispatch, useSelector } from 'react-redux';\nimport ItemToolbox from '../../ItemToolbox/ItemToolbox';\nimport { ITEM_TYPES } from '../../../../../constants/itemTypes';\nimport { BUTTON_ROLE_TYPES } from '../RightPanel/ButtonActions/buttonRoleTypes';\nimport { FEATURE_NAMES } from '../../../../../constants/features';\nimport { isFeatureEnabled } from '../../../../../utils/features/helper';\nimport { openRightPanelWithModeAction, trackEventAction } from '../../../../../store/actionCreators';\nimport { RightPanelModes } from '../constants';\nimport SELECTORS from '../../../../../store/selectors';\nimport * as ACTION_CREATORS from '../../../../../store/actionCreators';\nimport { MODALS } from '../../../../../constants/modals';\nimport ActionHelper from '../../../../../utils/ActionsHelper';\nimport { DS_ITEM_LOAD_TYPES } from '../../../../../store/reducers/dataSource/constants';\n\nconst BuilderItemToolbox = ({\n isEditMode, type, itemInfo, resourceItemEditClick, paragraphItemEditClick,\n isSelected, onItemSettingsClick, onItemDeleteClick, openLinkClick, isLinkItemURLEmpty,\n onMoveUpClick, onMoveDownClick, canMoveDown, canMoveUp, elementID, canOpenLink, isDeletable, resourceItemEditClickList, scrollToDetailPage,\n detailPage\n}) => {\n const dispatch = useDispatch();\n const canEditReport = (useSelector(SELECTORS.getUserPermission('editReport')) || !itemInfo.isTeamAsset) && itemInfo.resourceSubType === 'reports';\n\n const toolboxItems = useMemo(() => {\n const orderButtons = [];\n if (canMoveUp) {\n orderButtons.push({\n key: 'upIcon',\n id: 'upIcon',\n icon: 'IconUp',\n onClick: onMoveUpClick\n });\n }\n if (canMoveDown) {\n orderButtons.push({\n key: 'downIcon',\n id: 'downIcon',\n icon: 'IconDown',\n onClick: onMoveDownClick\n });\n }\n\n const settingsIcon = {\n key: 'settingsIcon',\n id: 'settingsIcon',\n icon: 'IconGear',\n onClick: onItemSettingsClick\n };\n const productListSettings = {\n key: 'productList',\n id: 'productList',\n icon: 'IconProductList',\n onClick: onItemSettingsClick\n };\n const editDonationPayment = {\n key: 'editDonationPayment',\n id: 'editDonationPayment',\n icon: 'IconEditPayment',\n onClick: () => {\n dispatch(openRightPanelWithModeAction(RightPanelModes.DONATION_PAYMENT_SETTINGS));\n dispatch(trackEventAction({ action: 'donationPaymentPropertiesButtonClicked' }));\n }\n };\n const editPayment = {\n key: 'editPayment',\n id: 'editPayment',\n icon: 'IconEditPayment',\n onClick: () => dispatch(openRightPanelWithModeAction(RightPanelModes.PAYMENT_SETTINGS))\n };\n const deleteIcon = {\n key: 'deleteIcon',\n id: 'deleteIcon',\n icon: 'IconTrash',\n onClick: onItemDeleteClick\n };\n\n const donationSettingsIcon = {\n key: 'donationSettings',\n id: 'donationSettings',\n icon: 'DonationSettings',\n onClick: onItemSettingsClick\n };\n\n const contactInformationPropertiesIcon = {\n key: 'contactInformationProperties',\n id: 'contactInformationProperties',\n icon: 'IconGear',\n onClick: onItemSettingsClick\n };\n\n const viewContactInformationIcon = {\n key: 'viewContactInformation',\n id: 'viewContactInformation',\n icon: 'IconView',\n onClick: () => dispatch(ACTION_CREATORS.showGenericModalAction({ name: MODALS.CHECKOUT_FORM_PREVIEW_MODAL, onItemSettingsClick: onItemSettingsClick }))\n };\n\n const baseToolboxItems = isDeletable ? [settingsIcon, deleteIcon] : [settingsIcon];\n const isActionOpenForm = ({ type: itemType, buttonRole = '', buttonValue = '' }) => ActionHelper.ACTIONABLE_ITEMS.includes(itemType) && buttonRole === BUTTON_ROLE_TYPES.FORM && !!buttonValue;\n\n // eslint-disable-next-line complexity\n const getTools = (itemType, itemProps) => {\n const { status } = itemProps;\n const isButtonTypeForm = isActionOpenForm({ ...itemProps });\n switch (true) {\n case ((itemType === ITEM_TYPES.FORM || isButtonTypeForm) && status !== 'DELETED'):\n return [\n {\n key: 'editFormIcon',\n id: 'editFormIcon',\n icon: 'IconEditForm',\n onClick: resourceItemEditClick\n },\n ...baseToolboxItems\n ];\n case (itemType === ITEM_TYPES.REPORT_LINK) && canEditReport:\n return [\n {\n key: 'editReportIcon',\n id: 'editReportIcon',\n icon: 'IconEditReport',\n onClick: resourceItemEditClick\n },\n ...baseToolboxItems\n ];\n case (itemType === ITEM_TYPES.TABLE_LINK):\n return [\n {\n key: 'editTableIcon',\n id: 'editTableIcon',\n icon: 'IconEditTable',\n onClick: resourceItemEditClick\n },\n ...baseToolboxItems\n ];\n case (itemType === ITEM_TYPES.LIST):\n return [\n {\n key: 'viewDetailPage',\n id: 'viewDetailPage',\n icon: 'IconDetailsPage',\n onClick: scrollToDetailPage,\n isVisible: !!detailPage\n\n },\n {\n key: 'editList',\n id: 'editList',\n icon: 'IconEditTable',\n // TODO: it may be controlled via default resourceItemEditClick\n onClick: resourceItemEditClickList,\n getIsLoading: () => useSelector(SELECTORS.dsGetItemIsLoading(itemInfo.id, DS_ITEM_LOAD_TYPES.TABLE_CLONE))\n },\n ...baseToolboxItems\n ];\n case (itemType === ITEM_TYPES.SIGN_LINK):\n return [\n {\n key: 'editSignIcon',\n id: 'editSignIcon',\n icon: 'IconEditSign',\n onClick: resourceItemEditClick\n },\n ...baseToolboxItems\n ];\n case (itemType === ITEM_TYPES.PARAGRAPH):\n return [\n {\n key: isEditMode ? 'doneIcon' : 'editIcon',\n id: isEditMode ? 'doneIcon' : 'editIcon',\n icon: isEditMode ? 'IconDone' : 'IconEdit',\n onClick: paragraphItemEditClick\n },\n ...baseToolboxItems\n ];\n case (\n itemType === ITEM_TYPES.LINK\n || itemType === ITEM_TYPES.IMAGE\n || canOpenLink\n ):\n return canOpenLink ? [\n {\n key: 'openLinkIcon',\n id: 'openLinkIcon',\n icon: 'IconOpenLink',\n onClick: openLinkClick\n }, ...baseToolboxItems\n ] : baseToolboxItems;\n case (itemType === 'PAGE'):\n if (isFeatureEnabled(FEATURE_NAMES.MultipageImps)) {\n return (isDeletable ? [settingsIcon, deleteIcon] : []);\n }\n\n return (isDeletable ? [deleteIcon] : []);\n case (itemType === ITEM_TYPES.PRODUCT_LIST):\n return [\n productListSettings,\n editPayment,\n deleteIcon\n ];\n case itemType === ITEM_TYPES.DONATION:\n return [donationSettingsIcon, editDonationPayment, deleteIcon];\n case itemType === ITEM_TYPES.CONTACT_INFORMATION:\n return [contactInformationPropertiesIcon, viewContactInformationIcon];\n default:\n return baseToolboxItems;\n }\n };\n return [...orderButtons, ...getTools(type, itemInfo)];\n }, [\n isEditMode, type, canMoveUp, canMoveDown, isLinkItemURLEmpty, onMoveUpClick, onMoveDownClick, onItemDeleteClick, canOpenLink,\n onItemSettingsClick, resourceItemEditClick, paragraphItemEditClick, openLinkClick, itemInfo\n ]);\n\n return (\n \n \n \n );\n};\n\nBuilderItemToolbox.propTypes = {\n isSelected: bool,\n isEditMode: bool,\n canOpenLink: bool,\n type: string.isRequired,\n resourceItemEditClick: func,\n resourceItemEditClickList: func,\n scrollToDetailPage: func,\n onItemSettingsClick: func,\n onItemDeleteClick: func,\n paragraphItemEditClick: func,\n openLinkClick: func,\n isLinkItemURLEmpty: bool,\n isDeletable: bool,\n onMoveDownClick: func,\n onMoveUpClick: func,\n canMoveUp: bool,\n canMoveDown: bool,\n elementID: oneOfType([string, number]),\n itemInfo: shape({}),\n detailPage: object\n};\n\nBuilderItemToolbox.defaultProps = {\n isEditMode: false,\n isSelected: false,\n canOpenLink: false,\n onItemSettingsClick: f => f,\n onItemDeleteClick: f => f,\n paragraphItemEditClick: f => f,\n resourceItemEditClick: f => f,\n resourceItemEditClickList: f => f,\n scrollToDetailPage: f => f,\n openLinkClick: f => f,\n isLinkItemURLEmpty: false,\n isDeletable: true,\n onMoveUpClick: f => f,\n onMoveDownClick: f => f,\n canMoveUp: false,\n canMoveDown: false,\n elementID: '',\n itemInfo: {},\n detailPage: undefined\n};\n\nexport default BuilderItemToolbox;\n","import Styled from 'styled-components';\n\nconst ScBuilderItemListWrapper = Styled.div`\n position: relative;\n border-radius: 8px;\n transition: all .3s ease-in-out;\n \n &:hover {\n cursor: pointer;\n &.onlyPage {\n cursor: default;\n }\n box-shadow: #d6d7e7 0px 0px 10px 0px;\n }\n\n &.pageSelected {\n box-shadow: 0px 0px 10px 0px #d6d7e7, 0px 0px 0px 6px rgba(94,116,230,0.14);\n border-radius: 8px;\n }\n`;\nexport default ScBuilderItemListWrapper;\n","import Styled from 'styled-components';\nimport { getWidth } from '../../../../../utils/styleUtils';\n\nconst ScPageName = Styled.div`\n position: relative;\n\n & > button.bare {\n font-family: inherit;\n height: 20px;\n font-size: 14px;\n font-weight: 500;\n color: #6c73a8;\n position: relative;\n\n .pageName {\n display: block;\n margin-right: 22px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n &-input {\n cursor: text;\n background: none;\n border: none;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n color: inherit;\n\n &:focus {\n border-bottom: 1px dashed #6F76A7;\n outline: none;\n padding-bottom: 2px;\n }\n }\n }\n\n svg {\n display: inline-block;\n position: absolute;\n right: 2px;\n top: 3px;\n }\n\n max-width: calc(${getWidth()} - 110px);\n\n @media screen and (max-width: 768px) {\n max-width: calc(${getWidth('tablet')} - 150px);\n }\n\n @media screen and (max-width: 480px) {\n max-width: calc(100vw - 100px);\n }\n }\n`;\n\nexport default ScPageName;\n","import React, {\n useCallback, useEffect, useRef, useState\n} from 'react';\nimport { func, string } from 'prop-types';\nimport { Hooks, Utils } from '@jotforminc/uikit';\nimport { IconPencilToSquare } from '@jotforminc/svg-icons';\nimport Button from '../../../../../components/Button';\nimport ScPageName from './ScPageName';\n\nconst PageName = ({\n name,\n onChange,\n handleSelectPage\n}) => {\n const [isEditMode, setEditMode] = useState(false);\n const [inputValue, setInputValue] = useState(name);\n\n Hooks.useEffectIgnoreFirst(() => setInputValue(name), [name]);\n\n const inlineEditorRef = useRef();\n\n useEffect(() => {\n if (isEditMode) {\n inlineEditorRef?.current?.select();\n handleSelectPage();\n }\n }, [isEditMode]);\n\n const handleKeyDown = e => {\n if (Utils.isPressedKeyEnter(e) || Utils.isPressedKeyEscape(e)) {\n inlineEditorRef?.current?.blur();\n }\n };\n\n const handleChange = useCallback(e => {\n setInputValue(e.target.value);\n }, []);\n\n const handleEditButtonClick = useCallback(() => setEditMode(true), []);\n\n const handleBlur = useCallback(() => {\n if (inputValue) {\n onChange(inputValue);\n } else {\n setInputValue(name);\n }\n setEditMode(false);\n }, [inputValue, name]);\n\n return (\n \n \n
\n {isEditMode ? (\n \n ) : name }\n
\n {!isEditMode && (\n \n )}\n \n \n );\n};\n\nPageName.propTypes = {\n name: string,\n onChange: func,\n handleSelectPage: func\n};\n\nPageName.defaultProps = {\n name: '',\n onChange: f => f,\n handleSelectPage: f => f\n};\n\nexport default PageName;\n","import React, { Fragment, useCallback, useState } from 'react';\nimport { bool, func, shape } from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport Styled from 'styled-components';\nimport { IconPlusSm } from '@jotforminc/svg-icons';\nimport PageName from '../PageName';\nimport Button from '../../../../../components/Button';\nimport PageIcon from '../PageIcon';\nimport { checkMobileOrTablet, isYes } from '../../../../../utils';\n\nconst ScPageInlineEdit = Styled.div`\n position: relative;\n margin: 1px 0 16px 0;\n max-width: 100%;\n fill: #6F76A7;\n\n .pageIDArea {\n align-items: center;\n display: flex;\n max-width: 100%;\n }\n\n .forAddIcon {\n font-size: 12px;\n font-family: inherit;\n font-weight: 400;\n color: #6F76A7;\n background-color: #E3E5F5;\n border-radius: 100px;\n text-transform: capitalize;\n padding: 0 6px;\n margin-left: 8px;\n display: none;\n\n svg {\n width: 11px;\n margin-right: 5px;\n fill: #6F76A7;\n }\n }\n\n .hovered .forAddIcon {\n display: inline-flex;\n }\n\n .pageInlineOverlay {\n background-color: #DFDFFC;\n display: flex;\n align-items: center;\n gap: 5px;\n }\n`;\n\nconst PageInlineEdit = ({\n page,\n onChange,\n onSettingsClick,\n isHomepage,\n handleSelectPage\n}) => {\n const {\n name, showPageIcon, pageIcon\n } = page;\n\n const Wrapper = useCallback(props => (isHomepage ?
: ), [isHomepage]);\n\n const [hovered, setHovered] = useState(false);\n const hasIcon = isYes(showPageIcon) && !!pageIcon;\n const isMobileOrTablet = checkMobileOrTablet();\n\n return (\n setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n >\n
\n \n \n \n \n {!hasIcon && !isMobileOrTablet && (\n \n \n {t('Add Icon')}\n \n )}\n
\n \n );\n};\n\nPageInlineEdit.propTypes = {\n page: shape({}),\n onChange: func,\n onSettingsClick: func,\n isHomepage: bool,\n handleSelectPage: func\n};\n\nPageInlineEdit.defaultProps = {\n page: {},\n onChange: f => f,\n onSettingsClick: f => f,\n isHomepage: false,\n handleSelectPage: f => f\n};\n\nexport default PageInlineEdit;\n","import Styled from 'styled-components';\nimport AppScItemContainer from '../../../../PublicApp/ScItemContainer';\n\nconst ScItemContainer = Styled(AppScItemContainer)`\n li[data-available-in-app=\"false\"] {\n .itemContent, .buttonItem {\n opacity: .4;\n }\n\n // Donation Box element will be visible even if don't have any integration\n [type=\"DONATION\"] .itemContent {\n opacity: 1;\n }\n\n .withIconItemContent {\n opacity: .4;\n .itemContent {\n opacity: 1;\n }\n }\n }\n\n [aria-selected=\"true\"], [aria-selected=\"true\"] &:focus {\n outline: none;\n .appItem {\n box-shadow: 0px 0px 0px 2px ${({ isDsItemContainer }) => (isDsItemContainer ? '#049E38' : '#0087E0')};\n border-radius: 4px;\n transition: .2s box-shadow ease;\n z-index: 2;\n }\n &.product-list-item {\n box-shadow: none;\n }\n }\n\n li:not([aria-selected=\"true\"]) {\n [contenteditable=true]:empty {\n display: none;\n }\n }\n\n .item-animation-appear {\n opacity: 0;\n position: absolute !important;\n }\n\n .item-animation-appear-done {\n animation: bounce .7s cubic-bezier(0.215, 0.61, 0.355, 1);\n @keyframes bounce {\n 0%{\n opacity: 0;\n transform: scale(0.5);\n }\n\n 50%{\n opacity: 0.7;\n transform: scale(1.02);\n }\n\n 90%{\n opacity: 1;\n transform: scale(0.98);\n }\n\n 100%{\n opacity: 1;\n transform: scale(1);\n }\n }\n }\n`;\n\nexport default ScItemContainer;\n","import Styled from 'styled-components';\n\nexport const ScAddFirstElementBtn = Styled.button`\n display: flex;\n align-items: center;\n justify-content: center;\n height: 78px;\n width: 100%;\n max-width: 672px;\n min-width: 292px;\n border-radius: 4px;\n background-color: #e6f5ff;\n color: #0099ff;\n border: 1px solid #0099FF;\n font-family: inherit;\n margin: 0px 10px 16px 10px;\n padding: 12px;\n svg {\n width: 22px;\n height: 22px;\n margin-right: 8px;\n }\n\n font-size: 14px;\n cursor: pointer;\n`;\n","import React, { useCallback } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { t } from '@jotforminc/translation';\nimport PropTypes from 'prop-types';\nimport { IconArrows4WayFromCenter } from '@jotforminc/svg-icons';\nimport { ScAddFirstElementBtn } from './ScAddFirstElementBtn';\n\nimport * as ACTION_CREATORS from '../../../../../store/actionCreators';\nimport SELECTORS from '../../../../../store/selectors';\n\nconst AddFirstElementBtn = ({ isDraggingOver, pageID }) => {\n const dispatch = useDispatch();\n const isHomepage = useSelector(SELECTORS.getIsHomepage(pageID));\n\n const handleAddFirstElementButton = useCallback(e => {\n e.stopPropagation();\n dispatch(ACTION_CREATORS.updateLastInteractedPageIDAction(pageID));\n dispatch(ACTION_CREATORS.toggleLeftPanelAction(true));\n dispatch(ACTION_CREATORS.trackEventAction({ action: 'addFirstElementButtonClicked' }));\n }, [pageID]);\n\n return !isDraggingOver ? (\n \n \n {t(isHomepage ? 'Drag your first element here from left.' : 'Drag your element here from left.')}\n \n ) :
;\n};\n\nAddFirstElementBtn.propTypes = {\n isDraggingOver: PropTypes.bool.isRequired,\n pageID: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired\n};\n\nexport default AddFirstElementBtn;\n","import React from 'react';\nimport { elementType, string } from 'prop-types';\nimport { DefaultDivRenderer } from '../../../../components/Items/defaultRenderers';\nimport DocumentItem from '../../../../components/Items/DocumentItem';\n\nconst BuilderDocumentItem = props => {\n const {\n UploaderRenderer, fileURL\n } = props;\n\n return fileURL\n ? \n : ;\n};\n\nBuilderDocumentItem.propTypes = {\n UploaderRenderer: elementType,\n fileURL: string\n};\n\nBuilderDocumentItem.defaultProps = {\n UploaderRenderer: DefaultDivRenderer,\n fileURL: ''\n};\n\nexport default BuilderDocumentItem;\n","import React, { useState } from 'react';\nimport { func } from 'prop-types';\n\nimport TextInput from '../../TextInput';\nimport FileUpload from '../../FileUpload';\n\nconst ImageUploadPanel = ({ onFileUpload }) => {\n const [altText, setAltText] = useState('');\n\n const handleAltTextChange = ({ target: { value } }) => setAltText(value);\n const handleFileUpload = file => onFileUpload({ file, altText });\n\n return (\n
\n \n
\n
Alt Text:
\n \n
\n
\n );\n};\n\nImageUploadPanel.propTypes = {\n onFileUpload: func.isRequired\n};\n\nexport default ImageUploadPanel;\n","export const EVENTS = [\n 'focusin', 'focusout', 'click', 'dblclick', 'mousedown', 'mouseup',\n 'mousemove', 'mouseover', 'beforepaste', 'paste', 'cut', 'copy',\n 'selectionchange', 'mouseout', 'mouseenter', 'mouseleave', 'keydown',\n 'keypress', 'keyup', 'contextmenu', 'dragend', 'dragover', 'draggesture',\n 'dragdrop', 'drop', 'drag', 'BeforeRenderUI', 'SetAttrib', 'PreInit',\n 'PostRender', 'init', 'deactivate', 'activate', 'NodeChange',\n 'BeforeExecCommand', 'ExecCommand', 'show', 'hide', 'ProgressState',\n 'LoadContent', 'SaveContent', 'BeforeSetContent', 'SetContent',\n 'BeforeGetContent', 'GetContent', 'VisualAid', 'remove', 'submit', 'reset',\n 'BeforeAddUndo', 'AddUndo', 'change', 'undo', 'redo', 'ClearUndos',\n 'ObjectSelected', 'ObjectResizeStart', 'ObjectResized', 'PreProcess',\n 'PostProcess', 'focus', 'blur', 'customButtonSettingClick'\n];\n\nexport const HANDLER_NAMES = EVENTS.map(event => `on${event[0].toUpperCase() + event.substring(1)}`);\n\nexport const BASE_CONFIG = {\n menubar: false,\n statusbar: false,\n min_height: 320,\n link_title: false,\n skin: 'lightgray',\n fullpage_hide_in_source_view: true,\n // content_css: '/css/customButtonsStyles.css',\n plugins: 'autolink link image fullpage lists print preview textcolor code fullscreen table paste',\n paste_retain_style_properties: 'all',\n paste_webkit_styles: 'all',\n toolbar: 'customfontfamily | customfontsize | bold italic | alignment | forecolor | link customimage | code | table | fullscreen | questionlist',\n content_style: `\n html, body { height: 100% }\n body { overscroll-behavior-x: none; }\n `,\n body_class: 'form-all'\n};\n\nexport const DEFAULT_FORMATS = `Andale Mono=andale mono,monospace;\nArial=arial,helvetica,sans-serif;\nArial Black=arial black,sans-serif;\nBook Antiqua=book antiqua,palatino,serif;\nComic Sans MS=comic sans ms,sans-serif;\nCourier New=courier new,courier,monospace;\nGeorgia=georgia,palatino,serif;\nHelvetica=helvetica,arial,sans-serif;\nImpact=impact,sans-serif;\nSymbol=symbol;\nTahoma=tahoma,arial,helvetica,sans-serif;\nTerminal=terminal,monaco,monospace;\nTimes New Roman=times new roman,times,serif;\nTrebuchet MS=trebuchet ms,geneva,sans-serif;\nVerdana=verdana,geneva,sans-serif;\nWebdings=webdings;\nWingdings=wingdings,zapf dingbats;`;\n\nexport const DEFAULT_FONT_SIZES = ['8pt', '10pt', '12pt', '14pt', '18pt', '24pt', '36pt'];\n\nexport const ALIGNMENT_MENU = `
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
`;\n\nexport const LIST_MENU = `
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
`;\n\nexport const CONTENT_REGEX = /(data:((.*?)\\/(.*?)*?)[.,/#!$%^&*;:{}=\\-_`~()]+?)/ig;\n\nexport const AVAILABLE_LANGUAGE_CODES = [\n 'ca-ES', 'da-DA', 'de-DE', 'en-US',\n 'es-ES', 'fi-FI', 'fr-FR', 'hu-HU',\n 'it-IT', 'nl-NL', 'no-NO', 'pl-PL',\n 'pt-PT', 'ro-RO', 'ru-RU', 'sv-SE',\n 'tr-TR', 'zh-CN'\n];\n","import ReactDOM from 'react-dom';\nimport React from 'react';\nimport Popover from '../../Popover';\n\nconst containerID = 'tinymce-popoverContainer';\n\nexport const renderPopoverButton = ({ id, editor, component }) => {\n if (document.getElementById(containerID)) {\n return;\n }\n const popoverContainer = document.createElement('div');\n popoverContainer.id = containerID;\n editor.editorContainer.appendChild(popoverContainer);\n const btn = document.getElementById(id);\n const targetRef = { current: btn };\n let firstTime = false;\n const onClick = event => {\n if (!firstTime) {\n firstTime = true;\n return;\n }\n const formFieldsPopoverContains = document?.getElementsByClassName('formFields-popover')?.[0]?.contains(event.target);\n const emailOutcomePopoverContains = document?.getElementsByClassName('wfEmail-outcome-popover')?.[0]?.contains(event.target);\n const isClickOutside = !(popoverContainer.contains(event.target) || formFieldsPopoverContains || emailOutcomePopoverContains);\n if (isClickOutside) {\n ReactDOM.unmountComponentAtNode(popoverContainer);\n window.removeEventListener('click', onClick);\n if (editor.contentWindow.removeEventListener) {\n editor.contentWindow.removeEventListener('click', onClick);\n }\n popoverContainer.remove();\n }\n };\n ReactDOM.render(\n \n {component(editor)}\n ,\n popoverContainer,\n () => {\n window.addEventListener('click', onClick);\n editor.contentWindow.addEventListener('click', onClick);\n }\n );\n};\n","/* eslint-disable no-param-reassign */\nimport {\n EVENTS, HANDLER_NAMES, DEFAULT_FORMATS, DEFAULT_FONT_SIZES, ALIGNMENT_MENU, LIST_MENU, CONTENT_REGEX\n} from '../constants';\nimport { renderPopoverButton } from './popoverButtonUtils';\n\nconst createFormats = formatsStr => formatsStr.replace(/;$/, '').split(';').map(format => format.split('='));\nconst createCustomFontFamilyMenu = fonts => {\n window.changeTinMCEFont = fontName => global.tinyMCE.execCommand('FontName', false, decodeURIComponent(fontName));\n const dom = fonts.map(([text, fontName]) => {\n return `
${\n text\n }
`;\n });\n\n return `
${dom.join('')}
`;\n};\n\nconst createCustomFontSizeMenu = fontSizes => {\n window.changeTinMCEFontSize = fontSize => global.tinyMCE.execCommand('FontSize', false, decodeURIComponent(fontSize));\n const dom = fontSizes.map(size => {\n return `
${\n size\n }
`;\n });\n return `
${dom.join('')}
`;\n};\n\nconst createCustomButtonConfig = ({ icon, tooltip, html }) => ({\n icon,\n tooltip,\n type: 'colorbutton',\n border: '0 0 0 0',\n image: '',\n panel: {\n html,\n role: 'application',\n ariaRemember: true,\n onClick: () => {}\n },\n onPostRender: function onPostRender() {\n document.getElementById(this._id).addEventListener('click', () => {\n document.getElementById(this._id).querySelector('span.mce-open').click();\n });\n const id = this._id.replace('tinymce-', '');\n if (id !== undefined) {\n document.getElementById(`${id}-preview`).style.display = 'none';\n }\n },\n onclick: () => false\n});\n\nexport const sanitizeEditorContent = content => content.replace(CONTENT_REGEX, '');\n\nexport const getGlobalEventName = (id, eventName) => {\n return `tiny_${id}_${eventName}`;\n};\n\nexport const setGlobalEvents = (editorID, props) => {\n EVENTS.forEach((eventName, index) => {\n const handlerName = HANDLER_NAMES[index];\n const handler = props[handlerName];\n if (typeof handler !== 'function') { return; }\n\n window[getGlobalEventName(editorID, eventName)] = handler;\n });\n};\n\nexport const clearGlobalEvents = editorID => {\n EVENTS.forEach(eventName => {\n const globalHandlerName = getGlobalEventName(editorID, eventName);\n if (typeof window[globalHandlerName] === 'function') {\n delete window[globalHandlerName];\n }\n });\n};\nconst handleSaveStyle = () => {\n};\n\nconst handlePortalButtons = (e, id, type, wrapper, editor) => {\n const buttonSettings = {\n e,\n id: id,\n buttonType: type,\n onChange: handleSaveStyle(),\n targetButton: wrapper,\n actualButton: editor.dom.doc.getElementById(id)\n };\n editor.customEventForButtons.fire('customButtonClicked', buttonSettings);\n wrapper?.remove();\n};\nconst buttonTypes = ['setting', 'delete'];\nconst handleCustomButtonClick = (e, id, editor, customType) => {\n let wrapper = document.body.querySelector('.settingButonWrapper');\n if (wrapper) {\n wrapper.remove();\n }\n wrapper = global.document.createElement('div');\n ['click', 'scroll'].forEach(eventName => {\n editor.dom.doc.addEventListener(eventName, () => {\n wrapper.remove();\n }, true);\n document.getElementById('root').addEventListener(eventName, () => {\n wrapper.remove();\n }, true);\n });\n const mainPos = editor.contentAreaContainer.getBoundingClientRect();\n const realPos = e.currentTarget.getBoundingClientRect();\n if (!mainPos || !realPos) return;\n const x = mainPos.x + realPos.x + realPos.width;\n let y = mainPos.y + realPos.y + (realPos.height / 2);\n if (y < mainPos.y) {\n y = mainPos.y + 40;\n }\n if (y > mainPos.y + mainPos.height) {\n y = mainPos.y + mainPos.height - 40;\n }\n\n wrapper.style.left = `${x}px`;\n wrapper.style.top = `${y}px`;\n\n wrapper.classList.add('settingButonWrapper', 'shown');\n buttonTypes.forEach(type => {\n if (customType === 'customTable' && type === 'style') return;\n const button = global.document.createElement('div');\n button.classList.add('settingButon', [type]);\n button.append('\\u00A0');\n button.addEventListener('click', ev => handlePortalButtons(ev, id, type, wrapper, editor, ev.currentTarget), false);\n wrapper.append(button);\n });\n global.document.body.appendChild(wrapper);\n};\n\nconst handleHover = e => {\n if (e.type === 'mouseenter') {\n e.currentTarget.parentElement.classList.add('hoveredActionButton');\n return;\n }\n e.currentTarget.parentElement.classList.remove('hoveredActionButton');\n};\n\nexport const handleCustomButtonEvents = (editor, buttons) => {\n if (buttons.length <= 0) return;\n const content = editor.getContent();\n editor.setContent(content);\n buttons.forEach(buttonID => {\n const button = editor.dom.get(buttonID);\n\n if (!button) return;\n\n const type = button.getAttribute('data-buttontype');\n\n ['click', 'touchstart'].forEach(eventName => {\n button.addEventListener(eventName, ev => {\n handleCustomButtonClick(ev, buttonID, editor, type);\n }, true);\n });\n\n ['mouseenter', 'mouseleave'].forEach(eventName => {\n button.addEventListener(eventName, ev => handleHover(ev));\n });\n\n button.addEventListener('dblclick', ev => {\n handlePortalButtons(ev, button.id, 'setting', document.body.querySelector('.settingButonWrapper'), editor);\n });\n });\n};\n\nexport const setupEditor = (editorID, editor, props) => {\n const {\n translate, handleInsertImageClick, extraButtons, extraSetupFunctions, editorContainerClassname, popoverButtons, onCustomButtonSettingClick\n } = props;\n const isNewActionButtonsEnabled = window.isNewActionButtons;\n EVENTS.forEach((event, index) => {\n const handler = props[HANDLER_NAMES[index]];\n if (typeof handler !== 'function') { return; }\n editor.on(event, e => {\n const globalHandlerName = getGlobalEventName(editorID, event);\n window[globalHandlerName](e, editor); // working\n });\n });\n\n editor.customEventForButtons = new global.tinyMCE.util.EventDispatcher();\n editor.customEventForButtons.on('addCustomButton', ({ buttons }) => {\n handleCustomButtonEvents(editor, buttons);\n });\n editor.customEventForButtons.on('removeCustomButton', ({ buttons }) => {\n handleCustomButtonEvents(editor, buttons);\n });\n\n editor.customEventForButtons.on('customButtonClicked', ({\n e, id, buttonType, onChange, targetButton, actualButton\n }) => {\n if (onCustomButtonSettingClick) {\n onCustomButtonSettingClick(e, id, buttonType, editor, onChange, targetButton, actualButton);\n }\n });\n\n editor.on('redo undo', () => {\n handleCustomButtonEvents(editor, editor.customButtons);\n });\n\n if (isNewActionButtonsEnabled) {\n editor.on('drop', ({ targetClone, target }) => {\n const doc = target?.dom.doc;\n const dragContainer = doc.querySelector('.mce-drag-container');\n\n if (targetClone && targetClone?.getAttribute('data-isCustomButton')) {\n document.body.querySelector('.settingButonWrapper')?.remove();\n }\n\n if (dragContainer && dragContainer.querySelector('[data-iscustombutton=\"true\"')) {\n dragContainer.remove();\n }\n });\n }\n\n editor.on('init', () => {\n const content = editor.getContent();\n\n editor.dom.setAttrib(editor.dom.select('html')[0], 'id', 'stage');\n\n if (document.getElementById('mce-customfullscreen')) {\n const customFullscreenToolbarBtn = document.getElementById('mce-customfullscreen');\n const parent = customFullscreenToolbarBtn.parentNode.parentNode;\n parent.classList.add('mce-customfullscreen-btn');\n }\n\n if (editorContainerClassname) {\n editor.editorContainer.classList.add(editorContainerClassname);\n }\n const nonEditableLength = content.match(/mceNonEditable/g)?.length;\n // eslint-disable-next-line no-param-reassign\n editor.nonEditableLength = nonEditableLength;\n // eslint-disable-next-line no-param-reassign\n editor.hasNonEditables = nonEditableLength !== 0;\n });\n\n editor.on('change', () => {\n const content = editor.getContent();\n const { nonEditableLength, hasNonEditables } = editor;\n if (hasNonEditables) {\n const areNonEditablesDeleted = (content.match(/mceNonEditable/g)?.length ?? 0) < nonEditableLength;\n // eslint-disable-next-line no-prototype-builtins\n if (editor.plugins?.hasOwnProperty('noneditable') && areNonEditablesDeleted) {\n const undoed = editor.undoManager.undo();\n if (undoed?.content) {\n const eventName = getGlobalEventName(editorID, 'change');\n if (typeof window[eventName] === 'function') {\n window[eventName](null, undoed.content);\n }\n }\n return;\n }\n }\n if (CONTENT_REGEX.test(content)) {\n const newContent = sanitizeEditorContent(content);\n editor.setContent(newContent);\n }\n\n if (isNewActionButtonsEnabled && editor.customButtons) {\n editor.customButtons.forEach(buttonID => {\n const button = editor.dom.get(buttonID);\n\n if (!button) return;\n\n const type = button.getAttribute('data-buttontype');\n\n ['click', 'touchstart'].forEach(eventName => {\n button.addEventListener(eventName, ev => {\n handleCustomButtonClick(ev, buttonID, editor, type);\n }, true);\n });\n\n ['mouseenter', 'mouseleave'].forEach(eventName => {\n button.addEventListener(eventName, ev => handleHover(ev));\n });\n\n button.addEventListener('dblclick', ev => {\n handlePortalButtons(ev, button.id, 'setting', document.body.querySelector('.settingButonWrapper'), editor);\n });\n });\n }\n });\n\n if (extraSetupFunctions && extraSetupFunctions.length > 0) {\n extraSetupFunctions.forEach(({ id, callback }) => {\n if (callback !== undefined && typeof callback === 'function') {\n editor.on(id, callback);\n }\n });\n }\n\n const handleEsc = e => {\n if (e.key === 'Escape') {\n editor.setFullScreen(false);\n }\n };\n\n editor.setFullScreen = isOpen => {\n editor.editorContainer.classList.toggle('mce-fullscreen');\n editor.editorContainer.classList.toggle('mce-fullscreen-custom');\n if (isOpen) {\n editor.isFullscreen = true;\n window.addEventListener('keydown', handleEsc);\n editor.contentWindow.frameElement.contentDocument.body.addEventListener('keydown', handleEsc);\n } else {\n editor.isFullscreen = false;\n editor.editorContainer.style = editor.exStyles;\n window.removeEventListener('keydown', handleEsc);\n editor.contentWindow.frameElement.contentDocument.body.removeEventListener('keydown', handleEsc);\n }\n };\n\n const fontSizes = editor.settings.font_sizes || DEFAULT_FONT_SIZES;\n const fonts = createFormats(editor.settings.font_formats || DEFAULT_FORMATS);\n editor.addButton('customimage', { icon: 'image', tooltip: translate('Insert Image'), onClick: handleInsertImageClick });\n editor.addButton('alignment', createCustomButtonConfig({ tooltip: 'Text Align', icon: 'alignleft', html: ALIGNMENT_MENU }));\n editor.addButton('listmenu', createCustomButtonConfig({ tooltip: 'List', icon: 'bullist', html: LIST_MENU }));\n editor.addButton('customfontsize', createCustomButtonConfig({ tooltip: translate('Font Size'), icon: 'fontsize', html: createCustomFontSizeMenu(fontSizes) }));\n editor.addButton('customfontfamily', createCustomButtonConfig({ tooltip: 'Font Family', icon: 'fontfamily', html: createCustomFontFamilyMenu(fonts) }));\n editor.addButton('customfullscreen', {\n type: 'button',\n role: 'fullscreen',\n tooltip: 'Toggle fullscreen',\n icon: 'fullscreen',\n onclick: () => {\n editor.setFullScreen(!editor.isFullscreen);\n },\n id: 'mce-customfullscreen'\n });\n if (extraButtons && extraButtons.length > 0) {\n extraButtons.forEach(({ id, generator, ...editorButtonProps }) => {\n switch (true) {\n case generator !== undefined && typeof generator === 'function': {\n editor.addButton(id, { classes: 'custom-button ', ...generator(editor) });\n break;\n }\n default:\n editor.addButton(id, editorButtonProps);\n break;\n }\n });\n }\n\n if (popoverButtons && popoverButtons.length) {\n popoverButtons.forEach(({ id, component, ...popoverButtonProps }) => {\n editor.addButton(id, {\n type: 'button',\n id,\n onclick: () => {\n renderPopoverButton({ id, component, editor });\n },\n ...popoverButtonProps\n });\n });\n }\n};\n","import React, {\n useMemo, useEffect, useRef, useState, forwardRef, useImperativeHandle\n} from 'react';\nimport {\n string, elementType, shape, func, arrayOf\n} from 'prop-types';\n\nimport {\n Container as DefaultContainer,\n ErrorWrapper as DefaultErrorWrapper,\n LoadingWrapper as DefaultLoadingWrapper,\n ImageUploadPanel as DefaultImageUploadPanel\n} from './defaults';\n\nimport Modal from '../Modal';\n\nimport { generateShortID } from '../../utils';\nimport { useScript, useEffectIgnoreFirst } from '../../utils/hooks';\nimport {\n setupEditor, sanitizeEditorContent, setGlobalEvents, clearGlobalEvents\n} from './utils';\n\nimport { BASE_CONFIG, AVAILABLE_LANGUAGE_CODES } from './constants';\n\nconst RichTextEditor = forwardRef(({\n name, scriptSrc, value, defaultValue, config, translate, modalProperties, extraButtons,\n extraPlugins, extraSetupFunctions, customActionButtons,\n ErrorWrapperRenderer, LoadingWrapperRenderer, ImageUploadPanelRenderer, ContainerRenderer,\n ModalRenderer, editorContainerClassname, popoverButtons, ...props\n}, ref) => {\n const imageUploadModelRef = useRef();\n const editorFirst = useRef();\n const [editor, setEditor] = useState(false);\n const [customButtons, setCustomButtons] = useState([]);\n const { loaded, error } = useScript(scriptSrc);\n const id = useMemo(() => `react_tinymce_${generateShortID()}`, []);\n setGlobalEvents(id, props); // putting this line into an effect/memoize breaks everything. stupid but it should be in render. React useEffect bug.\n\n const defaultPlugins = config.plugins || BASE_CONFIG.plugins;\n const plugins = window.isNewActionButtons ? `${defaultPlugins} noneditable` : defaultPlugins;\n\n const editorConfig = useMemo(() => {\n const mceConfig = {\n ...BASE_CONFIG,\n ...config,\n plugins\n };\n return { ...mceConfig, language: mceConfig.language ? mceConfig.language.replace('_', '-') : BASE_CONFIG.language };\n }, [config]);\n\n const handleInsertImageClick = () => imageUploadModelRef.current.show();\n const handleImageUpload = ({ file: { url }, altText }) => {\n const img = `${altText}`;\n editor.insertContent(img);\n imageUploadModelRef.current.hide();\n };\n\n const reRenderButtons = curEditor => {\n curEditor.customEventForButtons.fire('addCustomButton', { customButtons });\n };\n\n const handleEditorSetup = tempEditor => {\n setupEditor(id, tempEditor, {\n translate, handleInsertImageClick, extraButtons, extraSetupFunctions, editorContainerClassname, popoverButtons, reRenderButtons, ...props\n });\n setEditor(tempEditor);\n };\n\n const reinitializeTinyMCE = () => {\n if (global.tinyMCE) {\n const selector = `#${id}`;\n global.tinyMCE.remove(selector);\n\n const currentLanguage = AVAILABLE_LANGUAGE_CODES.includes(global.currentLocale) ? global.currentLocale : 'en-US';\n const languageCode = currentLanguage.replace('-', '_');\n\n global.tinyMCE.init({\n ...editorConfig,\n selector,\n setup: handleEditorSetup,\n language_url: `//${global.location.hostname}/js/rich-text-editor/langs/${currentLanguage}.js`,\n indent_use_margin: true\n });\n\n global.tinyMCE.i18n.setCode(languageCode);\n editorFirst.current = true;\n }\n };\n\n useImperativeHandle(ref, () => ({ editor, reinitializeTinyMCE }));\n\n useEffect(() => {\n if (loaded && !error && global.tinyMCE) {\n const selector = `#${id}`;\n if (extraPlugins && extraPlugins.length > 0) {\n extraPlugins.forEach(({ id: pluginName, generator }) => {\n if (generator !== undefined && typeof generator === 'function') {\n global.tinyMCE.PluginManager.add(pluginName, generator);\n }\n });\n }\n reinitializeTinyMCE();\n\n return () => {\n if (global.tinyMCE) {\n try {\n clearGlobalEvents(id);\n global.tinyMCE.remove(selector);\n } catch (e) {\n console.warn('Error while removing tinyMCE with selector', selector);\n console.error(e);\n }\n }\n };\n }\n }, [loaded, error]);\n\n useEffect(() => {\n if (editor) editor.customButtons = customButtons;\n }, [customButtons]);\n\n useEffect(() => {\n if (!customActionButtons || !editor) return;\n if (!editorFirst.current) {\n return;\n }\n\n setTimeout(() => {\n editor.customEventForButtons.fire('addCustomButton', { buttons: customActionButtons });\n }, 500);\n\n setCustomButtons(customActionButtons);\n }, [customActionButtons, editor, editorFirst]);\n\n useEffectIgnoreFirst(() => {\n if (editor && defaultValue === undefined) {\n editor.setContent(sanitizeEditorContent(value));\n }\n }, [value]);\n\n return (\n <>\n {error && Something went wrong when loading text editor. Please try again.}\n {!loaded && Loading...}\n {loaded && !error && (\n \n