@bigbinary/neeto-molecules 5.3.28 → 5.3.30

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.
Files changed (33) hide show
  1. package/dist/FloatingActionMenu.js +1 -1
  2. package/dist/Sidebar.js +2 -2
  3. package/dist/Sidebar.js.map +1 -1
  4. package/dist/StickyRibbonsContainer.js +27 -18
  5. package/dist/StickyRibbonsContainer.js.map +1 -1
  6. package/dist/cjs/FloatingActionMenu.js +1 -1
  7. package/dist/cjs/Sidebar.js +2 -2
  8. package/dist/cjs/Sidebar.js.map +1 -1
  9. package/dist/cjs/StickyRibbonsContainer.js +29 -20
  10. package/dist/cjs/StickyRibbonsContainer.js.map +1 -1
  11. package/dist/cjs/{useWhatsNewChangesCount-C9DSz8TY.js → useWhatsNewChangesCount-BzQTamII.js} +6 -12
  12. package/dist/cjs/useWhatsNewChangesCount-BzQTamII.js.map +1 -0
  13. package/dist/cjs/{useWhatsNewChangesCount-Bx_vHoMO.js → useWhatsNewChangesCount-CLo5AJny.js} +6 -12
  14. package/dist/cjs/useWhatsNewChangesCount-CLo5AJny.js.map +1 -0
  15. package/dist/cjs/v2/FloatingActionMenu.js +1 -1
  16. package/dist/cjs/v2/Sidebar.js +2 -2
  17. package/dist/cjs/v2/Sidebar.js.map +1 -1
  18. package/dist/cjs/v2/StickyRibbonsContainer.js +29 -19
  19. package/dist/cjs/v2/StickyRibbonsContainer.js.map +1 -1
  20. package/dist/{useWhatsNewChangesCount-Cy7rXdSf.js → useWhatsNewChangesCount-BaLLrXk5.js} +6 -12
  21. package/dist/useWhatsNewChangesCount-BaLLrXk5.js.map +1 -0
  22. package/dist/{useWhatsNewChangesCount-5ChErwhP.js → useWhatsNewChangesCount-DLIMw7dA.js} +6 -12
  23. package/dist/useWhatsNewChangesCount-DLIMw7dA.js.map +1 -0
  24. package/dist/v2/FloatingActionMenu.js +1 -1
  25. package/dist/v2/Sidebar.js +2 -2
  26. package/dist/v2/Sidebar.js.map +1 -1
  27. package/dist/v2/StickyRibbonsContainer.js +27 -17
  28. package/dist/v2/StickyRibbonsContainer.js.map +1 -1
  29. package/package.json +1 -1
  30. package/dist/cjs/useWhatsNewChangesCount-Bx_vHoMO.js.map +0 -1
  31. package/dist/cjs/useWhatsNewChangesCount-C9DSz8TY.js.map +0 -1
  32. package/dist/useWhatsNewChangesCount-5ChErwhP.js.map +0 -1
  33. package/dist/useWhatsNewChangesCount-Cy7rXdSf.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWhatsNewChangesCount-CLo5AJny.js","sources":["../../src/v2/components/FloatingActionMenu/constants.js","../../src/v2/components/FloatingActionMenu/hooks/useWhatsNewChangesCount.js"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const MY_ORGANIZATION_URL = \"/auth/organization/edit\";\nexport const BILLING_URL = \"/auth/admin_billing\";\nexport const DELETE_WORKSPACE_URL = \"/auth/organization/delete\";\nexport const ENGAGE_WIDGET_TRIGGER_ID = \"neetoengage-trigger\";\n\nexport const DEFAULT_MENU_LINK_PROPS = {\n engageProps: {\n id: ENGAGE_WIDGET_TRIGGER_ID,\n label: t(\"neetoMolecules.sidebar.helpLinks.whatsNew\"),\n \"data-testid\": \"help-link-engage-button\",\n },\n keyboardShortcutProps: {\n label: t(\"neetoMolecules.sidebar.helpLinks.keyboardShortcuts\"),\n \"data-testid\": \"help-link-keyboard-shortcut-button\",\n },\n};\n\n// Theme switcher\nexport const APP_THEME_LOCALSTORAGE_KEY = \"appTheme\";\n\nexport const THEMES = { LIGHT: \"light\", DARK: \"dark\" };\n\n// Legacy neetoUI theme classes — kept until full migration is complete.\nexport const LEGACY_THEMES = {\n LIGHT: \"neeto-ui-theme--light\",\n DARK: \"neeto-ui-theme--dark\",\n};\n\nexport const NEETO_AUTH_BILLING_INFO_URL =\n \"/neeto_sso/api/v1/subscription/billing\";\n\nexport const MENU_ITEM_CLASSES =\n \"gap-2.5 px-2.5 py-2 font-medium [&>[data-slot=menu-item-prefix]>svg]:!size-[18px] [&>[data-slot=menu-item-suffix]>svg]:!size-[18px]\";\n\nexport const THEME_BUTTON_BASE =\n \"relative z-10 flex items-center justify-center gap-1 rounded-md px-2.5 py-1.5 text-xs font-medium transition-colors focus-visible:outline-none\";\n\nexport const THEME_ICON_BASE = \"transition-transform duration-300 ease-out\";\n","import { useEffect, useState } from \"react\";\n\n// Shared source of truth for the neetoEngage changelog unread count.\n//\n// The widget reports the count by calling `window.Nv.onReceiveData({ unreadCount })`\n// whenever it changes (on load and each time entries are marked read). Opening\n// the widget doesn't clear it: the count only drops as entries are read. Both the FloatingActionMenu and the\n// Sidebar surface this count, so this module installs a SINGLE set of\n// `window.Nv` handlers (chaining onto any pre-existing ones) and fans the value\n// out to every subscribed component. Installation happens on the first\n// subscriber and is torn down only when the last one unsubscribes — so\n// interleaved mount/unmount of the two surfaces can never leave a stale handler\n// on the global object.\n\nlet currentCount = null;\nconst subscribers = new Set();\nlet isInstalled = false;\nlet previousOnReceiveData;\n\nconst notify = () => subscribers.forEach(setCount => setCount(currentCount));\n\nconst install = () => {\n if (isInstalled) return;\n isInstalled = true;\n\n const existing = window.Nv || {};\n previousOnReceiveData = existing.onReceiveData;\n\n window.Nv = Object.assign(existing, {\n onReceiveData: data => {\n previousOnReceiveData?.(data);\n // Only react to a numeric unreadCount; `0` clears the badge (a non-zero\n // count would otherwise stay stale until the pane is opened).\n if (typeof data?.unreadCount === \"number\") {\n currentCount = data.unreadCount || null;\n notify();\n }\n },\n });\n};\n\nconst uninstall = () => {\n if (!isInstalled) return;\n isInstalled = false;\n\n if (window.Nv) {\n window.Nv.onReceiveData = previousOnReceiveData;\n }\n // currentCount is kept: the widget only reports it on page load and after a\n // \"Mark as read\", so a surface that remounts (e.g. after navigating to a page\n // without a sidebar and back) would otherwise lose it until a full reload.\n};\n\nconst useWhatsNewChangesCount = () => {\n const [changesCount, setChangesCount] = useState(currentCount);\n\n useEffect(() => {\n install();\n subscribers.add(setChangesCount);\n setChangesCount(currentCount);\n\n return () => {\n subscribers.delete(setChangesCount);\n if (subscribers.size === 0) uninstall();\n };\n }, []);\n\n return changesCount;\n};\n\nexport default useWhatsNewChangesCount;\n"],"names":["MY_ORGANIZATION_URL","BILLING_URL","DELETE_WORKSPACE_URL","ENGAGE_WIDGET_TRIGGER_ID","DEFAULT_MENU_LINK_PROPS","engageProps","id","label","t","keyboardShortcutProps","APP_THEME_LOCALSTORAGE_KEY","THEMES","LIGHT","DARK","LEGACY_THEMES","NEETO_AUTH_BILLING_INFO_URL","MENU_ITEM_CLASSES","THEME_BUTTON_BASE","THEME_ICON_BASE","currentCount","subscribers","Set","isInstalled","previousOnReceiveData","notify","forEach","setCount","install","existing","window","Nv","onReceiveData","Object","assign","data","_previousOnReceiveDat","unreadCount","uninstall","useWhatsNewChangesCount","_useState","useState","_useState2","_slicedToArray","changesCount","setChangesCount","useEffect","add","size"],"mappings":"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"}
@@ -25,7 +25,7 @@ var axios = require('axios');
25
25
  var search = require('../search-DoXqXFel.js');
26
26
  var urls = require('../urls-DtjJggEY.js');
27
27
  var useBreakpoints = require('@bigbinary/neeto-commons-frontend/v2/react-utils/useBreakpoints');
28
- var useWhatsNewChangesCount = require('../useWhatsNewChangesCount-Bx_vHoMO.js');
28
+ var useWhatsNewChangesCount = require('../useWhatsNewChangesCount-CLo5AJny.js');
29
29
  var createLucideIcon = require('../createLucideIcon-BbuuRL2u.js');
30
30
  var circleQuestionMark = require('../circle-question-mark-BijjM_4y.js');
31
31
  var chevronRight = require('../chevron-right-BVivH_B-.js');
@@ -19,7 +19,7 @@ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProp
19
19
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
20
20
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
21
21
  var neetoAtoms = require('@bigbinary/neeto-atoms');
22
- var useWhatsNewChangesCount = require('../useWhatsNewChangesCount-Bx_vHoMO.js');
22
+ var useWhatsNewChangesCount = require('../useWhatsNewChangesCount-CLo5AJny.js');
23
23
  var plus = require('../plus-B3N_9NiI.js');
24
24
  var ellipsis = require('../ellipsis-DDma6joP.js');
25
25
  var chevronRight = require('../chevron-right-BVivH_B-.js');
@@ -349,7 +349,7 @@ var NavLinks = function NavLinks(_ref) {
349
349
  "data-testid": "sidebar-whats-new-count"
350
350
  }
351
351
  });
352
- var combinedNavLinks = [].concat(_toConsumableArray(showWhatsNew ? [whatsNewNavLink] : []), _toConsumableArray(navLinks), _toConsumableArray(additionalItems));
352
+ var combinedNavLinks = [].concat(_toConsumableArray(showWhatsNew && neetoCist.isPresent(whatsNewCount) ? [whatsNewNavLink] : []), _toConsumableArray(navLinks), _toConsumableArray(additionalItems));
353
353
  return /*#__PURE__*/jsxRuntime.jsx(primitives.SidebarGroup, {
354
354
  children: /*#__PURE__*/jsxRuntime.jsx(primitives.SidebarGroupContent, {
355
355
  children: /*#__PURE__*/jsxRuntime.jsxs(primitives.SidebarMenu, {
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/megaphone.mjs","../../../src/v2/components/Sidebar/Components/Header.jsx","../../../src/v2/components/Sidebar/Components/AddAction.jsx","../../../src/v2/components/Sidebar/Components/PinIcon.jsx","../../../src/v2/components/Sidebar/Components/UnpinIcon.jsx","../../../src/v2/components/Sidebar/Components/MoreDropdown.jsx","../../../src/v2/components/Sidebar/Components/NavLinks.jsx","../../../src/v2/components/Sidebar/index.jsx"],"sourcesContent":["/**\n * @license lucide-react v1.24.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z\",\n key: \"q8bfy3\"\n }\n ],\n [\"path\", { d: \"M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14\", key: \"1853fq\" }],\n [\"path\", { d: \"M8 6v8\", key: \"15ugcq\" }]\n];\nconst Megaphone = createLucideIcon(\"megaphone\", __iconNode);\n\nexport { __iconNode, Megaphone as default };\n//# sourceMappingURL=megaphone.mjs.map\n","import { memo } from \"react\";\n\nimport classnames from \"classnames\";\nimport { capitalize } from \"neetocist\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport { Neeto } from \"neetoicons/typeface-logos\";\nimport * as ProductTypefaceLogos from \"neetoicons/typeface-logos\";\nimport { Link } from \"react-router-dom\";\n\nimport { DEFAULT_HOME_PATH, SPECIAL_APP_NAMES } from \"../constants\";\n\nconst Header = ({ customLogo, clearSettingsNav }) => {\n const productName = globalProps.appName.substr(5);\n const normalizedName = (productName || \"\").trim().toLowerCase();\n const specialCase = SPECIAL_APP_NAMES[normalizedName];\n const logoName = specialCase\n ? `Neeto${specialCase}`\n : `Neeto${capitalize(normalizedName)}`;\n const ProductTypefaceLogo = ProductTypefaceLogos[logoName] ?? Neeto;\n const LogoComponent = customLogo ?? ProductTypefaceLogo;\n const isOnboarded = globalProps.user.isOnboarded !== false;\n\n return (\n <div className=\"px-4 py-3\" data-testid=\"sidebar-info\">\n <Link\n to={DEFAULT_HOME_PATH}\n className={classnames(\"mt-2 block w-full py-2\", {\n \"cursor-pointer\": isOnboarded,\n \"pointer-events-none\": !isOnboarded,\n })}\n onClick={clearSettingsNav}\n >\n {globalProps.sidebarTitle ? (\n <span className=\"text-sidebar-foreground text-xl leading-9 font-bold\">\n {globalProps.sidebarTitle}\n </span>\n ) : (\n <LogoComponent className=\"h-9 w-auto max-w-full\" />\n )}\n </Link>\n </div>\n );\n};\n\nexport default memo(Header);\n","import { DropdownMenu } from \"@bigbinary/neeto-atoms\";\nimport { Plus } from \"lucide-react\";\n\nconst AddAction = ({ actions }) => (\n <DropdownMenu\n dropdownProps={{ align: \"end\", side: \"bottom\" }}\n customTarget={\n <span\n className=\"text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-sidebar-ring md:data-[state=open]:bg-sidebar-accent flex aspect-square w-5 shrink-0 cursor-pointer items-center justify-center rounded-md outline-hidden focus-visible:ring-2 md:opacity-0 md:group-focus-within/menu-item:opacity-100 md:group-hover/menu-item:opacity-100 md:data-[state=open]:opacity-100\"\n data-testid=\"add-dropdown-trigger\"\n role=\"button\"\n tabIndex={0}\n onClick={e => {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n <Plus className=\"size-4\" />\n </span>\n }\n >\n {actions.map(action => (\n <DropdownMenu.MenuItem\n key={action.key}\n onClick={() => {\n action.onClick?.();\n }}\n >\n {action.label}\n </DropdownMenu.MenuItem>\n ))}\n </DropdownMenu>\n);\n\nexport default AddAction;\n","const PinIcon = ({ size, otherProps }) => (\n <svg\n fill=\"currentColor\"\n height={size}\n viewBox=\"0 -960 960 960\"\n width={size}\n xmlns=\"http://www.w3.org/2000/svg\"\n {...otherProps}\n >\n <path d=\"m640-480 80 80v80H520v240l-40 40-40-40v-240H240v-80l80-80v-280h-40v-80h400v80h-40zm-286 80h252l-46-46v-314H400v314zm126 0\" />\n </svg>\n);\n\nexport default PinIcon;\n","const UnpinIcon = ({ size, otherProps }) => (\n <svg\n fill=\"currentColor\"\n height={size}\n viewBox=\"0 -960 960 960\"\n width={size}\n xmlns=\"http://www.w3.org/2000/svg\"\n {...otherProps}\n >\n <path d=\"m640-480 80 80v80H520v240l-40 40-40-40v-240H240v-80l80-80v-280h-40v-80h400v80h-40z\" />\n </svg>\n);\n\nexport default UnpinIcon;\n","import { Badge, Button, DropdownMenu, Tooltip } from \"@bigbinary/neeto-atoms\";\nimport { SidebarMenuItem } from \"@bigbinary/neeto-atoms/primitives\";\nimport { Ellipsis } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CheckPointNavLinks from \"./CheckPointNavLink\";\nimport PinIcon from \"./PinIcon\";\nimport UnpinIcon from \"./UnpinIcon\";\n\nimport { filterByPermissions } from \"../utils\";\n\nconst MoreDropdown = ({ moreNavLinks, isNavLinkPinned, handleTogglePin }) => {\n const { t } = useTranslation();\n const isRTL = document.documentElement.dir === \"rtl\";\n\n return (\n <SidebarMenuItem>\n <DropdownMenu\n closeOnSelect={false}\n position={isRTL ? \"left-start\" : \"right-start\"}\n customTarget={\n <button\n className=\"text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground flex w-full items-center gap-2 rounded-md p-2 text-sm outline-hidden\"\n data-testid=\"more-nav-links-dropdown-button\"\n >\n <Ellipsis />\n <span className=\"truncate\">{t(\"neetoMolecules.sidebar.more\")}</span>\n </button>\n }\n dropdownProps={{\n className: \"z-[99999] p-0\",\n \"data-testid\": \"more-nav-links-dropdown-menu\",\n }}\n >\n {moreNavLinks.filter(filterByPermissions).map((navLink, index) => {\n const { label, icon, key: navLinkKey, to, onClick, tag } = navLink;\n const IconSVG = icon;\n const isPinned = isNavLinkPinned(navLink);\n\n return (\n <DropdownMenu.MenuItem\n data-testid={label}\n key={navLinkKey || index}\n onSelect={e => e.preventDefault()}\n >\n <CheckPointNavLinks\n {...{ onClick, to }}\n className=\"flex w-full cursor-pointer items-center justify-between gap-2 px-2 py-1\"\n >\n <span className=\"flex min-w-0 flex-grow items-center gap-2\">\n {icon && <IconSVG className=\"flex-shrink-0\" size={20} />}\n <span className=\"flex min-w-0 flex-grow items-center gap-2\">\n {label}\n {tag && <Badge {...tag} />}\n </span>\n </span>\n <Tooltip\n position=\"right\"\n content={\n isPinned\n ? t(\"neetoMolecules.sidebar.unpin\")\n : t(\"neetoMolecules.sidebar.pin\")\n }\n >\n <Button\n className=\"flex-shrink-0\"\n data-testid=\"pin-button\"\n size=\"icon-sm\"\n variant=\"ghost\"\n onClick={event => handleTogglePin(navLink, event)}\n >\n {isPinned ? (\n <UnpinIcon otherProps={{}} size={16} />\n ) : (\n <PinIcon otherProps={{}} size={16} />\n )}\n </Button>\n </Tooltip>\n </CheckPointNavLinks>\n </DropdownMenu.MenuItem>\n );\n })}\n </DropdownMenu>\n </SidebarMenuItem>\n );\n};\n\nexport default MoreDropdown;\n","import { Fragment, useState } from \"react\";\n\nimport { Badge } from \"@bigbinary/neeto-atoms\";\nimport {\n SidebarGroup,\n SidebarGroupContent,\n SidebarMenu,\n SidebarMenuItem,\n SidebarMenuButton,\n SidebarMenuSub,\n} from \"@bigbinary/neeto-atoms/primitives\";\nimport { ChevronRight, Megaphone } from \"lucide-react\";\nimport { isNot, hyphenate, isNotEmpty, isPresent } from \"neetocist\";\nimport useLocalStorage from \"neetocommons/v2/react-utils/useLocalStorage\";\nimport { append, is } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation } from \"react-router-dom\";\nimport { ENGAGE_WIDGET_TRIGGER_ID } from \"v2/components/FloatingActionMenu/constants\";\nimport useWhatsNewChangesCount from \"v2/components/FloatingActionMenu/hooks/useWhatsNewChangesCount\";\n\nimport AddAction from \"./AddAction\";\nimport CheckPointNavLinks from \"./CheckPointNavLink\";\nimport MoreDropdown from \"./MoreDropdown\";\nimport SubLinkItem from \"./SubLinkItem\";\n\nimport { PINNED_MORE_NAV_LINKS_KEY } from \"../constants\";\nimport { filterByPermissions } from \"../utils\";\n\nconst renderCount = count => (count > 999 ? \"999+\" : count);\n\nconst NavLinks = ({\n navLinks,\n moreNavLinks,\n isCountsLoading: isCountsLoadingDeprecated,\n setSelectedNavLinkRoute,\n showWhatsNew = false,\n}) => {\n const location = useLocation();\n const { t } = useTranslation();\n const whatsNewCount = useWhatsNewChangesCount();\n const [expandedNavLinkKeys, setExpandedNavLinkKeys] = useState([]);\n const [pinnedNavLinks, setPinnedNavLinks] = useLocalStorage(\n PINNED_MORE_NAV_LINKS_KEY,\n []\n );\n\n const handleNavLinkClick = ({ event, isActive, navLink }) => {\n const isExpandable =\n isPresent(navLink.items) || isPresent(navLink.component);\n if (!isExpandable) {\n setExpandedNavLinkKeys([]);\n\n return;\n }\n\n if (navLink.isConfigureNavLink && isNotEmpty(navLink.items)) {\n setSelectedNavLinkRoute(navLink.to);\n }\n\n const navLinkKey = navLink.key || navLink.to;\n if (isActive()) {\n const isExpanded = expandedNavLinkKeys.includes(navLinkKey);\n setExpandedNavLinkKeys(isExpanded ? [] : [navLinkKey]);\n navLink.resetPath !== true && event.preventDefault();\n\n return;\n }\n\n setExpandedNavLinkKeys([navLinkKey]);\n };\n\n const handleTogglePin = (navLink, event) => {\n event.preventDefault();\n event.stopPropagation();\n const navLinkKey = navLink.key || navLink.to;\n const isPinned = pinnedNavLinks.includes(navLinkKey);\n\n if (isPinned) {\n setPinnedNavLinks(pinnedNavLinks.filter(isNot(navLinkKey)));\n } else {\n setPinnedNavLinks([...pinnedNavLinks, navLinkKey]);\n }\n };\n\n const isNavLinkPinned = navLink => {\n if (!navLink) return false;\n const navLinkKey = navLink.key || navLink.to;\n\n return pinnedNavLinks.includes(navLinkKey);\n };\n\n const pinnedItems = moreNavLinks ? moreNavLinks.filter(isNavLinkPinned) : [];\n\n const activeMoreNavLink = moreNavLinks\n ? moreNavLinks.find(\n navLink =>\n navLink &&\n (location.pathname + location.search).startsWith(navLink.to)\n )\n : null;\n\n const additionalItems = [...pinnedItems];\n\n if (activeMoreNavLink && !isNavLinkPinned(activeMoreNavLink)) {\n additionalItems.push(activeMoreNavLink);\n }\n\n // \"What's new\" opens the neetoEngage changelog widget, which binds to the\n // element carrying ENGAGE_WIDGET_TRIGGER_ID. Rendering it as a persistent\n // sidebar item gives the widget a stable trigger. The unread count is shown\n // as an info-blue badge on the right of the item (via the `tag` slot).\n const whatsNewNavLink = {\n key: \"sidebar-whats-new\",\n icon: Megaphone,\n label: t(\"neetoMolecules.sidebar.helpLinks.whatsNew\"),\n to: \"#\",\n id: ENGAGE_WIDGET_TRIGGER_ID,\n isActive: () => false,\n \"data-testid\": \"sidebar-whats-new\",\n onClick: event => event.preventDefault(),\n ...(isPresent(whatsNewCount) && {\n tag: {\n label: String(renderCount(whatsNewCount)),\n variant: \"blue\",\n size: \"sm\",\n \"data-testid\": \"sidebar-whats-new-count\",\n },\n }),\n };\n\n const combinedNavLinks = [\n ...(showWhatsNew ? [whatsNewNavLink] : []),\n ...navLinks,\n ...additionalItems,\n ];\n\n return (\n <SidebarGroup>\n <SidebarGroupContent>\n <SidebarMenu className=\"gap-1\">\n {combinedNavLinks\n .filter(filterByPermissions)\n .map((navLink, index) => {\n const {\n label,\n to,\n icon,\n items,\n isConfigureNavLink,\n isCountsLoading = false,\n count = null,\n component: Component,\n onClick,\n addActions = [],\n tag,\n ...otherProps\n } = navLink;\n const IconSVG = icon;\n const url = new URL(to, window.location.href);\n const isActive = () =>\n is(Function, otherProps.isActive)\n ? otherProps.isActive()\n : location.pathname.startsWith(url.pathname);\n\n const isExpandable = items || Component;\n const navLinkKey = navLink.key || navLink.to;\n const isMenuExpanded =\n expandedNavLinkKeys.includes(navLinkKey) &&\n !isCountsLoadingDeprecated;\n\n const handleCaretClick = event => {\n event.preventDefault();\n event.stopPropagation();\n setExpandedNavLinkKeys(keys =>\n keys.includes(navLinkKey)\n ? keys.filter(isNot(navLinkKey))\n : append(navLinkKey, keys)\n );\n };\n\n return (\n <Fragment key={navLink.key || index}>\n <SidebarMenuItem>\n <SidebarMenuButton\n asChild\n className=\"h-10\"\n isActive={isActive()}\n >\n <CheckPointNavLinks\n activeClassName=\"active\"\n className=\"font-medium\"\n data-testid={`navlink-${hyphenate(label)}`}\n onClick={event => {\n handleNavLinkClick({ event, isActive, navLink });\n onClick?.(event);\n }}\n {...{ isActive, to, ...otherProps }}\n >\n {icon && (\n <span className=\"relative\" data-testid={label}>\n <IconSVG />\n {isPresent(count) && !isCountsLoading && (\n <span className=\"bg-destructive text-destructive-foreground absolute -end-1.5 -top-1.5 flex h-4 min-w-4 items-center justify-center rounded-full px-0.5 text-[10px]\">\n {renderCount(count)}\n </span>\n )}\n </span>\n )}\n <span className=\"flex-grow truncate\">{label}</span>\n {tag && <Badge {...tag} />}\n {(isNotEmpty(addActions) ||\n (isExpandable && !isConfigureNavLink)) && (\n <span className=\"ms-auto flex shrink-0 items-center gap-0.5\">\n {isNotEmpty(addActions) && (\n <AddAction actions={addActions} />\n )}\n {isExpandable && !isConfigureNavLink && (\n <span\n className=\"shrink-0 transition-transform duration-200\"\n role=\"button\"\n tabIndex={-1}\n style={{\n transform: isMenuExpanded\n ? \"rotate(90deg)\"\n : \"rotate(0deg)\",\n }}\n onClick={handleCaretClick}\n >\n <ChevronRight className=\"rtl:rotate-180\" />\n </span>\n )}\n </span>\n )}\n </CheckPointNavLinks>\n </SidebarMenuButton>\n </SidebarMenuItem>\n {isExpandable && !isConfigureNavLink && isMenuExpanded && (\n <>\n {items && (\n <SidebarMenuSub data-testid=\"sidebar-sub-link-wrapper\">\n {items\n .filter(filterByPermissions)\n .map((subItem, subIndex) => (\n <SubLinkItem\n key={subIndex}\n {...{ ...subItem, isCountsLoading }}\n href={subItem.href}\n isActive={subItem.isActive}\n isSectionHeader={isPresent(subItem.item)}\n to={subItem.to ?? subItem.path}\n onClick={subItem.onClick}\n />\n ))}\n </SidebarMenuSub>\n )}\n {Component && <Component {...{ navLink }} />}\n </>\n )}\n </Fragment>\n );\n })}\n {isNotEmpty(moreNavLinks) && (\n <MoreDropdown\n {...{ handleTogglePin, isNavLinkPinned, moreNavLinks }}\n />\n )}\n </SidebarMenu>\n </SidebarGroupContent>\n </SidebarGroup>\n );\n};\n\nexport default NavLinks;\n","import { useCallback, useEffect, useMemo, useRef } from \"react\";\n\nimport {\n Sidebar as SidebarComponent,\n SidebarContent,\n SidebarHeader,\n SidebarProvider,\n SidebarRail,\n SidebarTrigger,\n useSidebar,\n} from \"@bigbinary/neeto-atoms/primitives\";\nimport { isPresent, isNotEmpty } from \"neetocist\";\nimport useLocalStorage from \"neetocommons/v2/react-utils/useLocalStorage\";\nimport PropTypes from \"prop-types\";\nimport { findLast, is } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation, useHistory } from \"react-router-dom\";\nimport useKeyboardShortcutsPaneState from \"v2/components/KeyboardShortcuts/hooks/useKeyboardShortcutsPaneState\";\n\nimport ConfigureView from \"./Components/ConfigureView\";\nimport Header from \"./Components/Header\";\nimport NavLinks from \"./Components/NavLinks\";\nimport {\n SELECTED_NAV_LINK_ROUTE_STORAGE_KEY,\n SIDEBAR_WIDTH_KEY,\n MIN_SIDEBAR_WIDTH,\n MAX_SIDEBAR_WIDTH,\n DEFAULT_SIDEBAR_WIDTH,\n} from \"./constants\";\nimport \"./sidebar.css\";\nimport {\n getActiveConfigurePageLink,\n getSidebarStateLocalStorageKey,\n} from \"./utils\";\n\nconst Sidebar = ({\n navLinks,\n moreNavLinks = [],\n customLogo,\n isCountsLoading = false,\n showWorkspaceName = false,\n isExpandable = true,\n showWhatsNew = true,\n}) => {\n const [isSidebarCollapsed, setIsSidebarCollapsed] = useLocalStorage(\n getSidebarStateLocalStorageKey(),\n false\n );\n\n const [sidebarWidthRaw, setSidebarWidth] = useLocalStorage(\n SIDEBAR_WIDTH_KEY,\n DEFAULT_SIDEBAR_WIDTH\n );\n\n const sidebarWidth =\n typeof sidebarWidthRaw === \"string\"\n ? parseInt(sidebarWidthRaw, 10) || DEFAULT_SIDEBAR_WIDTH\n : sidebarWidthRaw || DEFAULT_SIDEBAR_WIDTH;\n\n return (\n <SidebarProvider\n className=\"!w-auto\"\n data-testid=\"sidebar-container\"\n open={!isSidebarCollapsed}\n style={{ \"--sidebar-width\": `${sidebarWidth / 16}rem` }}\n onOpenChange={open => setIsSidebarCollapsed(!open)}\n >\n <SidebarBody\n {...{\n customLogo,\n isCountsLoading,\n isExpandable,\n isSidebarCollapsed,\n moreNavLinks,\n navLinks,\n setIsSidebarCollapsed,\n setSidebarWidth,\n showWhatsNew,\n showWorkspaceName,\n sidebarWidth,\n }}\n />\n </SidebarProvider>\n );\n};\n\nconst SidebarBody = ({\n navLinks,\n moreNavLinks,\n customLogo,\n isCountsLoading,\n showWorkspaceName,\n isExpandable,\n isSidebarCollapsed,\n setIsSidebarCollapsed,\n sidebarWidth,\n setSidebarWidth,\n showWhatsNew,\n}) => {\n const { isMobile, setOpenMobile, openMobile } = useSidebar();\n const [isKeyboardShortcutsPaneOpen] = useKeyboardShortcutsPaneState();\n\n const [selectedNavLinkRoute, setSelectedNavLinkRoute] = useLocalStorage(\n SELECTED_NAV_LINK_ROUTE_STORAGE_KEY,\n null\n );\n\n const isDraggingRef = useRef(false);\n const hasDraggedRef = useRef(false);\n const startXRef = useRef(null);\n const startWidthRef = useRef(null);\n const isInitialMountRef = useRef(true);\n\n const location = useLocation();\n const history = useHistory();\n const { t } = useTranslation();\n\n const isRTL = document.documentElement.dir === \"rtl\";\n const sidebarSide = isRTL ? \"right\" : \"left\";\n\n useEffect(() => {\n if (isInitialMountRef.current) {\n isInitialMountRef.current = false;\n\n return;\n }\n\n if (isMobile) {\n if (isKeyboardShortcutsPaneOpen) setOpenMobile(false);\n\n return;\n }\n\n if (isKeyboardShortcutsPaneOpen) setIsSidebarCollapsed(true);\n else setIsSidebarCollapsed(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- setIsSidebarCollapsed / setOpenMobile may not be stable across renders\n }, [isKeyboardShortcutsPaneOpen, isMobile]);\n\n useEffect(() => {\n if (!isPresent(navLinks)) return;\n const currentLink = findLast(({ to, isActive }) => {\n const url = new URL(to, window.location.href);\n\n return is(Function, isActive)\n ? isActive()\n : location.pathname.includes(url.pathname);\n })(navLinks);\n\n if (isPresent(currentLink)) {\n setSelectedNavLinkRoute(\n currentLink.isConfigureNavLink ? currentLink.to : null\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- mount-only: sets initial selected route from current URL\n }, []);\n\n const handleRailMouseDown = useCallback(\n e => {\n if (!isExpandable || isMobile) return;\n\n isDraggingRef.current = true;\n hasDraggedRef.current = false;\n startXRef.current = e.clientX;\n startWidthRef.current = sidebarWidth;\n\n const wrapper = document.querySelector(\"[data-slot='sidebar-wrapper']\");\n if (wrapper) wrapper.dataset.resizing = \"true\";\n\n document.body.style.cursor = \"col-resize\";\n document.body.style.userSelect = \"none\";\n e.preventDefault();\n },\n [sidebarWidth, isExpandable, isMobile]\n );\n\n const handleRailClick = useCallback(e => {\n if (!hasDraggedRef.current) return;\n e.preventDefault();\n e.stopPropagation();\n hasDraggedRef.current = false;\n }, []);\n\n useEffect(() => {\n if (!isExpandable || isMobile) return undefined;\n\n const onMouseMove = e => {\n if (!isDraggingRef.current) return;\n\n hasDraggedRef.current = true;\n const dx = e.clientX - startXRef.current;\n const rtl = document.documentElement.dir === \"rtl\";\n let newWidth = startWidthRef.current + (rtl ? -dx : dx);\n newWidth = Math.max(\n MIN_SIDEBAR_WIDTH,\n Math.min(newWidth, MAX_SIDEBAR_WIDTH)\n );\n\n const widthRem = `${newWidth / 16}rem`;\n const wrapper = document.querySelector(\"[data-slot='sidebar-wrapper']\");\n if (wrapper) wrapper.style.setProperty(\"--sidebar-width\", widthRem);\n\n document.documentElement.style.setProperty(\n \"--nv-sidebar-width\",\n widthRem\n );\n };\n\n const onMouseUp = e => {\n if (!isDraggingRef.current) return;\n\n const dx = e.clientX - startXRef.current;\n const rtlUp = document.documentElement.dir === \"rtl\";\n let finalWidth = startWidthRef.current + (rtlUp ? -dx : dx);\n finalWidth = Math.round(\n Math.max(MIN_SIDEBAR_WIDTH, Math.min(finalWidth, MAX_SIDEBAR_WIDTH))\n );\n setSidebarWidth(finalWidth);\n\n const wrapper = document.querySelector(\"[data-slot='sidebar-wrapper']\");\n if (wrapper) delete wrapper.dataset.resizing;\n\n isDraggingRef.current = false;\n document.body.style.cursor = \"\";\n document.body.style.userSelect = \"\";\n };\n\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseUp);\n\n return () => {\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseUp);\n };\n }, [isExpandable, isMobile, setSidebarWidth]);\n\n useEffect(() => {\n document.documentElement.style.setProperty(\n \"--nv-sidebar-width\",\n isMobile ? \"0rem\" : `${sidebarWidth / 16}rem`\n );\n }, [sidebarWidth, isMobile]);\n\n const handleGoBack = event => {\n event.preventDefault();\n setSelectedNavLinkRoute(null);\n const configureNavLink = getActiveConfigurePageLink({ navLinks, location });\n if (configureNavLink?.to) {\n history.push(configureNavLink.to);\n }\n };\n\n const activeLink = useMemo(\n () =>\n navLinks.find(link => {\n if (is(Function, link.isActive)) return link.isActive();\n const url = new URL(link.to, window.location.href);\n\n return location.pathname.startsWith(url.pathname);\n }),\n [location.pathname, navLinks]\n );\n\n const isSelectedNavLinkVisible =\n selectedNavLinkRoute &&\n activeLink?.to === selectedNavLinkRoute &&\n isNotEmpty(navLinks);\n\n return (\n <>\n <SidebarComponent\n collapsible=\"offcanvas\"\n data-testid=\"sidebar-wrapper\"\n side={sidebarSide}\n >\n <SidebarHeader className=\"nm-sidebar-shadcn-header relative p-0\">\n <Header\n {...{ customLogo }}\n clearSettingsNav={() => setSelectedNavLinkRoute(null)}\n />\n <SidebarTrigger\n className=\"absolute end-2 top-3\"\n data-testid=\"neeto-molecules-sidebar-toggler\"\n title={t(\"neetoMolecules.sidebar.hideMenu\")}\n />\n {showWorkspaceName && (\n <div className=\"border-sidebar-border border-b px-4 py-2\">\n <h5 className=\"text-sidebar-foreground mb-1 text-sm font-semibold\">\n {t(\"neetoMolecules.sidebar.myWorkspace\")}\n </h5>\n <span className=\"text-sidebar-foreground/70 truncate text-xs\">\n {globalProps.organization.name}\n </span>\n </div>\n )}\n </SidebarHeader>\n <SidebarContent>\n {isSelectedNavLinkVisible ? (\n <ConfigureView {...{ handleGoBack }} navLink={activeLink} />\n ) : (\n <NavLinks\n {...{\n isCountsLoading,\n moreNavLinks,\n navLinks,\n setSelectedNavLinkRoute,\n showWhatsNew,\n }}\n />\n )}\n </SidebarContent>\n {!isMobile && isExpandable && !isSidebarCollapsed && (\n <SidebarRail\n onClickCapture={handleRailClick}\n onMouseDown={handleRailMouseDown}\n />\n )}\n </SidebarComponent>\n {((isMobile && !openMobile) || (!isMobile && isSidebarCollapsed)) && (\n <SidebarTrigger\n className=\"bg-background hover:bg-accent fixed start-2 top-2 z-50 size-9 rounded-full border shadow-sm\"\n data-testid=\"neeto-molecules-sidebar-expander\"\n title={t(\"neetoMolecules.sidebar.showMenu\")}\n />\n )}\n </>\n );\n};\n\nSidebar.propTypes = {\n navLinks: PropTypes.arrayOf(\n PropTypes.shape({\n icon: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.object,\n ]),\n label: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n count: PropTypes.number,\n isActive: PropTypes.func,\n checkpointKey: PropTypes.string,\n isCountsLoading: PropTypes.bool,\n tag: PropTypes.object,\n addActions: PropTypes.arrayOf(\n PropTypes.shape({\n key: PropTypes.string,\n label: PropTypes.string,\n onClick: PropTypes.func,\n })\n ),\n items: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n href: PropTypes.string,\n count: PropTypes.number,\n isActive: PropTypes.func,\n type: PropTypes.string,\n filters: PropTypes.array,\n checkpointKey: PropTypes.string,\n tag: PropTypes.object,\n })\n ),\n })\n ),\n moreNavLinks: PropTypes.arrayOf(\n PropTypes.shape({\n icon: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.object,\n ]),\n label: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n count: PropTypes.number,\n isActive: PropTypes.func,\n checkpointKey: PropTypes.string,\n isCountsLoading: PropTypes.bool,\n tag: PropTypes.object,\n items: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n href: PropTypes.string,\n count: PropTypes.number,\n isActive: PropTypes.func,\n type: PropTypes.string,\n filters: PropTypes.array,\n checkpointKey: PropTypes.string,\n tag: PropTypes.object,\n })\n ),\n })\n ),\n customLogo: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n isCountsLoading: PropTypes.bool,\n showWorkspaceName: PropTypes.bool,\n isExpandable: PropTypes.bool,\n showWhatsNew: PropTypes.bool,\n};\n\nexport default Sidebar;\n"],"names":["createLucideIcon","Header","_ref","_ProductTypefaceLogos","customLogo","clearSettingsNav","productName","globalProps","appName","substr","normalizedName","trim","toLowerCase","specialCase","SPECIAL_APP_NAMES","logoName","concat","capitalize","ProductTypefaceLogo","ProductTypefaceLogos","Neeto","LogoComponent","isOnboarded","user","_jsx","className","children","Link","to","DEFAULT_HOME_PATH","classnames","onClick","sidebarTitle","memo","AddAction","actions","DropdownMenu","dropdownProps","align","side","customTarget","role","tabIndex","e","preventDefault","stopPropagation","Plus","map","action","MenuItem","_action$onClick","call","label","key","PinIcon","size","otherProps","_objectSpread","fill","height","viewBox","width","xmlns","d","UnpinIcon","MoreDropdown","moreNavLinks","isNavLinkPinned","handleTogglePin","_useTranslation","useTranslation","t","isRTL","document","documentElement","dir","SidebarMenuItem","closeOnSelect","position","_jsxs","Ellipsis","filter","filterByPermissions","navLink","index","icon","navLinkKey","tag","IconSVG","isPinned","onSelect","CheckPointNavLinks","Badge","Tooltip","content","Button","variant","event","renderCount","count","NavLinks","navLinks","isCountsLoadingDeprecated","isCountsLoading","setSelectedNavLinkRoute","_ref$showWhatsNew","showWhatsNew","location","useLocation","whatsNewCount","useWhatsNewChangesCount","_useState","useState","_useState2","_slicedToArray","expandedNavLinkKeys","setExpandedNavLinkKeys","_useLocalStorage","useLocalStorage","PINNED_MORE_NAV_LINKS_KEY","_useLocalStorage2","pinnedNavLinks","setPinnedNavLinks","handleNavLinkClick","_ref2","isActive","isExpandable","isPresent","items","component","isConfigureNavLink","isNotEmpty","isExpanded","includes","resetPath","isNot","_toConsumableArray","pinnedItems","activeMoreNavLink","find","pathname","search","startsWith","additionalItems","push","whatsNewNavLink","Megaphone","id","ENGAGE_WIDGET_TRIGGER_ID","String","combinedNavLinks","SidebarGroup","SidebarGroupContent","SidebarMenu","_navLink$isCountsLoad","_navLink$count","Component","_navLink$addActions","addActions","_objectWithoutProperties","_excluded","url","URL","window","href","is","Function","isMenuExpanded","handleCaretClick","keys","append","Fragment","SidebarMenuButton","asChild","activeClassName","hyphenate","style","transform","ChevronRight","_Fragment","SidebarMenuSub","subItem","subIndex","_subItem$to","SubLinkItem","isSectionHeader","item","path","Sidebar","_ref$moreNavLinks","_ref$isCountsLoading","_ref$showWorkspaceNam","showWorkspaceName","_ref$isExpandable","getSidebarStateLocalStorageKey","isSidebarCollapsed","setIsSidebarCollapsed","_useLocalStorage3","SIDEBAR_WIDTH_KEY","DEFAULT_SIDEBAR_WIDTH","_useLocalStorage4","sidebarWidthRaw","setSidebarWidth","sidebarWidth","parseInt","SidebarProvider","open","onOpenChange","SidebarBody","_useSidebar","useSidebar","isMobile","setOpenMobile","openMobile","_useKeyboardShortcuts","useKeyboardShortcutsPaneState","_useKeyboardShortcuts2","isKeyboardShortcutsPaneOpen","_useLocalStorage5","SELECTED_NAV_LINK_ROUTE_STORAGE_KEY","_useLocalStorage6","selectedNavLinkRoute","isDraggingRef","useRef","hasDraggedRef","startXRef","startWidthRef","isInitialMountRef","history","useHistory","sidebarSide","useEffect","current","currentLink","findLast","_ref3","handleRailMouseDown","useCallback","clientX","wrapper","querySelector","dataset","resizing","body","cursor","userSelect","handleRailClick","undefined","onMouseMove","dx","rtl","newWidth","Math","max","MIN_SIDEBAR_WIDTH","min","MAX_SIDEBAR_WIDTH","widthRem","setProperty","onMouseUp","rtlUp","finalWidth","round","addEventListener","removeEventListener","handleGoBack","configureNavLink","getActiveConfigurePageLink","activeLink","useMemo","link","isSelectedNavLinkVisible","SidebarComponent","collapsible","SidebarHeader","SidebarTrigger","title","organization","name","SidebarContent","ConfigureView","SidebarRail","onClickCapture","onMouseDown"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"Sidebar.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/megaphone.mjs","../../../src/v2/components/Sidebar/Components/Header.jsx","../../../src/v2/components/Sidebar/Components/AddAction.jsx","../../../src/v2/components/Sidebar/Components/PinIcon.jsx","../../../src/v2/components/Sidebar/Components/UnpinIcon.jsx","../../../src/v2/components/Sidebar/Components/MoreDropdown.jsx","../../../src/v2/components/Sidebar/Components/NavLinks.jsx","../../../src/v2/components/Sidebar/index.jsx"],"sourcesContent":["/**\n * @license lucide-react v1.24.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z\",\n key: \"q8bfy3\"\n }\n ],\n [\"path\", { d: \"M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14\", key: \"1853fq\" }],\n [\"path\", { d: \"M8 6v8\", key: \"15ugcq\" }]\n];\nconst Megaphone = createLucideIcon(\"megaphone\", __iconNode);\n\nexport { __iconNode, Megaphone as default };\n//# sourceMappingURL=megaphone.mjs.map\n","import { memo } from \"react\";\n\nimport classnames from \"classnames\";\nimport { capitalize } from \"neetocist\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport { Neeto } from \"neetoicons/typeface-logos\";\nimport * as ProductTypefaceLogos from \"neetoicons/typeface-logos\";\nimport { Link } from \"react-router-dom\";\n\nimport { DEFAULT_HOME_PATH, SPECIAL_APP_NAMES } from \"../constants\";\n\nconst Header = ({ customLogo, clearSettingsNav }) => {\n const productName = globalProps.appName.substr(5);\n const normalizedName = (productName || \"\").trim().toLowerCase();\n const specialCase = SPECIAL_APP_NAMES[normalizedName];\n const logoName = specialCase\n ? `Neeto${specialCase}`\n : `Neeto${capitalize(normalizedName)}`;\n const ProductTypefaceLogo = ProductTypefaceLogos[logoName] ?? Neeto;\n const LogoComponent = customLogo ?? ProductTypefaceLogo;\n const isOnboarded = globalProps.user.isOnboarded !== false;\n\n return (\n <div className=\"px-4 py-3\" data-testid=\"sidebar-info\">\n <Link\n to={DEFAULT_HOME_PATH}\n className={classnames(\"mt-2 block w-full py-2\", {\n \"cursor-pointer\": isOnboarded,\n \"pointer-events-none\": !isOnboarded,\n })}\n onClick={clearSettingsNav}\n >\n {globalProps.sidebarTitle ? (\n <span className=\"text-sidebar-foreground text-xl leading-9 font-bold\">\n {globalProps.sidebarTitle}\n </span>\n ) : (\n <LogoComponent className=\"h-9 w-auto max-w-full\" />\n )}\n </Link>\n </div>\n );\n};\n\nexport default memo(Header);\n","import { DropdownMenu } from \"@bigbinary/neeto-atoms\";\nimport { Plus } from \"lucide-react\";\n\nconst AddAction = ({ actions }) => (\n <DropdownMenu\n dropdownProps={{ align: \"end\", side: \"bottom\" }}\n customTarget={\n <span\n className=\"text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-sidebar-ring md:data-[state=open]:bg-sidebar-accent flex aspect-square w-5 shrink-0 cursor-pointer items-center justify-center rounded-md outline-hidden focus-visible:ring-2 md:opacity-0 md:group-focus-within/menu-item:opacity-100 md:group-hover/menu-item:opacity-100 md:data-[state=open]:opacity-100\"\n data-testid=\"add-dropdown-trigger\"\n role=\"button\"\n tabIndex={0}\n onClick={e => {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n <Plus className=\"size-4\" />\n </span>\n }\n >\n {actions.map(action => (\n <DropdownMenu.MenuItem\n key={action.key}\n onClick={() => {\n action.onClick?.();\n }}\n >\n {action.label}\n </DropdownMenu.MenuItem>\n ))}\n </DropdownMenu>\n);\n\nexport default AddAction;\n","const PinIcon = ({ size, otherProps }) => (\n <svg\n fill=\"currentColor\"\n height={size}\n viewBox=\"0 -960 960 960\"\n width={size}\n xmlns=\"http://www.w3.org/2000/svg\"\n {...otherProps}\n >\n <path d=\"m640-480 80 80v80H520v240l-40 40-40-40v-240H240v-80l80-80v-280h-40v-80h400v80h-40zm-286 80h252l-46-46v-314H400v314zm126 0\" />\n </svg>\n);\n\nexport default PinIcon;\n","const UnpinIcon = ({ size, otherProps }) => (\n <svg\n fill=\"currentColor\"\n height={size}\n viewBox=\"0 -960 960 960\"\n width={size}\n xmlns=\"http://www.w3.org/2000/svg\"\n {...otherProps}\n >\n <path d=\"m640-480 80 80v80H520v240l-40 40-40-40v-240H240v-80l80-80v-280h-40v-80h400v80h-40z\" />\n </svg>\n);\n\nexport default UnpinIcon;\n","import { Badge, Button, DropdownMenu, Tooltip } from \"@bigbinary/neeto-atoms\";\nimport { SidebarMenuItem } from \"@bigbinary/neeto-atoms/primitives\";\nimport { Ellipsis } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CheckPointNavLinks from \"./CheckPointNavLink\";\nimport PinIcon from \"./PinIcon\";\nimport UnpinIcon from \"./UnpinIcon\";\n\nimport { filterByPermissions } from \"../utils\";\n\nconst MoreDropdown = ({ moreNavLinks, isNavLinkPinned, handleTogglePin }) => {\n const { t } = useTranslation();\n const isRTL = document.documentElement.dir === \"rtl\";\n\n return (\n <SidebarMenuItem>\n <DropdownMenu\n closeOnSelect={false}\n position={isRTL ? \"left-start\" : \"right-start\"}\n customTarget={\n <button\n className=\"text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground flex w-full items-center gap-2 rounded-md p-2 text-sm outline-hidden\"\n data-testid=\"more-nav-links-dropdown-button\"\n >\n <Ellipsis />\n <span className=\"truncate\">{t(\"neetoMolecules.sidebar.more\")}</span>\n </button>\n }\n dropdownProps={{\n className: \"z-[99999] p-0\",\n \"data-testid\": \"more-nav-links-dropdown-menu\",\n }}\n >\n {moreNavLinks.filter(filterByPermissions).map((navLink, index) => {\n const { label, icon, key: navLinkKey, to, onClick, tag } = navLink;\n const IconSVG = icon;\n const isPinned = isNavLinkPinned(navLink);\n\n return (\n <DropdownMenu.MenuItem\n data-testid={label}\n key={navLinkKey || index}\n onSelect={e => e.preventDefault()}\n >\n <CheckPointNavLinks\n {...{ onClick, to }}\n className=\"flex w-full cursor-pointer items-center justify-between gap-2 px-2 py-1\"\n >\n <span className=\"flex min-w-0 flex-grow items-center gap-2\">\n {icon && <IconSVG className=\"flex-shrink-0\" size={20} />}\n <span className=\"flex min-w-0 flex-grow items-center gap-2\">\n {label}\n {tag && <Badge {...tag} />}\n </span>\n </span>\n <Tooltip\n position=\"right\"\n content={\n isPinned\n ? t(\"neetoMolecules.sidebar.unpin\")\n : t(\"neetoMolecules.sidebar.pin\")\n }\n >\n <Button\n className=\"flex-shrink-0\"\n data-testid=\"pin-button\"\n size=\"icon-sm\"\n variant=\"ghost\"\n onClick={event => handleTogglePin(navLink, event)}\n >\n {isPinned ? (\n <UnpinIcon otherProps={{}} size={16} />\n ) : (\n <PinIcon otherProps={{}} size={16} />\n )}\n </Button>\n </Tooltip>\n </CheckPointNavLinks>\n </DropdownMenu.MenuItem>\n );\n })}\n </DropdownMenu>\n </SidebarMenuItem>\n );\n};\n\nexport default MoreDropdown;\n","import { Fragment, useState } from \"react\";\n\nimport { Badge } from \"@bigbinary/neeto-atoms\";\nimport {\n SidebarGroup,\n SidebarGroupContent,\n SidebarMenu,\n SidebarMenuItem,\n SidebarMenuButton,\n SidebarMenuSub,\n} from \"@bigbinary/neeto-atoms/primitives\";\nimport { ChevronRight, Megaphone } from \"lucide-react\";\nimport { isNot, hyphenate, isNotEmpty, isPresent } from \"neetocist\";\nimport useLocalStorage from \"neetocommons/v2/react-utils/useLocalStorage\";\nimport { append, is } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation } from \"react-router-dom\";\nimport { ENGAGE_WIDGET_TRIGGER_ID } from \"v2/components/FloatingActionMenu/constants\";\nimport useWhatsNewChangesCount from \"v2/components/FloatingActionMenu/hooks/useWhatsNewChangesCount\";\n\nimport AddAction from \"./AddAction\";\nimport CheckPointNavLinks from \"./CheckPointNavLink\";\nimport MoreDropdown from \"./MoreDropdown\";\nimport SubLinkItem from \"./SubLinkItem\";\n\nimport { PINNED_MORE_NAV_LINKS_KEY } from \"../constants\";\nimport { filterByPermissions } from \"../utils\";\n\nconst renderCount = count => (count > 999 ? \"999+\" : count);\n\nconst NavLinks = ({\n navLinks,\n moreNavLinks,\n isCountsLoading: isCountsLoadingDeprecated,\n setSelectedNavLinkRoute,\n showWhatsNew = false,\n}) => {\n const location = useLocation();\n const { t } = useTranslation();\n const whatsNewCount = useWhatsNewChangesCount();\n const [expandedNavLinkKeys, setExpandedNavLinkKeys] = useState([]);\n const [pinnedNavLinks, setPinnedNavLinks] = useLocalStorage(\n PINNED_MORE_NAV_LINKS_KEY,\n []\n );\n\n const handleNavLinkClick = ({ event, isActive, navLink }) => {\n const isExpandable =\n isPresent(navLink.items) || isPresent(navLink.component);\n if (!isExpandable) {\n setExpandedNavLinkKeys([]);\n\n return;\n }\n\n if (navLink.isConfigureNavLink && isNotEmpty(navLink.items)) {\n setSelectedNavLinkRoute(navLink.to);\n }\n\n const navLinkKey = navLink.key || navLink.to;\n if (isActive()) {\n const isExpanded = expandedNavLinkKeys.includes(navLinkKey);\n setExpandedNavLinkKeys(isExpanded ? [] : [navLinkKey]);\n navLink.resetPath !== true && event.preventDefault();\n\n return;\n }\n\n setExpandedNavLinkKeys([navLinkKey]);\n };\n\n const handleTogglePin = (navLink, event) => {\n event.preventDefault();\n event.stopPropagation();\n const navLinkKey = navLink.key || navLink.to;\n const isPinned = pinnedNavLinks.includes(navLinkKey);\n\n if (isPinned) {\n setPinnedNavLinks(pinnedNavLinks.filter(isNot(navLinkKey)));\n } else {\n setPinnedNavLinks([...pinnedNavLinks, navLinkKey]);\n }\n };\n\n const isNavLinkPinned = navLink => {\n if (!navLink) return false;\n const navLinkKey = navLink.key || navLink.to;\n\n return pinnedNavLinks.includes(navLinkKey);\n };\n\n const pinnedItems = moreNavLinks ? moreNavLinks.filter(isNavLinkPinned) : [];\n\n const activeMoreNavLink = moreNavLinks\n ? moreNavLinks.find(\n navLink =>\n navLink &&\n (location.pathname + location.search).startsWith(navLink.to)\n )\n : null;\n\n const additionalItems = [...pinnedItems];\n\n if (activeMoreNavLink && !isNavLinkPinned(activeMoreNavLink)) {\n additionalItems.push(activeMoreNavLink);\n }\n\n // \"What's new\" opens the neetoEngage changelog widget, which binds to the\n // element carrying ENGAGE_WIDGET_TRIGGER_ID. Rendering it as a persistent\n // sidebar item gives the widget a stable trigger. The unread count is shown\n // as an info-blue badge on the right of the item (via the `tag` slot).\n const whatsNewNavLink = {\n key: \"sidebar-whats-new\",\n icon: Megaphone,\n label: t(\"neetoMolecules.sidebar.helpLinks.whatsNew\"),\n to: \"#\",\n id: ENGAGE_WIDGET_TRIGGER_ID,\n isActive: () => false,\n \"data-testid\": \"sidebar-whats-new\",\n onClick: event => event.preventDefault(),\n ...(isPresent(whatsNewCount) && {\n tag: {\n label: String(renderCount(whatsNewCount)),\n variant: \"blue\",\n size: \"sm\",\n \"data-testid\": \"sidebar-whats-new-count\",\n },\n }),\n };\n\n const combinedNavLinks = [\n // Only shown while there are unread changelogs (the count is null at 0).\n ...(showWhatsNew && isPresent(whatsNewCount) ? [whatsNewNavLink] : []),\n ...navLinks,\n ...additionalItems,\n ];\n\n return (\n <SidebarGroup>\n <SidebarGroupContent>\n <SidebarMenu className=\"gap-1\">\n {combinedNavLinks\n .filter(filterByPermissions)\n .map((navLink, index) => {\n const {\n label,\n to,\n icon,\n items,\n isConfigureNavLink,\n isCountsLoading = false,\n count = null,\n component: Component,\n onClick,\n addActions = [],\n tag,\n ...otherProps\n } = navLink;\n const IconSVG = icon;\n const url = new URL(to, window.location.href);\n const isActive = () =>\n is(Function, otherProps.isActive)\n ? otherProps.isActive()\n : location.pathname.startsWith(url.pathname);\n\n const isExpandable = items || Component;\n const navLinkKey = navLink.key || navLink.to;\n const isMenuExpanded =\n expandedNavLinkKeys.includes(navLinkKey) &&\n !isCountsLoadingDeprecated;\n\n const handleCaretClick = event => {\n event.preventDefault();\n event.stopPropagation();\n setExpandedNavLinkKeys(keys =>\n keys.includes(navLinkKey)\n ? keys.filter(isNot(navLinkKey))\n : append(navLinkKey, keys)\n );\n };\n\n return (\n <Fragment key={navLink.key || index}>\n <SidebarMenuItem>\n <SidebarMenuButton\n asChild\n className=\"h-10\"\n isActive={isActive()}\n >\n <CheckPointNavLinks\n activeClassName=\"active\"\n className=\"font-medium\"\n data-testid={`navlink-${hyphenate(label)}`}\n onClick={event => {\n handleNavLinkClick({ event, isActive, navLink });\n onClick?.(event);\n }}\n {...{ isActive, to, ...otherProps }}\n >\n {icon && (\n <span className=\"relative\" data-testid={label}>\n <IconSVG />\n {isPresent(count) && !isCountsLoading && (\n <span className=\"bg-destructive text-destructive-foreground absolute -end-1.5 -top-1.5 flex h-4 min-w-4 items-center justify-center rounded-full px-0.5 text-[10px]\">\n {renderCount(count)}\n </span>\n )}\n </span>\n )}\n <span className=\"flex-grow truncate\">{label}</span>\n {tag && <Badge {...tag} />}\n {(isNotEmpty(addActions) ||\n (isExpandable && !isConfigureNavLink)) && (\n <span className=\"ms-auto flex shrink-0 items-center gap-0.5\">\n {isNotEmpty(addActions) && (\n <AddAction actions={addActions} />\n )}\n {isExpandable && !isConfigureNavLink && (\n <span\n className=\"shrink-0 transition-transform duration-200\"\n role=\"button\"\n tabIndex={-1}\n style={{\n transform: isMenuExpanded\n ? \"rotate(90deg)\"\n : \"rotate(0deg)\",\n }}\n onClick={handleCaretClick}\n >\n <ChevronRight className=\"rtl:rotate-180\" />\n </span>\n )}\n </span>\n )}\n </CheckPointNavLinks>\n </SidebarMenuButton>\n </SidebarMenuItem>\n {isExpandable && !isConfigureNavLink && isMenuExpanded && (\n <>\n {items && (\n <SidebarMenuSub data-testid=\"sidebar-sub-link-wrapper\">\n {items\n .filter(filterByPermissions)\n .map((subItem, subIndex) => (\n <SubLinkItem\n key={subIndex}\n {...{ ...subItem, isCountsLoading }}\n href={subItem.href}\n isActive={subItem.isActive}\n isSectionHeader={isPresent(subItem.item)}\n to={subItem.to ?? subItem.path}\n onClick={subItem.onClick}\n />\n ))}\n </SidebarMenuSub>\n )}\n {Component && <Component {...{ navLink }} />}\n </>\n )}\n </Fragment>\n );\n })}\n {isNotEmpty(moreNavLinks) && (\n <MoreDropdown\n {...{ handleTogglePin, isNavLinkPinned, moreNavLinks }}\n />\n )}\n </SidebarMenu>\n </SidebarGroupContent>\n </SidebarGroup>\n );\n};\n\nexport default NavLinks;\n","import { useCallback, useEffect, useMemo, useRef } from \"react\";\n\nimport {\n Sidebar as SidebarComponent,\n SidebarContent,\n SidebarHeader,\n SidebarProvider,\n SidebarRail,\n SidebarTrigger,\n useSidebar,\n} from \"@bigbinary/neeto-atoms/primitives\";\nimport { isPresent, isNotEmpty } from \"neetocist\";\nimport useLocalStorage from \"neetocommons/v2/react-utils/useLocalStorage\";\nimport PropTypes from \"prop-types\";\nimport { findLast, is } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation, useHistory } from \"react-router-dom\";\nimport useKeyboardShortcutsPaneState from \"v2/components/KeyboardShortcuts/hooks/useKeyboardShortcutsPaneState\";\n\nimport ConfigureView from \"./Components/ConfigureView\";\nimport Header from \"./Components/Header\";\nimport NavLinks from \"./Components/NavLinks\";\nimport {\n SELECTED_NAV_LINK_ROUTE_STORAGE_KEY,\n SIDEBAR_WIDTH_KEY,\n MIN_SIDEBAR_WIDTH,\n MAX_SIDEBAR_WIDTH,\n DEFAULT_SIDEBAR_WIDTH,\n} from \"./constants\";\nimport \"./sidebar.css\";\nimport {\n getActiveConfigurePageLink,\n getSidebarStateLocalStorageKey,\n} from \"./utils\";\n\nconst Sidebar = ({\n navLinks,\n moreNavLinks = [],\n customLogo,\n isCountsLoading = false,\n showWorkspaceName = false,\n isExpandable = true,\n showWhatsNew = true,\n}) => {\n const [isSidebarCollapsed, setIsSidebarCollapsed] = useLocalStorage(\n getSidebarStateLocalStorageKey(),\n false\n );\n\n const [sidebarWidthRaw, setSidebarWidth] = useLocalStorage(\n SIDEBAR_WIDTH_KEY,\n DEFAULT_SIDEBAR_WIDTH\n );\n\n const sidebarWidth =\n typeof sidebarWidthRaw === \"string\"\n ? parseInt(sidebarWidthRaw, 10) || DEFAULT_SIDEBAR_WIDTH\n : sidebarWidthRaw || DEFAULT_SIDEBAR_WIDTH;\n\n return (\n <SidebarProvider\n className=\"!w-auto\"\n data-testid=\"sidebar-container\"\n open={!isSidebarCollapsed}\n style={{ \"--sidebar-width\": `${sidebarWidth / 16}rem` }}\n onOpenChange={open => setIsSidebarCollapsed(!open)}\n >\n <SidebarBody\n {...{\n customLogo,\n isCountsLoading,\n isExpandable,\n isSidebarCollapsed,\n moreNavLinks,\n navLinks,\n setIsSidebarCollapsed,\n setSidebarWidth,\n showWhatsNew,\n showWorkspaceName,\n sidebarWidth,\n }}\n />\n </SidebarProvider>\n );\n};\n\nconst SidebarBody = ({\n navLinks,\n moreNavLinks,\n customLogo,\n isCountsLoading,\n showWorkspaceName,\n isExpandable,\n isSidebarCollapsed,\n setIsSidebarCollapsed,\n sidebarWidth,\n setSidebarWidth,\n showWhatsNew,\n}) => {\n const { isMobile, setOpenMobile, openMobile } = useSidebar();\n const [isKeyboardShortcutsPaneOpen] = useKeyboardShortcutsPaneState();\n\n const [selectedNavLinkRoute, setSelectedNavLinkRoute] = useLocalStorage(\n SELECTED_NAV_LINK_ROUTE_STORAGE_KEY,\n null\n );\n\n const isDraggingRef = useRef(false);\n const hasDraggedRef = useRef(false);\n const startXRef = useRef(null);\n const startWidthRef = useRef(null);\n const isInitialMountRef = useRef(true);\n\n const location = useLocation();\n const history = useHistory();\n const { t } = useTranslation();\n\n const isRTL = document.documentElement.dir === \"rtl\";\n const sidebarSide = isRTL ? \"right\" : \"left\";\n\n useEffect(() => {\n if (isInitialMountRef.current) {\n isInitialMountRef.current = false;\n\n return;\n }\n\n if (isMobile) {\n if (isKeyboardShortcutsPaneOpen) setOpenMobile(false);\n\n return;\n }\n\n if (isKeyboardShortcutsPaneOpen) setIsSidebarCollapsed(true);\n else setIsSidebarCollapsed(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- setIsSidebarCollapsed / setOpenMobile may not be stable across renders\n }, [isKeyboardShortcutsPaneOpen, isMobile]);\n\n useEffect(() => {\n if (!isPresent(navLinks)) return;\n const currentLink = findLast(({ to, isActive }) => {\n const url = new URL(to, window.location.href);\n\n return is(Function, isActive)\n ? isActive()\n : location.pathname.includes(url.pathname);\n })(navLinks);\n\n if (isPresent(currentLink)) {\n setSelectedNavLinkRoute(\n currentLink.isConfigureNavLink ? currentLink.to : null\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- mount-only: sets initial selected route from current URL\n }, []);\n\n const handleRailMouseDown = useCallback(\n e => {\n if (!isExpandable || isMobile) return;\n\n isDraggingRef.current = true;\n hasDraggedRef.current = false;\n startXRef.current = e.clientX;\n startWidthRef.current = sidebarWidth;\n\n const wrapper = document.querySelector(\"[data-slot='sidebar-wrapper']\");\n if (wrapper) wrapper.dataset.resizing = \"true\";\n\n document.body.style.cursor = \"col-resize\";\n document.body.style.userSelect = \"none\";\n e.preventDefault();\n },\n [sidebarWidth, isExpandable, isMobile]\n );\n\n const handleRailClick = useCallback(e => {\n if (!hasDraggedRef.current) return;\n e.preventDefault();\n e.stopPropagation();\n hasDraggedRef.current = false;\n }, []);\n\n useEffect(() => {\n if (!isExpandable || isMobile) return undefined;\n\n const onMouseMove = e => {\n if (!isDraggingRef.current) return;\n\n hasDraggedRef.current = true;\n const dx = e.clientX - startXRef.current;\n const rtl = document.documentElement.dir === \"rtl\";\n let newWidth = startWidthRef.current + (rtl ? -dx : dx);\n newWidth = Math.max(\n MIN_SIDEBAR_WIDTH,\n Math.min(newWidth, MAX_SIDEBAR_WIDTH)\n );\n\n const widthRem = `${newWidth / 16}rem`;\n const wrapper = document.querySelector(\"[data-slot='sidebar-wrapper']\");\n if (wrapper) wrapper.style.setProperty(\"--sidebar-width\", widthRem);\n\n document.documentElement.style.setProperty(\n \"--nv-sidebar-width\",\n widthRem\n );\n };\n\n const onMouseUp = e => {\n if (!isDraggingRef.current) return;\n\n const dx = e.clientX - startXRef.current;\n const rtlUp = document.documentElement.dir === \"rtl\";\n let finalWidth = startWidthRef.current + (rtlUp ? -dx : dx);\n finalWidth = Math.round(\n Math.max(MIN_SIDEBAR_WIDTH, Math.min(finalWidth, MAX_SIDEBAR_WIDTH))\n );\n setSidebarWidth(finalWidth);\n\n const wrapper = document.querySelector(\"[data-slot='sidebar-wrapper']\");\n if (wrapper) delete wrapper.dataset.resizing;\n\n isDraggingRef.current = false;\n document.body.style.cursor = \"\";\n document.body.style.userSelect = \"\";\n };\n\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseUp);\n\n return () => {\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseUp);\n };\n }, [isExpandable, isMobile, setSidebarWidth]);\n\n useEffect(() => {\n document.documentElement.style.setProperty(\n \"--nv-sidebar-width\",\n isMobile ? \"0rem\" : `${sidebarWidth / 16}rem`\n );\n }, [sidebarWidth, isMobile]);\n\n const handleGoBack = event => {\n event.preventDefault();\n setSelectedNavLinkRoute(null);\n const configureNavLink = getActiveConfigurePageLink({ navLinks, location });\n if (configureNavLink?.to) {\n history.push(configureNavLink.to);\n }\n };\n\n const activeLink = useMemo(\n () =>\n navLinks.find(link => {\n if (is(Function, link.isActive)) return link.isActive();\n const url = new URL(link.to, window.location.href);\n\n return location.pathname.startsWith(url.pathname);\n }),\n [location.pathname, navLinks]\n );\n\n const isSelectedNavLinkVisible =\n selectedNavLinkRoute &&\n activeLink?.to === selectedNavLinkRoute &&\n isNotEmpty(navLinks);\n\n return (\n <>\n <SidebarComponent\n collapsible=\"offcanvas\"\n data-testid=\"sidebar-wrapper\"\n side={sidebarSide}\n >\n <SidebarHeader className=\"nm-sidebar-shadcn-header relative p-0\">\n <Header\n {...{ customLogo }}\n clearSettingsNav={() => setSelectedNavLinkRoute(null)}\n />\n <SidebarTrigger\n className=\"absolute end-2 top-3\"\n data-testid=\"neeto-molecules-sidebar-toggler\"\n title={t(\"neetoMolecules.sidebar.hideMenu\")}\n />\n {showWorkspaceName && (\n <div className=\"border-sidebar-border border-b px-4 py-2\">\n <h5 className=\"text-sidebar-foreground mb-1 text-sm font-semibold\">\n {t(\"neetoMolecules.sidebar.myWorkspace\")}\n </h5>\n <span className=\"text-sidebar-foreground/70 truncate text-xs\">\n {globalProps.organization.name}\n </span>\n </div>\n )}\n </SidebarHeader>\n <SidebarContent>\n {isSelectedNavLinkVisible ? (\n <ConfigureView {...{ handleGoBack }} navLink={activeLink} />\n ) : (\n <NavLinks\n {...{\n isCountsLoading,\n moreNavLinks,\n navLinks,\n setSelectedNavLinkRoute,\n showWhatsNew,\n }}\n />\n )}\n </SidebarContent>\n {!isMobile && isExpandable && !isSidebarCollapsed && (\n <SidebarRail\n onClickCapture={handleRailClick}\n onMouseDown={handleRailMouseDown}\n />\n )}\n </SidebarComponent>\n {((isMobile && !openMobile) || (!isMobile && isSidebarCollapsed)) && (\n <SidebarTrigger\n className=\"bg-background hover:bg-accent fixed start-2 top-2 z-50 size-9 rounded-full border shadow-sm\"\n data-testid=\"neeto-molecules-sidebar-expander\"\n title={t(\"neetoMolecules.sidebar.showMenu\")}\n />\n )}\n </>\n );\n};\n\nSidebar.propTypes = {\n navLinks: PropTypes.arrayOf(\n PropTypes.shape({\n icon: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.object,\n ]),\n label: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n count: PropTypes.number,\n isActive: PropTypes.func,\n checkpointKey: PropTypes.string,\n isCountsLoading: PropTypes.bool,\n tag: PropTypes.object,\n addActions: PropTypes.arrayOf(\n PropTypes.shape({\n key: PropTypes.string,\n label: PropTypes.string,\n onClick: PropTypes.func,\n })\n ),\n items: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n href: PropTypes.string,\n count: PropTypes.number,\n isActive: PropTypes.func,\n type: PropTypes.string,\n filters: PropTypes.array,\n checkpointKey: PropTypes.string,\n tag: PropTypes.object,\n })\n ),\n })\n ),\n moreNavLinks: PropTypes.arrayOf(\n PropTypes.shape({\n icon: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.object,\n ]),\n label: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n count: PropTypes.number,\n isActive: PropTypes.func,\n checkpointKey: PropTypes.string,\n isCountsLoading: PropTypes.bool,\n tag: PropTypes.object,\n items: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n href: PropTypes.string,\n count: PropTypes.number,\n isActive: PropTypes.func,\n type: PropTypes.string,\n filters: PropTypes.array,\n checkpointKey: PropTypes.string,\n tag: PropTypes.object,\n })\n ),\n })\n ),\n customLogo: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n isCountsLoading: PropTypes.bool,\n showWorkspaceName: PropTypes.bool,\n isExpandable: PropTypes.bool,\n showWhatsNew: PropTypes.bool,\n};\n\nexport default Sidebar;\n"],"names":["createLucideIcon","Header","_ref","_ProductTypefaceLogos","customLogo","clearSettingsNav","productName","globalProps","appName","substr","normalizedName","trim","toLowerCase","specialCase","SPECIAL_APP_NAMES","logoName","concat","capitalize","ProductTypefaceLogo","ProductTypefaceLogos","Neeto","LogoComponent","isOnboarded","user","_jsx","className","children","Link","to","DEFAULT_HOME_PATH","classnames","onClick","sidebarTitle","memo","AddAction","actions","DropdownMenu","dropdownProps","align","side","customTarget","role","tabIndex","e","preventDefault","stopPropagation","Plus","map","action","MenuItem","_action$onClick","call","label","key","PinIcon","size","otherProps","_objectSpread","fill","height","viewBox","width","xmlns","d","UnpinIcon","MoreDropdown","moreNavLinks","isNavLinkPinned","handleTogglePin","_useTranslation","useTranslation","t","isRTL","document","documentElement","dir","SidebarMenuItem","closeOnSelect","position","_jsxs","Ellipsis","filter","filterByPermissions","navLink","index","icon","navLinkKey","tag","IconSVG","isPinned","onSelect","CheckPointNavLinks","Badge","Tooltip","content","Button","variant","event","renderCount","count","NavLinks","navLinks","isCountsLoadingDeprecated","isCountsLoading","setSelectedNavLinkRoute","_ref$showWhatsNew","showWhatsNew","location","useLocation","whatsNewCount","useWhatsNewChangesCount","_useState","useState","_useState2","_slicedToArray","expandedNavLinkKeys","setExpandedNavLinkKeys","_useLocalStorage","useLocalStorage","PINNED_MORE_NAV_LINKS_KEY","_useLocalStorage2","pinnedNavLinks","setPinnedNavLinks","handleNavLinkClick","_ref2","isActive","isExpandable","isPresent","items","component","isConfigureNavLink","isNotEmpty","isExpanded","includes","resetPath","isNot","_toConsumableArray","pinnedItems","activeMoreNavLink","find","pathname","search","startsWith","additionalItems","push","whatsNewNavLink","Megaphone","id","ENGAGE_WIDGET_TRIGGER_ID","String","combinedNavLinks","SidebarGroup","SidebarGroupContent","SidebarMenu","_navLink$isCountsLoad","_navLink$count","Component","_navLink$addActions","addActions","_objectWithoutProperties","_excluded","url","URL","window","href","is","Function","isMenuExpanded","handleCaretClick","keys","append","Fragment","SidebarMenuButton","asChild","activeClassName","hyphenate","style","transform","ChevronRight","_Fragment","SidebarMenuSub","subItem","subIndex","_subItem$to","SubLinkItem","isSectionHeader","item","path","Sidebar","_ref$moreNavLinks","_ref$isCountsLoading","_ref$showWorkspaceNam","showWorkspaceName","_ref$isExpandable","getSidebarStateLocalStorageKey","isSidebarCollapsed","setIsSidebarCollapsed","_useLocalStorage3","SIDEBAR_WIDTH_KEY","DEFAULT_SIDEBAR_WIDTH","_useLocalStorage4","sidebarWidthRaw","setSidebarWidth","sidebarWidth","parseInt","SidebarProvider","open","onOpenChange","SidebarBody","_useSidebar","useSidebar","isMobile","setOpenMobile","openMobile","_useKeyboardShortcuts","useKeyboardShortcutsPaneState","_useKeyboardShortcuts2","isKeyboardShortcutsPaneOpen","_useLocalStorage5","SELECTED_NAV_LINK_ROUTE_STORAGE_KEY","_useLocalStorage6","selectedNavLinkRoute","isDraggingRef","useRef","hasDraggedRef","startXRef","startWidthRef","isInitialMountRef","history","useHistory","sidebarSide","useEffect","current","currentLink","findLast","_ref3","handleRailMouseDown","useCallback","clientX","wrapper","querySelector","dataset","resizing","body","cursor","userSelect","handleRailClick","undefined","onMouseMove","dx","rtl","newWidth","Math","max","MIN_SIDEBAR_WIDTH","min","MAX_SIDEBAR_WIDTH","widthRem","setProperty","onMouseUp","rtlUp","finalWidth","round","addEventListener","removeEventListener","handleGoBack","configureNavLink","getActiveConfigurePageLink","activeLink","useMemo","link","isSelectedNavLinkVisible","SidebarComponent","collapsible","SidebarHeader","SidebarTrigger","title","organization","name","SidebarContent","ConfigureView","SidebarRail","onClickCapture","onMouseDown"],"mappings":"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","x_google_ignoreList":[0]}
@@ -5,9 +5,9 @@ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
5
5
  var shallow = require('zustand/shallow');
6
6
  var React = require('react');
7
7
  var neetoAtoms = require('@bigbinary/neeto-atoms');
8
+ var purify_es = require('../purify.es-BbggLK9I.js');
8
9
  var reactUtils = require('@bigbinary/neeto-commons-frontend/v2/react-utils');
9
10
  var useDisplayErrorPage = require('@bigbinary/neeto-commons-frontend/v2/react-utils/useDisplayErrorPage');
10
- var EditorContent = require('@bigbinary/neeto-editor/v2/EditorContent');
11
11
  var ramda = require('ramda');
12
12
  var reactI18next = require('react-i18next');
13
13
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
@@ -21,8 +21,7 @@ var reactQuery = require('@tanstack/react-query');
21
21
  var neetoCist = require('@bigbinary/neeto-cist');
22
22
  var axios = require('axios');
23
23
  var constants = require('@bigbinary/neeto-commons-frontend/v2/constants');
24
- var utils$1 = require('@bigbinary/neeto-commons-frontend/v2/utils');
25
- var utils = require('@bigbinary/neeto-editor/v2/utils');
24
+ var utils = require('@bigbinary/neeto-commons-frontend/v2/utils');
26
25
  require('../createLucideIcon-BbuuRL2u.js');
27
26
 
28
27
  var QUERY_KEYS = {
@@ -46,6 +45,10 @@ var RIBBON_KIND_CONFIG = {
46
45
  role: "alert"
47
46
  }
48
47
  };
48
+ var VARIABLE_REGEX = /<span[^>]*data-variable[^>]*>\s*{{\s*([\w.]+)\s*}}\s*<\/span>|{{\s*([\w.]+)\s*}}/g;
49
+ var SANITIZE_OPTIONS = {
50
+ ADD_ATTR: ["target"]
51
+ };
49
52
 
50
53
  var _excluded = ["kind", "onDismiss", "children", "className"];
51
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; }
@@ -141,24 +144,28 @@ var useFetchStickyRibbons = function useFetchStickyRibbons() {
141
144
  var dayTimeFormatter = function dayTimeFormatter(timestamp) {
142
145
  return (
143
146
  // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats
144
- utils$1.dayjs.utc(timestamp).local().format(DATE_TIME_FORMAT)
147
+ utils.dayjs.utc(timestamp).local().format(DATE_TIME_FORMAT)
145
148
  );
146
149
  };
150
+ var substituteVariables = function substituteVariables(message, variables) {
151
+ return message.replace(VARIABLE_REGEX, function (match, chipKey, bareKey) {
152
+ var _variables;
153
+ return (_variables = variables[chipKey !== null && chipKey !== void 0 ? chipKey : bareKey]) !== null && _variables !== void 0 ? _variables : match;
154
+ });
155
+ };
147
156
  var formatMessageContent = function formatMessageContent(_ref) {
148
157
  var message = _ref.message,
149
158
  startsAt = _ref.startsAt,
150
159
  endsAt = _ref.endsAt;
151
- return utils.substituteVariables(message, [{
152
- label: "starts_at",
153
- key: "starts_at",
154
- value: dayTimeFormatter(startsAt)
155
- }, {
156
- label: "ends_at",
157
- key: "ends_at",
158
- value: dayTimeFormatter(endsAt)
159
- }]);
160
+ return substituteVariables(message, {
161
+ starts_at: dayTimeFormatter(startsAt),
162
+ ends_at: dayTimeFormatter(endsAt)
163
+ });
160
164
  };
161
165
 
166
+ var sanitize = function sanitize(html) {
167
+ return purify_es.purify.sanitize(html, SANITIZE_OPTIONS);
168
+ };
162
169
  var StickyRibbonsContainer = function StickyRibbonsContainer() {
163
170
  var _data$stickyRibbons;
164
171
  var _useState = React.useState(false),
@@ -220,12 +227,15 @@ var StickyRibbonsContainer = function StickyRibbonsContainer() {
220
227
  onDismiss: function onDismiss() {
221
228
  return handleDismiss(id);
222
229
  }
223
- }, /*#__PURE__*/jsxRuntime.jsx(EditorContent, {
224
- content: formatMessageContent({
225
- message: message,
226
- startsAt: startsAt,
227
- endsAt: endsAt
228
- })
230
+ }, /*#__PURE__*/jsxRuntime.jsx("div", {
231
+ className: "neeto-editor-content neeto-editor-size--small",
232
+ dangerouslySetInnerHTML: {
233
+ __html: sanitize(formatMessageContent({
234
+ message: message,
235
+ startsAt: startsAt,
236
+ endsAt: endsAt
237
+ }))
238
+ }
229
239
  }));
230
240
  })]
231
241
  });
@@ -1 +1 @@
1
- {"version":3,"file":"StickyRibbonsContainer.js","sources":["../../../src/v2/components/StickyRibbonsContainer/constants.js","../../../src/v2/components/StickyRibbonsContainer/Ribbon.jsx","../../../src/v2/components/StickyRibbonsContainer/api.js","../../../src/v2/components/StickyRibbonsContainer/useStickyRibbonsApi.js","../../../src/v2/components/StickyRibbonsContainer/utils.js","../../../src/v2/components/StickyRibbonsContainer/index.jsx"],"sourcesContent":["export const QUERY_KEYS = {\n APP_STICKY_RIBBONS_LIST: \"APP_STICKY_RIBBONS_LIST\",\n};\n\nexport const STICKY_RIBBONS_LOCAL_STORAGE_KEY = \"dismissedStickyRibbons\";\n\nexport const POLLING_INTERVAL = 5000;\nexport const MAX_POLLING_TIME = 60000;\n\nexport const DATE_TIME_FORMAT = \"MMMM D h:mm A z\";\n\nexport const RIBBON_KIND_CONFIG = {\n info: {\n container: \"border-info-border bg-info text-info-foreground\",\n role: \"status\",\n },\n warning: {\n container: \"border-warning-border bg-warning text-warning-foreground\",\n role: \"status\",\n },\n error: {\n container: \"border-error-border bg-error text-error-foreground\",\n role: \"alert\",\n },\n};\n","import {\n Alert,\n AlertAction,\n AlertDescription,\n} from \"@bigbinary/neeto-atoms/primitives\";\nimport classnames from \"classnames\";\nimport { X } from \"lucide-react\";\n\nimport { RIBBON_KIND_CONFIG } from \"./constants\";\n\nconst Ribbon = ({ kind = \"info\", onDismiss, children, className, ...rest }) => {\n const { container, role } =\n RIBBON_KIND_CONFIG[kind] ?? RIBBON_KIND_CONFIG.info;\n\n return (\n <Alert\n {...{ role }}\n className={classnames(\n container,\n \"rounded-none border-x-0 px-12 py-2.5\",\n className\n )}\n {...rest}\n >\n <AlertDescription className=\"text-center text-current\">\n {children}\n </AlertDescription>\n {onDismiss && (\n <AlertAction>\n <button\n aria-label=\"Dismiss\"\n className=\"focus-visible:ring-ring rounded-sm p-0.5 transition-colors hover:bg-current/10 focus-visible:ring-2 focus-visible:outline-none\"\n type=\"button\"\n onClick={onDismiss}\n >\n <X className=\"size-4\" />\n </button>\n </AlertAction>\n )}\n </Alert>\n );\n};\n\nexport default Ribbon;\n","import axios from \"axios\";\nimport { BASE_API_V1_URL } from \"neetocommons/v2/constants\";\n\nconst fetchStickyRibbons = () =>\n axios.get(`${BASE_API_V1_URL}/sticky_ribbons`, {\n includeMetadataInResponse: true,\n });\n\nconst stickyRibbonsApi = { fetchStickyRibbons };\n\nexport default stickyRibbonsApi;\n","import { useState, useEffect } from \"react\";\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { noop } from \"neetocist\";\n\nimport stickyRibbonsApi from \"./api\";\nimport { QUERY_KEYS, POLLING_INTERVAL, MAX_POLLING_TIME } from \"./constants\";\n\nconst { APP_STICKY_RIBBONS_LIST } = QUERY_KEYS;\n\nconst useFetchStickyRibbons = () => {\n const [isPolling, setIsPolling] = useState(false);\n\n useEffect(() => {\n if (!isPolling) return noop;\n\n const timer = setTimeout(() => {\n setIsPolling(false);\n }, MAX_POLLING_TIME);\n\n return () => {\n clearTimeout(timer);\n };\n }, [isPolling]);\n\n return useQuery({\n queryKey: [APP_STICKY_RIBBONS_LIST],\n queryFn: async () => {\n const response = await stickyRibbonsApi.fetchStickyRibbons();\n\n if (response.status === 202) {\n setIsPolling(true);\n } else if (response.status === 200) {\n setIsPolling(false);\n }\n\n return response.data;\n },\n refetchInterval: isPolling ? POLLING_INTERVAL : false,\n });\n};\n\nexport { useFetchStickyRibbons };\n","import { dayjs } from \"neetocommons/v2/utils\";\nimport { substituteVariables } from \"neetoeditor/v2\";\n\nimport { DATE_TIME_FORMAT } from \"./constants\";\n\nconst dayTimeFormatter = timestamp =>\n // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats\n dayjs.utc(timestamp).local().format(DATE_TIME_FORMAT);\n\nexport const formatMessageContent = ({ message, startsAt, endsAt }) =>\n substituteVariables(message, [\n {\n label: \"starts_at\",\n key: \"starts_at\",\n value: dayTimeFormatter(startsAt),\n },\n {\n label: \"ends_at\",\n key: \"ends_at\",\n value: dayTimeFormatter(endsAt),\n },\n ]);\n","import { useState } from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport { useLocalStorage } from \"neetocommons/v2/react-utils\";\nimport { useErrorDisplayStore } from \"neetocommons/v2/react-utils/useDisplayErrorPage\";\nimport { EditorContent } from \"neetoeditor/v2\";\nimport { pluck } from \"ramda\";\nimport { Trans } from \"react-i18next\";\n\nimport { STICKY_RIBBONS_LOCAL_STORAGE_KEY } from \"./constants\";\nimport Ribbon from \"./Ribbon\";\nimport { useFetchStickyRibbons } from \"./useStickyRibbonsApi\";\nimport { formatMessageContent } from \"./utils\";\n\nconst StickyRibbonsContainer = () => {\n const [isRefreshRibbonDismissed, setIsRefreshRibbonDismissed] =\n useState(false);\n\n const [dismissedRibbons, setDismissedRibbons] = useLocalStorage(\n STICKY_RIBBONS_LOCAL_STORAGE_KEY,\n []\n );\n\n const { showRefreshRibbon } = useErrorDisplayStore.pick();\n\n const { data } = useFetchStickyRibbons();\n const stickyRibbons = data?.stickyRibbons ?? [];\n\n const handleDismiss = ribbonId => {\n const validRibbonIds = pluck(\"id\", stickyRibbons);\n const updatedDismissedRibbons = dismissedRibbons.filter(id =>\n validRibbonIds.includes(id)\n );\n\n setDismissedRibbons([...updatedDismissedRibbons, ribbonId]);\n };\n\n const visibleRibbons = stickyRibbons.filter(\n ribbon => !dismissedRibbons.includes(ribbon.id)\n );\n\n return (\n <>\n {showRefreshRibbon && !isRefreshRibbonDismissed && (\n <Ribbon\n data-testid=\"refresh-sticky-ribbon\"\n kind=\"error\"\n onDismiss={() => setIsRefreshRibbonDismissed(true)}\n >\n <Trans\n i18nKey=\"neetoMolecules.stickyRibbonsContainer.refreshRibbon\"\n components={{\n button: (\n <Button\n data-testid=\"refresh-button\"\n variant=\"link\"\n onClick={() => window.location.reload()}\n />\n ),\n }}\n />\n </Ribbon>\n )}\n {visibleRibbons.map(({ id, kind, message, startsAt, endsAt }) => (\n <Ribbon\n {...{ kind }}\n data-testid=\"sticky-ribbon\"\n key={id}\n onDismiss={() => handleDismiss(id)}\n >\n <EditorContent\n content={formatMessageContent({ message, startsAt, endsAt })}\n />\n </Ribbon>\n ))}\n </>\n );\n};\n\nexport default StickyRibbonsContainer;\n"],"names":["QUERY_KEYS","APP_STICKY_RIBBONS_LIST","STICKY_RIBBONS_LOCAL_STORAGE_KEY","POLLING_INTERVAL","MAX_POLLING_TIME","DATE_TIME_FORMAT","RIBBON_KIND_CONFIG","info","container","role","warning","error","Ribbon","_ref","_RIBBON_KIND_CONFIG$k","_ref$kind","kind","onDismiss","children","className","rest","_objectWithoutProperties","_excluded","_ref2","_jsxs","Alert","_objectSpread","classnames","_jsx","AlertDescription","AlertAction","type","onClick","X","fetchStickyRibbons","axios","get","concat","BASE_API_V1_URL","includeMetadataInResponse","stickyRibbonsApi","e","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","useFetchStickyRibbons","_useState","useState","_useState2","_slicedToArray","isPolling","setIsPolling","useEffect","noop","timer","setTimeout","clearTimeout","useQuery","queryKey","queryFn","_queryFn","_asyncToGenerator","_callee","response","_context","status","data","apply","arguments","refetchInterval","dayTimeFormatter","timestamp","dayjs","utc","local","format","formatMessageContent","message","startsAt","endsAt","substituteVariables","label","key","StickyRibbonsContainer","_data$stickyRibbons","isRefreshRibbonDismissed","setIsRefreshRibbonDismissed","_useLocalStorage","useLocalStorage","_useLocalStorage2","dismissedRibbons","setDismissedRibbons","_useErrorDisplayStore","useErrorDisplayStore","useShallow","store","showRefreshRibbon","_useFetchStickyRibbon","stickyRibbons","handleDismiss","ribbonId","validRibbonIds","pluck","updatedDismissedRibbons","filter","id","includes","_toConsumableArray","visibleRibbons","ribbon","_Fragment","Trans","i18nKey","components","button","Button","variant","window","location","reload","map","_createElement","EditorContent","content"],"mappings":"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"}
1
+ {"version":3,"file":"StickyRibbonsContainer.js","sources":["../../../src/v2/components/StickyRibbonsContainer/constants.js","../../../src/v2/components/StickyRibbonsContainer/Ribbon.jsx","../../../src/v2/components/StickyRibbonsContainer/api.js","../../../src/v2/components/StickyRibbonsContainer/useStickyRibbonsApi.js","../../../src/v2/components/StickyRibbonsContainer/utils.js","../../../src/v2/components/StickyRibbonsContainer/index.jsx"],"sourcesContent":["export const QUERY_KEYS = {\n APP_STICKY_RIBBONS_LIST: \"APP_STICKY_RIBBONS_LIST\",\n};\n\nexport const STICKY_RIBBONS_LOCAL_STORAGE_KEY = \"dismissedStickyRibbons\";\n\nexport const POLLING_INTERVAL = 5000;\nexport const MAX_POLLING_TIME = 60000;\n\nexport const DATE_TIME_FORMAT = \"MMMM D h:mm A z\";\n\nexport const RIBBON_KIND_CONFIG = {\n info: {\n container: \"border-info-border bg-info text-info-foreground\",\n role: \"status\",\n },\n warning: {\n container: \"border-warning-border bg-warning text-warning-foreground\",\n role: \"status\",\n },\n error: {\n container: \"border-error-border bg-error text-error-foreground\",\n role: \"alert\",\n },\n};\n\nexport const VARIABLE_REGEX =\n /<span[^>]*data-variable[^>]*>\\s*{{\\s*([\\w.]+)\\s*}}\\s*<\\/span>|{{\\s*([\\w.]+)\\s*}}/g;\n\nexport const SANITIZE_OPTIONS = { ADD_ATTR: [\"target\"] };\n","import {\n Alert,\n AlertAction,\n AlertDescription,\n} from \"@bigbinary/neeto-atoms/primitives\";\nimport classnames from \"classnames\";\nimport { X } from \"lucide-react\";\n\nimport { RIBBON_KIND_CONFIG } from \"./constants\";\n\nconst Ribbon = ({ kind = \"info\", onDismiss, children, className, ...rest }) => {\n const { container, role } =\n RIBBON_KIND_CONFIG[kind] ?? RIBBON_KIND_CONFIG.info;\n\n return (\n <Alert\n {...{ role }}\n className={classnames(\n container,\n \"rounded-none border-x-0 px-12 py-2.5\",\n className\n )}\n {...rest}\n >\n <AlertDescription className=\"text-center text-current\">\n {children}\n </AlertDescription>\n {onDismiss && (\n <AlertAction>\n <button\n aria-label=\"Dismiss\"\n className=\"focus-visible:ring-ring rounded-sm p-0.5 transition-colors hover:bg-current/10 focus-visible:ring-2 focus-visible:outline-none\"\n type=\"button\"\n onClick={onDismiss}\n >\n <X className=\"size-4\" />\n </button>\n </AlertAction>\n )}\n </Alert>\n );\n};\n\nexport default Ribbon;\n","import axios from \"axios\";\nimport { BASE_API_V1_URL } from \"neetocommons/v2/constants\";\n\nconst fetchStickyRibbons = () =>\n axios.get(`${BASE_API_V1_URL}/sticky_ribbons`, {\n includeMetadataInResponse: true,\n });\n\nconst stickyRibbonsApi = { fetchStickyRibbons };\n\nexport default stickyRibbonsApi;\n","import { useState, useEffect } from \"react\";\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { noop } from \"neetocist\";\n\nimport stickyRibbonsApi from \"./api\";\nimport { QUERY_KEYS, POLLING_INTERVAL, MAX_POLLING_TIME } from \"./constants\";\n\nconst { APP_STICKY_RIBBONS_LIST } = QUERY_KEYS;\n\nconst useFetchStickyRibbons = () => {\n const [isPolling, setIsPolling] = useState(false);\n\n useEffect(() => {\n if (!isPolling) return noop;\n\n const timer = setTimeout(() => {\n setIsPolling(false);\n }, MAX_POLLING_TIME);\n\n return () => {\n clearTimeout(timer);\n };\n }, [isPolling]);\n\n return useQuery({\n queryKey: [APP_STICKY_RIBBONS_LIST],\n queryFn: async () => {\n const response = await stickyRibbonsApi.fetchStickyRibbons();\n\n if (response.status === 202) {\n setIsPolling(true);\n } else if (response.status === 200) {\n setIsPolling(false);\n }\n\n return response.data;\n },\n refetchInterval: isPolling ? POLLING_INTERVAL : false,\n });\n};\n\nexport { useFetchStickyRibbons };\n","import { dayjs } from \"neetocommons/v2/utils\";\n\nimport { DATE_TIME_FORMAT, VARIABLE_REGEX } from \"./constants\";\n\nconst dayTimeFormatter = timestamp =>\n // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats\n dayjs.utc(timestamp).local().format(DATE_TIME_FORMAT);\n\nexport const substituteVariables = (message, variables) =>\n message.replace(\n VARIABLE_REGEX,\n (match, chipKey, bareKey) => variables[chipKey ?? bareKey] ?? match\n );\n\nexport const formatMessageContent = ({ message, startsAt, endsAt }) =>\n substituteVariables(message, {\n starts_at: dayTimeFormatter(startsAt),\n ends_at: dayTimeFormatter(endsAt),\n });\n","import { useState } from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport DOMPurify from \"dompurify\";\nimport { useLocalStorage } from \"neetocommons/v2/react-utils\";\nimport { useErrorDisplayStore } from \"neetocommons/v2/react-utils/useDisplayErrorPage\";\nimport { pluck } from \"ramda\";\nimport { Trans } from \"react-i18next\";\n\nimport {\n SANITIZE_OPTIONS,\n STICKY_RIBBONS_LOCAL_STORAGE_KEY,\n} from \"./constants\";\nimport Ribbon from \"./Ribbon\";\nimport { useFetchStickyRibbons } from \"./useStickyRibbonsApi\";\nimport { formatMessageContent } from \"./utils\";\n\nconst sanitize = html => DOMPurify.sanitize(html, SANITIZE_OPTIONS);\n\nconst StickyRibbonsContainer = () => {\n const [isRefreshRibbonDismissed, setIsRefreshRibbonDismissed] =\n useState(false);\n\n const [dismissedRibbons, setDismissedRibbons] = useLocalStorage(\n STICKY_RIBBONS_LOCAL_STORAGE_KEY,\n []\n );\n\n const { showRefreshRibbon } = useErrorDisplayStore.pick();\n\n const { data } = useFetchStickyRibbons();\n const stickyRibbons = data?.stickyRibbons ?? [];\n\n const handleDismiss = ribbonId => {\n const validRibbonIds = pluck(\"id\", stickyRibbons);\n const updatedDismissedRibbons = dismissedRibbons.filter(id =>\n validRibbonIds.includes(id)\n );\n\n setDismissedRibbons([...updatedDismissedRibbons, ribbonId]);\n };\n\n const visibleRibbons = stickyRibbons.filter(\n ribbon => !dismissedRibbons.includes(ribbon.id)\n );\n\n return (\n <>\n {showRefreshRibbon && !isRefreshRibbonDismissed && (\n <Ribbon\n data-testid=\"refresh-sticky-ribbon\"\n kind=\"error\"\n onDismiss={() => setIsRefreshRibbonDismissed(true)}\n >\n <Trans\n i18nKey=\"neetoMolecules.stickyRibbonsContainer.refreshRibbon\"\n components={{\n button: (\n <Button\n data-testid=\"refresh-button\"\n variant=\"link\"\n onClick={() => window.location.reload()}\n />\n ),\n }}\n />\n </Ribbon>\n )}\n {visibleRibbons.map(({ id, kind, message, startsAt, endsAt }) => (\n <Ribbon\n {...{ kind }}\n data-testid=\"sticky-ribbon\"\n key={id}\n onDismiss={() => handleDismiss(id)}\n >\n <div\n className=\"neeto-editor-content neeto-editor-size--small\"\n dangerouslySetInnerHTML={{\n __html: sanitize(\n formatMessageContent({ message, startsAt, endsAt })\n ),\n }}\n />\n </Ribbon>\n ))}\n </>\n );\n};\n\nexport default StickyRibbonsContainer;\n"],"names":["QUERY_KEYS","APP_STICKY_RIBBONS_LIST","STICKY_RIBBONS_LOCAL_STORAGE_KEY","POLLING_INTERVAL","MAX_POLLING_TIME","DATE_TIME_FORMAT","RIBBON_KIND_CONFIG","info","container","role","warning","error","VARIABLE_REGEX","SANITIZE_OPTIONS","ADD_ATTR","Ribbon","_ref","_RIBBON_KIND_CONFIG$k","_ref$kind","kind","onDismiss","children","className","rest","_objectWithoutProperties","_excluded","_ref2","_jsxs","Alert","_objectSpread","classnames","_jsx","AlertDescription","AlertAction","type","onClick","X","fetchStickyRibbons","axios","get","concat","BASE_API_V1_URL","includeMetadataInResponse","stickyRibbonsApi","e","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","useFetchStickyRibbons","_useState","useState","_useState2","_slicedToArray","isPolling","setIsPolling","useEffect","noop","timer","setTimeout","clearTimeout","useQuery","queryKey","queryFn","_queryFn","_asyncToGenerator","_callee","response","_context","status","data","apply","arguments","refetchInterval","dayTimeFormatter","timestamp","dayjs","utc","local","format","substituteVariables","message","variables","replace","match","chipKey","bareKey","_variables","formatMessageContent","startsAt","endsAt","starts_at","ends_at","sanitize","html","DOMPurify","StickyRibbonsContainer","_data$stickyRibbons","isRefreshRibbonDismissed","setIsRefreshRibbonDismissed","_useLocalStorage","useLocalStorage","_useLocalStorage2","dismissedRibbons","setDismissedRibbons","_useErrorDisplayStore","useErrorDisplayStore","useShallow","store","showRefreshRibbon","_useFetchStickyRibbon","stickyRibbons","handleDismiss","ribbonId","validRibbonIds","pluck","updatedDismissedRibbons","filter","id","includes","_toConsumableArray","visibleRibbons","ribbon","_Fragment","Trans","i18nKey","components","button","Button","variant","window","location","reload","map","_createElement","key","dangerouslySetInnerHTML","__html"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,IAAMA,UAAU,GAAG;AACxBC,EAAAA,uBAAuB,EAAE;AAC3B,CAAC;AAEM,IAAMC,gCAAgC,GAAG,wBAAwB;AAEjE,IAAMC,gBAAgB,GAAG,IAAI;AAC7B,IAAMC,gBAAgB,GAAG,KAAK;AAE9B,IAAMC,gBAAgB,GAAG,iBAAiB;AAE1C,IAAMC,kBAAkB,GAAG;AAChCC,EAAAA,IAAI,EAAE;AACJC,IAAAA,SAAS,EAAE,iDAAiD;AAC5DC,IAAAA,IAAI,EAAE;GACP;AACDC,EAAAA,OAAO,EAAE;AACPF,IAAAA,SAAS,EAAE,0DAA0D;AACrEC,IAAAA,IAAI,EAAE;GACP;AACDE,EAAAA,KAAK,EAAE;AACLH,IAAAA,SAAS,EAAE,oDAAoD;AAC/DC,IAAAA,IAAI,EAAE;AACR;AACF,CAAC;AAEM,IAAMG,cAAc,GACzB,mFAAmF;AAE9E,IAAMC,gBAAgB,GAAG;EAAEC,QAAQ,EAAE,CAAC,QAAQ;AAAE,CAAC;;;;;ACnBxD,IAAMC,MAAM,GAAG,SAATA,MAAMA,CAAAC,IAAA,EAAmE;AAAA,EAAA,IAAAC,qBAAA;AAAA,EAAA,IAAAC,SAAA,GAAAF,IAAA,CAA7DG,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAA,MAAA,GAAG,MAAM,GAAAA,SAAA;IAAEE,SAAS,GAAAJ,IAAA,CAATI,SAAS;IAAEC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IAAEC,SAAS,GAAAN,IAAA,CAATM,SAAS;AAAKC,IAAAA,IAAI,GAAAC,wBAAA,CAAAR,IAAA,EAAAS,SAAA,CAAA;AACtE,EAAA,IAAAC,KAAA,GAAA,CAAAT,qBAAA,GACEX,kBAAkB,CAACa,IAAI,CAAC,MAAA,IAAA,IAAAF,qBAAA,KAAA,MAAA,GAAAA,qBAAA,GAAIX,kBAAkB,CAACC,IAAI;IAD7CC,SAAS,GAAAkB,KAAA,CAATlB,SAAS;IAAEC,IAAI,GAAAiB,KAAA,CAAJjB,IAAI;AAGvB,EAAA,oBACEkB,eAAA,CAACC,gBAAK,EAAAC,aAAA,CAAAA,aAAA,CAAA;AACEpB,IAAAA,IAAI,EAAJA,IAAI;AACVa,IAAAA,SAAS,EAAEQ,UAAU,CACnBtB,SAAS,EACT,sCAAsC,EACtCc,SACF;AAAE,GAAA,EACEC,IAAI,CAAA,EAAA,EAAA,EAAA;IAAAF,QAAA,EAAA,cAERU,cAAA,CAACC,2BAAgB,EAAA;AAACV,MAAAA,SAAS,EAAC,0BAA0B;AAAAD,MAAAA,QAAA,EACnDA;AAAQ,KACO,CAAC,EAClBD,SAAS,iBACRW,cAAA,CAACE,sBAAW,EAAA;AAAAZ,MAAAA,QAAA,eACVU,cAAA,CAAA,QAAA,EAAA;AACE,QAAA,YAAA,EAAW,SAAS;AACpBT,QAAAA,SAAS,EAAC,gIAAgI;AAC1IY,QAAAA,IAAI,EAAC,QAAQ;AACbC,QAAAA,OAAO,EAAEf,SAAU;QAAAC,QAAA,eAEnBU,cAAA,CAACK,GAAC,EAAA;AAACd,UAAAA,SAAS,EAAC;SAAU;OACjB;AAAC,KACE,CACd;AAAA,GAAA,CACI,CAAC;AAEZ,CAAC;;ACtCD,IAAMe,kBAAkB,GAAG,SAArBA,kBAAkBA,GAAA;AAAA,EAAA,OACtBC,KAAK,CAACC,GAAG,IAAAC,MAAA,CAAIC,yBAAe,EAAA,iBAAA,CAAA,EAAmB;AAC7CC,IAAAA,yBAAyB,EAAE;AAC7B,GAAC,CAAC;AAAA,CAAA;AAEJ,IAAMC,gBAAgB,GAAG;AAAEN,EAAAA,kBAAkB,EAAlBA;AAAmB,CAAC;;ACP/C,SAAA,YAAA,GAAA,qKAAA,IAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,GAAA,UAAA,IAAA,OAAAC,MAAA,GAAAA,MAAA,GAAA,EAAA,EAAAC,CAAA,GAAAF,CAAA,CAAAG,QAAA,IAAA,YAAA,EAAAC,CAAA,GAAAJ,CAAA,CAAAK,WAAA,IAAA,eAAA,CAAA,CAAA,SAAAC,EAAAN,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAA,EAAA,IAAAC,CAAA,GAAAL,CAAA,IAAAA,CAAA,CAAAM,SAAA,YAAAC,SAAA,GAAAP,CAAA,GAAAO,SAAA,EAAAC,CAAA,GAAAC,MAAA,CAAAC,MAAA,CAAAL,CAAA,CAAAC,SAAA,CAAA,CAAA,CAAA,OAAAK,mBAAA,CAAAH,CAAA,EAAA,SAAA,EAAA,UAAAV,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAA,EAAA,IAAAE,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAI,CAAA,GAAA,CAAA,EAAAC,CAAA,GAAAX,CAAA,IAAA,EAAA,EAAAY,CAAA,GAAA,KAAA,EAAAC,CAAA,GAAA,EAAAF,CAAA,EAAA,CAAA,EAAAb,CAAA,EAAA,CAAA,EAAAgB,CAAA,EAAApB,CAAA,EAAAqB,CAAA,EAAAC,CAAA,EAAAN,CAAA,EAAAM,CAAA,CAAAC,IAAA,CAAAvB,CAAA,EAAA,CAAA,CAAA,EAAAsB,CAAA,WAAAA,CAAAA,CAAArB,CAAA,EAAAC,CAAA,WAAAM,CAAA,GAAAP,CAAA,EAAAQ,CAAA,GAAA,CAAA,EAAAG,CAAA,GAAAZ,CAAA,EAAAmB,CAAA,CAAAf,CAAA,GAAAF,CAAA,EAAAmB,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,SAAAC,EAAApB,CAAA,EAAAE,CAAA,EAAA,EAAA,KAAAK,CAAA,GAAAP,CAAA,EAAAU,CAAA,GAAAR,CAAA,EAAAH,CAAA,OAAAiB,CAAA,IAAAF,CAAA,IAAA,CAAAV,CAAA,IAAAL,CAAA,GAAAgB,CAAA,CAAAO,MAAA,EAAAvB,CAAA,UAAAK,CAAA,EAAAE,CAAA,GAAAS,CAAA,CAAAhB,CAAA,CAAA,EAAAqB,CAAA,GAAAH,CAAA,CAAAF,CAAA,EAAAQ,CAAA,GAAAjB,CAAA,KAAAN,CAAA,GAAA,CAAA,GAAA,CAAAI,CAAA,GAAAmB,CAAA,KAAArB,CAAA,MAAAQ,CAAA,GAAAJ,CAAA,CAAA,CAAAC,CAAA,GAAAD,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAAC,CAAA,GAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAAD,CAAA,CAAA,CAAA,CAAA,GAAAA,CAAA,CAAA,CAAA,CAAA,GAAAR,CAAA,IAAAQ,CAAA,CAAA,CAAA,CAAA,IAAAc,CAAA,KAAA,CAAAhB,CAAA,GAAAJ,CAAA,GAAA,CAAA,IAAAoB,CAAA,GAAAd,CAAA,CAAA,CAAA,CAAA,KAAAC,CAAA,MAAAU,CAAA,CAAAC,CAAA,GAAAhB,CAAA,EAAAe,CAAA,CAAAf,CAAA,GAAAI,CAAA,CAAA,CAAA,CAAA,IAAAc,CAAA,GAAAG,CAAA,KAAAnB,CAAA,GAAAJ,CAAA,GAAA,CAAA,IAAAM,CAAA,CAAA,CAAA,CAAA,GAAAJ,CAAA,IAAAA,CAAA,GAAAqB,CAAA,MAAAjB,CAAA,CAAA,CAAA,CAAA,GAAAN,CAAA,EAAAM,CAAA,CAAA,CAAA,CAAA,GAAAJ,CAAA,EAAAe,CAAA,CAAAf,CAAA,GAAAqB,CAAA,EAAAhB,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAAH,CAAA,IAAAJ,CAAA,GAAA,CAAA,EAAA,OAAAmB,CAAA,CAAA,CAAA,MAAAH,CAAA,GAAA,IAAA,EAAAd,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,UAAAE,CAAA,EAAAW,CAAA,EAAAQ,CAAA,EAAA,EAAA,IAAAT,CAAA,GAAA,CAAA,EAAA,MAAAU,SAAA,CAAA,8BAAA,CAAA,CAAA,CAAA,KAAAR,CAAA,UAAAD,CAAA,IAAAK,CAAA,CAAAL,CAAA,EAAAQ,CAAA,CAAA,EAAAhB,CAAA,GAAAQ,CAAA,EAAAL,CAAA,GAAAa,CAAA,EAAA,CAAAxB,CAAA,GAAAQ,CAAA,GAAA,CAAA,GAAAT,CAAA,GAAAY,CAAA,KAAA,CAAAM,CAAA,GAAA,EAAAV,CAAA,KAAAC,CAAA,GAAAA,CAAA,GAAA,CAAA,IAAAA,CAAA,GAAA,CAAA,KAAAU,CAAA,CAAAf,CAAA,GAAA,EAAA,CAAA,EAAAkB,CAAA,CAAAb,CAAA,EAAAG,CAAA,CAAA,IAAAO,CAAA,CAAAf,CAAA,GAAAQ,CAAA,GAAAO,CAAA,CAAAC,CAAA,GAAAR,CAAA,aAAAI,CAAA,GAAA,CAAA,EAAAR,CAAA,EAAA,EAAA,IAAAC,CAAA,KAAAH,CAAA,GAAA,MAAA,CAAA,EAAAL,CAAA,GAAAO,CAAA,CAAAF,CAAA,WAAAL,CAAA,GAAAA,CAAA,CAAA0B,IAAA,CAAAnB,CAAA,EAAAI,CAAA,CAAA,CAAA,EAAA,MAAAc,SAAA,CAAA,kCAAA,CAAA,CAAA,CAAA,IAAA,CAAAzB,CAAA,CAAA2B,IAAA,EAAA,OAAA3B,CAAA,CAAA,CAAAW,CAAA,GAAAX,CAAA,CAAA4B,KAAA,EAAApB,CAAA,GAAA,CAAA,KAAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,KAAAA,CAAA,KAAAR,CAAA,GAAAO,CAAA,CAAA,QAAA,CAAA,CAAA,IAAAP,CAAA,CAAA0B,IAAA,CAAAnB,CAAA,CAAA,EAAAC,CAAA,SAAAG,CAAA,GAAAc,SAAA,CAAA,mCAAA,GAAApB,CAAA,GAAA,UAAA,CAAA,EAAAG,CAAA,GAAA,CAAA,CAAA,CAAA,CAAAD,CAAA,GAAAR,CAAA,CAAA,CAAA,CAAA,MAAA,IAAA,CAAAC,CAAA,IAAAiB,CAAA,GAAAC,CAAA,CAAAf,CAAA,GAAA,CAAA,IAAAQ,CAAA,GAAAV,CAAA,CAAAyB,IAAA,CAAAvB,CAAA,EAAAe,CAAA,CAAA,MAAAE,CAAA,EAAA,MAAA,CAAA,CAAA,CAAA,OAAApB,CAAA,EAAA,EAAAO,CAAA,GAAAR,CAAA,EAAAS,CAAA,GAAA,CAAA,EAAAG,CAAA,GAAAX,CAAA,CAAA,CAAA,CAAA,SAAA,EAAAe,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAAa,KAAA,EAAA5B,CAAA,EAAA2B,IAAA,EAAAV,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAhB,CAAA,EAAAI,CAAA,EAAAE,CAAA,CAAA,EAAA,IAAA,CAAA,EAAAI,CAAA,CAAA,CAAA,CAAA,CAAA,IAAAS,CAAA,GAAA,EAAA,CAAA,CAAA,SAAAV,SAAAA,eAAAmB,iBAAAA,GAAA,CAAA,CAAA,CAAA,SAAAC,0BAAAA,GAAA,CAAA,CAAA,CAAA9B,CAAA,GAAAY,MAAA,CAAAmB,cAAA,CAAA,CAAA,IAAAvB,CAAA,GAAA,EAAA,CAAAL,CAAA,CAAA,GAAAH,CAAA,CAAAA,CAAA,IAAAG,CAAA,CAAA,EAAA,CAAA,CAAA,IAAAW,mBAAA,CAAAd,CAAA,GAAA,EAAA,EAAAG,CAAA,EAAA,YAAA,EAAA,OAAA,IAAA,CAAA,CAAA,CAAA,CAAA,EAAAH,CAAA,GAAAW,CAAA,GAAAmB,0BAAA,CAAArB,SAAA,GAAAC,SAAA,CAAAD,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAL,CAAA,CAAA,CAAA,CAAA,SAAAO,CAAAA,CAAAhB,CAAA,WAAAa,MAAA,CAAAoB,cAAA,GAAApB,MAAA,CAAAoB,cAAA,CAAAjC,CAAA,EAAA+B,0BAAA,CAAA,IAAA/B,CAAA,CAAAkC,SAAA,GAAAH,0BAAA,EAAAhB,mBAAA,CAAAf,CAAA,EAAAM,CAAA,EAAA,mBAAA,CAAA,CAAA,EAAAN,CAAA,CAAAU,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAF,CAAA,CAAA,EAAAZ,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA8B,iBAAA,CAAApB,SAAA,GAAAqB,0BAAA,EAAAhB,mBAAA,CAAAH,CAAA,iBAAAmB,0BAAA,CAAA,EAAAhB,mBAAA,CAAAgB,0BAAA,EAAA,aAAA,EAAAD,iBAAA,CAAA,EAAAA,iBAAA,CAAAK,WAAA,GAAA,mBAAA,EAAApB,mBAAA,CAAAgB,0BAAA,EAAAzB,CAAA,EAAA,mBAAA,CAAA,EAAAS,mBAAA,CAAAH,CAAA,CAAA,EAAAG,mBAAA,CAAAH,CAAA,EAAAN,CAAA,EAAA,WAAA,CAAA,EAAAS,mBAAA,CAAAH,CAAA,EAAAR,CAAA,EAAA,YAAA,EAAA,OAAA,IAAA,CAAA,CAAA,CAAA,CAAA,EAAAW,mBAAA,CAAAH,CAAA,8DAAAwB,YAAA,GAAA,SAAAA,YAAAA,GAAA,EAAA,OAAA,EAAAC,CAAA,EAAA7B,CAAA,EAAA8B,CAAA,EAAAtB,CAAA,EAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA;AAAA,SAAAD,mBAAAA,CAAAf,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAH,CAAA,EAAA,EAAA,IAAAO,CAAA,GAAAK,MAAA,CAAA0B,cAAA,CAAA,CAAA,IAAA,EAAA/B,CAAA,uBAAAR,CAAA,EAAA,EAAAQ,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAAO,mBAAA,GAAA,SAAAyB,mBAAAxC,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAH,CAAA,EAAA,EAAA,SAAAK,CAAAA,CAAAJ,CAAA,EAAAE,CAAA,IAAAW,mBAAA,CAAAf,CAAA,EAAAE,CAAA,YAAAF,CAAA,EAAA,EAAA,OAAA,IAAA,CAAAyC,OAAA,CAAAvC,CAAA,EAAAE,CAAA,EAAAJ,CAAA,SAAAE,CAAA,GAAAM,CAAA,GAAAA,CAAA,CAAAR,CAAA,EAAAE,CAAA,IAAA2B,KAAA,EAAAzB,CAAA,EAAAsC,UAAA,GAAAzC,CAAA,EAAA0C,YAAA,EAAA,CAAA1C,CAAA,EAAA2C,QAAA,EAAA,CAAA3C,CAAA,MAAAD,CAAA,CAAAE,CAAA,CAAA,GAAAE,CAAA,IAAAE,CAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAAA,CAAA,cAAAA,CAAA,CAAA,QAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAAS,mBAAA,CAAAf,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAH,CAAA,CAAA,CAAA,CAAA;AAOA,IAAQ5C,uBAAuB,GAAKD,UAAU,CAAtCC,uBAAuB;AAE/B,IAAMwF,qBAAqB,GAAG,SAAxBA,qBAAqBA,GAAS;AAClC,EAAA,IAAAC,SAAA,GAAkCC,cAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA1CI,IAAAA,SAAS,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,YAAY,GAAAH,UAAA,CAAA,CAAA,CAAA;AAE9BI,EAAAA,eAAS,CAAC,YAAM;AACd,IAAA,IAAI,CAACF,SAAS,EAAE,OAAOG,cAAI;AAE3B,IAAA,IAAMC,KAAK,GAAGC,UAAU,CAAC,YAAM;MAC7BJ,YAAY,CAAC,KAAK,CAAC;IACrB,CAAC,EAAE3F,gBAAgB,CAAC;AAEpB,IAAA,OAAO,YAAM;MACXgG,YAAY,CAACF,KAAK,CAAC;IACrB,CAAC;AACH,EAAA,CAAC,EAAE,CAACJ,SAAS,CAAC,CAAC;AAEf,EAAA,OAAOO,mBAAQ,CAAC;IACdC,QAAQ,EAAE,CAACrG,uBAAuB,CAAC;IACnCsG,OAAO,EAAA,YAAA;MAAA,IAAAC,QAAA,GAAAC,iBAAA,cAAAzB,YAAA,EAAA,CAAAE,CAAA,CAAE,SAAAwB,OAAAA,GAAA;AAAA,QAAA,IAAAC,QAAA;AAAA,QAAA,OAAA3B,YAAA,EAAA,CAAAC,CAAA,CAAA,UAAA2B,QAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAA5D,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA4D,cAAAA,QAAA,CAAA5D,CAAA,GAAA,CAAA;AAAA,cAAA,OACgBL,gBAAgB,CAACN,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAAtDsE,QAAQ,GAAAC,QAAA,CAAA5C,CAAA;AAEd,cAAA,IAAI2C,QAAQ,CAACE,MAAM,KAAK,GAAG,EAAE;gBAC3Bd,YAAY,CAAC,IAAI,CAAC;AACpB,cAAA,CAAC,MAAM,IAAIY,QAAQ,CAACE,MAAM,KAAK,GAAG,EAAE;gBAClCd,YAAY,CAAC,KAAK,CAAC;AACrB,cAAA;AAAC,cAAA,OAAAa,QAAA,CAAA3C,CAAA,CAAA,CAAA,EAEM0C,QAAQ,CAACG,IAAI,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAJ,OAAA,CAAA;MAAA,CACrB,CAAA,CAAA;AAAA,MAAA,SAVDH,OAAOA,GAAA;AAAA,QAAA,OAAAC,QAAA,CAAAO,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAPT,OAAO;IAAA,CAAA,EAUN;AACDU,IAAAA,eAAe,EAAEnB,SAAS,GAAG3F,gBAAgB,GAAG;AAClD,GAAC,CAAC;AACJ,CAAC;;ACpCD,IAAM+G,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGC,SAAS,EAAA;AAAA,EAAA;AAChC;AACAC,IAAAA,WAAK,CAACC,GAAG,CAACF,SAAS,CAAC,CAACG,KAAK,EAAE,CAACC,MAAM,CAAClH,gBAAgB;AAAC;AAAA,CAAA;AAEhD,IAAMmH,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,OAAO,EAAEC,SAAS,EAAA;EAAA,OACpDD,OAAO,CAACE,OAAO,CACb/G,cAAc,EACd,UAACgH,KAAK,EAAEC,OAAO,EAAEC,OAAO,EAAA;AAAA,IAAA,IAAAC,UAAA;AAAA,IAAA,OAAA,CAAAA,UAAA,GAAKL,SAAS,CAACG,OAAO,aAAPA,OAAO,KAAA,MAAA,GAAPA,OAAO,GAAIC,OAAO,CAAC,MAAA,IAAA,IAAAC,UAAA,KAAA,MAAA,GAAAA,UAAA,GAAIH,KAAK;AAAA,EAAA,CACrE,CAAC;AAAA,CAAA;AAEI,IAAMI,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAAhH,IAAA,EAAA;AAAA,EAAA,IAAMyG,OAAO,GAAAzG,IAAA,CAAPyG,OAAO;IAAEQ,QAAQ,GAAAjH,IAAA,CAARiH,QAAQ;IAAEC,MAAM,GAAAlH,IAAA,CAANkH,MAAM;EAAA,OAC9DV,mBAAmB,CAACC,OAAO,EAAE;AAC3BU,IAAAA,SAAS,EAAEjB,gBAAgB,CAACe,QAAQ,CAAC;IACrCG,OAAO,EAAElB,gBAAgB,CAACgB,MAAM;AAClC,GAAC,CAAC;AAAA,CAAA;;ACDJ,IAAMG,QAAQ,GAAG,SAAXA,QAAQA,CAAGC,IAAI,EAAA;AAAA,EAAA,OAAIC,gBAAS,CAACF,QAAQ,CAACC,IAAI,EAAEzH,gBAAgB,CAAC;AAAA,CAAA;AAEnE,IAAM2H,sBAAsB,GAAG,SAAzBA,sBAAsBA,GAAS;AAAA,EAAA,IAAAC,mBAAA;AACnC,EAAA,IAAA/C,SAAA,GACEC,cAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AADVgD,IAAAA,wBAAwB,GAAA9C,UAAA,CAAA,CAAA,CAAA;AAAE+C,IAAAA,2BAA2B,GAAA/C,UAAA,CAAA,CAAA,CAAA;AAG5D,EAAA,IAAAgD,gBAAA,GAAgDC,0BAAe,CAC7D3I,gCAAgC,EAChC,EACF,CAAC;IAAA4I,iBAAA,GAAAjD,cAAA,CAAA+C,gBAAA,EAAA,CAAA,CAAA;AAHMG,IAAAA,gBAAgB,GAAAD,iBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,mBAAmB,GAAAF,iBAAA,CAAA,CAAA,CAAA;AAK5C,EAAA,IAAAG,qBAAA,GAAAC,wCAAA,CAAAC,kBAAA,WAAAC,KAAA,EAAA;AAAA,MAAA,OAAA;AAAQC,QAAAA,iBAAiB,EAAAD,KAAA,CAAA,mBAAA;AAAA,OAAA;AAAA,IAAA,CAAA,CAAA,CAAA;IAAjBC,iBAAiB,GAAAJ,qBAAA,CAAjBI,iBAAiB;AAEzB,EAAA,IAAAC,qBAAA,GAAiB7D,qBAAqB,EAAE;IAAhCqB,IAAI,GAAAwC,qBAAA,CAAJxC,IAAI;AACZ,EAAA,IAAMyC,aAAa,GAAA,CAAAd,mBAAA,GAAG3B,IAAI,aAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAEyC,aAAa,MAAA,IAAA,IAAAd,mBAAA,KAAA,MAAA,GAAAA,mBAAA,GAAI,EAAE;AAE/C,EAAA,IAAMe,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,QAAQ,EAAI;AAChC,IAAA,IAAMC,cAAc,GAAGC,WAAK,CAAC,IAAI,EAAEJ,aAAa,CAAC;AACjD,IAAA,IAAMK,uBAAuB,GAAGb,gBAAgB,CAACc,MAAM,CAAC,UAAAC,EAAE,EAAA;AAAA,MAAA,OACxDJ,cAAc,CAACK,QAAQ,CAACD,EAAE,CAAC;AAAA,IAAA,CAC7B,CAAC;IAEDd,mBAAmB,CAAA,EAAA,CAAAxG,MAAA,CAAAwH,kBAAA,CAAKJ,uBAAuB,CAAA,EAAA,CAAEH,QAAQ,CAAA,CAAC,CAAC;EAC7D,CAAC;AAED,EAAA,IAAMQ,cAAc,GAAGV,aAAa,CAACM,MAAM,CACzC,UAAAK,MAAM,EAAA;IAAA,OAAI,CAACnB,gBAAgB,CAACgB,QAAQ,CAACG,MAAM,CAACJ,EAAE,CAAC;AAAA,EAAA,CACjD,CAAC;EAED,oBACEnI,eAAA,CAAAwI,mBAAA,EAAA;IAAA9I,QAAA,EAAA,CACGgI,iBAAiB,IAAI,CAACX,wBAAwB,iBAC7C3G,cAAA,CAAChB,MAAM,EAAA;AACL,MAAA,aAAA,EAAY,uBAAuB;AACnCI,MAAAA,IAAI,EAAC,OAAO;MACZC,SAAS,EAAE,SAAXA,SAASA,GAAA;QAAA,OAAQuH,2BAA2B,CAAC,IAAI,CAAC;MAAA,CAAC;MAAAtH,QAAA,eAEnDU,cAAA,CAACqI,kBAAK,EAAA;AACJC,QAAAA,OAAO,EAAC,qDAAqD;AAC7DC,QAAAA,UAAU,EAAE;UACVC,MAAM,eACJxI,cAAA,CAACyI,iBAAM,EAAA;AACL,YAAA,aAAA,EAAY,gBAAgB;AAC5BC,YAAAA,OAAO,EAAC,MAAM;YACdtI,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,cAAA,OAAQuI,MAAM,CAACC,QAAQ,CAACC,MAAM,EAAE;AAAA,YAAA;WACxC;AAEL;OACD;AAAC,KACI,CACT,EACAX,cAAc,CAACY,GAAG,CAAC,UAAA7J,IAAA,EAAA;AAAA,MAAA,IAAG8I,EAAE,GAAA9I,IAAA,CAAF8I,EAAE;QAAE3I,IAAI,GAAAH,IAAA,CAAJG,IAAI;QAAEsG,OAAO,GAAAzG,IAAA,CAAPyG,OAAO;QAAEQ,QAAQ,GAAAjH,IAAA,CAARiH,QAAQ;QAAEC,MAAM,GAAAlH,IAAA,CAANkH,MAAM;MAAA,oBACxD4C,mBAAA,CAAC/J,MAAM,EAAA;AACCI,QAAAA,IAAI,EAAJA,IAAI;AACV,QAAA,aAAA,EAAY,eAAe;AAC3B4J,QAAAA,GAAG,EAAEjB,EAAG;QACR1I,SAAS,EAAE,SAAXA,SAASA,GAAA;UAAA,OAAQoI,aAAa,CAACM,EAAE,CAAC;AAAA,QAAA;AAAC,OAAA,eAEnC/H,cAAA,CAAA,KAAA,EAAA;AACET,QAAAA,SAAS,EAAC,+CAA+C;AACzD0J,QAAAA,uBAAuB,EAAE;AACvBC,UAAAA,MAAM,EAAE5C,QAAQ,CACdL,oBAAoB,CAAC;AAAEP,YAAAA,OAAO,EAAPA,OAAO;AAAEQ,YAAAA,QAAQ,EAARA,QAAQ;AAAEC,YAAAA,MAAM,EAANA;AAAO,WAAC,CACpD;AACF;AAAE,OACH,CACK,CAAC;AAAA,IAAA,CACV,CAAC;AAAA,GACF,CAAC;AAEP;;;;"}