@bigbinary/neeto-molecules 3.15.48 → 3.15.50

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.
@@ -254,7 +254,7 @@ var buildQueryParamsFromInputFields = function buildQueryParamsFromInputFields(i
254
254
  }, {});
255
255
  if (isEmpty(queryParams)) return "";
256
256
  var queryParamJsonString = JSON.stringify(queryParams, null, 2);
257
- return queryParamJsonString.replace(/"([^"]+)":/g, "$1: ").replace(/\n/g, " ").replace(/\s\s+/g, " ");
257
+ return queryParamJsonString.replace(/\n/g, " ").replace(/\s\s+/g, " ");
258
258
  };
259
259
 
260
260
  function ownKeys$1(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; }
@@ -1 +1 @@
1
- {"version":3,"file":"ProductEmbed.js","sources":["../src/components/ProductEmbed/Code.jsx","../src/components/ProductEmbed/constants.js","../src/components/ProductEmbed/Customization/constants.js","../src/components/ProductEmbed/utils/html.js","../src/components/ProductEmbed/utils/react.js","../src/components/ProductEmbed/utils/index.js","../src/components/ProductEmbed/Customization/DynamicQueryParams.jsx","../src/components/ProductEmbed/Customization/ElementPopup.jsx","../src/components/ProductEmbed/Customization/FloatingPopup.jsx","../src/components/ProductEmbed/Customization/Inline.jsx","../src/components/ProductEmbed/Customization/index.jsx","../src/components/ProductEmbed/Header.jsx","../src/components/ProductEmbed/Options.jsx","../src/components/ProductEmbed/Preview/ElementPopup.jsx","../src/components/ProductEmbed/Preview/FloatingPopup.jsx","../src/components/ProductEmbed/Preview/Inline.jsx","../src/components/ProductEmbed/Preview/index.jsx","../src/components/ProductEmbed/index.jsx"],"sourcesContent":["import Codeblock from \"components/Codeblock\";\n\nconst Code = ({ code, tab }) => (\n <div\n className=\"neeto-molecules-embed__code-block relative w-full overflow-y-auto\"\n data-cy=\"embed-code-block\"\n data-testid={`${tab}-code-block`}\n >\n <Codeblock {...{ code }} />\n </div>\n);\n\nexport default Code;\n","import { t } from \"i18next\";\nimport { Code } from \"neetoicons\";\n\nexport const TAB_KEYS = { HTML: \"html\", REACT: \"react\" };\n\nexport const TABS = [\n {\n key: TAB_KEYS.HTML,\n label: t(\"neetoMolecules.productEmbed.tab.html\"),\n icon: Code,\n },\n {\n key: TAB_KEYS.REACT,\n label: t(\"neetoMolecules.productEmbed.tab.react\"),\n icon: Code,\n },\n];\n\nexport const EMBED_OPTIONS = {\n INLINE: \"inline\",\n FLOATING_POPUP: \"floatingPopup\",\n ELEMENT_POPUP: \"elementPopup\",\n};\n\nexport const DEFAULT_CUSTOMIZATION = {\n [EMBED_OPTIONS.INLINE]: {\n width: 100,\n height: 100,\n elementSelector: \"inline-embed-container\",\n },\n [EMBED_OPTIONS.FLOATING_POPUP]: {\n showIcon: false,\n btnText: \"Open\",\n btnColor: \"#008068\",\n btnTextColor: \"#fff\",\n btnPosition: \"bottomRight\",\n },\n [EMBED_OPTIONS.ELEMENT_POPUP]: {\n elementSelector: \"open-popup-button\",\n },\n};\n\nexport const SCRIPT_ID = \"embed-script\";\n\nexport const TAB_STRING = \" \";\n","import { t } from \"i18next\";\n\nexport const FLOATING_BUTTON_POSITIONS = [\n {\n label: t(\"neetoMolecules.productEmbed.customization.position.bottomLeft\"),\n value: \"bottomLeft\",\n },\n {\n label: t(\"neetoMolecules.productEmbed.customization.position.bottomRight\"),\n value: \"bottomRight\",\n },\n];\n\nexport const INITIAL_QUERY_PARAM = { name: \"\", value: \"\" };\n","import { toPairs } from \"ramda\";\n\nimport { TAB_STRING } from \"../constants\";\n\nconst camelCasedAppName = globalProps.appName.replace(/^neeto/i, \"neeto\");\n\nconst embedBaseScript = embedScriptLink =>\n `<script>window.${camelCasedAppName} = window.${camelCasedAppName} || { embed: function(){(${camelCasedAppName}.q=${camelCasedAppName}.q||[]).push(arguments)} };</script>\n <script async\n src=\"${embedScriptLink}\">\n </script>`;\n\nconst embedEnv = () =>\n globalProps.railsEnv !== \"production\"\n ? `\\n${TAB_STRING} env: \"${globalProps.railsEnv}\",`\n : \"\";\n\nconst embedQueryParam = queryParams =>\n queryParams ? `\\n${TAB_STRING} queryParams: ${queryParams},` : \"\";\n\nconst parseExtraArgs = extraArgs =>\n toPairs(extraArgs).map(\n ([key, value]) => `\\n${TAB_STRING} ${key}: \"${value}\"`\n );\n\nconst inlineEmbedCode = ({\n customization,\n id,\n embedScriptLink,\n extraArgs,\n inlineWrapperStyle,\n}) => {\n const {\n elementSelector,\n width = 100,\n height = 100,\n queryParams,\n } = customization;\n\n return `\n <!-- ${globalProps.appName} inline embed code begins -->\n <div style=\"${\n inlineWrapperStyle || \"height: 90vh; width: 100%;\"\n }\" id=\"${elementSelector}\">\n <!-- ${globalProps.appName} widget will be added here -->\n </div>\n ${embedBaseScript(embedScriptLink)}\n <script>\n ${camelCasedAppName}.embed({\n type: \"inline\",\n id: \"${id}\",\n organization: \"${globalProps.organization.subdomain}\",\n elementSelector: \"#${elementSelector}\",\n styles: { height: \"${height}%\", width: \"${width}%\"},${embedQueryParam(\n queryParams\n )}${embedEnv()}${parseExtraArgs(extraArgs)}\n });\n </script>\n <!-- ${globalProps.appName} inline embed code ends -->`;\n};\n\nconst floatingPopupEmbedCode = ({\n customization,\n id,\n embedScriptLink,\n extraArgs,\n}) => {\n const {\n btnTextColor,\n showIcon,\n btnText,\n btnPosition,\n btnColor,\n icon,\n queryParams,\n } = customization;\n\n return `\n <!-- ${globalProps.appName} floating-popup embed code begins -->\n ${embedBaseScript(embedScriptLink)}\n <script>\n ${camelCasedAppName}.embed({\n type: \"floatingPopup\",\n id: \"${id}\",\n organization: \"${globalProps.organization.subdomain}\",\n styles: {\n btnTextColor: \"${btnTextColor}\",\n btnPosition: \"${btnPosition}\",\n btnColor: \"${btnColor}\",\n btnText: \"${btnText}\", ${\n icon ? `\\n${TAB_STRING}${TAB_STRING}showIcon: ${showIcon},` : \"\"\n }\n },${embedQueryParam(queryParams)}${embedEnv()}${parseExtraArgs(extraArgs)}\n });\n </script>\n <!-- ${globalProps.appName} floating-popup embed code ends -->`;\n};\n\nconst elementPopupEmbedCode = ({\n customization,\n id,\n embedScriptLink,\n extraArgs,\n}) => {\n const { elementSelector, queryParams } = customization;\n\n return `\n <!-- This is a demo button, you can use any element on your website instead. -->\n <button id=\"${elementSelector}\">Click to open popup</button>\n\n <!-- ${globalProps.appName} element-click embed code begins -->\n ${embedBaseScript(embedScriptLink)}\n <script>\n ${camelCasedAppName}.embed({\n type: \"elementClick\",\n id: \"${id}\",\n organization: \"${globalProps.organization.subdomain}\",\n elementSelector: \"#${elementSelector}\",${embedQueryParam(\n queryParams\n )}${embedEnv()}${parseExtraArgs(extraArgs)}\n });\n </script>\n <!-- ${globalProps.appName} element-click embed code ends -->`;\n};\n\nexport const htmlCodeGenerators = {\n inline: inlineEmbedCode,\n floatingPopup: floatingPopupEmbedCode,\n elementPopup: elementPopupEmbedCode,\n};\n","import { toPairs } from \"ramda\";\n\nimport { TAB_STRING } from \"../constants\";\n\nconst camelCasedAppName = globalProps.appName.replace(/^neeto/i, \"neeto\");\nconst embedFunctionName = `embed${globalProps.appName}`;\n\nconst baseScript = `const baseScript = document.createElement(\"script\");\n baseScript.innerHTML = \\`window.${camelCasedAppName} = window.${camelCasedAppName} || { embed: function(){(${camelCasedAppName}.q=${camelCasedAppName}.q||[]).push(arguments)} };\\`\n document.body.appendChild(baseScript);\n`;\n\nconst embedScript =\n scriptLink => `const embedScript = document.createElement(\"script\");\n embedScript.src = \"${scriptLink}\";\n embedScript.async = true;\n document.body.appendChild(embedScript);\n`;\n\nconst cleanupFunction = `// Cleanup function\n return () => {\n document.body.removeChild(baseScript);\n document.body.removeChild(embedScript);\n };`;\n\nconst embedEnv = () =>\n globalProps.railsEnv !== \"production\"\n ? `\\n${TAB_STRING}${TAB_STRING}env: \"${globalProps.railsEnv}\",`\n : \"\";\n\nconst embedQueryParam = queryParams =>\n queryParams ? `\\n${TAB_STRING}${TAB_STRING}queryParams: ${queryParams},` : \"\";\n\nconst parseExtraArgs = extraArgs =>\n toPairs(extraArgs).map(\n ([key, value]) => `\\n${TAB_STRING}${TAB_STRING}${key}: \"${value}\"`\n );\n\nconst parseInlineStyle = styleString =>\n styleString\n ? styleString\n .split(\";\")\n .map(rule => {\n const [key, value] = rule.split(\":\").map(s => s.trim());\n\n return key && value ? `${key}: \"${value}\"` : null;\n })\n .filter(Boolean)\n .join(\", \")\n : 'height: \"90vh\", width: \"100%\"';\n\nconst inlineEmbedCode = ({\n customization,\n id,\n embedScriptLink,\n extraArgs,\n inlineWrapperStyle,\n}) => {\n const {\n elementSelector,\n width = 100,\n height = 100,\n queryParams,\n } = customization;\n\n return `\n import { useEffect } from \"react\";\n\n const App = () => {\n const ${embedFunctionName} = () => {\n ${baseScript}\n ${embedScript(embedScriptLink)}\n ${camelCasedAppName}.embed({\n type: \"inline\",\n id: \"${id}\",\n organization: \"${globalProps.organization.subdomain}\",\n elementSelector: \"#${elementSelector}\",\n styles: { height: \"${height}%\", width: \"${width}%\" },${embedQueryParam(\n queryParams\n )}${embedEnv()}${parseExtraArgs(extraArgs)}\n });\n\n ${cleanupFunction}\n };\n\n useEffect(() => ${embedFunctionName}(), []);\n\n return (\n <div\n id=\"inline-embed-container\"\n style={{ ${parseInlineStyle(inlineWrapperStyle)} }}\n />\n );\n };`;\n};\n\nconst floatingPopupEmbedCode = ({\n customization,\n id,\n embedScriptLink,\n extraArgs,\n}) => {\n const {\n btnTextColor,\n showIcon,\n btnText,\n btnPosition,\n btnColor,\n icon,\n queryParams,\n } = customization;\n\n return `\n import { useEffect } from \"react\";\n\n const App = () => {\n const ${embedFunctionName} = () => {\n ${baseScript}\n ${embedScript(embedScriptLink)}\n ${camelCasedAppName}.embed({\n type: \"floatingPopup\",\n id: \"${id}\",\n organization: \"${globalProps.organization.subdomain}\",\n styles: {\n btnTextColor: \"${btnTextColor}\",\n btnPosition: \"${btnPosition}\",\n btnColor: \"${btnColor}\",\n btnText: \"${btnText}\",${\n icon ? `\\n${TAB_STRING}${TAB_STRING} showIcon: ${showIcon},` : \"\"\n }\n },${embedQueryParam(queryParams)}${embedEnv()}${parseExtraArgs(\n extraArgs\n )}\n });\n\n ${cleanupFunction}\n };\n\n useEffect(() => ${embedFunctionName}(), []);\n\n return <div />;\n };`;\n};\n\nconst elementPopupEmbedCode = ({\n customization,\n id,\n embedScriptLink,\n extraArgs,\n}) => {\n const { elementSelector, queryParams } = customization;\n\n return `\n import { useEffect } from \"react\";\n\n const App = () => {\n const ${embedFunctionName} = () => {\n ${baseScript}\n ${embedScript(embedScriptLink)}\n ${camelCasedAppName}.embed({\n type: \"elementClick\",\n id: \"${id}\",\n organization: \"${globalProps.organization.subdomain}\",\n elementSelector: \"#${elementSelector}\",${embedQueryParam(\n queryParams\n )}${embedEnv()}${parseExtraArgs(extraArgs)}\n });\n\n ${cleanupFunction}\n };\n\n useEffect(() => ${embedFunctionName}(), []);\n\n return <button id=\"${elementSelector}\">Click to open popup</button>;\n };`;\n};\n\nexport const reactCodeGenerators = {\n inline: inlineEmbedCode,\n floatingPopup: floatingPopupEmbedCode,\n elementPopup: elementPopupEmbedCode,\n};\n","import { isEmpty, mergeDeepLeft } from \"ramda\";\n\nimport { htmlCodeGenerators } from \"./html\";\nimport { reactCodeGenerators } from \"./react\";\n\nimport { DEFAULT_CUSTOMIZATION } from \"../constants\";\n\nexport const generateCode = options => {\n const { tab, type, ...embeddedCodeOptions } = options;\n\n return tab === \"react\"\n ? reactCodeGenerators[type]?.(embeddedCodeOptions)\n : htmlCodeGenerators[type]?.(embeddedCodeOptions);\n};\n\nexport const buildDefaultCustomization = defaultCustomizations =>\n mergeDeepLeft(defaultCustomizations, DEFAULT_CUSTOMIZATION);\n\nexport const buildQueryParamsFromInputFields = inputFields => {\n const filteredInputFields = inputFields.filter(\n ({ name, value }) => name && value\n );\n\n const queryParams = filteredInputFields.reduce(\n (queryParams, { name, value }) => {\n queryParams[name] = value;\n\n return queryParams;\n },\n {}\n );\n\n if (isEmpty(queryParams)) return \"\";\n\n const queryParamJsonString = JSON.stringify(queryParams, null, 2);\n\n return queryParamJsonString\n .replace(/\"([^\"]+)\":/g, \"$1: \")\n .replace(/\\n/g, \" \")\n .replace(/\\s\\s+/g, \" \");\n};\n","import { useState, useEffect } from \"react\";\n\nimport { Delete, Plus } from \"neetoicons\";\nimport { Button, Label, Input } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { INITIAL_QUERY_PARAM } from \"./constants\";\n\nimport { buildQueryParamsFromInputFields } from \"../utils\";\n\nconst DynamicQueryParams = ({ updateCustomization }) => {\n const { t } = useTranslation();\n const [queryParams, setQueryParams] = useState([INITIAL_QUERY_PARAM]);\n\n const handleAddQueryParam = () => {\n setQueryParams([...queryParams, INITIAL_QUERY_PARAM]);\n };\n\n const handleRemoveQueryParam = index => {\n const newQueryParams = queryParams.filter((_, i) => i !== index);\n setQueryParams(newQueryParams);\n };\n\n const handleInputChange = (index, field, value) => {\n const newQueryParams = queryParams.map((param, i) =>\n i === index ? { ...param, [field]: value } : param\n );\n setQueryParams(newQueryParams);\n };\n\n useEffect(() => {\n updateCustomization({\n queryParams: buildQueryParamsFromInputFields(queryParams),\n });\n }, [queryParams]);\n\n return (\n <div>\n <Label className=\"mb-2\" data-cy=\"dynamic-query-params-label\">\n {t(\"neetoMolecules.productEmbed.customization.queryParam.label\")}\n </Label>\n {queryParams.map((param, index) => (\n <div className=\"mb-1 flex gap-1\" key={index}>\n <Input\n data-cy=\"dynamic-query-key-name-input\"\n data-testid=\"dynamic-query-key-name-input\"\n name={`queryParams.${index}.name`}\n value={param.name}\n placeholder={t(\n \"neetoMolecules.productEmbed.customization.queryParam.keyNamePlaceholder\"\n )}\n onChange={e => handleInputChange(index, \"name\", e.target.value)}\n />\n <Input\n data-cy=\"dynamic-query-key-value-input\"\n data-testid=\"dynamic-query-key-value-input\"\n name={`queryParams.${index}.value`}\n value={param.value}\n placeholder={t(\n \"neetoMolecules.productEmbed.customization.queryParam.keyValuePlaceholder\"\n )}\n onChange={e => handleInputChange(index, \"value\", e.target.value)}\n />\n <Button\n data-cy=\"dynamic-query-delete-button\"\n icon={Delete}\n style=\"text\"\n onClick={() => handleRemoveQueryParam(index)}\n />\n </div>\n ))}\n <Button\n className=\"my-2\"\n data-cy=\"dynamic-query-add-new-button\"\n icon={Plus}\n iconPosition=\"left\"\n style=\"link\"\n label={t(\n \"neetoMolecules.productEmbed.customization.queryParam.addQueryParam\"\n )}\n onClick={handleAddQueryParam}\n />\n </div>\n );\n};\n\nexport default DynamicQueryParams;\n","import { useEffect } from \"react\";\n\nimport { Typography, Input, Callout } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DynamicQueryParams from \"./DynamicQueryParams\";\n\nconst ElementPopup = ({\n customization,\n updateCustomization,\n isQueryParamsEnabled,\n otherCustomizations,\n}) => {\n const { elementSelector } = customization;\n const { t } = useTranslation();\n\n useEffect(() => {\n if (isQueryParamsEnabled) return;\n\n updateCustomization({ queryParams: undefined });\n }, []);\n\n return (\n <div className=\"space-y-6\">\n <Typography data-cy=\"element-popup-header\" style=\"h4\">\n {t(\"neetoMolecules.productEmbed.customization.elementPopup.title\")}\n </Typography>\n <Callout data-cy=\"element-popup-description\">\n {t(\n \"neetoMolecules.productEmbed.customization.elementPopup.description\"\n )}\n </Callout>\n <Input\n className=\"w-full\"\n data-cy=\"element-id-input-field\"\n data-testid=\"element-id-input-field\"\n value={elementSelector}\n error={\n !elementSelector &&\n t(\"neetoMolecules.productEmbed.customization.elementPopup.warning\")\n }\n label={t(\n \"neetoMolecules.productEmbed.customization.elementPopup.elementId\"\n )}\n onChange={e => updateCustomization({ elementSelector: e.target.value })}\n />\n {otherCustomizations()}\n {isQueryParamsEnabled && (\n <DynamicQueryParams {...{ updateCustomization }} />\n )}\n </div>\n );\n};\n\nexport default ElementPopup;\n","import { useEffect } from \"react\";\n\nimport {\n Typography,\n Label,\n Input,\n Checkbox,\n Select,\n ColorPicker,\n} from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { FLOATING_BUTTON_POSITIONS } from \"./constants\";\nimport DynamicQueryParams from \"./DynamicQueryParams\";\n\nconst FloatingPopup = ({\n customization,\n updateCustomization,\n isQueryParamsEnabled,\n otherCustomizations,\n}) => {\n const { t } = useTranslation();\n\n const { btnTextColor, showIcon, btnText, btnPosition, btnColor, icon } =\n customization;\n\n useEffect(() => {\n if (isQueryParamsEnabled) return;\n\n updateCustomization({ queryParams: undefined });\n }, []);\n\n return (\n <div className=\"space-y-6\">\n <Typography data-cy=\"popup-customization-header\" style=\"h4\">\n {t(\"neetoMolecules.productEmbed.customization.floatingPopup.title\")}\n </Typography>\n {icon && (\n <Checkbox\n checked={showIcon}\n data-cy=\"show-icon-checkbox\"\n data-testid=\"show-icon-checkbox\"\n label={t(\n \"neetoMolecules.productEmbed.customization.floatingPopup.showCalIcon\"\n )}\n onChange={e => updateCustomization({ showIcon: e.target.checked })}\n />\n )}\n <div className=\"space-y-2\">\n <Input\n data-cy=\"button-text-input-field\"\n data-testid=\"button-text-input-field\"\n value={btnText}\n label={t(\n \"neetoMolecules.productEmbed.customization.floatingPopup.button.text\"\n )}\n onChange={e => updateCustomization({ btnText: e.target.value })}\n />\n </div>\n <div className=\"space-y-2\">\n <Select\n data-cy=\"button-position-select-field\"\n data-testid=\"button-position-select-field\"\n options={FLOATING_BUTTON_POSITIONS}\n value={btnPosition}\n getOptionValue={option =>\n typeof option === \"string\" ? option : option.value\n }\n label={t(\n \"neetoMolecules.productEmbed.customization.floatingPopup.button.pos\"\n )}\n onChange={e => updateCustomization({ btnPosition: e.value })}\n />\n </div>\n <div\n className=\"flex items-center justify-between gap-x-2\"\n data-cy=\"button-color-label\"\n >\n <Label>\n {t(\n \"neetoMolecules.productEmbed.customization.floatingPopup.button.color\"\n )}\n </Label>\n <ColorPicker\n color={btnColor}\n onChange={e => updateCustomization({ btnColor: e.hex })}\n />\n </div>\n <div\n className=\"flex items-center justify-between gap-x-2\"\n data-cy=\"button-text-color-label\"\n >\n <Label>\n {t(\n \"neetoMolecules.productEmbed.customization.floatingPopup.button.textColor\"\n )}\n </Label>\n <ColorPicker\n color={btnTextColor}\n onChange={e => updateCustomization({ btnTextColor: e.hex })}\n />\n </div>\n {otherCustomizations()}\n {isQueryParamsEnabled && (\n <DynamicQueryParams {...{ updateCustomization }} />\n )}\n </div>\n );\n};\n\nexport default FloatingPopup;\n","import { useEffect } from \"react\";\n\nimport { Typography, Input, Label } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DynamicQueryParams from \"./DynamicQueryParams\";\n\nconst Inline = ({\n customization,\n updateCustomization,\n isQueryParamsEnabled,\n otherCustomizations,\n}) => {\n const { height, width, elementSelector } = customization;\n\n const { t } = useTranslation();\n\n const handleInputChange = ({ target: { value } }, attribute) =>\n updateCustomization({ [attribute]: value });\n\n useEffect(() => {\n if (isQueryParamsEnabled) return;\n\n updateCustomization({ queryParams: undefined });\n }, []);\n\n return (\n <div className=\"flex flex-col gap-y-6\">\n <Typography data-cy=\"customization-text\" style=\"h4\">\n {t(\"neetoMolecules.productEmbed.customization.inline.title\")}\n </Typography>\n <div className=\"flex flex-col gap-2\">\n <Label data-cy=\"window-size-text\">\n {t(\n \"neetoMolecules.productEmbed.customization.inline.sizeOfEmbedWindow\"\n )}\n </Label>\n <div className=\"flex justify-between gap-x-2\">\n <Input\n className=\"neeto-molecules-product-embed-size-input\"\n data-cy=\"inline-width-input-field\"\n data-testid=\"inline-width-input-field\"\n max={100}\n min={0}\n prefix=\"W\"\n suffix=\"%\"\n type=\"number\"\n value={width}\n onChange={e => handleInputChange(e, \"width\")}\n />\n <Input\n className=\"neeto-molecules-product-embed-size-input\"\n data-cy=\"inline-height-input-field\"\n data-testid=\"inline-height-input-field\"\n max={100}\n min={0}\n prefix=\"H\"\n suffix=\"%\"\n type=\"number\"\n value={height}\n onChange={e => handleInputChange(e, \"height\")}\n />\n </div>\n </div>\n <div className=\"flex flex-col gap-2\">\n <Label data-cy=\"inline-element-id-input-label\">\n {t(\"neetoMolecules.productEmbed.customization.inline.elementId\")}\n </Label>\n <Input\n data-cy=\"inline-element-id-input-field\"\n data-testid=\"inline-element-id-input-field\"\n value={elementSelector}\n onChange={e => handleInputChange(e, \"elementSelector\")}\n />\n </div>\n {otherCustomizations()}\n {isQueryParamsEnabled && (\n <DynamicQueryParams {...{ updateCustomization }} />\n )}\n </div>\n );\n};\n\nexport default Inline;\n","import ElementPopup from \"./ElementPopup\";\nimport FloatingPopup from \"./FloatingPopup\";\nimport Inline from \"./Inline\";\n\nimport { EMBED_OPTIONS } from \"../constants\";\n\nconst Customization = ({\n option,\n customization,\n updateCustomization,\n isQueryParamsEnabled,\n otherCustomizations,\n}) => {\n const type = {\n [EMBED_OPTIONS.INLINE]: Inline,\n [EMBED_OPTIONS.FLOATING_POPUP]: FloatingPopup,\n [EMBED_OPTIONS.ELEMENT_POPUP]: ElementPopup,\n };\n const Component = type[option];\n\n return (\n <Component\n {...{\n customization,\n isQueryParamsEnabled,\n otherCustomizations,\n updateCustomization,\n }}\n />\n );\n};\n\nexport default Customization;\n","import { Tab } from \"neetoui\";\n\nconst Header = ({ supportedLanguagesTabs, setTab, tab }) => (\n <div className=\"flex w-full\">\n <Tab noUnderline className=\"neeto-molecules-product-embed-tab\">\n {supportedLanguagesTabs.map(({ key, label, icon }) => (\n <Tab.Item\n {...{ icon }}\n active={tab === key}\n data-cy={`${key}-tab`}\n data-testid={`${key}-tab`}\n key={key}\n onClick={() => setTab(key)}\n >\n {label}\n </Tab.Item>\n ))}\n </Tab>\n </div>\n);\n\nexport default Header;\n","import { Radio, Typography } from \"neetoui\";\n\nconst Options = ({ options, selectedOption, setSelectedOption }) => (\n <Radio\n stacked\n containerClassName=\"w-full flex flex-col gap-y-4\"\n name=\"options\"\n >\n {Object.entries(options).map(([key, { label, description }]) => (\n <label\n className=\"neeto-ui-border-gray-300 neeto-ui-bg-white neeto-ui-rounded-lg w-full cursor-pointer border p-4\"\n data-cy={`${key}-embed-option-label`}\n data-testid={`${key}-embed-option-label`}\n htmlFor={key}\n key={key}\n >\n <div className=\"flex items-center\">\n <Radio.Item\n {...{ label }}\n checked={key === selectedOption}\n className=\"mb-0\"\n data-cy={`${key}-embed-radio-button`}\n data-testid={`${key}-embed-radio-button`}\n id={key}\n name=\"options\"\n value={key}\n onChange={event => setSelectedOption(event.target.value)}\n />\n </div>\n <Typography\n className=\"w-full pl-6 pt-1\"\n data-cy={`${key}-embed-option-description`}\n style=\"body2\"\n >\n {description}\n </Typography>\n </label>\n ))}\n </Radio>\n);\n\nexport default Options;\n","import { useEffect } from \"react\";\n\nimport { Button } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ElementPopup = ({ iframeURL, customization }) => {\n const { t } = useTranslation();\n\n const { elementSelector } = customization;\n\n useEffect(() => {\n const element = document.getElementById(elementSelector);\n if (element) {\n window[globalProps.appName.replace(/^neeto/i, \"neeto\")]?.embed(\n element,\n iframeURL\n );\n }\n }, []);\n\n return (\n <div className=\"relative flex h-full w-full items-center justify-center p-6\">\n <Button\n data-cy=\"preview-element-popup-button\"\n data-testid=\"preview-element-popup-button\"\n id={elementSelector}\n label={t(\n \"neetoMolecules.productEmbed.customization.elementPopup.label\"\n )}\n />\n </div>\n );\n};\n\nexport default ElementPopup;\n","import { useEffect } from \"react\";\n\nimport classNames from \"classnames\";\nimport { Button } from \"neetoui\";\n\nconst FloatingPopup = ({ iframeURL, customization }) => {\n const { btnTextColor, showIcon, btnText, btnPosition, btnColor, icon } =\n customization;\n\n useEffect(() => {\n const btn = document.getElementById(\"embedBtn\");\n window[globalProps.appName.replace(/^neeto/i, \"neeto\")]?.embed(\n btn,\n iframeURL\n );\n }, []);\n\n useEffect(() => {\n const btn = document.getElementById(\"embedBtn\");\n btn.style.backgroundColor = btnColor;\n btn.style.color = btnTextColor;\n }, [btnColor, btnTextColor]);\n\n return (\n <div className=\"relative h-full w-full\">\n <Button\n data-cy=\"popup-preview-button\"\n icon={icon && showIcon ? icon : null}\n iconPosition=\"left\"\n id=\"embedBtn\"\n label={btnText}\n className={classNames(\"absolute bottom-0 m-4\", {\n \"left-0\": btnPosition === \"bottomLeft\",\n \"right-0\": btnPosition === \"bottomRight\",\n })}\n />\n </div>\n );\n};\n\nexport default FloatingPopup;\n","const Inline = ({ iframeURL, customization }) => {\n const { height, width } = customization;\n\n return (\n <iframe\n className=\"m-auto\"\n height={`${height}%`}\n src={iframeURL}\n width={`${width}%`}\n />\n );\n};\n\nexport default Inline;\n","import { Spinner } from \"neetoui\";\n\nimport BrowserPreview from \"components/BrowserPreview\";\n\nimport ElementPopup from \"./ElementPopup\";\nimport FloatingPopup from \"./FloatingPopup\";\nimport Inline from \"./Inline\";\n\nimport { EMBED_OPTIONS } from \"../constants\";\n\nconst Preview = ({\n isScriptLoading,\n selectedOption,\n id,\n customization,\n customPreviewIframeUrl = \"\",\n}) => {\n const preview = {\n [EMBED_OPTIONS.INLINE]: Inline,\n [EMBED_OPTIONS.FLOATING_POPUP]: FloatingPopup,\n [EMBED_OPTIONS.ELEMENT_POPUP]: ElementPopup,\n };\n\n const iframeURL = customPreviewIframeUrl || `${location.origin}/embed/${id}`;\n const Component = preview[selectedOption];\n\n if (isScriptLoading) {\n return (\n <div className=\"flex min-h-0 flex-grow items-center justify-center overflow-y-auto\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <BrowserPreview\n className=\"h-full\"\n wrapperClassName=\"neeto-molecules-embed__browser-preview pointer-events-auto\"\n >\n <Component {...{ customization, iframeURL }} />\n </BrowserPreview>\n );\n};\n\nexport default Preview;\n","import { useEffect, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { noop, filterBy } from \"neetocist\";\nimport { LeftArrow } from \"neetoicons\";\nimport { Button, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { mergeLeft } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Code from \"./Code\";\nimport { EMBED_OPTIONS, SCRIPT_ID, TABS } from \"./constants\";\nimport Customization from \"./Customization\";\nimport Header from \"./Header\";\nimport Options from \"./Options\";\nimport Preview from \"./Preview\";\nimport \"./product-embed.scss\";\nimport { buildDefaultCustomization, generateCode } from \"./utils\";\n\nconst ProductEmbed = ({\n className = \"\",\n customEmbedScriptPath = \"\",\n customPreviewIframeUrl = \"\",\n goBackLink = \"\",\n id,\n isQueryParamsEnabled = false,\n options = {},\n extraArgs = {},\n otherCustomizations = noop,\n inlineWrapperStyle = \"\",\n supportedLanguages = [\"html\"],\n}) => {\n const supportedLanguagesTabs = filterBy(\n { key: key => supportedLanguages?.includes(key) },\n TABS\n );\n const [isScriptLoading, setIsScriptLoading] = useState(true);\n const [tab, setTab] = useState(supportedLanguagesTabs[0].key);\n const [selectedOption, setSelectedOption] = useState(EMBED_OPTIONS.INLINE);\n const [customizations, setCustomizations] = useState(() =>\n buildDefaultCustomization(options)\n );\n\n const { t } = useTranslation();\n\n const embedScriptLink =\n customEmbedScriptPath ||\n `${window.location.protocol}//${window.location.host}/javascript/embed.js`;\n\n const code = generateCode({\n id,\n tab,\n type: selectedOption,\n customization: customizations[selectedOption],\n embedScriptLink,\n extraArgs,\n inlineWrapperStyle,\n });\n\n const loadScript = () => {\n const script = document.createElement(\"script\");\n script.id = SCRIPT_ID;\n script.src = embedScriptLink;\n document.head.appendChild(script);\n setIsScriptLoading(false);\n };\n\n const updateCustomization = props =>\n setCustomizations(prevState => ({\n ...prevState,\n [selectedOption]: mergeLeft(props, prevState[selectedOption]),\n }));\n\n useEffect(() => {\n const isScriptLoaded = document.getElementById(SCRIPT_ID);\n if (isScriptLoaded) setIsScriptLoading(false);\n else loadScript();\n }, []);\n\n return (\n <div\n data-testid=\"embed-product\"\n className={classNames(\n \"neeto-molecules-embed flex w-full flex-grow flex-col md:flex-row\",\n className\n )}\n >\n <div className=\"neeto-molecules-embed__left-sidebar\">\n {goBackLink && (\n <Button\n className=\"mb-4\"\n data-cy=\"back-button\"\n data-testid=\"back-button\"\n icon={LeftArrow}\n iconPosition=\"left\"\n label={t(\"neetoMolecules.productEmbed.backToShare\")}\n size=\"small\"\n style=\"link\"\n to={goBackLink}\n />\n )}\n <Typography data-cy=\"embed-options-header-title\" style=\"h3\">\n {t(\"neetoMolecules.productEmbed.embedOptions.title\")}\n </Typography>\n <div className=\"mt-6 flex w-full flex-col gap-y-6 md:pb-20\">\n <Options {...{ options, selectedOption, setSelectedOption }} />\n <Customization\n {...{\n isQueryParamsEnabled,\n otherCustomizations,\n updateCustomization,\n }}\n customization={customizations[selectedOption]}\n option={selectedOption}\n />\n </div>\n </div>\n <div className=\"neeto-molecules-embed__preview neeto-ui-bg-white flex min-h-screen w-full min-w-0 flex-col gap-3 overflow-y-auto p-6 md:min-h-0 md:flex-grow\">\n <Header {...{ setTab, supportedLanguagesTabs, tab }} />\n <div className=\"flex min-h-0 flex-grow flex-col gap-3\">\n <div className=\"flex-shrink-0\" data-testid=\"embed-code-block\">\n <Code {...{ code, tab }} />\n </div>\n <div className=\"flex-grow\">\n <Preview\n {...{\n customPreviewIframeUrl,\n id,\n isScriptLoading,\n selectedOption,\n }}\n customization={customizations[selectedOption]}\n />\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nProductEmbed.propTypes = {\n /**\n * To set custom classNames. (optional)\n */\n className: PropTypes.string,\n /**\n * To use a different embed script. Uses /javascript/embed.js by default. (optional)\n */\n customEmbedScriptPath: PropTypes.string,\n /**\n * To use a different iframeUrl in Product embed preview. Uses /embed/${id} by default. (optional)\n */\n customPreviewIframeUrl: PropTypes.string,\n /**\n * To specify extra arguments to pass to the embed script. (optional)\n */\n extraArgs: PropTypes.object,\n /**\n * To show the 'Back to share' button. (optional)\n */\n goBackLink: PropTypes.string,\n /**\n * To specify the entity ID.\n */\n id: PropTypes.string,\n /**\n * To specify the Embed options for the product.\n */\n options: PropTypes.shape({\n inline: PropTypes.shape({\n label: PropTypes.string,\n description: PropTypes.string,\n width: PropTypes.number,\n height: PropTypes.number,\n elementSelector: PropTypes.string,\n }),\n floatingPopup: PropTypes.shape({\n label: PropTypes.string,\n description: PropTypes.string,\n btnTextColor: PropTypes.string,\n btnText: PropTypes.string,\n btnPosition: PropTypes.string,\n btnColor: PropTypes.string,\n icon: PropTypes.func,\n showIcon: PropTypes.bool,\n }),\n elementPopup: PropTypes.shape({\n label: PropTypes.string,\n description: PropTypes.string,\n elementSelector: PropTypes.string,\n }),\n }),\n /**\n * To enable query parameters\n */\n isQueryParamsEnabled: PropTypes.bool,\n /**\n * To add other customization fields to all the embed options\n */\n otherCustomizations: PropTypes.func,\n /**\n * To override the styles of inline embed wrapper div\n */\n inlineWrapperStyle: PropTypes.string,\n /**\n * To specifies the supported languages, currently limited to `html` and `react`.\n */\n supportedLanguages: PropTypes.arrayOf(PropTypes.oneOf([\"html\", \"react\"])),\n};\n\nexport default ProductEmbed;\n"],"names":["Code","_ref","code","tab","_jsx","className","concat","children","Codeblock","TAB_KEYS","HTML","REACT","TABS","key","label","t","icon","EMBED_OPTIONS","INLINE","FLOATING_POPUP","ELEMENT_POPUP","DEFAULT_CUSTOMIZATION","_defineProperty","width","height","elementSelector","showIcon","btnText","btnColor","btnTextColor","btnPosition","SCRIPT_ID","TAB_STRING","FLOATING_BUTTON_POSITIONS","value","INITIAL_QUERY_PARAM","name","camelCasedAppName","globalProps","appName","replace","embedBaseScript","embedScriptLink","embedEnv","railsEnv","embedQueryParam","queryParams","parseExtraArgs","extraArgs","toPairs","map","_ref2","_slicedToArray","inlineEmbedCode","_ref3","customization","id","inlineWrapperStyle","_customization$width","_customization$height","organization","subdomain","floatingPopupEmbedCode","_ref4","elementPopupEmbedCode","_ref5","htmlCodeGenerators","inline","floatingPopup","elementPopup","embedFunctionName","baseScript","embedScript","scriptLink","cleanupFunction","parseInlineStyle","styleString","split","rule","_rule$split$map","s","trim","_rule$split$map2","filter","Boolean","join","reactCodeGenerators","generateCode","options","_reactCodeGenerators$","_htmlCodeGenerators$t","type","embeddedCodeOptions","_objectWithoutProperties","_excluded","call","buildDefaultCustomization","defaultCustomizations","mergeDeepLeft","buildQueryParamsFromInputFields","inputFields","filteredInputFields","reduce","isEmpty","queryParamJsonString","JSON","stringify","DynamicQueryParams","updateCustomization","_useTranslation","useTranslation","_useState","useState","_useState2","setQueryParams","handleAddQueryParam","_toConsumableArray","handleRemoveQueryParam","index","newQueryParams","_","i","handleInputChange","field","param","_objectSpread","useEffect","_jsxs","Label","Input","placeholder","onChange","e","target","Button","Delete","style","onClick","Plus","iconPosition","ElementPopup","isQueryParamsEnabled","otherCustomizations","undefined","Typography","Callout","error","FloatingPopup","Checkbox","checked","Select","getOptionValue","option","ColorPicker","color","hex","Inline","attribute","max","min","prefix","suffix","Customization","Component","Header","supportedLanguagesTabs","setTab","Tab","noUnderline","_createElement","Item","active","Options","selectedOption","setSelectedOption","Radio","stacked","containerClassName","Object","entries","_ref3$","description","htmlFor","event","iframeURL","element","document","getElementById","_window$globalProps$a","window","embed","btn","backgroundColor","classNames","src","Preview","isScriptLoading","_ref$customPreviewIfr","customPreviewIframeUrl","preview","location","origin","Spinner","BrowserPreview","wrapperClassName","ProductEmbed","_ref$className","_ref$customEmbedScrip","customEmbedScriptPath","_ref$goBackLink","goBackLink","_ref$isQueryParamsEna","_ref$options","_ref$extraArgs","_ref$otherCustomizati","noop","_ref$inlineWrapperSty","_ref$supportedLanguag","supportedLanguages","filterBy","includes","setIsScriptLoading","_useState3","_useState4","_useState5","_useState6","_useState7","_useState8","customizations","setCustomizations","protocol","host","loadScript","script","createElement","head","appendChild","props","prevState","mergeLeft","isScriptLoaded","LeftArrow","size","to"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,IAAI,GAAG,SAAPA,IAAIA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAMC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAEC,GAAG,GAAAF,IAAA,CAAHE,GAAG,CAAA;AAAA,EAAA,oBACvBC,GAAA,CAAA,KAAA,EAAA;AACEC,IAAAA,SAAS,EAAC,mEAAmE;AAC7E,IAAA,SAAA,EAAQ,kBAAkB;IAC1B,aAAAC,EAAAA,EAAAA,CAAAA,MAAA,CAAgBH,GAAG,EAAc,aAAA,CAAA;IAAAI,QAAA,eAEjCH,GAAA,CAACI,SAAS,EAAA;AAAON,MAAAA,IAAI,EAAJA,IAAAA;KAAS,CAAA;AAAC,GACxB,CAAC,CAAA;AAAA,CACP;;ACPM,IAAMO,QAAQ,GAAG;AAAEC,EAAAA,IAAI,EAAE,MAAM;AAAEC,EAAAA,KAAK,EAAE,OAAA;AAAQ,CAAC,CAAA;AAEjD,IAAMC,IAAI,GAAG,CAClB;EACEC,GAAG,EAAEJ,QAAQ,CAACC,IAAI;AAClBI,EAAAA,KAAK,EAAEC,CAAC,CAAC,sCAAsC,CAAC;AAChDC,EAAAA,IAAI,EAAEhB,MAAAA;AACR,CAAC,EACD;EACEa,GAAG,EAAEJ,QAAQ,CAACE,KAAK;AACnBG,EAAAA,KAAK,EAAEC,CAAC,CAAC,uCAAuC,CAAC;AACjDC,EAAAA,IAAI,EAAEhB,MAAAA;AACR,CAAC,CACF,CAAA;AAEM,IAAMiB,aAAa,GAAG;AAC3BC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,cAAc,EAAE,eAAe;AAC/BC,EAAAA,aAAa,EAAE,cAAA;AACjB,CAAC,CAAA;AAEM,IAAMC,qBAAqB,GAAAC,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAC/BL,EAAAA,EAAAA,aAAa,CAACC,MAAM,EAAG;AACtBK,EAAAA,KAAK,EAAE,GAAG;AACVC,EAAAA,MAAM,EAAE,GAAG;AACXC,EAAAA,eAAe,EAAE,wBAAA;AACnB,CAAC,CACAR,EAAAA,aAAa,CAACE,cAAc,EAAG;AAC9BO,EAAAA,QAAQ,EAAE,KAAK;AACfC,EAAAA,OAAO,EAAE,MAAM;AACfC,EAAAA,QAAQ,EAAE,SAAS;AACnBC,EAAAA,YAAY,EAAE,MAAM;AACpBC,EAAAA,WAAW,EAAE,aAAA;AACf,CAAC,CACAb,EAAAA,aAAa,CAACG,aAAa,EAAG;AAC7BK,EAAAA,eAAe,EAAE,mBAAA;AACnB,CAAC,CACF,CAAA;AAEM,IAAMM,SAAS,GAAG,cAAc,CAAA;AAEhC,IAAMC,UAAU,GAAG,MAAM;;AC1CzB,IAAMC,yBAAyB,GAAG,CACvC;AACEnB,EAAAA,KAAK,EAAEC,CAAC,CAAC,+DAA+D,CAAC;AACzEmB,EAAAA,KAAK,EAAE,YAAA;AACT,CAAC,EACD;AACEpB,EAAAA,KAAK,EAAEC,CAAC,CAAC,gEAAgE,CAAC;AAC1EmB,EAAAA,KAAK,EAAE,aAAA;AACT,CAAC,CACF,CAAA;AAEM,IAAMC,mBAAmB,GAAG;AAAEC,EAAAA,IAAI,EAAE,EAAE;AAAEF,EAAAA,KAAK,EAAE,EAAA;AAAG,CAAC;;ACT1D,IAAMG,mBAAiB,GAAGC,WAAW,CAACC,OAAO,CAACC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AAEzE,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAGC,eAAe,EAAA;AAAA,EAAA,OAAA,iBAAA,CAAApC,MAAA,CACnB+B,mBAAiB,gBAAA/B,MAAA,CAAa+B,mBAAiB,EAAA/B,2BAAAA,CAAAA,CAAAA,MAAA,CAA4B+B,mBAAiB,SAAA/B,MAAA,CAAM+B,mBAAiB,EAAA/B,mEAAAA,CAAAA,CAAAA,MAAA,CAE5HoC,eAAe,EAAA,kBAAA,CAAA,CAAA;AAAA,CACd,CAAA;AAEZ,IAAMC,UAAQ,GAAG,SAAXA,QAAQA,GAAA;AAAA,EAAA,OACZL,WAAW,CAACM,QAAQ,KAAK,YAAY,QAAAtC,MAAA,CAC5B0B,UAAU,EAAA,WAAA,CAAA,CAAA1B,MAAA,CAAWgC,WAAW,CAACM,QAAQ,WAC9C,EAAE,CAAA;AAAA,CAAA,CAAA;AAER,IAAMC,iBAAe,GAAG,SAAlBA,eAAeA,CAAGC,WAAW,EAAA;EAAA,OACjCA,WAAW,GAAAxC,IAAAA,CAAAA,MAAA,CAAQ0B,UAAU,qBAAA1B,MAAA,CAAkBwC,WAAW,EAAA,GAAA,CAAA,GAAM,EAAE,CAAA;AAAA,CAAA,CAAA;AAEpE,IAAMC,gBAAc,GAAG,SAAjBA,cAAcA,CAAGC,SAAS,EAAA;EAAA,OAC9BC,OAAO,CAACD,SAAS,CAAC,CAACE,GAAG,CACpB,UAAAjD,IAAA,EAAA;AAAA,IAAA,IAAAkD,KAAA,GAAAC,cAAA,CAAAnD,IAAA,EAAA,CAAA,CAAA;AAAEY,MAAAA,GAAG,GAAAsC,KAAA,CAAA,CAAA,CAAA;AAAEjB,MAAAA,KAAK,GAAAiB,KAAA,CAAA,CAAA,CAAA,CAAA;IAAA,OAAA7C,IAAAA,CAAAA,MAAA,CAAW0B,UAAU,EAAA1B,IAAAA,CAAAA,CAAAA,MAAA,CAAKO,GAAG,EAAA,MAAA,CAAA,CAAAP,MAAA,CAAM4B,KAAK,EAAA,IAAA,CAAA,CAAA;AAAA,GACtD,CAAC,CAAA;AAAA,CAAA,CAAA;AAEH,IAAMmB,iBAAe,GAAG,SAAlBA,eAAeA,CAAAC,KAAA,EAMf;AAAA,EAAA,IALJC,aAAa,GAAAD,KAAA,CAAbC,aAAa;IACbC,EAAE,GAAAF,KAAA,CAAFE,EAAE;IACFd,eAAe,GAAAY,KAAA,CAAfZ,eAAe;IACfM,SAAS,GAAAM,KAAA,CAATN,SAAS;IACTS,kBAAkB,GAAAH,KAAA,CAAlBG,kBAAkB,CAAA;AAElB,EAAA,IACEhC,eAAe,GAIb8B,aAAa,CAJf9B,eAAe;IAAAiC,oBAAA,GAIbH,aAAa,CAHfhC,KAAK;AAALA,IAAAA,KAAK,GAAAmC,oBAAA,KAAG,KAAA,CAAA,GAAA,GAAG,GAAAA,oBAAA;IAAAC,qBAAA,GAGTJ,aAAa,CAFf/B,MAAM;AAANA,IAAAA,MAAM,GAAAmC,qBAAA,KAAG,KAAA,CAAA,GAAA,GAAG,GAAAA,qBAAA;IACZb,WAAW,GACTS,aAAa,CADfT,WAAW,CAAA;AAGb,EAAA,OAAA,WAAA,CAAAxC,MAAA,CACOgC,WAAW,CAACC,OAAO,oDAAAjC,MAAA,CAExBmD,kBAAkB,IAAI,4BAA4B,EAAAnD,UAAAA,CAAAA,CAAAA,MAAA,CAC3CmB,eAAe,EAAA,gBAAA,CAAA,CAAAnB,MAAA,CACfgC,WAAW,CAACC,OAAO,kDAAAjC,MAAA,CAE1BmC,eAAe,CAACC,eAAe,CAAC,EAAA,oBAAA,CAAA,CAAApC,MAAA,CAE9B+B,mBAAiB,EAAA/B,iDAAAA,CAAAA,CAAAA,MAAA,CAEVkD,EAAE,EAAA,6BAAA,CAAA,CAAAlD,MAAA,CACQgC,WAAW,CAACsB,YAAY,CAACC,SAAS,EAAA,iCAAA,CAAA,CAAAvD,MAAA,CAC9BmB,eAAe,EAAAnB,iCAAAA,CAAAA,CAAAA,MAAA,CACfkB,MAAM,oBAAAlB,MAAA,CAAeiB,KAAK,EAAAjB,OAAAA,CAAAA,CAAAA,MAAA,CAAOuC,iBAAe,CACvEC,WACF,CAAC,EAAAxC,MAAA,CAAGqC,UAAQ,EAAE,EAAArC,MAAA,CAAGyC,gBAAc,CAACC,SAAS,CAAC,EAAA,iCAAA,CAAA,CAAA1C,MAAA,CAGnCgC,WAAW,CAACC,OAAO,EAAA,6BAAA,CAAA,CAAA;AAC5B,CAAC,CAAA;AAED,IAAMuB,wBAAsB,GAAG,SAAzBA,sBAAsBA,CAAAC,KAAA,EAKtB;AAAA,EAAA,IAJJR,aAAa,GAAAQ,KAAA,CAAbR,aAAa;IACbC,EAAE,GAAAO,KAAA,CAAFP,EAAE;IACFd,eAAe,GAAAqB,KAAA,CAAfrB,eAAe;IACfM,SAAS,GAAAe,KAAA,CAATf,SAAS,CAAA;AAET,EAAA,IACEnB,YAAY,GAOV0B,aAAa,CAPf1B,YAAY;IACZH,QAAQ,GAMN6B,aAAa,CANf7B,QAAQ;IACRC,OAAO,GAKL4B,aAAa,CALf5B,OAAO;IACPG,WAAW,GAITyB,aAAa,CAJfzB,WAAW;IACXF,QAAQ,GAGN2B,aAAa,CAHf3B,QAAQ;IACRZ,IAAI,GAEFuC,aAAa,CAFfvC,IAAI;IACJ8B,WAAW,GACTS,aAAa,CADfT,WAAW,CAAA;AAGb,EAAA,OAAA,WAAA,CAAAxC,MAAA,CACOgC,WAAW,CAACC,OAAO,EAAA,2CAAA,CAAA,CAAAjC,MAAA,CACxBmC,eAAe,CAACC,eAAe,CAAC,EAAApC,oBAAAA,CAAAA,CAAAA,MAAA,CAE9B+B,mBAAiB,EAAA,wDAAA,CAAA,CAAA/B,MAAA,CAEVkD,EAAE,EAAAlD,6BAAAA,CAAAA,CAAAA,MAAA,CACQgC,WAAW,CAACsB,YAAY,CAACC,SAAS,oDAAAvD,MAAA,CAEhCuB,YAAY,EAAAvB,8BAAAA,CAAAA,CAAAA,MAAA,CACbwB,WAAW,EAAA,2BAAA,CAAA,CAAAxB,MAAA,CACdsB,QAAQ,8BAAAtB,MAAA,CACTqB,OAAO,EAAA,MAAA,CAAA,CAAArB,MAAA,CACvBU,IAAI,QAAAV,MAAA,CAAQ0B,UAAU,CAAA1B,CAAAA,MAAA,CAAG0B,UAAU,EAAA,YAAA,CAAA,CAAA1B,MAAA,CAAaoB,QAAQ,SAAM,EAAE,EAAA,YAAA,CAAA,CAAApB,MAAA,CAE1DuC,iBAAe,CAACC,WAAW,CAAC,CAAAxC,CAAAA,MAAA,CAAGqC,UAAQ,EAAE,CAAArC,CAAAA,MAAA,CAAGyC,gBAAc,CAACC,SAAS,CAAC,EAAA,iCAAA,CAAA,CAAA1C,MAAA,CAGtEgC,WAAW,CAACC,OAAO,EAAA,qCAAA,CAAA,CAAA;AAC5B,CAAC,CAAA;AAED,IAAMyB,uBAAqB,GAAG,SAAxBA,qBAAqBA,CAAAC,KAAA,EAKrB;AAAA,EAAA,IAJJV,aAAa,GAAAU,KAAA,CAAbV,aAAa;IACbC,EAAE,GAAAS,KAAA,CAAFT,EAAE;IACFd,eAAe,GAAAuB,KAAA,CAAfvB,eAAe;IACfM,SAAS,GAAAiB,KAAA,CAATjB,SAAS,CAAA;AAET,EAAA,IAAQvB,eAAe,GAAkB8B,aAAa,CAA9C9B,eAAe;IAAEqB,WAAW,GAAKS,aAAa,CAA7BT,WAAW,CAAA;AAEpC,EAAA,OAAA,uGAAA,CAAAxC,MAAA,CAEcmB,eAAe,EAAA,4CAAA,CAAA,CAAAnB,MAAA,CAEtBgC,WAAW,CAACC,OAAO,EAAA,0CAAA,CAAA,CAAAjC,MAAA,CACxBmC,eAAe,CAACC,eAAe,CAAC,EAAApC,oBAAAA,CAAAA,CAAAA,MAAA,CAE9B+B,mBAAiB,EAAA/B,uDAAAA,CAAAA,CAAAA,MAAA,CAEVkD,EAAE,EAAAlD,6BAAAA,CAAAA,CAAAA,MAAA,CACQgC,WAAW,CAACsB,YAAY,CAACC,SAAS,EAAAvD,iCAAAA,CAAAA,CAAAA,MAAA,CAC9BmB,eAAe,EAAAnB,KAAAA,CAAAA,CAAAA,MAAA,CAAKuC,iBAAe,CAC1DC,WACF,CAAC,CAAA,CAAAxC,MAAA,CAAGqC,UAAQ,EAAE,CAAA,CAAArC,MAAA,CAAGyC,gBAAc,CAACC,SAAS,CAAC,EAAA1C,iCAAAA,CAAAA,CAAAA,MAAA,CAGnCgC,WAAW,CAACC,OAAO,EAAA,oCAAA,CAAA,CAAA;AAC5B,CAAC,CAAA;AAEM,IAAM2B,kBAAkB,GAAG;AAChCC,EAAAA,MAAM,EAAEd,iBAAe;AACvBe,EAAAA,aAAa,EAAEN,wBAAsB;AACrCO,EAAAA,YAAY,EAAEL,uBAAAA;AAChB,CAAC;;AC7HD,IAAM3B,iBAAiB,GAAGC,WAAW,CAACC,OAAO,CAACC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AACzE,IAAM8B,iBAAiB,GAAAhE,OAAAA,CAAAA,MAAA,CAAWgC,WAAW,CAACC,OAAO,CAAE,CAAA;AAEvD,IAAMgC,UAAU,GAAAjE,+FAAAA,CAAAA,MAAA,CACwB+B,iBAAiB,gBAAA/B,MAAA,CAAa+B,iBAAiB,EAAA,2BAAA,CAAA,CAAA/B,MAAA,CAA4B+B,iBAAiB,SAAA/B,MAAA,CAAM+B,iBAAiB,EAE1J,8EAAA,CAAA,CAAA;AAED,IAAMmC,WAAW,GACf,SADIA,WAAWA,CACfC,UAAU,EAAA;EAAA,OAAAnE,qFAAAA,CAAAA,MAAA,CACemE,UAAU,EAAA,uFAAA,CAAA,CAAA;AAAA,CAGpC,CAAA;AAED,IAAMC,eAAe,GAIZ,sJAAA,CAAA;AAET,IAAM/B,QAAQ,GAAG,SAAXA,QAAQA,GAAA;EAAA,OACZL,WAAW,CAACM,QAAQ,KAAK,YAAY,GAAAtC,IAAAA,CAAAA,MAAA,CAC5B0B,UAAU,CAAA,CAAA1B,MAAA,CAAG0B,UAAU,aAAA1B,MAAA,CAASgC,WAAW,CAACM,QAAQ,WACzD,EAAE,CAAA;AAAA,CAAA,CAAA;AAER,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAGC,WAAW,EAAA;AAAA,EAAA,OACjCA,WAAW,GAAA,IAAA,CAAAxC,MAAA,CAAQ0B,UAAU,CAAA1B,CAAAA,MAAA,CAAG0B,UAAU,EAAA1B,eAAAA,CAAAA,CAAAA,MAAA,CAAgBwC,WAAW,SAAM,EAAE,CAAA;AAAA,CAAA,CAAA;AAE/E,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAGC,SAAS,EAAA;EAAA,OAC9BC,OAAO,CAACD,SAAS,CAAC,CAACE,GAAG,CACpB,UAAAjD,IAAA,EAAA;AAAA,IAAA,IAAAkD,KAAA,GAAAC,cAAA,CAAAnD,IAAA,EAAA,CAAA,CAAA;AAAEY,MAAAA,GAAG,GAAAsC,KAAA,CAAA,CAAA,CAAA;AAAEjB,MAAAA,KAAK,GAAAiB,KAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IAAA,OAAA,IAAA,CAAA7C,MAAA,CAAW0B,UAAU,CAAA,CAAA1B,MAAA,CAAG0B,UAAU,CAAA1B,CAAAA,MAAA,CAAGO,GAAG,EAAAP,MAAAA,CAAAA,CAAAA,MAAA,CAAM4B,KAAK,EAAA,IAAA,CAAA,CAAA;AAAA,GACjE,CAAC,CAAA;AAAA,CAAA,CAAA;AAEH,IAAMyC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGC,WAAW,EAAA;AAAA,EAAA,OAClCA,WAAW,GACPA,WAAW,CACRC,KAAK,CAAC,GAAG,CAAC,CACV3B,GAAG,CAAC,UAAA4B,IAAI,EAAI;AACX,IAAA,IAAAC,eAAA,GAAqBD,IAAI,CAACD,KAAK,CAAC,GAAG,CAAC,CAAC3B,GAAG,CAAC,UAAA8B,CAAC,EAAA;AAAA,QAAA,OAAIA,CAAC,CAACC,IAAI,EAAE,CAAA;OAAC,CAAA;MAAAC,gBAAA,GAAA9B,cAAA,CAAA2B,eAAA,EAAA,CAAA,CAAA;AAAhDlE,MAAAA,GAAG,GAAAqE,gBAAA,CAAA,CAAA,CAAA;AAAEhD,MAAAA,KAAK,GAAAgD,gBAAA,CAAA,CAAA,CAAA,CAAA;AAEjB,IAAA,OAAOrE,GAAG,IAAIqB,KAAK,GAAA,EAAA,CAAA5B,MAAA,CAAMO,GAAG,EAAA,MAAA,CAAA,CAAAP,MAAA,CAAM4B,KAAK,EAAA,IAAA,CAAA,GAAM,IAAI,CAAA;AACnD,GAAC,CAAC,CACDiD,MAAM,CAACC,OAAO,CAAC,CACfC,IAAI,CAAC,IAAI,CAAC,GACb,+BAA+B,CAAA;AAAA,CAAA,CAAA;AAErC,IAAMhC,eAAe,GAAG,SAAlBA,eAAeA,CAAAC,KAAA,EAMf;AAAA,EAAA,IALJC,aAAa,GAAAD,KAAA,CAAbC,aAAa;IACbC,EAAE,GAAAF,KAAA,CAAFE,EAAE;IACFd,eAAe,GAAAY,KAAA,CAAfZ,eAAe;IACfM,SAAS,GAAAM,KAAA,CAATN,SAAS;IACTS,kBAAkB,GAAAH,KAAA,CAAlBG,kBAAkB,CAAA;AAElB,EAAA,IACEhC,eAAe,GAIb8B,aAAa,CAJf9B,eAAe;IAAAiC,oBAAA,GAIbH,aAAa,CAHfhC,KAAK;AAALA,IAAAA,KAAK,GAAAmC,oBAAA,KAAG,KAAA,CAAA,GAAA,GAAG,GAAAA,oBAAA;IAAAC,qBAAA,GAGTJ,aAAa,CAFf/B,MAAM;AAANA,IAAAA,MAAM,GAAAmC,qBAAA,KAAG,KAAA,CAAA,GAAA,GAAG,GAAAA,qBAAA;IACZb,WAAW,GACTS,aAAa,CADfT,WAAW,CAAA;AAGb,EAAA,OAAA,+EAAA,CAAAxC,MAAA,CAIUgE,iBAAiB,EAAAhE,oBAAAA,CAAAA,CAAAA,MAAA,CACrBiE,UAAU,EAAA,UAAA,CAAA,CAAAjE,MAAA,CACVkE,WAAW,CAAC9B,eAAe,CAAC,EAAA,UAAA,CAAA,CAAApC,MAAA,CAC5B+B,iBAAiB,EAAA/B,qDAAAA,CAAAA,CAAAA,MAAA,CAEVkD,EAAE,EAAA,+BAAA,CAAA,CAAAlD,MAAA,CACQgC,WAAW,CAACsB,YAAY,CAACC,SAAS,uCAAAvD,MAAA,CAC9BmB,eAAe,EAAA,mCAAA,CAAA,CAAAnB,MAAA,CACfkB,MAAM,EAAAlB,gBAAAA,CAAAA,CAAAA,MAAA,CAAeiB,KAAK,EAAA,QAAA,CAAA,CAAAjB,MAAA,CAAQuC,eAAe,CAC1EC,WACF,CAAC,CAAA,CAAAxC,MAAA,CAAGqC,QAAQ,EAAE,EAAArC,MAAA,CAAGyC,cAAc,CAACC,SAAS,CAAC,EAAA,uBAAA,CAAA,CAAA1C,MAAA,CAGpCoE,eAAe,EAAApE,kCAAAA,CAAAA,CAAAA,MAAA,CAGDgE,iBAAiB,oGAAAhE,MAAA,CAKpBqE,gBAAgB,CAAClB,kBAAkB,CAAC,EAAA,6BAAA,CAAA,CAAA;AAIvD,CAAC,CAAA;AAED,IAAMK,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAAC,KAAA,EAKtB;AAAA,EAAA,IAJJR,aAAa,GAAAQ,KAAA,CAAbR,aAAa;IACbC,EAAE,GAAAO,KAAA,CAAFP,EAAE;IACFd,eAAe,GAAAqB,KAAA,CAAfrB,eAAe;IACfM,SAAS,GAAAe,KAAA,CAATf,SAAS,CAAA;AAET,EAAA,IACEnB,YAAY,GAOV0B,aAAa,CAPf1B,YAAY;IACZH,QAAQ,GAMN6B,aAAa,CANf7B,QAAQ;IACRC,OAAO,GAKL4B,aAAa,CALf5B,OAAO;IACPG,WAAW,GAITyB,aAAa,CAJfzB,WAAW;IACXF,QAAQ,GAGN2B,aAAa,CAHf3B,QAAQ;IACRZ,IAAI,GAEFuC,aAAa,CAFfvC,IAAI;IACJ8B,WAAW,GACTS,aAAa,CADfT,WAAW,CAAA;AAGb,EAAA,OAAA,+EAAA,CAAAxC,MAAA,CAIUgE,iBAAiB,wBAAAhE,MAAA,CACrBiE,UAAU,EAAAjE,UAAAA,CAAAA,CAAAA,MAAA,CACVkE,WAAW,CAAC9B,eAAe,CAAC,EAAA,UAAA,CAAA,CAAApC,MAAA,CAC5B+B,iBAAiB,gEAAA/B,MAAA,CAEVkD,EAAE,EAAAlD,+BAAAA,CAAAA,CAAAA,MAAA,CACQgC,WAAW,CAACsB,YAAY,CAACC,SAAS,wDAAAvD,MAAA,CAEhCuB,YAAY,EAAAvB,gCAAAA,CAAAA,CAAAA,MAAA,CACbwB,WAAW,EAAA,6BAAA,CAAA,CAAAxB,MAAA,CACdsB,QAAQ,gCAAAtB,MAAA,CACTqB,OAAO,EAAArB,KAAAA,CAAAA,CAAAA,MAAA,CACzBU,IAAI,GAAA,IAAA,CAAAV,MAAA,CAAQ0B,UAAU,EAAA1B,MAAA,CAAG0B,UAAU,EAAA1B,cAAAA,CAAAA,CAAAA,MAAA,CAAeoB,QAAQ,EAAA,GAAA,CAAA,GAAM,EAAE,EAAApB,cAAAA,CAAAA,CAAAA,MAAA,CAE1DuC,eAAe,CAACC,WAAW,CAAC,CAAA,CAAAxC,MAAA,CAAGqC,QAAQ,EAAE,CAAA,CAAArC,MAAA,CAAGyC,cAAc,CAClEC,SACF,CAAC,2BAAA1C,MAAA,CAGKoE,eAAe,EAAApE,kCAAAA,CAAAA,CAAAA,MAAA,CAGDgE,iBAAiB,EAAA,uCAAA,CAAA,CAAA;AAIvC,CAAC,CAAA;AAED,IAAMN,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAAC,KAAA,EAKrB;AAAA,EAAA,IAJJV,aAAa,GAAAU,KAAA,CAAbV,aAAa;IACbC,EAAE,GAAAS,KAAA,CAAFT,EAAE;IACFd,eAAe,GAAAuB,KAAA,CAAfvB,eAAe;IACfM,SAAS,GAAAiB,KAAA,CAATjB,SAAS,CAAA;AAET,EAAA,IAAQvB,eAAe,GAAkB8B,aAAa,CAA9C9B,eAAe;IAAEqB,WAAW,GAAKS,aAAa,CAA7BT,WAAW,CAAA;AAEpC,EAAA,OAAA,+EAAA,CAAAxC,MAAA,CAIUgE,iBAAiB,EAAA,oBAAA,CAAA,CAAAhE,MAAA,CACrBiE,UAAU,EAAA,UAAA,CAAA,CAAAjE,MAAA,CACVkE,WAAW,CAAC9B,eAAe,CAAC,EAAA,UAAA,CAAA,CAAApC,MAAA,CAC5B+B,iBAAiB,EAAA,2DAAA,CAAA,CAAA/B,MAAA,CAEVkD,EAAE,EAAA,+BAAA,CAAA,CAAAlD,MAAA,CACQgC,WAAW,CAACsB,YAAY,CAACC,SAAS,EAAAvD,mCAAAA,CAAAA,CAAAA,MAAA,CAC9BmB,eAAe,EAAAnB,KAAAA,CAAAA,CAAAA,MAAA,CAAKuC,eAAe,CAC5DC,WACF,CAAC,CAAA,CAAAxC,MAAA,CAAGqC,QAAQ,EAAE,CAAArC,CAAAA,MAAA,CAAGyC,cAAc,CAACC,SAAS,CAAC,EAAA,uBAAA,CAAA,CAAA1C,MAAA,CAGpCoE,eAAe,EAAApE,kCAAAA,CAAAA,CAAAA,MAAA,CAGDgE,iBAAiB,EAAAhE,sCAAAA,CAAAA,CAAAA,MAAA,CAEdmB,eAAe,EAAA,wCAAA,CAAA,CAAA;AAExC,CAAC,CAAA;AAEM,IAAM6D,mBAAmB,GAAG;AACjCnB,EAAAA,MAAM,EAAEd,eAAe;AACvBe,EAAAA,aAAa,EAAEN,sBAAsB;AACrCO,EAAAA,YAAY,EAAEL,qBAAAA;AAChB,CAAC;;;AC9KM,IAAMuB,YAAY,GAAG,SAAfA,YAAYA,CAAGC,OAAO,EAAI;EAAA,IAAAC,qBAAA,EAAAC,qBAAA,CAAA;AACrC,EAAA,IAAQvF,GAAG,GAAmCqF,OAAO,CAA7CrF,GAAG;IAAEwF,IAAI,GAA6BH,OAAO,CAAxCG,IAAI;AAAKC,IAAAA,mBAAmB,GAAAC,wBAAA,CAAKL,OAAO,EAAAM,SAAA,CAAA,CAAA;AAErD,EAAA,OAAO3F,GAAG,KAAK,OAAO,GAAAsF,CAAAA,qBAAA,GAClBH,mBAAmB,CAACK,IAAI,CAAC,cAAAF,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAzBA,qBAAA,CAAAM,IAAA,CAAAT,mBAAmB,EAASM,mBAAmB,CAAC,IAAAF,qBAAA,GAChDxB,kBAAkB,CAACyB,IAAI,CAAC,MAAA,IAAA,IAAAD,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAxBA,qBAAA,CAAAK,IAAA,CAAA7B,kBAAkB,EAAS0B,mBAAmB,CAAC,CAAA;AACrD,CAAC,CAAA;AAEM,IAAMI,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAGC,qBAAqB,EAAA;AAAA,EAAA,OAC5DC,aAAa,CAACD,qBAAqB,EAAE5E,qBAAqB,CAAC,CAAA;AAAA,CAAA,CAAA;AAEtD,IAAM8E,+BAA+B,GAAG,SAAlCA,+BAA+BA,CAAGC,WAAW,EAAI;AAC5D,EAAA,IAAMC,mBAAmB,GAAGD,WAAW,CAACjB,MAAM,CAC5C,UAAAlF,IAAA,EAAA;AAAA,IAAA,IAAGmC,IAAI,GAAAnC,IAAA,CAAJmC,IAAI;MAAEF,KAAK,GAAAjC,IAAA,CAALiC,KAAK,CAAA;IAAA,OAAOE,IAAI,IAAIF,KAAK,CAAA;AAAA,GACpC,CAAC,CAAA;EAED,IAAMY,WAAW,GAAGuD,mBAAmB,CAACC,MAAM,CAC5C,UAACxD,WAAW,EAAAK,KAAA,EAAsB;AAAA,IAAA,IAAlBf,IAAI,GAAAe,KAAA,CAAJf,IAAI;MAAEF,KAAK,GAAAiB,KAAA,CAALjB,KAAK,CAAA;AACzBY,IAAAA,WAAW,CAACV,IAAI,CAAC,GAAGF,KAAK,CAAA;AAEzB,IAAA,OAAOY,WAAW,CAAA;GACnB,EACD,EACF,CAAC,CAAA;AAED,EAAA,IAAIyD,OAAO,CAACzD,WAAW,CAAC,EAAE,OAAO,EAAE,CAAA;EAEnC,IAAM0D,oBAAoB,GAAGC,IAAI,CAACC,SAAS,CAAC5D,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;EAEjE,OAAO0D,oBAAoB,CACxBhE,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAC9BA,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACnBA,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AAC3B,CAAC;;;;AC9BD,IAAMmE,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAA1G,IAAA,EAAgC;AAAA,EAAA,IAA1B2G,mBAAmB,GAAA3G,IAAA,CAAnB2G,mBAAmB,CAAA;AAC/C,EAAA,IAAAC,eAAA,GAAcC,cAAc,EAAE;IAAtB/F,CAAC,GAAA8F,eAAA,CAAD9F,CAAC,CAAA;AACT,EAAA,IAAAgG,SAAA,GAAsCC,QAAQ,CAAC,CAAC7E,mBAAmB,CAAC,CAAC;IAAA8E,UAAA,GAAA7D,cAAA,CAAA2D,SAAA,EAAA,CAAA,CAAA;AAA9DjE,IAAAA,WAAW,GAAAmE,UAAA,CAAA,CAAA,CAAA;AAAEC,IAAAA,cAAc,GAAAD,UAAA,CAAA,CAAA,CAAA,CAAA;AAElC,EAAA,IAAME,mBAAmB,GAAG,SAAtBA,mBAAmBA,GAAS;IAChCD,cAAc,CAAA,EAAA,CAAA5G,MAAA,CAAA8G,kBAAA,CAAKtE,WAAW,CAAA,EAAA,CAAEX,mBAAmB,CAAA,CAAC,CAAC,CAAA;GACtD,CAAA;AAED,EAAA,IAAMkF,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAGC,KAAK,EAAI;IACtC,IAAMC,cAAc,GAAGzE,WAAW,CAACqC,MAAM,CAAC,UAACqC,CAAC,EAAEC,CAAC,EAAA;MAAA,OAAKA,CAAC,KAAKH,KAAK,CAAA;KAAC,CAAA,CAAA;IAChEJ,cAAc,CAACK,cAAc,CAAC,CAAA;GAC/B,CAAA;EAED,IAAMG,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIJ,KAAK,EAAEK,KAAK,EAAEzF,KAAK,EAAK;IACjD,IAAMqF,cAAc,GAAGzE,WAAW,CAACI,GAAG,CAAC,UAAC0E,KAAK,EAAEH,CAAC,EAAA;AAAA,MAAA,OAC9CA,CAAC,KAAKH,KAAK,GAAAO,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAQD,KAAK,CAAA,EAAA,EAAA,EAAAtG,eAAA,CAAGqG,EAAAA,EAAAA,KAAK,EAAGzF,KAAK,KAAK0F,KAAK,CAAA;AAAA,KACpD,CAAC,CAAA;IACDV,cAAc,CAACK,cAAc,CAAC,CAAA;GAC/B,CAAA;AAEDO,EAAAA,SAAS,CAAC,YAAM;AACdlB,IAAAA,mBAAmB,CAAC;MAClB9D,WAAW,EAAEqD,+BAA+B,CAACrD,WAAW,CAAA;AAC1D,KAAC,CAAC,CAAA;AACJ,GAAC,EAAE,CAACA,WAAW,CAAC,CAAC,CAAA;AAEjB,EAAA,oBACEiF,IAAA,CAAA,KAAA,EAAA;IAAAxH,QAAA,EAAA,cACEH,GAAA,CAAC4H,KAAK,EAAA;AAAC3H,MAAAA,SAAS,EAAC,MAAM;AAAC,MAAA,SAAA,EAAQ,4BAA4B;MAAAE,QAAA,EACzDQ,CAAC,CAAC,4DAA4D,CAAA;KAC1D,CAAC,EACP+B,WAAW,CAACI,GAAG,CAAC,UAAC0E,KAAK,EAAEN,KAAK,EAAA;AAAA,MAAA,oBAC5BS,IAAA,CAAA,KAAA,EAAA;AAAK1H,QAAAA,SAAS,EAAC,iBAAiB;QAAAE,QAAA,EAAA,cAC9BH,GAAA,CAAC6H,KAAK,EAAA;AACJ,UAAA,SAAA,EAAQ,8BAA8B;AACtC,UAAA,aAAA,EAAY,8BAA8B;AAC1C7F,UAAAA,IAAI,EAAA9B,cAAAA,CAAAA,MAAA,CAAiBgH,KAAK,EAAQ,OAAA,CAAA;UAClCpF,KAAK,EAAE0F,KAAK,CAACxF,IAAK;AAClB8F,UAAAA,WAAW,EAAEnH,CAAC,CACZ,yEACF,CAAE;AACFoH,UAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEC,CAAC,EAAA;YAAA,OAAIV,iBAAiB,CAACJ,KAAK,EAAE,MAAM,EAAEc,CAAC,CAACC,MAAM,CAACnG,KAAK,CAAC,CAAA;AAAA,WAAA;AAAC,SACjE,CAAC,eACF9B,GAAA,CAAC6H,KAAK,EAAA;AACJ,UAAA,SAAA,EAAQ,+BAA+B;AACvC,UAAA,aAAA,EAAY,+BAA+B;AAC3C7F,UAAAA,IAAI,EAAA9B,cAAAA,CAAAA,MAAA,CAAiBgH,KAAK,EAAS,QAAA,CAAA;UACnCpF,KAAK,EAAE0F,KAAK,CAAC1F,KAAM;AACnBgG,UAAAA,WAAW,EAAEnH,CAAC,CACZ,0EACF,CAAE;AACFoH,UAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEC,CAAC,EAAA;YAAA,OAAIV,iBAAiB,CAACJ,KAAK,EAAE,OAAO,EAAEc,CAAC,CAACC,MAAM,CAACnG,KAAK,CAAC,CAAA;AAAA,WAAA;AAAC,SAClE,CAAC,eACF9B,GAAA,CAACkI,MAAM,EAAA;AACL,UAAA,SAAA,EAAQ,6BAA6B;AACrCtH,UAAAA,IAAI,EAAEuH,MAAO;AACbC,UAAAA,KAAK,EAAC,MAAM;UACZC,OAAO,EAAE,SAATA,OAAOA,GAAA;YAAA,OAAQpB,sBAAsB,CAACC,KAAK,CAAC,CAAA;AAAA,WAAA;AAAC,SAC9C,CAAC,CAAA;AAAA,OAAA,EA1BkCA,KA2BjC,CAAC,CAAA;AAAA,KACP,CAAC,eACFlH,GAAA,CAACkI,MAAM,EAAA;AACLjI,MAAAA,SAAS,EAAC,MAAM;AAChB,MAAA,SAAA,EAAQ,8BAA8B;AACtCW,MAAAA,IAAI,EAAE0H,IAAK;AACXC,MAAAA,YAAY,EAAC,MAAM;AACnBH,MAAAA,KAAK,EAAC,MAAM;AACZ1H,MAAAA,KAAK,EAAEC,CAAC,CACN,oEACF,CAAE;AACF0H,MAAAA,OAAO,EAAEtB,mBAAAA;AAAoB,KAC9B,CAAC,CAAA;AAAA,GACC,CAAC,CAAA;AAEV,CAAC;;AC7ED,IAAMyB,cAAY,GAAG,SAAfA,YAAYA,CAAA3I,IAAA,EAKZ;AAAA,EAAA,IAJJsD,aAAa,GAAAtD,IAAA,CAAbsD,aAAa;IACbqD,mBAAmB,GAAA3G,IAAA,CAAnB2G,mBAAmB;IACnBiC,oBAAoB,GAAA5I,IAAA,CAApB4I,oBAAoB;IACpBC,mBAAmB,GAAA7I,IAAA,CAAnB6I,mBAAmB,CAAA;AAEnB,EAAA,IAAQrH,eAAe,GAAK8B,aAAa,CAAjC9B,eAAe,CAAA;AACvB,EAAA,IAAAoF,eAAA,GAAcC,cAAc,EAAE;IAAtB/F,CAAC,GAAA8F,eAAA,CAAD9F,CAAC,CAAA;AAET+G,EAAAA,SAAS,CAAC,YAAM;AACd,IAAA,IAAIe,oBAAoB,EAAE,OAAA;AAE1BjC,IAAAA,mBAAmB,CAAC;AAAE9D,MAAAA,WAAW,EAAEiG,SAAAA;AAAU,KAAC,CAAC,CAAA;GAChD,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,oBACEhB,IAAA,CAAA,KAAA,EAAA;AAAK1H,IAAAA,SAAS,EAAC,WAAW;IAAAE,QAAA,EAAA,cACxBH,GAAA,CAAC4I,UAAU,EAAA;AAAC,MAAA,SAAA,EAAQ,sBAAsB;AAACR,MAAAA,KAAK,EAAC,IAAI;MAAAjI,QAAA,EAClDQ,CAAC,CAAC,8DAA8D,CAAA;AAAC,KACxD,CAAC,eACbX,GAAA,CAAC6I,OAAO,EAAA;AAAC,MAAA,SAAA,EAAQ,2BAA2B;MAAA1I,QAAA,EACzCQ,CAAC,CACA,oEACF,CAAA;AAAC,KACM,CAAC,eACVX,GAAA,CAAC6H,KAAK,EAAA;AACJ5H,MAAAA,SAAS,EAAC,QAAQ;AAClB,MAAA,SAAA,EAAQ,wBAAwB;AAChC,MAAA,aAAA,EAAY,wBAAwB;AACpC6B,MAAAA,KAAK,EAAET,eAAgB;AACvByH,MAAAA,KAAK,EACH,CAACzH,eAAe,IAChBV,CAAC,CAAC,gEAAgE,CACnE;AACDD,MAAAA,KAAK,EAAEC,CAAC,CACN,kEACF,CAAE;AACFoH,MAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEC,CAAC,EAAA;AAAA,QAAA,OAAIxB,mBAAmB,CAAC;AAAEnF,UAAAA,eAAe,EAAE2G,CAAC,CAACC,MAAM,CAACnG,KAAAA;AAAM,SAAC,CAAC,CAAA;AAAA,OAAA;KACxE,CAAC,EACD4G,mBAAmB,EAAE,EACrBD,oBAAoB,iBACnBzI,GAAA,CAACuG,kBAAkB,EAAA;AAAOC,MAAAA,mBAAmB,EAAnBA,mBAAAA;AAAmB,KAAK,CACnD,CAAA;AAAA,GACE,CAAC,CAAA;AAEV,CAAC;;ACrCD,IAAMuC,eAAa,GAAG,SAAhBA,aAAaA,CAAAlJ,IAAA,EAKb;AAAA,EAAA,IAJJsD,aAAa,GAAAtD,IAAA,CAAbsD,aAAa;IACbqD,mBAAmB,GAAA3G,IAAA,CAAnB2G,mBAAmB;IACnBiC,oBAAoB,GAAA5I,IAAA,CAApB4I,oBAAoB;IACpBC,mBAAmB,GAAA7I,IAAA,CAAnB6I,mBAAmB,CAAA;AAEnB,EAAA,IAAAjC,eAAA,GAAcC,cAAc,EAAE;IAAtB/F,CAAC,GAAA8F,eAAA,CAAD9F,CAAC,CAAA;AAET,EAAA,IAAQc,YAAY,GAClB0B,aAAa,CADP1B,YAAY;IAAEH,QAAQ,GAC5B6B,aAAa,CADO7B,QAAQ;IAAEC,OAAO,GACrC4B,aAAa,CADiB5B,OAAO;IAAEG,WAAW,GAClDyB,aAAa,CAD0BzB,WAAW;IAAEF,QAAQ,GAC5D2B,aAAa,CADuC3B,QAAQ;IAAEZ,IAAI,GAClEuC,aAAa,CADiDvC,IAAI,CAAA;AAGpE8G,EAAAA,SAAS,CAAC,YAAM;AACd,IAAA,IAAIe,oBAAoB,EAAE,OAAA;AAE1BjC,IAAAA,mBAAmB,CAAC;AAAE9D,MAAAA,WAAW,EAAEiG,SAAAA;AAAU,KAAC,CAAC,CAAA;GAChD,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,oBACEhB,IAAA,CAAA,KAAA,EAAA;AAAK1H,IAAAA,SAAS,EAAC,WAAW;IAAAE,QAAA,EAAA,cACxBH,GAAA,CAAC4I,UAAU,EAAA;AAAC,MAAA,SAAA,EAAQ,4BAA4B;AAACR,MAAAA,KAAK,EAAC,IAAI;MAAAjI,QAAA,EACxDQ,CAAC,CAAC,+DAA+D,CAAA;AAAC,KACzD,CAAC,EACZC,IAAI,iBACHZ,GAAA,CAACgJ,QAAQ,EAAA;AACPC,MAAAA,OAAO,EAAE3H,QAAS;AAClB,MAAA,SAAA,EAAQ,oBAAoB;AAC5B,MAAA,aAAA,EAAY,oBAAoB;AAChCZ,MAAAA,KAAK,EAAEC,CAAC,CACN,qEACF,CAAE;AACFoH,MAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEC,CAAC,EAAA;AAAA,QAAA,OAAIxB,mBAAmB,CAAC;AAAElF,UAAAA,QAAQ,EAAE0G,CAAC,CAACC,MAAM,CAACgB,OAAAA;AAAQ,SAAC,CAAC,CAAA;AAAA,OAAA;KACnE,CACF,eACDjJ,GAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,WAAW;MAAAE,QAAA,eACxBH,GAAA,CAAC6H,KAAK,EAAA;AACJ,QAAA,SAAA,EAAQ,yBAAyB;AACjC,QAAA,aAAA,EAAY,yBAAyB;AACrC/F,QAAAA,KAAK,EAAEP,OAAQ;AACfb,QAAAA,KAAK,EAAEC,CAAC,CACN,qEACF,CAAE;AACFoH,QAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEC,CAAC,EAAA;AAAA,UAAA,OAAIxB,mBAAmB,CAAC;AAAEjF,YAAAA,OAAO,EAAEyG,CAAC,CAACC,MAAM,CAACnG,KAAAA;AAAM,WAAC,CAAC,CAAA;AAAA,SAAA;OAChE,CAAA;KACE,CAAC,eACN9B,GAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,WAAW;MAAAE,QAAA,eACxBH,GAAA,CAACkJ,MAAM,EAAA;AACL,QAAA,SAAA,EAAQ,8BAA8B;AACtC,QAAA,aAAA,EAAY,8BAA8B;AAC1C9D,QAAAA,OAAO,EAAEvD,yBAA0B;AACnCC,QAAAA,KAAK,EAAEJ,WAAY;AACnByH,QAAAA,cAAc,EAAE,SAAhBA,cAAcA,CAAEC,MAAM,EAAA;UAAA,OACpB,OAAOA,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAGA,MAAM,CAACtH,KAAK,CAAA;SACnD;AACDpB,QAAAA,KAAK,EAAEC,CAAC,CACN,oEACF,CAAE;AACFoH,QAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEC,CAAC,EAAA;AAAA,UAAA,OAAIxB,mBAAmB,CAAC;YAAE9E,WAAW,EAAEsG,CAAC,CAAClG,KAAAA;AAAM,WAAC,CAAC,CAAA;AAAA,SAAA;OAC7D,CAAA;KACE,CAAC,eACN6F,IAAA,CAAA,KAAA,EAAA;AACE1H,MAAAA,SAAS,EAAC,2CAA2C;AACrD,MAAA,SAAA,EAAQ,oBAAoB;MAAAE,QAAA,EAAA,cAE5BH,GAAA,CAAC4H,KAAK,EAAA;QAAAzH,QAAA,EACHQ,CAAC,CACA,sEACF,CAAA;AAAC,OACI,CAAC,eACRX,GAAA,CAACqJ,WAAW,EAAA;AACVC,QAAAA,KAAK,EAAE9H,QAAS;AAChBuG,QAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEC,CAAC,EAAA;AAAA,UAAA,OAAIxB,mBAAmB,CAAC;YAAEhF,QAAQ,EAAEwG,CAAC,CAACuB,GAAAA;AAAI,WAAC,CAAC,CAAA;AAAA,SAAA;AAAC,OACzD,CAAC,CAAA;KACC,CAAC,eACN5B,IAAA,CAAA,KAAA,EAAA;AACE1H,MAAAA,SAAS,EAAC,2CAA2C;AACrD,MAAA,SAAA,EAAQ,yBAAyB;MAAAE,QAAA,EAAA,cAEjCH,GAAA,CAAC4H,KAAK,EAAA;QAAAzH,QAAA,EACHQ,CAAC,CACA,0EACF,CAAA;AAAC,OACI,CAAC,eACRX,GAAA,CAACqJ,WAAW,EAAA;AACVC,QAAAA,KAAK,EAAE7H,YAAa;AACpBsG,QAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEC,CAAC,EAAA;AAAA,UAAA,OAAIxB,mBAAmB,CAAC;YAAE/E,YAAY,EAAEuG,CAAC,CAACuB,GAAAA;AAAI,WAAC,CAAC,CAAA;AAAA,SAAA;AAAC,OAC7D,CAAC,CAAA;KACC,CAAC,EACLb,mBAAmB,EAAE,EACrBD,oBAAoB,iBACnBzI,GAAA,CAACuG,kBAAkB,EAAA;AAAOC,MAAAA,mBAAmB,EAAnBA,mBAAAA;AAAmB,KAAK,CACnD,CAAA;AAAA,GACE,CAAC,CAAA;AAEV,CAAC;;ACrGD,IAAMgD,QAAM,GAAG,SAATA,MAAMA,CAAA3J,IAAA,EAKN;AAAA,EAAA,IAJJsD,aAAa,GAAAtD,IAAA,CAAbsD,aAAa;IACbqD,mBAAmB,GAAA3G,IAAA,CAAnB2G,mBAAmB;IACnBiC,oBAAoB,GAAA5I,IAAA,CAApB4I,oBAAoB;IACpBC,mBAAmB,GAAA7I,IAAA,CAAnB6I,mBAAmB,CAAA;AAEnB,EAAA,IAAQtH,MAAM,GAA6B+B,aAAa,CAAhD/B,MAAM;IAAED,KAAK,GAAsBgC,aAAa,CAAxChC,KAAK;IAAEE,eAAe,GAAK8B,aAAa,CAAjC9B,eAAe,CAAA;AAEtC,EAAA,IAAAoF,eAAA,GAAcC,cAAc,EAAE;IAAtB/F,CAAC,GAAA8F,eAAA,CAAD9F,CAAC,CAAA;AAET,EAAA,IAAM2G,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAvE,KAAA,EAA2B0G,SAAS,EAAA;AAAA,IAAA,IAApB3H,KAAK,GAAAiB,KAAA,CAAfkF,MAAM,CAAInG,KAAK,CAAA;IAAA,OAC1C0E,mBAAmB,CAAAtF,eAAA,CAAA,EAAA,EAAIuI,SAAS,EAAG3H,KAAK,CAAE,CAAC,CAAA;AAAA,GAAA,CAAA;AAE7C4F,EAAAA,SAAS,CAAC,YAAM;AACd,IAAA,IAAIe,oBAAoB,EAAE,OAAA;AAE1BjC,IAAAA,mBAAmB,CAAC;AAAE9D,MAAAA,WAAW,EAAEiG,SAAAA;AAAU,KAAC,CAAC,CAAA;GAChD,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,oBACEhB,IAAA,CAAA,KAAA,EAAA;AAAK1H,IAAAA,SAAS,EAAC,uBAAuB;IAAAE,QAAA,EAAA,cACpCH,GAAA,CAAC4I,UAAU,EAAA;AAAC,MAAA,SAAA,EAAQ,oBAAoB;AAACR,MAAAA,KAAK,EAAC,IAAI;MAAAjI,QAAA,EAChDQ,CAAC,CAAC,wDAAwD,CAAA;KACjD,CAAC,eACbgH,IAAA,CAAA,KAAA,EAAA;AAAK1H,MAAAA,SAAS,EAAC,qBAAqB;MAAAE,QAAA,EAAA,cAClCH,GAAA,CAAC4H,KAAK,EAAA;AAAC,QAAA,SAAA,EAAQ,kBAAkB;QAAAzH,QAAA,EAC9BQ,CAAC,CACA,oEACF,CAAA;OACK,CAAC,eACRgH,IAAA,CAAA,KAAA,EAAA;AAAK1H,QAAAA,SAAS,EAAC,8BAA8B;QAAAE,QAAA,EAAA,cAC3CH,GAAA,CAAC6H,KAAK,EAAA;AACJ5H,UAAAA,SAAS,EAAC,0CAA0C;AACpD,UAAA,SAAA,EAAQ,0BAA0B;AAClC,UAAA,aAAA,EAAY,0BAA0B;AACtCyJ,UAAAA,GAAG,EAAE,GAAI;AACTC,UAAAA,GAAG,EAAE,CAAE;AACPC,UAAAA,MAAM,EAAC,GAAG;AACVC,UAAAA,MAAM,EAAC,GAAG;AACVtE,UAAAA,IAAI,EAAC,QAAQ;AACbzD,UAAAA,KAAK,EAAEX,KAAM;AACb4G,UAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEC,CAAC,EAAA;AAAA,YAAA,OAAIV,iBAAiB,CAACU,CAAC,EAAE,OAAO,CAAC,CAAA;AAAA,WAAA;AAAC,SAC9C,CAAC,eACFhI,GAAA,CAAC6H,KAAK,EAAA;AACJ5H,UAAAA,SAAS,EAAC,0CAA0C;AACpD,UAAA,SAAA,EAAQ,2BAA2B;AACnC,UAAA,aAAA,EAAY,2BAA2B;AACvCyJ,UAAAA,GAAG,EAAE,GAAI;AACTC,UAAAA,GAAG,EAAE,CAAE;AACPC,UAAAA,MAAM,EAAC,GAAG;AACVC,UAAAA,MAAM,EAAC,GAAG;AACVtE,UAAAA,IAAI,EAAC,QAAQ;AACbzD,UAAAA,KAAK,EAAEV,MAAO;AACd2G,UAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEC,CAAC,EAAA;AAAA,YAAA,OAAIV,iBAAiB,CAACU,CAAC,EAAE,QAAQ,CAAC,CAAA;AAAA,WAAA;AAAC,SAC/C,CAAC,CAAA;AAAA,OACC,CAAC,CAAA;KACH,CAAC,eACNL,IAAA,CAAA,KAAA,EAAA;AAAK1H,MAAAA,SAAS,EAAC,qBAAqB;MAAAE,QAAA,EAAA,cAClCH,GAAA,CAAC4H,KAAK,EAAA;AAAC,QAAA,SAAA,EAAQ,+BAA+B;QAAAzH,QAAA,EAC3CQ,CAAC,CAAC,4DAA4D,CAAA;AAAC,OAC3D,CAAC,eACRX,GAAA,CAAC6H,KAAK,EAAA;AACJ,QAAA,SAAA,EAAQ,+BAA+B;AACvC,QAAA,aAAA,EAAY,+BAA+B;AAC3C/F,QAAAA,KAAK,EAAET,eAAgB;AACvB0G,QAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEC,CAAC,EAAA;AAAA,UAAA,OAAIV,iBAAiB,CAACU,CAAC,EAAE,iBAAiB,CAAC,CAAA;AAAA,SAAA;AAAC,OACxD,CAAC,CAAA;KACC,CAAC,EACLU,mBAAmB,EAAE,EACrBD,oBAAoB,iBACnBzI,GAAA,CAACuG,kBAAkB,EAAA;AAAOC,MAAAA,mBAAmB,EAAnBA,mBAAAA;AAAmB,KAAK,CACnD,CAAA;AAAA,GACE,CAAC,CAAA;AAEV,CAAC;;AC3ED,IAAMsD,aAAa,GAAG,SAAhBA,aAAaA,CAAAjK,IAAA,EAMb;AAAA,EAAA,IALJuJ,MAAM,GAAAvJ,IAAA,CAANuJ,MAAM;IACNjG,aAAa,GAAAtD,IAAA,CAAbsD,aAAa;IACbqD,mBAAmB,GAAA3G,IAAA,CAAnB2G,mBAAmB;IACnBiC,oBAAoB,GAAA5I,IAAA,CAApB4I,oBAAoB;IACpBC,mBAAmB,GAAA7I,IAAA,CAAnB6I,mBAAmB,CAAA;EAEnB,IAAMnD,IAAI,GAAArE,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAA,EAAA,EACPL,aAAa,CAACC,MAAM,EAAG0I,QAAM,CAC7B3I,EAAAA,aAAa,CAACE,cAAc,EAAGgI,eAAa,CAC5ClI,EAAAA,aAAa,CAACG,aAAa,EAAGwH,cAAY,CAC5C,CAAA;AACD,EAAA,IAAMuB,SAAS,GAAGxE,IAAI,CAAC6D,MAAM,CAAC,CAAA;EAE9B,oBACEpJ,GAAA,CAAC+J,SAAS,EAAA;AAEN5G,IAAAA,aAAa,EAAbA,aAAa;AACbsF,IAAAA,oBAAoB,EAApBA,oBAAoB;AACpBC,IAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBlC,IAAAA,mBAAmB,EAAnBA,mBAAAA;AAAmB,GAEtB,CAAC,CAAA;AAEN,CAAC;;AC5BD,IAAMwD,MAAM,GAAG,SAATA,MAAMA,CAAAnK,IAAA,EAAA;AAAA,EAAA,IAAMoK,sBAAsB,GAAApK,IAAA,CAAtBoK,sBAAsB;IAAEC,MAAM,GAAArK,IAAA,CAANqK,MAAM;IAAEnK,GAAG,GAAAF,IAAA,CAAHE,GAAG,CAAA;AAAA,EAAA,oBACnDC,GAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,aAAa;IAAAE,QAAA,eAC1BH,GAAA,CAACmK,GAAG,EAAA;MAACC,WAAW,EAAA,IAAA;AAACnK,MAAAA,SAAS,EAAC,mCAAmC;AAAAE,MAAAA,QAAA,EAC3D8J,sBAAsB,CAACnH,GAAG,CAAC,UAAAC,KAAA,EAAA;AAAA,QAAA,IAAGtC,GAAG,GAAAsC,KAAA,CAAHtC,GAAG;UAAEC,KAAK,GAAAqC,KAAA,CAALrC,KAAK;UAAEE,IAAI,GAAAmC,KAAA,CAAJnC,IAAI,CAAA;AAAA,QAAA,oBAC7CyJ,aAAA,CAACF,GAAG,CAACG,IAAI,EAAA;AACD1J,UAAAA,IAAI,EAAJA,IAAI;UACV2J,MAAM,EAAExK,GAAG,KAAKU,GAAI;UACpB,SAAAP,EAAAA,EAAAA,CAAAA,MAAA,CAAYO,GAAG,EAAO,MAAA,CAAA;UACtB,aAAAP,EAAAA,EAAAA,CAAAA,MAAA,CAAgBO,GAAG,EAAO,MAAA,CAAA;AAC1BA,UAAAA,GAAG,EAAEA,GAAI;UACT4H,OAAO,EAAE,SAATA,OAAOA,GAAA;YAAA,OAAQ6B,MAAM,CAACzJ,GAAG,CAAC,CAAA;AAAA,WAAA;AAAC,SAAA,EAE1BC,KACO,CAAC,CAAA;OACZ,CAAA;KACE,CAAA;AAAC,GACH,CAAC,CAAA;AAAA,CACP;;ACjBD,IAAM8J,OAAO,GAAG,SAAVA,OAAOA,CAAA3K,IAAA,EAAA;AAAA,EAAA,IAAMuF,OAAO,GAAAvF,IAAA,CAAPuF,OAAO;IAAEqF,cAAc,GAAA5K,IAAA,CAAd4K,cAAc;IAAEC,iBAAiB,GAAA7K,IAAA,CAAjB6K,iBAAiB,CAAA;EAAA,oBAC3D1K,GAAA,CAAC2K,KAAK,EAAA;IACJC,OAAO,EAAA,IAAA;AACPC,IAAAA,kBAAkB,EAAC,8BAA8B;AACjD7I,IAAAA,IAAI,EAAC,SAAS;IAAA7B,QAAA,EAEb2K,MAAM,CAACC,OAAO,CAAC3F,OAAO,CAAC,CAACtC,GAAG,CAAC,UAAAC,KAAA,EAAA;AAAA,MAAA,IAAAG,KAAA,GAAAF,cAAA,CAAAD,KAAA,EAAA,CAAA,CAAA;AAAEtC,QAAAA,GAAG,GAAAyC,KAAA,CAAA,CAAA,CAAA;AAAA8H,QAAAA,MAAA,GAAA9H,KAAA,CAAA,CAAA,CAAA;QAAIxC,KAAK,GAAAsK,MAAA,CAALtK,KAAK;QAAEuK,WAAW,GAAAD,MAAA,CAAXC,WAAW,CAAA;AAAA,MAAA,oBACtDtD,IAAA,CAAA,OAAA,EAAA;AACE1H,QAAAA,SAAS,EAAC,iGAAiG;QAC3G,SAAAC,EAAAA,EAAAA,CAAAA,MAAA,CAAYO,GAAG,EAAsB,qBAAA,CAAA;QACrC,aAAAP,EAAAA,EAAAA,CAAAA,MAAA,CAAgBO,GAAG,EAAsB,qBAAA,CAAA;AACzCyK,QAAAA,OAAO,EAAEzK,GAAI;AAAAN,QAAAA,QAAA,gBAGbH,GAAA,CAAA,KAAA,EAAA;AAAKC,UAAAA,SAAS,EAAC,mBAAmB;AAAAE,UAAAA,QAAA,eAChCH,GAAA,CAAC2K,KAAK,CAACL,IAAI,EAAA;AACH5J,YAAAA,KAAK,EAALA,KAAK;YACXuI,OAAO,EAAExI,GAAG,KAAKgK,cAAe;AAChCxK,YAAAA,SAAS,EAAC,MAAM;YAChB,SAAAC,EAAAA,EAAAA,CAAAA,MAAA,CAAYO,GAAG,EAAsB,qBAAA,CAAA;YACrC,aAAAP,EAAAA,EAAAA,CAAAA,MAAA,CAAgBO,GAAG,EAAsB,qBAAA,CAAA;AACzC2C,YAAAA,EAAE,EAAE3C,GAAI;AACRuB,YAAAA,IAAI,EAAC,SAAS;AACdF,YAAAA,KAAK,EAAErB,GAAI;AACXsH,YAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEoD,KAAK,EAAA;AAAA,cAAA,OAAIT,iBAAiB,CAACS,KAAK,CAAClD,MAAM,CAACnG,KAAK,CAAC,CAAA;AAAA,aAAA;WACzD,CAAA;AAAC,SACC,CAAC,eACN9B,GAAA,CAAC4I,UAAU,EAAA;AACT3I,UAAAA,SAAS,EAAC,kBAAkB;UAC5B,SAAAC,EAAAA,EAAAA,CAAAA,MAAA,CAAYO,GAAG,EAA4B,2BAAA,CAAA;AAC3C2H,UAAAA,KAAK,EAAC,OAAO;AAAAjI,UAAAA,QAAA,EAEZ8K,WAAAA;AAAW,SACF,CAAC,CAAA;AAAA,OAAA,EArBRxK,GAsBA,CAAC,CAAA;KACT,CAAA;AAAC,GACG,CAAC,CAAA;AAAA,CACT;;AClCD,IAAM+H,YAAY,GAAG,SAAfA,YAAYA,CAAA3I,IAAA,EAAqC;AAAA,EAAA,IAA/BuL,SAAS,GAAAvL,IAAA,CAATuL,SAAS;IAAEjI,aAAa,GAAAtD,IAAA,CAAbsD,aAAa,CAAA;AAC9C,EAAA,IAAAsD,eAAA,GAAcC,cAAc,EAAE;IAAtB/F,CAAC,GAAA8F,eAAA,CAAD9F,CAAC,CAAA;AAET,EAAA,IAAQU,eAAe,GAAK8B,aAAa,CAAjC9B,eAAe,CAAA;AAEvBqG,EAAAA,SAAS,CAAC,YAAM;AACd,IAAA,IAAM2D,OAAO,GAAGC,QAAQ,CAACC,cAAc,CAAClK,eAAe,CAAC,CAAA;AACxD,IAAA,IAAIgK,OAAO,EAAE;AAAA,MAAA,IAAAG,qBAAA,CAAA;MACX,CAAAA,qBAAA,GAAAC,MAAM,CAACvJ,WAAW,CAACC,OAAO,CAACC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,MAAAoJ,IAAAA,IAAAA,qBAAA,KAAvDA,KAAAA,CAAAA,IAAAA,qBAAA,CAAyDE,KAAK,CAC5DL,OAAO,EACPD,SACF,CAAC,CAAA;AACH,KAAA;GACD,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,oBACEpL,GAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,6DAA6D;IAAAE,QAAA,eAC1EH,GAAA,CAACkI,MAAM,EAAA;AACL,MAAA,SAAA,EAAQ,8BAA8B;AACtC,MAAA,aAAA,EAAY,8BAA8B;AAC1C9E,MAAAA,EAAE,EAAE/B,eAAgB;MACpBX,KAAK,EAAEC,CAAC,CACN,8DACF,CAAA;KACD,CAAA;AAAC,GACC,CAAC,CAAA;AAEV,CAAC;;AC3BD,IAAMoI,aAAa,GAAG,SAAhBA,aAAaA,CAAAlJ,IAAA,EAAqC;AAAA,EAAA,IAA/BuL,SAAS,GAAAvL,IAAA,CAATuL,SAAS;IAAEjI,aAAa,GAAAtD,IAAA,CAAbsD,aAAa,CAAA;AAC/C,EAAA,IAAQ1B,YAAY,GAClB0B,aAAa,CADP1B,YAAY;IAAEH,QAAQ,GAC5B6B,aAAa,CADO7B,QAAQ;IAAEC,OAAO,GACrC4B,aAAa,CADiB5B,OAAO;IAAEG,WAAW,GAClDyB,aAAa,CAD0BzB,WAAW;IAAEF,QAAQ,GAC5D2B,aAAa,CADuC3B,QAAQ;IAAEZ,IAAI,GAClEuC,aAAa,CADiDvC,IAAI,CAAA;AAGpE8G,EAAAA,SAAS,CAAC,YAAM;AAAA,IAAA,IAAA8D,qBAAA,CAAA;AACd,IAAA,IAAMG,GAAG,GAAGL,QAAQ,CAACC,cAAc,CAAC,UAAU,CAAC,CAAA;IAC/C,CAAAC,qBAAA,GAAAC,MAAM,CAACvJ,WAAW,CAACC,OAAO,CAACC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,MAAAoJ,IAAAA,IAAAA,qBAAA,KAAvDA,KAAAA,CAAAA,IAAAA,qBAAA,CAAyDE,KAAK,CAC5DC,GAAG,EACHP,SACF,CAAC,CAAA;GACF,EAAE,EAAE,CAAC,CAAA;AAEN1D,EAAAA,SAAS,CAAC,YAAM;AACd,IAAA,IAAMiE,GAAG,GAAGL,QAAQ,CAACC,cAAc,CAAC,UAAU,CAAC,CAAA;AAC/CI,IAAAA,GAAG,CAACvD,KAAK,CAACwD,eAAe,GAAGpK,QAAQ,CAAA;AACpCmK,IAAAA,GAAG,CAACvD,KAAK,CAACkB,KAAK,GAAG7H,YAAY,CAAA;AAChC,GAAC,EAAE,CAACD,QAAQ,EAAEC,YAAY,CAAC,CAAC,CAAA;AAE5B,EAAA,oBACEzB,GAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,wBAAwB;IAAAE,QAAA,eACrCH,GAAA,CAACkI,MAAM,EAAA;AACL,MAAA,SAAA,EAAQ,sBAAsB;AAC9BtH,MAAAA,IAAI,EAAEA,IAAI,IAAIU,QAAQ,GAAGV,IAAI,GAAG,IAAK;AACrC2H,MAAAA,YAAY,EAAC,MAAM;AACnBnF,MAAAA,EAAE,EAAC,UAAU;AACb1C,MAAAA,KAAK,EAAEa,OAAQ;AACftB,MAAAA,SAAS,EAAE4L,UAAU,CAAC,uBAAuB,EAAE;QAC7C,QAAQ,EAAEnK,WAAW,KAAK,YAAY;QACtC,SAAS,EAAEA,WAAW,KAAK,aAAA;OAC5B,CAAA;KACF,CAAA;AAAC,GACC,CAAC,CAAA;AAEV,CAAC;;ACtCD,IAAM8H,MAAM,GAAG,SAATA,MAAMA,CAAA3J,IAAA,EAAqC;AAAA,EAAA,IAA/BuL,SAAS,GAAAvL,IAAA,CAATuL,SAAS;IAAEjI,aAAa,GAAAtD,IAAA,CAAbsD,aAAa,CAAA;AACxC,EAAA,IAAQ/B,MAAM,GAAY+B,aAAa,CAA/B/B,MAAM;IAAED,KAAK,GAAKgC,aAAa,CAAvBhC,KAAK,CAAA;AAErB,EAAA,oBACEnB,GAAA,CAAA,QAAA,EAAA;AACEC,IAAAA,SAAS,EAAC,QAAQ;AAClBmB,IAAAA,MAAM,EAAAlB,EAAAA,CAAAA,MAAA,CAAKkB,MAAM,EAAI,GAAA,CAAA;AACrB0K,IAAAA,GAAG,EAAEV,SAAU;IACfjK,KAAK,EAAA,EAAA,CAAAjB,MAAA,CAAKiB,KAAK,EAAA,GAAA,CAAA;AAAI,GACpB,CAAC,CAAA;AAEN,CAAC;;ACDD,IAAM4K,OAAO,GAAG,SAAVA,OAAOA,CAAAlM,IAAA,EAMP;AAAA,EAAA,IALJmM,eAAe,GAAAnM,IAAA,CAAfmM,eAAe;IACfvB,cAAc,GAAA5K,IAAA,CAAd4K,cAAc;IACdrH,EAAE,GAAAvD,IAAA,CAAFuD,EAAE;IACFD,aAAa,GAAAtD,IAAA,CAAbsD,aAAa;IAAA8I,qBAAA,GAAApM,IAAA,CACbqM,sBAAsB;AAAtBA,IAAAA,sBAAsB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,qBAAA,CAAA;EAE3B,IAAME,OAAO,GAAAjL,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAA,EAAA,EACVL,aAAa,CAACC,MAAM,EAAG0I,MAAM,CAC7B3I,EAAAA,aAAa,CAACE,cAAc,EAAGgI,aAAa,CAC5ClI,EAAAA,aAAa,CAACG,aAAa,EAAGwH,YAAY,CAC5C,CAAA;AAED,EAAA,IAAM4C,SAAS,GAAGc,sBAAsB,IAAA,EAAA,CAAAhM,MAAA,CAAOkM,QAAQ,CAACC,MAAM,EAAA,SAAA,CAAA,CAAAnM,MAAA,CAAUkD,EAAE,CAAE,CAAA;AAC5E,EAAA,IAAM2G,SAAS,GAAGoC,OAAO,CAAC1B,cAAc,CAAC,CAAA;AAEzC,EAAA,IAAIuB,eAAe,EAAE;AACnB,IAAA,oBACEhM,GAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,oEAAoE;AAAAE,MAAAA,QAAA,eACjFH,GAAA,CAACsM,OAAO,EAAE,EAAA,CAAA;AAAC,KACR,CAAC,CAAA;AAEV,GAAA;EAEA,oBACEtM,GAAA,CAACuM,cAAc,EAAA;AACbtM,IAAAA,SAAS,EAAC,QAAQ;AAClBuM,IAAAA,gBAAgB,EAAC,4DAA4D;IAAArM,QAAA,eAE7EH,GAAA,CAAC+J,SAAS,EAAA;AAAO5G,MAAAA,aAAa,EAAbA,aAAa;AAAEiI,MAAAA,SAAS,EAATA,SAAAA;KAAc,CAAA;AAAC,GACjC,CAAC,CAAA;AAErB,CAAC;;;;;;;ACvBD,IAAMqB,YAAY,GAAG,SAAfA,YAAYA,CAAA5M,IAAA,EAYZ;AAAA,EAAA,IAAA6M,cAAA,GAAA7M,IAAA,CAXJI,SAAS;AAATA,IAAAA,SAAS,GAAAyM,cAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,cAAA;IAAAC,qBAAA,GAAA9M,IAAA,CACd+M,qBAAqB;AAArBA,IAAAA,qBAAqB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,qBAAA;IAAAV,qBAAA,GAAApM,IAAA,CAC1BqM,sBAAsB;AAAtBA,IAAAA,sBAAsB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,qBAAA;IAAAY,eAAA,GAAAhN,IAAA,CAC3BiN,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,eAAA;IACfzJ,EAAE,GAAAvD,IAAA,CAAFuD,EAAE;IAAA2J,qBAAA,GAAAlN,IAAA,CACF4I,oBAAoB;AAApBA,IAAAA,oBAAoB,GAAAsE,qBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,qBAAA;IAAAC,YAAA,GAAAnN,IAAA,CAC5BuF,OAAO;AAAPA,IAAAA,OAAO,GAAA4H,YAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,YAAA;IAAAC,cAAA,GAAApN,IAAA,CACZ+C,SAAS;AAATA,IAAAA,SAAS,GAAAqK,cAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,cAAA;IAAAC,qBAAA,GAAArN,IAAA,CACd6I,mBAAmB;AAAnBA,IAAAA,mBAAmB,GAAAwE,qBAAA,KAAGC,KAAAA,CAAAA,GAAAA,IAAI,GAAAD,qBAAA;IAAAE,qBAAA,GAAAvN,IAAA,CAC1BwD,kBAAkB;AAAlBA,IAAAA,kBAAkB,GAAA+J,qBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,qBAAA;IAAAC,qBAAA,GAAAxN,IAAA,CACvByN,kBAAkB;AAAlBA,IAAAA,kBAAkB,GAAAD,qBAAA,KAAA,KAAA,CAAA,GAAG,CAAC,MAAM,CAAC,GAAAA,qBAAA,CAAA;EAE7B,IAAMpD,sBAAsB,GAAGsD,QAAQ,CACrC;AAAE9M,IAAAA,GAAG,EAAE,SAALA,GAAGA,CAAEA,IAAG,EAAA;MAAA,OAAI6M,kBAAkB,aAAlBA,kBAAkB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAlBA,kBAAkB,CAAEE,QAAQ,CAAC/M,IAAG,CAAC,CAAA;AAAA,KAAA;GAAE,EACjDD,IACF,CAAC,CAAA;AACD,EAAA,IAAAmG,SAAA,GAA8CC,QAAQ,CAAC,IAAI,CAAC;IAAAC,UAAA,GAAA7D,cAAA,CAAA2D,SAAA,EAAA,CAAA,CAAA;AAArDqF,IAAAA,eAAe,GAAAnF,UAAA,CAAA,CAAA,CAAA;AAAE4G,IAAAA,kBAAkB,GAAA5G,UAAA,CAAA,CAAA,CAAA,CAAA;EAC1C,IAAA6G,UAAA,GAAsB9G,QAAQ,CAACqD,sBAAsB,CAAC,CAAC,CAAC,CAACxJ,GAAG,CAAC;IAAAkN,UAAA,GAAA3K,cAAA,CAAA0K,UAAA,EAAA,CAAA,CAAA;AAAtD3N,IAAAA,GAAG,GAAA4N,UAAA,CAAA,CAAA,CAAA;AAAEzD,IAAAA,MAAM,GAAAyD,UAAA,CAAA,CAAA,CAAA,CAAA;AAClB,EAAA,IAAAC,UAAA,GAA4ChH,QAAQ,CAAC/F,aAAa,CAACC,MAAM,CAAC;IAAA+M,UAAA,GAAA7K,cAAA,CAAA4K,UAAA,EAAA,CAAA,CAAA;AAAnEnD,IAAAA,cAAc,GAAAoD,UAAA,CAAA,CAAA,CAAA;AAAEnD,IAAAA,iBAAiB,GAAAmD,UAAA,CAAA,CAAA,CAAA,CAAA;EACxC,IAAAC,UAAA,GAA4ClH,QAAQ,CAAC,YAAA;MAAA,OACnDhB,yBAAyB,CAACR,OAAO,CAAC,CAAA;AAAA,KACpC,CAAC;IAAA2I,UAAA,GAAA/K,cAAA,CAAA8K,UAAA,EAAA,CAAA,CAAA;AAFME,IAAAA,cAAc,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,iBAAiB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAIxC,EAAA,IAAAtH,eAAA,GAAcC,cAAc,EAAE;IAAtB/F,CAAC,GAAA8F,eAAA,CAAD9F,CAAC,CAAA;AAET,EAAA,IAAM2B,eAAe,GACnBsK,qBAAqB,OAAA1M,MAAA,CAClBuL,MAAM,CAACW,QAAQ,CAAC8B,QAAQ,EAAA,IAAA,CAAA,CAAAhO,MAAA,CAAKuL,MAAM,CAACW,QAAQ,CAAC+B,IAAI,EAAsB,sBAAA,CAAA,CAAA;EAE5E,IAAMrO,IAAI,GAAGqF,YAAY,CAAC;AACxB/B,IAAAA,EAAE,EAAFA,EAAE;AACFrD,IAAAA,GAAG,EAAHA,GAAG;AACHwF,IAAAA,IAAI,EAAEkF,cAAc;AACpBtH,IAAAA,aAAa,EAAE6K,cAAc,CAACvD,cAAc,CAAC;AAC7CnI,IAAAA,eAAe,EAAfA,eAAe;AACfM,IAAAA,SAAS,EAATA,SAAS;AACTS,IAAAA,kBAAkB,EAAlBA,kBAAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,IAAM+K,UAAU,GAAG,SAAbA,UAAUA,GAAS;AACvB,IAAA,IAAMC,MAAM,GAAG/C,QAAQ,CAACgD,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC/CD,MAAM,CAACjL,EAAE,GAAGzB,SAAS,CAAA;IACrB0M,MAAM,CAACvC,GAAG,GAAGxJ,eAAe,CAAA;AAC5BgJ,IAAAA,QAAQ,CAACiD,IAAI,CAACC,WAAW,CAACH,MAAM,CAAC,CAAA;IACjCZ,kBAAkB,CAAC,KAAK,CAAC,CAAA;GAC1B,CAAA;AAED,EAAA,IAAMjH,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAGiI,KAAK,EAAA;IAAA,OAC/BR,iBAAiB,CAAC,UAAAS,SAAS,EAAA;AAAA,MAAA,OAAAjH,aAAA,CAAAA,aAAA,KACtBiH,SAAS,CAAA,EAAA,EAAA,EAAAxN,eAAA,CACXuJ,EAAAA,EAAAA,cAAc,EAAGkE,SAAS,CAACF,KAAK,EAAEC,SAAS,CAACjE,cAAc,CAAC,CAAC,CAAA,CAAA,CAAA;AAAA,KAC7D,CAAC,CAAA;AAAA,GAAA,CAAA;AAEL/C,EAAAA,SAAS,CAAC,YAAM;AACd,IAAA,IAAMkH,cAAc,GAAGtD,QAAQ,CAACC,cAAc,CAAC5J,SAAS,CAAC,CAAA;IACzD,IAAIiN,cAAc,EAAEnB,kBAAkB,CAAC,KAAK,CAAC,CAAC,KACzCW,UAAU,EAAE,CAAA;GAClB,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,oBACEzG,IAAA,CAAA,KAAA,EAAA;AACE,IAAA,aAAA,EAAY,eAAe;AAC3B1H,IAAAA,SAAS,EAAE4L,UAAU,CACnB,kEAAkE,EAClE5L,SACF,CAAE;AAAAE,IAAAA,QAAA,gBAEFwH,IAAA,CAAA,KAAA,EAAA;AAAK1H,MAAAA,SAAS,EAAC,qCAAqC;AAAAE,MAAAA,QAAA,EACjD2M,CAAAA,UAAU,iBACT9M,GAAA,CAACkI,MAAM,EAAA;AACLjI,QAAAA,SAAS,EAAC,MAAM;AAChB,QAAA,SAAA,EAAQ,aAAa;AACrB,QAAA,aAAA,EAAY,aAAa;AACzBW,QAAAA,IAAI,EAAEiO,SAAU;AAChBtG,QAAAA,YAAY,EAAC,MAAM;AACnB7H,QAAAA,KAAK,EAAEC,CAAC,CAAC,yCAAyC,CAAE;AACpDmO,QAAAA,IAAI,EAAC,OAAO;AACZ1G,QAAAA,KAAK,EAAC,MAAM;AACZ2G,QAAAA,EAAE,EAAEjC,UAAAA;AAAW,OAChB,CACF,eACD9M,GAAA,CAAC4I,UAAU,EAAA;AAAC,QAAA,SAAA,EAAQ,4BAA4B;AAACR,QAAAA,KAAK,EAAC,IAAI;QAAAjI,QAAA,EACxDQ,CAAC,CAAC,gDAAgD,CAAA;OACzC,CAAC,eACbgH,IAAA,CAAA,KAAA,EAAA;AAAK1H,QAAAA,SAAS,EAAC,4CAA4C;QAAAE,QAAA,EAAA,cACzDH,GAAA,CAACwK,OAAO,EAAA;AAAOpF,UAAAA,OAAO,EAAPA,OAAO;AAAEqF,UAAAA,cAAc,EAAdA,cAAc;AAAEC,UAAAA,iBAAiB,EAAjBA,iBAAAA;AAAiB,SAAK,CAAC,eAC/D1K,GAAA,CAAC8J,aAAa,EAAA;AAEVrB,UAAAA,oBAAoB,EAApBA,oBAAoB;AACpBC,UAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBlC,UAAAA,mBAAmB,EAAnBA,mBAAmB;AAErBrD,UAAAA,aAAa,EAAE6K,cAAc,CAACvD,cAAc,CAAE;AAC9CrB,UAAAA,MAAM,EAAEqB,cAAAA;AAAe,SACxB,CAAC,CAAA;AAAA,OACC,CAAC,CAAA;KACH,CAAC,eACN9C,IAAA,CAAA,KAAA,EAAA;AAAK1H,MAAAA,SAAS,EAAC,8IAA8I;MAAAE,QAAA,EAAA,cAC3JH,GAAA,CAACgK,MAAM,EAAA;AAAOE,QAAAA,MAAM,EAANA,MAAM;AAAED,QAAAA,sBAAsB,EAAtBA,sBAAsB;AAAElK,QAAAA,GAAG,EAAHA,GAAAA;OAAQ,CAAC,eACvD4H,IAAA,CAAA,KAAA,EAAA;AAAK1H,QAAAA,SAAS,EAAC,uCAAuC;AAAAE,QAAAA,QAAA,gBACpDH,GAAA,CAAA,KAAA,EAAA;AAAKC,UAAAA,SAAS,EAAC,eAAe;AAAC,UAAA,aAAA,EAAY,kBAAkB;UAAAE,QAAA,eAC3DH,GAAA,CAACJ,IAAI,EAAA;AAAOE,YAAAA,IAAI,EAAJA,IAAI;AAAEC,YAAAA,GAAG,EAAHA,GAAAA;WAAQ,CAAA;SACvB,CAAC,eACNC,GAAA,CAAA,KAAA,EAAA;AAAKC,UAAAA,SAAS,EAAC,WAAW;UAAAE,QAAA,eACxBH,GAAA,CAAC+L,OAAO,EAAA;AAEJG,YAAAA,sBAAsB,EAAtBA,sBAAsB;AACtB9I,YAAAA,EAAE,EAAFA,EAAE;AACF4I,YAAAA,eAAe,EAAfA,eAAe;AACfvB,YAAAA,cAAc,EAAdA,cAAc;YAEhBtH,aAAa,EAAE6K,cAAc,CAACvD,cAAc,CAAA;WAC7C,CAAA;AAAC,SACC,CAAC,CAAA;AAAA,OACH,CAAC,CAAA;AAAA,KACH,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEV;;;;"}
1
+ {"version":3,"file":"ProductEmbed.js","sources":["../src/components/ProductEmbed/Code.jsx","../src/components/ProductEmbed/constants.js","../src/components/ProductEmbed/Customization/constants.js","../src/components/ProductEmbed/utils/html.js","../src/components/ProductEmbed/utils/react.js","../src/components/ProductEmbed/utils/index.js","../src/components/ProductEmbed/Customization/DynamicQueryParams.jsx","../src/components/ProductEmbed/Customization/ElementPopup.jsx","../src/components/ProductEmbed/Customization/FloatingPopup.jsx","../src/components/ProductEmbed/Customization/Inline.jsx","../src/components/ProductEmbed/Customization/index.jsx","../src/components/ProductEmbed/Header.jsx","../src/components/ProductEmbed/Options.jsx","../src/components/ProductEmbed/Preview/ElementPopup.jsx","../src/components/ProductEmbed/Preview/FloatingPopup.jsx","../src/components/ProductEmbed/Preview/Inline.jsx","../src/components/ProductEmbed/Preview/index.jsx","../src/components/ProductEmbed/index.jsx"],"sourcesContent":["import Codeblock from \"components/Codeblock\";\n\nconst Code = ({ code, tab }) => (\n <div\n className=\"neeto-molecules-embed__code-block relative w-full overflow-y-auto\"\n data-cy=\"embed-code-block\"\n data-testid={`${tab}-code-block`}\n >\n <Codeblock {...{ code }} />\n </div>\n);\n\nexport default Code;\n","import { t } from \"i18next\";\nimport { Code } from \"neetoicons\";\n\nexport const TAB_KEYS = { HTML: \"html\", REACT: \"react\" };\n\nexport const TABS = [\n {\n key: TAB_KEYS.HTML,\n label: t(\"neetoMolecules.productEmbed.tab.html\"),\n icon: Code,\n },\n {\n key: TAB_KEYS.REACT,\n label: t(\"neetoMolecules.productEmbed.tab.react\"),\n icon: Code,\n },\n];\n\nexport const EMBED_OPTIONS = {\n INLINE: \"inline\",\n FLOATING_POPUP: \"floatingPopup\",\n ELEMENT_POPUP: \"elementPopup\",\n};\n\nexport const DEFAULT_CUSTOMIZATION = {\n [EMBED_OPTIONS.INLINE]: {\n width: 100,\n height: 100,\n elementSelector: \"inline-embed-container\",\n },\n [EMBED_OPTIONS.FLOATING_POPUP]: {\n showIcon: false,\n btnText: \"Open\",\n btnColor: \"#008068\",\n btnTextColor: \"#fff\",\n btnPosition: \"bottomRight\",\n },\n [EMBED_OPTIONS.ELEMENT_POPUP]: {\n elementSelector: \"open-popup-button\",\n },\n};\n\nexport const SCRIPT_ID = \"embed-script\";\n\nexport const TAB_STRING = \" \";\n","import { t } from \"i18next\";\n\nexport const FLOATING_BUTTON_POSITIONS = [\n {\n label: t(\"neetoMolecules.productEmbed.customization.position.bottomLeft\"),\n value: \"bottomLeft\",\n },\n {\n label: t(\"neetoMolecules.productEmbed.customization.position.bottomRight\"),\n value: \"bottomRight\",\n },\n];\n\nexport const INITIAL_QUERY_PARAM = { name: \"\", value: \"\" };\n","import { toPairs } from \"ramda\";\n\nimport { TAB_STRING } from \"../constants\";\n\nconst camelCasedAppName = globalProps.appName.replace(/^neeto/i, \"neeto\");\n\nconst embedBaseScript = embedScriptLink =>\n `<script>window.${camelCasedAppName} = window.${camelCasedAppName} || { embed: function(){(${camelCasedAppName}.q=${camelCasedAppName}.q||[]).push(arguments)} };</script>\n <script async\n src=\"${embedScriptLink}\">\n </script>`;\n\nconst embedEnv = () =>\n globalProps.railsEnv !== \"production\"\n ? `\\n${TAB_STRING} env: \"${globalProps.railsEnv}\",`\n : \"\";\n\nconst embedQueryParam = queryParams =>\n queryParams ? `\\n${TAB_STRING} queryParams: ${queryParams},` : \"\";\n\nconst parseExtraArgs = extraArgs =>\n toPairs(extraArgs).map(\n ([key, value]) => `\\n${TAB_STRING} ${key}: \"${value}\"`\n );\n\nconst inlineEmbedCode = ({\n customization,\n id,\n embedScriptLink,\n extraArgs,\n inlineWrapperStyle,\n}) => {\n const {\n elementSelector,\n width = 100,\n height = 100,\n queryParams,\n } = customization;\n\n return `\n <!-- ${globalProps.appName} inline embed code begins -->\n <div style=\"${\n inlineWrapperStyle || \"height: 90vh; width: 100%;\"\n }\" id=\"${elementSelector}\">\n <!-- ${globalProps.appName} widget will be added here -->\n </div>\n ${embedBaseScript(embedScriptLink)}\n <script>\n ${camelCasedAppName}.embed({\n type: \"inline\",\n id: \"${id}\",\n organization: \"${globalProps.organization.subdomain}\",\n elementSelector: \"#${elementSelector}\",\n styles: { height: \"${height}%\", width: \"${width}%\"},${embedQueryParam(\n queryParams\n )}${embedEnv()}${parseExtraArgs(extraArgs)}\n });\n </script>\n <!-- ${globalProps.appName} inline embed code ends -->`;\n};\n\nconst floatingPopupEmbedCode = ({\n customization,\n id,\n embedScriptLink,\n extraArgs,\n}) => {\n const {\n btnTextColor,\n showIcon,\n btnText,\n btnPosition,\n btnColor,\n icon,\n queryParams,\n } = customization;\n\n return `\n <!-- ${globalProps.appName} floating-popup embed code begins -->\n ${embedBaseScript(embedScriptLink)}\n <script>\n ${camelCasedAppName}.embed({\n type: \"floatingPopup\",\n id: \"${id}\",\n organization: \"${globalProps.organization.subdomain}\",\n styles: {\n btnTextColor: \"${btnTextColor}\",\n btnPosition: \"${btnPosition}\",\n btnColor: \"${btnColor}\",\n btnText: \"${btnText}\", ${\n icon ? `\\n${TAB_STRING}${TAB_STRING}showIcon: ${showIcon},` : \"\"\n }\n },${embedQueryParam(queryParams)}${embedEnv()}${parseExtraArgs(extraArgs)}\n });\n </script>\n <!-- ${globalProps.appName} floating-popup embed code ends -->`;\n};\n\nconst elementPopupEmbedCode = ({\n customization,\n id,\n embedScriptLink,\n extraArgs,\n}) => {\n const { elementSelector, queryParams } = customization;\n\n return `\n <!-- This is a demo button, you can use any element on your website instead. -->\n <button id=\"${elementSelector}\">Click to open popup</button>\n\n <!-- ${globalProps.appName} element-click embed code begins -->\n ${embedBaseScript(embedScriptLink)}\n <script>\n ${camelCasedAppName}.embed({\n type: \"elementClick\",\n id: \"${id}\",\n organization: \"${globalProps.organization.subdomain}\",\n elementSelector: \"#${elementSelector}\",${embedQueryParam(\n queryParams\n )}${embedEnv()}${parseExtraArgs(extraArgs)}\n });\n </script>\n <!-- ${globalProps.appName} element-click embed code ends -->`;\n};\n\nexport const htmlCodeGenerators = {\n inline: inlineEmbedCode,\n floatingPopup: floatingPopupEmbedCode,\n elementPopup: elementPopupEmbedCode,\n};\n","import { toPairs } from \"ramda\";\n\nimport { TAB_STRING } from \"../constants\";\n\nconst camelCasedAppName = globalProps.appName.replace(/^neeto/i, \"neeto\");\nconst embedFunctionName = `embed${globalProps.appName}`;\n\nconst baseScript = `const baseScript = document.createElement(\"script\");\n baseScript.innerHTML = \\`window.${camelCasedAppName} = window.${camelCasedAppName} || { embed: function(){(${camelCasedAppName}.q=${camelCasedAppName}.q||[]).push(arguments)} };\\`\n document.body.appendChild(baseScript);\n`;\n\nconst embedScript =\n scriptLink => `const embedScript = document.createElement(\"script\");\n embedScript.src = \"${scriptLink}\";\n embedScript.async = true;\n document.body.appendChild(embedScript);\n`;\n\nconst cleanupFunction = `// Cleanup function\n return () => {\n document.body.removeChild(baseScript);\n document.body.removeChild(embedScript);\n };`;\n\nconst embedEnv = () =>\n globalProps.railsEnv !== \"production\"\n ? `\\n${TAB_STRING}${TAB_STRING}env: \"${globalProps.railsEnv}\",`\n : \"\";\n\nconst embedQueryParam = queryParams =>\n queryParams ? `\\n${TAB_STRING}${TAB_STRING}queryParams: ${queryParams},` : \"\";\n\nconst parseExtraArgs = extraArgs =>\n toPairs(extraArgs).map(\n ([key, value]) => `\\n${TAB_STRING}${TAB_STRING}${key}: \"${value}\"`\n );\n\nconst parseInlineStyle = styleString =>\n styleString\n ? styleString\n .split(\";\")\n .map(rule => {\n const [key, value] = rule.split(\":\").map(s => s.trim());\n\n return key && value ? `${key}: \"${value}\"` : null;\n })\n .filter(Boolean)\n .join(\", \")\n : 'height: \"90vh\", width: \"100%\"';\n\nconst inlineEmbedCode = ({\n customization,\n id,\n embedScriptLink,\n extraArgs,\n inlineWrapperStyle,\n}) => {\n const {\n elementSelector,\n width = 100,\n height = 100,\n queryParams,\n } = customization;\n\n return `\n import { useEffect } from \"react\";\n\n const App = () => {\n const ${embedFunctionName} = () => {\n ${baseScript}\n ${embedScript(embedScriptLink)}\n ${camelCasedAppName}.embed({\n type: \"inline\",\n id: \"${id}\",\n organization: \"${globalProps.organization.subdomain}\",\n elementSelector: \"#${elementSelector}\",\n styles: { height: \"${height}%\", width: \"${width}%\" },${embedQueryParam(\n queryParams\n )}${embedEnv()}${parseExtraArgs(extraArgs)}\n });\n\n ${cleanupFunction}\n };\n\n useEffect(() => ${embedFunctionName}(), []);\n\n return (\n <div\n id=\"inline-embed-container\"\n style={{ ${parseInlineStyle(inlineWrapperStyle)} }}\n />\n );\n };`;\n};\n\nconst floatingPopupEmbedCode = ({\n customization,\n id,\n embedScriptLink,\n extraArgs,\n}) => {\n const {\n btnTextColor,\n showIcon,\n btnText,\n btnPosition,\n btnColor,\n icon,\n queryParams,\n } = customization;\n\n return `\n import { useEffect } from \"react\";\n\n const App = () => {\n const ${embedFunctionName} = () => {\n ${baseScript}\n ${embedScript(embedScriptLink)}\n ${camelCasedAppName}.embed({\n type: \"floatingPopup\",\n id: \"${id}\",\n organization: \"${globalProps.organization.subdomain}\",\n styles: {\n btnTextColor: \"${btnTextColor}\",\n btnPosition: \"${btnPosition}\",\n btnColor: \"${btnColor}\",\n btnText: \"${btnText}\",${\n icon ? `\\n${TAB_STRING}${TAB_STRING} showIcon: ${showIcon},` : \"\"\n }\n },${embedQueryParam(queryParams)}${embedEnv()}${parseExtraArgs(\n extraArgs\n )}\n });\n\n ${cleanupFunction}\n };\n\n useEffect(() => ${embedFunctionName}(), []);\n\n return <div />;\n };`;\n};\n\nconst elementPopupEmbedCode = ({\n customization,\n id,\n embedScriptLink,\n extraArgs,\n}) => {\n const { elementSelector, queryParams } = customization;\n\n return `\n import { useEffect } from \"react\";\n\n const App = () => {\n const ${embedFunctionName} = () => {\n ${baseScript}\n ${embedScript(embedScriptLink)}\n ${camelCasedAppName}.embed({\n type: \"elementClick\",\n id: \"${id}\",\n organization: \"${globalProps.organization.subdomain}\",\n elementSelector: \"#${elementSelector}\",${embedQueryParam(\n queryParams\n )}${embedEnv()}${parseExtraArgs(extraArgs)}\n });\n\n ${cleanupFunction}\n };\n\n useEffect(() => ${embedFunctionName}(), []);\n\n return <button id=\"${elementSelector}\">Click to open popup</button>;\n };`;\n};\n\nexport const reactCodeGenerators = {\n inline: inlineEmbedCode,\n floatingPopup: floatingPopupEmbedCode,\n elementPopup: elementPopupEmbedCode,\n};\n","import { isEmpty, mergeDeepLeft } from \"ramda\";\n\nimport { htmlCodeGenerators } from \"./html\";\nimport { reactCodeGenerators } from \"./react\";\n\nimport { DEFAULT_CUSTOMIZATION } from \"../constants\";\n\nexport const generateCode = options => {\n const { tab, type, ...embeddedCodeOptions } = options;\n\n return tab === \"react\"\n ? reactCodeGenerators[type]?.(embeddedCodeOptions)\n : htmlCodeGenerators[type]?.(embeddedCodeOptions);\n};\n\nexport const buildDefaultCustomization = defaultCustomizations =>\n mergeDeepLeft(defaultCustomizations, DEFAULT_CUSTOMIZATION);\n\nexport const buildQueryParamsFromInputFields = inputFields => {\n const filteredInputFields = inputFields.filter(\n ({ name, value }) => name && value\n );\n\n const queryParams = filteredInputFields.reduce(\n (queryParams, { name, value }) => {\n queryParams[name] = value;\n\n return queryParams;\n },\n {}\n );\n\n if (isEmpty(queryParams)) return \"\";\n\n const queryParamJsonString = JSON.stringify(queryParams, null, 2);\n\n return queryParamJsonString.replace(/\\n/g, \" \").replace(/\\s\\s+/g, \" \");\n};\n","import { useState, useEffect } from \"react\";\n\nimport { Delete, Plus } from \"neetoicons\";\nimport { Button, Label, Input } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { INITIAL_QUERY_PARAM } from \"./constants\";\n\nimport { buildQueryParamsFromInputFields } from \"../utils\";\n\nconst DynamicQueryParams = ({ updateCustomization }) => {\n const { t } = useTranslation();\n const [queryParams, setQueryParams] = useState([INITIAL_QUERY_PARAM]);\n\n const handleAddQueryParam = () => {\n setQueryParams([...queryParams, INITIAL_QUERY_PARAM]);\n };\n\n const handleRemoveQueryParam = index => {\n const newQueryParams = queryParams.filter((_, i) => i !== index);\n setQueryParams(newQueryParams);\n };\n\n const handleInputChange = (index, field, value) => {\n const newQueryParams = queryParams.map((param, i) =>\n i === index ? { ...param, [field]: value } : param\n );\n setQueryParams(newQueryParams);\n };\n\n useEffect(() => {\n updateCustomization({\n queryParams: buildQueryParamsFromInputFields(queryParams),\n });\n }, [queryParams]);\n\n return (\n <div>\n <Label className=\"mb-2\" data-cy=\"dynamic-query-params-label\">\n {t(\"neetoMolecules.productEmbed.customization.queryParam.label\")}\n </Label>\n {queryParams.map((param, index) => (\n <div className=\"mb-1 flex gap-1\" key={index}>\n <Input\n data-cy=\"dynamic-query-key-name-input\"\n data-testid=\"dynamic-query-key-name-input\"\n name={`queryParams.${index}.name`}\n value={param.name}\n placeholder={t(\n \"neetoMolecules.productEmbed.customization.queryParam.keyNamePlaceholder\"\n )}\n onChange={e => handleInputChange(index, \"name\", e.target.value)}\n />\n <Input\n data-cy=\"dynamic-query-key-value-input\"\n data-testid=\"dynamic-query-key-value-input\"\n name={`queryParams.${index}.value`}\n value={param.value}\n placeholder={t(\n \"neetoMolecules.productEmbed.customization.queryParam.keyValuePlaceholder\"\n )}\n onChange={e => handleInputChange(index, \"value\", e.target.value)}\n />\n <Button\n data-cy=\"dynamic-query-delete-button\"\n icon={Delete}\n style=\"text\"\n onClick={() => handleRemoveQueryParam(index)}\n />\n </div>\n ))}\n <Button\n className=\"my-2\"\n data-cy=\"dynamic-query-add-new-button\"\n icon={Plus}\n iconPosition=\"left\"\n style=\"link\"\n label={t(\n \"neetoMolecules.productEmbed.customization.queryParam.addQueryParam\"\n )}\n onClick={handleAddQueryParam}\n />\n </div>\n );\n};\n\nexport default DynamicQueryParams;\n","import { useEffect } from \"react\";\n\nimport { Typography, Input, Callout } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DynamicQueryParams from \"./DynamicQueryParams\";\n\nconst ElementPopup = ({\n customization,\n updateCustomization,\n isQueryParamsEnabled,\n otherCustomizations,\n}) => {\n const { elementSelector } = customization;\n const { t } = useTranslation();\n\n useEffect(() => {\n if (isQueryParamsEnabled) return;\n\n updateCustomization({ queryParams: undefined });\n }, []);\n\n return (\n <div className=\"space-y-6\">\n <Typography data-cy=\"element-popup-header\" style=\"h4\">\n {t(\"neetoMolecules.productEmbed.customization.elementPopup.title\")}\n </Typography>\n <Callout data-cy=\"element-popup-description\">\n {t(\n \"neetoMolecules.productEmbed.customization.elementPopup.description\"\n )}\n </Callout>\n <Input\n className=\"w-full\"\n data-cy=\"element-id-input-field\"\n data-testid=\"element-id-input-field\"\n value={elementSelector}\n error={\n !elementSelector &&\n t(\"neetoMolecules.productEmbed.customization.elementPopup.warning\")\n }\n label={t(\n \"neetoMolecules.productEmbed.customization.elementPopup.elementId\"\n )}\n onChange={e => updateCustomization({ elementSelector: e.target.value })}\n />\n {otherCustomizations()}\n {isQueryParamsEnabled && (\n <DynamicQueryParams {...{ updateCustomization }} />\n )}\n </div>\n );\n};\n\nexport default ElementPopup;\n","import { useEffect } from \"react\";\n\nimport {\n Typography,\n Label,\n Input,\n Checkbox,\n Select,\n ColorPicker,\n} from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { FLOATING_BUTTON_POSITIONS } from \"./constants\";\nimport DynamicQueryParams from \"./DynamicQueryParams\";\n\nconst FloatingPopup = ({\n customization,\n updateCustomization,\n isQueryParamsEnabled,\n otherCustomizations,\n}) => {\n const { t } = useTranslation();\n\n const { btnTextColor, showIcon, btnText, btnPosition, btnColor, icon } =\n customization;\n\n useEffect(() => {\n if (isQueryParamsEnabled) return;\n\n updateCustomization({ queryParams: undefined });\n }, []);\n\n return (\n <div className=\"space-y-6\">\n <Typography data-cy=\"popup-customization-header\" style=\"h4\">\n {t(\"neetoMolecules.productEmbed.customization.floatingPopup.title\")}\n </Typography>\n {icon && (\n <Checkbox\n checked={showIcon}\n data-cy=\"show-icon-checkbox\"\n data-testid=\"show-icon-checkbox\"\n label={t(\n \"neetoMolecules.productEmbed.customization.floatingPopup.showCalIcon\"\n )}\n onChange={e => updateCustomization({ showIcon: e.target.checked })}\n />\n )}\n <div className=\"space-y-2\">\n <Input\n data-cy=\"button-text-input-field\"\n data-testid=\"button-text-input-field\"\n value={btnText}\n label={t(\n \"neetoMolecules.productEmbed.customization.floatingPopup.button.text\"\n )}\n onChange={e => updateCustomization({ btnText: e.target.value })}\n />\n </div>\n <div className=\"space-y-2\">\n <Select\n data-cy=\"button-position-select-field\"\n data-testid=\"button-position-select-field\"\n options={FLOATING_BUTTON_POSITIONS}\n value={btnPosition}\n getOptionValue={option =>\n typeof option === \"string\" ? option : option.value\n }\n label={t(\n \"neetoMolecules.productEmbed.customization.floatingPopup.button.pos\"\n )}\n onChange={e => updateCustomization({ btnPosition: e.value })}\n />\n </div>\n <div\n className=\"flex items-center justify-between gap-x-2\"\n data-cy=\"button-color-label\"\n >\n <Label>\n {t(\n \"neetoMolecules.productEmbed.customization.floatingPopup.button.color\"\n )}\n </Label>\n <ColorPicker\n color={btnColor}\n onChange={e => updateCustomization({ btnColor: e.hex })}\n />\n </div>\n <div\n className=\"flex items-center justify-between gap-x-2\"\n data-cy=\"button-text-color-label\"\n >\n <Label>\n {t(\n \"neetoMolecules.productEmbed.customization.floatingPopup.button.textColor\"\n )}\n </Label>\n <ColorPicker\n color={btnTextColor}\n onChange={e => updateCustomization({ btnTextColor: e.hex })}\n />\n </div>\n {otherCustomizations()}\n {isQueryParamsEnabled && (\n <DynamicQueryParams {...{ updateCustomization }} />\n )}\n </div>\n );\n};\n\nexport default FloatingPopup;\n","import { useEffect } from \"react\";\n\nimport { Typography, Input, Label } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DynamicQueryParams from \"./DynamicQueryParams\";\n\nconst Inline = ({\n customization,\n updateCustomization,\n isQueryParamsEnabled,\n otherCustomizations,\n}) => {\n const { height, width, elementSelector } = customization;\n\n const { t } = useTranslation();\n\n const handleInputChange = ({ target: { value } }, attribute) =>\n updateCustomization({ [attribute]: value });\n\n useEffect(() => {\n if (isQueryParamsEnabled) return;\n\n updateCustomization({ queryParams: undefined });\n }, []);\n\n return (\n <div className=\"flex flex-col gap-y-6\">\n <Typography data-cy=\"customization-text\" style=\"h4\">\n {t(\"neetoMolecules.productEmbed.customization.inline.title\")}\n </Typography>\n <div className=\"flex flex-col gap-2\">\n <Label data-cy=\"window-size-text\">\n {t(\n \"neetoMolecules.productEmbed.customization.inline.sizeOfEmbedWindow\"\n )}\n </Label>\n <div className=\"flex justify-between gap-x-2\">\n <Input\n className=\"neeto-molecules-product-embed-size-input\"\n data-cy=\"inline-width-input-field\"\n data-testid=\"inline-width-input-field\"\n max={100}\n min={0}\n prefix=\"W\"\n suffix=\"%\"\n type=\"number\"\n value={width}\n onChange={e => handleInputChange(e, \"width\")}\n />\n <Input\n className=\"neeto-molecules-product-embed-size-input\"\n data-cy=\"inline-height-input-field\"\n data-testid=\"inline-height-input-field\"\n max={100}\n min={0}\n prefix=\"H\"\n suffix=\"%\"\n type=\"number\"\n value={height}\n onChange={e => handleInputChange(e, \"height\")}\n />\n </div>\n </div>\n <div className=\"flex flex-col gap-2\">\n <Label data-cy=\"inline-element-id-input-label\">\n {t(\"neetoMolecules.productEmbed.customization.inline.elementId\")}\n </Label>\n <Input\n data-cy=\"inline-element-id-input-field\"\n data-testid=\"inline-element-id-input-field\"\n value={elementSelector}\n onChange={e => handleInputChange(e, \"elementSelector\")}\n />\n </div>\n {otherCustomizations()}\n {isQueryParamsEnabled && (\n <DynamicQueryParams {...{ updateCustomization }} />\n )}\n </div>\n );\n};\n\nexport default Inline;\n","import ElementPopup from \"./ElementPopup\";\nimport FloatingPopup from \"./FloatingPopup\";\nimport Inline from \"./Inline\";\n\nimport { EMBED_OPTIONS } from \"../constants\";\n\nconst Customization = ({\n option,\n customization,\n updateCustomization,\n isQueryParamsEnabled,\n otherCustomizations,\n}) => {\n const type = {\n [EMBED_OPTIONS.INLINE]: Inline,\n [EMBED_OPTIONS.FLOATING_POPUP]: FloatingPopup,\n [EMBED_OPTIONS.ELEMENT_POPUP]: ElementPopup,\n };\n const Component = type[option];\n\n return (\n <Component\n {...{\n customization,\n isQueryParamsEnabled,\n otherCustomizations,\n updateCustomization,\n }}\n />\n );\n};\n\nexport default Customization;\n","import { Tab } from \"neetoui\";\n\nconst Header = ({ supportedLanguagesTabs, setTab, tab }) => (\n <div className=\"flex w-full\">\n <Tab noUnderline className=\"neeto-molecules-product-embed-tab\">\n {supportedLanguagesTabs.map(({ key, label, icon }) => (\n <Tab.Item\n {...{ icon }}\n active={tab === key}\n data-cy={`${key}-tab`}\n data-testid={`${key}-tab`}\n key={key}\n onClick={() => setTab(key)}\n >\n {label}\n </Tab.Item>\n ))}\n </Tab>\n </div>\n);\n\nexport default Header;\n","import { Radio, Typography } from \"neetoui\";\n\nconst Options = ({ options, selectedOption, setSelectedOption }) => (\n <Radio\n stacked\n containerClassName=\"w-full flex flex-col gap-y-4\"\n name=\"options\"\n >\n {Object.entries(options).map(([key, { label, description }]) => (\n <label\n className=\"neeto-ui-border-gray-300 neeto-ui-bg-white neeto-ui-rounded-lg w-full cursor-pointer border p-4\"\n data-cy={`${key}-embed-option-label`}\n data-testid={`${key}-embed-option-label`}\n htmlFor={key}\n key={key}\n >\n <div className=\"flex items-center\">\n <Radio.Item\n {...{ label }}\n checked={key === selectedOption}\n className=\"mb-0\"\n data-cy={`${key}-embed-radio-button`}\n data-testid={`${key}-embed-radio-button`}\n id={key}\n name=\"options\"\n value={key}\n onChange={event => setSelectedOption(event.target.value)}\n />\n </div>\n <Typography\n className=\"w-full pl-6 pt-1\"\n data-cy={`${key}-embed-option-description`}\n style=\"body2\"\n >\n {description}\n </Typography>\n </label>\n ))}\n </Radio>\n);\n\nexport default Options;\n","import { useEffect } from \"react\";\n\nimport { Button } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ElementPopup = ({ iframeURL, customization }) => {\n const { t } = useTranslation();\n\n const { elementSelector } = customization;\n\n useEffect(() => {\n const element = document.getElementById(elementSelector);\n if (element) {\n window[globalProps.appName.replace(/^neeto/i, \"neeto\")]?.embed(\n element,\n iframeURL\n );\n }\n }, []);\n\n return (\n <div className=\"relative flex h-full w-full items-center justify-center p-6\">\n <Button\n data-cy=\"preview-element-popup-button\"\n data-testid=\"preview-element-popup-button\"\n id={elementSelector}\n label={t(\n \"neetoMolecules.productEmbed.customization.elementPopup.label\"\n )}\n />\n </div>\n );\n};\n\nexport default ElementPopup;\n","import { useEffect } from \"react\";\n\nimport classNames from \"classnames\";\nimport { Button } from \"neetoui\";\n\nconst FloatingPopup = ({ iframeURL, customization }) => {\n const { btnTextColor, showIcon, btnText, btnPosition, btnColor, icon } =\n customization;\n\n useEffect(() => {\n const btn = document.getElementById(\"embedBtn\");\n window[globalProps.appName.replace(/^neeto/i, \"neeto\")]?.embed(\n btn,\n iframeURL\n );\n }, []);\n\n useEffect(() => {\n const btn = document.getElementById(\"embedBtn\");\n btn.style.backgroundColor = btnColor;\n btn.style.color = btnTextColor;\n }, [btnColor, btnTextColor]);\n\n return (\n <div className=\"relative h-full w-full\">\n <Button\n data-cy=\"popup-preview-button\"\n icon={icon && showIcon ? icon : null}\n iconPosition=\"left\"\n id=\"embedBtn\"\n label={btnText}\n className={classNames(\"absolute bottom-0 m-4\", {\n \"left-0\": btnPosition === \"bottomLeft\",\n \"right-0\": btnPosition === \"bottomRight\",\n })}\n />\n </div>\n );\n};\n\nexport default FloatingPopup;\n","const Inline = ({ iframeURL, customization }) => {\n const { height, width } = customization;\n\n return (\n <iframe\n className=\"m-auto\"\n height={`${height}%`}\n src={iframeURL}\n width={`${width}%`}\n />\n );\n};\n\nexport default Inline;\n","import { Spinner } from \"neetoui\";\n\nimport BrowserPreview from \"components/BrowserPreview\";\n\nimport ElementPopup from \"./ElementPopup\";\nimport FloatingPopup from \"./FloatingPopup\";\nimport Inline from \"./Inline\";\n\nimport { EMBED_OPTIONS } from \"../constants\";\n\nconst Preview = ({\n isScriptLoading,\n selectedOption,\n id,\n customization,\n customPreviewIframeUrl = \"\",\n}) => {\n const preview = {\n [EMBED_OPTIONS.INLINE]: Inline,\n [EMBED_OPTIONS.FLOATING_POPUP]: FloatingPopup,\n [EMBED_OPTIONS.ELEMENT_POPUP]: ElementPopup,\n };\n\n const iframeURL = customPreviewIframeUrl || `${location.origin}/embed/${id}`;\n const Component = preview[selectedOption];\n\n if (isScriptLoading) {\n return (\n <div className=\"flex min-h-0 flex-grow items-center justify-center overflow-y-auto\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <BrowserPreview\n className=\"h-full\"\n wrapperClassName=\"neeto-molecules-embed__browser-preview pointer-events-auto\"\n >\n <Component {...{ customization, iframeURL }} />\n </BrowserPreview>\n );\n};\n\nexport default Preview;\n","import { useEffect, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { noop, filterBy } from \"neetocist\";\nimport { LeftArrow } from \"neetoicons\";\nimport { Button, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { mergeLeft } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Code from \"./Code\";\nimport { EMBED_OPTIONS, SCRIPT_ID, TABS } from \"./constants\";\nimport Customization from \"./Customization\";\nimport Header from \"./Header\";\nimport Options from \"./Options\";\nimport Preview from \"./Preview\";\nimport \"./product-embed.scss\";\nimport { buildDefaultCustomization, generateCode } from \"./utils\";\n\nconst ProductEmbed = ({\n className = \"\",\n customEmbedScriptPath = \"\",\n customPreviewIframeUrl = \"\",\n goBackLink = \"\",\n id,\n isQueryParamsEnabled = false,\n options = {},\n extraArgs = {},\n otherCustomizations = noop,\n inlineWrapperStyle = \"\",\n supportedLanguages = [\"html\"],\n}) => {\n const supportedLanguagesTabs = filterBy(\n { key: key => supportedLanguages?.includes(key) },\n TABS\n );\n const [isScriptLoading, setIsScriptLoading] = useState(true);\n const [tab, setTab] = useState(supportedLanguagesTabs[0].key);\n const [selectedOption, setSelectedOption] = useState(EMBED_OPTIONS.INLINE);\n const [customizations, setCustomizations] = useState(() =>\n buildDefaultCustomization(options)\n );\n\n const { t } = useTranslation();\n\n const embedScriptLink =\n customEmbedScriptPath ||\n `${window.location.protocol}//${window.location.host}/javascript/embed.js`;\n\n const code = generateCode({\n id,\n tab,\n type: selectedOption,\n customization: customizations[selectedOption],\n embedScriptLink,\n extraArgs,\n inlineWrapperStyle,\n });\n\n const loadScript = () => {\n const script = document.createElement(\"script\");\n script.id = SCRIPT_ID;\n script.src = embedScriptLink;\n document.head.appendChild(script);\n setIsScriptLoading(false);\n };\n\n const updateCustomization = props =>\n setCustomizations(prevState => ({\n ...prevState,\n [selectedOption]: mergeLeft(props, prevState[selectedOption]),\n }));\n\n useEffect(() => {\n const isScriptLoaded = document.getElementById(SCRIPT_ID);\n if (isScriptLoaded) setIsScriptLoading(false);\n else loadScript();\n }, []);\n\n return (\n <div\n data-testid=\"embed-product\"\n className={classNames(\n \"neeto-molecules-embed flex w-full flex-grow flex-col md:flex-row\",\n className\n )}\n >\n <div className=\"neeto-molecules-embed__left-sidebar\">\n {goBackLink && (\n <Button\n className=\"mb-4\"\n data-cy=\"back-button\"\n data-testid=\"back-button\"\n icon={LeftArrow}\n iconPosition=\"left\"\n label={t(\"neetoMolecules.productEmbed.backToShare\")}\n size=\"small\"\n style=\"link\"\n to={goBackLink}\n />\n )}\n <Typography data-cy=\"embed-options-header-title\" style=\"h3\">\n {t(\"neetoMolecules.productEmbed.embedOptions.title\")}\n </Typography>\n <div className=\"mt-6 flex w-full flex-col gap-y-6 md:pb-20\">\n <Options {...{ options, selectedOption, setSelectedOption }} />\n <Customization\n {...{\n isQueryParamsEnabled,\n otherCustomizations,\n updateCustomization,\n }}\n customization={customizations[selectedOption]}\n option={selectedOption}\n />\n </div>\n </div>\n <div className=\"neeto-molecules-embed__preview neeto-ui-bg-white flex min-h-screen w-full min-w-0 flex-col gap-3 overflow-y-auto p-6 md:min-h-0 md:flex-grow\">\n <Header {...{ setTab, supportedLanguagesTabs, tab }} />\n <div className=\"flex min-h-0 flex-grow flex-col gap-3\">\n <div className=\"flex-shrink-0\" data-testid=\"embed-code-block\">\n <Code {...{ code, tab }} />\n </div>\n <div className=\"flex-grow\">\n <Preview\n {...{\n customPreviewIframeUrl,\n id,\n isScriptLoading,\n selectedOption,\n }}\n customization={customizations[selectedOption]}\n />\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nProductEmbed.propTypes = {\n /**\n * To set custom classNames. (optional)\n */\n className: PropTypes.string,\n /**\n * To use a different embed script. Uses /javascript/embed.js by default. (optional)\n */\n customEmbedScriptPath: PropTypes.string,\n /**\n * To use a different iframeUrl in Product embed preview. Uses /embed/${id} by default. (optional)\n */\n customPreviewIframeUrl: PropTypes.string,\n /**\n * To specify extra arguments to pass to the embed script. (optional)\n */\n extraArgs: PropTypes.object,\n /**\n * To show the 'Back to share' button. (optional)\n */\n goBackLink: PropTypes.string,\n /**\n * To specify the entity ID.\n */\n id: PropTypes.string,\n /**\n * To specify the Embed options for the product.\n */\n options: PropTypes.shape({\n inline: PropTypes.shape({\n label: PropTypes.string,\n description: PropTypes.string,\n width: PropTypes.number,\n height: PropTypes.number,\n elementSelector: PropTypes.string,\n }),\n floatingPopup: PropTypes.shape({\n label: PropTypes.string,\n description: PropTypes.string,\n btnTextColor: PropTypes.string,\n btnText: PropTypes.string,\n btnPosition: PropTypes.string,\n btnColor: PropTypes.string,\n icon: PropTypes.func,\n showIcon: PropTypes.bool,\n }),\n elementPopup: PropTypes.shape({\n label: PropTypes.string,\n description: PropTypes.string,\n elementSelector: PropTypes.string,\n }),\n }),\n /**\n * To enable query parameters\n */\n isQueryParamsEnabled: PropTypes.bool,\n /**\n * To add other customization fields to all the embed options\n */\n otherCustomizations: PropTypes.func,\n /**\n * To override the styles of inline embed wrapper div\n */\n inlineWrapperStyle: PropTypes.string,\n /**\n * To specifies the supported languages, currently limited to `html` and `react`.\n */\n supportedLanguages: PropTypes.arrayOf(PropTypes.oneOf([\"html\", \"react\"])),\n};\n\nexport default ProductEmbed;\n"],"names":["Code","_ref","code","tab","_jsx","className","concat","children","Codeblock","TAB_KEYS","HTML","REACT","TABS","key","label","t","icon","EMBED_OPTIONS","INLINE","FLOATING_POPUP","ELEMENT_POPUP","DEFAULT_CUSTOMIZATION","_defineProperty","width","height","elementSelector","showIcon","btnText","btnColor","btnTextColor","btnPosition","SCRIPT_ID","TAB_STRING","FLOATING_BUTTON_POSITIONS","value","INITIAL_QUERY_PARAM","name","camelCasedAppName","globalProps","appName","replace","embedBaseScript","embedScriptLink","embedEnv","railsEnv","embedQueryParam","queryParams","parseExtraArgs","extraArgs","toPairs","map","_ref2","_slicedToArray","inlineEmbedCode","_ref3","customization","id","inlineWrapperStyle","_customization$width","_customization$height","organization","subdomain","floatingPopupEmbedCode","_ref4","elementPopupEmbedCode","_ref5","htmlCodeGenerators","inline","floatingPopup","elementPopup","embedFunctionName","baseScript","embedScript","scriptLink","cleanupFunction","parseInlineStyle","styleString","split","rule","_rule$split$map","s","trim","_rule$split$map2","filter","Boolean","join","reactCodeGenerators","generateCode","options","_reactCodeGenerators$","_htmlCodeGenerators$t","type","embeddedCodeOptions","_objectWithoutProperties","_excluded","call","buildDefaultCustomization","defaultCustomizations","mergeDeepLeft","buildQueryParamsFromInputFields","inputFields","filteredInputFields","reduce","isEmpty","queryParamJsonString","JSON","stringify","DynamicQueryParams","updateCustomization","_useTranslation","useTranslation","_useState","useState","_useState2","setQueryParams","handleAddQueryParam","_toConsumableArray","handleRemoveQueryParam","index","newQueryParams","_","i","handleInputChange","field","param","_objectSpread","useEffect","_jsxs","Label","Input","placeholder","onChange","e","target","Button","Delete","style","onClick","Plus","iconPosition","ElementPopup","isQueryParamsEnabled","otherCustomizations","undefined","Typography","Callout","error","FloatingPopup","Checkbox","checked","Select","getOptionValue","option","ColorPicker","color","hex","Inline","attribute","max","min","prefix","suffix","Customization","Component","Header","supportedLanguagesTabs","setTab","Tab","noUnderline","_createElement","Item","active","Options","selectedOption","setSelectedOption","Radio","stacked","containerClassName","Object","entries","_ref3$","description","htmlFor","event","iframeURL","element","document","getElementById","_window$globalProps$a","window","embed","btn","backgroundColor","classNames","src","Preview","isScriptLoading","_ref$customPreviewIfr","customPreviewIframeUrl","preview","location","origin","Spinner","BrowserPreview","wrapperClassName","ProductEmbed","_ref$className","_ref$customEmbedScrip","customEmbedScriptPath","_ref$goBackLink","goBackLink","_ref$isQueryParamsEna","_ref$options","_ref$extraArgs","_ref$otherCustomizati","noop","_ref$inlineWrapperSty","_ref$supportedLanguag","supportedLanguages","filterBy","includes","setIsScriptLoading","_useState3","_useState4","_useState5","_useState6","_useState7","_useState8","customizations","setCustomizations","protocol","host","loadScript","script","createElement","head","appendChild","props","prevState","mergeLeft","isScriptLoaded","LeftArrow","size","to"],"mappings":"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"}
package/dist/Sidebar.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
2
  import { memo, useState, Fragment, useEffect, useMemo } from 'react';
3
3
  import classnames from 'classnames';
4
- import { capitalize, isPresent, hyphenate, isNotPresent, isNotEmpty, findBy } from '@bigbinary/neeto-cist';
4
+ import { capitalize, isPresent, hyphenate, isNotEmpty, findBy } from '@bigbinary/neeto-cist';
5
5
  import useFetchNeetoApps from '@bigbinary/neeto-commons-frontend/react-utils/useFetchNeetoApps';
6
6
  import useLocalStorage from '@bigbinary/neeto-commons-frontend/react-utils/useLocalStorage';
7
7
  import { buildUrl } from '@bigbinary/neeto-commons-frontend/utils';
@@ -13,7 +13,7 @@ import { Link, useLocation, useHistory } from 'react-router-dom';
13
13
  import { f as filterByPermissions, a as CheckPointNavLinks, _ as _Items, b as SELECTED_NAV_LINK_ROUTE_STORAGE_KEY, g as getSidebarStateLocalStorageKey, D as DEFAULT_HOME_PATH, S as SelectedLink, C as Chevron, c as getActiveConfigurePageLink } from './Chevron-DfSoxXBs.js';
14
14
  import Neeto from '@bigbinary/neeto-icons/typeface-logos/Neeto';
15
15
  import * as AppIcons from '@bigbinary/neeto-icons/typeface-logos';
16
- import { jsx, jsxs } from 'react/jsx-runtime';
16
+ import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
17
17
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
18
18
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
19
19
  import Down from '@bigbinary/neeto-icons/Down';
@@ -50,7 +50,7 @@ var Header = function Header(_ref) {
50
50
  };
51
51
  var Header$1 = /*#__PURE__*/memo(Header);
52
52
 
53
- var _excluded = ["label", "to", "icon", "items", "isConfigureNavLink", "isCountsLoading", "count"];
53
+ var _excluded = ["label", "to", "icon", "items", "isConfigureNavLink", "isCountsLoading", "count", "component"];
54
54
  function ownKeys(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; }
55
55
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
56
56
  var renderCount = function renderCount(count) {
@@ -68,9 +68,9 @@ var Links = function Links(_ref) {
68
68
  var handleNavLinkClick = function handleNavLinkClick(_ref2) {
69
69
  var event = _ref2.event,
70
70
  isActive = _ref2.isActive,
71
- items = _ref2.items,
72
71
  navLink = _ref2.navLink;
73
- if (isNotPresent(items)) return;
72
+ var isExpandable = isPresent(navLink.items) || isPresent(navLink.component);
73
+ if (!isExpandable) return;
74
74
  if (navLink.isConfigureNavLink && isNotEmpty(navLink.items)) {
75
75
  setSelectedNavLinkRoute(navLink.to);
76
76
  }
@@ -93,12 +93,14 @@ var Links = function Links(_ref) {
93
93
  isCountsLoading = _navLink$isCountsLoad === void 0 ? false : _navLink$isCountsLoad,
94
94
  _navLink$count = navLink.count,
95
95
  count = _navLink$count === void 0 ? null : _navLink$count,
96
+ Component = navLink.component,
96
97
  otherProps = _objectWithoutProperties(navLink, _excluded);
97
98
  var IconSVG = icon;
98
99
  var url = new URL(to, window.location.href);
99
100
  var isActive = function isActive() {
100
101
  return is(Function, otherProps.isActive) ? otherProps.isActive() : location.pathname.startsWith(url.pathname);
101
102
  };
103
+ var isExpandable = items || Component;
102
104
  var isMenuExpanded = isActive() && isActiveLinkExpanded && !isCountsLoadingDeprecated;
103
105
  return /*#__PURE__*/jsxs(Fragment, {
104
106
  children: [/*#__PURE__*/jsxs(CheckPointNavLinks, _objectSpread(_objectSpread({
@@ -109,7 +111,6 @@ var Links = function Links(_ref) {
109
111
  return handleNavLinkClick({
110
112
  event: event,
111
113
  isActive: isActive,
112
- items: items,
113
114
  navLink: navLink
114
115
  });
115
116
  }
@@ -129,7 +130,7 @@ var Links = function Links(_ref) {
129
130
  component: "span",
130
131
  style: "body2",
131
132
  children: label
132
- }), items && !isConfigureNavLink && /*#__PURE__*/jsx("span", {
133
+ }), isExpandable && !isConfigureNavLink && /*#__PURE__*/jsx("span", {
133
134
  className: classnames("neeto-molecules-sidebar__link-icon neeto-molecules-sidebar__link-icon--caret", {
134
135
  "neeto-molecules-sidebar__link-icon--rotate": isMenuExpanded
135
136
  }),
@@ -137,10 +138,14 @@ var Links = function Links(_ref) {
137
138
  size: 16
138
139
  })
139
140
  })]
140
- })), items && !isConfigureNavLink && isMenuExpanded && /*#__PURE__*/jsx(_Items, _objectSpread({}, _objectSpread({
141
- isCountsLoading: isCountsLoading,
142
- items: items
143
- }, otherProps)))]
141
+ })), isExpandable && !isConfigureNavLink && isMenuExpanded && /*#__PURE__*/jsxs(Fragment$1, {
142
+ children: [items && /*#__PURE__*/jsx(_Items, _objectSpread({}, _objectSpread({
143
+ isCountsLoading: isCountsLoading,
144
+ items: items
145
+ }, otherProps))), Component && /*#__PURE__*/jsx(Component, {
146
+ navLink: navLink
147
+ })]
148
+ })]
144
149
  }, navLink.key || index);
145
150
  })
146
151
  });