@bigbinary/neeto-molecules 5.2.3 → 5.2.5

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.
@@ -165,7 +165,9 @@ var ConfigureView = function ConfigureView(_ref) {
165
165
  items: [],
166
166
  isConfigureNavLink: false
167
167
  } : _ref$navLink,
168
- handleGoBack = _ref.handleGoBack;
168
+ handleGoBack = _ref.handleGoBack,
169
+ _ref$showBackButton = _ref.showBackButton,
170
+ showBackButton = _ref$showBackButton === void 0 ? true : _ref$showBackButton;
169
171
  _ref.isConfigureSidebar;
170
172
  var label = navLink.label,
171
173
  items = navLink.items,
@@ -209,7 +211,7 @@ var ConfigureView = function ConfigureView(_ref) {
209
211
  };
210
212
  return /*#__PURE__*/jsxs(SidebarGroup, {
211
213
  "data-testid": "configure-nav-container",
212
- children: [/*#__PURE__*/jsxs(SidebarMenuButton, _objectSpread(_objectSpread({
214
+ children: [showBackButton ? /*#__PURE__*/jsxs(SidebarMenuButton, _objectSpread(_objectSpread({
213
215
  className: "mb-4 text-base font-semibold [&>svg]:size-5",
214
216
  "data-testid": "".concat(hyphenize(label), "-go-back-button"),
215
217
  onClick: handleGoBack
@@ -219,6 +221,11 @@ var ConfigureView = function ConfigureView(_ref) {
219
221
  }), /*#__PURE__*/jsx("span", {
220
222
  children: label
221
223
  })]
224
+ })) : /*#__PURE__*/jsx("div", _objectSpread(_objectSpread({
225
+ className: "mb-4 px-2 text-base font-semibold",
226
+ "data-testid": "".concat(hyphenize(label), "-heading")
227
+ }, _objectSpread({}, omit(["icon", "isConfigureNavLink"], otherProps))), {}, {
228
+ children: label
222
229
  })), /*#__PURE__*/jsx(SidebarGroupContent, {
223
230
  children: items && renderItems(items)
224
231
  })]
@@ -226,4 +233,4 @@ var ConfigureView = function ConfigureView(_ref) {
226
233
  };
227
234
 
228
235
  export { ConfigureView as C, DEFAULT_HOME_PATH as D, MIN_SIDEBAR_WIDTH as M, PINNED_MORE_NAV_LINKS_KEY as P, SPECIAL_APP_NAMES as S, CheckPointNavLinks as a, SubLinkItem as b, SIDEBAR_WIDTH_KEY as c, DEFAULT_SIDEBAR_WIDTH as d, SELECTED_NAV_LINK_ROUTE_STORAGE_KEY as e, filterByPermissions as f, getSidebarStateLocalStorageKey as g, getActiveConfigurePageLink as h, MAX_SIDEBAR_WIDTH as i };
229
- //# sourceMappingURL=ConfigureView-DfBAWbOJ.js.map
236
+ //# sourceMappingURL=ConfigureView-OwgPvJyT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigureView-OwgPvJyT.js","sources":["../src/v2/components/Sidebar/Components/CheckPointNavLink.jsx","../src/v2/components/Sidebar/constants.js","../src/v2/components/Sidebar/utils.js","../src/v2/components/Sidebar/Components/SubLinkItem.jsx","../src/v2/components/Sidebar/Components/ConfigureView.jsx"],"sourcesContent":["import { useNavigationCheckpoints } from \"neetocommons/v2/react-utils/useRegisterNavigationCheckpoint\";\nimport { NavLink } from \"react-router-dom\";\n\nconst CheckPointNavLinks = ({\n checkpointKey,\n to,\n href,\n children,\n ...others\n}) => {\n const { [checkpointKey]: checkpoint } =\n useNavigationCheckpoints(checkpointKey);\n\n const LinkElement = href ? \"a\" : NavLink;\n const linkProps = href\n ? { href, key: href, ...others }\n : { to: checkpoint || to, key: to, ...others };\n\n return <LinkElement {...linkProps}>{children}</LinkElement>;\n};\n\nexport default CheckPointNavLinks;\n","export const SUB_LINK_TYPES = {\n SYSTEM_VIEW: \"system_view\",\n SEGMENTS: \"segments\",\n};\n\nexport const SELECTED_NAV_LINK_ROUTE_STORAGE_KEY = \"selectedNavLinkRoute\";\n\nexport const DEFAULT_HOME_PATH = \"/admin\";\n\nexport const SIDEBAR_WIDTH_KEY = \"neeto-molecules-sidebar-width\";\nexport const MIN_SIDEBAR_WIDTH = 12.5 * 16;\nexport const MAX_SIDEBAR_WIDTH = 20 * 16;\nexport const DEFAULT_SIDEBAR_WIDTH = 15 * 16;\n\nexport const PINNED_MORE_NAV_LINKS_KEY = \"pinnedMoreNavLinks\";\n\nexport const SPECIAL_APP_NAMES = { bugwatch: \"BugWatch\" };\n","import { isPresent, isNotEmpty } from \"neetocist\";\nimport { __, all, curry, equals, includes, is } from \"ramda\";\n\nexport const isSubRouteActive = (subRoute, location) => {\n const currentBrowserUrl = new URL(\n location.pathname + location.search + location.hash,\n window.location.origin\n );\n const targetUrl = new URL(subRoute, window.location.origin);\n\n const targetSearchParams = targetUrl.searchParams;\n const targetSearchKeys = Array.from(targetSearchParams.keys());\n\n return (\n all(\n key =>\n currentBrowserUrl.searchParams.get(key) === targetSearchParams.get(key),\n targetSearchKeys\n ) && equals(currentBrowserUrl.pathname, targetUrl.pathname)\n );\n};\n\nexport const getSidebarStateLocalStorageKey = () => {\n const user = globalProps.user?.email || globalProps.user?.phoneNumber;\n\n return `sidebarState-${user}`;\n};\n\nexport const filterByPermissions = curry(({ permissions }) => {\n if (permissions && isNotEmpty(permissions)) {\n return is(Array, permissions)\n ? permissions.some(includes(__, globalProps.permissions))\n : globalProps.permissions.includes(permissions);\n }\n\n return true;\n});\n\nexport const getActiveConfigurePageLink = ({ navLinks, location }) =>\n navLinks.find(link => {\n const [linkPathname] = link.to?.split(\"?\") || [];\n\n return (\n isPresent(link.isConfigureNavLink) &&\n link.isConfigureNavLink &&\n location.pathname.startsWith(linkPathname)\n );\n });\n","import { Badge } from \"@bigbinary/neeto-atoms\";\nimport {\n SidebarMenuSubItem,\n SidebarMenuSubButton,\n} from \"@bigbinary/neeto-atoms/primitives\";\nimport classnames from \"classnames\";\nimport { hyphenate } from \"neetocist\";\nimport { Segments } from \"neetofilters/v2\";\nimport { is } from \"ramda\";\nimport { useLocation } from \"react-router-dom\";\n\nimport CheckPointNavLinks from \"./CheckPointNavLink\";\n\nimport { SUB_LINK_TYPES } from \"../constants\";\nimport { isSubRouteActive } from \"../utils\";\n\nconst SubLinkItem = ({\n to,\n href,\n onClick,\n label,\n className,\n type = SUB_LINK_TYPES.SYSTEM_VIEW,\n count,\n isSectionHeader,\n isCountsLoading,\n \"data-testid\": dataTestid,\n entity = \"\",\n columns = [],\n baseUrl,\n isActive,\n tag,\n}) => {\n const location = useLocation();\n\n if (type === SUB_LINK_TYPES.SEGMENTS) {\n return <Segments {...{ baseUrl, columns, entity }} isIndependent={false} />;\n }\n\n const dataTestidPrefix = dataTestid || hyphenate(label);\n\n const renderCount = count => (count > 999 ? \"999+\" : count);\n\n const isSubLinkActive = () =>\n !isSectionHeader &&\n (is(Function, isActive) ? isActive() : isSubRouteActive(to, location));\n\n return (\n <SidebarMenuSubItem>\n <SidebarMenuSubButton\n asChild\n className={classnames(\"py-1.5\", className)}\n isActive={isSubLinkActive()}\n size=\"md\"\n >\n <CheckPointNavLinks\n {...{ href, onClick, to }}\n activeClassName=\"active\"\n data-testid={`${dataTestidPrefix}-sub-link`}\n isActive={isSubLinkActive}\n >\n <span\n className=\"flex min-w-0 flex-grow items-center gap-2\"\n data-testid={`${dataTestidPrefix}-sub-link-label`}\n >\n <span className=\"truncate\">{label}</span>\n {tag && <Badge {...tag} />}\n </span>\n <span\n className=\"text-sidebar-foreground/70 flex-shrink-0 text-xs\"\n data-testid={`${dataTestidPrefix}-sub-link-count`}\n >\n {isCountsLoading ? (\n <div className=\"bg-sidebar-accent h-4 w-4 animate-pulse rounded\" />\n ) : (\n renderCount(count)\n )}\n </span>\n </CheckPointNavLinks>\n </SidebarMenuSubButton>\n </SidebarMenuSubItem>\n );\n};\n\nexport default SubLinkItem;\n","import { Fragment } from \"react\";\n\nimport {\n SidebarGroup,\n SidebarGroupContent,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n} from \"@bigbinary/neeto-atoms/primitives\";\nimport { ChevronLeft } from \"lucide-react\";\nimport { isPresent } from \"neetocist\";\nimport { hyphenize } from \"neetocommons/v2/utils/general\";\nimport { omit } from \"ramda\";\n\nimport CheckPointNavLinks from \"./CheckPointNavLink\";\nimport SubLinkItem from \"./SubLinkItem\";\n\nimport { filterByPermissions } from \"../utils\";\n\nconst ConfigureView = ({\n navLink = { label: \"\", items: [], isConfigureNavLink: false },\n handleGoBack,\n showBackButton = true,\n isConfigureSidebar: _isConfigureSidebar,\n}) => {\n const { label, items, ...otherProps } = navLink;\n\n const renderItems = itemList => (\n <SidebarMenu className=\"gap-1\">\n {itemList.filter(filterByPermissions).map((subItem, subIndex) => (\n <Fragment key={subIndex}>\n {isPresent(subItem.items) ? (\n <SidebarMenuItem>\n <SidebarMenuButton asChild className=\"font-medium\">\n <CheckPointNavLinks\n href={subItem.href}\n to={subItem.to ?? subItem.path}\n onClick={subItem.onClick}\n >\n {subItem.label}\n </CheckPointNavLinks>\n </SidebarMenuButton>\n <SidebarMenuSub>\n {subItem.items\n .filter(filterByPermissions)\n .map((nestedItem, nestedIndex) => (\n <SubLinkItem\n key={nestedIndex}\n {...{ ...nestedItem }}\n href={nestedItem.href}\n isActive={nestedItem.isActive}\n to={nestedItem.to ?? nestedItem.path}\n onClick={nestedItem.onClick}\n />\n ))}\n </SidebarMenuSub>\n </SidebarMenuItem>\n ) : (\n <SubLinkItem\n {...{ ...subItem }}\n href={subItem.href}\n isActive={subItem.isActive}\n to={subItem.to ?? subItem.path}\n onClick={subItem.onClick}\n />\n )}\n </Fragment>\n ))}\n </SidebarMenu>\n );\n\n return (\n <SidebarGroup data-testid=\"configure-nav-container\">\n {showBackButton ? (\n <SidebarMenuButton\n className=\"mb-4 text-base font-semibold [&>svg]:size-5\"\n data-testid={`${hyphenize(label)}-go-back-button`}\n onClick={handleGoBack}\n {...{ ...omit([\"icon\", \"isConfigureNavLink\"], otherProps) }}\n >\n <ChevronLeft className=\"rtl:scale-x-[-1]\" />\n <span>{label}</span>\n </SidebarMenuButton>\n ) : (\n <div\n className=\"mb-4 px-2 text-base font-semibold\"\n data-testid={`${hyphenize(label)}-heading`}\n {...{ ...omit([\"icon\", \"isConfigureNavLink\"], otherProps) }}\n >\n {label}\n </div>\n )}\n <SidebarGroupContent>{items && renderItems(items)}</SidebarGroupContent>\n </SidebarGroup>\n );\n};\n\nexport default ConfigureView;\n"],"names":["CheckPointNavLinks","_ref","checkpointKey","to","href","children","others","_objectWithoutProperties","_excluded","_useNavigationCheckpo","useNavigationCheckpoints","checkpoint","LinkElement","NavLink","linkProps","_objectSpread","key","_jsx","SUB_LINK_TYPES","SYSTEM_VIEW","SEGMENTS","SELECTED_NAV_LINK_ROUTE_STORAGE_KEY","DEFAULT_HOME_PATH","SIDEBAR_WIDTH_KEY","MIN_SIDEBAR_WIDTH","MAX_SIDEBAR_WIDTH","DEFAULT_SIDEBAR_WIDTH","PINNED_MORE_NAV_LINKS_KEY","SPECIAL_APP_NAMES","bugwatch","isSubRouteActive","subRoute","location","currentBrowserUrl","URL","pathname","search","hash","window","origin","targetUrl","targetSearchParams","searchParams","targetSearchKeys","Array","from","keys","all","get","equals","getSidebarStateLocalStorageKey","_globalProps$user","_globalProps$user2","user","globalProps","email","phoneNumber","concat","filterByPermissions","curry","permissions","isNotEmpty","is","some","includes","__","getActiveConfigurePageLink","_ref2","navLinks","find","link","_link$to","_ref3","split","_ref4","_slicedToArray","linkPathname","isPresent","isConfigureNavLink","startsWith","SubLinkItem","onClick","label","className","_ref$type","type","count","isSectionHeader","isCountsLoading","dataTestid","_ref$entity","entity","_ref$columns","columns","baseUrl","isActive","tag","useLocation","Segments","isIndependent","dataTestidPrefix","hyphenate","renderCount","isSubLinkActive","Function","SidebarMenuSubItem","SidebarMenuSubButton","asChild","classnames","size","_jsxs","activeClassName","Badge","ConfigureView","_ref$navLink","navLink","items","handleGoBack","_ref$showBackButton","showBackButton","isConfigureSidebar","otherProps","renderItems","itemList","SidebarMenu","filter","map","subItem","subIndex","_subItem$to","_subItem$to2","Fragment","SidebarMenuItem","SidebarMenuButton","path","SidebarMenuSub","nestedItem","nestedIndex","_nestedItem$to","SidebarGroup","hyphenize","omit","ChevronLeft","SidebarGroupContent"],"mappings":"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"}
@@ -167,7 +167,9 @@ var ConfigureView = function ConfigureView(_ref) {
167
167
  items: [],
168
168
  isConfigureNavLink: false
169
169
  } : _ref$navLink,
170
- handleGoBack = _ref.handleGoBack;
170
+ handleGoBack = _ref.handleGoBack,
171
+ _ref$showBackButton = _ref.showBackButton,
172
+ showBackButton = _ref$showBackButton === void 0 ? true : _ref$showBackButton;
171
173
  _ref.isConfigureSidebar;
172
174
  var label = navLink.label,
173
175
  items = navLink.items,
@@ -211,7 +213,7 @@ var ConfigureView = function ConfigureView(_ref) {
211
213
  };
212
214
  return /*#__PURE__*/jsxRuntime.jsxs(primitives.SidebarGroup, {
213
215
  "data-testid": "configure-nav-container",
214
- children: [/*#__PURE__*/jsxRuntime.jsxs(primitives.SidebarMenuButton, _objectSpread(_objectSpread({
216
+ children: [showBackButton ? /*#__PURE__*/jsxRuntime.jsxs(primitives.SidebarMenuButton, _objectSpread(_objectSpread({
215
217
  className: "mb-4 text-base font-semibold [&>svg]:size-5",
216
218
  "data-testid": "".concat(general.hyphenize(label), "-go-back-button"),
217
219
  onClick: handleGoBack
@@ -221,6 +223,11 @@ var ConfigureView = function ConfigureView(_ref) {
221
223
  }), /*#__PURE__*/jsxRuntime.jsx("span", {
222
224
  children: label
223
225
  })]
226
+ })) : /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread(_objectSpread({
227
+ className: "mb-4 px-2 text-base font-semibold",
228
+ "data-testid": "".concat(general.hyphenize(label), "-heading")
229
+ }, _objectSpread({}, ramda.omit(["icon", "isConfigureNavLink"], otherProps))), {}, {
230
+ children: label
224
231
  })), /*#__PURE__*/jsxRuntime.jsx(primitives.SidebarGroupContent, {
225
232
  children: items && renderItems(items)
226
233
  })]
@@ -241,4 +248,4 @@ exports.SubLinkItem = SubLinkItem;
241
248
  exports.filterByPermissions = filterByPermissions;
242
249
  exports.getActiveConfigurePageLink = getActiveConfigurePageLink;
243
250
  exports.getSidebarStateLocalStorageKey = getSidebarStateLocalStorageKey;
244
- //# sourceMappingURL=ConfigureView-BeNSaMvm.js.map
251
+ //# sourceMappingURL=ConfigureView-yCOhk92l.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigureView-yCOhk92l.js","sources":["../../src/v2/components/Sidebar/Components/CheckPointNavLink.jsx","../../src/v2/components/Sidebar/constants.js","../../src/v2/components/Sidebar/utils.js","../../src/v2/components/Sidebar/Components/SubLinkItem.jsx","../../src/v2/components/Sidebar/Components/ConfigureView.jsx"],"sourcesContent":["import { useNavigationCheckpoints } from \"neetocommons/v2/react-utils/useRegisterNavigationCheckpoint\";\nimport { NavLink } from \"react-router-dom\";\n\nconst CheckPointNavLinks = ({\n checkpointKey,\n to,\n href,\n children,\n ...others\n}) => {\n const { [checkpointKey]: checkpoint } =\n useNavigationCheckpoints(checkpointKey);\n\n const LinkElement = href ? \"a\" : NavLink;\n const linkProps = href\n ? { href, key: href, ...others }\n : { to: checkpoint || to, key: to, ...others };\n\n return <LinkElement {...linkProps}>{children}</LinkElement>;\n};\n\nexport default CheckPointNavLinks;\n","export const SUB_LINK_TYPES = {\n SYSTEM_VIEW: \"system_view\",\n SEGMENTS: \"segments\",\n};\n\nexport const SELECTED_NAV_LINK_ROUTE_STORAGE_KEY = \"selectedNavLinkRoute\";\n\nexport const DEFAULT_HOME_PATH = \"/admin\";\n\nexport const SIDEBAR_WIDTH_KEY = \"neeto-molecules-sidebar-width\";\nexport const MIN_SIDEBAR_WIDTH = 12.5 * 16;\nexport const MAX_SIDEBAR_WIDTH = 20 * 16;\nexport const DEFAULT_SIDEBAR_WIDTH = 15 * 16;\n\nexport const PINNED_MORE_NAV_LINKS_KEY = \"pinnedMoreNavLinks\";\n\nexport const SPECIAL_APP_NAMES = { bugwatch: \"BugWatch\" };\n","import { isPresent, isNotEmpty } from \"neetocist\";\nimport { __, all, curry, equals, includes, is } from \"ramda\";\n\nexport const isSubRouteActive = (subRoute, location) => {\n const currentBrowserUrl = new URL(\n location.pathname + location.search + location.hash,\n window.location.origin\n );\n const targetUrl = new URL(subRoute, window.location.origin);\n\n const targetSearchParams = targetUrl.searchParams;\n const targetSearchKeys = Array.from(targetSearchParams.keys());\n\n return (\n all(\n key =>\n currentBrowserUrl.searchParams.get(key) === targetSearchParams.get(key),\n targetSearchKeys\n ) && equals(currentBrowserUrl.pathname, targetUrl.pathname)\n );\n};\n\nexport const getSidebarStateLocalStorageKey = () => {\n const user = globalProps.user?.email || globalProps.user?.phoneNumber;\n\n return `sidebarState-${user}`;\n};\n\nexport const filterByPermissions = curry(({ permissions }) => {\n if (permissions && isNotEmpty(permissions)) {\n return is(Array, permissions)\n ? permissions.some(includes(__, globalProps.permissions))\n : globalProps.permissions.includes(permissions);\n }\n\n return true;\n});\n\nexport const getActiveConfigurePageLink = ({ navLinks, location }) =>\n navLinks.find(link => {\n const [linkPathname] = link.to?.split(\"?\") || [];\n\n return (\n isPresent(link.isConfigureNavLink) &&\n link.isConfigureNavLink &&\n location.pathname.startsWith(linkPathname)\n );\n });\n","import { Badge } from \"@bigbinary/neeto-atoms\";\nimport {\n SidebarMenuSubItem,\n SidebarMenuSubButton,\n} from \"@bigbinary/neeto-atoms/primitives\";\nimport classnames from \"classnames\";\nimport { hyphenate } from \"neetocist\";\nimport { Segments } from \"neetofilters/v2\";\nimport { is } from \"ramda\";\nimport { useLocation } from \"react-router-dom\";\n\nimport CheckPointNavLinks from \"./CheckPointNavLink\";\n\nimport { SUB_LINK_TYPES } from \"../constants\";\nimport { isSubRouteActive } from \"../utils\";\n\nconst SubLinkItem = ({\n to,\n href,\n onClick,\n label,\n className,\n type = SUB_LINK_TYPES.SYSTEM_VIEW,\n count,\n isSectionHeader,\n isCountsLoading,\n \"data-testid\": dataTestid,\n entity = \"\",\n columns = [],\n baseUrl,\n isActive,\n tag,\n}) => {\n const location = useLocation();\n\n if (type === SUB_LINK_TYPES.SEGMENTS) {\n return <Segments {...{ baseUrl, columns, entity }} isIndependent={false} />;\n }\n\n const dataTestidPrefix = dataTestid || hyphenate(label);\n\n const renderCount = count => (count > 999 ? \"999+\" : count);\n\n const isSubLinkActive = () =>\n !isSectionHeader &&\n (is(Function, isActive) ? isActive() : isSubRouteActive(to, location));\n\n return (\n <SidebarMenuSubItem>\n <SidebarMenuSubButton\n asChild\n className={classnames(\"py-1.5\", className)}\n isActive={isSubLinkActive()}\n size=\"md\"\n >\n <CheckPointNavLinks\n {...{ href, onClick, to }}\n activeClassName=\"active\"\n data-testid={`${dataTestidPrefix}-sub-link`}\n isActive={isSubLinkActive}\n >\n <span\n className=\"flex min-w-0 flex-grow items-center gap-2\"\n data-testid={`${dataTestidPrefix}-sub-link-label`}\n >\n <span className=\"truncate\">{label}</span>\n {tag && <Badge {...tag} />}\n </span>\n <span\n className=\"text-sidebar-foreground/70 flex-shrink-0 text-xs\"\n data-testid={`${dataTestidPrefix}-sub-link-count`}\n >\n {isCountsLoading ? (\n <div className=\"bg-sidebar-accent h-4 w-4 animate-pulse rounded\" />\n ) : (\n renderCount(count)\n )}\n </span>\n </CheckPointNavLinks>\n </SidebarMenuSubButton>\n </SidebarMenuSubItem>\n );\n};\n\nexport default SubLinkItem;\n","import { Fragment } from \"react\";\n\nimport {\n SidebarGroup,\n SidebarGroupContent,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n} from \"@bigbinary/neeto-atoms/primitives\";\nimport { ChevronLeft } from \"lucide-react\";\nimport { isPresent } from \"neetocist\";\nimport { hyphenize } from \"neetocommons/v2/utils/general\";\nimport { omit } from \"ramda\";\n\nimport CheckPointNavLinks from \"./CheckPointNavLink\";\nimport SubLinkItem from \"./SubLinkItem\";\n\nimport { filterByPermissions } from \"../utils\";\n\nconst ConfigureView = ({\n navLink = { label: \"\", items: [], isConfigureNavLink: false },\n handleGoBack,\n showBackButton = true,\n isConfigureSidebar: _isConfigureSidebar,\n}) => {\n const { label, items, ...otherProps } = navLink;\n\n const renderItems = itemList => (\n <SidebarMenu className=\"gap-1\">\n {itemList.filter(filterByPermissions).map((subItem, subIndex) => (\n <Fragment key={subIndex}>\n {isPresent(subItem.items) ? (\n <SidebarMenuItem>\n <SidebarMenuButton asChild className=\"font-medium\">\n <CheckPointNavLinks\n href={subItem.href}\n to={subItem.to ?? subItem.path}\n onClick={subItem.onClick}\n >\n {subItem.label}\n </CheckPointNavLinks>\n </SidebarMenuButton>\n <SidebarMenuSub>\n {subItem.items\n .filter(filterByPermissions)\n .map((nestedItem, nestedIndex) => (\n <SubLinkItem\n key={nestedIndex}\n {...{ ...nestedItem }}\n href={nestedItem.href}\n isActive={nestedItem.isActive}\n to={nestedItem.to ?? nestedItem.path}\n onClick={nestedItem.onClick}\n />\n ))}\n </SidebarMenuSub>\n </SidebarMenuItem>\n ) : (\n <SubLinkItem\n {...{ ...subItem }}\n href={subItem.href}\n isActive={subItem.isActive}\n to={subItem.to ?? subItem.path}\n onClick={subItem.onClick}\n />\n )}\n </Fragment>\n ))}\n </SidebarMenu>\n );\n\n return (\n <SidebarGroup data-testid=\"configure-nav-container\">\n {showBackButton ? (\n <SidebarMenuButton\n className=\"mb-4 text-base font-semibold [&>svg]:size-5\"\n data-testid={`${hyphenize(label)}-go-back-button`}\n onClick={handleGoBack}\n {...{ ...omit([\"icon\", \"isConfigureNavLink\"], otherProps) }}\n >\n <ChevronLeft className=\"rtl:scale-x-[-1]\" />\n <span>{label}</span>\n </SidebarMenuButton>\n ) : (\n <div\n className=\"mb-4 px-2 text-base font-semibold\"\n data-testid={`${hyphenize(label)}-heading`}\n {...{ ...omit([\"icon\", \"isConfigureNavLink\"], otherProps) }}\n >\n {label}\n </div>\n )}\n <SidebarGroupContent>{items && renderItems(items)}</SidebarGroupContent>\n </SidebarGroup>\n );\n};\n\nexport default ConfigureView;\n"],"names":["CheckPointNavLinks","_ref","checkpointKey","to","href","children","others","_objectWithoutProperties","_excluded","_useNavigationCheckpo","useNavigationCheckpoints","checkpoint","LinkElement","NavLink","linkProps","_objectSpread","key","_jsx","SUB_LINK_TYPES","SYSTEM_VIEW","SEGMENTS","SELECTED_NAV_LINK_ROUTE_STORAGE_KEY","DEFAULT_HOME_PATH","SIDEBAR_WIDTH_KEY","MIN_SIDEBAR_WIDTH","MAX_SIDEBAR_WIDTH","DEFAULT_SIDEBAR_WIDTH","PINNED_MORE_NAV_LINKS_KEY","SPECIAL_APP_NAMES","bugwatch","isSubRouteActive","subRoute","location","currentBrowserUrl","URL","pathname","search","hash","window","origin","targetUrl","targetSearchParams","searchParams","targetSearchKeys","Array","from","keys","all","get","equals","getSidebarStateLocalStorageKey","_globalProps$user","_globalProps$user2","user","globalProps","email","phoneNumber","concat","filterByPermissions","curry","permissions","isNotEmpty","is","some","includes","__","getActiveConfigurePageLink","_ref2","navLinks","find","link","_link$to","_ref3","split","_ref4","_slicedToArray","linkPathname","isPresent","isConfigureNavLink","startsWith","SubLinkItem","onClick","label","className","_ref$type","type","count","isSectionHeader","isCountsLoading","dataTestid","_ref$entity","entity","_ref$columns","columns","baseUrl","isActive","tag","useLocation","Segments","isIndependent","dataTestidPrefix","hyphenate","renderCount","isSubLinkActive","Function","SidebarMenuSubItem","SidebarMenuSubButton","asChild","classnames","size","_jsxs","activeClassName","Badge","ConfigureView","_ref$navLink","navLink","items","handleGoBack","_ref$showBackButton","showBackButton","isConfigureSidebar","otherProps","renderItems","itemList","SidebarMenu","filter","map","subItem","subIndex","_subItem$to","_subItem$to2","Fragment","SidebarMenuItem","SidebarMenuButton","path","SidebarMenuSub","nestedItem","nestedIndex","_nestedItem$to","SidebarGroup","hyphenize","omit","ChevronLeft","SidebarGroupContent"],"mappings":"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"}
@@ -5,8 +5,10 @@ var React = require('react');
5
5
  var primitives = require('@bigbinary/neeto-atoms/primitives');
6
6
  var classnames = require('classnames');
7
7
  var reactRouterDom = require('react-router-dom');
8
- var ConfigureView = require('../ConfigureView-BeNSaMvm.js');
8
+ require('./configure-page-sidebar.js');
9
+ var ConfigureView = require('../ConfigureView-yCOhk92l.js');
9
10
  var jsxRuntime = require('react/jsx-runtime');
11
+ require('../inject-css-B6qYtOJe.js');
10
12
  require('@babel/runtime/helpers/defineProperty');
11
13
  require('@babel/runtime/helpers/objectWithoutProperties');
12
14
  require('@bigbinary/neeto-cist');
@@ -21,7 +23,11 @@ require('../createLucideIcon-DBDhE7kE.js');
21
23
  var ConfigurePageSidebar = function ConfigurePageSidebar(_ref) {
22
24
  var label = _ref.label,
23
25
  items = _ref.navLinks,
24
- configurePageRoute = _ref.configurePageRoute;
26
+ configurePageRoute = _ref.configurePageRoute,
27
+ _ref$isEmbedded = _ref.isEmbedded,
28
+ isEmbedded = _ref$isEmbedded === void 0 ? false : _ref$isEmbedded,
29
+ _ref$showBackButton = _ref.showBackButton,
30
+ showBackButton = _ref$showBackButton === void 0 ? true : _ref$showBackButton;
25
31
  var history = reactRouterDom.useHistory();
26
32
  var _useState = React.useState(false),
27
33
  _useState2 = _slicedToArray(_useState, 2),
@@ -31,8 +37,10 @@ var ConfigurePageSidebar = function ConfigurePageSidebar(_ref) {
31
37
  history.push(configurePageRoute);
32
38
  };
33
39
  return /*#__PURE__*/jsxRuntime.jsxs(primitives.SidebarProvider, {
34
- className: "!w-auto",
35
40
  open: !isSidebarCollapsed,
41
+ className: classnames("!w-auto", {
42
+ "neeto-configure-page-sidebar--embedded": isEmbedded
43
+ }),
36
44
  onOpenChange: function onOpenChange(open) {
37
45
  return setIsSidebarCollapsed(!open);
38
46
  },
@@ -41,6 +49,7 @@ var ConfigurePageSidebar = function ConfigurePageSidebar(_ref) {
41
49
  side: document.documentElement.dir === "rtl" ? "right" : "left",
42
50
  children: /*#__PURE__*/jsxRuntime.jsx(primitives.SidebarContent, {
43
51
  children: /*#__PURE__*/jsxRuntime.jsx(ConfigureView.ConfigureView, {
52
+ showBackButton: showBackButton,
44
53
  isConfigureSidebar: true,
45
54
  handleGoBack: handleConfigureLinkClick,
46
55
  navLink: {
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigurePageSidebar.js","sources":["../../../src/v2/components/ConfigurePageSidebar.jsx"],"sourcesContent":["import { useState } from \"react\";\n\nimport {\n Sidebar,\n SidebarContent,\n SidebarProvider,\n SidebarTrigger,\n} from \"@bigbinary/neeto-atoms/primitives\";\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { useHistory } from \"react-router-dom\";\n\nimport ConfigureView from \"./Sidebar/Components/ConfigureView\";\n\nconst ConfigurePageSidebar = ({\n label,\n navLinks: items,\n configurePageRoute,\n}) => {\n const history = useHistory();\n const [isSidebarCollapsed, setIsSidebarCollapsed] = useState(false);\n\n const handleConfigureLinkClick = () => {\n history.push(configurePageRoute);\n };\n\n return (\n <SidebarProvider\n className=\"!w-auto\"\n open={!isSidebarCollapsed}\n onOpenChange={open => setIsSidebarCollapsed(!open)}\n >\n <Sidebar\n collapsible=\"offcanvas\"\n side={document.documentElement.dir === \"rtl\" ? \"right\" : \"left\"}\n >\n <SidebarContent>\n <ConfigureView\n isConfigureSidebar\n handleGoBack={handleConfigureLinkClick}\n navLink={{ label, items }}\n />\n </SidebarContent>\n </Sidebar>\n <SidebarTrigger\n className={classnames({\n \"bg-background hover:bg-accent size-9 rounded-full border shadow-sm\":\n isSidebarCollapsed,\n })}\n />\n </SidebarProvider>\n );\n};\n\nConfigurePageSidebar.propTypes = {\n configurePageRoute: PropTypes.string,\n label: PropTypes.string,\n navLinks: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n to: PropTypes.string,\n items: PropTypes.arrayOf(\n PropTypes.shape({ label: PropTypes.string, to: PropTypes.string })\n ),\n })\n ),\n};\n\nexport default ConfigurePageSidebar;\n"],"names":["ConfigurePageSidebar","_ref","label","items","navLinks","configurePageRoute","history","useHistory","_useState","useState","_useState2","_slicedToArray","isSidebarCollapsed","setIsSidebarCollapsed","handleConfigureLinkClick","push","_jsxs","SidebarProvider","className","open","onOpenChange","children","_jsx","Sidebar","collapsible","side","document","documentElement","dir","SidebarContent","ConfigureView","isConfigureSidebar","handleGoBack","navLink","SidebarTrigger","classnames"],"mappings":";;;;;;;;;;;;;;;;;;;;AAcA,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAAC,IAAA,EAIpB;AAAA,EAAA,IAHJC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACKC,KAAK,GAAAF,IAAA,CAAfG,QAAQ;IACRC,kBAAkB,GAAAJ,IAAA,CAAlBI,kBAAkB;AAElB,EAAA,IAAMC,OAAO,GAAGC,yBAAU,EAAE;AAC5B,EAAA,IAAAC,SAAA,GAAoDC,cAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA5DI,IAAAA,kBAAkB,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,qBAAqB,GAAAH,UAAA,CAAA,CAAA,CAAA;AAEhD,EAAA,IAAMI,wBAAwB,GAAG,SAA3BA,wBAAwBA,GAAS;AACrCR,IAAAA,OAAO,CAACS,IAAI,CAACV,kBAAkB,CAAC;EAClC,CAAC;EAED,oBACEW,eAAA,CAACC,0BAAe,EAAA;AACdC,IAAAA,SAAS,EAAC,SAAS;IACnBC,IAAI,EAAE,CAACP,kBAAmB;AAC1BQ,IAAAA,YAAY,EAAE,SAAdA,YAAYA,CAAED,IAAI,EAAA;AAAA,MAAA,OAAIN,qBAAqB,CAAC,CAACM,IAAI,CAAC;IAAA,CAAC;IAAAE,QAAA,EAAA,cAEnDC,cAAA,CAACC,kBAAO,EAAA;AACNC,MAAAA,WAAW,EAAC,WAAW;MACvBC,IAAI,EAAEC,QAAQ,CAACC,eAAe,CAACC,GAAG,KAAK,KAAK,GAAG,OAAO,GAAG,MAAO;MAAAP,QAAA,eAEhEC,cAAA,CAACO,yBAAc,EAAA;QAAAR,QAAA,eACbC,cAAA,CAACQ,2BAAa,EAAA;UACZC,kBAAkB,EAAA,IAAA;AAClBC,UAAAA,YAAY,EAAElB,wBAAyB;AACvCmB,UAAAA,OAAO,EAAE;AAAE/B,YAAAA,KAAK,EAALA,KAAK;AAAEC,YAAAA,KAAK,EAALA;AAAM;SACzB;OACa;AAAC,KACV,CAAC,eACVmB,cAAA,CAACY,yBAAc,EAAA;MACbhB,SAAS,EAAEiB,UAAU,CAAC;AACpB,QAAA,oEAAoE,EAClEvB;OACH;AAAE,KACJ,CAAC;AAAA,GACa,CAAC;AAEtB;;;;"}
1
+ {"version":3,"file":"ConfigurePageSidebar.js","sources":["../../../src/v2/components/ConfigurePageSidebar.jsx"],"sourcesContent":["import { useState } from \"react\";\n\nimport {\n Sidebar,\n SidebarContent,\n SidebarProvider,\n SidebarTrigger,\n} from \"@bigbinary/neeto-atoms/primitives\";\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { useHistory } from \"react-router-dom\";\n\nimport \"./configure-page-sidebar.css\";\nimport ConfigureView from \"./Sidebar/Components/ConfigureView\";\n\nconst ConfigurePageSidebar = ({\n label,\n navLinks: items,\n configurePageRoute,\n isEmbedded = false,\n showBackButton = true,\n}) => {\n const history = useHistory();\n const [isSidebarCollapsed, setIsSidebarCollapsed] = useState(false);\n\n const handleConfigureLinkClick = () => {\n history.push(configurePageRoute);\n };\n\n return (\n <SidebarProvider\n open={!isSidebarCollapsed}\n className={classnames(\"!w-auto\", {\n \"neeto-configure-page-sidebar--embedded\": isEmbedded,\n })}\n onOpenChange={open => setIsSidebarCollapsed(!open)}\n >\n <Sidebar\n collapsible=\"offcanvas\"\n side={document.documentElement.dir === \"rtl\" ? \"right\" : \"left\"}\n >\n <SidebarContent>\n <ConfigureView\n {...{ showBackButton }}\n isConfigureSidebar\n handleGoBack={handleConfigureLinkClick}\n navLink={{ label, items }}\n />\n </SidebarContent>\n </Sidebar>\n <SidebarTrigger\n className={classnames({\n \"bg-background hover:bg-accent size-9 rounded-full border shadow-sm\":\n isSidebarCollapsed,\n })}\n />\n </SidebarProvider>\n );\n};\n\nConfigurePageSidebar.propTypes = {\n configurePageRoute: PropTypes.string,\n label: PropTypes.string,\n navLinks: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n to: PropTypes.string,\n items: PropTypes.arrayOf(\n PropTypes.shape({ label: PropTypes.string, to: PropTypes.string })\n ),\n })\n ),\n // Renders the sidebar inline within the page (flows as a flex item, collapse\n // reclaims space, trigger docks alongside the content) instead of the default\n // fixed full-height overlay. Use when the sidebar is nested inside a page that\n // already has its own header/sidebar.\n isEmbedded: PropTypes.bool,\n // Show the back chevron on the title that navigates to configurePageRoute.\n showBackButton: PropTypes.bool,\n};\n\nexport default ConfigurePageSidebar;\n"],"names":["ConfigurePageSidebar","_ref","label","items","navLinks","configurePageRoute","_ref$isEmbedded","isEmbedded","_ref$showBackButton","showBackButton","history","useHistory","_useState","useState","_useState2","_slicedToArray","isSidebarCollapsed","setIsSidebarCollapsed","handleConfigureLinkClick","push","_jsxs","SidebarProvider","open","className","classnames","onOpenChange","children","_jsx","Sidebar","collapsible","side","document","documentElement","dir","SidebarContent","ConfigureView","isConfigureSidebar","handleGoBack","navLink","SidebarTrigger"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAeA,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAAC,IAAA,EAMpB;AAAA,EAAA,IALJC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACKC,KAAK,GAAAF,IAAA,CAAfG,QAAQ;IACRC,kBAAkB,GAAAJ,IAAA,CAAlBI,kBAAkB;IAAAC,eAAA,GAAAL,IAAA,CAClBM,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,eAAA;IAAAE,mBAAA,GAAAP,IAAA,CAClBQ,cAAc;AAAdA,IAAAA,cAAc,GAAAD,mBAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,mBAAA;AAErB,EAAA,IAAME,OAAO,GAAGC,yBAAU,EAAE;AAC5B,EAAA,IAAAC,SAAA,GAAoDC,cAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA5DI,IAAAA,kBAAkB,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,qBAAqB,GAAAH,UAAA,CAAA,CAAA,CAAA;AAEhD,EAAA,IAAMI,wBAAwB,GAAG,SAA3BA,wBAAwBA,GAAS;AACrCR,IAAAA,OAAO,CAACS,IAAI,CAACd,kBAAkB,CAAC;EAClC,CAAC;EAED,oBACEe,eAAA,CAACC,0BAAe,EAAA;IACdC,IAAI,EAAE,CAACN,kBAAmB;AAC1BO,IAAAA,SAAS,EAAEC,UAAU,CAAC,SAAS,EAAE;AAC/B,MAAA,wCAAwC,EAAEjB;AAC5C,KAAC,CAAE;AACHkB,IAAAA,YAAY,EAAE,SAAdA,YAAYA,CAAEH,IAAI,EAAA;AAAA,MAAA,OAAIL,qBAAqB,CAAC,CAACK,IAAI,CAAC;IAAA,CAAC;IAAAI,QAAA,EAAA,cAEnDC,cAAA,CAACC,kBAAO,EAAA;AACNC,MAAAA,WAAW,EAAC,WAAW;MACvBC,IAAI,EAAEC,QAAQ,CAACC,eAAe,CAACC,GAAG,KAAK,KAAK,GAAG,OAAO,GAAG,MAAO;MAAAP,QAAA,eAEhEC,cAAA,CAACO,yBAAc,EAAA;QAAAR,QAAA,eACbC,cAAA,CAACQ,2BAAa,EAAA;AACN1B,UAAAA,cAAc,EAAdA,cAAc;UACpB2B,kBAAkB,EAAA,IAAA;AAClBC,UAAAA,YAAY,EAAEnB,wBAAyB;AACvCoB,UAAAA,OAAO,EAAE;AAAEpC,YAAAA,KAAK,EAALA,KAAK;AAAEC,YAAAA,KAAK,EAALA;AAAM;SACzB;OACa;AAAC,KACV,CAAC,eACVwB,cAAA,CAACY,yBAAc,EAAA;MACbhB,SAAS,EAAEC,UAAU,CAAC;AACpB,QAAA,oEAAoE,EAClER;OACH;AAAE,KACJ,CAAC;AAAA,GACa,CAAC;AAEtB;;;;"}
@@ -3,22 +3,127 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
6
- var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
7
6
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
7
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
8
8
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
9
9
  var React = require('react');
10
10
  var neetoAtoms = require('@bigbinary/neeto-atoms');
11
11
  var primitives = require('@bigbinary/neeto-atoms/primitives');
12
12
  var core = require('@dnd-kit/core');
13
13
  var modifiers = require('@dnd-kit/modifiers');
14
+ var classnames = require('classnames');
14
15
  var neetoCist = require('@bigbinary/neeto-cist');
15
16
  var ramda = require('ramda');
16
17
  var ReactDOM = require('react-dom');
17
- var classnames = require('classnames');
18
18
  var jsxRuntime = require('react/jsx-runtime');
19
19
  var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
20
20
  var useStateWithDependency = require('@bigbinary/neeto-commons-frontend/v2/react-utils/useStateWithDependency');
21
21
 
22
+ // @tanstack/react-table's default column size, used when a column declares no
23
+ // width — matches what DataTable falls back to so freeze offsets line up.
24
+ var DEFAULT_COLUMN_SIZE = 150;
25
+
26
+ // Width of DataTable's built-in selection column; the checkbox is frozen ahead
27
+ // of user-frozen columns, so their sticky offset starts after this width.
28
+ var SELECTION_COLUMN_SIZE = 56;
29
+
30
+ // Sticky styling DataTable applies to its own frozen body cells; replicated
31
+ // here because the custom body bypasses DataTable's per-cell rendering.
32
+ var PINNED_CELL_CLASS = "sticky z-10 bg-background transition-colors group-hover:bg-muted group-data-[state=selected]:bg-row-selected";
33
+
34
+ // Right-edge shadow on the last frozen column, revealed once the scroll
35
+ // container reports horizontal scroll (DataTable owns the scroll group).
36
+ var LAST_PINNED_SHADOW_CLASS = "after:pointer-events-none after:absolute after:inset-y-0 after:-right-2 after:w-2 after:bg-gradient-to-r after:from-black/6 after:to-transparent after:opacity-0 after:transition-opacity after:duration-200 after:content-[''] group-data-[scrolled-start]/scroll:after:opacity-100 dark:after:from-white/6";
37
+
38
+ var getColumnId = function getColumnId(col) {
39
+ return col.key || col.dataIndex;
40
+ };
41
+
42
+ // Build the body's left-to-right cell order, mirroring DataTable's
43
+ // row.getVisibleCells(): left-pinned (frozen) columns first in pin order, then
44
+ // the "center" group — the selection cell followed by the unpinned columns in
45
+ // their original order. Each pinned descriptor carries the sticky offset and
46
+ // size DataTable applies to its own frozen cells so the custom body stays
47
+ // aligned with the (DataTable-rendered) header.
48
+ //
49
+ // Freeze only ever pins to the left: the header menu's toggle manages
50
+ // columnPinning.left exclusively, so right pinning is intentionally unhandled.
51
+ //
52
+ // When freeze is enabled, DataTable force-pins the selection column ahead of
53
+ // everything (resolvedColumnPinning prepends "_selection" to left), so the
54
+ // checkbox stays frozen at the far left and user-frozen columns start after its
55
+ // width. That is replicated here — otherwise header and body drift apart.
56
+ var getBodyColumnLayout = function getBodyColumnLayout(_ref) {
57
+ var _columnPinning$left;
58
+ var columnData = _ref.columnData,
59
+ columnPinning = _ref.columnPinning,
60
+ _ref$columnSizing = _ref.columnSizing,
61
+ columnSizing = _ref$columnSizing === void 0 ? {} : _ref$columnSizing,
62
+ _ref$rowSelection = _ref.rowSelection,
63
+ rowSelection = _ref$rowSelection === void 0 ? false : _ref$rowSelection,
64
+ _ref$enableColumnFree = _ref.enableColumnFreeze,
65
+ enableColumnFreeze = _ref$enableColumnFree === void 0 ? false : _ref$enableColumnFree;
66
+ var leftIds = (_columnPinning$left = columnPinning === null || columnPinning === void 0 ? void 0 : columnPinning.left) !== null && _columnPinning$left !== void 0 ? _columnPinning$left : [];
67
+ var leftSet = new Set(leftIds);
68
+ var sizeOf = function sizeOf(col) {
69
+ var _ref2, _columnSizing$getColu;
70
+ return (_ref2 = (_columnSizing$getColu = columnSizing[getColumnId(col)]) !== null && _columnSizing$getColu !== void 0 ? _columnSizing$getColu : col.width) !== null && _ref2 !== void 0 ? _ref2 : DEFAULT_COLUMN_SIZE;
71
+ };
72
+ var columnById = function columnById(id) {
73
+ return columnData.find(function (col) {
74
+ return getColumnId(col) === id;
75
+ });
76
+ };
77
+
78
+ // The selection column is frozen alongside the data columns only while the
79
+ // freeze feature is on; without it the checkbox is an ordinary leading cell.
80
+ var isSelectionPinned = rowSelection && enableColumnFreeze;
81
+ var leftPinned = [];
82
+ var offset = 0;
83
+ if (isSelectionPinned) {
84
+ leftPinned.push({
85
+ type: "selection",
86
+ pinned: "left",
87
+ size: SELECTION_COLUMN_SIZE,
88
+ left: 0
89
+ });
90
+ offset = SELECTION_COLUMN_SIZE;
91
+ }
92
+ leftIds.forEach(function (id) {
93
+ var col = columnById(id);
94
+ if (!col) return;
95
+ var size = sizeOf(col);
96
+ leftPinned.push({
97
+ type: "data",
98
+ col: col,
99
+ pinned: "left",
100
+ size: size,
101
+ left: offset
102
+ });
103
+ offset += size;
104
+ });
105
+ if (leftPinned.length) {
106
+ leftPinned[leftPinned.length - 1].isLastPinned = true;
107
+ }
108
+ var center = [];
109
+ if (rowSelection && !isSelectionPinned) {
110
+ center.push({
111
+ type: "selection",
112
+ pinned: false
113
+ });
114
+ }
115
+ columnData.forEach(function (col) {
116
+ if (!leftSet.has(getColumnId(col))) {
117
+ center.push({
118
+ type: "data",
119
+ col: col,
120
+ pinned: false
121
+ });
122
+ }
123
+ });
124
+ return [].concat(leftPinned, center);
125
+ };
126
+
22
127
  var _excluded$1 = ["children", "data", "index", "className", "isDroppable"];
23
128
  function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
24
129
  function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -63,7 +168,7 @@ var Row = function Row(_ref) {
63
168
  }));
64
169
  };
65
170
 
66
- var _excluded = ["rowData", "columnData", "overlayColumnIndex", "isRowDroppable", "onDrop", "rowSelection", "selectedRowKeys", "onRowSelect", "currentPageNumber", "paginationProps", "childrenColumnName"];
171
+ var _excluded = ["rowData", "columnData", "overlayColumnIndex", "isRowDroppable", "onDrop", "rowSelection", "selectedRowKeys", "onRowSelect", "enableSorting", "sorting", "onSort", "enableColumnFreeze", "columnPinning", "onColumnPinningChange", "currentPageNumber", "paginationProps", "childrenColumnName"];
67
172
  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; }
68
173
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
69
174
  var sensorConfig = {
@@ -80,16 +185,31 @@ var buildColumns = function buildColumns(columnData) {
80
185
  var key = _ref2.key,
81
186
  dataIndex = _ref2.dataIndex,
82
187
  title = _ref2.title,
83
- width = _ref2.width;
84
- return _objectSpread({
188
+ width = _ref2.width,
189
+ sorter = _ref2.sorter,
190
+ enableSorting = _ref2.enableSorting;
191
+ return _objectSpread(_objectSpread({
85
192
  id: key || dataIndex,
86
193
  accessorKey: dataIndex,
87
194
  header: title
88
195
  }, width ? {
89
196
  size: width
197
+ } : {}), sorter !== undefined || enableSorting !== undefined ? {
198
+ enableSorting: enableSorting !== null && enableSorting !== void 0 ? enableSorting : Boolean(sorter)
90
199
  } : {});
91
200
  });
92
201
  };
202
+
203
+ // DataTable's SortingState is `[{ id, desc }]`; surface the leading sort to
204
+ // consumers in the friendlier { field, order } shape, or null when cleared.
205
+ var toSortInfo = function toSortInfo(sortingState) {
206
+ var _sortingState = _slicedToArray(sortingState, 1),
207
+ sort = _sortingState[0];
208
+ return sort ? {
209
+ field: sort.id,
210
+ order: sort.desc ? "descend" : "ascend"
211
+ } : null;
212
+ };
93
213
  var DndTable = function DndTable(_ref3) {
94
214
  var _dragState$active$dat;
95
215
  var rowData = _ref3.rowData,
@@ -106,6 +226,16 @@ var DndTable = function DndTable(_ref3) {
106
226
  selectedRowKeys = _ref3$selectedRowKeys === void 0 ? [] : _ref3$selectedRowKeys,
107
227
  _ref3$onRowSelect = _ref3.onRowSelect,
108
228
  onRowSelect = _ref3$onRowSelect === void 0 ? neetoCist.noop : _ref3$onRowSelect,
229
+ _ref3$enableSorting = _ref3.enableSorting,
230
+ enableSorting = _ref3$enableSorting === void 0 ? false : _ref3$enableSorting,
231
+ sorting = _ref3.sorting,
232
+ _ref3$onSort = _ref3.onSort,
233
+ onSort = _ref3$onSort === void 0 ? neetoCist.noop : _ref3$onSort,
234
+ _ref3$enableColumnFre = _ref3.enableColumnFreeze,
235
+ enableColumnFreeze = _ref3$enableColumnFre === void 0 ? false : _ref3$enableColumnFre,
236
+ columnPinning = _ref3.columnPinning,
237
+ _ref3$onColumnPinning = _ref3.onColumnPinningChange,
238
+ onColumnPinningChange = _ref3$onColumnPinning === void 0 ? neetoCist.noop : _ref3$onColumnPinning,
109
239
  currentPageNumber = _ref3.currentPageNumber,
110
240
  paginationProps = _ref3.paginationProps;
111
241
  _ref3.childrenColumnName;
@@ -116,6 +246,48 @@ var DndTable = function DndTable(_ref3) {
116
246
  setDragState = _useState2[1];
117
247
  var sensors = core.useSensors(core.useSensor(core.PointerSensor, sensorConfig));
118
248
 
249
+ // Sorting is controlled when a `sorting` prop is supplied, otherwise tracked
250
+ // here so the header arrows stay in sync without consumer wiring.
251
+ var isSortingControlled = sorting !== undefined;
252
+ var _useState3 = React.useState([]),
253
+ _useState4 = _slicedToArray(_useState3, 2),
254
+ uncontrolledSorting = _useState4[0],
255
+ setUncontrolledSorting = _useState4[1];
256
+ var sortingState = isSortingControlled ? sorting : uncontrolledSorting;
257
+ var applySorting = function applySorting(updater) {
258
+ var nextSorting = typeof updater === "function" ? updater(sortingState) : updater;
259
+ if (!isSortingControlled) setUncontrolledSorting(nextSorting);
260
+ onSort(toSortInfo(nextSorting));
261
+ };
262
+
263
+ // Freeze pins columns to the left. Controlled when a `columnPinning` prop is
264
+ // supplied, otherwise tracked here so the freeze menu works standalone.
265
+ var isPinningControlled = columnPinning !== undefined;
266
+ var _useState5 = React.useState({
267
+ left: []
268
+ }),
269
+ _useState6 = _slicedToArray(_useState5, 2),
270
+ uncontrolledPinning = _useState6[0],
271
+ setUncontrolledPinning = _useState6[1];
272
+ var pinningState = isPinningControlled ? columnPinning : uncontrolledPinning;
273
+ var applyPinning = function applyPinning(updater) {
274
+ var nextPinning = typeof updater === "function" ? updater(pinningState) : updater;
275
+ if (!isPinningControlled) setUncontrolledPinning(nextPinning);
276
+ onColumnPinningChange(nextPinning);
277
+ };
278
+
279
+ // Column sizing is owned here so frozen-cell offsets in the custom body track
280
+ // live column resizes (DataTable would otherwise keep it internal).
281
+ var _useState7 = React.useState({}),
282
+ _useState8 = _slicedToArray(_useState7, 2),
283
+ columnSizing = _useState8[0],
284
+ setColumnSizing = _useState8[1];
285
+ var onColumnSizingChange = function onColumnSizingChange(updater) {
286
+ return setColumnSizing(function (prev) {
287
+ return typeof updater === "function" ? updater(prev) : updater;
288
+ });
289
+ };
290
+
119
291
  // getRowId stringifies row ids, but consumers may pass numeric selection
120
292
  // keys; normalise so selection state matches in both DataTable and the body.
121
293
  var selectedKeys = selectedRowKeys.map(String);
@@ -125,6 +297,10 @@ var DndTable = function DndTable(_ref3) {
125
297
  over = _ref4.over;
126
298
  setDragState(null);
127
299
  if (!active || !over) return;
300
+
301
+ // Last action wins: a manual reorder supersedes any active sort, so clear
302
+ // it before persisting the drop, leaving the table in manual order.
303
+ if (sortingState.length) applySorting([]);
128
304
  onDrop(active.data.current, over.data.current);
129
305
  };
130
306
  var renderOverlay = function renderOverlay(data) {
@@ -151,6 +327,69 @@ var DndTable = function DndTable(_ref3) {
151
327
  return nextKeySet.has(getRowKey(row));
152
328
  }));
153
329
  };
330
+
331
+ // Cell order mirrors DataTable's header: frozen columns reorder to the left,
332
+ // so the body must reorder its cells the same way to stay column-aligned.
333
+ var columnLayout = getBodyColumnLayout({
334
+ columnData: columnData,
335
+ columnPinning: pinningState,
336
+ columnSizing: columnSizing,
337
+ rowSelection: rowSelection,
338
+ enableColumnFreeze: enableColumnFreeze
339
+ });
340
+ var pinnedCellProps = function pinnedCellProps(_ref5) {
341
+ var pinned = _ref5.pinned,
342
+ size = _ref5.size,
343
+ left = _ref5.left,
344
+ isLastPinned = _ref5.isLastPinned;
345
+ var isPinned = pinned === "left";
346
+ return {
347
+ className: classnames(_defineProperty(_defineProperty({}, PINNED_CELL_CLASS, isPinned), LAST_PINNED_SHADOW_CLASS, isPinned && isLastPinned)),
348
+ style: isPinned ? {
349
+ width: size,
350
+ minWidth: size,
351
+ maxWidth: size,
352
+ left: left
353
+ } : undefined
354
+ };
355
+ };
356
+ var renderSelectionCell = function renderSelectionCell(descriptor, rowItem) {
357
+ var rowKey = getRowKey(rowItem);
358
+ var _pinnedCellProps = pinnedCellProps(descriptor),
359
+ className = _pinnedCellProps.className,
360
+ style = _pinnedCellProps.style;
361
+ return (
362
+ /*#__PURE__*/
363
+ // Match DataTable's selection header cell padding (it forces !pe-2 while
364
+ // TableCell zeroes pe for checkbox cells) so the body checkbox lines up
365
+ // with the header select-all checkbox.
366
+ React.createElement(primitives.TableCell, {
367
+ style: style,
368
+ className: classnames("!pe-2", className),
369
+ key: "_selection",
370
+ onClick: function onClick(e) {
371
+ return e.stopPropagation();
372
+ }
373
+ }, /*#__PURE__*/jsxRuntime.jsx("div", {
374
+ className: "flex w-full items-center justify-center",
375
+ children: /*#__PURE__*/jsxRuntime.jsx(primitives.Checkbox, {
376
+ checked: selectedKeySet.has(rowKey),
377
+ onCheckedChange: function onCheckedChange() {
378
+ return toggleRowSelection(rowItem);
379
+ }
380
+ })
381
+ }))
382
+ );
383
+ };
384
+ var renderDataCell = function renderDataCell(descriptor, rowItem, index) {
385
+ var col = descriptor.col;
386
+ return /*#__PURE__*/jsxRuntime.jsx(primitives.TableCell, _objectSpread(_objectSpread({}, pinnedCellProps(descriptor)), {}, {
387
+ children: col.render ?
388
+ // Match the antd/v1 render signature (value, record, index); the
389
+ // v1 body rendered through neetoui Table, which passed the row index.
390
+ col.render(rowItem[col.dataIndex], rowItem, index) : rowItem[col.dataIndex]
391
+ }), getColumnId(col));
392
+ };
154
393
  var renderBody = function renderBody() {
155
394
  return /*#__PURE__*/jsxRuntime.jsx(primitives.TableBody, {
156
395
  children: rowData.map(function (rowItem, index) {
@@ -161,29 +400,8 @@ var DndTable = function DndTable(_ref3) {
161
400
  "data-row-key": rowKey,
162
401
  isDroppable: isRowDroppable(rowItem),
163
402
  key: rowKey
164
- }, rowSelection &&
165
- /*#__PURE__*/
166
- // Match DataTable's selection header cell padding (it forces
167
- // !pe-2 while TableCell zeroes pe for checkbox cells) so the
168
- // body checkbox lines up with the header select-all checkbox.
169
- jsxRuntime.jsx(primitives.TableCell, {
170
- className: "!pe-2",
171
- onClick: function onClick(e) {
172
- return e.stopPropagation();
173
- },
174
- children: /*#__PURE__*/jsxRuntime.jsx("div", {
175
- className: "flex w-full items-center justify-center",
176
- children: /*#__PURE__*/jsxRuntime.jsx(primitives.Checkbox, {
177
- checked: selectedKeySet.has(rowKey),
178
- onCheckedChange: function onCheckedChange() {
179
- return toggleRowSelection(rowItem);
180
- }
181
- })
182
- })
183
- }), columnData.map(function (col) {
184
- return /*#__PURE__*/jsxRuntime.jsx(primitives.TableCell, {
185
- children: col.render ? col.render(rowItem[col.dataIndex], rowItem) : rowItem[col.dataIndex]
186
- }, col.key || col.dataIndex);
403
+ }, columnLayout.map(function (descriptor) {
404
+ return descriptor.type === "selection" ? renderSelectionCell(descriptor, rowItem) : renderDataCell(descriptor, rowItem, index);
187
405
  }));
188
406
  })
189
407
  });
@@ -195,12 +413,25 @@ var DndTable = function DndTable(_ref3) {
195
413
  renderBody: renderBody,
196
414
  enableColumnResize: true,
197
415
  enableURLPagination: true,
198
- enableHeaderMenu: false,
199
- // Sorting intentionally left off: DataTable's URL sort params
200
- // (sort_by/order_by) don't match the app's (sortBy/orderBy), so enabling
201
- // it would render sort headers that silently do nothing. Tracked as a
202
- // follow-up once the sort URL convention is wired through.
203
- enableSorting: false,
416
+ // The header three-dot menu surfaces the sort and freeze controls, so turn
417
+ // it on when either is enabled. No hide/reorder handlers are passed, so the
418
+ // menu shows only those actions.
419
+ enableHeaderMenu: enableSorting || enableColumnFreeze,
420
+ // Sorting is driven in controlled mode and URL sync is left off: DataTable's
421
+ // URL params (sort_by/order_by) don't match the app's (sortBy/orderBy), so
422
+ // consumers own ordering via onSort (typically a sorted re-fetch of rowData).
423
+ enableSorting: enableSorting,
424
+ enableURLSort: false,
425
+ sorting: sortingState,
426
+ onSortingChange: applySorting,
427
+ // Freeze: DataTable renders the frozen header; the custom body replicates
428
+ // the sticky cell styling via columnLayout. columnSizing is controlled so
429
+ // those body offsets stay correct as columns are resized.
430
+ enableColumnFreeze: enableColumnFreeze,
431
+ columnPinning: pinningState,
432
+ onColumnPinningChange: applyPinning,
433
+ columnSizing: columnSizing,
434
+ onColumnSizingChange: onColumnSizingChange,
204
435
  enableRowSelection: rowSelection,
205
436
  selectedRowKeys: selectedKeys,
206
437
  onRowSelect: onRowSelect,