@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.
- package/dist/{ConfigureView-DfBAWbOJ.js → ConfigureView-OwgPvJyT.js} +10 -3
- package/dist/ConfigureView-OwgPvJyT.js.map +1 -0
- package/dist/cjs/{ConfigureView-BeNSaMvm.js → ConfigureView-yCOhk92l.js} +10 -3
- package/dist/cjs/ConfigureView-yCOhk92l.js.map +1 -0
- package/dist/cjs/v2/ConfigurePageSidebar.js +12 -3
- package/dist/cjs/v2/ConfigurePageSidebar.js.map +1 -1
- package/dist/cjs/v2/DndTable.js +265 -34
- package/dist/cjs/v2/DndTable.js.map +1 -1
- package/dist/cjs/v2/Sidebar.js +1 -1
- package/dist/cjs/v2/configure-page-sidebar.js +12 -0
- package/dist/cjs/v2/configure-page-sidebar.js.map +1 -0
- package/dist/v2/ConfigurePageSidebar.js +12 -3
- package/dist/v2/ConfigurePageSidebar.js.map +1 -1
- package/dist/v2/DndTable.js +265 -34
- package/dist/v2/DndTable.js.map +1 -1
- package/dist/v2/Sidebar.js +1 -1
- package/dist/v2/configure-page-sidebar.js +7 -0
- package/dist/v2/configure-page-sidebar.js.map +1 -0
- package/package.json +10 -10
- package/types/v2/ConfigurePageSidebar.d.ts +15 -1
- package/dist/ConfigureView-DfBAWbOJ.js.map +0 -1
- package/dist/cjs/ConfigureView-BeNSaMvm.js.map +0 -1
|
@@ -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-
|
|
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-
|
|
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
|
-
|
|
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
|
|
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;;;;"}
|
package/dist/cjs/v2/DndTable.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
},
|
|
165
|
-
|
|
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
|
-
|
|
199
|
-
//
|
|
200
|
-
//
|
|
201
|
-
|
|
202
|
-
//
|
|
203
|
-
|
|
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,
|