@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.
@@ -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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"}
@@ -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 _useState = React.useState([INITIAL_QUERY_PARAM]),
247
- _useState2 = _slicedToArray(_useState, 2),
248
- queryParams = _useState2[0],
249
- setQueryParams = _useState2[1];
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
- var elementSelector = customization.elementSelector;
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(elementSelector);
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: elementSelector,
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 _window$globalProps$a;
1293
- var btn = document.getElementById("embedBtn");
1294
- (_window$globalProps$a = window[globalProps.appName.replace(/^neeto/i, "neeto")]) === null || _window$globalProps$a === void 0 || _window$globalProps$a.embed(btn, iframeURL);
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("embedBtn");
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: "embedBtn",
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,