@okta/odyssey-react-mui 1.35.2 → 1.35.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/cjs/DatePickers/useOdysseyDateFields.cjs +2 -2
  2. package/dist/cjs/DatePickers/useOdysseyDateFields.cjs.map +1 -1
  3. package/dist/cjs/Field.cjs +1 -1
  4. package/dist/cjs/Field.cjs.map +1 -1
  5. package/dist/cjs/Pagination/Pagination.cjs +0 -6
  6. package/dist/cjs/Pagination/Pagination.cjs.map +1 -1
  7. package/dist/cjs/inputUtils.cjs +1 -1
  8. package/dist/cjs/inputUtils.cjs.map +1 -1
  9. package/dist/cjs/labs/DataFilters.cjs +4 -4
  10. package/dist/cjs/labs/DataFilters.cjs.map +1 -1
  11. package/dist/cjs/labs/DataView/DataCard.cjs +18 -18
  12. package/dist/cjs/labs/DataView/DataCard.cjs.map +1 -1
  13. package/dist/cjs/labs/DataView/DataView.cjs +10 -10
  14. package/dist/cjs/labs/DataView/DataView.cjs.map +1 -1
  15. package/dist/cjs/labs/DataView/useFilterConversion.cjs +1 -1
  16. package/dist/cjs/labs/DataView/useFilterConversion.cjs.map +1 -1
  17. package/dist/cjs/theme/useMediaQuery.cjs +1 -1
  18. package/dist/cjs/theme/useMediaQuery.cjs.map +1 -1
  19. package/dist/cjs/ui-shell/SideNav/SideNav.cjs +79 -48
  20. package/dist/cjs/ui-shell/SideNav/SideNav.cjs.map +1 -1
  21. package/dist/cjs/ui-shell/SideNav/SideNavToggleButton.cjs +84 -112
  22. package/dist/cjs/ui-shell/SideNav/SideNavToggleButton.cjs.map +1 -1
  23. package/dist/cjs/ui-shell/WideUiShellContent.cjs +2 -1
  24. package/dist/cjs/ui-shell/WideUiShellContent.cjs.map +1 -1
  25. package/dist/cjs/ui-shell/useMatchAppElementToUiShellAppArea.cjs +1 -1
  26. package/dist/cjs/ui-shell/useMatchAppElementToUiShellAppArea.cjs.map +1 -1
  27. package/dist/cjs/ui-shell/useScrollState.cjs +71 -21
  28. package/dist/cjs/ui-shell/useScrollState.cjs.map +1 -1
  29. package/dist/cjs/web-component/createReactRootElements.cjs +5 -3
  30. package/dist/cjs/web-component/createReactRootElements.cjs.map +1 -1
  31. package/dist/esm/DatePickers/useOdysseyDateFields.js +2 -2
  32. package/dist/esm/DatePickers/useOdysseyDateFields.js.map +1 -1
  33. package/dist/esm/Field.js +1 -1
  34. package/dist/esm/Field.js.map +1 -1
  35. package/dist/esm/Pagination/Pagination.js +0 -6
  36. package/dist/esm/Pagination/Pagination.js.map +1 -1
  37. package/dist/esm/inputUtils.js +1 -1
  38. package/dist/esm/inputUtils.js.map +1 -1
  39. package/dist/esm/labs/DataFilters.js +4 -4
  40. package/dist/esm/labs/DataFilters.js.map +1 -1
  41. package/dist/esm/labs/DataView/DataCard.js +18 -18
  42. package/dist/esm/labs/DataView/DataCard.js.map +1 -1
  43. package/dist/esm/labs/DataView/DataView.js +10 -10
  44. package/dist/esm/labs/DataView/DataView.js.map +1 -1
  45. package/dist/esm/labs/DataView/useFilterConversion.js +1 -1
  46. package/dist/esm/labs/DataView/useFilterConversion.js.map +1 -1
  47. package/dist/esm/theme/useMediaQuery.js +1 -1
  48. package/dist/esm/theme/useMediaQuery.js.map +1 -1
  49. package/dist/esm/ui-shell/SideNav/SideNav.js +80 -49
  50. package/dist/esm/ui-shell/SideNav/SideNav.js.map +1 -1
  51. package/dist/esm/ui-shell/SideNav/SideNavToggleButton.js +85 -113
  52. package/dist/esm/ui-shell/SideNav/SideNavToggleButton.js.map +1 -1
  53. package/dist/esm/ui-shell/WideUiShellContent.js +2 -1
  54. package/dist/esm/ui-shell/WideUiShellContent.js.map +1 -1
  55. package/dist/esm/ui-shell/useMatchAppElementToUiShellAppArea.js +1 -1
  56. package/dist/esm/ui-shell/useMatchAppElementToUiShellAppArea.js.map +1 -1
  57. package/dist/esm/ui-shell/useScrollState.js +67 -21
  58. package/dist/esm/ui-shell/useScrollState.js.map +1 -1
  59. package/dist/esm/web-component/createReactRootElements.js +4 -2
  60. package/dist/esm/web-component/createReactRootElements.js.map +1 -1
  61. package/dist/index.cjs +1 -1
  62. package/dist/index.mjs +1 -1
  63. package/dist/index.scss +1 -1
  64. package/dist/tsconfig.production.tsbuildinfo +1 -1
  65. package/dist/tsconfig.tsbuildinfo +1 -1
  66. package/dist/types/DatePickers/useOdysseyDateFields.d.ts.map +1 -1
  67. package/dist/types/Pagination/Pagination.d.ts.map +1 -1
  68. package/dist/types/labs/DataView/DataCard.d.ts.map +1 -1
  69. package/dist/types/labs/DataView/DataView.d.ts.map +1 -1
  70. package/dist/types/ui-shell/SideNav/SideNav.d.ts +2 -0
  71. package/dist/types/ui-shell/SideNav/SideNav.d.ts.map +1 -1
  72. package/dist/types/ui-shell/SideNav/SideNavToggleButton.d.ts +15 -8
  73. package/dist/types/ui-shell/SideNav/SideNavToggleButton.d.ts.map +1 -1
  74. package/dist/types/ui-shell/WideUiShellContent.d.ts.map +1 -1
  75. package/dist/types/ui-shell/useMatchAppElementToUiShellAppArea.d.ts.map +1 -1
  76. package/dist/types/ui-shell/useScrollState.d.ts +9 -1
  77. package/dist/types/ui-shell/useScrollState.d.ts.map +1 -1
  78. package/dist/types/web-component/createReactRootElements.d.ts +2 -0
  79. package/dist/types/web-component/createReactRootElements.d.ts.map +1 -1
  80. package/package.json +13 -10
@@ -1 +1 @@
1
- {"version":3,"file":"DataCard.js","names":["memo","useMemo","useState","styled","useTranslation","Box","ButtonContext","MenuButton","useOdysseyDesignTokens","Heading5","Paragraph","Support","ChevronDownIcon","ChevronUpIcon","MoreIcon","jsx","_jsx","jsxs","_jsxs","CARD_IMAGE_SIZE","CARD_IMAGE_SIZE_COMPACT","cardVariantValues","AccessoryContainer","shouldForwardProp","prop","odysseyDesignTokens","variant","display","flexDirection","alignItems","gap","Spacing2","height","ImageContainer","hasMenuButtonChildren","maxHeight","marginBlockEnd","Spacing5","paddingRight","MenuButtonContainer","position","right","Spacing3","top","Spacing4","CardInnerContainer","CardImageAndContentContainer","centerContent","CardContent","Spacing1","CardChildrenContainer","marginBlockStart","AccessoryPlaceholder","_IconButton","visibility","buttonProviderValue","isFullWidth","DataCard","Accessory","AccessoryProp","button","children","description","image","menuButtonChildren","onClick","overline","renderDetailPanel","row","title","t","isDetailPanelOpen","setIsDetailPanelOpen","ExpansionToggle","_Tooltip","disabled","cardContent","countDefinedProps","props","filter","undefined","length","shouldCenterContent","Boolean","component","color","_CardActions","Provider","value","_Card","className","role","_CardActionArea","endIcon","ariaLabel","buttonVariant","menuAlignment","size","tooltipText","MemoizedDataCard","displayName"],"sources":["../../../../src/labs/DataView/DataCard.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n MouseEventHandler,\n ReactElement,\n memo,\n useMemo,\n ReactNode,\n useState,\n} from \"react\";\nimport {\n IconButton as MuiIconButton,\n Card as MuiCard,\n CardActions as MuiCardActions,\n CardActionArea as MuiCardActionArea,\n Tooltip as MuiTooltip,\n} from \"@mui/material\";\nimport styled from \"@emotion/styled\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Box } from \"../../Box.js\";\nimport {\n Button,\n ButtonContext,\n MenuButton,\n MenuButtonProps,\n} from \"../../Buttons/index.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport { Heading5, Paragraph, Support } from \"../../Typography.js\";\nimport {\n ChevronDownIcon,\n ChevronUpIcon,\n MoreIcon,\n} from \"../../icons.generated/index.js\";\nimport { CardLayoutProps } from \"./componentTypes.js\";\nimport { MRT_RowData } from \"material-react-table\";\n\nexport const CARD_IMAGE_SIZE = \"64px\";\nexport const CARD_IMAGE_SIZE_COMPACT = \"48px\";\n\nexport const cardVariantValues = [\"tile\", \"stack\", \"compact\"] as const;\n\nexport type DataCardProps<TData extends MRT_RowData> = {\n children?: ReactNode;\n description?: string;\n image?: ReactElement;\n overline?: string;\n renderDetailPanel?: CardLayoutProps<TData>[\"renderDetailPanel\"];\n row: TData;\n title?: string;\n variant?: (typeof cardVariantValues)[number];\n} & (\n | {\n Accessory?: never;\n button?: never;\n menuButtonChildren?: never;\n onClick: MouseEventHandler;\n }\n | {\n Accessory?: ReactNode;\n button?: ReactElement<typeof Button>;\n menuButtonChildren?: MenuButtonProps[\"children\"];\n onClick?: never;\n }\n);\n\ntype DataCardComponent = (<TData extends MRT_RowData>(\n props: DataCardProps<TData>,\n) => JSX.Element) & {\n displayName?: string;\n};\n\nconst AccessoryContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"variant\",\n})<{\n odysseyDesignTokens: DesignTokens;\n variant: (typeof cardVariantValues)[number];\n}>(({ odysseyDesignTokens, variant }) => ({\n display: \"flex\",\n flexDirection: variant === \"compact\" ? \"row\" : \"column\",\n alignItems: \"center\",\n gap: odysseyDesignTokens.Spacing2,\n height: variant === \"compact\" ? CARD_IMAGE_SIZE_COMPACT : \"auto\",\n}));\n\nconst ImageContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"hasMenuButtonChildren\" &&\n prop !== \"variant\",\n})<{\n odysseyDesignTokens: DesignTokens;\n hasMenuButtonChildren: boolean;\n variant: (typeof cardVariantValues)[number];\n}>(({ odysseyDesignTokens, hasMenuButtonChildren, variant }) => ({\n display: \"flex\",\n alignItems: \"flex-start\",\n height: variant === \"compact\" ? CARD_IMAGE_SIZE_COMPACT : CARD_IMAGE_SIZE,\n maxHeight: variant === \"compact\" ? CARD_IMAGE_SIZE_COMPACT : CARD_IMAGE_SIZE,\n marginBlockEnd: variant === \"tile\" ? odysseyDesignTokens.Spacing5 : 0,\n paddingRight: hasMenuButtonChildren ? odysseyDesignTokens.Spacing5 : 0,\n}));\n\nconst MenuButtonContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n variant: (typeof cardVariantValues)[number];\n}>(({ odysseyDesignTokens, variant }) => ({\n position: \"absolute\",\n right: odysseyDesignTokens.Spacing3,\n top:\n variant === \"compact\"\n ? odysseyDesignTokens.Spacing4\n : odysseyDesignTokens.Spacing3,\n height: variant === \"compact\" ? CARD_IMAGE_SIZE_COMPACT : \"auto\",\n display: \"flex\",\n alignItems: \"center\",\n}));\n\nconst CardInnerContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n gap: odysseyDesignTokens.Spacing3,\n}));\n\nconst CardImageAndContentContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"variant\" && prop !== \"centerContent\",\n})<{ variant: (typeof cardVariantValues)[number]; centerContent: boolean }>(\n ({ variant, centerContent }) => ({\n display: \"flex\",\n flexDirection: variant === \"tile\" ? \"column\" : \"row\",\n alignItems: centerContent ? \"center\" : \"flex-start\",\n }),\n);\n\nconst CardContent = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n variant: (typeof cardVariantValues)[number];\n}>(({ odysseyDesignTokens, variant }) => ({\n \"& > .MuiTypography-h5:not(:last-child)\": {\n marginBlockEnd: `${variant === \"compact\" ? odysseyDesignTokens.Spacing1 : odysseyDesignTokens.Spacing3} !important`,\n },\n \"& > *:last-child\": {\n marginBlockEnd: 0,\n },\n}));\n\nconst CardChildrenContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n [\"&:not(:first-child)\"]: {\n marginBlockStart: odysseyDesignTokens.Spacing3,\n },\n}));\n\nconst AccessoryPlaceholder = styled(MuiIconButton)({\n visibility: \"hidden\",\n});\n\nconst buttonProviderValue = { isFullWidth: true };\n\nconst DataCard: DataCardComponent = <TData extends MRT_RowData>({\n Accessory: AccessoryProp,\n button,\n children,\n description,\n image,\n menuButtonChildren,\n onClick,\n overline,\n renderDetailPanel,\n row,\n title,\n variant = \"tile\",\n}: DataCardProps<TData>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n\n const [isDetailPanelOpen, setIsDetailPanelOpen] = useState<boolean>(false);\n\n const ExpansionToggle = useMemo(() => {\n return renderDetailPanel?.({ row }) ? (\n <MuiTooltip\n title={\n isDetailPanelOpen\n ? t(\"table.rowexpansion.collapse\")\n : t(\"table.rowexpansion.expand\")\n }\n >\n <MuiIconButton\n children={isDetailPanelOpen ? <ChevronUpIcon /> : <ChevronDownIcon />}\n onClick={() => setIsDetailPanelOpen(!isDetailPanelOpen)}\n aria-label={\n isDetailPanelOpen\n ? t(\"table.rowexpansion.collapse\")\n : t(\"table.rowexpansion.expand\")\n }\n />\n </MuiTooltip>\n ) : (\n <AccessoryPlaceholder disabled>\n <ChevronDownIcon />\n </AccessoryPlaceholder>\n );\n }, [isDetailPanelOpen, renderDetailPanel, row, t]);\n\n const Accessory = useMemo(() => {\n return (\n <AccessoryContainer\n odysseyDesignTokens={odysseyDesignTokens}\n variant={variant}\n >\n {AccessoryProp}\n {renderDetailPanel && ExpansionToggle}\n </AccessoryContainer>\n );\n }, [\n AccessoryProp,\n ExpansionToggle,\n odysseyDesignTokens,\n renderDetailPanel,\n variant,\n ]);\n\n const cardContent = useMemo(() => {\n const countDefinedProps = (\n props: Array<string | ReactNode | undefined>,\n ) => {\n return props.filter((prop) => prop !== undefined).length;\n };\n\n const shouldCenterContent =\n variant === \"compact\" &&\n (!renderDetailPanel || !isDetailPanelOpen) &&\n countDefinedProps([title, description, overline, button, children]) <= 2;\n\n return (\n <CardInnerContainer odysseyDesignTokens={odysseyDesignTokens}>\n {(AccessoryProp || renderDetailPanel) && <Box>{Accessory}</Box>}\n <CardImageAndContentContainer\n variant={variant}\n centerContent={shouldCenterContent}\n >\n {image && (\n <ImageContainer\n odysseyDesignTokens={odysseyDesignTokens}\n hasMenuButtonChildren={Boolean(menuButtonChildren)}\n variant={variant}\n >\n {image}\n </ImageContainer>\n )}\n\n <CardContent\n odysseyDesignTokens={odysseyDesignTokens}\n variant={variant}\n >\n {overline && <Support component=\"div\">{overline}</Support>}\n {title && <Heading5 component=\"div\">{title}</Heading5>}\n {description && (\n <Paragraph color=\"textSecondary\">{description}</Paragraph>\n )}\n\n {button && (\n <MuiCardActions>\n <ButtonContext.Provider value={buttonProviderValue}>\n {button}\n </ButtonContext.Provider>\n </MuiCardActions>\n )}\n\n {children && (\n <CardChildrenContainer odysseyDesignTokens={odysseyDesignTokens}>\n {children}\n </CardChildrenContainer>\n )}\n\n {renderDetailPanel && isDetailPanelOpen && (\n <CardChildrenContainer odysseyDesignTokens={odysseyDesignTokens}>\n {renderDetailPanel({ row })}\n </CardChildrenContainer>\n )}\n </CardContent>\n </CardImageAndContentContainer>\n </CardInnerContainer>\n );\n }, [\n odysseyDesignTokens,\n AccessoryProp,\n renderDetailPanel,\n Accessory,\n variant,\n image,\n menuButtonChildren,\n overline,\n title,\n description,\n button,\n children,\n isDetailPanelOpen,\n row,\n ]);\n\n return (\n <MuiCard\n className={`${onClick ? \"isClickable\" : \"\"} ${Accessory ? \"hasAccessory\" : \"\"} ods-card-${variant}`}\n role=\"listitem\"\n >\n {onClick ? (\n <MuiCardActionArea onClick={onClick}>{cardContent}</MuiCardActionArea>\n ) : (\n cardContent\n )}\n\n {menuButtonChildren && (\n <MenuButtonContainer\n odysseyDesignTokens={odysseyDesignTokens}\n variant={variant}\n >\n <MenuButton\n endIcon={<MoreIcon />}\n ariaLabel={t(\"table.moreactions.arialabel\")}\n buttonVariant=\"floating\"\n menuAlignment=\"right\"\n size=\"small\"\n tooltipText={t(\"table.actions\")}\n >\n {menuButtonChildren}\n </MenuButton>\n </MenuButtonContainer>\n )}\n </MuiCard>\n );\n};\n\nconst MemoizedDataCard = memo(DataCard) as DataCardComponent;\nMemoizedDataCard.displayName = \"DataCard\";\n\nexport { MemoizedDataCard as DataCard };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DataCard.js","names":["memo","useMemo","useState","styled","useTranslation","Box","ButtonContext","MenuButton","useOdysseyDesignTokens","Heading5","Paragraph","Support","ChevronDownIcon","ChevronUpIcon","MoreIcon","jsx","_jsx","jsxs","_jsxs","CARD_IMAGE_SIZE","CARD_IMAGE_SIZE_COMPACT","cardVariantValues","StyledAccessoryContainer","shouldForwardProp","prop","odysseyDesignTokens","variant","display","flexDirection","alignItems","gap","Spacing2","height","StyledImageContainer","hasMenuButtonChildren","maxHeight","marginBlockEnd","Spacing5","paddingRight","StyledMenuButtonContainer","position","right","Spacing3","top","Spacing4","StyledCardInnerContainer","StyledCardImageAndContentContainer","centerContent","StyledCardContent","Spacing1","StyledCardChildrenContainer","marginBlockStart","StyledAccessoryPlaceholder","_IconButton","visibility","buttonProviderValue","isFullWidth","DataCard","Accessory","AccessoryProp","button","children","description","image","menuButtonChildren","onClick","overline","renderDetailPanel","row","title","t","isDetailPanelOpen","setIsDetailPanelOpen","ExpansionToggle","_Tooltip","disabled","cardContent","countDefinedProps","props","filter","undefined","length","shouldCenterContent","Boolean","component","color","_CardActions","Provider","value","_Card","className","role","_CardActionArea","endIcon","ariaLabel","buttonVariant","menuAlignment","size","tooltipText","MemoizedDataCard","displayName"],"sources":["../../../../src/labs/DataView/DataCard.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n MouseEventHandler,\n ReactElement,\n memo,\n useMemo,\n ReactNode,\n useState,\n} from \"react\";\nimport {\n IconButton as MuiIconButton,\n Card as MuiCard,\n CardActions as MuiCardActions,\n CardActionArea as MuiCardActionArea,\n Tooltip as MuiTooltip,\n} from \"@mui/material\";\nimport styled from \"@emotion/styled\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Box } from \"../../Box.js\";\nimport {\n Button,\n ButtonContext,\n MenuButton,\n MenuButtonProps,\n} from \"../../Buttons/index.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport { Heading5, Paragraph, Support } from \"../../Typography.js\";\nimport {\n ChevronDownIcon,\n ChevronUpIcon,\n MoreIcon,\n} from \"../../icons.generated/index.js\";\nimport { CardLayoutProps } from \"./componentTypes.js\";\nimport { MRT_RowData } from \"material-react-table\";\n\nexport const CARD_IMAGE_SIZE = \"64px\";\nexport const CARD_IMAGE_SIZE_COMPACT = \"48px\";\n\nexport const cardVariantValues = [\"tile\", \"stack\", \"compact\"] as const;\n\nexport type DataCardProps<TData extends MRT_RowData> = {\n children?: ReactNode;\n description?: string;\n image?: ReactElement;\n overline?: string;\n renderDetailPanel?: CardLayoutProps<TData>[\"renderDetailPanel\"];\n row: TData;\n title?: string;\n variant?: (typeof cardVariantValues)[number];\n} & (\n | {\n Accessory?: never;\n button?: never;\n menuButtonChildren?: never;\n onClick: MouseEventHandler;\n }\n | {\n Accessory?: ReactNode;\n button?: ReactElement<typeof Button>;\n menuButtonChildren?: MenuButtonProps[\"children\"];\n onClick?: never;\n }\n);\n\ntype DataCardComponent = (<TData extends MRT_RowData>(\n props: DataCardProps<TData>,\n) => JSX.Element) & {\n displayName?: string;\n};\n\nconst StyledAccessoryContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"variant\",\n})<{\n odysseyDesignTokens: DesignTokens;\n variant: (typeof cardVariantValues)[number];\n}>(({ odysseyDesignTokens, variant }) => ({\n display: \"flex\",\n flexDirection: variant === \"compact\" ? \"row\" : \"column\",\n alignItems: \"center\",\n gap: odysseyDesignTokens.Spacing2,\n height: variant === \"compact\" ? CARD_IMAGE_SIZE_COMPACT : \"auto\",\n}));\n\nconst StyledImageContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"hasMenuButtonChildren\" &&\n prop !== \"variant\",\n})<{\n odysseyDesignTokens: DesignTokens;\n hasMenuButtonChildren: boolean;\n variant: (typeof cardVariantValues)[number];\n}>(({ odysseyDesignTokens, hasMenuButtonChildren, variant }) => ({\n display: \"flex\",\n alignItems: \"flex-start\",\n height: variant === \"compact\" ? CARD_IMAGE_SIZE_COMPACT : CARD_IMAGE_SIZE,\n maxHeight: variant === \"compact\" ? CARD_IMAGE_SIZE_COMPACT : CARD_IMAGE_SIZE,\n marginBlockEnd: variant === \"tile\" ? odysseyDesignTokens.Spacing5 : 0,\n paddingRight: hasMenuButtonChildren ? odysseyDesignTokens.Spacing5 : 0,\n}));\n\nconst StyledMenuButtonContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n variant: (typeof cardVariantValues)[number];\n}>(({ odysseyDesignTokens, variant }) => ({\n position: \"absolute\",\n right: odysseyDesignTokens.Spacing3,\n top:\n variant === \"compact\"\n ? odysseyDesignTokens.Spacing4\n : odysseyDesignTokens.Spacing3,\n height: variant === \"compact\" ? CARD_IMAGE_SIZE_COMPACT : \"auto\",\n display: \"flex\",\n alignItems: \"center\",\n}));\n\nconst StyledCardInnerContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n gap: odysseyDesignTokens.Spacing3,\n}));\n\nconst StyledCardImageAndContentContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"variant\" && prop !== \"centerContent\",\n})<{ variant: (typeof cardVariantValues)[number]; centerContent: boolean }>(\n ({ variant, centerContent }) => ({\n display: \"flex\",\n flexDirection: variant === \"tile\" ? \"column\" : \"row\",\n alignItems: centerContent ? \"center\" : \"flex-start\",\n }),\n);\n\nconst StyledCardContent = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"variant\",\n})<{\n odysseyDesignTokens: DesignTokens;\n variant: (typeof cardVariantValues)[number];\n}>(({ odysseyDesignTokens, variant }) => ({\n \"& > .MuiTypography-h5:not(:last-child)\": {\n marginBlockEnd: `${variant === \"compact\" ? odysseyDesignTokens.Spacing1 : odysseyDesignTokens.Spacing3} !important`,\n },\n \"& > *:last-child\": {\n marginBlockEnd: 0,\n },\n}));\n\nconst StyledCardChildrenContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n [\"&:not(:first-child)\"]: {\n marginBlockStart: odysseyDesignTokens.Spacing3,\n },\n}));\n\nconst StyledAccessoryPlaceholder = styled(MuiIconButton)({\n visibility: \"hidden\",\n});\n\nconst buttonProviderValue = { isFullWidth: true };\n\nconst DataCard: DataCardComponent = <TData extends MRT_RowData>({\n Accessory: AccessoryProp,\n button,\n children,\n description,\n image,\n menuButtonChildren,\n onClick,\n overline,\n renderDetailPanel,\n row,\n title,\n variant = \"tile\",\n}: DataCardProps<TData>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n\n const [isDetailPanelOpen, setIsDetailPanelOpen] = useState<boolean>(false);\n\n const ExpansionToggle = useMemo(() => {\n return renderDetailPanel?.({ row }) ? (\n <MuiTooltip\n title={\n isDetailPanelOpen\n ? t(\"table.rowexpansion.collapse\")\n : t(\"table.rowexpansion.expand\")\n }\n >\n <MuiIconButton\n children={isDetailPanelOpen ? <ChevronUpIcon /> : <ChevronDownIcon />}\n onClick={() => setIsDetailPanelOpen(!isDetailPanelOpen)}\n aria-label={\n isDetailPanelOpen\n ? t(\"table.rowexpansion.collapse\")\n : t(\"table.rowexpansion.expand\")\n }\n />\n </MuiTooltip>\n ) : (\n <StyledAccessoryPlaceholder disabled>\n <ChevronDownIcon />\n </StyledAccessoryPlaceholder>\n );\n }, [isDetailPanelOpen, renderDetailPanel, row, t]);\n\n const Accessory = useMemo(() => {\n return (\n <StyledAccessoryContainer\n odysseyDesignTokens={odysseyDesignTokens}\n variant={variant}\n >\n {AccessoryProp}\n {renderDetailPanel && ExpansionToggle}\n </StyledAccessoryContainer>\n );\n }, [\n AccessoryProp,\n ExpansionToggle,\n odysseyDesignTokens,\n renderDetailPanel,\n variant,\n ]);\n\n const cardContent = useMemo(() => {\n const countDefinedProps = (\n props: Array<string | ReactNode | undefined>,\n ) => {\n return props.filter((prop) => prop !== undefined).length;\n };\n\n const shouldCenterContent =\n variant === \"compact\" &&\n (!renderDetailPanel || !isDetailPanelOpen) &&\n countDefinedProps([title, description, overline, button, children]) <= 2;\n\n return (\n <StyledCardInnerContainer odysseyDesignTokens={odysseyDesignTokens}>\n {(AccessoryProp || renderDetailPanel) && <Box>{Accessory}</Box>}\n <StyledCardImageAndContentContainer\n variant={variant}\n centerContent={shouldCenterContent}\n >\n {image && (\n <StyledImageContainer\n odysseyDesignTokens={odysseyDesignTokens}\n hasMenuButtonChildren={Boolean(menuButtonChildren)}\n variant={variant}\n >\n {image}\n </StyledImageContainer>\n )}\n\n <StyledCardContent\n odysseyDesignTokens={odysseyDesignTokens}\n variant={variant}\n >\n {overline && <Support component=\"div\">{overline}</Support>}\n {title && <Heading5 component=\"div\">{title}</Heading5>}\n {description && (\n <Paragraph color=\"textSecondary\">{description}</Paragraph>\n )}\n\n {button && (\n <MuiCardActions>\n <ButtonContext.Provider value={buttonProviderValue}>\n {button}\n </ButtonContext.Provider>\n </MuiCardActions>\n )}\n\n {children && (\n <StyledCardChildrenContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {children}\n </StyledCardChildrenContainer>\n )}\n\n {renderDetailPanel && isDetailPanelOpen && (\n <StyledCardChildrenContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {renderDetailPanel({ row })}\n </StyledCardChildrenContainer>\n )}\n </StyledCardContent>\n </StyledCardImageAndContentContainer>\n </StyledCardInnerContainer>\n );\n }, [\n odysseyDesignTokens,\n AccessoryProp,\n renderDetailPanel,\n Accessory,\n variant,\n image,\n menuButtonChildren,\n overline,\n title,\n description,\n button,\n children,\n isDetailPanelOpen,\n row,\n ]);\n\n return (\n <MuiCard\n className={`${onClick ? \"isClickable\" : \"\"} ${Accessory ? \"hasAccessory\" : \"\"} ods-card-${variant}`}\n role=\"listitem\"\n >\n {onClick ? (\n <MuiCardActionArea onClick={onClick}>{cardContent}</MuiCardActionArea>\n ) : (\n cardContent\n )}\n\n {menuButtonChildren && (\n <StyledMenuButtonContainer\n odysseyDesignTokens={odysseyDesignTokens}\n variant={variant}\n >\n <MenuButton\n endIcon={<MoreIcon />}\n ariaLabel={t(\"table.moreactions.arialabel\")}\n buttonVariant=\"floating\"\n menuAlignment=\"right\"\n size=\"small\"\n tooltipText={t(\"table.actions\")}\n >\n {menuButtonChildren}\n </MenuButton>\n </StyledMenuButtonContainer>\n )}\n </MuiCard>\n );\n};\n\nconst MemoizedDataCard = memo(DataCard) as DataCardComponent;\nMemoizedDataCard.displayName = \"DataCard\";\n\nexport { MemoizedDataCard as DataCard };\n"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAGEA,IAAI,EACJC,OAAO,EAEPC,QAAQ,QACH,OAAO;AAQd,OAAOC,MAAM,MAAM,iBAAiB;AACpC,SAASC,cAAc,QAAQ,eAAe;AAE9C,SAASC,GAAG,QAAQ,cAAc;AAClC,SAEEC,aAAa,EACbC,UAAU,QAEL,wBAAwB;AAC/B,SAEEC,sBAAsB,QACjB,qCAAqC;AAC5C,SAASC,QAAQ,EAAEC,SAAS,EAAEC,OAAO,QAAQ,qBAAqB;AAClE,SACEC,eAAe,EACfC,aAAa,EACbC,QAAQ,QACH,gCAAgC;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAIxC,OAAO,MAAMC,eAAe,GAAG,MAAM;AACrC,OAAO,MAAMC,uBAAuB,GAAG,MAAM;AAE7C,OAAO,MAAMC,iBAAiB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAU;AAgCtE,MAAMC,wBAAwB,GAAGnB,MAAM,CAAC,KAAK,EAAE;EAC7CoB,iBAAiB,EAAGC,IAAI,IACtBA,IAAI,KAAK,qBAAqB,IAAIA,IAAI,KAAK;AAC/C,CAAC,CAAC,CAGC,CAAC;EAAEC,mBAAmB;EAAEC;AAAQ,CAAC,MAAM;EACxCC,OAAO,EAAE,MAAM;EACfC,aAAa,EAAEF,OAAO,KAAK,SAAS,GAAG,KAAK,GAAG,QAAQ;EACvDG,UAAU,EAAE,QAAQ;EACpBC,GAAG,EAAEL,mBAAmB,CAACM,QAAQ;EACjCC,MAAM,EAAEN,OAAO,KAAK,SAAS,GAAGN,uBAAuB,GAAG;AAC5D,CAAC,CAAC,CAAC;AAEH,MAAMa,oBAAoB,GAAG9B,MAAM,CAAC,KAAK,EAAE;EACzCoB,iBAAiB,EAAGC,IAAI,IACtBA,IAAI,KAAK,qBAAqB,IAC9BA,IAAI,KAAK,uBAAuB,IAChCA,IAAI,KAAK;AACb,CAAC,CAAC,CAIC,CAAC;EAAEC,mBAAmB;EAAES,qBAAqB;EAAER;AAAQ,CAAC,MAAM;EAC/DC,OAAO,EAAE,MAAM;EACfE,UAAU,EAAE,YAAY;EACxBG,MAAM,EAAEN,OAAO,KAAK,SAAS,GAAGN,uBAAuB,GAAGD,eAAe;EACzEgB,SAAS,EAAET,OAAO,KAAK,SAAS,GAAGN,uBAAuB,GAAGD,eAAe;EAC5EiB,cAAc,EAAEV,OAAO,KAAK,MAAM,GAAGD,mBAAmB,CAACY,QAAQ,GAAG,CAAC;EACrEC,YAAY,EAAEJ,qBAAqB,GAAGT,mBAAmB,CAACY,QAAQ,GAAG;AACvE,CAAC,CAAC,CAAC;AAEH,MAAME,yBAAyB,GAAGpC,MAAM,CAAC,KAAK,EAAE;EAC9CoB,iBAAiB,EAAGC,IAAI,IAAKA,IAAI,KAAK;AACxC,CAAC,CAAC,CAGC,CAAC;EAAEC,mBAAmB;EAAEC;AAAQ,CAAC,MAAM;EACxCc,QAAQ,EAAE,UAAU;EACpBC,KAAK,EAAEhB,mBAAmB,CAACiB,QAAQ;EACnCC,GAAG,EACDjB,OAAO,KAAK,SAAS,GACjBD,mBAAmB,CAACmB,QAAQ,GAC5BnB,mBAAmB,CAACiB,QAAQ;EAClCV,MAAM,EAAEN,OAAO,KAAK,SAAS,GAAGN,uBAAuB,GAAG,MAAM;EAChEO,OAAO,EAAE,MAAM;EACfE,UAAU,EAAE;AACd,CAAC,CAAC,CAAC;AAEH,MAAMgB,wBAAwB,GAAG1C,MAAM,CAAC,KAAK,EAAE;EAC7CoB,iBAAiB,EAAGC,IAAI,IAAKA,IAAI,KAAK;AACxC,CAAC,CAAC,CAAwC,CAAC;EAAEC;AAAoB,CAAC,MAAM;EACtEE,OAAO,EAAE,MAAM;EACfG,GAAG,EAAEL,mBAAmB,CAACiB;AAC3B,CAAC,CAAC,CAAC;AAEH,MAAMI,kCAAkC,GAAG3C,MAAM,CAAC,KAAK,EAAE;EACvDoB,iBAAiB,EAAGC,IAAI,IAAKA,IAAI,KAAK,SAAS,IAAIA,IAAI,KAAK;AAC9D,CAAC,CAAC,CACA,CAAC;EAAEE,OAAO;EAAEqB;AAAc,CAAC,MAAM;EAC/BpB,OAAO,EAAE,MAAM;EACfC,aAAa,EAAEF,OAAO,KAAK,MAAM,GAAG,QAAQ,GAAG,KAAK;EACpDG,UAAU,EAAEkB,aAAa,GAAG,QAAQ,GAAG;AACzC,CAAC,CACH,CAAC;AAED,MAAMC,iBAAiB,GAAG7C,MAAM,CAAC,KAAK,EAAE;EACtCoB,iBAAiB,EAAGC,IAAI,IACtBA,IAAI,KAAK,qBAAqB,IAAIA,IAAI,KAAK;AAC/C,CAAC,CAAC,CAGC,CAAC;EAAEC,mBAAmB;EAAEC;AAAQ,CAAC,MAAM;EACxC,wCAAwC,EAAE;IACxCU,cAAc,EAAE,GAAGV,OAAO,KAAK,SAAS,GAAGD,mBAAmB,CAACwB,QAAQ,GAAGxB,mBAAmB,CAACiB,QAAQ;EACxG,CAAC;EACD,kBAAkB,EAAE;IAClBN,cAAc,EAAE;EAClB;AACF,CAAC,CAAC,CAAC;AAEH,MAAMc,2BAA2B,GAAG/C,MAAM,CAAC,KAAK,EAAE;EAChDoB,iBAAiB,EAAGC,IAAI,IAAKA,IAAI,KAAK;AACxC,CAAC,CAAC,CAAwC,CAAC;EAAEC;AAAoB,CAAC,MAAM;EACtE,CAAC,qBAAqB,GAAG;IACvB0B,gBAAgB,EAAE1B,mBAAmB,CAACiB;EACxC;AACF,CAAC,CAAC,CAAC;AAEH,MAAMU,0BAA0B,GAAGjD,MAAM,CAAAkD,WAAc,CAAC,CAAC;EACvDC,UAAU,EAAE;AACd,CAAC,CAAC;AAEF,MAAMC,mBAAmB,GAAG;EAAEC,WAAW,EAAE;AAAK,CAAC;AAEjD,MAAMC,QAA2B,GAAGA,CAA4B;EAC9DC,SAAS,EAAEC,aAAa;EACxBC,MAAM;EACNC,QAAQ;EACRC,WAAW;EACXC,KAAK;EACLC,kBAAkB;EAClBC,OAAO;EACPC,QAAQ;EACRC,iBAAiB;EACjBC,GAAG;EACHC,KAAK;EACL3C,OAAO,GAAG;AACU,CAAC,KAAK;EAC1B,MAAMD,mBAAmB,GAAGjB,sBAAsB,CAAC,CAAC;EACpD,MAAM;IAAE8D;EAAE,CAAC,GAAGlE,cAAc,CAAC,CAAC;EAE9B,MAAM,CAACmE,iBAAiB,EAAEC,oBAAoB,CAAC,GAAGtE,QAAQ,CAAU,KAAK,CAAC;EAE1E,MAAMuE,eAAe,GAAGxE,OAAO,CAAC,MAAM;IACpC,OAAOkE,iBAAiB,GAAG;MAAEC;IAAI,CAAC,CAAC,GACjCpD,IAAA,CAAA0D,QAAA;MACEL,KAAK,EACHE,iBAAiB,GACbD,CAAC,CAAC,6BAA6B,CAAC,GAChCA,CAAC,CAAC,2BAA2B,CAClC;MAAAT,QAAA,EAED7C,IAAA,CAAAqC,WAAA;QACEQ,QAAQ,EAAEU,iBAAiB,GAAGvD,IAAA,CAACH,aAAa,IAAE,CAAC,GAAGG,IAAA,CAACJ,eAAe,IAAE,CAAE;QACtEqD,OAAO,EAAEA,CAAA,KAAMO,oBAAoB,CAAC,CAACD,iBAAiB,CAAE;QACxD,cACEA,iBAAiB,GACbD,CAAC,CAAC,6BAA6B,CAAC,GAChCA,CAAC,CAAC,2BAA2B;MAClC,CACF;IAAC,CACQ,CAAC,GAEbtD,IAAA,CAACoC,0BAA0B;MAACuB,QAAQ;MAAAd,QAAA,EAClC7C,IAAA,CAACJ,eAAe,IAAE;IAAC,CACO,CAC7B;EACH,CAAC,EAAE,CAAC2D,iBAAiB,EAAEJ,iBAAiB,EAAEC,GAAG,EAAEE,CAAC,CAAC,CAAC;EAElD,MAAMZ,SAAS,GAAGzD,OAAO,CAAC,MAAM;IAC9B,OACEiB,KAAA,CAACI,wBAAwB;MACvBG,mBAAmB,EAAEA,mBAAoB;MACzCC,OAAO,EAAEA,OAAQ;MAAAmC,QAAA,GAEhBF,aAAa,EACbQ,iBAAiB,IAAIM,eAAe;IAAA,CACb,CAAC;EAE/B,CAAC,EAAE,CACDd,aAAa,EACbc,eAAe,EACfhD,mBAAmB,EACnB0C,iBAAiB,EACjBzC,OAAO,CACR,CAAC;EAEF,MAAMkD,WAAW,GAAG3E,OAAO,CAAC,MAAM;IAChC,MAAM4E,iBAAiB,GACrBC,KAA4C,IACzC;MACH,OAAOA,KAAK,CAACC,MAAM,CAAEvD,IAAI,IAAKA,IAAI,KAAKwD,SAAS,CAAC,CAACC,MAAM;IAC1D,CAAC;IAED,MAAMC,mBAAmB,GACvBxD,OAAO,KAAK,SAAS,KACpB,CAACyC,iBAAiB,IAAI,CAACI,iBAAiB,CAAC,IAC1CM,iBAAiB,CAAC,CAACR,KAAK,EAAEP,WAAW,EAAEI,QAAQ,EAAEN,MAAM,EAAEC,QAAQ,CAAC,CAAC,IAAI,CAAC;IAE1E,OACE3C,KAAA,CAAC2B,wBAAwB;MAACpB,mBAAmB,EAAEA,mBAAoB;MAAAoC,QAAA,GAChE,CAACF,aAAa,IAAIQ,iBAAiB,KAAKnD,IAAA,CAACX,GAAG;QAAAwD,QAAA,EAAEH;MAAS,CAAM,CAAC,EAC/DxC,KAAA,CAAC4B,kCAAkC;QACjCpB,OAAO,EAAEA,OAAQ;QACjBqB,aAAa,EAAEmC,mBAAoB;QAAArB,QAAA,GAElCE,KAAK,IACJ/C,IAAA,CAACiB,oBAAoB;UACnBR,mBAAmB,EAAEA,mBAAoB;UACzCS,qBAAqB,EAAEiD,OAAO,CAACnB,kBAAkB,CAAE;UACnDtC,OAAO,EAAEA,OAAQ;UAAAmC,QAAA,EAEhBE;QAAK,CACc,CACvB,EAED7C,KAAA,CAAC8B,iBAAiB;UAChBvB,mBAAmB,EAAEA,mBAAoB;UACzCC,OAAO,EAAEA,OAAQ;UAAAmC,QAAA,GAEhBK,QAAQ,IAAIlD,IAAA,CAACL,OAAO;YAACyE,SAAS,EAAC,KAAK;YAAAvB,QAAA,EAAEK;UAAQ,CAAU,CAAC,EACzDG,KAAK,IAAIrD,IAAA,CAACP,QAAQ;YAAC2E,SAAS,EAAC,KAAK;YAAAvB,QAAA,EAAEQ;UAAK,CAAW,CAAC,EACrDP,WAAW,IACV9C,IAAA,CAACN,SAAS;YAAC2E,KAAK,EAAC,eAAe;YAAAxB,QAAA,EAAEC;UAAW,CAAY,CAC1D,EAEAF,MAAM,IACL5C,IAAA,CAAAsE,YAAA;YAAAzB,QAAA,EACE7C,IAAA,CAACV,aAAa,CAACiF,QAAQ;cAACC,KAAK,EAAEjC,mBAAoB;cAAAM,QAAA,EAChDD;YAAM,CACe;UAAC,CACX,CACjB,EAEAC,QAAQ,IACP7C,IAAA,CAACkC,2BAA2B;YAC1BzB,mBAAmB,EAAEA,mBAAoB;YAAAoC,QAAA,EAExCA;UAAQ,CACkB,CAC9B,EAEAM,iBAAiB,IAAII,iBAAiB,IACrCvD,IAAA,CAACkC,2BAA2B;YAC1BzB,mBAAmB,EAAEA,mBAAoB;YAAAoC,QAAA,EAExCM,iBAAiB,CAAC;cAAEC;YAAI,CAAC;UAAC,CACA,CAC9B;QAAA,CACgB,CAAC;MAAA,CACc,CAAC;IAAA,CACb,CAAC;EAE/B,CAAC,EAAE,CACD3C,mBAAmB,EACnBkC,aAAa,EACbQ,iBAAiB,EACjBT,SAAS,EACThC,OAAO,EACPqC,KAAK,EACLC,kBAAkB,EAClBE,QAAQ,EACRG,KAAK,EACLP,WAAW,EACXF,MAAM,EACNC,QAAQ,EACRU,iBAAiB,EACjBH,GAAG,CACJ,CAAC;EAEF,OACElD,KAAA,CAAAuE,KAAA;IACEC,SAAS,EAAE,GAAGzB,OAAO,GAAG,aAAa,GAAG,EAAE,IAAIP,SAAS,GAAG,cAAc,GAAG,EAAE,aAAahC,OAAO,EAAG;IACpGiE,IAAI,EAAC,UAAU;IAAA9B,QAAA,GAEdI,OAAO,GACNjD,IAAA,CAAA4E,eAAA;MAAmB3B,OAAO,EAAEA,OAAQ;MAAAJ,QAAA,EAAEe;IAAW,CAAoB,CAAC,GAEtEA,WACD,EAEAZ,kBAAkB,IACjBhD,IAAA,CAACuB,yBAAyB;MACxBd,mBAAmB,EAAEA,mBAAoB;MACzCC,OAAO,EAAEA,OAAQ;MAAAmC,QAAA,EAEjB7C,IAAA,CAACT,UAAU;QACTsF,OAAO,EAAE7E,IAAA,CAACF,QAAQ,IAAE,CAAE;QACtBgF,SAAS,EAAExB,CAAC,CAAC,6BAA6B,CAAE;QAC5CyB,aAAa,EAAC,UAAU;QACxBC,aAAa,EAAC,OAAO;QACrBC,IAAI,EAAC,OAAO;QACZC,WAAW,EAAE5B,CAAC,CAAC,eAAe,CAAE;QAAAT,QAAA,EAE/BG;MAAkB,CACT;IAAC,CACY,CAC5B;EAAA,CACM,CAAC;AAEd,CAAC;AAED,MAAMmC,gBAAgB,GAAGnG,IAAI,CAACyD,QAAQ,CAAsB;AAC5D0C,gBAAgB,CAACC,WAAW,GAAG,UAAU;AAEzC,SAASD,gBAAgB,IAAI1C,QAAQ","ignoreList":[]}
@@ -32,7 +32,7 @@ import { Typography } from "../../Typography.js";
32
32
  import { useOdysseyDesignTokens } from "../../OdysseyDesignTokensContext.js";
33
33
  import styled from "@emotion/styled";
34
34
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
35
- const DataViewContainer = styled("div", {
35
+ const StyledDataViewContainer = styled("div", {
36
36
  shouldForwardProp: prop => prop !== "odysseyDesignTokens"
37
37
  })(({
38
38
  odysseyDesignTokens
@@ -41,11 +41,11 @@ const DataViewContainer = styled("div", {
41
41
  flexDirection: "column",
42
42
  gap: odysseyDesignTokens.Spacing4
43
43
  }));
44
- const BulkActionsContainer = styled("div")(() => ({
44
+ const StyledBulkActionsContainer = styled("div")(() => ({
45
45
  display: "flex",
46
46
  justifyContent: "space-between"
47
47
  }));
48
- const AdditionalActionsContainer = styled("div", {
48
+ const StyledAdditionalActionsContainer = styled("div", {
49
49
  shouldForwardProp: prop => prop !== "odysseyDesignTokens"
50
50
  })(({
51
51
  odysseyDesignTokens
@@ -54,7 +54,7 @@ const AdditionalActionsContainer = styled("div", {
54
54
  justifyContent: "flex-end",
55
55
  gap: odysseyDesignTokens.Spacing2
56
56
  }));
57
- const AdditionalActionsInner = styled("div", {
57
+ const StyledAdditionalActionsInner = styled("div", {
58
58
  shouldForwardProp: prop => prop !== "odysseyDesignTokens"
59
59
  })(({
60
60
  odysseyDesignTokens
@@ -63,7 +63,7 @@ const AdditionalActionsInner = styled("div", {
63
63
  alignItems: "center",
64
64
  gap: odysseyDesignTokens.Spacing2
65
65
  }));
66
- const MetaTextContainer = styled("div", {
66
+ const StyledMetaTextContainer = styled("div", {
67
67
  shouldForwardProp: prop => prop !== "odysseyDesignTokens"
68
68
  })(({
69
69
  odysseyDesignTokens
@@ -207,9 +207,9 @@ const DataView = ({
207
207
  return;
208
208
  }, [noResultsPlaceholder, t, isEmpty, isNoResults, emptyPlaceholder]);
209
209
  const additionalActions = useMemo(() => {
210
- return (metaText || currentLayout === "table" && tableLayoutOptions || availableLayouts.length > 1 || additionalActionButton || additionalActionMenuItems) && _jsxs(AdditionalActionsInner, {
210
+ return (metaText || currentLayout === "table" && tableLayoutOptions || availableLayouts.length > 1 || additionalActionButton || additionalActionMenuItems) && _jsxs(StyledAdditionalActionsInner, {
211
211
  odysseyDesignTokens: odysseyDesignTokens,
212
- children: [metaText && _jsx(MetaTextContainer, {
212
+ children: [metaText && _jsx(StyledMetaTextContainer, {
213
213
  odysseyDesignTokens: odysseyDesignTokens,
214
214
  children: _jsx(Typography, {
215
215
  color: "textSecondary",
@@ -251,7 +251,7 @@ const DataView = ({
251
251
  resultsPerPage: pagination.pageSize,
252
252
  page: pagination.pageIndex
253
253
  });
254
- return _jsxs(DataViewContainer, {
254
+ return _jsxs(StyledDataViewContainer, {
255
255
  odysseyDesignTokens: odysseyDesignTokens,
256
256
  children: [errorMessage && _jsx(Box, {
257
257
  children: _jsx(Callout, {
@@ -266,14 +266,14 @@ const DataView = ({
266
266
  onChangeFilters: hasFilters ? setFilters : undefined,
267
267
  onChangeSearch: hasSearch ? setSearch : undefined,
268
268
  searchDelayTime: searchDelayTime
269
- }), (bulkActionMenuItems || hasRowSelection) && _jsxs(BulkActionsContainer, {
269
+ }), (bulkActionMenuItems || hasRowSelection) && _jsxs(StyledBulkActionsContainer, {
270
270
  children: [_jsx(BulkActionsMenu, {
271
271
  data: data,
272
272
  menuItems: bulkActionMenuItems,
273
273
  rowSelection: rowSelection,
274
274
  setRowSelection: setRowSelection
275
275
  }), !shouldShowFilters && additionalActions]
276
- }), !shouldShowFilters && !bulkActionMenuItems && !hasRowSelection && additionalActions && _jsx(AdditionalActionsContainer, {
276
+ }), !shouldShowFilters && !bulkActionMenuItems && !hasRowSelection && additionalActions && _jsx(StyledAdditionalActionsContainer, {
277
277
  odysseyDesignTokens: odysseyDesignTokens,
278
278
  children: additionalActions
279
279
  }), currentLayout === "table" && tableLayoutOptions && _jsx(TableLayoutContent, {
@@ -1 +1 @@
1
- {"version":3,"file":"DataView.js","names":["memo","useCallback","useEffect","useMemo","useState","useTranslation","availableLayouts","allAvailableLayouts","densityValues","Box","BulkActionsMenu","Callout","DataFilters","EmptyState","fetchData","LayoutSwitcher","MenuButton","MoreIcon","TableSettings","Pagination","usePagination","TableLayoutContent","CardLayoutContent","useFilterConversion","useRowReordering","Typography","useOdysseyDesignTokens","styled","jsx","_jsx","jsxs","_jsxs","DataViewContainer","shouldForwardProp","prop","odysseyDesignTokens","display","flexDirection","gap","Spacing4","BulkActionsContainer","justifyContent","AdditionalActionsContainer","Spacing2","AdditionalActionsInner","alignItems","MetaTextContainer","marginInlineEnd","DataView","additionalActionButton","additionalActionMenuItems","bulkActionMenuItems","currentPage","emptyPlaceholder","enableVirtualization","enableVirtualizationProp","errorMessage","errorMessageProp","filters","filtersProp","getData","getRowId","getRowIdProp","hasFilters","hasPagination","hasPageInput","hasRowCountInput","hasRowCountLabel","hasSearch","hasSearchSubmitButton","hasRowReordering","hasRowSelection","initialLayout","isEmpty","isEmptyProp","isLoading","isLoadingProp","isNoResults","isNoResultsProp","isPaginationMoreDisabled","isRowReorderingDisabled","metaText","noResultsPlaceholder","onChangeRowSelection","onReorderRows","paginationType","resultsPerPage","searchDelayTime","cardLayoutOptions","tableLayoutOptions","totalRows","maxPages","maxResultsPerPage","onPaginationChange","t","currentLayout","setCurrentLayout","data","setData","setIsLoading","setIsEmpty","setIsNoResults","setErrorMessage","search","setSearch","initialFilters","setInitialFilters","setFilters","draggingRow","setDraggingRow","rowSelection","setRowSelection","pagination","setPagination","pageIndex","pageSize","tableState","setTableState","columnSorting","columnVisibility","rowDensity","initialDensity","shouldShowFilters","availableFilters","columns","dataQueryParams","page","sort","originalRow","id","prev","undefined","length","prevValue","emptyState","noResultsInnerContent","description","heading","additionalActions","children","color","endIcon","ariaLabel","buttonVariant","menuAlignment","lastRow","lastRowOnPage","currentRowsCount","rowReorderingUtilities","severity","text","isDisabled","onChangeFilters","onChangeSearch","menuItems","currentPageLabel","isMoreDisabled","loadMoreLabel","maxPageIndex","maxPageSize","nextLabel","previousLabel","rowsPerPageLabel","variant","MemoizedDataView","displayName"],"sources":["../../../../src/labs/DataView/DataView.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { memo, useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n MRT_Row,\n MRT_RowData,\n MRT_RowSelectionState,\n} from \"material-react-table\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n availableLayouts as allAvailableLayouts,\n densityValues,\n} from \"./constants.js\";\nimport {\n DataLayout,\n UniversalProps,\n ViewProps,\n TableState,\n} from \"./componentTypes.js\";\nimport { Box } from \"../../Box.js\";\nimport { BulkActionsMenu } from \"./BulkActionsMenu.js\";\nimport { Callout } from \"../../Callout.js\";\nimport { DataFilters } from \"../DataFilters.js\";\nimport { EmptyState } from \"../../EmptyState.js\";\nimport { fetchData } from \"./fetchData.js\";\nimport { LayoutSwitcher } from \"./LayoutSwitcher.js\";\nimport { MenuButton } from \"../../Buttons/index.js\";\nimport { MoreIcon } from \"../../icons.generated/index.js\";\nimport { TableSettings } from \"./TableSettings.js\";\nimport { Pagination, usePagination } from \"../../Pagination/index.js\";\nimport { TableLayoutContent } from \"./TableLayoutContent.js\";\nimport { CardLayoutContent } from \"./CardLayoutContent.js\";\nimport { useFilterConversion } from \"./useFilterConversion.js\";\nimport { useRowReordering } from \"../../DataTable/useRowReordering.js\";\nimport { Typography } from \"../../Typography.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport styled from \"@emotion/styled\";\n\nexport type DataViewProps<TData extends MRT_RowData> = UniversalProps<TData> &\n ViewProps<TData, DataLayout>;\ntype DataViewComponent = (<TData extends MRT_RowData>(\n props: DataViewProps<TData>,\n) => JSX.Element) & {\n displayName?: string;\n};\n\nconst DataViewContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n flexDirection: \"column\",\n gap: odysseyDesignTokens.Spacing4,\n}));\n\nconst BulkActionsContainer = styled(\"div\")(() => ({\n display: \"flex\",\n justifyContent: \"space-between\",\n}));\n\nconst AdditionalActionsContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n justifyContent: \"flex-end\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst AdditionalActionsInner = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"center\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst MetaTextContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n marginInlineEnd: odysseyDesignTokens.Spacing2,\n}));\n\nconst DataView = <TData extends MRT_RowData>({\n additionalActionButton,\n additionalActionMenuItems,\n availableLayouts = allAvailableLayouts,\n bulkActionMenuItems,\n currentPage = 1,\n emptyPlaceholder,\n enableVirtualization: enableVirtualizationProp,\n errorMessage: errorMessageProp,\n filters: filtersProp,\n getData,\n getRowId: getRowIdProp,\n hasFilters,\n hasPagination,\n hasPageInput,\n hasRowCountInput,\n hasRowCountLabel,\n hasSearch,\n hasSearchSubmitButton,\n hasRowReordering,\n hasRowSelection,\n initialLayout,\n isEmpty: isEmptyProp,\n isLoading: isLoadingProp,\n isNoResults: isNoResultsProp,\n isPaginationMoreDisabled,\n isRowReorderingDisabled,\n metaText,\n noResultsPlaceholder,\n onChangeRowSelection,\n onReorderRows,\n paginationType = \"paged\",\n resultsPerPage = 20,\n searchDelayTime,\n cardLayoutOptions,\n tableLayoutOptions,\n totalRows,\n maxPages,\n maxResultsPerPage,\n onPaginationChange,\n}: DataViewProps<TData>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n\n const [currentLayout, setCurrentLayout] = useState<DataLayout>(\n initialLayout ?? availableLayouts[0],\n );\n\n const [data, setData] = useState<TData[]>([]);\n const [isLoading, setIsLoading] = useState<boolean>(isLoadingProp ?? true);\n const [isEmpty, setIsEmpty] = useState<boolean>(isEmptyProp ?? true);\n const [isNoResults, setIsNoResults] = useState<boolean>(\n isNoResultsProp ?? false,\n );\n const [errorMessage, setErrorMessage] =\n useState<UniversalProps<TData>[\"errorMessage\"]>(errorMessageProp);\n\n const [search, setSearch] = useState<string>(\"\");\n\n const [initialFilters, setInitialFilters] =\n useState<UniversalProps<TData>[\"filters\"]>(filtersProp);\n const [filters, setFilters] =\n useState<UniversalProps<TData>[\"filters\"]>(filtersProp);\n\n const [draggingRow, setDraggingRow] = useState<MRT_Row<TData> | null>();\n\n const [rowSelection, setRowSelection] = useState<MRT_RowSelectionState>({});\n\n useEffect(() => {\n onChangeRowSelection?.(rowSelection);\n }, [rowSelection, onChangeRowSelection]);\n\n const [pagination, setPagination] = useState({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n\n const [tableState, setTableState] = useState<TableState>({\n columnSorting: [],\n columnVisibility: {},\n rowDensity: tableLayoutOptions?.initialDensity ?? densityValues[0],\n });\n\n const shouldShowFilters =\n hasSearch ||\n hasFilters ||\n additionalActionButton ||\n additionalActionMenuItems;\n\n const availableFilters = useFilterConversion({\n filters: filters,\n columns: tableLayoutOptions?.columns,\n });\n\n useEffect(() => {\n if (!initialFilters && availableFilters) {\n setInitialFilters(availableFilters);\n }\n }, [availableFilters, initialFilters]);\n\n const dataQueryParams = useMemo(\n () => ({\n page: pagination.pageIndex,\n resultsPerPage: pagination.pageSize,\n search,\n filters: availableFilters,\n sort: tableState?.columnSorting,\n }),\n [\n pagination.pageIndex,\n pagination.pageSize,\n search,\n availableFilters,\n tableState?.columnSorting,\n ],\n );\n\n const getRowId = useCallback<Required<DataViewProps<TData>>[\"getRowId\"]>(\n (originalRow) => originalRow.id as string,\n [],\n );\n\n // Update pagination state if props change\n useEffect(() => {\n setPagination({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n }, [currentPage, resultsPerPage]);\n\n // Reset pagination if search or filters change\n useEffect(() => {\n setPagination((prev) => ({\n pageIndex: 1,\n pageSize: paginationType == \"loadMore\" ? resultsPerPage : prev.pageSize,\n }));\n }, [filters, paginationType, resultsPerPage, search]);\n\n // Fire onPaginationChange if pagination changes\n useEffect(() => {\n onPaginationChange?.(pagination);\n }, [onPaginationChange, pagination]);\n\n // Retrieve the data\n useEffect(() => {\n fetchData({\n dataQueryParams,\n errorMessageProp,\n getData,\n setData,\n setErrorMessage,\n // Only include setIsLoading if that's not being controlled manually\n setIsLoading: isLoadingProp ? undefined : setIsLoading,\n });\n }, [dataQueryParams, errorMessageProp, getData, isLoadingProp]);\n\n // When data is updated\n useEffect(() => {\n setIsEmpty(\n pagination.pageIndex === currentPage &&\n pagination.pageSize === resultsPerPage &&\n search === \"\" &&\n (!hasFilters || filters === initialFilters) &&\n data.length === 0,\n );\n }, [\n currentPage,\n data,\n filters,\n hasFilters,\n initialFilters,\n pagination,\n resultsPerPage,\n search,\n ]);\n\n // Change loading, empty and noResults state on prop change\n useEffect(() => {\n setIsLoading((prevValue) => isLoadingProp ?? prevValue);\n }, [isLoadingProp]);\n\n useEffect(() => {\n setIsEmpty((prevValue) => isEmptyProp ?? prevValue);\n }, [isEmptyProp]);\n\n useEffect(() => {\n setIsNoResults((prevValue) => isNoResultsProp ?? prevValue);\n }, [isNoResultsProp]);\n\n const emptyState = useMemo(() => {\n const noResultsInnerContent = noResultsPlaceholder || (\n <EmptyState\n description={t(\"table.noresults.text\")}\n heading={t(\"table.noresults.heading\")}\n />\n );\n\n if (isEmpty) {\n return emptyPlaceholder || noResultsInnerContent;\n }\n\n if (isNoResults) {\n return noResultsInnerContent;\n }\n\n return;\n }, [noResultsPlaceholder, t, isEmpty, isNoResults, emptyPlaceholder]);\n\n const additionalActions = useMemo(() => {\n return (\n (metaText ||\n (currentLayout === \"table\" && tableLayoutOptions) ||\n availableLayouts.length > 1 ||\n additionalActionButton ||\n additionalActionMenuItems) && (\n <AdditionalActionsInner odysseyDesignTokens={odysseyDesignTokens}>\n {metaText && (\n <MetaTextContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Typography color=\"textSecondary\">{metaText}</Typography>\n </MetaTextContainer>\n )}\n\n {currentLayout === \"table\" && tableLayoutOptions && (\n <TableSettings\n setTableState={setTableState}\n tableLayoutOptions={tableLayoutOptions}\n tableState={tableState}\n />\n )}\n\n {availableLayouts.length > 1 && (\n <LayoutSwitcher\n availableLayouts={availableLayouts}\n currentLayout={currentLayout}\n setCurrentLayout={setCurrentLayout}\n />\n )}\n\n {additionalActionButton}\n\n {additionalActionMenuItems && (\n <MenuButton\n endIcon={<MoreIcon />}\n ariaLabel={t(\"table.moreactions.arialabel\")}\n buttonVariant=\"secondary\"\n menuAlignment=\"right\"\n >\n {additionalActionMenuItems}\n </MenuButton>\n )}\n </AdditionalActionsInner>\n )\n );\n }, [\n additionalActionButton,\n additionalActionMenuItems,\n availableLayouts,\n currentLayout,\n metaText,\n odysseyDesignTokens,\n tableLayoutOptions,\n tableState,\n t,\n ]);\n\n const enableVirtualization = useMemo(\n () => enableVirtualizationProp ?? paginationType === \"loadMore\",\n [enableVirtualizationProp, paginationType],\n );\n\n const { lastRow: lastRowOnPage } = usePagination({\n currentRowsCount: data.length,\n pageIndex: pagination.pageIndex,\n pageSize: pagination.pageSize,\n totalRows,\n });\n\n const rowReorderingUtilities = useRowReordering({\n totalRows,\n onReorderRows,\n data,\n setData,\n draggingRow,\n setDraggingRow,\n resultsPerPage: pagination.pageSize,\n page: pagination.pageIndex,\n });\n\n return (\n <DataViewContainer odysseyDesignTokens={odysseyDesignTokens}>\n {errorMessage && (\n <Box>\n <Callout severity=\"error\" text={errorMessage} />\n </Box>\n )}\n\n {shouldShowFilters && (\n <DataFilters\n additionalActions={additionalActions}\n filters={hasFilters ? availableFilters : undefined}\n hasSearchSubmitButton={hasSearchSubmitButton}\n isDisabled={isEmpty}\n onChangeFilters={hasFilters ? setFilters : undefined}\n onChangeSearch={hasSearch ? setSearch : undefined}\n searchDelayTime={searchDelayTime}\n />\n )}\n\n {(bulkActionMenuItems || hasRowSelection) && (\n <BulkActionsContainer>\n <BulkActionsMenu\n data={data}\n menuItems={bulkActionMenuItems}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n />\n {!shouldShowFilters && additionalActions}\n </BulkActionsContainer>\n )}\n\n {!shouldShowFilters &&\n !bulkActionMenuItems &&\n !hasRowSelection &&\n additionalActions && (\n <AdditionalActionsContainer odysseyDesignTokens={odysseyDesignTokens}>\n {additionalActions}\n </AdditionalActionsContainer>\n )}\n\n {currentLayout === \"table\" && tableLayoutOptions && (\n <TableLayoutContent\n columns={tableLayoutOptions.columns}\n data={data}\n draggingRow={draggingRow}\n emptyState={emptyState}\n enableVirtualization={enableVirtualization}\n getRowId={getRowIdProp || getRowId}\n hasRowReordering={hasRowReordering}\n hasRowSelection={hasRowSelection}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isRowReorderingDisabled={isRowReorderingDisabled}\n onReorderRows={onReorderRows}\n pagination={pagination}\n rowReorderingUtilities={rowReorderingUtilities}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n setTableState={setTableState}\n tableLayoutOptions={tableLayoutOptions}\n tableState={tableState}\n totalRows={totalRows}\n />\n )}\n {(currentLayout === \"list\" || currentLayout === \"grid\") &&\n cardLayoutOptions && (\n <CardLayoutContent\n currentLayout={currentLayout}\n data={data}\n draggingRow={draggingRow}\n emptyState={emptyState}\n getRowId={getRowIdProp || getRowId}\n hasRowReordering={hasRowReordering}\n hasRowSelection={hasRowSelection}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isRowReorderingDisabled={isRowReorderingDisabled}\n onReorderRows={onReorderRows}\n pagination={pagination}\n rowReorderingUtilities={rowReorderingUtilities}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n cardLayoutOptions={cardLayoutOptions}\n totalRows={totalRows}\n />\n )}\n\n {hasPagination && (\n <Pagination\n currentPageLabel={t(\"pagination.page\")}\n hasPageInput={hasPageInput}\n hasRowCountInput={hasRowCountInput}\n hasRowCountLabel={hasRowCountLabel}\n isDisabled={isEmpty}\n isMoreDisabled={isPaginationMoreDisabled}\n lastRow={lastRowOnPage}\n loadMoreLabel={t(\"pagination.loadmore\")}\n maxPageIndex={maxPages}\n maxPageSize={maxResultsPerPage}\n nextLabel={t(\"pagination.next\")}\n onPaginationChange={setPagination}\n pageIndex={pagination.pageIndex}\n pageSize={pagination.pageSize}\n previousLabel={t(\"pagination.previous\")}\n rowsPerPageLabel={t(\"pagination.rowsperpage\")}\n totalRows={totalRows}\n currentRowsCount={data.length}\n variant={paginationType}\n />\n )}\n </DataViewContainer>\n );\n};\n\nconst MemoizedDataView = memo(DataView) as DataViewComponent;\nMemoizedDataView.displayName = \"DataView\";\n\nexport { MemoizedDataView as DataView };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DataView.js","names":["memo","useCallback","useEffect","useMemo","useState","useTranslation","availableLayouts","allAvailableLayouts","densityValues","Box","BulkActionsMenu","Callout","DataFilters","EmptyState","fetchData","LayoutSwitcher","MenuButton","MoreIcon","TableSettings","Pagination","usePagination","TableLayoutContent","CardLayoutContent","useFilterConversion","useRowReordering","Typography","useOdysseyDesignTokens","styled","jsx","_jsx","jsxs","_jsxs","StyledDataViewContainer","shouldForwardProp","prop","odysseyDesignTokens","display","flexDirection","gap","Spacing4","StyledBulkActionsContainer","justifyContent","StyledAdditionalActionsContainer","Spacing2","StyledAdditionalActionsInner","alignItems","StyledMetaTextContainer","marginInlineEnd","DataView","additionalActionButton","additionalActionMenuItems","bulkActionMenuItems","currentPage","emptyPlaceholder","enableVirtualization","enableVirtualizationProp","errorMessage","errorMessageProp","filters","filtersProp","getData","getRowId","getRowIdProp","hasFilters","hasPagination","hasPageInput","hasRowCountInput","hasRowCountLabel","hasSearch","hasSearchSubmitButton","hasRowReordering","hasRowSelection","initialLayout","isEmpty","isEmptyProp","isLoading","isLoadingProp","isNoResults","isNoResultsProp","isPaginationMoreDisabled","isRowReorderingDisabled","metaText","noResultsPlaceholder","onChangeRowSelection","onReorderRows","paginationType","resultsPerPage","searchDelayTime","cardLayoutOptions","tableLayoutOptions","totalRows","maxPages","maxResultsPerPage","onPaginationChange","t","currentLayout","setCurrentLayout","data","setData","setIsLoading","setIsEmpty","setIsNoResults","setErrorMessage","search","setSearch","initialFilters","setInitialFilters","setFilters","draggingRow","setDraggingRow","rowSelection","setRowSelection","pagination","setPagination","pageIndex","pageSize","tableState","setTableState","columnSorting","columnVisibility","rowDensity","initialDensity","shouldShowFilters","availableFilters","columns","dataQueryParams","page","sort","originalRow","id","prev","undefined","length","prevValue","emptyState","noResultsInnerContent","description","heading","additionalActions","children","color","endIcon","ariaLabel","buttonVariant","menuAlignment","lastRow","lastRowOnPage","currentRowsCount","rowReorderingUtilities","severity","text","isDisabled","onChangeFilters","onChangeSearch","menuItems","currentPageLabel","isMoreDisabled","loadMoreLabel","maxPageIndex","maxPageSize","nextLabel","previousLabel","rowsPerPageLabel","variant","MemoizedDataView","displayName"],"sources":["../../../../src/labs/DataView/DataView.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { memo, useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n MRT_Row,\n MRT_RowData,\n MRT_RowSelectionState,\n} from \"material-react-table\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n availableLayouts as allAvailableLayouts,\n densityValues,\n} from \"./constants.js\";\nimport {\n DataLayout,\n UniversalProps,\n ViewProps,\n TableState,\n} from \"./componentTypes.js\";\nimport { Box } from \"../../Box.js\";\nimport { BulkActionsMenu } from \"./BulkActionsMenu.js\";\nimport { Callout } from \"../../Callout.js\";\nimport { DataFilters } from \"../DataFilters.js\";\nimport { EmptyState } from \"../../EmptyState.js\";\nimport { fetchData } from \"./fetchData.js\";\nimport { LayoutSwitcher } from \"./LayoutSwitcher.js\";\nimport { MenuButton } from \"../../Buttons/index.js\";\nimport { MoreIcon } from \"../../icons.generated/index.js\";\nimport { TableSettings } from \"./TableSettings.js\";\nimport { Pagination, usePagination } from \"../../Pagination/index.js\";\nimport { TableLayoutContent } from \"./TableLayoutContent.js\";\nimport { CardLayoutContent } from \"./CardLayoutContent.js\";\nimport { useFilterConversion } from \"./useFilterConversion.js\";\nimport { useRowReordering } from \"../../DataTable/useRowReordering.js\";\nimport { Typography } from \"../../Typography.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport styled from \"@emotion/styled\";\n\nexport type DataViewProps<TData extends MRT_RowData> = UniversalProps<TData> &\n ViewProps<TData, DataLayout>;\ntype DataViewComponent = (<TData extends MRT_RowData>(\n props: DataViewProps<TData>,\n) => JSX.Element) & {\n displayName?: string;\n};\n\nconst StyledDataViewContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n flexDirection: \"column\",\n gap: odysseyDesignTokens.Spacing4,\n}));\n\nconst StyledBulkActionsContainer = styled(\"div\")(() => ({\n display: \"flex\",\n justifyContent: \"space-between\",\n}));\n\nconst StyledAdditionalActionsContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n justifyContent: \"flex-end\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst StyledAdditionalActionsInner = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"center\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst StyledMetaTextContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n marginInlineEnd: odysseyDesignTokens.Spacing2,\n}));\n\nconst DataView = <TData extends MRT_RowData>({\n additionalActionButton,\n additionalActionMenuItems,\n availableLayouts = allAvailableLayouts,\n bulkActionMenuItems,\n currentPage = 1,\n emptyPlaceholder,\n enableVirtualization: enableVirtualizationProp,\n errorMessage: errorMessageProp,\n filters: filtersProp,\n getData,\n getRowId: getRowIdProp,\n hasFilters,\n hasPagination,\n hasPageInput,\n hasRowCountInput,\n hasRowCountLabel,\n hasSearch,\n hasSearchSubmitButton,\n hasRowReordering,\n hasRowSelection,\n initialLayout,\n isEmpty: isEmptyProp,\n isLoading: isLoadingProp,\n isNoResults: isNoResultsProp,\n isPaginationMoreDisabled,\n isRowReorderingDisabled,\n metaText,\n noResultsPlaceholder,\n onChangeRowSelection,\n onReorderRows,\n paginationType = \"paged\",\n resultsPerPage = 20,\n searchDelayTime,\n cardLayoutOptions,\n tableLayoutOptions,\n totalRows,\n maxPages,\n maxResultsPerPage,\n onPaginationChange,\n}: DataViewProps<TData>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n\n const [currentLayout, setCurrentLayout] = useState<DataLayout>(\n initialLayout ?? availableLayouts[0],\n );\n\n const [data, setData] = useState<TData[]>([]);\n const [isLoading, setIsLoading] = useState<boolean>(isLoadingProp ?? true);\n const [isEmpty, setIsEmpty] = useState<boolean>(isEmptyProp ?? true);\n const [isNoResults, setIsNoResults] = useState<boolean>(\n isNoResultsProp ?? false,\n );\n const [errorMessage, setErrorMessage] =\n useState<UniversalProps<TData>[\"errorMessage\"]>(errorMessageProp);\n\n const [search, setSearch] = useState<string>(\"\");\n\n const [initialFilters, setInitialFilters] =\n useState<UniversalProps<TData>[\"filters\"]>(filtersProp);\n const [filters, setFilters] =\n useState<UniversalProps<TData>[\"filters\"]>(filtersProp);\n\n const [draggingRow, setDraggingRow] = useState<MRT_Row<TData> | null>();\n\n const [rowSelection, setRowSelection] = useState<MRT_RowSelectionState>({});\n\n useEffect(() => {\n onChangeRowSelection?.(rowSelection);\n }, [rowSelection, onChangeRowSelection]);\n\n const [pagination, setPagination] = useState({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n\n const [tableState, setTableState] = useState<TableState>({\n columnSorting: [],\n columnVisibility: {},\n rowDensity: tableLayoutOptions?.initialDensity ?? densityValues[0],\n });\n\n const shouldShowFilters =\n hasSearch ||\n hasFilters ||\n additionalActionButton ||\n additionalActionMenuItems;\n\n const availableFilters = useFilterConversion({\n filters: filters,\n columns: tableLayoutOptions?.columns,\n });\n\n useEffect(() => {\n if (!initialFilters && availableFilters) {\n setInitialFilters(availableFilters);\n }\n }, [availableFilters, initialFilters]);\n\n const dataQueryParams = useMemo(\n () => ({\n page: pagination.pageIndex,\n resultsPerPage: pagination.pageSize,\n search,\n filters: availableFilters,\n sort: tableState?.columnSorting,\n }),\n [\n pagination.pageIndex,\n pagination.pageSize,\n search,\n availableFilters,\n tableState?.columnSorting,\n ],\n );\n\n const getRowId = useCallback<Required<DataViewProps<TData>>[\"getRowId\"]>(\n (originalRow) => originalRow.id as string,\n [],\n );\n\n // Update pagination state if props change\n useEffect(() => {\n setPagination({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n }, [currentPage, resultsPerPage]);\n\n // Reset pagination if search or filters change\n useEffect(() => {\n setPagination((prev) => ({\n pageIndex: 1,\n pageSize: paginationType == \"loadMore\" ? resultsPerPage : prev.pageSize,\n }));\n }, [filters, paginationType, resultsPerPage, search]);\n\n // Fire onPaginationChange if pagination changes\n useEffect(() => {\n onPaginationChange?.(pagination);\n }, [onPaginationChange, pagination]);\n\n // Retrieve the data\n useEffect(() => {\n fetchData({\n dataQueryParams,\n errorMessageProp,\n getData,\n setData,\n setErrorMessage,\n // Only include setIsLoading if that's not being controlled manually\n setIsLoading: isLoadingProp ? undefined : setIsLoading,\n });\n }, [dataQueryParams, errorMessageProp, getData, isLoadingProp]);\n\n // When data is updated\n useEffect(() => {\n setIsEmpty(\n pagination.pageIndex === currentPage &&\n pagination.pageSize === resultsPerPage &&\n search === \"\" &&\n (!hasFilters || filters === initialFilters) &&\n data.length === 0,\n );\n }, [\n currentPage,\n data,\n filters,\n hasFilters,\n initialFilters,\n pagination,\n resultsPerPage,\n search,\n ]);\n\n // Change loading, empty and noResults state on prop change\n useEffect(() => {\n setIsLoading((prevValue) => isLoadingProp ?? prevValue);\n }, [isLoadingProp]);\n\n useEffect(() => {\n setIsEmpty((prevValue) => isEmptyProp ?? prevValue);\n }, [isEmptyProp]);\n\n useEffect(() => {\n setIsNoResults((prevValue) => isNoResultsProp ?? prevValue);\n }, [isNoResultsProp]);\n\n const emptyState = useMemo(() => {\n const noResultsInnerContent = noResultsPlaceholder || (\n <EmptyState\n description={t(\"table.noresults.text\")}\n heading={t(\"table.noresults.heading\")}\n />\n );\n\n if (isEmpty) {\n return emptyPlaceholder || noResultsInnerContent;\n }\n\n if (isNoResults) {\n return noResultsInnerContent;\n }\n\n return;\n }, [noResultsPlaceholder, t, isEmpty, isNoResults, emptyPlaceholder]);\n\n const additionalActions = useMemo(() => {\n return (\n (metaText ||\n (currentLayout === \"table\" && tableLayoutOptions) ||\n availableLayouts.length > 1 ||\n additionalActionButton ||\n additionalActionMenuItems) && (\n <StyledAdditionalActionsInner odysseyDesignTokens={odysseyDesignTokens}>\n {metaText && (\n <StyledMetaTextContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Typography color=\"textSecondary\">{metaText}</Typography>\n </StyledMetaTextContainer>\n )}\n\n {currentLayout === \"table\" && tableLayoutOptions && (\n <TableSettings\n setTableState={setTableState}\n tableLayoutOptions={tableLayoutOptions}\n tableState={tableState}\n />\n )}\n\n {availableLayouts.length > 1 && (\n <LayoutSwitcher\n availableLayouts={availableLayouts}\n currentLayout={currentLayout}\n setCurrentLayout={setCurrentLayout}\n />\n )}\n\n {additionalActionButton}\n\n {additionalActionMenuItems && (\n <MenuButton\n endIcon={<MoreIcon />}\n ariaLabel={t(\"table.moreactions.arialabel\")}\n buttonVariant=\"secondary\"\n menuAlignment=\"right\"\n >\n {additionalActionMenuItems}\n </MenuButton>\n )}\n </StyledAdditionalActionsInner>\n )\n );\n }, [\n additionalActionButton,\n additionalActionMenuItems,\n availableLayouts,\n currentLayout,\n metaText,\n odysseyDesignTokens,\n tableLayoutOptions,\n tableState,\n t,\n ]);\n\n const enableVirtualization = useMemo(\n () => enableVirtualizationProp ?? paginationType === \"loadMore\",\n [enableVirtualizationProp, paginationType],\n );\n\n const { lastRow: lastRowOnPage } = usePagination({\n currentRowsCount: data.length,\n pageIndex: pagination.pageIndex,\n pageSize: pagination.pageSize,\n totalRows,\n });\n\n const rowReorderingUtilities = useRowReordering({\n totalRows,\n onReorderRows,\n data,\n setData,\n draggingRow,\n setDraggingRow,\n resultsPerPage: pagination.pageSize,\n page: pagination.pageIndex,\n });\n\n return (\n <StyledDataViewContainer odysseyDesignTokens={odysseyDesignTokens}>\n {errorMessage && (\n <Box>\n <Callout severity=\"error\" text={errorMessage} />\n </Box>\n )}\n\n {shouldShowFilters && (\n <DataFilters\n additionalActions={additionalActions}\n filters={hasFilters ? availableFilters : undefined}\n hasSearchSubmitButton={hasSearchSubmitButton}\n isDisabled={isEmpty}\n onChangeFilters={hasFilters ? setFilters : undefined}\n onChangeSearch={hasSearch ? setSearch : undefined}\n searchDelayTime={searchDelayTime}\n />\n )}\n\n {(bulkActionMenuItems || hasRowSelection) && (\n <StyledBulkActionsContainer>\n <BulkActionsMenu\n data={data}\n menuItems={bulkActionMenuItems}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n />\n {!shouldShowFilters && additionalActions}\n </StyledBulkActionsContainer>\n )}\n\n {!shouldShowFilters &&\n !bulkActionMenuItems &&\n !hasRowSelection &&\n additionalActions && (\n <StyledAdditionalActionsContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {additionalActions}\n </StyledAdditionalActionsContainer>\n )}\n\n {currentLayout === \"table\" && tableLayoutOptions && (\n <TableLayoutContent\n columns={tableLayoutOptions.columns}\n data={data}\n draggingRow={draggingRow}\n emptyState={emptyState}\n enableVirtualization={enableVirtualization}\n getRowId={getRowIdProp || getRowId}\n hasRowReordering={hasRowReordering}\n hasRowSelection={hasRowSelection}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isRowReorderingDisabled={isRowReorderingDisabled}\n onReorderRows={onReorderRows}\n pagination={pagination}\n rowReorderingUtilities={rowReorderingUtilities}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n setTableState={setTableState}\n tableLayoutOptions={tableLayoutOptions}\n tableState={tableState}\n totalRows={totalRows}\n />\n )}\n {(currentLayout === \"list\" || currentLayout === \"grid\") &&\n cardLayoutOptions && (\n <CardLayoutContent\n currentLayout={currentLayout}\n data={data}\n draggingRow={draggingRow}\n emptyState={emptyState}\n getRowId={getRowIdProp || getRowId}\n hasRowReordering={hasRowReordering}\n hasRowSelection={hasRowSelection}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isRowReorderingDisabled={isRowReorderingDisabled}\n onReorderRows={onReorderRows}\n pagination={pagination}\n rowReorderingUtilities={rowReorderingUtilities}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n cardLayoutOptions={cardLayoutOptions}\n totalRows={totalRows}\n />\n )}\n\n {hasPagination && (\n <Pagination\n currentPageLabel={t(\"pagination.page\")}\n hasPageInput={hasPageInput}\n hasRowCountInput={hasRowCountInput}\n hasRowCountLabel={hasRowCountLabel}\n isDisabled={isEmpty}\n isMoreDisabled={isPaginationMoreDisabled}\n lastRow={lastRowOnPage}\n loadMoreLabel={t(\"pagination.loadmore\")}\n maxPageIndex={maxPages}\n maxPageSize={maxResultsPerPage}\n nextLabel={t(\"pagination.next\")}\n onPaginationChange={setPagination}\n pageIndex={pagination.pageIndex}\n pageSize={pagination.pageSize}\n previousLabel={t(\"pagination.previous\")}\n rowsPerPageLabel={t(\"pagination.rowsperpage\")}\n totalRows={totalRows}\n currentRowsCount={data.length}\n variant={paginationType}\n />\n )}\n </StyledDataViewContainer>\n );\n};\n\nconst MemoizedDataView = memo(DataView) as DataViewComponent;\nMemoizedDataView.displayName = \"DataView\";\n\nexport { MemoizedDataView as DataView };\n"],"mappings":"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","ignoreList":[]}
@@ -45,7 +45,7 @@ export const useFilterConversion = ({
45
45
  }
46
46
  return accumulator;
47
47
  }, []);
48
- }, [columns, filters]);
48
+ }, [columns, convertColumnToFilter, filters]);
49
49
  return dataTableFilters;
50
50
  };
51
51
  //# sourceMappingURL=useFilterConversion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFilterConversion.js","names":["useCallback","useMemo","useFilterConversion","columns","filters","convertFilterSelectOptions","options","map","option","label","value","convertColumnToFilter","column","enableColumnFilter","accessorKey","id","header","variant","filterVariant","filterSelectOptions","dataTableFilters","providedFilters","reduce","accumulator","item","foundColumn","find","filter","concat"],"sources":["../../../../src/labs/DataView/useFilterConversion.ts"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { useCallback, useMemo } from \"react\";\nimport { MRT_RowData } from \"material-react-table\";\n\nimport { DataFilter } from \"../DataFilters.js\";\nimport { DataTableColumn } from \"../../DataTable/index.js\";\nimport { UniversalProps, TableLayoutProps } from \"./componentTypes.js\";\n\ntype FilterConversionType<TData extends MRT_RowData> = {\n columns?: TableLayoutProps<TData>[\"columns\"];\n filters?: UniversalProps<TData>[\"filters\"];\n};\n\nexport const useFilterConversion = <TData extends MRT_RowData>({\n columns,\n filters,\n}: FilterConversionType<TData>) => {\n const convertFilterSelectOptions = useCallback(\n (options: DataTableColumn<MRT_RowData>[\"filterSelectOptions\"]) =>\n options?.map((option) =>\n typeof option === \"string\"\n ? {\n label: option,\n value: option,\n }\n : {\n // If the option isn't a string, it must have value and/or option defined\n // If either is undefined, use the other\n label: (option.label ?? option.value) as string,\n value: (option.value ?? option.label) as string,\n },\n ),\n [],\n );\n\n const convertColumnToFilter = useCallback(\n (column: DataTableColumn<TData>) =>\n column.enableColumnFilter !== false && column.accessorKey\n ? {\n id: column.accessorKey,\n label: column.header,\n variant: column.filterVariant,\n options: convertFilterSelectOptions(column.filterSelectOptions),\n }\n : null,\n [convertFilterSelectOptions],\n );\n\n const dataTableFilters = useMemo(() => {\n // Filters may be manually set via the `filters` variable;\n // If not, they may be inferred from `columns`\n const providedFilters = filters || columns || [];\n\n return providedFilters.reduce<DataFilter[]>((accumulator, item) => {\n if (typeof item === \"string\") {\n const foundColumn = columns?.find(\n (column) => column.accessorKey === item,\n );\n const filter = foundColumn && convertColumnToFilter(foundColumn);\n return filter ? accumulator.concat(filter) : accumulator;\n }\n\n if (\"accessorKey\" in item) {\n const filter = convertColumnToFilter(item);\n return filter ? accumulator.concat(filter) : accumulator;\n }\n\n if (\"label\" in item) {\n return accumulator.concat(item);\n }\n\n return accumulator;\n }, []);\n }, [columns, filters]);\n\n return dataTableFilters;\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAY5C,OAAO,MAAMC,mBAAmB,GAAGA,CAA4B;EAC7DC,OAAO;EACPC;AAC2B,CAAC,KAAK;EACjC,MAAMC,0BAA0B,GAAGL,WAAW,CAC3CM,OAA4D,IAC3DA,OAAO,EAAEC,GAAG,CAAEC,MAAM,IAClB,OAAOA,MAAM,KAAK,QAAQ,GACtB;IACEC,KAAK,EAAED,MAAM;IACbE,KAAK,EAAEF;EACT,CAAC,GACD;IAGEC,KAAK,EAAGD,MAAM,CAACC,KAAK,IAAID,MAAM,CAACE,KAAgB;IAC/CA,KAAK,EAAGF,MAAM,CAACE,KAAK,IAAIF,MAAM,CAACC;EACjC,CACN,CAAC,EACH,EACF,CAAC;EAED,MAAME,qBAAqB,GAAGX,WAAW,CACtCY,MAA8B,IAC7BA,MAAM,CAACC,kBAAkB,KAAK,KAAK,IAAID,MAAM,CAACE,WAAW,GACrD;IACEC,EAAE,EAAEH,MAAM,CAACE,WAAW;IACtBL,KAAK,EAAEG,MAAM,CAACI,MAAM;IACpBC,OAAO,EAAEL,MAAM,CAACM,aAAa;IAC7BZ,OAAO,EAAED,0BAA0B,CAACO,MAAM,CAACO,mBAAmB;EAChE,CAAC,GACD,IAAI,EACV,CAACd,0BAA0B,CAC7B,CAAC;EAED,MAAMe,gBAAgB,GAAGnB,OAAO,CAAC,MAAM;IAGrC,MAAMoB,eAAe,GAAGjB,OAAO,IAAID,OAAO,IAAI,EAAE;IAEhD,OAAOkB,eAAe,CAACC,MAAM,CAAe,CAACC,WAAW,EAAEC,IAAI,KAAK;MACjE,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;QAC5B,MAAMC,WAAW,GAAGtB,OAAO,EAAEuB,IAAI,CAC9Bd,MAAM,IAAKA,MAAM,CAACE,WAAW,KAAKU,IACrC,CAAC;QACD,MAAMG,MAAM,GAAGF,WAAW,IAAId,qBAAqB,CAACc,WAAW,CAAC;QAChE,OAAOE,MAAM,GAAGJ,WAAW,CAACK,MAAM,CAACD,MAAM,CAAC,GAAGJ,WAAW;MAC1D;MAEA,IAAI,aAAa,IAAIC,IAAI,EAAE;QACzB,MAAMG,MAAM,GAAGhB,qBAAqB,CAACa,IAAI,CAAC;QAC1C,OAAOG,MAAM,GAAGJ,WAAW,CAACK,MAAM,CAACD,MAAM,CAAC,GAAGJ,WAAW;MAC1D;MAEA,IAAI,OAAO,IAAIC,IAAI,EAAE;QACnB,OAAOD,WAAW,CAACK,MAAM,CAACJ,IAAI,CAAC;MACjC;MAEA,OAAOD,WAAW;IACpB,CAAC,EAAE,EAAE,CAAC;EACR,CAAC,EAAE,CAACpB,OAAO,EAAEC,OAAO,CAAC,CAAC;EAEtB,OAAOgB,gBAAgB;AACzB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"useFilterConversion.js","names":["useCallback","useMemo","useFilterConversion","columns","filters","convertFilterSelectOptions","options","map","option","label","value","convertColumnToFilter","column","enableColumnFilter","accessorKey","id","header","variant","filterVariant","filterSelectOptions","dataTableFilters","providedFilters","reduce","accumulator","item","foundColumn","find","filter","concat"],"sources":["../../../../src/labs/DataView/useFilterConversion.ts"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { useCallback, useMemo } from \"react\";\nimport { MRT_RowData } from \"material-react-table\";\n\nimport { DataFilter } from \"../DataFilters.js\";\nimport { DataTableColumn } from \"../../DataTable/index.js\";\nimport { UniversalProps, TableLayoutProps } from \"./componentTypes.js\";\n\ntype FilterConversionType<TData extends MRT_RowData> = {\n columns?: TableLayoutProps<TData>[\"columns\"];\n filters?: UniversalProps<TData>[\"filters\"];\n};\n\nexport const useFilterConversion = <TData extends MRT_RowData>({\n columns,\n filters,\n}: FilterConversionType<TData>) => {\n const convertFilterSelectOptions = useCallback(\n (options: DataTableColumn<MRT_RowData>[\"filterSelectOptions\"]) =>\n options?.map((option) =>\n typeof option === \"string\"\n ? {\n label: option,\n value: option,\n }\n : {\n // If the option isn't a string, it must have value and/or option defined\n // If either is undefined, use the other\n label: (option.label ?? option.value) as string,\n value: (option.value ?? option.label) as string,\n },\n ),\n [],\n );\n\n const convertColumnToFilter = useCallback(\n (column: DataTableColumn<TData>) =>\n column.enableColumnFilter !== false && column.accessorKey\n ? {\n id: column.accessorKey,\n label: column.header,\n variant: column.filterVariant,\n options: convertFilterSelectOptions(column.filterSelectOptions),\n }\n : null,\n [convertFilterSelectOptions],\n );\n\n const dataTableFilters = useMemo(() => {\n // Filters may be manually set via the `filters` variable;\n // If not, they may be inferred from `columns`\n const providedFilters = filters || columns || [];\n\n return providedFilters.reduce<DataFilter[]>((accumulator, item) => {\n if (typeof item === \"string\") {\n const foundColumn = columns?.find(\n (column) => column.accessorKey === item,\n );\n const filter = foundColumn && convertColumnToFilter(foundColumn);\n return filter ? accumulator.concat(filter) : accumulator;\n }\n\n if (\"accessorKey\" in item) {\n const filter = convertColumnToFilter(item);\n return filter ? accumulator.concat(filter) : accumulator;\n }\n\n if (\"label\" in item) {\n return accumulator.concat(item);\n }\n\n return accumulator;\n }, []);\n }, [columns, convertColumnToFilter, filters]);\n\n return dataTableFilters;\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAY5C,OAAO,MAAMC,mBAAmB,GAAGA,CAA4B;EAC7DC,OAAO;EACPC;AAC2B,CAAC,KAAK;EACjC,MAAMC,0BAA0B,GAAGL,WAAW,CAC3CM,OAA4D,IAC3DA,OAAO,EAAEC,GAAG,CAAEC,MAAM,IAClB,OAAOA,MAAM,KAAK,QAAQ,GACtB;IACEC,KAAK,EAAED,MAAM;IACbE,KAAK,EAAEF;EACT,CAAC,GACD;IAGEC,KAAK,EAAGD,MAAM,CAACC,KAAK,IAAID,MAAM,CAACE,KAAgB;IAC/CA,KAAK,EAAGF,MAAM,CAACE,KAAK,IAAIF,MAAM,CAACC;EACjC,CACN,CAAC,EACH,EACF,CAAC;EAED,MAAME,qBAAqB,GAAGX,WAAW,CACtCY,MAA8B,IAC7BA,MAAM,CAACC,kBAAkB,KAAK,KAAK,IAAID,MAAM,CAACE,WAAW,GACrD;IACEC,EAAE,EAAEH,MAAM,CAACE,WAAW;IACtBL,KAAK,EAAEG,MAAM,CAACI,MAAM;IACpBC,OAAO,EAAEL,MAAM,CAACM,aAAa;IAC7BZ,OAAO,EAAED,0BAA0B,CAACO,MAAM,CAACO,mBAAmB;EAChE,CAAC,GACD,IAAI,EACV,CAACd,0BAA0B,CAC7B,CAAC;EAED,MAAMe,gBAAgB,GAAGnB,OAAO,CAAC,MAAM;IAGrC,MAAMoB,eAAe,GAAGjB,OAAO,IAAID,OAAO,IAAI,EAAE;IAEhD,OAAOkB,eAAe,CAACC,MAAM,CAAe,CAACC,WAAW,EAAEC,IAAI,KAAK;MACjE,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;QAC5B,MAAMC,WAAW,GAAGtB,OAAO,EAAEuB,IAAI,CAC9Bd,MAAM,IAAKA,MAAM,CAACE,WAAW,KAAKU,IACrC,CAAC;QACD,MAAMG,MAAM,GAAGF,WAAW,IAAId,qBAAqB,CAACc,WAAW,CAAC;QAChE,OAAOE,MAAM,GAAGJ,WAAW,CAACK,MAAM,CAACD,MAAM,CAAC,GAAGJ,WAAW;MAC1D;MAEA,IAAI,aAAa,IAAIC,IAAI,EAAE;QACzB,MAAMG,MAAM,GAAGhB,qBAAqB,CAACa,IAAI,CAAC;QAC1C,OAAOG,MAAM,GAAGJ,WAAW,CAACK,MAAM,CAACD,MAAM,CAAC,GAAGJ,WAAW;MAC1D;MAEA,IAAI,OAAO,IAAIC,IAAI,EAAE;QACnB,OAAOD,WAAW,CAACK,MAAM,CAACJ,IAAI,CAAC;MACjC;MAEA,OAAOD,WAAW;IACpB,CAAC,EAAE,EAAE,CAAC;EACR,CAAC,EAAE,CAACpB,OAAO,EAAEQ,qBAAqB,EAAEP,OAAO,CAAC,CAAC;EAE7C,OAAOgB,gBAAgB;AACzB,CAAC","ignoreList":[]}
@@ -21,7 +21,7 @@ export const useMediaQuery = mediaQuery => {
21
21
  return () => {
22
22
  mediaQueryList.removeEventListener("change", updateHasMatches);
23
23
  };
24
- }, [mediaQueryList]);
24
+ }, [mediaQueryList, updateHasMatches]);
25
25
  return hasMatches;
26
26
  };
27
27
  //# sourceMappingURL=useMediaQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMediaQuery.js","names":["useCallback","useEffect","useMemo","useState","useMediaQuery","mediaQuery","mediaQueryList","window","matchMedia","hasMatches","setHasMatches","matches","updateHasMatches","event","addEventListener","removeEventListener"],"sources":["../../../src/theme/useMediaQuery.ts"],"sourcesContent":["/*!\n * Copyright (c) 2025-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { StringWithValue } from \"./StringWithValue.js\";\n\nexport const useMediaQuery = <MediaQuery extends string>(\n mediaQuery: StringWithValue<MediaQuery>,\n) => {\n const mediaQueryList = useMemo(\n () => window.matchMedia(mediaQuery),\n [mediaQuery],\n );\n\n const [hasMatches, setHasMatches] = useState(() => mediaQueryList.matches);\n\n const updateHasMatches = useCallback(\n (event: MediaQueryListEvent | MediaQueryList) =>\n setHasMatches(event.matches),\n [],\n );\n\n useEffect(() => {\n mediaQueryList.addEventListener(\"change\", updateHasMatches);\n\n updateHasMatches(mediaQueryList);\n\n return () => {\n mediaQueryList.removeEventListener(\"change\", updateHasMatches);\n };\n }, [mediaQueryList]);\n\n return hasMatches;\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAIjE,OAAO,MAAMC,aAAa,GACxBC,UAAuC,IACpC;EACH,MAAMC,cAAc,GAAGJ,OAAO,CAC5B,MAAMK,MAAM,CAACC,UAAU,CAACH,UAAU,CAAC,EACnC,CAACA,UAAU,CACb,CAAC;EAED,MAAM,CAACI,UAAU,EAAEC,aAAa,CAAC,GAAGP,QAAQ,CAAC,MAAMG,cAAc,CAACK,OAAO,CAAC;EAE1E,MAAMC,gBAAgB,GAAGZ,WAAW,CACjCa,KAA2C,IAC1CH,aAAa,CAACG,KAAK,CAACF,OAAO,CAAC,EAC9B,EACF,CAAC;EAEDV,SAAS,CAAC,MAAM;IACdK,cAAc,CAACQ,gBAAgB,CAAC,QAAQ,EAAEF,gBAAgB,CAAC;IAE3DA,gBAAgB,CAACN,cAAc,CAAC;IAEhC,OAAO,MAAM;MACXA,cAAc,CAACS,mBAAmB,CAAC,QAAQ,EAAEH,gBAAgB,CAAC;IAChE,CAAC;EACH,CAAC,EAAE,CAACN,cAAc,CAAC,CAAC;EAEpB,OAAOG,UAAU;AACnB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"useMediaQuery.js","names":["useCallback","useEffect","useMemo","useState","useMediaQuery","mediaQuery","mediaQueryList","window","matchMedia","hasMatches","setHasMatches","matches","updateHasMatches","event","addEventListener","removeEventListener"],"sources":["../../../src/theme/useMediaQuery.ts"],"sourcesContent":["/*!\n * Copyright (c) 2025-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { StringWithValue } from \"./StringWithValue.js\";\n\nexport const useMediaQuery = <MediaQuery extends string>(\n mediaQuery: StringWithValue<MediaQuery>,\n) => {\n const mediaQueryList = useMemo(\n () => window.matchMedia(mediaQuery),\n [mediaQuery],\n );\n\n const [hasMatches, setHasMatches] = useState(() => mediaQueryList.matches);\n\n const updateHasMatches = useCallback(\n (event: MediaQueryListEvent | MediaQueryList) =>\n setHasMatches(event.matches),\n [],\n );\n\n useEffect(() => {\n mediaQueryList.addEventListener(\"change\", updateHasMatches);\n\n updateHasMatches(mediaQueryList);\n\n return () => {\n mediaQueryList.removeEventListener(\"change\", updateHasMatches);\n };\n }, [mediaQueryList, updateHasMatches]);\n\n return hasMatches;\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAIjE,OAAO,MAAMC,aAAa,GACxBC,UAAuC,IACpC;EACH,MAAMC,cAAc,GAAGJ,OAAO,CAC5B,MAAMK,MAAM,CAACC,UAAU,CAACH,UAAU,CAAC,EACnC,CAACA,UAAU,CACb,CAAC;EAED,MAAM,CAACI,UAAU,EAAEC,aAAa,CAAC,GAAGP,QAAQ,CAAC,MAAMG,cAAc,CAACK,OAAO,CAAC;EAE1E,MAAMC,gBAAgB,GAAGZ,WAAW,CACjCa,KAA2C,IAC1CH,aAAa,CAACG,KAAK,CAACF,OAAO,CAAC,EAC9B,EACF,CAAC;EAEDV,SAAS,CAAC,MAAM;IACdK,cAAc,CAACQ,gBAAgB,CAAC,QAAQ,EAAEF,gBAAgB,CAAC;IAE3DA,gBAAgB,CAACN,cAAc,CAAC;IAEhC,OAAO,MAAM;MACXA,cAAc,CAACS,mBAAmB,CAAC,QAAQ,EAAEH,gBAAgB,CAAC;IAChE,CAAC;EACH,CAAC,EAAE,CAACN,cAAc,EAAEM,gBAAgB,CAAC,CAAC;EAEtC,OAAOH,UAAU;AACnB,CAAC","ignoreList":[]}