@bigbinary/neeto-molecules 3.16.27 → 3.16.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/NavigationHeader.js +2 -4
- package/dist/NavigationHeader.js.map +1 -1
- package/dist/ProductEmbed.js +112 -39
- package/dist/ProductEmbed.js.map +1 -1
- package/dist/PublishBlock.js +77 -189
- package/dist/PublishBlock.js.map +1 -1
- package/dist/cjs/NavigationHeader.js +2 -4
- package/dist/cjs/NavigationHeader.js.map +1 -1
- package/dist/cjs/ProductEmbed.js +112 -39
- package/dist/cjs/ProductEmbed.js.map +1 -1
- package/dist/cjs/PublishBlock.js +76 -188
- package/dist/cjs/PublishBlock.js.map +1 -1
- package/package.json +1 -1
- package/src/translations/en.json +4 -3
- package/types/PublishBlock.d.ts +35 -54
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationHeader.js","sources":["../../src/components/NavigationHeader/constants.jsx","../../src/components/NavigationHeader/LeftBlock.jsx","../../src/components/NavigationHeader/Navigation.jsx","../../src/components/NavigationHeader/utils.js","../../src/components/NavigationHeader/RightBlock.jsx","../../src/components/NavigationHeader/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { Home } from \"neetoicons\";\n\nexport const DEFAULT_HOME_BUTTON_PROPS = {\n tooltip: {\n content: t(\"neetoMolecules.navigationHeader.home\"),\n position: \"bottom\",\n },\n homeUrl: \"/\",\n icon: <Home />,\n};\n","import { isPresent } from \"neetocist\";\nimport { Tooltip } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { mergeDeepRight } from \"ramda\";\nimport { Link } from \"react-router-dom\";\n\nimport Rename from \"components/Rename\";\n\nimport { DEFAULT_HOME_BUTTON_PROPS } from \"./constants\";\n\nconst LeftBlock = ({\n homeButtonProps: customHomeButtonProps,\n homeUrl,\n renameProps,\n children,\n}) => {\n const homeButtonProps = mergeDeepRight(\n DEFAULT_HOME_BUTTON_PROPS,\n customHomeButtonProps\n );\n\n return (\n <div\n className=\"flex items-center gap-1 md:gap-2\"\n data-cy=\"navigation-header-left-block\"\n data-testid=\"navigation-header-left-block\"\n >\n <Tooltip\n content={homeButtonProps.tooltip.content}\n position={homeButtonProps.tooltip.position}\n touch={[\"hold\", 500]}\n >\n <Link data-cy=\"home-button\" data-testid=\"home-button\" to={homeUrl}>\n <div className=\"neeto-ui-rounded hover:neeto-ui-bg-gray-200 p-1\">\n {homeButtonProps.icon}\n </div>\n </Link>\n </Tooltip>\n {isPresent(renameProps) && (\n <Rename\n dropdownItems={renameProps.dropdownItems}\n value={renameProps.value}\n {...renameProps}\n />\n )}\n {children}\n </div>\n );\n};\n\nLeftBlock.propTypes = {\n /**\n * Object containing the home button icon and the props to be passed to the tooltip of the home button.\n */\n homeButtonProps: PropTypes.shape({\n tooltip: PropTypes.shape({\n content: PropTypes.string,\n postition: PropTypes.string,\n }),\n icon: PropTypes.node,\n }),\n /**\n * URL to navigate when the home button is clicked.\n */\n homeUrl: PropTypes.string.isRequired,\n /**\n * Props to be passed to the `Rename` component. Please check the `Rename` component props for more details\n */\n renameProps: PropTypes.object,\n /**\n * To render extra content in the block.\n */\n children: PropTypes.node,\n};\n\nexport default LeftBlock;\n","import classNames from \"classnames\";\nimport { existsBy, isNotEmpty } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Dropdown, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\nimport { NavLink, useLocation } from \"react-router-dom\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst NavigationLinks = ({ headerLinks, maxVisibleLinks = 5 }) => {\n const { pathname } = useLocation();\n const { t } = useTranslation();\n\n const visibleLinks = headerLinks.slice(0, maxVisibleLinks);\n const overflowLinks = headerLinks.slice(maxVisibleLinks);\n\n const isMoreButtonActive = existsBy({ to: pathname }, overflowLinks);\n\n return (\n <div\n className=\"font- flex w-full items-center justify-between gap-4 md:justify-center md:gap-3 lg:gap-6\"\n data-cy=\"navigation-header-navigation-links\"\n data-testid=\"navigation-header-navigation-links\"\n >\n {visibleLinks.map(headerLink => (\n <NavLink\n activeClassName=\"active\"\n className=\"neeto-molecules-navigation-header__link px-2 capitalize no-underline md:px-0\"\n data-cy={`${joinHyphenCase(headerLink.key)}-tab`}\n key={headerLink.key}\n {...headerLink}\n >\n <Typography\n component=\"span\"\n lineHeight=\"normal\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {headerLink.label}\n </Typography>\n </NavLink>\n ))}\n {isNotEmpty(overflowLinks) && (\n <Dropdown\n buttonStyle=\"text\"\n label={t(\"neetoMolecules.navigationHeader.more\")}\n position=\"bottom-end\"\n buttonProps={{\n className: classNames(\n \"neeto-molecules-navigation-header__link neeto-molecules-navigation-header__link--more neeto-ui-typography neeto-ui-text-h4 neeto-ui-font-semibold neeto-ui-leading-normal px-2 capitalize no-underline md:px-0\",\n { active: isMoreButtonActive }\n ),\n }}\n >\n <Menu>\n {overflowLinks.map(headerLink => (\n <MenuItem.Button\n data-cy={`${joinHyphenCase(headerLink.key)}-more-tab`}\n isActive={headerLink.to === pathname}\n key={headerLink.key}\n to={headerLink.to}\n {...headerLink}\n >\n {headerLink.label}\n </MenuItem.Button>\n ))}\n </Menu>\n </Dropdown>\n )}\n </div>\n );\n};\n\nNavigationLinks.propTypes = {\n /**\n * Links to be rendered in the center of the navigation header. It is an array of objects.\n * Each object should have the properties `key`, `to` and `label`. Other props will be passed on to the `Navlink` component from\n `react-router-dom`.\n */\n headerLinks: PropTypes.arrayOf(\n PropTypes.shape({\n key: PropTypes.string,\n to: PropTypes.string,\n label: PropTypes.string,\n })\n ),\n /**\n * Maximum number of links to be visible in the navigation header. Remaining links will be shown in a more dropdown.\n */\n maxVisibleLinks: PropTypes.number,\n};\n\nexport default NavigationLinks;\n","export const isAbsoluteUrl = url => /^https?:\\/\\//.test(url);\n","import classNames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport PublishBlock from \"components/PublishBlock\";\n\nimport \"./navigation-header.scss\";\nimport { isAbsoluteUrl } from \"./utils\";\n\nconst RightBlock = ({\n isDraftBlockHidden,\n previewDraftUrl,\n isResetDraftButtonVisible,\n onResetClick,\n isResetting,\n isPublishDisabled,\n isPublishing,\n handlePublish,\n isPublishPreviewDisabled,\n previewPublishedUrl,\n isPublishButtonVisible,\n isResetAlertOpen,\n setIsResetAlertOpen,\n handleReset,\n publishAlertTitle,\n publishAlertDescription,\n publishButtonProps = {},\n}) => {\n const { t } = useTranslation();\n\n const renderDraftButtons = ({ ViewDraftButton, ResetDraftButton }) =>\n !isDraftBlockHidden && (\n <>\n <ViewDraftButton\n {...(isAbsoluteUrl(previewDraftUrl)\n ? { href: previewDraftUrl }\n : { to: previewDraftUrl })}\n />\n {isResetDraftButtonVisible && (\n <ResetDraftButton\n loading={isResetting}\n onClick={() => onResetClick()}\n />\n )}\n </>\n );\n\n const renderPublishButtons = ({ PublishButton, PublishPreviewButton }) => (\n <>\n {isPublishButtonVisible && (\n <PublishButton\n disabled={isPublishDisabled}\n loading={isPublishing}\n onClick={() => handlePublish()}\n {...publishButtonProps}\n />\n )}\n <PublishPreviewButton\n {...(isAbsoluteUrl(previewPublishedUrl)\n ? { href: previewPublishedUrl }\n : { to: previewPublishedUrl })}\n disabled={isPublishPreviewDisabled}\n className={classNames({\n \"standalone-publish-preview-button\": !isPublishButtonVisible,\n })}\n />\n </>\n );\n\n return (\n <>\n <PublishBlock {...{ renderDraftButtons, renderPublishButtons }} />\n <PublishBlock.Alert\n isOpen={isResetAlertOpen}\n isSubmitting={isResetting}\n message={\n publishAlertDescription ||\n t(\"neetoMolecules.navigationHeader.resetDescription\")\n }\n title={\n publishAlertTitle || t(\"neetoMolecules.navigationHeader.resetTitle\")\n }\n onClose={() => setIsResetAlertOpen(false)}\n onSubmit={handleReset}\n />\n </>\n );\n};\n\nRightBlock.propTypes = {\n /**\n * To show/hide the draft block.\n */\n isDraftBlockHidden: PropTypes.bool,\n /**\n * Draft preview URL, when the draft button is clicked user will be redirected to this URL.\n */\n previewDraftUrl: PropTypes.string,\n /**\n * Boolean to control the visibility of reset draft button.\n */\n isResetDraftButtonVisible: PropTypes.bool,\n /**\n * Callback function that will be called when the reset button is clicked.\n */\n onResetClick: PropTypes.func,\n /**\n * Setting this to `true` will show a spinner on the reset button. Use when the reset process is in progress.\n */\n isResetting: PropTypes.bool,\n /**\n * To disable the publish button.\n */\n isPublishDisabled: PropTypes.bool,\n /**\n * Setting this to `true` will show a spinner on the publish button. Use when the publish process is in progress.\n */\n isPublishing: PropTypes.bool,\n /**\n * Callback function that will be called when the publish button is clicked.\n */\n handlePublish: PropTypes.func,\n /**\n * To disable the publish preview button.\n */\n isPublishPreviewDisabled: PropTypes.bool,\n /**\n * Publish preview URL, when the preview publish button is clicked user will be redirected to this URL.\n */\n previewPublishedUrl: PropTypes.string,\n /**\n * Boolean to control whether the user have the ability to publish.\n */\n isPublishButtonVisible: PropTypes.bool,\n /**\n * Boolean to control whether the reset alert is open.\n */\n isResetAlertOpen: PropTypes.bool,\n /**\n * Handler to control the `isResetAlert` state variable.\n */\n setIsResetAlertOpen: PropTypes.func,\n /**\n * Callback function that will be called when the reset button is clicked.\n */\n handleReset: PropTypes.func,\n /**\n * Description to be shown in the publish alert\n */\n publishAlertDescription: PropTypes.string,\n /**\n * Title of the publish alert\n */\n publishAlertTitle: PropTypes.string,\n /**\n * Props to be passed to the publish button\n */\n publishButtonProps: PropTypes.object,\n};\n\nexport default RightBlock;\n","import { isPresent } from \"neetocist\";\nimport useBreakpoints from \"neetocommons/react-utils/useBreakpoints\";\nimport PropTypes from \"prop-types\";\nimport { filter, length } from \"ramda\";\n\nimport LeftBlock from \"./LeftBlock\";\nimport NavigationLinks from \"./Navigation\";\nimport RightBlock from \"./RightBlock\";\n\nconst NavigationHeader = ({\n leftActionBlock,\n navigationLinks,\n rightActionBlock,\n}) => {\n const { isSize } = useBreakpoints();\n const isMobile = isSize(\"mobile\");\n\n const numberOfChildren = length(\n filter(isPresent, [leftActionBlock, navigationLinks, rightActionBlock])\n );\n\n const gridStyle = {\n gridTemplateColumns: isMobile\n ? `repeat(${\n navigationLinks ? numberOfChildren - 1 : numberOfChildren\n }, auto)`\n : `repeat(${numberOfChildren}, 1fr)`,\n };\n\n return (\n <div className=\"w-full\">\n <div\n className=\"neeto-molecules-navigation-header neeto-ui-border-gray-200 neeto-ui-bg-white flex h-16 w-full flex-shrink-0 items-center overflow-x-auto border-b px-2 py-2 md:px-4 lg:px-6\"\n data-cy=\"navigation-header\"\n data-testid=\"navigation-header\"\n >\n <div className=\"grid w-full gap-4\" style={gridStyle}>\n {leftActionBlock}\n {!isMobile && navigationLinks}\n {rightActionBlock}\n </div>\n </div>\n {isMobile && (\n <div className=\"neeto-molecules-navigation-header neeto-ui-border-gray-200 neeto-ui-bg-white flex flex-shrink-0 items-center overflow-x-auto border-b px-4 py-2 lg:px-6\">\n {navigationLinks}\n </div>\n )}\n </div>\n );\n};\n\nNavigationHeader.LeftActionBlock = LeftBlock;\nNavigationHeader.NavigationLinks = NavigationLinks;\nNavigationHeader.RightActionBlock = RightBlock;\n\nNavigationHeader.propTypes = {\n /**\n * To specify the content to be rendered in the left side of the `NavigationHeader`.\n */\n leftActionBlock: PropTypes.node,\n /**\n * To specify the content to be rendered at the center of the `NavigationHeader`.\n */\n navigationLinks: PropTypes.node,\n /**\n * To specify the content to be rendered in the right side of the `NavigationHeader`.\n */\n rightActionBlock: PropTypes.node,\n};\n\nexport default NavigationHeader;\n"],"names":["DEFAULT_HOME_BUTTON_PROPS","tooltip","content","t","position","homeUrl","icon","_jsx","Home","LeftBlock","_ref","customHomeButtonProps","homeButtonProps","renameProps","children","mergeDeepRight","_jsxs","className","Tooltip","touch","Link","to","isPresent","Rename","_objectSpread","dropdownItems","value","Menu","Dropdown","MenuItem","NavigationLinks","headerLinks","_ref$maxVisibleLinks","maxVisibleLinks","_useLocation","useLocation","pathname","_useTranslation","useTranslation","visibleLinks","slice","overflowLinks","isMoreButtonActive","existsBy","map","headerLink","NavLink","activeClassName","concat","joinHyphenCase","key","Typography","component","lineHeight","style","weight","label","isNotEmpty","buttonStyle","buttonProps","classNames","active","Button","isActive","isAbsoluteUrl","url","test","RightBlock","isDraftBlockHidden","previewDraftUrl","isResetDraftButtonVisible","onResetClick","isResetting","isPublishDisabled","isPublishing","handlePublish","isPublishPreviewDisabled","previewPublishedUrl","isPublishButtonVisible","isResetAlertOpen","setIsResetAlertOpen","handleReset","publishAlertTitle","publishAlertDescription","_ref$publishButtonPro","publishButtonProps","renderDraftButtons","_ref2","ViewDraftButton","ResetDraftButton","_Fragment","href","loading","onClick","renderPublishButtons","_ref3","PublishButton","PublishPreviewButton","disabled","PublishBlock","Alert","isOpen","isSubmitting","message","title","onClose","onSubmit","NavigationHeader","leftActionBlock","navigationLinks","rightActionBlock","_useBreakpoints","useBreakpoints","isSize","isMobile","numberOfChildren","length","filter","gridStyle","gridTemplateColumns","LeftActionBlock","RightActionBlock"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NavigationHeader.js","sources":["../../src/components/NavigationHeader/constants.jsx","../../src/components/NavigationHeader/LeftBlock.jsx","../../src/components/NavigationHeader/Navigation.jsx","../../src/components/NavigationHeader/utils.js","../../src/components/NavigationHeader/RightBlock.jsx","../../src/components/NavigationHeader/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { Home } from \"neetoicons\";\n\nexport const DEFAULT_HOME_BUTTON_PROPS = {\n tooltip: {\n content: t(\"neetoMolecules.navigationHeader.home\"),\n position: \"bottom\",\n },\n homeUrl: \"/\",\n icon: <Home />,\n};\n","import { isPresent } from \"neetocist\";\nimport { Tooltip } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { mergeDeepRight } from \"ramda\";\nimport { Link } from \"react-router-dom\";\n\nimport Rename from \"components/Rename\";\n\nimport { DEFAULT_HOME_BUTTON_PROPS } from \"./constants\";\n\nconst LeftBlock = ({\n homeButtonProps: customHomeButtonProps,\n homeUrl,\n renameProps,\n children,\n}) => {\n const homeButtonProps = mergeDeepRight(\n DEFAULT_HOME_BUTTON_PROPS,\n customHomeButtonProps\n );\n\n return (\n <div\n className=\"flex items-center gap-1 md:gap-2\"\n data-cy=\"navigation-header-left-block\"\n data-testid=\"navigation-header-left-block\"\n >\n <Tooltip\n content={homeButtonProps.tooltip.content}\n position={homeButtonProps.tooltip.position}\n touch={[\"hold\", 500]}\n >\n <Link data-cy=\"home-button\" data-testid=\"home-button\" to={homeUrl}>\n <div className=\"neeto-ui-rounded hover:neeto-ui-bg-gray-200 p-1\">\n {homeButtonProps.icon}\n </div>\n </Link>\n </Tooltip>\n {isPresent(renameProps) && (\n <Rename\n dropdownItems={renameProps.dropdownItems}\n value={renameProps.value}\n {...renameProps}\n />\n )}\n {children}\n </div>\n );\n};\n\nLeftBlock.propTypes = {\n /**\n * Object containing the home button icon and the props to be passed to the tooltip of the home button.\n */\n homeButtonProps: PropTypes.shape({\n tooltip: PropTypes.shape({\n content: PropTypes.string,\n postition: PropTypes.string,\n }),\n icon: PropTypes.node,\n }),\n /**\n * URL to navigate when the home button is clicked.\n */\n homeUrl: PropTypes.string.isRequired,\n /**\n * Props to be passed to the `Rename` component. Please check the `Rename` component props for more details\n */\n renameProps: PropTypes.object,\n /**\n * To render extra content in the block.\n */\n children: PropTypes.node,\n};\n\nexport default LeftBlock;\n","import classNames from \"classnames\";\nimport { existsBy, isNotEmpty } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Dropdown, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\nimport { NavLink, useLocation } from \"react-router-dom\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst NavigationLinks = ({ headerLinks, maxVisibleLinks = 5 }) => {\n const { pathname } = useLocation();\n const { t } = useTranslation();\n\n const visibleLinks = headerLinks.slice(0, maxVisibleLinks);\n const overflowLinks = headerLinks.slice(maxVisibleLinks);\n\n const isMoreButtonActive = existsBy({ to: pathname }, overflowLinks);\n\n return (\n <div\n className=\"font- flex w-full items-center justify-between gap-4 md:justify-center md:gap-3 lg:gap-6\"\n data-cy=\"navigation-header-navigation-links\"\n data-testid=\"navigation-header-navigation-links\"\n >\n {visibleLinks.map(headerLink => (\n <NavLink\n activeClassName=\"active\"\n className=\"neeto-molecules-navigation-header__link px-2 capitalize no-underline md:px-0\"\n data-cy={`${joinHyphenCase(headerLink.key)}-tab`}\n key={headerLink.key}\n {...headerLink}\n >\n <Typography\n component=\"span\"\n lineHeight=\"normal\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {headerLink.label}\n </Typography>\n </NavLink>\n ))}\n {isNotEmpty(overflowLinks) && (\n <Dropdown\n buttonStyle=\"text\"\n label={t(\"neetoMolecules.navigationHeader.more\")}\n position=\"bottom-end\"\n buttonProps={{\n className: classNames(\n \"neeto-molecules-navigation-header__link neeto-molecules-navigation-header__link--more neeto-ui-typography neeto-ui-text-h4 neeto-ui-font-semibold neeto-ui-leading-normal px-2 capitalize no-underline md:px-0\",\n { active: isMoreButtonActive }\n ),\n }}\n >\n <Menu>\n {overflowLinks.map(headerLink => (\n <MenuItem.Button\n data-cy={`${joinHyphenCase(headerLink.key)}-more-tab`}\n isActive={headerLink.to === pathname}\n key={headerLink.key}\n to={headerLink.to}\n {...headerLink}\n >\n {headerLink.label}\n </MenuItem.Button>\n ))}\n </Menu>\n </Dropdown>\n )}\n </div>\n );\n};\n\nNavigationLinks.propTypes = {\n /**\n * Links to be rendered in the center of the navigation header. It is an array of objects.\n * Each object should have the properties `key`, `to` and `label`. Other props will be passed on to the `Navlink` component from\n `react-router-dom`.\n */\n headerLinks: PropTypes.arrayOf(\n PropTypes.shape({\n key: PropTypes.string,\n to: PropTypes.string,\n label: PropTypes.string,\n })\n ),\n /**\n * Maximum number of links to be visible in the navigation header. Remaining links will be shown in a more dropdown.\n */\n maxVisibleLinks: PropTypes.number,\n};\n\nexport default NavigationLinks;\n","export const isAbsoluteUrl = url => /^https?:\\/\\//.test(url);\n","import classNames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport PublishBlock from \"components/PublishBlock\";\n\nimport \"./navigation-header.scss\";\nimport { isAbsoluteUrl } from \"./utils\";\n\nconst RightBlock = ({\n isDraftBlockHidden,\n previewDraftUrl,\n isResetDraftButtonVisible,\n onResetClick,\n isResetting,\n isPublishDisabled,\n isPublishing,\n handlePublish,\n isPublishPreviewDisabled,\n previewPublishedUrl,\n isPublishButtonVisible,\n isResetAlertOpen,\n setIsResetAlertOpen,\n handleReset,\n publishAlertTitle,\n publishAlertDescription,\n publishButtonProps = {},\n}) => {\n const { t } = useTranslation();\n\n const renderDraftButtons = ({ ViewDraftButton, ResetDraftButton }) =>\n !isDraftBlockHidden && (\n <>\n <ViewDraftButton\n {...(isAbsoluteUrl(previewDraftUrl)\n ? { href: previewDraftUrl }\n : { to: previewDraftUrl })}\n />\n {isResetDraftButtonVisible && (\n <ResetDraftButton\n loading={isResetting}\n onClick={() => onResetClick()}\n />\n )}\n </>\n );\n\n const renderPublishButtons = ({ PublishButton, PublishPreviewButton }) => (\n <>\n {isPublishButtonVisible && (\n <PublishButton\n disabled={isPublishDisabled}\n loading={isPublishing}\n onClick={() => handlePublish()}\n {...publishButtonProps}\n />\n )}\n <PublishPreviewButton\n {...(isAbsoluteUrl(previewPublishedUrl)\n ? { href: previewPublishedUrl }\n : { to: previewPublishedUrl })}\n disabled={isPublishPreviewDisabled}\n className={classNames({\n \"standalone-publish-preview-button\": !isPublishButtonVisible,\n })}\n />\n </>\n );\n\n return (\n <>\n <PublishBlock {...{ renderDraftButtons, renderPublishButtons }} />\n <PublishBlock.Alert\n isOpen={isResetAlertOpen}\n isSubmitting={isResetting}\n message={\n publishAlertDescription ||\n t(\"neetoMolecules.navigationHeader.resetDescription\")\n }\n title={\n publishAlertTitle || t(\"neetoMolecules.navigationHeader.resetTitle\")\n }\n onClose={() => setIsResetAlertOpen(false)}\n onSubmit={handleReset}\n />\n </>\n );\n};\n\nRightBlock.propTypes = {\n /**\n * To show/hide the draft block.\n */\n isDraftBlockHidden: PropTypes.bool,\n /**\n * Draft preview URL, when the draft button is clicked user will be redirected to this URL.\n */\n previewDraftUrl: PropTypes.string,\n /**\n * Boolean to control the visibility of reset draft button.\n */\n isResetDraftButtonVisible: PropTypes.bool,\n /**\n * Callback function that will be called when the reset button is clicked.\n */\n onResetClick: PropTypes.func,\n /**\n * Setting this to `true` will show a spinner on the reset button. Use when the reset process is in progress.\n */\n isResetting: PropTypes.bool,\n /**\n * To disable the publish button.\n */\n isPublishDisabled: PropTypes.bool,\n /**\n * Setting this to `true` will show a spinner on the publish button. Use when the publish process is in progress.\n */\n isPublishing: PropTypes.bool,\n /**\n * Callback function that will be called when the publish button is clicked.\n */\n handlePublish: PropTypes.func,\n /**\n * To disable the publish preview button.\n */\n isPublishPreviewDisabled: PropTypes.bool,\n /**\n * Publish preview URL, when the preview publish button is clicked user will be redirected to this URL.\n */\n previewPublishedUrl: PropTypes.string,\n /**\n * Boolean to control whether the user have the ability to publish.\n */\n isPublishButtonVisible: PropTypes.bool,\n /**\n * Boolean to control whether the reset alert is open.\n */\n isResetAlertOpen: PropTypes.bool,\n /**\n * Handler to control the `isResetAlert` state variable.\n */\n setIsResetAlertOpen: PropTypes.func,\n /**\n * Callback function that will be called when the reset button is clicked.\n */\n handleReset: PropTypes.func,\n /**\n * Description to be shown in the publish alert\n */\n publishAlertDescription: PropTypes.string,\n /**\n * Title of the publish alert\n */\n publishAlertTitle: PropTypes.string,\n /**\n * Props to be passed to the publish button\n */\n publishButtonProps: PropTypes.object,\n};\n\nexport default RightBlock;\n","import { isPresent } from \"neetocist\";\nimport useBreakpoints from \"neetocommons/react-utils/useBreakpoints\";\nimport PropTypes from \"prop-types\";\nimport { filter, length } from \"ramda\";\n\nimport LeftBlock from \"./LeftBlock\";\nimport NavigationLinks from \"./Navigation\";\nimport RightBlock from \"./RightBlock\";\n\nconst NavigationHeader = ({\n leftActionBlock,\n navigationLinks,\n rightActionBlock,\n}) => {\n const { isSize } = useBreakpoints();\n const isMobile = isSize(\"mobile\");\n\n const numberOfChildren = length(\n filter(isPresent, [leftActionBlock, navigationLinks, rightActionBlock])\n );\n\n const gridStyle = {\n gridTemplateColumns: isMobile\n ? `repeat(${\n navigationLinks ? numberOfChildren - 1 : numberOfChildren\n }, auto)`\n : `repeat(${numberOfChildren}, 1fr)`,\n };\n\n return (\n <div className=\"w-full\">\n <div\n className=\"neeto-molecules-navigation-header neeto-ui-border-gray-200 neeto-ui-bg-white flex h-16 w-full flex-shrink-0 items-center overflow-x-auto border-b px-2 py-2 md:px-4 lg:px-6\"\n data-cy=\"navigation-header\"\n data-testid=\"navigation-header\"\n >\n <div className=\"grid w-full gap-4\" style={gridStyle}>\n {leftActionBlock}\n {!isMobile && navigationLinks}\n {rightActionBlock}\n </div>\n </div>\n {isMobile && (\n <div className=\"neeto-molecules-navigation-header neeto-ui-border-gray-200 neeto-ui-bg-white flex flex-shrink-0 items-center overflow-x-auto border-b px-4 py-2 lg:px-6\">\n {navigationLinks}\n </div>\n )}\n </div>\n );\n};\n\nNavigationHeader.LeftActionBlock = LeftBlock;\nNavigationHeader.NavigationLinks = NavigationLinks;\nNavigationHeader.RightActionBlock = RightBlock;\n\nNavigationHeader.propTypes = {\n /**\n * To specify the content to be rendered in the left side of the `NavigationHeader`.\n */\n leftActionBlock: PropTypes.node,\n /**\n * To specify the content to be rendered at the center of the `NavigationHeader`.\n */\n navigationLinks: PropTypes.node,\n /**\n * To specify the content to be rendered in the right side of the `NavigationHeader`.\n */\n rightActionBlock: PropTypes.node,\n};\n\nexport default NavigationHeader;\n"],"names":["DEFAULT_HOME_BUTTON_PROPS","tooltip","content","t","position","homeUrl","icon","_jsx","Home","LeftBlock","_ref","customHomeButtonProps","homeButtonProps","renameProps","children","mergeDeepRight","_jsxs","className","Tooltip","touch","Link","to","isPresent","Rename","_objectSpread","dropdownItems","value","Menu","Dropdown","MenuItem","NavigationLinks","headerLinks","_ref$maxVisibleLinks","maxVisibleLinks","_useLocation","useLocation","pathname","_useTranslation","useTranslation","visibleLinks","slice","overflowLinks","isMoreButtonActive","existsBy","map","headerLink","NavLink","activeClassName","concat","joinHyphenCase","key","Typography","component","lineHeight","style","weight","label","isNotEmpty","buttonStyle","buttonProps","classNames","active","Button","isActive","isAbsoluteUrl","url","test","RightBlock","isDraftBlockHidden","previewDraftUrl","isResetDraftButtonVisible","onResetClick","isResetting","isPublishDisabled","isPublishing","handlePublish","isPublishPreviewDisabled","previewPublishedUrl","isPublishButtonVisible","isResetAlertOpen","setIsResetAlertOpen","handleReset","publishAlertTitle","publishAlertDescription","_ref$publishButtonPro","publishButtonProps","renderDraftButtons","_ref2","ViewDraftButton","ResetDraftButton","_Fragment","href","loading","onClick","renderPublishButtons","_ref3","PublishButton","PublishPreviewButton","disabled","PublishBlock","Alert","isOpen","isSubmitting","message","title","onClose","onSubmit","NavigationHeader","leftActionBlock","navigationLinks","rightActionBlock","_useBreakpoints","useBreakpoints","isSize","isMobile","numberOfChildren","length","filter","gridStyle","gridTemplateColumns","LeftActionBlock","RightActionBlock"],"mappings":"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"}
|
package/dist/cjs/ProductEmbed.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var shallow = require('zustand/shallow');
|
|
4
|
+
var React = require('react');
|
|
3
5
|
var neetoCist = require('@bigbinary/neeto-cist');
|
|
4
6
|
var reactRouterDom = require('react-router-dom');
|
|
5
7
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
8
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
7
|
-
var React = require('react');
|
|
8
9
|
var classnames = require('classnames');
|
|
9
10
|
var LeftArrow = require('@bigbinary/neeto-icons/LeftArrow');
|
|
10
11
|
var Button = require('@bigbinary/neetoui/Button');
|
|
@@ -23,6 +24,8 @@ var Delete = require('@bigbinary/neeto-icons/Delete');
|
|
|
23
24
|
var Plus = require('@bigbinary/neeto-icons/Plus');
|
|
24
25
|
var Label = require('@bigbinary/neetoui/Label');
|
|
25
26
|
var HelpPopover = require('./HelpPopover.js');
|
|
27
|
+
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
28
|
+
var zustand = require('zustand');
|
|
26
29
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
27
30
|
var jsxRuntime = require('react/jsx-runtime');
|
|
28
31
|
var Checkbox = require('@bigbinary/neetoui/Checkbox');
|
|
@@ -31,7 +34,6 @@ var _objectDestructuringEmpty = require('@babel/runtime/helpers/objectDestructur
|
|
|
31
34
|
var Spinner = require('@bigbinary/neetoui/Spinner');
|
|
32
35
|
var BrowserPreview = require('./BrowserPreview.js');
|
|
33
36
|
var injectCss = require('./inject-css-vQvjPR2x.js');
|
|
34
|
-
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
35
37
|
require('./index-JY2zVpnv.js');
|
|
36
38
|
require('./_commonjsHelpers-BJu3ubxk.js');
|
|
37
39
|
require('./Breadcrumbs.js');
|
|
@@ -67,6 +69,24 @@ var INITIAL_QUERY_PARAM = {
|
|
|
67
69
|
value: ""
|
|
68
70
|
};
|
|
69
71
|
|
|
72
|
+
/** @type {import("neetocommons/react-utils").ZustandStoreHook} */
|
|
73
|
+
var useProductEmbedStore = zustand.create(reactUtils.withImmutableActions(function (set) {
|
|
74
|
+
return {
|
|
75
|
+
isQueryParamsEnabled: false,
|
|
76
|
+
queryParams: [INITIAL_QUERY_PARAM],
|
|
77
|
+
queryParamsProps: {
|
|
78
|
+
helpPopoverProps: {},
|
|
79
|
+
label: ""
|
|
80
|
+
},
|
|
81
|
+
setProductEmbedState: set,
|
|
82
|
+
setQueryParams: function setQueryParams(queryParams) {
|
|
83
|
+
return set({
|
|
84
|
+
queryParams: queryParams
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
}));
|
|
89
|
+
|
|
70
90
|
var camelCasedAppName$1 = globalProps.appName.replace(/^neeto/i, "neeto");
|
|
71
91
|
var embedBaseScript = function embedBaseScript(embedScriptLink) {
|
|
72
92
|
return "<script>window.".concat(camelCasedAppName$1, " = window.").concat(camelCasedAppName$1, " || { embed: function(){(").concat(camelCasedAppName$1, ".q=").concat(camelCasedAppName$1, ".q||[]).push(arguments)} };</script>\n <script async\n src=\"").concat(embedScriptLink, "\">\n </script>");
|
|
@@ -239,14 +259,19 @@ var toCamelCasedString = function toCamelCasedString(string) {
|
|
|
239
259
|
function ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
240
260
|
function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
241
261
|
var DynamicQueryParams = function DynamicQueryParams(_ref) {
|
|
242
|
-
var updateCustomization = _ref.updateCustomization
|
|
243
|
-
queryParamsProps = _ref.queryParamsProps;
|
|
262
|
+
var updateCustomization = _ref.updateCustomization;
|
|
244
263
|
var _useTranslation = reactI18next.useTranslation(),
|
|
245
264
|
t = _useTranslation.t;
|
|
246
|
-
var
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
265
|
+
var _useProductEmbedStore = useProductEmbedStore(function (store) {
|
|
266
|
+
return {
|
|
267
|
+
queryParamsProps: store["queryParamsProps"],
|
|
268
|
+
queryParams: store["queryParams"],
|
|
269
|
+
setQueryParams: store["setQueryParams"]
|
|
270
|
+
};
|
|
271
|
+
}, shallow.shallow),
|
|
272
|
+
queryParamsProps = _useProductEmbedStore.queryParamsProps,
|
|
273
|
+
queryParams = _useProductEmbedStore.queryParams,
|
|
274
|
+
setQueryParams = _useProductEmbedStore.setQueryParams;
|
|
250
275
|
var handleAddQueryParam = function handleAddQueryParam() {
|
|
251
276
|
setQueryParams([].concat(_toConsumableArray(queryParams), [INITIAL_QUERY_PARAM]));
|
|
252
277
|
};
|
|
@@ -322,12 +347,16 @@ var DynamicQueryParams = function DynamicQueryParams(_ref) {
|
|
|
322
347
|
var ElementPopup$1 = function ElementPopup(_ref) {
|
|
323
348
|
var customization = _ref.customization,
|
|
324
349
|
updateCustomization = _ref.updateCustomization,
|
|
325
|
-
isQueryParamsEnabled = _ref.isQueryParamsEnabled,
|
|
326
|
-
queryParamsProps = _ref.queryParamsProps,
|
|
327
350
|
otherCustomizations = _ref.otherCustomizations;
|
|
328
351
|
var elementSelector = customization.elementSelector;
|
|
329
352
|
var _useTranslation = reactI18next.useTranslation(),
|
|
330
353
|
t = _useTranslation.t;
|
|
354
|
+
var _useProductEmbedStore = useProductEmbedStore(function (store) {
|
|
355
|
+
return {
|
|
356
|
+
isQueryParamsEnabled: store["isQueryParamsEnabled"]
|
|
357
|
+
};
|
|
358
|
+
}, shallow.shallow),
|
|
359
|
+
isQueryParamsEnabled = _useProductEmbedStore.isQueryParamsEnabled;
|
|
331
360
|
React.useEffect(function () {
|
|
332
361
|
if (isQueryParamsEnabled) return;
|
|
333
362
|
updateCustomization({
|
|
@@ -351,7 +380,6 @@ var ElementPopup$1 = function ElementPopup(_ref) {
|
|
|
351
380
|
});
|
|
352
381
|
}
|
|
353
382
|
}), otherCustomizations(), isQueryParamsEnabled && /*#__PURE__*/jsxRuntime.jsx(DynamicQueryParams, {
|
|
354
|
-
queryParamsProps: queryParamsProps,
|
|
355
383
|
updateCustomization: updateCustomization
|
|
356
384
|
})]
|
|
357
385
|
});
|
|
@@ -360,11 +388,15 @@ var ElementPopup$1 = function ElementPopup(_ref) {
|
|
|
360
388
|
var FloatingPopup$1 = function FloatingPopup(_ref) {
|
|
361
389
|
var customization = _ref.customization,
|
|
362
390
|
updateCustomization = _ref.updateCustomization,
|
|
363
|
-
isQueryParamsEnabled = _ref.isQueryParamsEnabled,
|
|
364
|
-
queryParamsProps = _ref.queryParamsProps,
|
|
365
391
|
otherCustomizations = _ref.otherCustomizations;
|
|
366
392
|
var _useTranslation = reactI18next.useTranslation(),
|
|
367
393
|
t = _useTranslation.t;
|
|
394
|
+
var _useProductEmbedStore = useProductEmbedStore(function (store) {
|
|
395
|
+
return {
|
|
396
|
+
isQueryParamsEnabled: store["isQueryParamsEnabled"]
|
|
397
|
+
};
|
|
398
|
+
}, shallow.shallow),
|
|
399
|
+
isQueryParamsEnabled = _useProductEmbedStore.isQueryParamsEnabled;
|
|
368
400
|
var btnTextColor = customization.btnTextColor,
|
|
369
401
|
showIcon = customization.showIcon,
|
|
370
402
|
btnText = customization.btnText,
|
|
@@ -448,7 +480,6 @@ var FloatingPopup$1 = function FloatingPopup(_ref) {
|
|
|
448
480
|
});
|
|
449
481
|
}
|
|
450
482
|
}), otherCustomizations(), isQueryParamsEnabled && /*#__PURE__*/jsxRuntime.jsx(DynamicQueryParams, {
|
|
451
|
-
queryParamsProps: queryParamsProps,
|
|
452
483
|
updateCustomization: updateCustomization
|
|
453
484
|
})]
|
|
454
485
|
});
|
|
@@ -457,14 +488,18 @@ var FloatingPopup$1 = function FloatingPopup(_ref) {
|
|
|
457
488
|
var Inline$1 = function Inline(_ref) {
|
|
458
489
|
var customization = _ref.customization,
|
|
459
490
|
updateCustomization = _ref.updateCustomization,
|
|
460
|
-
isQueryParamsEnabled = _ref.isQueryParamsEnabled,
|
|
461
|
-
queryParamsProps = _ref.queryParamsProps,
|
|
462
491
|
otherCustomizations = _ref.otherCustomizations;
|
|
492
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
493
|
+
t = _useTranslation.t;
|
|
494
|
+
var _useProductEmbedStore = useProductEmbedStore(function (store) {
|
|
495
|
+
return {
|
|
496
|
+
isQueryParamsEnabled: store["isQueryParamsEnabled"]
|
|
497
|
+
};
|
|
498
|
+
}, shallow.shallow),
|
|
499
|
+
isQueryParamsEnabled = _useProductEmbedStore.isQueryParamsEnabled;
|
|
463
500
|
var height = customization.height,
|
|
464
501
|
width = customization.width,
|
|
465
502
|
elementSelector = customization.elementSelector;
|
|
466
|
-
var _useTranslation = reactI18next.useTranslation(),
|
|
467
|
-
t = _useTranslation.t;
|
|
468
503
|
var handleInputChange = function handleInputChange(_ref2, attribute) {
|
|
469
504
|
var value = _ref2.target.value;
|
|
470
505
|
return updateCustomization(_defineProperty({}, attribute, value));
|
|
@@ -525,7 +560,6 @@ var Inline$1 = function Inline(_ref) {
|
|
|
525
560
|
}
|
|
526
561
|
})]
|
|
527
562
|
}), otherCustomizations(), isQueryParamsEnabled && /*#__PURE__*/jsxRuntime.jsx(DynamicQueryParams, {
|
|
528
|
-
queryParamsProps: queryParamsProps,
|
|
529
563
|
updateCustomization: updateCustomization
|
|
530
564
|
})]
|
|
531
565
|
});
|
|
@@ -1253,18 +1287,25 @@ var ElementPopupPlaceholderImage = function ElementPopupPlaceholderImage(_ref2)
|
|
|
1253
1287
|
};
|
|
1254
1288
|
|
|
1255
1289
|
var ElementPopup = function ElementPopup(_ref) {
|
|
1256
|
-
var iframeURL = _ref.iframeURL
|
|
1257
|
-
customization = _ref.customization;
|
|
1290
|
+
var iframeURL = _ref.iframeURL;
|
|
1258
1291
|
var _useTranslation = reactI18next.useTranslation(),
|
|
1259
1292
|
t = _useTranslation.t;
|
|
1260
|
-
|
|
1293
|
+
|
|
1294
|
+
/**
|
|
1295
|
+
* Currently embed() function doesn't have an unembed handler.
|
|
1296
|
+
* When iframe link changes, we don't have an option to reinitiate it.
|
|
1297
|
+
* So we forcefully recreate the element with `key` and call embed() again
|
|
1298
|
+
*/
|
|
1299
|
+
var elementSelectorId = React.useMemo(function () {
|
|
1300
|
+
return "popup-button-".concat(Math.random().toString().substring(2, 10));
|
|
1301
|
+
}, [iframeURL]);
|
|
1261
1302
|
React.useEffect(function () {
|
|
1262
|
-
var element = document.getElementById(
|
|
1303
|
+
var element = document.getElementById(elementSelectorId);
|
|
1263
1304
|
if (element) {
|
|
1264
1305
|
var _window$globalProps$a;
|
|
1265
1306
|
(_window$globalProps$a = window[globalProps.appName.replace(/^neeto/i, "neeto")]) === null || _window$globalProps$a === void 0 || _window$globalProps$a.embed(element, iframeURL);
|
|
1266
1307
|
}
|
|
1267
|
-
}, []);
|
|
1308
|
+
}, [iframeURL]);
|
|
1268
1309
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
1269
1310
|
className: "relative h-full w-full overflow-hidden",
|
|
1270
1311
|
children: [/*#__PURE__*/jsxRuntime.jsx(ElementPopupPlaceholderImage, {
|
|
@@ -1273,9 +1314,9 @@ var ElementPopup = function ElementPopup(_ref) {
|
|
|
1273
1314
|
className: "absolute left-[48.5294117647%] top-[39.0804597701%]",
|
|
1274
1315
|
"data-cy": "preview-element-popup-button",
|
|
1275
1316
|
"data-testid": "preview-element-popup-button",
|
|
1276
|
-
id:
|
|
1317
|
+
id: elementSelectorId,
|
|
1277
1318
|
label: t("neetoMolecules.productEmbed.elementPopup.label")
|
|
1278
|
-
})]
|
|
1319
|
+
}, elementSelectorId)]
|
|
1279
1320
|
});
|
|
1280
1321
|
};
|
|
1281
1322
|
|
|
@@ -1288,13 +1329,24 @@ var FloatingPopup = function FloatingPopup(_ref) {
|
|
|
1288
1329
|
btnPosition = customization.btnPosition,
|
|
1289
1330
|
btnColor = customization.btnColor,
|
|
1290
1331
|
icon = customization.icon;
|
|
1332
|
+
|
|
1333
|
+
/**
|
|
1334
|
+
* Currently embed() function doesn't have an unembed handler.
|
|
1335
|
+
* When iframe link changes, we don't have an option to reinitiate it.
|
|
1336
|
+
* So we forcefully recreate the element with `key` and call embed() again
|
|
1337
|
+
*/
|
|
1338
|
+
var elementSelectorId = React.useMemo(function () {
|
|
1339
|
+
return "popup-button-".concat(Math.random().toString().substring(2, 10));
|
|
1340
|
+
}, [iframeURL]);
|
|
1291
1341
|
React.useEffect(function () {
|
|
1292
|
-
var
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1342
|
+
var element = document.getElementById(elementSelectorId);
|
|
1343
|
+
if (element) {
|
|
1344
|
+
var _window$globalProps$a;
|
|
1345
|
+
(_window$globalProps$a = window[globalProps.appName.replace(/^neeto/i, "neeto")]) === null || _window$globalProps$a === void 0 || _window$globalProps$a.embed(element, iframeURL);
|
|
1346
|
+
}
|
|
1347
|
+
}, [iframeURL]);
|
|
1296
1348
|
React.useEffect(function () {
|
|
1297
|
-
var btn = document.getElementById(
|
|
1349
|
+
var btn = document.getElementById(elementSelectorId);
|
|
1298
1350
|
btn.style.backgroundColor = btnColor;
|
|
1299
1351
|
btn.style.color = btnTextColor;
|
|
1300
1352
|
}, [btnColor, btnTextColor]);
|
|
@@ -1306,13 +1358,13 @@ var FloatingPopup = function FloatingPopup(_ref) {
|
|
|
1306
1358
|
"data-cy": "popup-preview-button",
|
|
1307
1359
|
icon: icon && showIcon ? icon : null,
|
|
1308
1360
|
iconPosition: "left",
|
|
1309
|
-
id:
|
|
1361
|
+
id: elementSelectorId,
|
|
1310
1362
|
label: btnText,
|
|
1311
1363
|
className: classnames("absolute bottom-0 m-4", {
|
|
1312
1364
|
"left-0": btnPosition === "bottomLeft",
|
|
1313
1365
|
"right-0": btnPosition === "bottomRight"
|
|
1314
1366
|
})
|
|
1315
|
-
})]
|
|
1367
|
+
}, elementSelectorId)]
|
|
1316
1368
|
});
|
|
1317
1369
|
};
|
|
1318
1370
|
|
|
@@ -1329,6 +1381,14 @@ var Inline = function Inline(_ref) {
|
|
|
1329
1381
|
});
|
|
1330
1382
|
};
|
|
1331
1383
|
|
|
1384
|
+
var buildIframeURL = function buildIframeURL(iframeURL, queryParams) {
|
|
1385
|
+
var url = new URL(iframeURL);
|
|
1386
|
+
queryParams.forEach(function (param) {
|
|
1387
|
+
url.searchParams.append(param.name, param.value);
|
|
1388
|
+
});
|
|
1389
|
+
return url.toString();
|
|
1390
|
+
};
|
|
1391
|
+
|
|
1332
1392
|
var Preview = function Preview(_ref) {
|
|
1333
1393
|
var isScriptLoading = _ref.isScriptLoading,
|
|
1334
1394
|
selectedEmbed = _ref.selectedEmbed,
|
|
@@ -1336,8 +1396,14 @@ var Preview = function Preview(_ref) {
|
|
|
1336
1396
|
customization = _ref.customization,
|
|
1337
1397
|
_ref$customPreviewIfr = _ref.customPreviewIframeUrl,
|
|
1338
1398
|
customPreviewIframeUrl = _ref$customPreviewIfr === void 0 ? "" : _ref$customPreviewIfr;
|
|
1399
|
+
var _useProductEmbedStore = useProductEmbedStore(function (store) {
|
|
1400
|
+
return {
|
|
1401
|
+
queryParams: store["queryParams"]
|
|
1402
|
+
};
|
|
1403
|
+
}, shallow.shallow),
|
|
1404
|
+
queryParams = _useProductEmbedStore.queryParams;
|
|
1339
1405
|
var preview = _defineProperty(_defineProperty(_defineProperty({}, EMBED_OPTIONS.INLINE, Inline), EMBED_OPTIONS.FLOATING_POPUP, FloatingPopup), EMBED_OPTIONS.ELEMENT_POPUP, ElementPopup);
|
|
1340
|
-
var iframeURL = customPreviewIframeUrl || "".concat(location.origin, "/embed/").concat(id);
|
|
1406
|
+
var iframeURL = buildIframeURL(customPreviewIframeUrl || "".concat(location.origin, "/embed/").concat(id), queryParams);
|
|
1341
1407
|
var Component = preview[selectedEmbed];
|
|
1342
1408
|
if (isScriptLoading) {
|
|
1343
1409
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
@@ -1365,8 +1431,6 @@ var EmbedRenderer = function EmbedRenderer(_ref) {
|
|
|
1365
1431
|
customEmbedScriptPath = _ref.customEmbedScriptPath,
|
|
1366
1432
|
customPreviewIframeUrl = _ref.customPreviewIframeUrl,
|
|
1367
1433
|
id = _ref.id,
|
|
1368
|
-
queryParamsProps = _ref.queryParamsProps,
|
|
1369
|
-
isQueryParamsEnabled = _ref.isQueryParamsEnabled,
|
|
1370
1434
|
options = _ref.options,
|
|
1371
1435
|
extraArgs = _ref.extraArgs,
|
|
1372
1436
|
otherCustomizations = _ref.otherCustomizations,
|
|
@@ -1446,9 +1510,7 @@ var EmbedRenderer = function EmbedRenderer(_ref) {
|
|
|
1446
1510
|
supportedLanguages: supportedLanguages
|
|
1447
1511
|
}), /*#__PURE__*/jsxRuntime.jsx(CustomizationComponent, {
|
|
1448
1512
|
customization: customization,
|
|
1449
|
-
isQueryParamsEnabled: isQueryParamsEnabled,
|
|
1450
1513
|
otherCustomizations: otherCustomizations,
|
|
1451
|
-
queryParamsProps: queryParamsProps,
|
|
1452
1514
|
updateCustomization: updateCustomization
|
|
1453
1515
|
})]
|
|
1454
1516
|
})
|
|
@@ -1568,6 +1630,18 @@ var ProductEmbed = function ProductEmbed(_ref) {
|
|
|
1568
1630
|
search = _useLocation.search;
|
|
1569
1631
|
var queryParams = new URLSearchParams(search);
|
|
1570
1632
|
var selectedEmbed = toCamelCasedString(queryParams.get("type"));
|
|
1633
|
+
var _useProductEmbedStore = useProductEmbedStore(function (store) {
|
|
1634
|
+
return {
|
|
1635
|
+
setProductEmbedState: store["setProductEmbedState"]
|
|
1636
|
+
};
|
|
1637
|
+
}, shallow.shallow),
|
|
1638
|
+
setProductEmbedState = _useProductEmbedStore.setProductEmbedState;
|
|
1639
|
+
React.useEffect(function () {
|
|
1640
|
+
setProductEmbedState({
|
|
1641
|
+
isQueryParamsEnabled: isQueryParamsEnabled,
|
|
1642
|
+
queryParamsProps: queryParamsProps
|
|
1643
|
+
});
|
|
1644
|
+
}, []);
|
|
1571
1645
|
return selectedEmbed ? /*#__PURE__*/jsxRuntime.jsx(EmbedRenderer, {
|
|
1572
1646
|
className: className,
|
|
1573
1647
|
customEmbedScriptPath: customEmbedScriptPath,
|
|
@@ -1575,7 +1649,6 @@ var ProductEmbed = function ProductEmbed(_ref) {
|
|
|
1575
1649
|
extraArgs: extraArgs,
|
|
1576
1650
|
id: id,
|
|
1577
1651
|
inlineWrapperStyle: inlineWrapperStyle,
|
|
1578
|
-
isQueryParamsEnabled: isQueryParamsEnabled,
|
|
1579
1652
|
options: options,
|
|
1580
1653
|
otherCustomizations: otherCustomizations,
|
|
1581
1654
|
queryParamsProps: queryParamsProps,
|