@bigbinary/neeto-molecules 1.1.78 → 1.2.0-beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +66 -52
- package/dist/Breadcrumbs.js +16 -19
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/BrowserSupport.js +41 -138
- package/dist/BrowserSupport.js.map +1 -1
- package/dist/Builder.js +207 -364
- package/dist/Builder.js.map +1 -1
- package/dist/CalendarView.js +40 -288
- package/dist/CalendarView.js.map +1 -1
- package/dist/Chevron-c64ff676.js +190 -0
- package/dist/Chevron-c64ff676.js.map +1 -0
- package/dist/Codeblock.js +26 -209
- package/dist/Codeblock.js.map +1 -1
- package/dist/Columns.js +16 -240
- package/dist/Columns.js.map +1 -1
- package/dist/ConfigurePageSidebar.js +97 -0
- package/dist/ConfigurePageSidebar.js.map +1 -0
- package/dist/ConfirmationModal.js +10 -10
- package/dist/ConfirmationModal.js.map +1 -1
- package/dist/Container.js +5 -1187
- package/dist/Container.js.map +1 -1
- package/dist/CopyToClipboardButton.js +26 -155
- package/dist/CopyToClipboardButton.js.map +1 -1
- package/dist/Currency.js +912 -0
- package/dist/Currency.js.map +1 -0
- package/dist/CustomDomain.js +37 -633
- package/dist/CustomDomain.js.map +1 -1
- package/dist/CustomDomainDashboard.js +69 -2192
- package/dist/CustomDomainDashboard.js.map +1 -1
- package/dist/DateFormat.js +6 -20
- package/dist/DateFormat.js.map +1 -1
- package/dist/DateRangeFilter.js +19 -75
- package/dist/DateRangeFilter.js.map +1 -1
- package/dist/DeleteArchiveModal.js +86 -0
- package/dist/DeleteArchiveModal.js.map +1 -0
- package/dist/DocumentEditor.js +43 -133
- package/dist/DocumentEditor.js.map +1 -1
- package/dist/DownloadMobileAppCallout.js +4 -4
- package/dist/DownloadMobileAppCallout.js.map +1 -1
- package/dist/DynamicVariables.js +12 -95
- package/dist/DynamicVariables.js.map +1 -1
- package/dist/EmailForm.js +79 -1741
- package/dist/EmailForm.js.map +1 -1
- package/dist/EmailPreview.js +32 -1213
- package/dist/EmailPreview.js.map +1 -1
- package/dist/EmojiPicker.js +67 -0
- package/dist/EmojiPicker.js.map +1 -0
- package/dist/EmojiReactions.js +69 -0
- package/dist/EmojiReactions.js.map +1 -0
- package/dist/ErrorPage.js +17 -26
- package/dist/ErrorPage.js.map +1 -1
- package/dist/FloatingActionMenu.js +646 -0
- package/dist/FloatingActionMenu.js.map +1 -0
- package/dist/Header.js +45 -117
- package/dist/Header.js.map +1 -1
- package/dist/HelpPopover.js +73 -0
- package/dist/HelpPopover.js.map +1 -0
- package/dist/IconPicker.js +36 -129
- package/dist/IconPicker.js.map +1 -1
- package/dist/ImageWithFallback.js +8 -144
- package/dist/ImageWithFallback.js.map +1 -1
- package/dist/InlineInput.js +22 -526
- package/dist/InlineInput.js.map +1 -1
- package/dist/Insights.js +304 -0
- package/dist/Insights.js.map +1 -0
- package/dist/IntegrationCard.js +42 -226
- package/dist/IntegrationCard.js.map +1 -1
- package/dist/IntegrationDisconnectAlert.js +6 -48
- package/dist/IntegrationDisconnectAlert.js.map +1 -1
- package/dist/IntegrationWalkthroughModal.js +10 -10
- package/dist/IntegrationWalkthroughModal.js.map +1 -1
- package/dist/IpRestriction.js +74 -221
- package/dist/IpRestriction.js.map +1 -1
- package/dist/KeyboardShortcuts.js +38 -128
- package/dist/KeyboardShortcuts.js.map +1 -1
- package/dist/LoginPage.js +39 -459
- package/dist/LoginPage.js.map +1 -1
- package/dist/MadeWith.js +32 -0
- package/dist/MadeWith.js.map +1 -0
- package/dist/MenuBar.js +34 -1295
- package/dist/MenuBar.js.map +1 -1
- package/dist/Metadata.js +65 -86
- package/dist/Metadata.js.map +1 -1
- package/dist/MoreDropdown.js +48 -107
- package/dist/MoreDropdown.js.map +1 -1
- package/dist/NavigationHeader.js +51 -730
- package/dist/NavigationHeader.js.map +1 -1
- package/dist/NeetoWidget.js +148 -316
- package/dist/NeetoWidget.js.map +1 -1
- package/dist/Onboarding.js +343 -0
- package/dist/Onboarding.js.map +1 -0
- package/dist/OptionFields.js +507 -0
- package/dist/OptionFields.js.map +1 -0
- package/dist/PageLoader.js +5 -48
- package/dist/PageLoader.js.map +1 -1
- package/dist/PhoneNumber.js +122 -201
- package/dist/PhoneNumber.js.map +1 -1
- package/dist/ProductEmbed.js +767 -0
- package/dist/ProductEmbed.js.map +1 -0
- package/dist/PublishBlock.js +19 -60
- package/dist/PublishBlock.js.map +1 -1
- package/dist/PublishYourItem.js +52 -0
- package/dist/PublishYourItem.js.map +1 -0
- package/dist/Rename.js +127 -394
- package/dist/Rename.js.map +1 -1
- package/dist/ResponsiveDevicePicker.js +7 -143
- package/dist/ResponsiveDevicePicker.js.map +1 -1
- package/dist/Schedule.js +131 -365
- package/dist/Schedule.js.map +1 -1
- package/dist/Scrollable.js +6 -89
- package/dist/Scrollable.js.map +1 -1
- package/dist/Search.js +54 -157
- package/dist/Search.js.map +1 -1
- package/dist/Security.js +72 -1567
- package/dist/Security.js.map +1 -1
- package/dist/SendToFields.js +51 -133
- package/dist/SendToFields.js.map +1 -1
- package/dist/Settings.js +141 -412
- package/dist/Settings.js.map +1 -1
- package/dist/ShareRecordingPane.js +189 -0
- package/dist/ShareRecordingPane.js.map +1 -0
- package/dist/ShareViaEmail.js +126 -551
- package/dist/ShareViaEmail.js.map +1 -1
- package/dist/ShareViaLink.js +127 -345
- package/dist/ShareViaLink.js.map +1 -1
- package/dist/Sidebar.js +161 -758
- package/dist/Sidebar.js.map +1 -1
- package/dist/SubHeader.js +63 -108
- package/dist/SubHeader.js.map +1 -1
- package/dist/SuffixedInput.js +105 -0
- package/dist/SuffixedInput.js.map +1 -0
- package/dist/TableWrapper.js +8 -9
- package/dist/TableWrapper.js.map +1 -1
- package/dist/Taxonomy.js +112 -1774
- package/dist/Taxonomy.js.map +1 -1
- package/dist/ThemeSidebar.js +159 -776
- package/dist/ThemeSidebar.js.map +1 -1
- package/dist/TimeFormat.js +8 -44
- package/dist/TimeFormat.js.map +1 -1
- package/dist/TimezoneMismatchModal.js +49 -84
- package/dist/TimezoneMismatchModal.js.map +1 -1
- package/dist/ToggleFeatureCard.js +46 -169
- package/dist/ToggleFeatureCard.js.map +1 -1
- package/dist/cjs/Breadcrumbs.js +49 -0
- package/dist/cjs/Breadcrumbs.js.map +1 -0
- package/dist/cjs/BrowserSupport.js +329 -0
- package/dist/cjs/BrowserSupport.js.map +1 -0
- package/dist/cjs/Builder.js +556 -0
- package/dist/cjs/Builder.js.map +1 -0
- package/dist/cjs/CalendarView.js +299 -0
- package/dist/cjs/CalendarView.js.map +1 -0
- package/dist/cjs/Chevron-8a4ed9cd.js +203 -0
- package/dist/cjs/Chevron-8a4ed9cd.js.map +1 -0
- package/dist/cjs/Codeblock.js +58 -0
- package/dist/cjs/Codeblock.js.map +1 -0
- package/dist/cjs/Columns.js +31 -0
- package/dist/cjs/Columns.js.map +1 -0
- package/dist/cjs/ConfigurePageSidebar.js +104 -0
- package/dist/cjs/ConfigurePageSidebar.js.map +1 -0
- package/dist/cjs/ConfirmationModal.js +120 -0
- package/dist/cjs/ConfirmationModal.js.map +1 -0
- package/dist/cjs/Container.js +36 -0
- package/dist/cjs/Container.js.map +1 -0
- package/dist/cjs/CopyToClipboardButton.js +86 -0
- package/dist/cjs/CopyToClipboardButton.js.map +1 -0
- package/dist/cjs/Currency.js +921 -0
- package/dist/cjs/Currency.js.map +1 -0
- package/dist/cjs/CustomDomain.js +125 -0
- package/dist/cjs/CustomDomain.js.map +1 -0
- package/dist/cjs/CustomDomainDashboard.js +200 -0
- package/dist/cjs/CustomDomainDashboard.js.map +1 -0
- package/dist/cjs/DateFormat.js +40 -0
- package/dist/cjs/DateFormat.js.map +1 -0
- package/dist/cjs/DateRangeFilter.js +180 -0
- package/dist/cjs/DateRangeFilter.js.map +1 -0
- package/dist/cjs/DeleteArchiveModal.js +92 -0
- package/dist/cjs/DeleteArchiveModal.js.map +1 -0
- package/dist/cjs/DocumentEditor.js +194 -0
- package/dist/cjs/DocumentEditor.js.map +1 -0
- package/dist/cjs/DownloadMobileAppCallout.js +45 -0
- package/dist/cjs/DownloadMobileAppCallout.js.map +1 -0
- package/dist/cjs/DynamicVariables.js +106 -0
- package/dist/cjs/DynamicVariables.js.map +1 -0
- package/dist/cjs/EmailForm.js +395 -0
- package/dist/cjs/EmailForm.js.map +1 -0
- package/dist/cjs/EmailPreview.js +139 -0
- package/dist/cjs/EmailPreview.js.map +1 -0
- package/dist/cjs/EmojiPicker.js +75 -0
- package/dist/cjs/EmojiPicker.js.map +1 -0
- package/dist/cjs/EmojiReactions.js +76 -0
- package/dist/cjs/EmojiReactions.js.map +1 -0
- package/dist/cjs/ErrorPage.js +179 -0
- package/dist/cjs/ErrorPage.js.map +1 -0
- package/dist/cjs/FloatingActionMenu.js +675 -0
- package/dist/cjs/FloatingActionMenu.js.map +1 -0
- package/dist/cjs/Header.js +104 -0
- package/dist/cjs/Header.js.map +1 -0
- package/dist/cjs/HelpPopover.js +80 -0
- package/dist/cjs/HelpPopover.js.map +1 -0
- package/dist/cjs/IconPicker.js +228 -0
- package/dist/cjs/IconPicker.js.map +1 -0
- package/dist/cjs/ImageWithFallback.js +52 -0
- package/dist/cjs/ImageWithFallback.js.map +1 -0
- package/dist/cjs/InlineInput.js +233 -0
- package/dist/cjs/InlineInput.js.map +1 -0
- package/dist/cjs/Insights.js +310 -0
- package/dist/cjs/Insights.js.map +1 -0
- package/dist/cjs/IntegrationCard.js +208 -0
- package/dist/cjs/IntegrationCard.js.map +1 -0
- package/dist/cjs/IntegrationDisconnectAlert.js +48 -0
- package/dist/cjs/IntegrationDisconnectAlert.js.map +1 -0
- package/dist/cjs/IntegrationWalkthroughModal.js +51 -0
- package/dist/cjs/IntegrationWalkthroughModal.js.map +1 -0
- package/dist/cjs/IpRestriction.js +525 -0
- package/dist/cjs/IpRestriction.js.map +1 -0
- package/dist/cjs/KeyboardShortcuts.js +282 -0
- package/dist/cjs/KeyboardShortcuts.js.map +1 -0
- package/dist/cjs/LoginPage.js +198 -0
- package/dist/cjs/LoginPage.js.map +1 -0
- package/dist/cjs/MadeWith.js +38 -0
- package/dist/cjs/MadeWith.js.map +1 -0
- package/dist/cjs/MenuBar.js +208 -0
- package/dist/cjs/MenuBar.js.map +1 -0
- package/dist/cjs/Metadata.js +195 -0
- package/dist/cjs/Metadata.js.map +1 -0
- package/dist/cjs/MoreDropdown.js +152 -0
- package/dist/cjs/MoreDropdown.js.map +1 -0
- package/dist/cjs/NavigationHeader.js +177 -0
- package/dist/cjs/NavigationHeader.js.map +1 -0
- package/dist/cjs/NeetoWidget.js +912 -0
- package/dist/cjs/NeetoWidget.js.map +1 -0
- package/dist/cjs/Onboarding.js +357 -0
- package/dist/cjs/Onboarding.js.map +1 -0
- package/dist/cjs/OptionFields.js +514 -0
- package/dist/cjs/OptionFields.js.map +1 -0
- package/dist/cjs/PageLoader.js +116 -0
- package/dist/cjs/PageLoader.js.map +1 -0
- package/dist/cjs/PhoneNumber.js +363 -0
- package/dist/cjs/PhoneNumber.js.map +1 -0
- package/dist/cjs/ProductEmbed.js +774 -0
- package/dist/cjs/ProductEmbed.js.map +1 -0
- package/dist/cjs/PublishBlock.js +125 -0
- package/dist/cjs/PublishBlock.js.map +1 -0
- package/dist/cjs/PublishYourItem.js +59 -0
- package/dist/cjs/PublishYourItem.js.map +1 -0
- package/dist/cjs/Rename.js +350 -0
- package/dist/cjs/Rename.js.map +1 -0
- package/dist/cjs/ResponsiveDevicePicker.js +64 -0
- package/dist/cjs/ResponsiveDevicePicker.js.map +1 -0
- package/dist/cjs/Schedule.js +889 -0
- package/dist/cjs/Schedule.js.map +1 -0
- package/dist/cjs/Scrollable.js +46 -0
- package/dist/cjs/Scrollable.js.map +1 -0
- package/dist/cjs/Search.js +117 -0
- package/dist/cjs/Search.js.map +1 -0
- package/dist/cjs/Security.js +376 -0
- package/dist/cjs/Security.js.map +1 -0
- package/dist/cjs/SendToFields.js +272 -0
- package/dist/cjs/SendToFields.js.map +1 -0
- package/dist/cjs/Settings.js +214 -0
- package/dist/cjs/Settings.js.map +1 -0
- package/dist/cjs/ShareRecordingPane.js +195 -0
- package/dist/cjs/ShareRecordingPane.js.map +1 -0
- package/dist/cjs/ShareViaEmail.js +348 -0
- package/dist/cjs/ShareViaEmail.js.map +1 -0
- package/dist/cjs/ShareViaLink.js +507 -0
- package/dist/cjs/ShareViaLink.js.map +1 -0
- package/dist/cjs/Sidebar.js +288 -0
- package/dist/cjs/Sidebar.js.map +1 -0
- package/dist/cjs/SubHeader.js +178 -0
- package/dist/cjs/SubHeader.js.map +1 -0
- package/dist/cjs/SuffixedInput.js +111 -0
- package/dist/cjs/SuffixedInput.js.map +1 -0
- package/dist/cjs/TableWrapper.js +32 -0
- package/dist/cjs/TableWrapper.js.map +1 -0
- package/dist/cjs/Taxonomy.js +442 -0
- package/dist/cjs/Taxonomy.js.map +1 -0
- package/dist/cjs/ThemeSidebar.js +1436 -0
- package/dist/cjs/ThemeSidebar.js.map +1 -0
- package/dist/cjs/TimeFormat.js +15 -0
- package/dist/cjs/TimeFormat.js.map +1 -0
- package/dist/cjs/TimezoneMismatchModal.js +143 -0
- package/dist/cjs/TimezoneMismatchModal.js.map +1 -0
- package/dist/cjs/ToggleFeatureCard.js +209 -0
- package/dist/cjs/ToggleFeatureCard.js.map +1 -0
- package/dist/cjs/defineProperty-886ed289.js +47 -0
- package/dist/cjs/defineProperty-886ed289.js.map +1 -0
- package/dist/cjs/extends-1b35a664.js +19 -0
- package/dist/cjs/extends-1b35a664.js.map +1 -0
- package/dist/cjs/index-00fdb8c2.js +542 -0
- package/dist/cjs/index-00fdb8c2.js.map +1 -0
- package/dist/cjs/index-248c4f4c.js +1186 -0
- package/dist/cjs/index-248c4f4c.js.map +1 -0
- package/dist/cjs/index-c55ad2bc.js +375 -0
- package/dist/cjs/index-c55ad2bc.js.map +1 -0
- package/dist/cjs/inject-css-80a5faa3.js +6 -0
- package/dist/cjs/inject-css-80a5faa3.js.map +1 -0
- package/dist/cjs/objectWithoutProperties-2fed2d7d.js +33 -0
- package/dist/cjs/objectWithoutProperties-2fed2d7d.js.map +1 -0
- package/dist/cjs/slicedToArray-f320d9e7.js +61 -0
- package/dist/cjs/slicedToArray-f320d9e7.js.map +1 -0
- package/dist/cjs/toConsumableArray-9abb3858.js +22 -0
- package/dist/cjs/toConsumableArray-9abb3858.js.map +1 -0
- package/dist/cjs/useColumns-a1c3668f.js +271 -0
- package/dist/cjs/useColumns-a1c3668f.js.map +1 -0
- package/dist/defineProperty-549061a7.js +43 -0
- package/dist/defineProperty-549061a7.js.map +1 -0
- package/dist/extends-093996c9.js +17 -0
- package/dist/extends-093996c9.js.map +1 -0
- package/dist/index-90c89467.js +509 -0
- package/dist/index-90c89467.js.map +1 -0
- package/dist/index-9720867c.js +372 -0
- package/dist/index-9720867c.js.map +1 -0
- package/dist/index-e5588516.js +1184 -0
- package/dist/index-e5588516.js.map +1 -0
- package/dist/inject-css-c86de496.js +4 -0
- package/dist/inject-css-c86de496.js.map +1 -0
- package/dist/objectWithoutProperties-a0edb288.js +31 -0
- package/dist/objectWithoutProperties-a0edb288.js.map +1 -0
- package/dist/slicedToArray-b4278ecd.js +57 -0
- package/dist/slicedToArray-b4278ecd.js.map +1 -0
- package/dist/toConsumableArray-1cc38429.js +20 -0
- package/dist/toConsumableArray-1cc38429.js.map +1 -0
- package/dist/useColumns-d17d1f72.js +258 -0
- package/dist/useColumns-d17d1f72.js.map +1 -0
- package/package.json +29 -17
- package/src/translations/de.json +7 -0
- package/src/translations/en.json +191 -31
- package/src/translations/es.json +7 -0
- package/src/translations/fr.json +7 -0
- package/src/translations/nl.json +7 -0
- package/src/translations/pl.json +7 -0
- package/src/translations/pt.json +7 -0
- package/types/Breadcrumbs.d.ts +1 -0
- package/types/Builder.d.ts +61 -12
- package/types/Columns.d.ts +112 -5
- package/types/ConfigurePageSidebar.d.ts +43 -0
- package/types/CopyToClipboardButton.d.ts +3 -0
- package/types/Currency.d.ts +48 -0
- package/types/CustomDomain.d.ts +2 -0
- package/types/CustomDomainDashboard.d.ts +14 -0
- package/types/DateRangeFilter.d.ts +2 -0
- package/types/DeleteArchiveModal.d.ts +60 -0
- package/types/EmailForm.d.ts +1 -1
- package/types/EmojiPicker.d.ts +33 -0
- package/types/EmojiReactions.d.ts +60 -0
- package/types/ErrorPage.d.ts +1 -0
- package/types/FloatingActionMenu.d.ts +56 -0
- package/types/Header.d.ts +2 -1
- package/types/HelpPopover.d.ts +42 -0
- package/types/Insights.d.ts +108 -0
- package/types/IntegrationCard.d.ts +2 -0
- package/types/KeyboardShortcuts.d.ts +2 -2
- package/types/MadeWith.d.ts +16 -0
- package/types/MoreDropdown.d.ts +4 -1
- package/types/NavigationHeader.d.ts +3 -1
- package/types/Onboarding.d.ts +63 -0
- package/types/OptionFields.d.ts +63 -0
- package/types/PhoneNumber.d.ts +6 -2
- package/types/ProductEmbed.d.ts +43 -0
- package/types/Rename.d.ts +4 -1
- package/types/Schedule.d.ts +2 -0
- package/types/Search.d.ts +2 -0
- package/types/Settings.d.ts +13 -10
- package/types/ShareRecordingPane.d.ts +50 -0
- package/types/ShareViaLink.d.ts +15 -4
- package/types/Sidebar.d.ts +16 -32
- package/types/SubHeader.d.ts +0 -1
- package/types/SuffixedInput.d.ts +43 -0
- package/types/ToggleFeatureCard.d.ts +8 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InlineInput.js","sources":["../../src/components/InlineInput/constants.js","../../src/components/InlineInput/utils.js","../../src/components/InlineInput/InlineInput.jsx","../../src/components/InlineInput/FormikInlineInput.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const TOOLTIP_PROPS = {\n save: {\n content: t(\"neetoMolecules.common.actions.save\"),\n position: \"top\",\n delay: 300,\n },\n cancel: {\n content: t(\"neetoMolecules.common.actions.cancel\"),\n position: \"top\",\n delay: 300,\n },\n};\n","export const mergeRefs =\n (...refs) =>\n node =>\n refs.forEach(ref =>\n typeof ref === \"function\" ? ref(node) : (ref.current = node)\n );\n","import React, { useEffect, useState, useRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isNotEmpty, noop } from \"neetocist\";\nimport useOnClickOutside from \"neetocommons/react-utils/useOnClickOutside\";\nimport useStateWithDependency from \"neetocommons/react-utils/useStateWithDependency\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Check, Close } from \"neetoicons\";\nimport { Button, Input } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isNotNil } from \"ramda\";\n\nimport { TOOLTIP_PROPS } from \"./constants\";\nimport \"./inlineinput.scss\";\nimport { mergeRefs } from \"./utils\";\n\nconst InlineInput = React.forwardRef((props, ref) => {\n const {\n saveOnBlur = false,\n clearOnSave = false,\n nullable = false,\n value = \"\",\n isSaving,\n className = \"\",\n handleSubmit = noop,\n handleCancel = noop,\n submitButtonProps = {},\n cancelButtonProps = {},\n dirty,\n onInlineInputBlur = noop,\n ...otherProps\n } = props;\n\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [internalValue, setInternalValue] = useStateWithDependency(value ?? \"\");\n const inputRef = useRef(null);\n const inputWrapperRef = useRef(null);\n const trimmedValue = internalValue && internalValue?.trim();\n const isValidValue =\n nullable || (isNotEmpty(trimmedValue) && isNotNil(trimmedValue));\n\n const isDirty = internalValue !== value || dirty;\n\n const handleFocusOut = () => {\n if (!isValidValue || isSubmitting) return;\n\n onInlineInputBlur(trimmedValue);\n\n if (saveOnBlur && isDirty) {\n onSubmit();\n\n return;\n }\n\n onCancel();\n };\n\n useOnClickOutside(inputWrapperRef, handleFocusOut);\n\n const onSubmit = async () => {\n setIsSubmitting(true);\n await handleSubmit(trimmedValue);\n setIsSubmitting(false);\n clearOnSave && setInternalValue(\"\");\n };\n\n const onCancel = () => {\n handleCancel(trimmedValue);\n };\n\n const closeRef = useHotkeys(\n \"escape\",\n event => {\n event.stopPropagation();\n onCancel();\n },\n { mode: \"scoped\" }\n );\n\n const submitRef = useHotkeys([\"command+return\", \"return\"], () => onSubmit(), {\n mode: \"scoped\",\n enabled: isValidValue,\n });\n\n useEffect(() => inputRef.current && inputRef.current.focus(), [isSubmitting]);\n\n return (\n <div\n className={classnames(\"flex flex-grow\", { [className]: className })}\n ref={inputWrapperRef}\n >\n <Input\n disableTrimOnBlur\n className=\"neeto-molecules-autosave-input\"\n data-testid=\"neeto-molecules-autosave-input\"\n disabled={isSubmitting}\n ref={mergeRefs(inputRef, closeRef, submitRef)}\n value={internalValue}\n {...otherProps}\n suffix={\n <>\n <Button\n data-testid=\"neeto-molecules-autosave-input-save\"\n icon={Check}\n loading={isSubmitting || isSaving}\n size=\"small\"\n style=\"text\"\n tabIndex={-1}\n tooltipProps={TOOLTIP_PROPS[\"save\"]}\n onClick={onSubmit}\n {...submitButtonProps}\n disabled={\n !isValidValue ||\n isSubmitting ||\n isSaving ||\n submitButtonProps.disabled ||\n !isDirty\n }\n />\n <Button\n {...{ ref }}\n data-testid=\"neeto-molecules-autosave-input-cancel\"\n icon={Close}\n size=\"small\"\n style=\"text\"\n tabIndex={-1}\n tooltipProps={TOOLTIP_PROPS[\"cancel\"]}\n onClick={onCancel}\n {...cancelButtonProps}\n disabled={isSubmitting || isSaving || cancelButtonProps.disabled}\n />\n </>\n }\n onChange={e => {\n otherProps?.onChange?.(e);\n setInternalValue(e.target.value);\n }}\n />\n </div>\n );\n});\n\nInlineInput.displayName = \"InlineInput\";\n\nInlineInput.propTypes = {\n /**\n * To provide additional classes to the component.\n */\n className: PropTypes.string,\n /**\n * To specify the text to be displayed in the component.\n */\n value: PropTypes.string,\n /**\n * To enable submission of empty values.\n */\n nullable: PropTypes.bool,\n /**\n * To specify whether the value is being saved.\n */\n isSaving: PropTypes.bool,\n /**\n * To specify whether to save the value on blur.\n */\n saveOnBlur: PropTypes.bool,\n /**\n * To specify whether to clear the input on save.\n */\n clearOnSave: PropTypes.bool,\n /**\n * To specify additional props for submit button.\n */\n submitButtonProps: PropTypes.object,\n /**\n * To specify additional props for cancel button.\n */\n cancelButtonProps: PropTypes.object,\n /**\n * Function to be called on clicking the submit button.\n */\n handleSubmit: PropTypes.func,\n /**\n * Function to be called on clicking the cancel button .\n */\n handleCancel: PropTypes.func,\n};\n\nexport default InlineInput;\n","import React from \"react\";\n\nimport { useField, useFormikContext } from \"formik\";\nimport { omit } from \"ramda\";\n\nimport InlineInput from \"./InlineInput\";\n\nconst FormikInlineInput = ({ name, ...props }) => {\n const [field, meta, { setValue, setTouched }] = useField(name);\n\n const { submitForm, isSubmitting, resetForm, dirty } = useFormikContext();\n\n return (\n <InlineInput\n error={meta.touched ? meta.error : \"\"}\n isSaving={isSubmitting}\n {...props}\n handleCancel={() => {\n resetForm();\n props.handleCancel?.();\n }}\n handleSubmit={value => {\n setValue(value);\n\n props.handleSubmit?.(value);\n\n return submitForm();\n }}\n {...{ ...omit([\"onBlur\"], field), dirty }}\n onInlineInputBlur={trimmedValue => {\n setValue(trimmedValue);\n setTouched(true);\n }}\n />\n );\n};\n\nexport default FormikInlineInput;\n"],"names":["TOOLTIP_PROPS","save","content","t","position","delay","cancel","mergeRefs","_len","arguments","length","refs","Array","_key","node","forEach","ref","current","InlineInput","React","forwardRef","props","_props$saveOnBlur","saveOnBlur","_props$clearOnSave","clearOnSave","_props$nullable","nullable","_props$value","value","isSaving","_props$className","className","_props$handleSubmit","handleSubmit","noop","_props$handleCancel","handleCancel","_props$submitButtonPr","submitButtonProps","_props$cancelButtonPr","cancelButtonProps","dirty","_props$onInlineInputB","onInlineInputBlur","otherProps","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","isSubmitting","setIsSubmitting","_useStateWithDependen","useStateWithDependency","_useStateWithDependen2","internalValue","setInternalValue","inputRef","useRef","inputWrapperRef","trimmedValue","trim","isValidValue","isNotEmpty","isNotNil","isDirty","handleFocusOut","onSubmit","onCancel","useOnClickOutside","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","stop","apply","closeRef","useHotkeys","event","stopPropagation","mode","submitRef","enabled","useEffect","focus","createElement","classnames","_defineProperty","Input","_extends","disableTrimOnBlur","disabled","suffix","Fragment","Button","icon","Check","loading","size","style","tabIndex","tooltipProps","onClick","Close","onChange","e","_otherProps$onChange","call","target","displayName","FormikInlineInput","name","_useField","useField","_useField2","field","meta","_useField2$","setValue","setTouched","_useFormikContext","useFormikContext","submitForm","resetForm","error","touched","_objectSpread","omit"],"mappings":"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"}
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var neetoIcons = require('@bigbinary/neeto-icons');
|
|
5
|
+
var neetoui = require('@bigbinary/neetoui');
|
|
6
|
+
var reactI18next = require('react-i18next');
|
|
7
|
+
var DateRangeFilter = require('./DateRangeFilter.js');
|
|
8
|
+
var PageLoader = require('./PageLoader.js');
|
|
9
|
+
var i18next = require('i18next');
|
|
10
|
+
var ramda = require('ramda');
|
|
11
|
+
var neetoCist = require('@bigbinary/neeto-cist');
|
|
12
|
+
var HelpPopover = require('./HelpPopover.js');
|
|
13
|
+
require('./extends-1b35a664.js');
|
|
14
|
+
require('./slicedToArray-f320d9e7.js');
|
|
15
|
+
require('dayjs');
|
|
16
|
+
require('@bigbinary/neeto-commons-frontend/initializers');
|
|
17
|
+
require('./objectWithoutProperties-2fed2d7d.js');
|
|
18
|
+
require('./inject-css-80a5faa3.js');
|
|
19
|
+
require('classnames');
|
|
20
|
+
|
|
21
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
22
|
+
|
|
23
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
24
|
+
|
|
25
|
+
var DEFAULT_DEVICES = [{
|
|
26
|
+
label: i18next.t("neetoMolecules.insights.labels.devices.desktop"),
|
|
27
|
+
value: "desktop"
|
|
28
|
+
}, {
|
|
29
|
+
label: i18next.t("neetoMolecules.insights.labels.devices.mobile"),
|
|
30
|
+
value: "smartphone"
|
|
31
|
+
}];
|
|
32
|
+
var DEFAULT_OS = [{
|
|
33
|
+
label: i18next.t("neetoMolecules.insights.labels.os.macos"),
|
|
34
|
+
value: "mac"
|
|
35
|
+
}, {
|
|
36
|
+
label: i18next.t("neetoMolecules.insights.labels.os.windows"),
|
|
37
|
+
value: "windows"
|
|
38
|
+
}];
|
|
39
|
+
var DEFAULT_BROWSERS = [{
|
|
40
|
+
label: i18next.t("neetoMolecules.insights.labels.browsers.chrome"),
|
|
41
|
+
value: "chrome"
|
|
42
|
+
}, {
|
|
43
|
+
label: i18next.t("neetoMolecules.insights.labels.browsers.safari"),
|
|
44
|
+
value: "safari"
|
|
45
|
+
}];
|
|
46
|
+
({
|
|
47
|
+
label: i18next.t("neetoMolecules.insights.labels.allTime"),
|
|
48
|
+
value: {
|
|
49
|
+
startDate: null,
|
|
50
|
+
endDate: null,
|
|
51
|
+
rangeType: "all"
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
var PercentageBar = function PercentageBar(_ref) {
|
|
56
|
+
var value = _ref.value;
|
|
57
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, value && /*#__PURE__*/React__default["default"].createElement("div", {
|
|
58
|
+
className: "neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2",
|
|
59
|
+
style: {
|
|
60
|
+
width: "".concat(value, "%")
|
|
61
|
+
}
|
|
62
|
+
}), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
63
|
+
style: "body3"
|
|
64
|
+
}, value, "%"));
|
|
65
|
+
};
|
|
66
|
+
var PercentageBar$1 = /*#__PURE__*/React.memo(PercentageBar);
|
|
67
|
+
|
|
68
|
+
var MetaInfoItem = function MetaInfoItem(_ref) {
|
|
69
|
+
var name = _ref.name,
|
|
70
|
+
value = _ref.value;
|
|
71
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
72
|
+
style: "body2",
|
|
73
|
+
textTransform: "capitalize"
|
|
74
|
+
}, name), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
75
|
+
className: "col-span-3 flex items-center gap-2"
|
|
76
|
+
}, /*#__PURE__*/React__default["default"].createElement(PercentageBar$1, {
|
|
77
|
+
value: value
|
|
78
|
+
})));
|
|
79
|
+
};
|
|
80
|
+
var MetaInfoItem$1 = /*#__PURE__*/React.memo(MetaInfoItem);
|
|
81
|
+
|
|
82
|
+
var DataDistribution = function DataDistribution(_ref) {
|
|
83
|
+
var data = _ref.data;
|
|
84
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
85
|
+
className: "grid grid-cols-4 gap-2"
|
|
86
|
+
}, data.map(function (_ref2) {
|
|
87
|
+
var name = _ref2.name,
|
|
88
|
+
value = _ref2.value;
|
|
89
|
+
return /*#__PURE__*/React__default["default"].createElement(MetaInfoItem$1, {
|
|
90
|
+
name: name,
|
|
91
|
+
value: value,
|
|
92
|
+
key: name
|
|
93
|
+
});
|
|
94
|
+
}));
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
var getSum = function getSum(data, searchKey) {
|
|
98
|
+
var sum = 0;
|
|
99
|
+
for (var key in data) {
|
|
100
|
+
if (key.includes(searchKey)) sum += data[key];
|
|
101
|
+
}
|
|
102
|
+
return sum;
|
|
103
|
+
};
|
|
104
|
+
var transformInsights = function transformInsights(data, defaultItems) {
|
|
105
|
+
var othersData = Object.keys(data).filter(function (key) {
|
|
106
|
+
return !neetoCist.existsBy({
|
|
107
|
+
value: key
|
|
108
|
+
}, defaultItems);
|
|
109
|
+
}).map(function (key) {
|
|
110
|
+
return {
|
|
111
|
+
name: key,
|
|
112
|
+
value: data[key]
|
|
113
|
+
};
|
|
114
|
+
});
|
|
115
|
+
var defaultData = defaultItems.map(function (_ref) {
|
|
116
|
+
var label = _ref.label,
|
|
117
|
+
value = _ref.value;
|
|
118
|
+
return {
|
|
119
|
+
name: label,
|
|
120
|
+
value: getSum(data, value) || 0
|
|
121
|
+
};
|
|
122
|
+
});
|
|
123
|
+
return {
|
|
124
|
+
defaultData: defaultData,
|
|
125
|
+
othersData: othersData
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
var MetaInfo = function MetaInfo(_ref) {
|
|
130
|
+
var type = _ref.type,
|
|
131
|
+
data = _ref.data,
|
|
132
|
+
defaultItems = _ref.defaultItems;
|
|
133
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
134
|
+
t = _useTranslation.t;
|
|
135
|
+
var _transformInsights = transformInsights(data, defaultItems),
|
|
136
|
+
defaultData = _transformInsights.defaultData,
|
|
137
|
+
othersData = _transformInsights.othersData;
|
|
138
|
+
var othersSum = ramda.sum(ramda.values(ramda.pluck("value", othersData)));
|
|
139
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
140
|
+
className: "neeto-ui-bg-gray-100 neeto-ui-rounded p-4"
|
|
141
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
142
|
+
className: "mb-4",
|
|
143
|
+
style: "h6",
|
|
144
|
+
textTransform: "uppercase",
|
|
145
|
+
weight: "bold"
|
|
146
|
+
}, type), /*#__PURE__*/React__default["default"].createElement(DataDistribution, {
|
|
147
|
+
data: defaultData
|
|
148
|
+
}), /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
|
|
149
|
+
content: /*#__PURE__*/React__default["default"].createElement(DataDistribution, {
|
|
150
|
+
data: othersData
|
|
151
|
+
}),
|
|
152
|
+
disabled: !othersSum,
|
|
153
|
+
position: "bottom"
|
|
154
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
155
|
+
className: "mt-2 grid grid-cols-4 gap-2"
|
|
156
|
+
}, /*#__PURE__*/React__default["default"].createElement(MetaInfoItem$1, {
|
|
157
|
+
name: t("neetoMolecules.insights.others"),
|
|
158
|
+
value: othersSum
|
|
159
|
+
}))));
|
|
160
|
+
};
|
|
161
|
+
var MetaInfo$1 = /*#__PURE__*/React.memo(MetaInfo);
|
|
162
|
+
|
|
163
|
+
var TimeItem = function TimeItem(_ref) {
|
|
164
|
+
var value = _ref.value,
|
|
165
|
+
suffix = _ref.suffix;
|
|
166
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
167
|
+
className: "flex items-end",
|
|
168
|
+
"data-testid": "time-item"
|
|
169
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
170
|
+
className: "mr-1",
|
|
171
|
+
style: "h1",
|
|
172
|
+
weight: "semibold"
|
|
173
|
+
}, value), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
174
|
+
lineHeight: "loose",
|
|
175
|
+
style: "body2"
|
|
176
|
+
}, suffix));
|
|
177
|
+
};
|
|
178
|
+
var TimeItem$1 = /*#__PURE__*/React.memo(TimeItem);
|
|
179
|
+
|
|
180
|
+
var MetricItem = function MetricItem(_ref) {
|
|
181
|
+
var metric = _ref.metric,
|
|
182
|
+
value = _ref.value,
|
|
183
|
+
helpText = _ref.helpText,
|
|
184
|
+
isTime = _ref.isTime,
|
|
185
|
+
isPercentage = _ref.isPercentage;
|
|
186
|
+
var renderTime = function renderTime(value) {
|
|
187
|
+
var hours = value.h,
|
|
188
|
+
minutes = value.m,
|
|
189
|
+
seconds = value.s;
|
|
190
|
+
var showSeconds = !hours && !minutes;
|
|
191
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
192
|
+
className: "flex gap-2"
|
|
193
|
+
}, !!hours && /*#__PURE__*/React__default["default"].createElement(TimeItem$1, {
|
|
194
|
+
suffix: "H",
|
|
195
|
+
value: hours
|
|
196
|
+
}), !!minutes && /*#__PURE__*/React__default["default"].createElement(TimeItem$1, {
|
|
197
|
+
suffix: "M",
|
|
198
|
+
value: minutes
|
|
199
|
+
}), (!!seconds || showSeconds) && /*#__PURE__*/React__default["default"].createElement(TimeItem$1, {
|
|
200
|
+
suffix: "S",
|
|
201
|
+
value: seconds
|
|
202
|
+
}));
|
|
203
|
+
};
|
|
204
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
205
|
+
className: "nf-insights__metric-item neeto-ui-border-gray-200 border-b pb-4"
|
|
206
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
207
|
+
className: "flex items-center justify-between gap-2"
|
|
208
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
209
|
+
className: "flex items-end"
|
|
210
|
+
}, isTime ? renderTime(value) : /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
211
|
+
className: "mr-1",
|
|
212
|
+
"data-testid": "insights-count",
|
|
213
|
+
style: "h1",
|
|
214
|
+
weight: "semibold"
|
|
215
|
+
}, value || 0, isPercentage ? "%" : "")), helpText && /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(HelpPopover, {
|
|
216
|
+
description: helpText
|
|
217
|
+
}))), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
218
|
+
className: "neeto-ui-text-gray-700",
|
|
219
|
+
"data-cy": "insights-type",
|
|
220
|
+
style: "body2"
|
|
221
|
+
}, metric));
|
|
222
|
+
};
|
|
223
|
+
var MetricItem$1 = /*#__PURE__*/React.memo(MetricItem);
|
|
224
|
+
|
|
225
|
+
var Insights = function Insights(_ref) {
|
|
226
|
+
var insightsData = _ref.insightsData,
|
|
227
|
+
isLoading = _ref.isLoading,
|
|
228
|
+
timePeriod = _ref.timePeriod,
|
|
229
|
+
setTimePeriod = _ref.setTimePeriod,
|
|
230
|
+
_ref$helpTexts = _ref.helpTexts,
|
|
231
|
+
helpTexts = _ref$helpTexts === void 0 ? {} : _ref$helpTexts,
|
|
232
|
+
_ref$showWarningMessa = _ref.showWarningMessage,
|
|
233
|
+
showWarningMessage = _ref$showWarningMessa === void 0 ? false : _ref$showWarningMessa;
|
|
234
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
235
|
+
t = _useTranslation.t;
|
|
236
|
+
var visitCount = insightsData.visitCount,
|
|
237
|
+
startCount = insightsData.startCount,
|
|
238
|
+
submissionCount = insightsData.submissionCount,
|
|
239
|
+
completionRate = insightsData.completionRate,
|
|
240
|
+
averageSubmissionTime = insightsData.averageSubmissionTime,
|
|
241
|
+
devices = insightsData.devices,
|
|
242
|
+
operatingSystems = insightsData.operatingSystems,
|
|
243
|
+
browsers = insightsData.browsers;
|
|
244
|
+
if (isLoading) return /*#__PURE__*/React__default["default"].createElement(PageLoader, null);
|
|
245
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
246
|
+
className: "mx-auto pt-10",
|
|
247
|
+
"data-testid": "insights"
|
|
248
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
249
|
+
className: "mb-11 flex w-full items-center "
|
|
250
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
251
|
+
"data-cy": "submissions-insights-title",
|
|
252
|
+
style: "h2"
|
|
253
|
+
}, t("neetoMolecules.insights.title")), showWarningMessage && /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
|
|
254
|
+
content: t("neetoMolecules.insights.dataInaccuracyWarning"),
|
|
255
|
+
position: "right"
|
|
256
|
+
}, /*#__PURE__*/React__default["default"].createElement("span", {
|
|
257
|
+
className: "ml-3"
|
|
258
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoIcons.Warning, {
|
|
259
|
+
className: "neeto-ui-text-warning-500",
|
|
260
|
+
"data-testid": "insights-warning",
|
|
261
|
+
size: 20
|
|
262
|
+
}))), /*#__PURE__*/React__default["default"].createElement("span", {
|
|
263
|
+
className: "ml-auto"
|
|
264
|
+
}, /*#__PURE__*/React__default["default"].createElement(DateRangeFilter, {
|
|
265
|
+
setTimePeriod: setTimePeriod,
|
|
266
|
+
timePeriod: timePeriod
|
|
267
|
+
}))), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
268
|
+
className: "mb-8 flex flex-wrap justify-between"
|
|
269
|
+
}, /*#__PURE__*/React__default["default"].createElement(MetricItem$1, {
|
|
270
|
+
helpText: helpTexts["visitCount"],
|
|
271
|
+
metric: t("neetoMolecules.insights.metrics.visits"),
|
|
272
|
+
value: visitCount
|
|
273
|
+
}), /*#__PURE__*/React__default["default"].createElement(MetricItem$1, {
|
|
274
|
+
helpText: helpTexts["startCount"],
|
|
275
|
+
metric: t("neetoMolecules.insights.metrics.starts"),
|
|
276
|
+
value: startCount
|
|
277
|
+
}), /*#__PURE__*/React__default["default"].createElement(MetricItem$1, {
|
|
278
|
+
helpText: helpTexts["submissions"],
|
|
279
|
+
metric: t("neetoMolecules.insights.metrics.submissions"),
|
|
280
|
+
value: submissionCount
|
|
281
|
+
}), /*#__PURE__*/React__default["default"].createElement(MetricItem$1, {
|
|
282
|
+
isPercentage: true,
|
|
283
|
+
helpText: helpTexts["completionRate"],
|
|
284
|
+
metric: t("neetoMolecules.insights.metrics.completionRate"),
|
|
285
|
+
value: completionRate
|
|
286
|
+
}), /*#__PURE__*/React__default["default"].createElement(MetricItem$1, {
|
|
287
|
+
isTime: true,
|
|
288
|
+
helpText: helpTexts["averageSubmissionTime"],
|
|
289
|
+
metric: t("neetoMolecules.insights.metrics.avgTimeToComplete"),
|
|
290
|
+
timeSuffix: t("neetoMolecules.insights.mins"),
|
|
291
|
+
value: averageSubmissionTime
|
|
292
|
+
})), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
293
|
+
className: "grid grid-cols-1 gap-6 sm:grid-cols-2 md:grid-cols-3"
|
|
294
|
+
}, /*#__PURE__*/React__default["default"].createElement(MetaInfo$1, {
|
|
295
|
+
data: devices,
|
|
296
|
+
defaultItems: DEFAULT_DEVICES,
|
|
297
|
+
type: t("neetoMolecules.insights.devices")
|
|
298
|
+
}), /*#__PURE__*/React__default["default"].createElement(MetaInfo$1, {
|
|
299
|
+
data: operatingSystems,
|
|
300
|
+
defaultItems: DEFAULT_OS,
|
|
301
|
+
type: t("neetoMolecules.insights.os")
|
|
302
|
+
}), /*#__PURE__*/React__default["default"].createElement(MetaInfo$1, {
|
|
303
|
+
data: browsers,
|
|
304
|
+
defaultItems: DEFAULT_BROWSERS,
|
|
305
|
+
type: t("neetoMolecules.insights.browsers")
|
|
306
|
+
})));
|
|
307
|
+
};
|
|
308
|
+
|
|
309
|
+
module.exports = Insights;
|
|
310
|
+
//# sourceMappingURL=Insights.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Insights.js","sources":["../../src/components/Insights/constants.js","../../src/components/Insights/MetaInfo/PercentageBar.jsx","../../src/components/Insights/MetaInfo/MetaInfoItem.jsx","../../src/components/Insights/MetaInfo/DataDistribution.jsx","../../src/components/Insights/utils.js","../../src/components/Insights/MetaInfo/index.jsx","../../src/components/Insights/TimeItem.jsx","../../src/components/Insights/MetricItem.jsx","../../src/components/Insights/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const DEFAULT_DEVICES = [\n {\n label: t(\"neetoMolecules.insights.labels.devices.desktop\"),\n value: \"desktop\",\n },\n {\n label: t(\"neetoMolecules.insights.labels.devices.mobile\"),\n value: \"smartphone\",\n },\n];\n\nexport const DEFAULT_OS = [\n { label: t(\"neetoMolecules.insights.labels.os.macos\"), value: \"mac\" },\n {\n label: t(\"neetoMolecules.insights.labels.os.windows\"),\n value: \"windows\",\n },\n];\n\nexport const DEFAULT_BROWSERS = [\n {\n label: t(\"neetoMolecules.insights.labels.browsers.chrome\"),\n value: \"chrome\",\n },\n {\n label: t(\"neetoMolecules.insights.labels.browsers.safari\"),\n value: \"safari\",\n },\n];\n\nexport const INITIAL_TIME_PERIOD_VALUE = {\n label: t(\"neetoMolecules.insights.labels.allTime\"),\n value: { startDate: null, endDate: null, rangeType: \"all\" },\n};\n","import React, { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nconst PercentageBar = ({ value }) => (\n <>\n {value && (\n <div\n className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2\"\n style={{ width: `${value}%` }}\n />\n )}\n <Typography style=\"body3\">{value}%</Typography>\n </>\n);\n\nexport default memo(PercentageBar);\n","import React, { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nimport PercentageBar from \"./PercentageBar\";\n\nconst MetaInfoItem = ({ name, value }) => (\n <>\n <Typography style=\"body2\" textTransform=\"capitalize\">\n {name}\n </Typography>\n <div className=\"col-span-3 flex items-center gap-2\">\n <PercentageBar {...{ value }} />\n </div>\n </>\n);\n\nexport default memo(MetaInfoItem);\n","import React from \"react\";\n\nimport MetaInfoItem from \"./MetaInfoItem\";\n\nconst DataDistribution = ({ data }) => (\n <div className=\"grid grid-cols-4 gap-2\">\n {data.map(({ name, value }) => (\n <MetaInfoItem {...{ name, value }} key={name} />\n ))}\n </div>\n);\n\nexport default DataDistribution;\n","import { existsBy } from \"neetocist\";\n\nconst getSum = (data, searchKey) => {\n let sum = 0;\n for (const key in data) {\n if (key.includes(searchKey)) sum += data[key];\n }\n\n return sum;\n};\n\nexport const transformInsights = (data, defaultItems) => {\n const othersData = Object.keys(data)\n .filter(key => !existsBy({ value: key }, defaultItems))\n .map(key => ({ name: key, value: data[key] }));\n\n const defaultData = defaultItems.map(({ label, value }) => ({\n name: label,\n value: getSum(data, value) || 0,\n }));\n\n return { defaultData, othersData };\n};\n","import React, { memo } from \"react\";\n\nimport { Tooltip, Typography } from \"neetoui\";\nimport { pluck, sum, values } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DataDistribution from \"./DataDistribution\";\nimport MetaInfoItem from \"./MetaInfoItem\";\n\nimport { transformInsights } from \"../utils\";\n\nconst MetaInfo = ({ type, data, defaultItems }) => {\n const { t } = useTranslation();\n const { defaultData, othersData } = transformInsights(data, defaultItems);\n\n const othersSum = sum(values(pluck(\"value\", othersData)));\n\n return (\n <div className=\"neeto-ui-bg-gray-100 neeto-ui-rounded p-4\">\n <Typography\n className=\"mb-4\"\n style=\"h6\"\n textTransform=\"uppercase\"\n weight=\"bold\"\n >\n {type}\n </Typography>\n <DataDistribution data={defaultData} />\n <Tooltip\n content={<DataDistribution data={othersData} />}\n disabled={!othersSum}\n position=\"bottom\"\n >\n <div className=\"mt-2 grid grid-cols-4 gap-2\">\n <MetaInfoItem\n name={t(\"neetoMolecules.insights.others\")}\n value={othersSum}\n />\n </div>\n </Tooltip>\n </div>\n );\n};\n\nexport default memo(MetaInfo);\n","import React, { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nconst TimeItem = ({ value, suffix }) => (\n <div className=\"flex items-end\" data-testid=\"time-item\">\n <Typography className=\"mr-1\" style=\"h1\" weight=\"semibold\">\n {value}\n </Typography>\n <Typography lineHeight=\"loose\" style=\"body2\">\n {suffix}\n </Typography>\n </div>\n);\n\nexport default memo(TimeItem);\n","import React, { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nimport HelpPopover from \"components/HelpPopover\";\n\nimport TimeItem from \"./TimeItem\";\n\nconst MetricItem = ({ metric, value, helpText, isTime, isPercentage }) => {\n const renderTime = value => {\n const { h: hours, m: minutes, s: seconds } = value;\n const showSeconds = !hours && !minutes;\n\n return (\n <div className=\"flex gap-2\">\n {!!hours && <TimeItem suffix=\"H\" value={hours} />}\n {!!minutes && <TimeItem suffix=\"M\" value={minutes} />}\n {(!!seconds || showSeconds) && <TimeItem suffix=\"S\" value={seconds} />}\n </div>\n );\n };\n\n return (\n <div className=\"nf-insights__metric-item neeto-ui-border-gray-200 border-b pb-4\">\n <div className=\"flex items-center justify-between gap-2\">\n <div className=\"flex items-end\">\n {isTime ? (\n renderTime(value)\n ) : (\n <Typography\n className=\"mr-1\"\n data-testid=\"insights-count\"\n style=\"h1\"\n weight=\"semibold\"\n >\n {value || 0}\n {isPercentage ? \"%\" : \"\"}\n </Typography>\n )}\n </div>\n {helpText && (\n <div>\n <HelpPopover description={helpText} />\n </div>\n )}\n </div>\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-cy=\"insights-type\"\n style=\"body2\"\n >\n {metric}\n </Typography>\n </div>\n );\n};\n\nexport default memo(MetricItem);\n","import React from \"react\";\n\nimport { Warning } from \"neetoicons\";\nimport { Tooltip, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DateRangeFilter from \"components/DateRangeFilter\";\nimport PageLoader from \"components/PageLoader\";\n\nimport { DEFAULT_DEVICES, DEFAULT_BROWSERS, DEFAULT_OS } from \"./constants\";\nimport MetaInfo from \"./MetaInfo\";\nimport MetricItem from \"./MetricItem\";\n\nconst Insights = ({\n insightsData,\n isLoading,\n timePeriod,\n setTimePeriod,\n helpTexts = {},\n showWarningMessage = false,\n}) => {\n const { t } = useTranslation();\n\n const {\n visitCount,\n startCount,\n submissionCount,\n completionRate,\n averageSubmissionTime,\n devices,\n operatingSystems,\n browsers,\n } = insightsData;\n\n if (isLoading) return <PageLoader />;\n\n return (\n <div className=\"mx-auto pt-10\" data-testid=\"insights\">\n <div className=\"mb-11 flex w-full items-center \">\n <Typography data-cy=\"submissions-insights-title\" style=\"h2\">\n {t(\"neetoMolecules.insights.title\")}\n </Typography>\n {showWarningMessage && (\n <Tooltip\n content={t(\"neetoMolecules.insights.dataInaccuracyWarning\")}\n position=\"right\"\n >\n <span className=\"ml-3\">\n <Warning\n className=\"neeto-ui-text-warning-500\"\n data-testid=\"insights-warning\"\n size={20}\n />\n </span>\n </Tooltip>\n )}\n <span className=\"ml-auto\">\n <DateRangeFilter {...{ setTimePeriod, timePeriod }} />\n </span>\n </div>\n <div className=\"mb-8 flex flex-wrap justify-between\">\n <MetricItem\n helpText={helpTexts[\"visitCount\"]}\n metric={t(\"neetoMolecules.insights.metrics.visits\")}\n value={visitCount}\n />\n <MetricItem\n helpText={helpTexts[\"startCount\"]}\n metric={t(\"neetoMolecules.insights.metrics.starts\")}\n value={startCount}\n />\n <MetricItem\n helpText={helpTexts[\"submissions\"]}\n metric={t(\"neetoMolecules.insights.metrics.submissions\")}\n value={submissionCount}\n />\n <MetricItem\n isPercentage\n helpText={helpTexts[\"completionRate\"]}\n metric={t(\"neetoMolecules.insights.metrics.completionRate\")}\n value={completionRate}\n />\n <MetricItem\n isTime\n helpText={helpTexts[\"averageSubmissionTime\"]}\n metric={t(\"neetoMolecules.insights.metrics.avgTimeToComplete\")}\n timeSuffix={t(\"neetoMolecules.insights.mins\")}\n value={averageSubmissionTime}\n />\n </div>\n <div className=\"grid grid-cols-1 gap-6 sm:grid-cols-2 md:grid-cols-3\">\n <MetaInfo\n data={devices}\n defaultItems={DEFAULT_DEVICES}\n type={t(\"neetoMolecules.insights.devices\")}\n />\n <MetaInfo\n data={operatingSystems}\n defaultItems={DEFAULT_OS}\n type={t(\"neetoMolecules.insights.os\")}\n />\n <MetaInfo\n data={browsers}\n defaultItems={DEFAULT_BROWSERS}\n type={t(\"neetoMolecules.insights.browsers\")}\n />\n </div>\n </div>\n );\n};\n\nInsights.propTypes = {\n /**\n * Object containing metrics and statistics for insights\n */\n insightsData: PropTypes.shape({\n visitCount: PropTypes.number,\n startCount: PropTypes.number,\n submissionCount: PropTypes.number,\n completionRate: PropTypes.number,\n averageSubmissionTime: PropTypes.shape({\n h: PropTypes.number,\n m: PropTypes.number,\n s: PropTypes.number,\n }),\n devices: PropTypes.shape({\n desktop: PropTypes.number,\n smartphone: PropTypes.number,\n }),\n operatingSystems: PropTypes.shape({\n mac: PropTypes.number,\n windows: PropTypes.number,\n }),\n browsers: PropTypes.shape({\n chrome: PropTypes.number,\n safari: PropTypes.number,\n }),\n }),\n /**\n * Indicates whether insights data is currently being fetched from an API\n */\n isLoading: PropTypes.bool,\n /**\n * The state corresponding to the currently selected date range.\n */\n timePeriod: PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.object,\n }),\n /**\n * The setter method for `timePeriod` state.\n */\n setTimePeriod: PropTypes.func,\n /**\n * Object containing explanatory text for each metric, providing additional context that can help users understand the significance of the metrics displayed.\n */\n helpTexts: PropTypes.shape({\n visitCount: PropTypes.string,\n startCount: PropTypes.string,\n submissions: PropTypes.string,\n completionRate: PropTypes.string,\n averageSubmissionTime: PropTypes.string,\n }),\n /**\n * Displays a warning to indicate that the insights may not be accurate, as the insights integration occurred after the record's creation.\n */\n showWarningMessage: PropTypes.bool,\n};\n\nexport default Insights;\n"],"names":["DEFAULT_DEVICES","label","t","value","DEFAULT_OS","DEFAULT_BROWSERS","startDate","endDate","rangeType","PercentageBar","_ref","React","createElement","Fragment","className","style","width","concat","Typography","memo","MetaInfoItem","name","textTransform","DataDistribution","data","map","_ref2","key","getSum","searchKey","sum","includes","transformInsights","defaultItems","othersData","Object","keys","filter","existsBy","defaultData","MetaInfo","type","_useTranslation","useTranslation","_transformInsights","othersSum","values","pluck","weight","Tooltip","content","disabled","position","TimeItem","suffix","lineHeight","MetricItem","metric","helpText","isTime","isPercentage","renderTime","hours","h","minutes","m","seconds","s","showSeconds","HelpPopover","description","Insights","insightsData","isLoading","timePeriod","setTimePeriod","_ref$helpTexts","helpTexts","_ref$showWarningMessa","showWarningMessage","visitCount","startCount","submissionCount","completionRate","averageSubmissionTime","devices","operatingSystems","browsers","PageLoader","Warning","size","DateRangeFilter","timeSuffix"],"mappings":"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"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _extends = require('./extends-1b35a664.js');
|
|
4
|
+
var objectWithoutProperties = require('./objectWithoutProperties-2fed2d7d.js');
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var classnames = require('classnames');
|
|
7
|
+
var neetoCist = require('@bigbinary/neeto-cist');
|
|
8
|
+
var general = require('@bigbinary/neeto-commons-frontend/utils/general');
|
|
9
|
+
var neetoui = require('@bigbinary/neetoui');
|
|
10
|
+
var ramda = require('ramda');
|
|
11
|
+
var reactI18next = require('react-i18next');
|
|
12
|
+
var MoreDropdown = require('./MoreDropdown.js');
|
|
13
|
+
var neetoIcons = require('@bigbinary/neeto-icons');
|
|
14
|
+
require('./defineProperty-886ed289.js');
|
|
15
|
+
require('./inject-css-80a5faa3.js');
|
|
16
|
+
|
|
17
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
18
|
+
|
|
19
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
20
|
+
var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
21
|
+
|
|
22
|
+
var Dropdown = function Dropdown(_ref) {
|
|
23
|
+
var customDropdown = _ref.customDropdown,
|
|
24
|
+
_ref$handleManage = _ref.handleManage,
|
|
25
|
+
handleManage = _ref$handleManage === void 0 ? neetoCist.noop : _ref$handleManage,
|
|
26
|
+
_ref$hideDisconnect = _ref.hideDisconnect,
|
|
27
|
+
hideDisconnect = _ref$hideDisconnect === void 0 ? false : _ref$hideDisconnect,
|
|
28
|
+
_ref$onDisconnect = _ref.onDisconnect,
|
|
29
|
+
onDisconnect = _ref$onDisconnect === void 0 ? neetoCist.noop : _ref$onDisconnect;
|
|
30
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
31
|
+
t = _useTranslation.t;
|
|
32
|
+
if (ramda.isNotNil(customDropdown)) {
|
|
33
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
34
|
+
onClick: function onClick(e) {
|
|
35
|
+
return e.stopPropagation();
|
|
36
|
+
}
|
|
37
|
+
}, customDropdown);
|
|
38
|
+
}
|
|
39
|
+
var isManageable = ramda.isNotNil(handleManage);
|
|
40
|
+
if (!isManageable && hideDisconnect) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
44
|
+
onClick: function onClick(e) {
|
|
45
|
+
return e.stopPropagation();
|
|
46
|
+
}
|
|
47
|
+
}, /*#__PURE__*/React__default["default"].createElement(MoreDropdown, {
|
|
48
|
+
menuItems: [{
|
|
49
|
+
isVisible: isManageable,
|
|
50
|
+
onClick: handleManage,
|
|
51
|
+
label: t("neetoMolecules.integrationCard.manage"),
|
|
52
|
+
key: "integration-card-manage-integration"
|
|
53
|
+
}, {
|
|
54
|
+
isVisible: !hideDisconnect,
|
|
55
|
+
onClick: onDisconnect,
|
|
56
|
+
label: t("neetoMolecules.integrationCard.disconnect"),
|
|
57
|
+
key: "integration-card-manage-disconnection"
|
|
58
|
+
}]
|
|
59
|
+
}));
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
var Status = function Status(_ref) {
|
|
63
|
+
var isExpired = _ref.isExpired;
|
|
64
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
65
|
+
t = _useTranslation.t;
|
|
66
|
+
var tagProps = isExpired ? {
|
|
67
|
+
icon: neetoIcons.Warning,
|
|
68
|
+
label: t("neetoMolecules.integrationCard.tags.expired"),
|
|
69
|
+
style: "warning"
|
|
70
|
+
} : {
|
|
71
|
+
icon: neetoIcons.Check,
|
|
72
|
+
label: t("neetoMolecules.integrationCard.tags.connected"),
|
|
73
|
+
style: "success"
|
|
74
|
+
};
|
|
75
|
+
return /*#__PURE__*/React__default["default"].createElement(neetoui.Tag, _extends._extends({
|
|
76
|
+
className: "flex-row-reverse"
|
|
77
|
+
}, tagProps, {
|
|
78
|
+
"data-testid": "integration-status"
|
|
79
|
+
}));
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
var _excluded = ["icon", "subIcons", "label", "description", "className", "onConnect", "onDisconnect", "onManage", "isLoading", "isConnected", "isFailed", "isExpired", "disabled", "hidden", "hideDisconnect", "onClick", "tooltipProps", "customDropdown", "dataCy", "connectPath", "connectUrl", "children"];
|
|
83
|
+
var IntegrationCard = function IntegrationCard(_ref) {
|
|
84
|
+
var Icon = _ref.icon,
|
|
85
|
+
_ref$subIcons = _ref.subIcons,
|
|
86
|
+
subIcons = _ref$subIcons === void 0 ? [] : _ref$subIcons,
|
|
87
|
+
_ref$label = _ref.label,
|
|
88
|
+
label = _ref$label === void 0 ? "" : _ref$label,
|
|
89
|
+
_ref$description = _ref.description,
|
|
90
|
+
description = _ref$description === void 0 ? "" : _ref$description,
|
|
91
|
+
_ref$className = _ref.className,
|
|
92
|
+
className = _ref$className === void 0 ? "" : _ref$className,
|
|
93
|
+
_ref$onConnect = _ref.onConnect,
|
|
94
|
+
onConnect = _ref$onConnect === void 0 ? neetoCist.noop : _ref$onConnect,
|
|
95
|
+
_ref$onDisconnect = _ref.onDisconnect,
|
|
96
|
+
onDisconnect = _ref$onDisconnect === void 0 ? neetoCist.noop : _ref$onDisconnect,
|
|
97
|
+
_ref$onManage = _ref.onManage,
|
|
98
|
+
onManage = _ref$onManage === void 0 ? undefined : _ref$onManage,
|
|
99
|
+
_ref$isLoading = _ref.isLoading,
|
|
100
|
+
isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
|
|
101
|
+
_ref$isConnected = _ref.isConnected,
|
|
102
|
+
isConnected = _ref$isConnected === void 0 ? false : _ref$isConnected,
|
|
103
|
+
_ref$isFailed = _ref.isFailed,
|
|
104
|
+
isFailed = _ref$isFailed === void 0 ? false : _ref$isFailed,
|
|
105
|
+
_ref$isExpired = _ref.isExpired,
|
|
106
|
+
isExpired = _ref$isExpired === void 0 ? false : _ref$isExpired,
|
|
107
|
+
_ref$disabled = _ref.disabled,
|
|
108
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
109
|
+
_ref$hidden = _ref.hidden,
|
|
110
|
+
hidden = _ref$hidden === void 0 ? false : _ref$hidden,
|
|
111
|
+
_ref$hideDisconnect = _ref.hideDisconnect,
|
|
112
|
+
hideDisconnect = _ref$hideDisconnect === void 0 ? false : _ref$hideDisconnect,
|
|
113
|
+
_ref$onClick = _ref.onClick,
|
|
114
|
+
onCardClick = _ref$onClick === void 0 ? undefined : _ref$onClick,
|
|
115
|
+
_ref$tooltipProps = _ref.tooltipProps,
|
|
116
|
+
tooltipProps = _ref$tooltipProps === void 0 ? {} : _ref$tooltipProps,
|
|
117
|
+
_ref$customDropdown = _ref.customDropdown,
|
|
118
|
+
customDropdown = _ref$customDropdown === void 0 ? null : _ref$customDropdown,
|
|
119
|
+
_ref$dataCy = _ref.dataCy,
|
|
120
|
+
dataCy = _ref$dataCy === void 0 ? "" : _ref$dataCy,
|
|
121
|
+
_ref$connectPath = _ref.connectPath,
|
|
122
|
+
connectPath = _ref$connectPath === void 0 ? "" : _ref$connectPath,
|
|
123
|
+
_ref$connectUrl = _ref.connectUrl,
|
|
124
|
+
connectUrl = _ref$connectUrl === void 0 ? "" : _ref$connectUrl,
|
|
125
|
+
children = _ref.children,
|
|
126
|
+
otherProps = objectWithoutProperties._objectWithoutProperties(_ref, _excluded);
|
|
127
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
128
|
+
t = _useTranslation.t;
|
|
129
|
+
if (hidden) return null;
|
|
130
|
+
var isCardClickable = isConnected && ramda.isNotNil(onCardClick);
|
|
131
|
+
var cardProps = isCardClickable ? {
|
|
132
|
+
onClick: onCardClick
|
|
133
|
+
} : {};
|
|
134
|
+
return /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, _extends._extends({
|
|
135
|
+
disabled: !disabled,
|
|
136
|
+
position: "top",
|
|
137
|
+
content: disabled && t("neetoMolecules.integrationCard.tooltip.integrationNotAvailable")
|
|
138
|
+
}, tooltipProps), /*#__PURE__*/React__default["default"].createElement("div", _extends._extends({
|
|
139
|
+
"data-cy": dataCy,
|
|
140
|
+
"data-testid": "integration-card",
|
|
141
|
+
className: classnames__default["default"]("neeto-ui-border-gray-300 neeto-ui-shadow-xs hover:neeto-ui-border-gray-500 focus:neeto-ui-border-gray-500 neeto-ui-rounded-lg flex flex-col border p-6 no-underline outline-none transition-colors", {
|
|
142
|
+
"hover:neeto-ui-bg-100 cursor-not-allowed opacity-50": disabled,
|
|
143
|
+
"cursor-pointer": isCardClickable
|
|
144
|
+
}, className)
|
|
145
|
+
}, cardProps, otherProps), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
146
|
+
className: "flex flex-grow justify-between",
|
|
147
|
+
"data-cy": "integration-tabs"
|
|
148
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
149
|
+
className: "flex min-w-0 flex-col justify-end"
|
|
150
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
151
|
+
className: "relative mb-4 flex h-8"
|
|
152
|
+
}, Icon && /*#__PURE__*/React__default["default"].createElement(Icon, {
|
|
153
|
+
size: 32
|
|
154
|
+
})), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
155
|
+
className: "my-auto"
|
|
156
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
157
|
+
className: "mb-2",
|
|
158
|
+
"data-cy": "integration-card-label",
|
|
159
|
+
style: "h4",
|
|
160
|
+
weight: "semibold"
|
|
161
|
+
}, label), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
162
|
+
className: "break-words",
|
|
163
|
+
"data-cy": "".concat(general.joinHyphenCase(label), "-integration-description"),
|
|
164
|
+
style: "body2"
|
|
165
|
+
}, description), children)), neetoCist.isNotEmpty(subIcons) && /*#__PURE__*/React__default["default"].createElement("div", {
|
|
166
|
+
className: "flex h-24 flex-col gap-2"
|
|
167
|
+
}, subIcons.map(function (Icon, index) {
|
|
168
|
+
return /*#__PURE__*/React__default["default"].createElement(Icon, {
|
|
169
|
+
className: "neeto-ui-text-gray-600",
|
|
170
|
+
key: index,
|
|
171
|
+
size: 24
|
|
172
|
+
});
|
|
173
|
+
}))), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
174
|
+
className: "neeto-ui-border-gray-300 mt-4 w-full border-t pt-2"
|
|
175
|
+
}, isLoading ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
176
|
+
className: "mt-3 flex items-center justify-start"
|
|
177
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Spinner, null)) : /*#__PURE__*/React__default["default"].createElement("div", {
|
|
178
|
+
className: "flex h-8 items-center justify-between"
|
|
179
|
+
}, isConnected && /*#__PURE__*/React__default["default"].createElement(Status, {
|
|
180
|
+
isExpired: isExpired
|
|
181
|
+
}), isFailed && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
182
|
+
className: "neeto-ui-text-warning-500",
|
|
183
|
+
"data-cy": "connect-button",
|
|
184
|
+
disabled: disabled || isLoading,
|
|
185
|
+
href: connectUrl,
|
|
186
|
+
label: t("neetoMolecules.integrationCard.tryAgain"),
|
|
187
|
+
style: "link",
|
|
188
|
+
to: connectPath,
|
|
189
|
+
onClick: onConnect
|
|
190
|
+
}), !isConnected && !isFailed && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
191
|
+
"data-cy": "connect-button",
|
|
192
|
+
"data-testid": "integraiton-card-connect-button",
|
|
193
|
+
disabled: disabled || isLoading,
|
|
194
|
+
href: connectUrl,
|
|
195
|
+
label: t("neetoMolecules.integrationCard.connect"),
|
|
196
|
+
style: "link",
|
|
197
|
+
to: connectPath,
|
|
198
|
+
onClick: onConnect
|
|
199
|
+
}), (isConnected || isFailed) && /*#__PURE__*/React__default["default"].createElement(Dropdown, {
|
|
200
|
+
customDropdown: customDropdown,
|
|
201
|
+
hideDisconnect: hideDisconnect,
|
|
202
|
+
onDisconnect: onDisconnect,
|
|
203
|
+
handleManage: onManage
|
|
204
|
+
})))));
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
module.exports = IntegrationCard;
|
|
208
|
+
//# sourceMappingURL=IntegrationCard.js.map
|