@okta/odyssey-react-mui 1.35.2 → 1.36.0

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 (115) 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/StringWithValue.cjs.map +1 -0
  8. package/dist/cjs/inputUtils.cjs +1 -1
  9. package/dist/cjs/inputUtils.cjs.map +1 -1
  10. package/dist/cjs/labs/DataFilters.cjs +4 -4
  11. package/dist/cjs/labs/DataFilters.cjs.map +1 -1
  12. package/dist/cjs/labs/DataView/DataCard.cjs +18 -18
  13. package/dist/cjs/labs/DataView/DataCard.cjs.map +1 -1
  14. package/dist/cjs/labs/DataView/DataView.cjs +10 -10
  15. package/dist/cjs/labs/DataView/DataView.cjs.map +1 -1
  16. package/dist/cjs/labs/DataView/useFilterConversion.cjs +1 -1
  17. package/dist/cjs/labs/DataView/useFilterConversion.cjs.map +1 -1
  18. package/dist/cjs/theme/useMediaQuery.cjs +1 -1
  19. package/dist/cjs/theme/useMediaQuery.cjs.map +1 -1
  20. package/dist/cjs/ui-shell/SideNav/SideNav.cjs +108 -60
  21. package/dist/cjs/ui-shell/SideNav/SideNav.cjs.map +1 -1
  22. package/dist/cjs/ui-shell/SideNav/SideNavToggleButton.cjs +84 -112
  23. package/dist/cjs/ui-shell/SideNav/SideNavToggleButton.cjs.map +1 -1
  24. package/dist/cjs/ui-shell/SideNav/useIsSideNavCollapsedSessionStorage.cjs +26 -0
  25. package/dist/cjs/ui-shell/SideNav/useIsSideNavCollapsedSessionStorage.cjs.map +1 -0
  26. package/dist/cjs/ui-shell/WideUiShellContent.cjs +2 -1
  27. package/dist/cjs/ui-shell/WideUiShellContent.cjs.map +1 -1
  28. package/dist/cjs/ui-shell/index.cjs +8 -1
  29. package/dist/cjs/ui-shell/index.cjs.map +1 -1
  30. package/dist/cjs/ui-shell/useMatchAppElementToUiShellAppArea.cjs +1 -1
  31. package/dist/cjs/ui-shell/useMatchAppElementToUiShellAppArea.cjs.map +1 -1
  32. package/dist/cjs/ui-shell/useScrollState.cjs +71 -21
  33. package/dist/cjs/ui-shell/useScrollState.cjs.map +1 -1
  34. package/dist/cjs/useMountLifecycleEffect.cjs +36 -0
  35. package/dist/cjs/useMountLifecycleEffect.cjs.map +1 -0
  36. package/dist/cjs/useSessionStorageState.cjs +64 -0
  37. package/dist/cjs/useSessionStorageState.cjs.map +1 -0
  38. package/dist/cjs/web-component/createReactRootElements.cjs +5 -3
  39. package/dist/cjs/web-component/createReactRootElements.cjs.map +1 -1
  40. package/dist/esm/DatePickers/useOdysseyDateFields.js +2 -2
  41. package/dist/esm/DatePickers/useOdysseyDateFields.js.map +1 -1
  42. package/dist/esm/Field.js +1 -1
  43. package/dist/esm/Field.js.map +1 -1
  44. package/dist/esm/Pagination/Pagination.js +0 -6
  45. package/dist/esm/Pagination/Pagination.js.map +1 -1
  46. package/dist/esm/StringWithValue.js.map +1 -0
  47. package/dist/esm/inputUtils.js +1 -1
  48. package/dist/esm/inputUtils.js.map +1 -1
  49. package/dist/esm/labs/DataFilters.js +4 -4
  50. package/dist/esm/labs/DataFilters.js.map +1 -1
  51. package/dist/esm/labs/DataView/DataCard.js +18 -18
  52. package/dist/esm/labs/DataView/DataCard.js.map +1 -1
  53. package/dist/esm/labs/DataView/DataView.js +10 -10
  54. package/dist/esm/labs/DataView/DataView.js.map +1 -1
  55. package/dist/esm/labs/DataView/useFilterConversion.js +1 -1
  56. package/dist/esm/labs/DataView/useFilterConversion.js.map +1 -1
  57. package/dist/esm/theme/useMediaQuery.js +1 -1
  58. package/dist/esm/theme/useMediaQuery.js.map +1 -1
  59. package/dist/esm/ui-shell/SideNav/SideNav.js +109 -61
  60. package/dist/esm/ui-shell/SideNav/SideNav.js.map +1 -1
  61. package/dist/esm/ui-shell/SideNav/SideNavToggleButton.js +85 -113
  62. package/dist/esm/ui-shell/SideNav/SideNavToggleButton.js.map +1 -1
  63. package/dist/esm/ui-shell/SideNav/useIsSideNavCollapsedSessionStorage.js +19 -0
  64. package/dist/esm/ui-shell/SideNav/useIsSideNavCollapsedSessionStorage.js.map +1 -0
  65. package/dist/esm/ui-shell/WideUiShellContent.js +2 -1
  66. package/dist/esm/ui-shell/WideUiShellContent.js.map +1 -1
  67. package/dist/esm/ui-shell/index.js +1 -1
  68. package/dist/esm/ui-shell/index.js.map +1 -1
  69. package/dist/esm/ui-shell/useMatchAppElementToUiShellAppArea.js +1 -1
  70. package/dist/esm/ui-shell/useMatchAppElementToUiShellAppArea.js.map +1 -1
  71. package/dist/esm/ui-shell/useScrollState.js +67 -21
  72. package/dist/esm/ui-shell/useScrollState.js.map +1 -1
  73. package/dist/esm/useMountLifecycleEffect.js +29 -0
  74. package/dist/esm/useMountLifecycleEffect.js.map +1 -0
  75. package/dist/esm/useSessionStorageState.js +56 -0
  76. package/dist/esm/useSessionStorageState.js.map +1 -0
  77. package/dist/esm/web-component/createReactRootElements.js +4 -2
  78. package/dist/esm/web-component/createReactRootElements.js.map +1 -1
  79. package/dist/index.cjs +1 -1
  80. package/dist/index.mjs +1 -1
  81. package/dist/index.scss +1 -1
  82. package/dist/tsconfig.production.tsbuildinfo +1 -1
  83. package/dist/tsconfig.tsbuildinfo +1 -1
  84. package/dist/types/DatePickers/useOdysseyDateFields.d.ts.map +1 -1
  85. package/dist/types/Pagination/Pagination.d.ts.map +1 -1
  86. package/dist/types/StringWithValue.d.ts.map +1 -0
  87. package/dist/types/labs/DataView/DataCard.d.ts.map +1 -1
  88. package/dist/types/labs/DataView/DataView.d.ts.map +1 -1
  89. package/dist/types/theme/useMediaQuery.d.ts +1 -1
  90. package/dist/types/theme/useMediaQuery.d.ts.map +1 -1
  91. package/dist/types/ui-shell/SideNav/SideNav.d.ts +2 -0
  92. package/dist/types/ui-shell/SideNav/SideNav.d.ts.map +1 -1
  93. package/dist/types/ui-shell/SideNav/SideNavToggleButton.d.ts +15 -8
  94. package/dist/types/ui-shell/SideNav/SideNavToggleButton.d.ts.map +1 -1
  95. package/dist/types/ui-shell/SideNav/useIsSideNavCollapsedSessionStorage.d.ts +17 -0
  96. package/dist/types/ui-shell/SideNav/useIsSideNavCollapsedSessionStorage.d.ts.map +1 -0
  97. package/dist/types/ui-shell/WideUiShellContent.d.ts.map +1 -1
  98. package/dist/types/ui-shell/index.d.ts +1 -1
  99. package/dist/types/ui-shell/index.d.ts.map +1 -1
  100. package/dist/types/ui-shell/useMatchAppElementToUiShellAppArea.d.ts.map +1 -1
  101. package/dist/types/ui-shell/useScrollState.d.ts +9 -1
  102. package/dist/types/ui-shell/useScrollState.d.ts.map +1 -1
  103. package/dist/types/useMountLifecycleEffect.d.ts +16 -0
  104. package/dist/types/useMountLifecycleEffect.d.ts.map +1 -0
  105. package/dist/types/useSessionStorageState.d.ts +20 -0
  106. package/dist/types/useSessionStorageState.d.ts.map +1 -0
  107. package/dist/types/web-component/createReactRootElements.d.ts +2 -0
  108. package/dist/types/web-component/createReactRootElements.d.ts.map +1 -1
  109. package/package.json +14 -11
  110. package/dist/cjs/theme/StringWithValue.cjs.map +0 -1
  111. package/dist/esm/theme/StringWithValue.js.map +0 -1
  112. package/dist/types/theme/StringWithValue.d.ts.map +0 -1
  113. /package/dist/cjs/{theme/StringWithValue.cjs → StringWithValue.cjs} +0 -0
  114. /package/dist/esm/{theme/StringWithValue.js → StringWithValue.js} +0 -0
  115. /package/dist/types/{theme/StringWithValue.d.ts → StringWithValue.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"DataView.cjs","names":["_react","require","_reactI18next","_constants","_Box","_BulkActionsMenu","_Callout","_DataFilters","_EmptyState","_fetchData","_LayoutSwitcher","_index","_index2","_TableSettings","_index3","_TableLayoutContent","_CardLayoutContent","_useFilterConversion","_useRowReordering","_Typography","_OdysseyDesignTokensContext","_styled","_interopRequireDefault","_jsxRuntime","e","__esModule","default","DataViewContainer","styled","shouldForwardProp","prop","odysseyDesignTokens","display","flexDirection","gap","Spacing4","BulkActionsContainer","justifyContent","AdditionalActionsContainer","Spacing2","AdditionalActionsInner","alignItems","MetaTextContainer","marginInlineEnd","DataView","additionalActionButton","additionalActionMenuItems","availableLayouts","allAvailableLayouts","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","useOdysseyDesignTokens","t","useTranslation","currentLayout","setCurrentLayout","useState","data","setData","setIsLoading","setIsEmpty","setIsNoResults","setErrorMessage","search","setSearch","initialFilters","setInitialFilters","setFilters","draggingRow","setDraggingRow","rowSelection","setRowSelection","useEffect","pagination","setPagination","pageIndex","pageSize","tableState","setTableState","columnSorting","columnVisibility","rowDensity","initialDensity","densityValues","shouldShowFilters","availableFilters","useFilterConversion","columns","dataQueryParams","useMemo","page","sort","useCallback","originalRow","id","prev","fetchData","undefined","length","prevValue","emptyState","noResultsInnerContent","jsx","EmptyState","description","heading","additionalActions","jsxs","children","Typography","color","TableSettings","LayoutSwitcher","MenuButton","endIcon","MoreIcon","ariaLabel","buttonVariant","menuAlignment","lastRow","lastRowOnPage","usePagination","currentRowsCount","rowReorderingUtilities","useRowReordering","Box","Callout","severity","text","DataFilters","isDisabled","onChangeFilters","onChangeSearch","BulkActionsMenu","menuItems","TableLayoutContent","CardLayoutContent","Pagination","currentPageLabel","isMoreDisabled","loadMoreLabel","maxPageIndex","maxPageSize","nextLabel","previousLabel","rowsPerPageLabel","variant","MemoizedDataView","exports","memo","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.cjs","names":["_react","require","_reactI18next","_constants","_Box","_BulkActionsMenu","_Callout","_DataFilters","_EmptyState","_fetchData","_LayoutSwitcher","_index","_index2","_TableSettings","_index3","_TableLayoutContent","_CardLayoutContent","_useFilterConversion","_useRowReordering","_Typography","_OdysseyDesignTokensContext","_styled","_interopRequireDefault","_jsxRuntime","e","__esModule","default","StyledDataViewContainer","styled","shouldForwardProp","prop","odysseyDesignTokens","display","flexDirection","gap","Spacing4","StyledBulkActionsContainer","justifyContent","StyledAdditionalActionsContainer","Spacing2","StyledAdditionalActionsInner","alignItems","StyledMetaTextContainer","marginInlineEnd","DataView","additionalActionButton","additionalActionMenuItems","availableLayouts","allAvailableLayouts","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","useOdysseyDesignTokens","t","useTranslation","currentLayout","setCurrentLayout","useState","data","setData","setIsLoading","setIsEmpty","setIsNoResults","setErrorMessage","search","setSearch","initialFilters","setInitialFilters","setFilters","draggingRow","setDraggingRow","rowSelection","setRowSelection","useEffect","pagination","setPagination","pageIndex","pageSize","tableState","setTableState","columnSorting","columnVisibility","rowDensity","initialDensity","densityValues","shouldShowFilters","availableFilters","useFilterConversion","columns","dataQueryParams","useMemo","page","sort","useCallback","originalRow","id","prev","fetchData","undefined","length","prevValue","emptyState","noResultsInnerContent","jsx","EmptyState","description","heading","additionalActions","jsxs","children","Typography","color","TableSettings","LayoutSwitcher","MenuButton","endIcon","MoreIcon","ariaLabel","buttonVariant","menuAlignment","lastRow","lastRowOnPage","usePagination","currentRowsCount","rowReorderingUtilities","useRowReordering","Box","Callout","severity","text","DataFilters","isDisabled","onChangeFilters","onChangeSearch","BulkActionsMenu","menuItems","TableLayoutContent","CardLayoutContent","Pagination","currentPageLabel","isMoreDisabled","loadMoreLabel","maxPageIndex","maxPageSize","nextLabel","previousLabel","rowsPerPageLabel","variant","MemoizedDataView","exports","memo","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":[]}
@@ -51,7 +51,7 @@ const useFilterConversion = ({
51
51
  }
52
52
  return accumulator;
53
53
  }, []);
54
- }, [columns, filters]);
54
+ }, [columns, convertColumnToFilter, filters]);
55
55
  return dataTableFilters;
56
56
  };
57
57
  exports.useFilterConversion = useFilterConversion;
@@ -1 +1 @@
1
- {"version":3,"file":"useFilterConversion.cjs","names":["_react","require","useFilterConversion","columns","filters","convertFilterSelectOptions","useCallback","options","map","option","label","value","convertColumnToFilter","column","enableColumnFilter","accessorKey","id","header","variant","filterVariant","filterSelectOptions","dataTableFilters","useMemo","providedFilters","reduce","accumulator","item","foundColumn","find","filter","concat","exports"],"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":";;;;;;AAYA,IAAAA,MAAA,GAAAC,OAAA;AAZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAcO,MAAMC,mBAAmB,GAAGA,CAA4B;EAC7DC,OAAO;EACPC;AAC2B,CAAC,KAAK;EACjC,MAAMC,0BAA0B,GAAG,IAAAC,kBAAW,EAC3CC,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,GAAG,IAAAN,kBAAW,EACtCO,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,EAAEF,0BAA0B,CAACQ,MAAM,CAACO,mBAAmB;EAChE,CAAC,GACD,IAAI,EACV,CAACf,0BAA0B,CAC7B,CAAC;EAED,MAAMgB,gBAAgB,GAAG,IAAAC,cAAO,EAAC,MAAM;IAGrC,MAAMC,eAAe,GAAGnB,OAAO,IAAID,OAAO,IAAI,EAAE;IAEhD,OAAOoB,eAAe,CAACC,MAAM,CAAe,CAACC,WAAW,EAAEC,IAAI,KAAK;MACjE,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;QAC5B,MAAMC,WAAW,GAAGxB,OAAO,EAAEyB,IAAI,CAC9Bf,MAAM,IAAKA,MAAM,CAACE,WAAW,KAAKW,IACrC,CAAC;QACD,MAAMG,MAAM,GAAGF,WAAW,IAAIf,qBAAqB,CAACe,WAAW,CAAC;QAChE,OAAOE,MAAM,GAAGJ,WAAW,CAACK,MAAM,CAACD,MAAM,CAAC,GAAGJ,WAAW;MAC1D;MAEA,IAAI,aAAa,IAAIC,IAAI,EAAE;QACzB,MAAMG,MAAM,GAAGjB,qBAAqB,CAACc,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,CAACtB,OAAO,EAAEC,OAAO,CAAC,CAAC;EAEtB,OAAOiB,gBAAgB;AACzB,CAAC;AAACU,OAAA,CAAA7B,mBAAA,GAAAA,mBAAA","ignoreList":[]}
1
+ {"version":3,"file":"useFilterConversion.cjs","names":["_react","require","useFilterConversion","columns","filters","convertFilterSelectOptions","useCallback","options","map","option","label","value","convertColumnToFilter","column","enableColumnFilter","accessorKey","id","header","variant","filterVariant","filterSelectOptions","dataTableFilters","useMemo","providedFilters","reduce","accumulator","item","foundColumn","find","filter","concat","exports"],"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":";;;;;;AAYA,IAAAA,MAAA,GAAAC,OAAA;AAZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAcO,MAAMC,mBAAmB,GAAGA,CAA4B;EAC7DC,OAAO;EACPC;AAC2B,CAAC,KAAK;EACjC,MAAMC,0BAA0B,GAAG,IAAAC,kBAAW,EAC3CC,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,GAAG,IAAAN,kBAAW,EACtCO,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,EAAEF,0BAA0B,CAACQ,MAAM,CAACO,mBAAmB;EAChE,CAAC,GACD,IAAI,EACV,CAACf,0BAA0B,CAC7B,CAAC;EAED,MAAMgB,gBAAgB,GAAG,IAAAC,cAAO,EAAC,MAAM;IAGrC,MAAMC,eAAe,GAAGnB,OAAO,IAAID,OAAO,IAAI,EAAE;IAEhD,OAAOoB,eAAe,CAACC,MAAM,CAAe,CAACC,WAAW,EAAEC,IAAI,KAAK;MACjE,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;QAC5B,MAAMC,WAAW,GAAGxB,OAAO,EAAEyB,IAAI,CAC9Bf,MAAM,IAAKA,MAAM,CAACE,WAAW,KAAKW,IACrC,CAAC;QACD,MAAMG,MAAM,GAAGF,WAAW,IAAIf,qBAAqB,CAACe,WAAW,CAAC;QAChE,OAAOE,MAAM,GAAGJ,WAAW,CAACK,MAAM,CAACD,MAAM,CAAC,GAAGJ,WAAW;MAC1D;MAEA,IAAI,aAAa,IAAIC,IAAI,EAAE;QACzB,MAAMG,MAAM,GAAGjB,qBAAqB,CAACc,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,CAACtB,OAAO,EAAES,qBAAqB,EAAER,OAAO,CAAC,CAAC;EAE7C,OAAOiB,gBAAgB;AACzB,CAAC;AAACU,OAAA,CAAA7B,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -27,7 +27,7 @@ const useMediaQuery = mediaQuery => {
27
27
  return () => {
28
28
  mediaQueryList.removeEventListener("change", updateHasMatches);
29
29
  };
30
- }, [mediaQueryList]);
30
+ }, [mediaQueryList, updateHasMatches]);
31
31
  return hasMatches;
32
32
  };
33
33
  exports.useMediaQuery = useMediaQuery;
@@ -1 +1 @@
1
- {"version":3,"file":"useMediaQuery.cjs","names":["_react","require","useMediaQuery","mediaQuery","mediaQueryList","useMemo","window","matchMedia","hasMatches","setHasMatches","useState","matches","updateHasMatches","useCallback","event","useEffect","addEventListener","removeEventListener","exports"],"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":";;;;;;AAYA,IAAAA,MAAA,GAAAC,OAAA;AAZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMO,MAAMC,aAAa,GACxBC,UAAuC,IACpC;EACH,MAAMC,cAAc,GAAG,IAAAC,cAAO,EAC5B,MAAMC,MAAM,CAACC,UAAU,CAACJ,UAAU,CAAC,EACnC,CAACA,UAAU,CACb,CAAC;EAED,MAAM,CAACK,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAC,MAAMN,cAAc,CAACO,OAAO,CAAC;EAE1E,MAAMC,gBAAgB,GAAG,IAAAC,kBAAW,EACjCC,KAA2C,IAC1CL,aAAa,CAACK,KAAK,CAACH,OAAO,CAAC,EAC9B,EACF,CAAC;EAED,IAAAI,gBAAS,EAAC,MAAM;IACdX,cAAc,CAACY,gBAAgB,CAAC,QAAQ,EAAEJ,gBAAgB,CAAC;IAE3DA,gBAAgB,CAACR,cAAc,CAAC;IAEhC,OAAO,MAAM;MACXA,cAAc,CAACa,mBAAmB,CAAC,QAAQ,EAAEL,gBAAgB,CAAC;IAChE,CAAC;EACH,CAAC,EAAE,CAACR,cAAc,CAAC,CAAC;EAEpB,OAAOI,UAAU;AACnB,CAAC;AAACU,OAAA,CAAAhB,aAAA,GAAAA,aAAA","ignoreList":[]}
1
+ {"version":3,"file":"useMediaQuery.cjs","names":["_react","require","useMediaQuery","mediaQuery","mediaQueryList","useMemo","window","matchMedia","hasMatches","setHasMatches","useState","matches","updateHasMatches","useCallback","event","useEffect","addEventListener","removeEventListener","exports"],"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":";;;;;;AAYA,IAAAA,MAAA,GAAAC,OAAA;AAZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMO,MAAMC,aAAa,GACxBC,UAAuC,IACpC;EACH,MAAMC,cAAc,GAAG,IAAAC,cAAO,EAC5B,MAAMC,MAAM,CAACC,UAAU,CAACJ,UAAU,CAAC,EACnC,CAACA,UAAU,CACb,CAAC;EAED,MAAM,CAACK,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAC,MAAMN,cAAc,CAACO,OAAO,CAAC;EAE1E,MAAMC,gBAAgB,GAAG,IAAAC,kBAAW,EACjCC,KAA2C,IAC1CL,aAAa,CAACK,KAAK,CAACH,OAAO,CAAC,EAC9B,EACF,CAAC;EAED,IAAAI,gBAAS,EAAC,MAAM;IACdX,cAAc,CAACY,gBAAgB,CAAC,QAAQ,EAAEJ,gBAAgB,CAAC;IAE3DA,gBAAgB,CAACR,cAAc,CAAC;IAEhC,OAAO,MAAM;MACXA,cAAc,CAACa,mBAAmB,CAAC,QAAQ,EAAEL,gBAAgB,CAAC;IAChE,CAAC;EACH,CAAC,EAAE,CAACR,cAAc,EAAEQ,gBAAgB,CAAC,CAAC;EAEtC,OAAOJ,UAAU;AACnB,CAAC;AAACU,OAAA,CAAAhB,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.SideNav = void 0;
6
+ exports.SideNav = exports.SIDE_NAV_COLLAPSED_PADDING_UNHIGHLIGHTED = exports.SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED = void 0;
7
7
  var _Skeleton2 = _interopRequireDefault(require("@mui/material/Skeleton"));
8
8
  var _styled = _interopRequireDefault(require("@emotion/styled"));
9
9
  var _react = require("react");
@@ -22,6 +22,8 @@ var _SortableList = require("./SortableList/SortableList.cjs");
22
22
  var _Typography = require("../../Typography.cjs");
23
23
  var _UiShellProvider = require("../../ui-shell/UiShellProvider.cjs");
24
24
  var _uiShellSharedConstants = require("../uiShellSharedConstants.cjs");
25
+ var _useIsSideNavCollapsedSessionStorage = require("./useIsSideNavCollapsedSessionStorage.cjs");
26
+ var _useMountLifecycleEffect = require("../../useMountLifecycleEffect.cjs");
25
27
  var _jsxRuntime = require("react/jsx-runtime");
26
28
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
27
29
  /*!
@@ -36,6 +38,8 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
36
38
  * See the License for the specific language governing permissions and limitations under the License.
37
39
  */
38
40
 
41
+ const SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED = exports.SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED = 12;
42
+ const SIDE_NAV_COLLAPSED_PADDING_UNHIGHLIGHTED = exports.SIDE_NAV_COLLAPSED_PADDING_UNHIGHLIGHTED = 2;
39
43
  const StyledCollapsibleContent = (0, _styled.default)("div", {
40
44
  shouldForwardProp: prop => prop !== "odysseyDesignTokens" && prop !== "isSideNavCollapsed"
41
45
  })(({
@@ -71,54 +75,62 @@ const StyledOpacityTransitionContainer = (0, _styled.default)("div", {
71
75
  })
72
76
  }));
73
77
  const StyledSideNavContainer = (0, _styled.default)("nav", {
74
- shouldForwardProp: prop => prop !== "backgroundColor" && prop !== "odysseyDesignTokens" && prop !== "isAppContentWhiteBackground" && prop !== "isSideNavCollapsed"
78
+ shouldForwardProp: prop => prop !== "backgroundColor" && prop !== "hasNeighboringContent" && prop !== "isAppContentWhiteBackground" && prop !== "isSideNavCollapsed" && prop !== "isSideNavToggleHighlighted" && prop !== "odysseyDesignTokens"
75
79
  })(({
76
80
  backgroundColor,
81
+ hasNeighboringContent,
77
82
  isAppContentWhiteBackground,
78
83
  isSideNavCollapsed,
84
+ isSideNavToggleHighlighted,
79
85
  odysseyDesignTokens
80
86
  }) => ({
81
87
  backgroundColor: backgroundColor || odysseyDesignTokens.HueNeutralWhite,
82
88
  height: "100%",
83
89
  position: "relative",
84
90
  width: "fit-content",
85
- ...(isAppContentWhiteBackground && {
86
- borderRightWidth: odysseyDesignTokens.BorderWidthMain,
87
- borderRightStyle: odysseyDesignTokens.BorderStyleMain,
88
- borderRightColor: odysseyDesignTokens.HueNeutral100
89
- }),
90
- "&::after": {
91
- backgroundColor: odysseyDesignTokens.HueNeutral200,
91
+ "&::before, &::after": {
92
92
  content: "''",
93
93
  height: "100%",
94
- opacity: 0,
94
+ pointerEvents: "none",
95
95
  position: "absolute",
96
- right: 0,
96
+ right: `-${odysseyDesignTokens.BorderWidthMain}`,
97
97
  top: 0,
98
- transform: `translateX(0)`,
99
- transition: `opacity ${odysseyDesignTokens.TransitionDurationMain}, transform ${odysseyDesignTokens.TransitionDurationMain}`,
100
- width: odysseyDesignTokens.Spacing2,
98
+ transition: `opacity ${odysseyDesignTokens.TransitionDurationMain}, transform ${odysseyDesignTokens.TransitionDurationMain}, width ${odysseyDesignTokens.TransitionDurationMain}`,
99
+ userSelect: "none",
101
100
  zIndex: _uiShellSharedConstants.UI_SHELL_OVERLAY_Z_INDEX
102
101
  },
103
- "&:has([data-sidenav-toggle='true']:hover), &:has([data-sidenav-toggle='true']:focus-visible)": {
104
- ...(isSideNavCollapsed && {
105
- "&::after": {
106
- opacity: 1,
107
- transform: `translateX(100%)`
108
- },
109
- "[data-sidenav-toggle='true']": {
110
- transform: `translate3d(calc(100% + ${odysseyDesignTokens.Spacing3}), 0, 0)`
111
- }
112
- })
102
+ "&::before": {
103
+ backgroundColor: isSideNavToggleHighlighted ? odysseyDesignTokens.BorderColorPrimaryControl : odysseyDesignTokens.HueNeutral100,
104
+ opacity: isAppContentWhiteBackground || !isSideNavCollapsed && isSideNavToggleHighlighted ? 1 : 0,
105
+ width: `calc(${odysseyDesignTokens.BorderWidthMain} * 2)`
113
106
  },
114
- "[data-sidenav-toggle='true']": {
115
- position: "absolute",
116
- top: _uiShellSharedConstants.SIDE_NAV_VISIBILITY_TOGGLE_ICON_POSITION,
117
- right: 0,
118
- transition: `transform ${odysseyDesignTokens.TransitionDurationMain}`,
119
- transform: `translate3d(100%, 0, 0)`
107
+ "&::after": {
108
+ backgroundColor: odysseyDesignTokens.HueNeutral200,
109
+ opacity: isSideNavCollapsed ? 1 : 0,
110
+ transform: isSideNavCollapsed && !hasNeighboringContent ? isSideNavToggleHighlighted ? `translateX(calc(100% - (${odysseyDesignTokens.BorderWidthMain} * 2)))` : `translateX(calc(100% - ${SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED}px))` : "translateX(0)",
111
+ width: hasNeighboringContent ? 0 : `calc(${_SideNavToggleButton.SIDE_NAV_TOGGLE_ICON_HALF_SIZE + SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED}px + ${odysseyDesignTokens.BorderWidthMain} * 2)`,
112
+ ...(isSideNavCollapsed && isSideNavToggleHighlighted ? {
113
+ borderRightColor: odysseyDesignTokens.BorderColorPrimaryControl,
114
+ borderRightStyle: odysseyDesignTokens.BorderStyleMain,
115
+ borderRightWidth: `calc(${odysseyDesignTokens.BorderWidthMain} * 2)`
116
+ } : {})
120
117
  }
121
118
  }));
119
+ const StyledSideNavToggleButtonContainer = (0, _styled.default)("div", {
120
+ shouldForwardProp: prop => prop !== "hasNeighboringContent" && prop !== "isSideNavCollapsed" && prop !== "isSideNavToggleHighlighted" && prop !== "odysseyDesignTokens"
121
+ })(({
122
+ hasNeighboringContent,
123
+ isSideNavCollapsed,
124
+ isSideNavToggleHighlighted,
125
+ odysseyDesignTokens
126
+ }) => ({
127
+ position: "absolute",
128
+ right: `${_SideNavToggleButton.SIDE_NAV_TOGGLE_ICON_HALF_SIZE}px`,
129
+ top: _uiShellSharedConstants.SIDE_NAV_VISIBILITY_TOGGLE_ICON_POSITION,
130
+ transform: isSideNavCollapsed && !hasNeighboringContent ? isSideNavToggleHighlighted ? `translate3d(calc(100% + ${_SideNavToggleButton.SIDE_NAV_TOGGLE_ICON_HALF_SIZE + SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED}px), 0, 0)` : `translate3d(calc(100% + ${_SideNavToggleButton.SIDE_NAV_TOGGLE_ICON_HALF_SIZE + SIDE_NAV_COLLAPSED_PADDING_UNHIGHLIGHTED}px), 0, 0)` : "translate3d(100%, 0, 0)",
131
+ transition: `transform ${odysseyDesignTokens.TransitionDurationMain}`,
132
+ zIndex: _uiShellSharedConstants.UI_SHELL_OVERLAY_Z_INDEX + 1
133
+ }));
122
134
  const StyledSideNavHeaderContainer = (0, _styled.default)("div", {
123
135
  shouldForwardProp: prop => prop !== "borderColor" && prop !== "hasContentScrolled" && prop !== "odysseyDesignTokens"
124
136
  })(({
@@ -158,10 +170,10 @@ const StyledSectionHeaderContainer = (0, _styled.default)("li", {
158
170
  contrastFontColor,
159
171
  odysseyDesignTokens
160
172
  }) => ({
161
- paddingBlock: odysseyDesignTokens.Spacing1,
162
- paddingInline: odysseyDesignTokens.Spacing4,
173
+ color: contrastFontColor || odysseyDesignTokens.HueNeutral600,
163
174
  marginBlock: `${odysseyDesignTokens.Spacing3}`,
164
- color: contrastFontColor || odysseyDesignTokens.HueNeutral600
175
+ paddingBlock: odysseyDesignTokens.Spacing1,
176
+ paddingInline: odysseyDesignTokens.Spacing4
165
177
  }));
166
178
  const StyledSideNavFooter = (0, _styled.default)("div", {
167
179
  shouldForwardProp: prop => prop !== "odysseyDesignTokens" && prop !== "sideNavBackgroundColor"
@@ -169,9 +181,9 @@ const StyledSideNavFooter = (0, _styled.default)("div", {
169
181
  odysseyDesignTokens,
170
182
  sideNavBackgroundColor
171
183
  }) => ({
184
+ backgroundColor: odysseyDesignTokens.HueNeutralWhite,
172
185
  flexShrink: 0,
173
186
  padding: odysseyDesignTokens.Spacing4,
174
- backgroundColor: odysseyDesignTokens.HueNeutralWhite,
175
187
  ...(sideNavBackgroundColor && {
176
188
  backgroundColor: sideNavBackgroundColor
177
189
  })
@@ -267,10 +279,15 @@ const SideNav = ({
267
279
  onSort,
268
280
  sideNavItems
269
281
  }) => {
270
- const [isSideNavCollapsed, setIsSideNavCollapsed] = (0, _react.useState)(isCollapsed);
271
282
  const [hasContentScrolled, setHasContentScrolled] = (0, _react.useState)(false);
283
+ const [hasNeighboringContent, setHasNeighboringContent] = (0, _react.useState)(false);
272
284
  const [isContentScrollable, setIsContentScrollable] = (0, _react.useState)(false);
285
+ const [isSideNavToggleHighlighted, setIsSideNavToggleHighlighted] = (0, _react.useState)(false);
273
286
  const [sideNavItemsList, updateSideNavItemsList] = (0, _react.useState)(sideNavItems);
287
+ const {
288
+ sessionState: isSideNavCollapsed,
289
+ setSessionState: setIsSideNavCollapsed
290
+ } = (0, _useIsSideNavCollapsedSessionStorage.useIsSideNavCollapsedSessionStorage)(isCollapsed);
274
291
  const uiShellContext = (0, _UiShellProvider.useUiShellContext)();
275
292
  const odysseyDesignTokens = (0, _OdysseyDesignTokensContext.useOdysseyDesignTokens)();
276
293
  const {
@@ -279,9 +296,30 @@ const SideNav = ({
279
296
  const scrollableContentRef = (0, _react.useRef)(null);
280
297
  const resizeObserverRef = (0, _react.useRef)(null);
281
298
  const intersectionObserverRef = (0, _react.useRef)(null);
299
+ const sideNavRef = (0, _react.useRef)(null);
282
300
  const blankElement = (0, _react.useMemo)(() => (0, _jsxRuntime.jsx)("div", {}), []);
283
301
  (0, _react.useEffect)(() => updateSideNavItemsList(sideNavItems), [sideNavItems]);
284
- (0, _react.useEffect)(() => setIsSideNavCollapsed(isCollapsed), [isCollapsed]);
302
+ (0, _react.useEffect)(() => {
303
+ if (sideNavRef.current) {
304
+ setHasNeighboringContent(sideNavRef.current.getBoundingClientRect().x > 0);
305
+ }
306
+ }, [isCollapsed]);
307
+ const onMount = (0, _react.useCallback)(() => {
308
+ if (!isCollapsible) {
309
+ setIsSideNavCollapsed(isCollapsed);
310
+ }
311
+ }, [isCollapsed, isCollapsible, setIsSideNavCollapsed]);
312
+ const onUpdate = (0, _react.useCallback)(() => {
313
+ setIsSideNavCollapsed(isCollapsed);
314
+ }, [isCollapsed, setIsSideNavCollapsed]);
315
+ (0, _useMountLifecycleEffect.useMountLifecycleEffect)({
316
+ onMount,
317
+ onUpdate
318
+ });
319
+ console.log({
320
+ isCollapsed,
321
+ isSideNavCollapsed
322
+ });
285
323
  (0, _react.useEffect)(() => {
286
324
  const updateIsContentScrollable = () => {
287
325
  if (scrollableContentRef.current && scrollableContentRef.current.parentElement) {
@@ -405,7 +443,7 @@ const SideNav = ({
405
443
  }
406
444
  return !isSideNavCollapsed;
407
445
  });
408
- }, [onExpand, onCollapse]);
446
+ }, [onCollapse, onExpand, setIsSideNavCollapsed]);
409
447
  const sideNavExpandKeyHandler = (0, _react.useCallback)(event => {
410
448
  if (event?.key === "Enter" || event?.code === "Space") {
411
449
  event.preventDefault();
@@ -413,17 +451,14 @@ const SideNav = ({
413
451
  }
414
452
  }, [sideNavExpandClickHandler]);
415
453
  (0, _react.useEffect)(() => {
416
- if (isCollapsed) {
417
- const unsubscribe = uiShellContext?.subscribeToCloseSideNavMenu(() => {
418
- onCollapse?.();
419
- setIsSideNavCollapsed(true);
420
- });
421
- return () => {
422
- unsubscribe?.();
423
- };
424
- }
425
- return () => {};
426
- }, [isCollapsed, onCollapse, uiShellContext]);
454
+ const unsubscribe = uiShellContext?.subscribeToCloseSideNavMenu(() => {
455
+ onCollapse?.();
456
+ setIsSideNavCollapsed(true);
457
+ });
458
+ return () => {
459
+ unsubscribe?.();
460
+ };
461
+ }, [onCollapse, setIsSideNavCollapsed, uiShellContext]);
427
462
  const setSortedItems = (0, _react.useCallback)((parentId, activeId, activeIndex, overIndex) => {
428
463
  const sortedSideNavItems = sideNavItemsList.map(item => item.id === parentId && item.nestedNavItems ? {
429
464
  ...item,
@@ -432,18 +467,32 @@ const SideNav = ({
432
467
  updateSideNavItemsList(sortedSideNavItems);
433
468
  onSort?.(sortedSideNavItems, parentId, activeId, activeIndex, overIndex);
434
469
  }, [onSort, sideNavItemsList]);
470
+ const onSideNavToggleButtonHighlight = (0, _react.useCallback)(isHighlighted => {
471
+ setIsSideNavToggleHighlighted(isHighlighted);
472
+ }, []);
435
473
  return (0, _jsxRuntime.jsxs)(StyledSideNavContainer, {
436
474
  "aria-label": t("navigation.label"),
437
475
  backgroundColor: uiShellContext?.sideNavBackgroundColor,
476
+ hasNeighboringContent: hasNeighboringContent,
438
477
  id: "side-nav-expandable",
439
478
  isAppContentWhiteBackground: uiShellContext?.appBackgroundColor === odysseyDesignTokens.HueNeutralWhite,
440
479
  isSideNavCollapsed: isSideNavCollapsed,
480
+ isSideNavToggleHighlighted: isSideNavToggleHighlighted,
441
481
  odysseyDesignTokens: odysseyDesignTokens,
442
- children: [isCollapsible && (0, _jsxRuntime.jsx)(_SideNavToggleButton.SideNavToggleButton, {
443
- ariaControls: "side-nav-expandable",
482
+ ref: sideNavRef,
483
+ children: [isCollapsible && (0, _jsxRuntime.jsx)(StyledSideNavToggleButtonContainer, {
484
+ hasNeighboringContent: hasNeighboringContent,
444
485
  isSideNavCollapsed: isSideNavCollapsed,
445
- onClick: sideNavExpandClickHandler,
446
- onKeyDown: sideNavExpandKeyHandler
486
+ isSideNavToggleHighlighted: isSideNavToggleHighlighted,
487
+ odysseyDesignTokens: odysseyDesignTokens,
488
+ children: (0, _jsxRuntime.jsx)(_SideNavToggleButton.SideNavToggleButton, {
489
+ clickAreaPadding: isSideNavCollapsed && !hasNeighboringContent ? _SideNavToggleButton.SIDE_NAV_TOGGLE_ICON_SIZE / 2 : 0,
490
+ ariaControls: "side-nav-expandable",
491
+ isSideNavCollapsed: isSideNavCollapsed,
492
+ onClick: sideNavExpandClickHandler,
493
+ onHighlight: onSideNavToggleButtonHighlight,
494
+ onKeyDown: sideNavExpandKeyHandler
495
+ })
447
496
  }), (0, _jsxRuntime.jsx)(_OdysseyThemeProvider.OdysseyThemeProvider, {
448
497
  children: (0, _jsxRuntime.jsx)(StyledCollapsibleContent, {
449
498
  "data-se": "collapsible-region",
@@ -492,8 +541,8 @@ const SideNav = ({
492
541
  component: "h3",
493
542
  children: label
494
543
  })
495
- }, id)
496
- });
544
+ })
545
+ }, id);
497
546
  } else if (childNavItems) {
498
547
  return (0, _jsxRuntime.jsx)(_reactErrorBoundary.ErrorBoundary, {
499
548
  fallback: blankElement,
@@ -525,22 +574,21 @@ const SideNav = ({
525
574
  }) : childNavItems.map(item => item.navItem)
526
575
  })
527
576
  })
528
- }, id)
529
- });
577
+ })
578
+ }, id);
530
579
  } else {
531
580
  return (0, _jsxRuntime.jsx)(_reactErrorBoundary.ErrorBoundary, {
532
581
  fallback: blankElement,
533
582
  children: (0, _jsxRuntime.jsx)(_SideNavItemContentContext.SideNavItemContentContext.Provider, {
534
583
  value: sideNavItemContentProviderValue,
535
- children: (0, _react.createElement)(_SideNavItemContent.SideNavItemContent, {
584
+ children: (0, _jsxRuntime.jsx)(_SideNavItemContent.SideNavItemContent, {
536
585
  ...item,
537
- key: item.id,
538
586
  onItemSelected: setSelectedItem,
539
587
  scrollRef: getRefIfThisIsFirstNodeWithIsSelected(item.id),
540
588
  startIcon: item.startIcon
541
589
  })
542
- }, item.id)
543
- });
590
+ })
591
+ }, item.id);
544
592
  }
545
593
  })
546
594
  }), !isLoading && footerItems && !hasCustomFooter && (0, _jsxRuntime.jsx)(StyledSideNavFooter, {