@razorpay/blade 10.22.0 → 10.23.1

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 (26) hide show
  1. package/build/css/bankingThemeDarkDesktop.css +1 -1
  2. package/build/css/bankingThemeDarkMobile.css +1 -1
  3. package/build/css/bankingThemeLightDesktop.css +1 -1
  4. package/build/css/bankingThemeLightMobile.css +1 -1
  5. package/build/css/paymentThemeDarkDesktop.css +1 -1
  6. package/build/css/paymentThemeDarkMobile.css +1 -1
  7. package/build/css/paymentThemeLightDesktop.css +1 -1
  8. package/build/css/paymentThemeLightMobile.css +1 -1
  9. package/build/lib/native/components/Table/TableHeader.native.js.map +1 -1
  10. package/build/lib/native/components/Tooltip/TooltipContent.js +1 -1
  11. package/build/lib/native/components/Tooltip/TooltipContent.js.map +1 -1
  12. package/build/lib/web/development/components/Table/TablePagination.web.js +12 -1
  13. package/build/lib/web/development/components/Table/TablePagination.web.js.map +1 -1
  14. package/build/lib/web/development/components/Tooltip/TooltipContent.js +1 -0
  15. package/build/lib/web/development/components/Tooltip/TooltipContent.js.map +1 -1
  16. package/build/lib/web/development/utils/bladeCoverage.js +118 -0
  17. package/build/lib/web/development/utils/bladeCoverage.js.map +1 -0
  18. package/build/lib/web/production/components/Table/TablePagination.web.js +12 -1
  19. package/build/lib/web/production/components/Table/TablePagination.web.js.map +1 -1
  20. package/build/lib/web/production/components/Tooltip/TooltipContent.js +1 -0
  21. package/build/lib/web/production/components/Tooltip/TooltipContent.js.map +1 -1
  22. package/build/lib/web/production/utils/bladeCoverage.js +118 -0
  23. package/build/lib/web/production/utils/bladeCoverage.js.map +1 -0
  24. package/build/types/components/index.native.d.ts +3 -3
  25. package/coverageUtils.d.ts +16 -0
  26. package/package.json +33 -20
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Wed, 13 Dec 2023 16:27:55 GMT
3
+ * Generated on Tue, 09 Jan 2024 10:43:34 GMT
4
4
  */
5
5
 
6
6
  :root {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Wed, 13 Dec 2023 16:27:55 GMT
3
+ * Generated on Tue, 09 Jan 2024 10:43:34 GMT
4
4
  */
5
5
 
6
6
  :root {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Wed, 13 Dec 2023 16:27:55 GMT
3
+ * Generated on Tue, 09 Jan 2024 10:43:34 GMT
4
4
  */
5
5
 
6
6
  :root {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Wed, 13 Dec 2023 16:27:55 GMT
3
+ * Generated on Tue, 09 Jan 2024 10:43:34 GMT
4
4
  */
5
5
 
6
6
  :root {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Wed, 13 Dec 2023 16:27:55 GMT
3
+ * Generated on Tue, 09 Jan 2024 10:43:34 GMT
4
4
  */
5
5
 
6
6
  :root {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Wed, 13 Dec 2023 16:27:55 GMT
3
+ * Generated on Tue, 09 Jan 2024 10:43:34 GMT
4
4
  */
5
5
 
6
6
  :root {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Wed, 13 Dec 2023 16:27:55 GMT
3
+ * Generated on Tue, 09 Jan 2024 10:43:34 GMT
4
4
  */
5
5
 
6
6
  :root {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Wed, 13 Dec 2023 16:27:55 GMT
3
+ * Generated on Tue, 09 Jan 2024 10:43:34 GMT
4
4
  */
5
5
 
6
6
  :root {
@@ -1 +1 @@
1
- {"version":3,"file":"TableHeader.native.js","sources":["../../../../../src/components/Table/TableHeader.native.tsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React from 'react';\nimport { Text } from '~components/Typography';\n\nconst TableHeader = (props: unknown): React.ReactElement => {\n return <Text>Table Component is not available for Native mobile apps.</Text>;\n};\n\nconst TableHeaderRow = (props: unknown): React.ReactElement => {\n return <Text>Table Component is not available for Native mobile apps.</Text>;\n};\n\nconst TableHeaderCell = (props: unknown): React.ReactElement => {\n return <Text>Table Component is not available for Native mobile apps.</Text>;\n};\n\nexport { TableHeader, TableHeaderRow, TableHeaderCell };\n"],"names":["TableHeader","props","_jsx","Text","children","TableHeaderRow","TableHeaderCell"],"mappings":";;;;;;;;;;;;AAKM,IAAAA,WAAW,CAAG,SAAdA,WAAWA,CAAIC,KAAc,CAAyB,CAC1D,OAAOC,GAAA,CAACC,IAAI,CAAAC,CAAAA,QAAA,CAAC,0DAAwD,CAAM,CAAC,CAC9E,EAEM,IAAAC,cAAc,CAAG,SAAjBA,cAAcA,CAAIJ,KAAc,CAAyB,CAC7D,OAAOC,GAAA,CAACC,IAAI,CAAA,CAAAC,QAAA,CAAC,0DAAwD,CAAM,CAAC,CAC9E,EAEM,IAAAE,eAAe,CAAG,SAAlBA,eAAeA,CAAIL,KAAc,CAAyB,CAC9D,OAAOC,GAAA,CAACC,IAAI,EAAAC,QAAA,CAAC,0DAAwD,CAAM,CAAC,CAC9E;;;;"}
1
+ {"version":3,"file":"TableHeader.native.js","sources":["../../../../../src/components/Table/TableHeader.native.tsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React from 'react';\nimport type { TableHeaderCellProps, TableHeaderProps, TableHeaderRowProps } from './types';\nimport { Text } from '~components/Typography';\n\nconst TableHeader = (props: TableHeaderProps): React.ReactElement => {\n return <Text>Table Component is not available for Native mobile apps.</Text>;\n};\n\nconst TableHeaderRow = (props: TableHeaderRowProps): React.ReactElement => {\n return <Text>Table Component is not available for Native mobile apps.</Text>;\n};\n\nconst TableHeaderCell = (props: TableHeaderCellProps): React.ReactElement => {\n return <Text>Table Component is not available for Native mobile apps.</Text>;\n};\n\nexport { TableHeader, TableHeaderRow, TableHeaderCell };\n"],"names":["TableHeader","props","_jsx","Text","children","TableHeaderRow","TableHeaderCell"],"mappings":";;;;;;;;;;;;AAMM,IAAAA,WAAW,CAAG,SAAdA,WAAWA,CAAIC,KAAuB,CAAyB,CACnE,OAAOC,GAAA,CAACC,IAAI,CAAAC,CAAAA,QAAA,CAAC,0DAAwD,CAAM,CAAC,CAC9E,EAEM,IAAAC,cAAc,CAAG,SAAjBA,cAAcA,CAAIJ,KAA0B,CAAyB,CACzE,OAAOC,GAAA,CAACC,IAAI,CAAA,CAAAC,QAAA,CAAC,0DAAwD,CAAM,CAAC,CAC9E,EAEM,IAAAE,eAAe,CAAG,SAAlBA,eAAeA,CAAIL,KAA2B,CAAyB,CAC3E,OAAOC,GAAA,CAACC,IAAI,EAAAC,QAAA,CAAC,0DAAwD,CAAM,CAAC,CAC9E;;;;"}
@@ -14,7 +14,7 @@ import { jsxs, jsx } from 'react/jsx-runtime';
14
14
  import { Text } from '../Typography/Text/Text.js';
15
15
  import '../Typography/Code/Code.js';
16
16
 
17
- var TooltipContent=React__default.forwardRef(function(_ref,ref){var children=_ref.children,title=_ref.title,arrow=_ref.arrow,side=_ref.side,style=_ref.style,isVisible=_ref.isVisible;return jsxs(TooltipContentWrapper,{position:isReactNative()?'absolute':'relative',paddingTop:"spacing.3",paddingBottom:"spacing.3",paddingLeft:"spacing.4",paddingRight:"spacing.4",maxWidth:makeSize(size[200]),ref:ref,styles:style,side:side,isVisible:isVisible,children:[title?jsx(Text,{contrast:"high",weight:"bold",size:"medium",children:title}):null,jsx(Text,{variant:"body",size:"small",weight:"regular",contrast:"high",color:"feedback.text.neutral.highContrast",children:children}),arrow]});});
17
+ var TooltipContent=React__default.forwardRef(function(_ref,ref){var children=_ref.children,title=_ref.title,arrow=_ref.arrow,side=_ref.side,style=_ref.style,isVisible=_ref.isVisible;return jsxs(TooltipContentWrapper,{position:isReactNative()?'absolute':'relative',paddingTop:"spacing.3",paddingBottom:"spacing.3",paddingLeft:"spacing.4",paddingRight:"spacing.4",maxWidth:makeSize(size[200]),ref:ref,styles:style,side:side,isVisible:isVisible,children:[title?jsx(Text,{contrast:"high",weight:"bold",size:"medium",children:title}):null,jsx(Text,{variant:"body",size:"small",weight:"regular",contrast:"high",color:"feedback.text.neutral.highContrast",wordBreak:"break-word",children:children}),arrow]});});
18
18
 
19
19
  export { TooltipContent };
20
20
  //# sourceMappingURL=TooltipContent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipContent.js","sources":["../../../../../src/components/Tooltip/TooltipContent.tsx"],"sourcesContent":["import React from 'react';\nimport { TooltipContentWrapper } from './TooltipContentWrapper';\nimport type { TooltipContentProps } from './types';\nimport { Text } from '~components/Typography';\nimport { isReactNative, makeSize } from '~utils';\nimport { size } from '~tokens/global';\n\nconst TooltipContent = React.forwardRef<HTMLDivElement, TooltipContentProps>(\n ({ children, title, arrow, side, style, isVisible }, ref) => {\n return (\n <TooltipContentWrapper\n position={isReactNative() ? 'absolute' : 'relative'}\n paddingTop=\"spacing.3\"\n paddingBottom=\"spacing.3\"\n paddingLeft=\"spacing.4\"\n paddingRight=\"spacing.4\"\n maxWidth={makeSize(size[200])}\n ref={ref as never}\n styles={style}\n side={side}\n isVisible={isVisible}\n >\n {title ? (\n <Text contrast=\"high\" weight=\"bold\" size=\"medium\">\n {title}\n </Text>\n ) : null}\n <Text\n variant=\"body\"\n size=\"small\"\n weight=\"regular\"\n contrast=\"high\"\n color=\"feedback.text.neutral.highContrast\"\n >\n {children}\n </Text>\n {arrow}\n </TooltipContentWrapper>\n );\n },\n);\n\nexport { TooltipContent };\n"],"names":["TooltipContent","React","forwardRef","_ref","ref","children","title","arrow","side","style","isVisible","_jsxs","TooltipContentWrapper","position","isReactNative","paddingTop","paddingBottom","paddingLeft","paddingRight","maxWidth","makeSize","size","styles","_jsx","Text","contrast","weight","variant","color"],"mappings":";;;;;;;;;;;;;;;;AAOM,IAAAA,cAAc,CAAGC,cAAK,CAACC,UAAU,CACrC,SAAAC,IAAA,CAAqDC,GAAG,CAAK,CAAA,IAA1DC,QAAQ,CAAAF,IAAA,CAARE,QAAQ,CAAEC,KAAK,CAAAH,IAAA,CAALG,KAAK,CAAEC,KAAK,CAAAJ,IAAA,CAALI,KAAK,CAAEC,IAAI,CAAAL,IAAA,CAAJK,IAAI,CAAEC,KAAK,CAAAN,IAAA,CAALM,KAAK,CAAEC,SAAS,CAAAP,IAAA,CAATO,SAAS,CAC/C,OACEC,IAAA,CAACC,qBAAqB,CACpBC,CAAAA,QAAQ,CAAEC,aAAa,EAAE,CAAG,UAAU,CAAG,UAAW,CACpDC,UAAU,CAAC,WAAW,CACtBC,aAAa,CAAC,WAAW,CACzBC,WAAW,CAAC,WAAW,CACvBC,YAAY,CAAC,WAAW,CACxBC,QAAQ,CAAEC,QAAQ,CAACC,IAAI,CAAC,GAAG,CAAC,CAAE,CAC9BjB,GAAG,CAAEA,GAAa,CAClBkB,MAAM,CAAEb,KAAM,CACdD,IAAI,CAAEA,IAAK,CACXE,SAAS,CAAEA,SAAU,CAAAL,QAAA,CAEpBC,CAAAA,KAAK,CACJiB,GAAA,CAACC,IAAI,CAACC,CAAAA,QAAQ,CAAC,MAAM,CAACC,MAAM,CAAC,MAAM,CAACL,IAAI,CAAC,QAAQ,CAAAhB,QAAA,CAC9CC,KAAK,CACF,CAAC,CACL,IAAI,CACRiB,GAAA,CAACC,IAAI,CAAA,CACHG,OAAO,CAAC,MAAM,CACdN,IAAI,CAAC,OAAO,CACZK,MAAM,CAAC,SAAS,CAChBD,QAAQ,CAAC,MAAM,CACfG,KAAK,CAAC,oCAAoC,CAAAvB,QAAA,CAEzCA,QAAQ,CACL,CAAC,CACNE,KAAK,CACe,CAAA,CAAC,CAE5B,CACF;;;;"}
1
+ {"version":3,"file":"TooltipContent.js","sources":["../../../../../src/components/Tooltip/TooltipContent.tsx"],"sourcesContent":["import React from 'react';\nimport { TooltipContentWrapper } from './TooltipContentWrapper';\nimport type { TooltipContentProps } from './types';\nimport { Text } from '~components/Typography';\nimport { isReactNative, makeSize } from '~utils';\nimport { size } from '~tokens/global';\n\nconst TooltipContent = React.forwardRef<HTMLDivElement, TooltipContentProps>(\n ({ children, title, arrow, side, style, isVisible }, ref) => {\n return (\n <TooltipContentWrapper\n position={isReactNative() ? 'absolute' : 'relative'}\n paddingTop=\"spacing.3\"\n paddingBottom=\"spacing.3\"\n paddingLeft=\"spacing.4\"\n paddingRight=\"spacing.4\"\n maxWidth={makeSize(size[200])}\n ref={ref as never}\n styles={style}\n side={side}\n isVisible={isVisible}\n >\n {title ? (\n <Text contrast=\"high\" weight=\"bold\" size=\"medium\">\n {title}\n </Text>\n ) : null}\n <Text\n variant=\"body\"\n size=\"small\"\n weight=\"regular\"\n contrast=\"high\"\n color=\"feedback.text.neutral.highContrast\"\n wordBreak=\"break-word\"\n >\n {children}\n </Text>\n {arrow}\n </TooltipContentWrapper>\n );\n },\n);\n\nexport { TooltipContent };\n"],"names":["TooltipContent","React","forwardRef","_ref","ref","children","title","arrow","side","style","isVisible","_jsxs","TooltipContentWrapper","position","isReactNative","paddingTop","paddingBottom","paddingLeft","paddingRight","maxWidth","makeSize","size","styles","_jsx","Text","contrast","weight","variant","color","wordBreak"],"mappings":";;;;;;;;;;;;;;;;AAOM,IAAAA,cAAc,CAAGC,cAAK,CAACC,UAAU,CACrC,SAAAC,IAAA,CAAqDC,GAAG,CAAK,CAA1D,IAAAC,QAAQ,CAAAF,IAAA,CAARE,QAAQ,CAAEC,KAAK,CAAAH,IAAA,CAALG,KAAK,CAAEC,KAAK,CAAAJ,IAAA,CAALI,KAAK,CAAEC,IAAI,CAAAL,IAAA,CAAJK,IAAI,CAAEC,KAAK,CAAAN,IAAA,CAALM,KAAK,CAAEC,SAAS,CAAAP,IAAA,CAATO,SAAS,CAC/C,OACEC,IAAA,CAACC,qBAAqB,CAAA,CACpBC,QAAQ,CAAEC,aAAa,EAAE,CAAG,UAAU,CAAG,UAAW,CACpDC,UAAU,CAAC,WAAW,CACtBC,aAAa,CAAC,WAAW,CACzBC,WAAW,CAAC,WAAW,CACvBC,YAAY,CAAC,WAAW,CACxBC,QAAQ,CAAEC,QAAQ,CAACC,IAAI,CAAC,GAAG,CAAC,CAAE,CAC9BjB,GAAG,CAAEA,GAAa,CAClBkB,MAAM,CAAEb,KAAM,CACdD,IAAI,CAAEA,IAAK,CACXE,SAAS,CAAEA,SAAU,CAAAL,QAAA,CAEpBC,CAAAA,KAAK,CACJiB,GAAA,CAACC,IAAI,CAAA,CAACC,QAAQ,CAAC,MAAM,CAACC,MAAM,CAAC,MAAM,CAACL,IAAI,CAAC,QAAQ,CAAAhB,QAAA,CAC9CC,KAAK,CACF,CAAC,CACL,IAAI,CACRiB,GAAA,CAACC,IAAI,CAAA,CACHG,OAAO,CAAC,MAAM,CACdN,IAAI,CAAC,OAAO,CACZK,MAAM,CAAC,SAAS,CAChBD,QAAQ,CAAC,MAAM,CACfG,KAAK,CAAC,oCAAoC,CAC1CC,SAAS,CAAC,YAAY,CAAAxB,QAAA,CAErBA,QAAQ,CACL,CAAC,CACNE,KAAK,CACe,CAAA,CAAC,CAE5B,CACF;;;;"}
@@ -18,9 +18,11 @@ import '../Button/index.js';
18
18
  import '../../utils/makeAccessible/index.js';
19
19
  import '../../utils/assignWithoutSideEffects/index.js';
20
20
  import '../BladeProvider/index.js';
21
+ import '../../utils/logger/index.js';
21
22
  import { jsxs, jsx } from 'react/jsx-runtime';
22
23
  import { makeSize } from '../../utils/makeSize/makeSize.js';
23
24
  import useTheme from '../BladeProvider/useTheme.js';
25
+ import { throwBladeError } from '../../utils/logger/logger.js';
24
26
  import { BaseBox } from '../Box/BaseBox/BaseBox.web.js';
25
27
  import { Text } from '../Typography/Text/Text.js';
26
28
  import { Dropdown } from '../Dropdown/Dropdown.js';
@@ -203,7 +205,16 @@ var _TablePagination = function _TablePagination(_ref3) {
203
205
  }
204
206
  }, [controlledCurrentPage, currentPage, handlePageChange, onPageChange]);
205
207
  if (currentPage > totalPages - 1) {
206
- handlePageChange(totalPages - 1);
208
+ if (!isUndefined(controlledCurrentPage)) {
209
+ if (true) {
210
+ throwBladeError({
211
+ moduleName: 'TablePagination',
212
+ message: "Value of 'currentPage' prop cannot be greater than the total pages"
213
+ });
214
+ }
215
+ } else {
216
+ handlePageChange(totalPages - 1);
217
+ }
207
218
  }
208
219
  var handlePageSizeChange = function handlePageSizeChange(pageSize) {
209
220
  onPageSizeChange === null || onPageSizeChange === void 0 ? void 0 : onPageSizeChange({
@@ -1 +1 @@
1
- {"version":3,"file":"TablePagination.web.js","sources":["../../../../../../src/components/Table/TablePagination.web.tsx"],"sourcesContent":["import React, { useCallback, useEffect } from 'react';\nimport styled from 'styled-components';\nimport { useTableContext } from './TableContext';\nimport { ComponentIds } from './componentIds';\nimport { tablePagination } from './tokens';\nimport type { TablePaginationProps } from './types';\nimport isUndefined from '~utils/lodashButBetter/isUndefined';\nimport getIn from '~utils/lodashButBetter/get';\nimport BaseBox from '~components/Box/BaseBox';\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronsLeftIcon,\n ChevronsRightIcon,\n MoreHorizontalIcon,\n} from '~components/Icons';\nimport { Dropdown, DropdownOverlay } from '~components/Dropdown';\nimport { SelectInput } from '~components/Input/DropdownInputTriggers';\nimport { ActionList, ActionListItem } from '~components/ActionList';\nimport { Text } from '~components/Typography';\nimport { makeSize } from '~utils';\nimport { Button } from '~components/Button';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { useTheme } from '~components/BladeProvider';\n\nconst pageSizeOptions: NonNullable<TablePaginationProps['defaultPageSize']>[] = [10, 25, 50];\n\nconst PageSelectionButton = styled.button<{ isSelected?: boolean }>(({ theme, isSelected }) => ({\n backgroundColor: isSelected\n ? getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorSelected)\n : 'transparent',\n border: 'none',\n cursor: 'pointer',\n height: makeSize(tablePagination.pageSelectionButton.height),\n width: makeSize(tablePagination.pageSelectionButton.width),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: getIn(theme.border.radius, tablePagination.pageSelectionButton.borderRadius),\n '&:hover': {\n backgroundColor: isSelected\n ? getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorSelectedHover)\n : getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorHover),\n },\n '&:focus-visible': {\n backgroundColor: isSelected\n ? getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorSelectedActive)\n : getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorActive),\n outline: 'none',\n '&:focus-visible': {\n outline: `1px solid ${theme.colors.surface.background.level1.lowContrast}`,\n boxShadow: `0px 0px 0px 4px ${getIn(\n theme.colors,\n tablePagination.pageSelectionButton.focusRingColor,\n )}`,\n },\n },\n '&:active': {\n backgroundColor: isSelected\n ? getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorSelectedActive)\n : getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorActive),\n },\n}));\nconst getPaginationButtons = ({\n currentSelection,\n totalPages,\n}: {\n currentSelection: number;\n totalPages: number;\n}): {\n middleItems: number[];\n showStartEllipsis: boolean;\n showEndEllipsis: boolean;\n firstItem: number;\n lastItem: number;\n} => {\n const halfRange = 2;\n const minMiddleItems = 5;\n\n // return if totalPages is less than minMiddleItems\n if (totalPages <= minMiddleItems) {\n return {\n middleItems: Array.from({ length: totalPages - 2 }, (_, index) => index + 2),\n showStartEllipsis: false,\n showEndEllipsis: false,\n firstItem: 1,\n lastItem: totalPages,\n };\n }\n\n let start = Math.max(1, currentSelection - halfRange);\n let end = Math.min(totalPages, start + 2 * halfRange);\n\n // Ensure at least minMiddleItems items in middleItems\n while (end - start + 1 < minMiddleItems && (start > 1 || end < totalPages)) {\n if (start > 1) {\n start--;\n }\n if (end < totalPages) {\n end++;\n }\n }\n\n let showStartEllipsis = false;\n let showEndEllipsis = false;\n\n const paginationButtons: number[] = [];\n for (let i = start; i <= end; i++) {\n paginationButtons.push(i);\n }\n\n // if paginationButtons contains 1, remove it\n if (paginationButtons.includes(1)) {\n paginationButtons.shift();\n // add an extra item at the end if length of total pages is greater than minMiddleItems+1\n if (totalPages > minMiddleItems + 1) paginationButtons.push(end + 1);\n }\n\n // if paginationButtons contains totalPages, remove it\n if (paginationButtons.includes(totalPages)) {\n paginationButtons.pop();\n // add an extra item at the beginning if length of total pages is greater than minMiddleItems+1\n if (totalPages > minMiddleItems + 1) paginationButtons.unshift(start - 1);\n }\n\n if (paginationButtons[0] > 2) {\n showStartEllipsis = true;\n }\n\n if (paginationButtons[paginationButtons.length - 1] + 1 < totalPages) {\n showEndEllipsis = true;\n }\n\n return {\n middleItems: paginationButtons,\n showStartEllipsis,\n showEndEllipsis,\n firstItem: 1,\n lastItem: totalPages,\n };\n};\n\nconst _TablePagination = ({\n currentPage: controlledCurrentPage,\n onPageChange,\n onPageSizeChange,\n defaultPageSize = tablePagination.defaultPageSize,\n showPageSizePicker = true,\n showPageNumberSelector = false,\n showLabel,\n label,\n}: TablePaginationProps): React.ReactElement => {\n const {\n setPaginationPage,\n currentPaginationState,\n totalItems,\n setPaginationRowSize,\n } = useTableContext();\n const [currentPageSize, setCurrentPageSize] = React.useState<number>(defaultPageSize);\n const [currentPage, setCurrentPage] = React.useState<number>(\n !isUndefined(controlledCurrentPage) ? controlledCurrentPage : currentPaginationState?.page ?? 0,\n );\n const [currentEllipseHover, setCurrentEllipseHover] = React.useState<'start' | 'end' | undefined>(\n undefined,\n );\n\n const defaultLabel = currentPaginationState\n ? `Showing ${currentPaginationState.page * currentPaginationState.size + 1}-${\n currentPaginationState.page * currentPaginationState.size + currentPaginationState.size\n } Items`\n : `Showing 1 to ${totalItems} Items`;\n\n const { platform } = useTheme();\n const onMobile = platform === 'onMobile';\n useEffect(() => {\n setPaginationRowSize(currentPageSize);\n }, []);\n\n useEffect(() => {\n if (currentPage && currentPaginationState?.page !== currentPage) {\n setPaginationPage(currentPage);\n }\n }, [currentPage, currentPaginationState?.page, setPaginationPage]);\n\n const totalPages = Math.ceil(totalItems / currentPageSize);\n\n const handlePageChange = useCallback(\n (page: number): void => {\n let pageToJumpTo = page;\n if (pageToJumpTo < 0) {\n pageToJumpTo = 0;\n } else if (pageToJumpTo > totalPages - 1) {\n pageToJumpTo = totalPages - 1;\n }\n\n onPageChange?.({ page: pageToJumpTo });\n\n if (!isUndefined(controlledCurrentPage)) {\n pageToJumpTo = controlledCurrentPage;\n }\n setPaginationPage(pageToJumpTo);\n setCurrentPage(pageToJumpTo);\n },\n [controlledCurrentPage, onPageChange, setPaginationPage, totalPages],\n );\n\n useEffect(() => {\n if (!isUndefined(controlledCurrentPage) && controlledCurrentPage !== currentPage) {\n handlePageChange(controlledCurrentPage);\n }\n }, [controlledCurrentPage, currentPage, handlePageChange, onPageChange]);\n\n if (currentPage > totalPages - 1) {\n handlePageChange(totalPages - 1);\n }\n\n const handlePageSizeChange = (pageSize: number): void => {\n onPageSizeChange?.({ pageSize });\n setPaginationRowSize(pageSize);\n setCurrentPageSize(pageSize);\n };\n\n const shouldDisableNextPage = (): boolean => {\n return currentPage >= totalPages - 1;\n };\n const paginationButtons = getPaginationButtons({\n currentSelection: currentPage + 1,\n totalPages,\n });\n\n return (\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n padding={tablePagination.padding}\n backgroundColor={tablePagination.backgroundColor}\n >\n {showLabel && !onMobile && (\n <BaseBox display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <Text size=\"medium\" weight=\"bold\">\n {label ?? defaultLabel}\n </Text>\n </BaseBox>\n )}\n <BaseBox\n display=\"flex\"\n flex={1}\n gap=\"spacing.2\"\n justifyContent=\"flex-end\"\n alignItems=\"center\"\n >\n {showPageSizePicker && !onMobile && (\n <BaseBox display=\"flex\" flexDirection=\"row\" alignItems=\"center\">\n <Dropdown selectionType=\"single\">\n <SelectInput\n accessibilityLabel=\"Select pages per row\"\n name=\"page-size\"\n label=\"\"\n labelPosition=\"inside-input\"\n placeholder=\"\"\n onChange={({ values }) => {\n handlePageSizeChange(Number(values[0]));\n }}\n defaultValue={currentPageSize.toString()}\n />\n <DropdownOverlay>\n <ActionList>\n {pageSizeOptions.map((item, index) => (\n <ActionListItem key={index} title={item.toString()} value={item.toString()} />\n ))}\n </ActionList>\n </DropdownOverlay>\n </Dropdown>\n <BaseBox aria-hidden paddingLeft=\"spacing.3\" paddingRight=\"spacing.3\">\n <Text>rows / page</Text>\n </BaseBox>\n </BaseBox>\n )}\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n gap=\"spacing.2\"\n flex={onMobile ? 1 : undefined}\n alignItems=\"center\"\n >\n <Button\n icon={ChevronLeftIcon}\n accessibilityLabel=\"Previous Page\"\n variant=\"tertiary\"\n onClick={() => {\n handlePageChange(currentPage - 1);\n }}\n isDisabled={currentPage <= 0}\n />\n {onMobile && (\n <BaseBox flex={1} alignItems=\"center\" justifyContent=\"center\">\n <Text textAlign=\"center\">{`Showing ${currentPage + 1} of ${totalPages} pages`}</Text>\n </BaseBox>\n )}\n {totalPages > 1 && showPageNumberSelector && !onMobile && (\n <BaseBox gap=\"spacing.1\" display=\"flex\" flexDirection=\"row\">\n <PageSelectionButton\n onClick={() => handlePageChange(paginationButtons.firstItem - 1)}\n isSelected={currentPage === paginationButtons.firstItem - 1}\n >\n <Text\n size=\"medium\"\n color={\n currentPage === paginationButtons.firstItem - 1\n ? tablePagination.pageSelectionButton.textColorSelected\n : tablePagination.pageSelectionButton.textColor\n }\n >\n {paginationButtons.firstItem}\n </Text>\n </PageSelectionButton>\n {paginationButtons.showStartEllipsis && (\n <PageSelectionButton\n onClick={() => handlePageChange(currentPage - 5)}\n onMouseOver={() => setCurrentEllipseHover('start')}\n onMouseLeave={() => setCurrentEllipseHover(undefined)}\n onFocus={() => setCurrentEllipseHover('start')}\n onBlur={() => setCurrentEllipseHover(undefined)}\n {...makeAccessible({ label: 'Go back 5 pages' })}\n >\n {currentEllipseHover === 'start' ? (\n <ChevronsLeftIcon size=\"medium\" />\n ) : (\n <MoreHorizontalIcon size=\"medium\" />\n )}\n </PageSelectionButton>\n )}\n {paginationButtons.middleItems.map((item) => (\n <PageSelectionButton\n key={item - 1}\n onClick={() => handlePageChange(item - 1)}\n isSelected={currentPage === item - 1}\n {...makeAccessible({ label: `Page ${item}` })}\n >\n <Text\n size=\"medium\"\n color={\n currentPage === item - 1\n ? tablePagination.pageSelectionButton.textColorSelected\n : tablePagination.pageSelectionButton.textColor\n }\n >\n {item}\n </Text>\n </PageSelectionButton>\n ))}\n {paginationButtons.showEndEllipsis && (\n <PageSelectionButton\n onClick={() => handlePageChange(currentPage + 5)}\n onMouseOver={() => setCurrentEllipseHover('end')}\n onMouseLeave={() => setCurrentEllipseHover(undefined)}\n onFocus={() => setCurrentEllipseHover('end')}\n onBlur={() => setCurrentEllipseHover(undefined)}\n {...makeAccessible({ label: 'Go forward 5 pages' })}\n >\n {currentEllipseHover === 'end' ? (\n <ChevronsRightIcon size=\"medium\" />\n ) : (\n <MoreHorizontalIcon size=\"medium\" />\n )}\n </PageSelectionButton>\n )}\n <PageSelectionButton\n onClick={() => handlePageChange(paginationButtons.lastItem - 1)}\n isSelected={currentPage === paginationButtons.lastItem - 1}\n >\n <Text\n size=\"medium\"\n color={\n currentPage === paginationButtons.lastItem - 1\n ? tablePagination.pageSelectionButton.textColorSelected\n : tablePagination.pageSelectionButton.textColor\n }\n >\n {paginationButtons.lastItem}\n </Text>\n </PageSelectionButton>\n </BaseBox>\n )}\n <Button\n variant=\"tertiary\"\n icon={ChevronRightIcon}\n accessibilityLabel=\"Next Page\"\n onClick={() => {\n handlePageChange(currentPage + 1);\n }}\n isDisabled={shouldDisableNextPage()}\n />\n </BaseBox>\n </BaseBox>\n </BaseBox>\n );\n};\n\nconst TablePagination = assignWithoutSideEffects(_TablePagination, {\n componentId: ComponentIds.TablePagination,\n});\n\nexport { TablePagination };\n"],"names":["pageSizeOptions","PageSelectionButton","styled","button","withConfig","displayName","componentId","_ref","theme","isSelected","backgroundColor","getIn","colors","tablePagination","pageSelectionButton","backgroundColorSelected","border","cursor","height","makeSize","width","display","alignItems","justifyContent","borderRadius","radius","backgroundColorSelectedHover","backgroundColorHover","backgroundColorSelectedActive","backgroundColorActive","outline","concat","surface","background","level1","lowContrast","boxShadow","focusRingColor","getPaginationButtons","_ref2","currentSelection","totalPages","halfRange","minMiddleItems","middleItems","Array","from","length","_","index","showStartEllipsis","showEndEllipsis","firstItem","lastItem","start","Math","max","end","min","paginationButtons","i","push","includes","shift","pop","unshift","_TablePagination","_ref3","_currentPaginationSta","controlledCurrentPage","currentPage","onPageChange","onPageSizeChange","_ref3$defaultPageSize","defaultPageSize","_ref3$showPageSizePic","showPageSizePicker","_ref3$showPageNumberS","showPageNumberSelector","showLabel","label","_useTableContext","useTableContext","setPaginationPage","currentPaginationState","totalItems","setPaginationRowSize","_React$useState","React","useState","_React$useState2","_slicedToArray","currentPageSize","setCurrentPageSize","_React$useState3","isUndefined","page","_React$useState4","setCurrentPage","_React$useState5","undefined","_React$useState6","currentEllipseHover","setCurrentEllipseHover","defaultLabel","size","_useTheme","useTheme","platform","onMobile","useEffect","ceil","handlePageChange","useCallback","pageToJumpTo","handlePageSizeChange","pageSize","shouldDisableNextPage","_jsxs","BaseBox","flexDirection","padding","children","_jsx","Text","weight","flex","gap","Dropdown","selectionType","SelectInput","accessibilityLabel","name","labelPosition","placeholder","onChange","_ref4","values","Number","defaultValue","toString","DropdownOverlay","ActionList","map","item","ActionListItem","title","value","paddingLeft","paddingRight","Button","icon","ChevronLeftIcon","variant","onClick","isDisabled","textAlign","color","textColorSelected","textColor","_objectSpread","onMouseOver","onMouseLeave","onFocus","onBlur","makeAccessible","ChevronsLeftIcon","MoreHorizontalIcon","ChevronsRightIcon","ChevronRightIcon","TablePagination","assignWithoutSideEffects","ComponentIds"],"mappings":"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"}
1
+ {"version":3,"file":"TablePagination.web.js","sources":["../../../../../../src/components/Table/TablePagination.web.tsx"],"sourcesContent":["import React, { useCallback, useEffect } from 'react';\nimport styled from 'styled-components';\nimport { useTableContext } from './TableContext';\nimport { ComponentIds } from './componentIds';\nimport { tablePagination } from './tokens';\nimport type { TablePaginationProps } from './types';\nimport isUndefined from '~utils/lodashButBetter/isUndefined';\nimport getIn from '~utils/lodashButBetter/get';\nimport BaseBox from '~components/Box/BaseBox';\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronsLeftIcon,\n ChevronsRightIcon,\n MoreHorizontalIcon,\n} from '~components/Icons';\nimport { Dropdown, DropdownOverlay } from '~components/Dropdown';\nimport { SelectInput } from '~components/Input/DropdownInputTriggers';\nimport { ActionList, ActionListItem } from '~components/ActionList';\nimport { Text } from '~components/Typography';\nimport { makeSize } from '~utils';\nimport { Button } from '~components/Button';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { useTheme } from '~components/BladeProvider';\nimport { throwBladeError } from '~utils/logger';\n\nconst pageSizeOptions: NonNullable<TablePaginationProps['defaultPageSize']>[] = [10, 25, 50];\n\nconst PageSelectionButton = styled.button<{ isSelected?: boolean }>(({ theme, isSelected }) => ({\n backgroundColor: isSelected\n ? getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorSelected)\n : 'transparent',\n border: 'none',\n cursor: 'pointer',\n height: makeSize(tablePagination.pageSelectionButton.height),\n width: makeSize(tablePagination.pageSelectionButton.width),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: getIn(theme.border.radius, tablePagination.pageSelectionButton.borderRadius),\n '&:hover': {\n backgroundColor: isSelected\n ? getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorSelectedHover)\n : getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorHover),\n },\n '&:focus-visible': {\n backgroundColor: isSelected\n ? getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorSelectedActive)\n : getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorActive),\n outline: 'none',\n '&:focus-visible': {\n outline: `1px solid ${theme.colors.surface.background.level1.lowContrast}`,\n boxShadow: `0px 0px 0px 4px ${getIn(\n theme.colors,\n tablePagination.pageSelectionButton.focusRingColor,\n )}`,\n },\n },\n '&:active': {\n backgroundColor: isSelected\n ? getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorSelectedActive)\n : getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorActive),\n },\n}));\nconst getPaginationButtons = ({\n currentSelection,\n totalPages,\n}: {\n currentSelection: number;\n totalPages: number;\n}): {\n middleItems: number[];\n showStartEllipsis: boolean;\n showEndEllipsis: boolean;\n firstItem: number;\n lastItem: number;\n} => {\n const halfRange = 2;\n const minMiddleItems = 5;\n\n // return if totalPages is less than minMiddleItems\n if (totalPages <= minMiddleItems) {\n return {\n middleItems: Array.from({ length: totalPages - 2 }, (_, index) => index + 2),\n showStartEllipsis: false,\n showEndEllipsis: false,\n firstItem: 1,\n lastItem: totalPages,\n };\n }\n\n let start = Math.max(1, currentSelection - halfRange);\n let end = Math.min(totalPages, start + 2 * halfRange);\n\n // Ensure at least minMiddleItems items in middleItems\n while (end - start + 1 < minMiddleItems && (start > 1 || end < totalPages)) {\n if (start > 1) {\n start--;\n }\n if (end < totalPages) {\n end++;\n }\n }\n\n let showStartEllipsis = false;\n let showEndEllipsis = false;\n\n const paginationButtons: number[] = [];\n for (let i = start; i <= end; i++) {\n paginationButtons.push(i);\n }\n\n // if paginationButtons contains 1, remove it\n if (paginationButtons.includes(1)) {\n paginationButtons.shift();\n // add an extra item at the end if length of total pages is greater than minMiddleItems+1\n if (totalPages > minMiddleItems + 1) paginationButtons.push(end + 1);\n }\n\n // if paginationButtons contains totalPages, remove it\n if (paginationButtons.includes(totalPages)) {\n paginationButtons.pop();\n // add an extra item at the beginning if length of total pages is greater than minMiddleItems+1\n if (totalPages > minMiddleItems + 1) paginationButtons.unshift(start - 1);\n }\n\n if (paginationButtons[0] > 2) {\n showStartEllipsis = true;\n }\n\n if (paginationButtons[paginationButtons.length - 1] + 1 < totalPages) {\n showEndEllipsis = true;\n }\n\n return {\n middleItems: paginationButtons,\n showStartEllipsis,\n showEndEllipsis,\n firstItem: 1,\n lastItem: totalPages,\n };\n};\n\nconst _TablePagination = ({\n currentPage: controlledCurrentPage,\n onPageChange,\n onPageSizeChange,\n defaultPageSize = tablePagination.defaultPageSize,\n showPageSizePicker = true,\n showPageNumberSelector = false,\n showLabel,\n label,\n}: TablePaginationProps): React.ReactElement => {\n const {\n setPaginationPage,\n currentPaginationState,\n totalItems,\n setPaginationRowSize,\n } = useTableContext();\n const [currentPageSize, setCurrentPageSize] = React.useState<number>(defaultPageSize);\n const [currentPage, setCurrentPage] = React.useState<number>(\n !isUndefined(controlledCurrentPage) ? controlledCurrentPage : currentPaginationState?.page ?? 0,\n );\n const [currentEllipseHover, setCurrentEllipseHover] = React.useState<'start' | 'end' | undefined>(\n undefined,\n );\n\n const defaultLabel = currentPaginationState\n ? `Showing ${currentPaginationState.page * currentPaginationState.size + 1}-${\n currentPaginationState.page * currentPaginationState.size + currentPaginationState.size\n } Items`\n : `Showing 1 to ${totalItems} Items`;\n\n const { platform } = useTheme();\n const onMobile = platform === 'onMobile';\n useEffect(() => {\n setPaginationRowSize(currentPageSize);\n }, []);\n\n useEffect(() => {\n if (currentPage && currentPaginationState?.page !== currentPage) {\n setPaginationPage(currentPage);\n }\n }, [currentPage, currentPaginationState?.page, setPaginationPage]);\n\n const totalPages = Math.ceil(totalItems / currentPageSize);\n\n const handlePageChange = useCallback(\n (page: number): void => {\n let pageToJumpTo = page;\n if (pageToJumpTo < 0) {\n pageToJumpTo = 0;\n } else if (pageToJumpTo > totalPages - 1) {\n pageToJumpTo = totalPages - 1;\n }\n\n onPageChange?.({ page: pageToJumpTo });\n\n if (!isUndefined(controlledCurrentPage)) {\n pageToJumpTo = controlledCurrentPage;\n }\n setPaginationPage(pageToJumpTo);\n setCurrentPage(pageToJumpTo);\n },\n [controlledCurrentPage, onPageChange, setPaginationPage, totalPages],\n );\n\n useEffect(() => {\n if (!isUndefined(controlledCurrentPage) && controlledCurrentPage !== currentPage) {\n handlePageChange(controlledCurrentPage);\n }\n }, [controlledCurrentPage, currentPage, handlePageChange, onPageChange]);\n\n if (currentPage > totalPages - 1) {\n if (!isUndefined(controlledCurrentPage)) {\n if (__DEV__) {\n throwBladeError({\n moduleName: 'TablePagination',\n message: `Value of 'currentPage' prop cannot be greater than the total pages`,\n });\n }\n } else {\n handlePageChange(totalPages - 1);\n }\n }\n\n const handlePageSizeChange = (pageSize: number): void => {\n onPageSizeChange?.({ pageSize });\n setPaginationRowSize(pageSize);\n setCurrentPageSize(pageSize);\n };\n\n const shouldDisableNextPage = (): boolean => {\n return currentPage >= totalPages - 1;\n };\n const paginationButtons = getPaginationButtons({\n currentSelection: currentPage + 1,\n totalPages,\n });\n\n return (\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n padding={tablePagination.padding}\n backgroundColor={tablePagination.backgroundColor}\n >\n {showLabel && !onMobile && (\n <BaseBox display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <Text size=\"medium\" weight=\"bold\">\n {label ?? defaultLabel}\n </Text>\n </BaseBox>\n )}\n <BaseBox\n display=\"flex\"\n flex={1}\n gap=\"spacing.2\"\n justifyContent=\"flex-end\"\n alignItems=\"center\"\n >\n {showPageSizePicker && !onMobile && (\n <BaseBox display=\"flex\" flexDirection=\"row\" alignItems=\"center\">\n <Dropdown selectionType=\"single\">\n <SelectInput\n accessibilityLabel=\"Select pages per row\"\n name=\"page-size\"\n label=\"\"\n labelPosition=\"inside-input\"\n placeholder=\"\"\n onChange={({ values }) => {\n handlePageSizeChange(Number(values[0]));\n }}\n defaultValue={currentPageSize.toString()}\n />\n <DropdownOverlay>\n <ActionList>\n {pageSizeOptions.map((item, index) => (\n <ActionListItem key={index} title={item.toString()} value={item.toString()} />\n ))}\n </ActionList>\n </DropdownOverlay>\n </Dropdown>\n <BaseBox aria-hidden paddingLeft=\"spacing.3\" paddingRight=\"spacing.3\">\n <Text>rows / page</Text>\n </BaseBox>\n </BaseBox>\n )}\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n gap=\"spacing.2\"\n flex={onMobile ? 1 : undefined}\n alignItems=\"center\"\n >\n <Button\n icon={ChevronLeftIcon}\n accessibilityLabel=\"Previous Page\"\n variant=\"tertiary\"\n onClick={() => {\n handlePageChange(currentPage - 1);\n }}\n isDisabled={currentPage <= 0}\n />\n {onMobile && (\n <BaseBox flex={1} alignItems=\"center\" justifyContent=\"center\">\n <Text textAlign=\"center\">{`Showing ${currentPage + 1} of ${totalPages} pages`}</Text>\n </BaseBox>\n )}\n {totalPages > 1 && showPageNumberSelector && !onMobile && (\n <BaseBox gap=\"spacing.1\" display=\"flex\" flexDirection=\"row\">\n <PageSelectionButton\n onClick={() => handlePageChange(paginationButtons.firstItem - 1)}\n isSelected={currentPage === paginationButtons.firstItem - 1}\n >\n <Text\n size=\"medium\"\n color={\n currentPage === paginationButtons.firstItem - 1\n ? tablePagination.pageSelectionButton.textColorSelected\n : tablePagination.pageSelectionButton.textColor\n }\n >\n {paginationButtons.firstItem}\n </Text>\n </PageSelectionButton>\n {paginationButtons.showStartEllipsis && (\n <PageSelectionButton\n onClick={() => handlePageChange(currentPage - 5)}\n onMouseOver={() => setCurrentEllipseHover('start')}\n onMouseLeave={() => setCurrentEllipseHover(undefined)}\n onFocus={() => setCurrentEllipseHover('start')}\n onBlur={() => setCurrentEllipseHover(undefined)}\n {...makeAccessible({ label: 'Go back 5 pages' })}\n >\n {currentEllipseHover === 'start' ? (\n <ChevronsLeftIcon size=\"medium\" />\n ) : (\n <MoreHorizontalIcon size=\"medium\" />\n )}\n </PageSelectionButton>\n )}\n {paginationButtons.middleItems.map((item) => (\n <PageSelectionButton\n key={item - 1}\n onClick={() => handlePageChange(item - 1)}\n isSelected={currentPage === item - 1}\n {...makeAccessible({ label: `Page ${item}` })}\n >\n <Text\n size=\"medium\"\n color={\n currentPage === item - 1\n ? tablePagination.pageSelectionButton.textColorSelected\n : tablePagination.pageSelectionButton.textColor\n }\n >\n {item}\n </Text>\n </PageSelectionButton>\n ))}\n {paginationButtons.showEndEllipsis && (\n <PageSelectionButton\n onClick={() => handlePageChange(currentPage + 5)}\n onMouseOver={() => setCurrentEllipseHover('end')}\n onMouseLeave={() => setCurrentEllipseHover(undefined)}\n onFocus={() => setCurrentEllipseHover('end')}\n onBlur={() => setCurrentEllipseHover(undefined)}\n {...makeAccessible({ label: 'Go forward 5 pages' })}\n >\n {currentEllipseHover === 'end' ? (\n <ChevronsRightIcon size=\"medium\" />\n ) : (\n <MoreHorizontalIcon size=\"medium\" />\n )}\n </PageSelectionButton>\n )}\n <PageSelectionButton\n onClick={() => handlePageChange(paginationButtons.lastItem - 1)}\n isSelected={currentPage === paginationButtons.lastItem - 1}\n >\n <Text\n size=\"medium\"\n color={\n currentPage === paginationButtons.lastItem - 1\n ? tablePagination.pageSelectionButton.textColorSelected\n : tablePagination.pageSelectionButton.textColor\n }\n >\n {paginationButtons.lastItem}\n </Text>\n </PageSelectionButton>\n </BaseBox>\n )}\n <Button\n variant=\"tertiary\"\n icon={ChevronRightIcon}\n accessibilityLabel=\"Next Page\"\n onClick={() => {\n handlePageChange(currentPage + 1);\n }}\n isDisabled={shouldDisableNextPage()}\n />\n </BaseBox>\n </BaseBox>\n </BaseBox>\n );\n};\n\nconst TablePagination = assignWithoutSideEffects(_TablePagination, {\n componentId: ComponentIds.TablePagination,\n});\n\nexport { TablePagination };\n"],"names":["pageSizeOptions","PageSelectionButton","styled","button","withConfig","displayName","componentId","_ref","theme","isSelected","backgroundColor","getIn","colors","tablePagination","pageSelectionButton","backgroundColorSelected","border","cursor","height","makeSize","width","display","alignItems","justifyContent","borderRadius","radius","backgroundColorSelectedHover","backgroundColorHover","backgroundColorSelectedActive","backgroundColorActive","outline","concat","surface","background","level1","lowContrast","boxShadow","focusRingColor","getPaginationButtons","_ref2","currentSelection","totalPages","halfRange","minMiddleItems","middleItems","Array","from","length","_","index","showStartEllipsis","showEndEllipsis","firstItem","lastItem","start","Math","max","end","min","paginationButtons","i","push","includes","shift","pop","unshift","_TablePagination","_ref3","_currentPaginationSta","controlledCurrentPage","currentPage","onPageChange","onPageSizeChange","_ref3$defaultPageSize","defaultPageSize","_ref3$showPageSizePic","showPageSizePicker","_ref3$showPageNumberS","showPageNumberSelector","showLabel","label","_useTableContext","useTableContext","setPaginationPage","currentPaginationState","totalItems","setPaginationRowSize","_React$useState","React","useState","_React$useState2","_slicedToArray","currentPageSize","setCurrentPageSize","_React$useState3","isUndefined","page","_React$useState4","setCurrentPage","_React$useState5","undefined","_React$useState6","currentEllipseHover","setCurrentEllipseHover","defaultLabel","size","_useTheme","useTheme","platform","onMobile","useEffect","ceil","handlePageChange","useCallback","pageToJumpTo","throwBladeError","moduleName","message","handlePageSizeChange","pageSize","shouldDisableNextPage","_jsxs","BaseBox","flexDirection","padding","children","_jsx","Text","weight","flex","gap","Dropdown","selectionType","SelectInput","accessibilityLabel","name","labelPosition","placeholder","onChange","_ref4","values","Number","defaultValue","toString","DropdownOverlay","ActionList","map","item","ActionListItem","title","value","paddingLeft","paddingRight","Button","icon","ChevronLeftIcon","variant","onClick","isDisabled","textAlign","color","textColorSelected","textColor","_objectSpread","onMouseOver","onMouseLeave","onFocus","onBlur","makeAccessible","ChevronsLeftIcon","MoreHorizontalIcon","ChevronsRightIcon","ChevronRightIcon","TablePagination","assignWithoutSideEffects","ComponentIds"],"mappings":"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"}
@@ -38,6 +38,7 @@ var TooltipContent = /*#__PURE__*/React__default.forwardRef(function (_ref, ref)
38
38
  weight: "regular",
39
39
  contrast: "high",
40
40
  color: "feedback.text.neutral.highContrast",
41
+ wordBreak: "break-word",
41
42
  children: children
42
43
  }), arrow]
43
44
  });
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipContent.js","sources":["../../../../../../src/components/Tooltip/TooltipContent.tsx"],"sourcesContent":["import React from 'react';\nimport { TooltipContentWrapper } from './TooltipContentWrapper';\nimport type { TooltipContentProps } from './types';\nimport { Text } from '~components/Typography';\nimport { isReactNative, makeSize } from '~utils';\nimport { size } from '~tokens/global';\n\nconst TooltipContent = React.forwardRef<HTMLDivElement, TooltipContentProps>(\n ({ children, title, arrow, side, style, isVisible }, ref) => {\n return (\n <TooltipContentWrapper\n position={isReactNative() ? 'absolute' : 'relative'}\n paddingTop=\"spacing.3\"\n paddingBottom=\"spacing.3\"\n paddingLeft=\"spacing.4\"\n paddingRight=\"spacing.4\"\n maxWidth={makeSize(size[200])}\n ref={ref as never}\n styles={style}\n side={side}\n isVisible={isVisible}\n >\n {title ? (\n <Text contrast=\"high\" weight=\"bold\" size=\"medium\">\n {title}\n </Text>\n ) : null}\n <Text\n variant=\"body\"\n size=\"small\"\n weight=\"regular\"\n contrast=\"high\"\n color=\"feedback.text.neutral.highContrast\"\n >\n {children}\n </Text>\n {arrow}\n </TooltipContentWrapper>\n );\n },\n);\n\nexport { TooltipContent };\n"],"names":["TooltipContent","React","forwardRef","_ref","ref","children","title","arrow","side","style","isVisible","_jsxs","TooltipContentWrapper","position","isReactNative","paddingTop","paddingBottom","paddingLeft","paddingRight","maxWidth","makeSize","size","styles","_jsx","Text","contrast","weight","variant","color"],"mappings":";;;;;;;;;;;AAOMA,IAAAA,cAAc,gBAAGC,cAAK,CAACC,UAAU,CACrC,UAAAC,IAAA,EAAqDC,GAAG,EAAK;AAAA,EAAA,IAA1DC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAEC,KAAK,GAAAH,IAAA,CAALG,KAAK;IAAEC,KAAK,GAAAJ,IAAA,CAALI,KAAK;IAAEC,IAAI,GAAAL,IAAA,CAAJK,IAAI;IAAEC,KAAK,GAAAN,IAAA,CAALM,KAAK;IAAEC,SAAS,GAAAP,IAAA,CAATO,SAAS,CAAA;EAC/C,oBACEC,IAAA,CAACC,qBAAqB,EAAA;AACpBC,IAAAA,QAAQ,EAAEC,aAAa,EAAE,GAAG,UAAU,GAAG,UAAW;AACpDC,IAAAA,UAAU,EAAC,WAAW;AACtBC,IAAAA,aAAa,EAAC,WAAW;AACzBC,IAAAA,WAAW,EAAC,WAAW;AACvBC,IAAAA,YAAY,EAAC,WAAW;AACxBC,IAAAA,QAAQ,EAAEC,QAAQ,CAACC,IAAI,CAAC,GAAG,CAAC,CAAE;AAC9BjB,IAAAA,GAAG,EAAEA,GAAa;AAClBkB,IAAAA,MAAM,EAAEb,KAAM;AACdD,IAAAA,IAAI,EAAEA,IAAK;AACXE,IAAAA,SAAS,EAAEA,SAAU;AAAAL,IAAAA,QAAA,EAEpBC,CAAAA,KAAK,gBACJiB,GAAA,CAACC,IAAI,EAAA;AAACC,MAAAA,QAAQ,EAAC,MAAM;AAACC,MAAAA,MAAM,EAAC,MAAM;AAACL,MAAAA,IAAI,EAAC,QAAQ;AAAAhB,MAAAA,QAAA,EAC9CC,KAAAA;AAAK,KACF,CAAC,GACL,IAAI,eACRiB,GAAA,CAACC,IAAI,EAAA;AACHG,MAAAA,OAAO,EAAC,MAAM;AACdN,MAAAA,IAAI,EAAC,OAAO;AACZK,MAAAA,MAAM,EAAC,SAAS;AAChBD,MAAAA,QAAQ,EAAC,MAAM;AACfG,MAAAA,KAAK,EAAC,oCAAoC;AAAAvB,MAAAA,QAAA,EAEzCA,QAAAA;KACG,CAAC,EACNE,KAAK,CAAA;AAAA,GACe,CAAC,CAAA;AAE5B,CACF;;;;"}
1
+ {"version":3,"file":"TooltipContent.js","sources":["../../../../../../src/components/Tooltip/TooltipContent.tsx"],"sourcesContent":["import React from 'react';\nimport { TooltipContentWrapper } from './TooltipContentWrapper';\nimport type { TooltipContentProps } from './types';\nimport { Text } from '~components/Typography';\nimport { isReactNative, makeSize } from '~utils';\nimport { size } from '~tokens/global';\n\nconst TooltipContent = React.forwardRef<HTMLDivElement, TooltipContentProps>(\n ({ children, title, arrow, side, style, isVisible }, ref) => {\n return (\n <TooltipContentWrapper\n position={isReactNative() ? 'absolute' : 'relative'}\n paddingTop=\"spacing.3\"\n paddingBottom=\"spacing.3\"\n paddingLeft=\"spacing.4\"\n paddingRight=\"spacing.4\"\n maxWidth={makeSize(size[200])}\n ref={ref as never}\n styles={style}\n side={side}\n isVisible={isVisible}\n >\n {title ? (\n <Text contrast=\"high\" weight=\"bold\" size=\"medium\">\n {title}\n </Text>\n ) : null}\n <Text\n variant=\"body\"\n size=\"small\"\n weight=\"regular\"\n contrast=\"high\"\n color=\"feedback.text.neutral.highContrast\"\n wordBreak=\"break-word\"\n >\n {children}\n </Text>\n {arrow}\n </TooltipContentWrapper>\n );\n },\n);\n\nexport { TooltipContent };\n"],"names":["TooltipContent","React","forwardRef","_ref","ref","children","title","arrow","side","style","isVisible","_jsxs","TooltipContentWrapper","position","isReactNative","paddingTop","paddingBottom","paddingLeft","paddingRight","maxWidth","makeSize","size","styles","_jsx","Text","contrast","weight","variant","color","wordBreak"],"mappings":";;;;;;;;;;;AAOMA,IAAAA,cAAc,gBAAGC,cAAK,CAACC,UAAU,CACrC,UAAAC,IAAA,EAAqDC,GAAG,EAAK;AAAA,EAAA,IAA1DC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAEC,KAAK,GAAAH,IAAA,CAALG,KAAK;IAAEC,KAAK,GAAAJ,IAAA,CAALI,KAAK;IAAEC,IAAI,GAAAL,IAAA,CAAJK,IAAI;IAAEC,KAAK,GAAAN,IAAA,CAALM,KAAK;IAAEC,SAAS,GAAAP,IAAA,CAATO,SAAS,CAAA;EAC/C,oBACEC,IAAA,CAACC,qBAAqB,EAAA;AACpBC,IAAAA,QAAQ,EAAEC,aAAa,EAAE,GAAG,UAAU,GAAG,UAAW;AACpDC,IAAAA,UAAU,EAAC,WAAW;AACtBC,IAAAA,aAAa,EAAC,WAAW;AACzBC,IAAAA,WAAW,EAAC,WAAW;AACvBC,IAAAA,YAAY,EAAC,WAAW;AACxBC,IAAAA,QAAQ,EAAEC,QAAQ,CAACC,IAAI,CAAC,GAAG,CAAC,CAAE;AAC9BjB,IAAAA,GAAG,EAAEA,GAAa;AAClBkB,IAAAA,MAAM,EAAEb,KAAM;AACdD,IAAAA,IAAI,EAAEA,IAAK;AACXE,IAAAA,SAAS,EAAEA,SAAU;AAAAL,IAAAA,QAAA,EAEpBC,CAAAA,KAAK,gBACJiB,GAAA,CAACC,IAAI,EAAA;AAACC,MAAAA,QAAQ,EAAC,MAAM;AAACC,MAAAA,MAAM,EAAC,MAAM;AAACL,MAAAA,IAAI,EAAC,QAAQ;AAAAhB,MAAAA,QAAA,EAC9CC,KAAAA;AAAK,KACF,CAAC,GACL,IAAI,eACRiB,GAAA,CAACC,IAAI,EAAA;AACHG,MAAAA,OAAO,EAAC,MAAM;AACdN,MAAAA,IAAI,EAAC,OAAO;AACZK,MAAAA,MAAM,EAAC,SAAS;AAChBD,MAAAA,QAAQ,EAAC,MAAM;AACfG,MAAAA,KAAK,EAAC,oCAAoC;AAC1CC,MAAAA,SAAS,EAAC,YAAY;AAAAxB,MAAAA,QAAA,EAErBA,QAAAA;KACG,CAAC,EACNE,KAAK,CAAA;AAAA,GACe,CAAC,CAAA;AAE5B,CACF;;;;"}
@@ -0,0 +1,118 @@
1
+ 'use strict';
2
+
3
+ var _typeof = require('@babel/runtime/helpers/typeof');
4
+ var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
5
+
6
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
7
+ var getBladeCoverage = function getBladeCoverage() {
8
+ /**
9
+ * Checks if DOM node is hidden or not
10
+ */
11
+ var isElementHidden = function isElementHidden(element) {
12
+ if (element.parentElement && isElementHidden(element.parentElement)) {
13
+ return true;
14
+ }
15
+ if (!(element instanceof HTMLElement)) {
16
+ return false;
17
+ }
18
+ if (element.hidden) {
19
+ return true;
20
+ }
21
+ var style = getComputedStyle(element);
22
+ return style.display === 'none' || style.visibility === 'hidden' || style.opacity === '0';
23
+ };
24
+
25
+ /**
26
+ * Checks if DOM node is a media element or not
27
+ */
28
+ var isMediaElement = function isMediaElement(element) {
29
+ var mediaTags = ['img', 'video', 'audio', 'source', 'picture'];
30
+ return mediaTags.includes(element.tagName.toLowerCase());
31
+ };
32
+
33
+ /**
34
+ * Checks if DOM element is empty or not
35
+ */
36
+ var isElementEmpty = function isElementEmpty(element) {
37
+ if (!element) return true;
38
+ if (!element.childNodes.length) {
39
+ return true;
40
+ }
41
+ return false;
42
+ };
43
+ var allDomElements = document.querySelectorAll('body *');
44
+ var bladeNodeElements = [];
45
+ var totalNodeElements = [];
46
+ allDomElements.forEach(function (elm) {
47
+ if (isElementHidden(elm)) return;
48
+ if (isElementEmpty(elm)) return;
49
+ if (isMediaElement(elm)) return;
50
+
51
+ // skip svg nodes but not blade icons
52
+ var closestSvgNode = elm.closest('svg');
53
+ // if this is a blade icon then add it
54
+ if (elm.tagName.toLocaleLowerCase() === 'svg' && elm.hasAttribute('data-blade-component')) {
55
+ bladeNodeElements.push(elm);
56
+ totalNodeElements.push(elm);
57
+ return;
58
+ }
59
+ // if it's a svg node inside a blade icon then skip it
60
+ if ((closestSvgNode === null || closestSvgNode === void 0 ? void 0 : closestSvgNode.getAttribute('data-blade-component')) === 'icon') {
61
+ return;
62
+ }
63
+ // if it's a svg node but not a blade icon then skip it
64
+ if (closestSvgNode && !elm.hasAttribute('data-blade-component')) {
65
+ return;
66
+ }
67
+ totalNodeElements.push(elm);
68
+
69
+ // If element has data-blade-component add it
70
+ if (elm.hasAttribute('data-blade-component')) {
71
+ bladeNodeElements.push(elm);
72
+ }
73
+ });
74
+ var totalNodes = totalNodeElements.length;
75
+ var bladeNodes = bladeNodeElements.length;
76
+ var bladeCoverage = Number((bladeNodes / totalNodes * 100).toFixed(2));
77
+ // NaN guard
78
+ if (totalNodes === 0) {
79
+ bladeCoverage = 0;
80
+ }
81
+ return {
82
+ bladeCoverage: bladeCoverage,
83
+ totalNodes: totalNodes,
84
+ bladeNodes: bladeNodes
85
+ };
86
+ };
87
+ var assertBladeCoverage = /*#__PURE__*/function () {
88
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) {
89
+ var page, expect, _ref$threshold, threshold, _yield$page$evaluate, bladeCoverage;
90
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
91
+ while (1) switch (_context.prev = _context.next) {
92
+ case 0:
93
+ page = _ref.page, expect = _ref.expect, _ref$threshold = _ref.threshold, threshold = _ref$threshold === void 0 ? 70 : _ref$threshold;
94
+ _context.next = 3;
95
+ return page.evaluate(function (coverageFnStr) {
96
+ // eslint-disable-next-line @typescript-eslint/no-implied-eval, no-new-func
97
+ var calculateBladeCoverage = new Function("return (".concat(coverageFnStr, ")()"));
98
+ return calculateBladeCoverage();
99
+ }, getBladeCoverage.toString());
100
+ case 3:
101
+ _yield$page$evaluate = _context.sent;
102
+ bladeCoverage = _yield$page$evaluate.bladeCoverage;
103
+ expect(bladeCoverage).toBeGreaterThanOrEqual(threshold);
104
+ case 6:
105
+ case "end":
106
+ return _context.stop();
107
+ }
108
+ }, _callee);
109
+ }));
110
+ return function assertBladeCoverage(_x) {
111
+ return _ref2.apply(this, arguments);
112
+ };
113
+ }();
114
+ module.exports = {
115
+ getBladeCoverage: getBladeCoverage,
116
+ assertBladeCoverage: assertBladeCoverage
117
+ };
118
+ //# sourceMappingURL=bladeCoverage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bladeCoverage.js","sources":["../../../../../src/utils/bladeCoverage.ts"],"sourcesContent":["const getBladeCoverage = (): {\n bladeCoverage: number;\n totalNodes: number;\n bladeNodes: number;\n} => {\n /**\n * Checks if DOM node is hidden or not\n */\n const isElementHidden = (element: Element): boolean => {\n if (element.parentElement && isElementHidden(element.parentElement)) {\n return true;\n }\n if (!(element instanceof HTMLElement)) {\n return false;\n }\n if (element.hidden) {\n return true;\n }\n const style = getComputedStyle(element);\n return style.display === 'none' || style.visibility === 'hidden' || style.opacity === '0';\n };\n\n /**\n * Checks if DOM node is a media element or not\n */\n const isMediaElement = (element: Element): boolean => {\n const mediaTags = ['img', 'video', 'audio', 'source', 'picture'];\n return mediaTags.includes(element.tagName.toLowerCase());\n };\n\n /**\n * Checks if DOM element is empty or not\n */\n const isElementEmpty = (element: Element): boolean => {\n if (!element) return true;\n if (!element.childNodes.length) {\n return true;\n }\n return false;\n };\n\n const allDomElements = document.querySelectorAll('body *');\n\n const bladeNodeElements = [];\n const totalNodeElements = [];\n\n allDomElements.forEach((elm) => {\n if (isElementHidden(elm)) return;\n if (isElementEmpty(elm)) return;\n if (isMediaElement(elm)) return;\n\n // skip svg nodes but not blade icons\n const closestSvgNode = elm.closest('svg');\n // if this is a blade icon then add it\n if (elm.tagName.toLocaleLowerCase() === 'svg' && elm.hasAttribute('data-blade-component')) {\n bladeNodeElements.push(elm);\n totalNodeElements.push(elm);\n return;\n }\n // if it's a svg node inside a blade icon then skip it\n if (closestSvgNode?.getAttribute('data-blade-component') === 'icon') {\n return;\n }\n // if it's a svg node but not a blade icon then skip it\n if (closestSvgNode && !elm.hasAttribute('data-blade-component')) {\n return;\n }\n\n totalNodeElements.push(elm);\n\n // If element has data-blade-component add it\n if (elm.hasAttribute('data-blade-component')) {\n bladeNodeElements.push(elm);\n }\n });\n\n const totalNodes = totalNodeElements.length;\n const bladeNodes = bladeNodeElements.length;\n let bladeCoverage = Number(((bladeNodes / totalNodes) * 100).toFixed(2));\n // NaN guard\n if (totalNodes === 0) {\n bladeCoverage = 0;\n }\n\n return {\n bladeCoverage,\n totalNodes,\n bladeNodes,\n };\n};\n\nconst assertBladeCoverage = async ({\n page,\n expect,\n threshold = 70,\n}: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n page: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n expect: any;\n threshold: number;\n}): Promise<void> => {\n const { bladeCoverage } = await page.evaluate((coverageFnStr: string) => {\n // eslint-disable-next-line @typescript-eslint/no-implied-eval, no-new-func\n const calculateBladeCoverage = new Function(`return (${coverageFnStr})()`);\n return calculateBladeCoverage();\n }, getBladeCoverage.toString());\n\n expect(bladeCoverage).toBeGreaterThanOrEqual(threshold);\n};\n\nmodule.exports = { getBladeCoverage, assertBladeCoverage };\n"],"names":["_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","_typeof","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","undefined","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","_catch","thrown","delegateYield","getBladeCoverage","isElementHidden","element","parentElement","HTMLElement","hidden","style","getComputedStyle","display","visibility","opacity","isMediaElement","mediaTags","includes","tagName","toLowerCase","isElementEmpty","childNodes","allDomElements","document","querySelectorAll","bladeNodeElements","totalNodeElements","elm","closestSvgNode","closest","toLocaleLowerCase","hasAttribute","getAttribute","totalNodes","bladeNodes","bladeCoverage","Number","toFixed","assertBladeCoverage","_ref2","_asyncToGenerator","_callee","_ref","page","expect","_ref$threshold","threshold","_yield$page$evaluate","_callee$","_context","evaluate","coverageFnStr","calculateBladeCoverage","Function","concat","toString","toBeGreaterThanOrEqual","_x","apply","arguments","module"],"mappings":"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"}
@@ -18,9 +18,11 @@ import '../Button/index.js';
18
18
  import '../../utils/makeAccessible/index.js';
19
19
  import '../../utils/assignWithoutSideEffects/index.js';
20
20
  import '../BladeProvider/index.js';
21
+ import '../../utils/logger/index.js';
21
22
  import { jsxs, jsx } from 'react/jsx-runtime';
22
23
  import { makeSize } from '../../utils/makeSize/makeSize.js';
23
24
  import useTheme from '../BladeProvider/useTheme.js';
25
+ import { throwBladeError } from '../../utils/logger/logger.js';
24
26
  import { BaseBox } from '../Box/BaseBox/BaseBox.web.js';
25
27
  import { Text } from '../Typography/Text/Text.js';
26
28
  import { Dropdown } from '../Dropdown/Dropdown.js';
@@ -203,7 +205,16 @@ var _TablePagination = function _TablePagination(_ref3) {
203
205
  }
204
206
  }, [controlledCurrentPage, currentPage, handlePageChange, onPageChange]);
205
207
  if (currentPage > totalPages - 1) {
206
- handlePageChange(totalPages - 1);
208
+ if (!isUndefined(controlledCurrentPage)) {
209
+ if (false) {
210
+ throwBladeError({
211
+ moduleName: 'TablePagination',
212
+ message: "Value of 'currentPage' prop cannot be greater than the total pages"
213
+ });
214
+ }
215
+ } else {
216
+ handlePageChange(totalPages - 1);
217
+ }
207
218
  }
208
219
  var handlePageSizeChange = function handlePageSizeChange(pageSize) {
209
220
  onPageSizeChange === null || onPageSizeChange === void 0 ? void 0 : onPageSizeChange({
@@ -1 +1 @@
1
- {"version":3,"file":"TablePagination.web.js","sources":["../../../../../../src/components/Table/TablePagination.web.tsx"],"sourcesContent":["import React, { useCallback, useEffect } from 'react';\nimport styled from 'styled-components';\nimport { useTableContext } from './TableContext';\nimport { ComponentIds } from './componentIds';\nimport { tablePagination } from './tokens';\nimport type { TablePaginationProps } from './types';\nimport isUndefined from '~utils/lodashButBetter/isUndefined';\nimport getIn from '~utils/lodashButBetter/get';\nimport BaseBox from '~components/Box/BaseBox';\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronsLeftIcon,\n ChevronsRightIcon,\n MoreHorizontalIcon,\n} from '~components/Icons';\nimport { Dropdown, DropdownOverlay } from '~components/Dropdown';\nimport { SelectInput } from '~components/Input/DropdownInputTriggers';\nimport { ActionList, ActionListItem } from '~components/ActionList';\nimport { Text } from '~components/Typography';\nimport { makeSize } from '~utils';\nimport { Button } from '~components/Button';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { useTheme } from '~components/BladeProvider';\n\nconst pageSizeOptions: NonNullable<TablePaginationProps['defaultPageSize']>[] = [10, 25, 50];\n\nconst PageSelectionButton = styled.button<{ isSelected?: boolean }>(({ theme, isSelected }) => ({\n backgroundColor: isSelected\n ? getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorSelected)\n : 'transparent',\n border: 'none',\n cursor: 'pointer',\n height: makeSize(tablePagination.pageSelectionButton.height),\n width: makeSize(tablePagination.pageSelectionButton.width),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: getIn(theme.border.radius, tablePagination.pageSelectionButton.borderRadius),\n '&:hover': {\n backgroundColor: isSelected\n ? getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorSelectedHover)\n : getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorHover),\n },\n '&:focus-visible': {\n backgroundColor: isSelected\n ? getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorSelectedActive)\n : getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorActive),\n outline: 'none',\n '&:focus-visible': {\n outline: `1px solid ${theme.colors.surface.background.level1.lowContrast}`,\n boxShadow: `0px 0px 0px 4px ${getIn(\n theme.colors,\n tablePagination.pageSelectionButton.focusRingColor,\n )}`,\n },\n },\n '&:active': {\n backgroundColor: isSelected\n ? getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorSelectedActive)\n : getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorActive),\n },\n}));\nconst getPaginationButtons = ({\n currentSelection,\n totalPages,\n}: {\n currentSelection: number;\n totalPages: number;\n}): {\n middleItems: number[];\n showStartEllipsis: boolean;\n showEndEllipsis: boolean;\n firstItem: number;\n lastItem: number;\n} => {\n const halfRange = 2;\n const minMiddleItems = 5;\n\n // return if totalPages is less than minMiddleItems\n if (totalPages <= minMiddleItems) {\n return {\n middleItems: Array.from({ length: totalPages - 2 }, (_, index) => index + 2),\n showStartEllipsis: false,\n showEndEllipsis: false,\n firstItem: 1,\n lastItem: totalPages,\n };\n }\n\n let start = Math.max(1, currentSelection - halfRange);\n let end = Math.min(totalPages, start + 2 * halfRange);\n\n // Ensure at least minMiddleItems items in middleItems\n while (end - start + 1 < minMiddleItems && (start > 1 || end < totalPages)) {\n if (start > 1) {\n start--;\n }\n if (end < totalPages) {\n end++;\n }\n }\n\n let showStartEllipsis = false;\n let showEndEllipsis = false;\n\n const paginationButtons: number[] = [];\n for (let i = start; i <= end; i++) {\n paginationButtons.push(i);\n }\n\n // if paginationButtons contains 1, remove it\n if (paginationButtons.includes(1)) {\n paginationButtons.shift();\n // add an extra item at the end if length of total pages is greater than minMiddleItems+1\n if (totalPages > minMiddleItems + 1) paginationButtons.push(end + 1);\n }\n\n // if paginationButtons contains totalPages, remove it\n if (paginationButtons.includes(totalPages)) {\n paginationButtons.pop();\n // add an extra item at the beginning if length of total pages is greater than minMiddleItems+1\n if (totalPages > minMiddleItems + 1) paginationButtons.unshift(start - 1);\n }\n\n if (paginationButtons[0] > 2) {\n showStartEllipsis = true;\n }\n\n if (paginationButtons[paginationButtons.length - 1] + 1 < totalPages) {\n showEndEllipsis = true;\n }\n\n return {\n middleItems: paginationButtons,\n showStartEllipsis,\n showEndEllipsis,\n firstItem: 1,\n lastItem: totalPages,\n };\n};\n\nconst _TablePagination = ({\n currentPage: controlledCurrentPage,\n onPageChange,\n onPageSizeChange,\n defaultPageSize = tablePagination.defaultPageSize,\n showPageSizePicker = true,\n showPageNumberSelector = false,\n showLabel,\n label,\n}: TablePaginationProps): React.ReactElement => {\n const {\n setPaginationPage,\n currentPaginationState,\n totalItems,\n setPaginationRowSize,\n } = useTableContext();\n const [currentPageSize, setCurrentPageSize] = React.useState<number>(defaultPageSize);\n const [currentPage, setCurrentPage] = React.useState<number>(\n !isUndefined(controlledCurrentPage) ? controlledCurrentPage : currentPaginationState?.page ?? 0,\n );\n const [currentEllipseHover, setCurrentEllipseHover] = React.useState<'start' | 'end' | undefined>(\n undefined,\n );\n\n const defaultLabel = currentPaginationState\n ? `Showing ${currentPaginationState.page * currentPaginationState.size + 1}-${\n currentPaginationState.page * currentPaginationState.size + currentPaginationState.size\n } Items`\n : `Showing 1 to ${totalItems} Items`;\n\n const { platform } = useTheme();\n const onMobile = platform === 'onMobile';\n useEffect(() => {\n setPaginationRowSize(currentPageSize);\n }, []);\n\n useEffect(() => {\n if (currentPage && currentPaginationState?.page !== currentPage) {\n setPaginationPage(currentPage);\n }\n }, [currentPage, currentPaginationState?.page, setPaginationPage]);\n\n const totalPages = Math.ceil(totalItems / currentPageSize);\n\n const handlePageChange = useCallback(\n (page: number): void => {\n let pageToJumpTo = page;\n if (pageToJumpTo < 0) {\n pageToJumpTo = 0;\n } else if (pageToJumpTo > totalPages - 1) {\n pageToJumpTo = totalPages - 1;\n }\n\n onPageChange?.({ page: pageToJumpTo });\n\n if (!isUndefined(controlledCurrentPage)) {\n pageToJumpTo = controlledCurrentPage;\n }\n setPaginationPage(pageToJumpTo);\n setCurrentPage(pageToJumpTo);\n },\n [controlledCurrentPage, onPageChange, setPaginationPage, totalPages],\n );\n\n useEffect(() => {\n if (!isUndefined(controlledCurrentPage) && controlledCurrentPage !== currentPage) {\n handlePageChange(controlledCurrentPage);\n }\n }, [controlledCurrentPage, currentPage, handlePageChange, onPageChange]);\n\n if (currentPage > totalPages - 1) {\n handlePageChange(totalPages - 1);\n }\n\n const handlePageSizeChange = (pageSize: number): void => {\n onPageSizeChange?.({ pageSize });\n setPaginationRowSize(pageSize);\n setCurrentPageSize(pageSize);\n };\n\n const shouldDisableNextPage = (): boolean => {\n return currentPage >= totalPages - 1;\n };\n const paginationButtons = getPaginationButtons({\n currentSelection: currentPage + 1,\n totalPages,\n });\n\n return (\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n padding={tablePagination.padding}\n backgroundColor={tablePagination.backgroundColor}\n >\n {showLabel && !onMobile && (\n <BaseBox display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <Text size=\"medium\" weight=\"bold\">\n {label ?? defaultLabel}\n </Text>\n </BaseBox>\n )}\n <BaseBox\n display=\"flex\"\n flex={1}\n gap=\"spacing.2\"\n justifyContent=\"flex-end\"\n alignItems=\"center\"\n >\n {showPageSizePicker && !onMobile && (\n <BaseBox display=\"flex\" flexDirection=\"row\" alignItems=\"center\">\n <Dropdown selectionType=\"single\">\n <SelectInput\n accessibilityLabel=\"Select pages per row\"\n name=\"page-size\"\n label=\"\"\n labelPosition=\"inside-input\"\n placeholder=\"\"\n onChange={({ values }) => {\n handlePageSizeChange(Number(values[0]));\n }}\n defaultValue={currentPageSize.toString()}\n />\n <DropdownOverlay>\n <ActionList>\n {pageSizeOptions.map((item, index) => (\n <ActionListItem key={index} title={item.toString()} value={item.toString()} />\n ))}\n </ActionList>\n </DropdownOverlay>\n </Dropdown>\n <BaseBox aria-hidden paddingLeft=\"spacing.3\" paddingRight=\"spacing.3\">\n <Text>rows / page</Text>\n </BaseBox>\n </BaseBox>\n )}\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n gap=\"spacing.2\"\n flex={onMobile ? 1 : undefined}\n alignItems=\"center\"\n >\n <Button\n icon={ChevronLeftIcon}\n accessibilityLabel=\"Previous Page\"\n variant=\"tertiary\"\n onClick={() => {\n handlePageChange(currentPage - 1);\n }}\n isDisabled={currentPage <= 0}\n />\n {onMobile && (\n <BaseBox flex={1} alignItems=\"center\" justifyContent=\"center\">\n <Text textAlign=\"center\">{`Showing ${currentPage + 1} of ${totalPages} pages`}</Text>\n </BaseBox>\n )}\n {totalPages > 1 && showPageNumberSelector && !onMobile && (\n <BaseBox gap=\"spacing.1\" display=\"flex\" flexDirection=\"row\">\n <PageSelectionButton\n onClick={() => handlePageChange(paginationButtons.firstItem - 1)}\n isSelected={currentPage === paginationButtons.firstItem - 1}\n >\n <Text\n size=\"medium\"\n color={\n currentPage === paginationButtons.firstItem - 1\n ? tablePagination.pageSelectionButton.textColorSelected\n : tablePagination.pageSelectionButton.textColor\n }\n >\n {paginationButtons.firstItem}\n </Text>\n </PageSelectionButton>\n {paginationButtons.showStartEllipsis && (\n <PageSelectionButton\n onClick={() => handlePageChange(currentPage - 5)}\n onMouseOver={() => setCurrentEllipseHover('start')}\n onMouseLeave={() => setCurrentEllipseHover(undefined)}\n onFocus={() => setCurrentEllipseHover('start')}\n onBlur={() => setCurrentEllipseHover(undefined)}\n {...makeAccessible({ label: 'Go back 5 pages' })}\n >\n {currentEllipseHover === 'start' ? (\n <ChevronsLeftIcon size=\"medium\" />\n ) : (\n <MoreHorizontalIcon size=\"medium\" />\n )}\n </PageSelectionButton>\n )}\n {paginationButtons.middleItems.map((item) => (\n <PageSelectionButton\n key={item - 1}\n onClick={() => handlePageChange(item - 1)}\n isSelected={currentPage === item - 1}\n {...makeAccessible({ label: `Page ${item}` })}\n >\n <Text\n size=\"medium\"\n color={\n currentPage === item - 1\n ? tablePagination.pageSelectionButton.textColorSelected\n : tablePagination.pageSelectionButton.textColor\n }\n >\n {item}\n </Text>\n </PageSelectionButton>\n ))}\n {paginationButtons.showEndEllipsis && (\n <PageSelectionButton\n onClick={() => handlePageChange(currentPage + 5)}\n onMouseOver={() => setCurrentEllipseHover('end')}\n onMouseLeave={() => setCurrentEllipseHover(undefined)}\n onFocus={() => setCurrentEllipseHover('end')}\n onBlur={() => setCurrentEllipseHover(undefined)}\n {...makeAccessible({ label: 'Go forward 5 pages' })}\n >\n {currentEllipseHover === 'end' ? (\n <ChevronsRightIcon size=\"medium\" />\n ) : (\n <MoreHorizontalIcon size=\"medium\" />\n )}\n </PageSelectionButton>\n )}\n <PageSelectionButton\n onClick={() => handlePageChange(paginationButtons.lastItem - 1)}\n isSelected={currentPage === paginationButtons.lastItem - 1}\n >\n <Text\n size=\"medium\"\n color={\n currentPage === paginationButtons.lastItem - 1\n ? tablePagination.pageSelectionButton.textColorSelected\n : tablePagination.pageSelectionButton.textColor\n }\n >\n {paginationButtons.lastItem}\n </Text>\n </PageSelectionButton>\n </BaseBox>\n )}\n <Button\n variant=\"tertiary\"\n icon={ChevronRightIcon}\n accessibilityLabel=\"Next Page\"\n onClick={() => {\n handlePageChange(currentPage + 1);\n }}\n isDisabled={shouldDisableNextPage()}\n />\n </BaseBox>\n </BaseBox>\n </BaseBox>\n );\n};\n\nconst TablePagination = assignWithoutSideEffects(_TablePagination, {\n componentId: ComponentIds.TablePagination,\n});\n\nexport { TablePagination };\n"],"names":["pageSizeOptions","PageSelectionButton","styled","button","withConfig","displayName","componentId","_ref","theme","isSelected","backgroundColor","getIn","colors","tablePagination","pageSelectionButton","backgroundColorSelected","border","cursor","height","makeSize","width","display","alignItems","justifyContent","borderRadius","radius","backgroundColorSelectedHover","backgroundColorHover","backgroundColorSelectedActive","backgroundColorActive","outline","concat","surface","background","level1","lowContrast","boxShadow","focusRingColor","getPaginationButtons","_ref2","currentSelection","totalPages","halfRange","minMiddleItems","middleItems","Array","from","length","_","index","showStartEllipsis","showEndEllipsis","firstItem","lastItem","start","Math","max","end","min","paginationButtons","i","push","includes","shift","pop","unshift","_TablePagination","_ref3","_currentPaginationSta","controlledCurrentPage","currentPage","onPageChange","onPageSizeChange","_ref3$defaultPageSize","defaultPageSize","_ref3$showPageSizePic","showPageSizePicker","_ref3$showPageNumberS","showPageNumberSelector","showLabel","label","_useTableContext","useTableContext","setPaginationPage","currentPaginationState","totalItems","setPaginationRowSize","_React$useState","React","useState","_React$useState2","_slicedToArray","currentPageSize","setCurrentPageSize","_React$useState3","isUndefined","page","_React$useState4","setCurrentPage","_React$useState5","undefined","_React$useState6","currentEllipseHover","setCurrentEllipseHover","defaultLabel","size","_useTheme","useTheme","platform","onMobile","useEffect","ceil","handlePageChange","useCallback","pageToJumpTo","handlePageSizeChange","pageSize","shouldDisableNextPage","_jsxs","BaseBox","flexDirection","padding","children","_jsx","Text","weight","flex","gap","Dropdown","selectionType","SelectInput","accessibilityLabel","name","labelPosition","placeholder","onChange","_ref4","values","Number","defaultValue","toString","DropdownOverlay","ActionList","map","item","ActionListItem","title","value","paddingLeft","paddingRight","Button","icon","ChevronLeftIcon","variant","onClick","isDisabled","textAlign","color","textColorSelected","textColor","_objectSpread","onMouseOver","onMouseLeave","onFocus","onBlur","makeAccessible","ChevronsLeftIcon","MoreHorizontalIcon","ChevronsRightIcon","ChevronRightIcon","TablePagination","assignWithoutSideEffects","ComponentIds"],"mappings":"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"}
1
+ {"version":3,"file":"TablePagination.web.js","sources":["../../../../../../src/components/Table/TablePagination.web.tsx"],"sourcesContent":["import React, { useCallback, useEffect } from 'react';\nimport styled from 'styled-components';\nimport { useTableContext } from './TableContext';\nimport { ComponentIds } from './componentIds';\nimport { tablePagination } from './tokens';\nimport type { TablePaginationProps } from './types';\nimport isUndefined from '~utils/lodashButBetter/isUndefined';\nimport getIn from '~utils/lodashButBetter/get';\nimport BaseBox from '~components/Box/BaseBox';\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronsLeftIcon,\n ChevronsRightIcon,\n MoreHorizontalIcon,\n} from '~components/Icons';\nimport { Dropdown, DropdownOverlay } from '~components/Dropdown';\nimport { SelectInput } from '~components/Input/DropdownInputTriggers';\nimport { ActionList, ActionListItem } from '~components/ActionList';\nimport { Text } from '~components/Typography';\nimport { makeSize } from '~utils';\nimport { Button } from '~components/Button';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { useTheme } from '~components/BladeProvider';\nimport { throwBladeError } from '~utils/logger';\n\nconst pageSizeOptions: NonNullable<TablePaginationProps['defaultPageSize']>[] = [10, 25, 50];\n\nconst PageSelectionButton = styled.button<{ isSelected?: boolean }>(({ theme, isSelected }) => ({\n backgroundColor: isSelected\n ? getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorSelected)\n : 'transparent',\n border: 'none',\n cursor: 'pointer',\n height: makeSize(tablePagination.pageSelectionButton.height),\n width: makeSize(tablePagination.pageSelectionButton.width),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: getIn(theme.border.radius, tablePagination.pageSelectionButton.borderRadius),\n '&:hover': {\n backgroundColor: isSelected\n ? getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorSelectedHover)\n : getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorHover),\n },\n '&:focus-visible': {\n backgroundColor: isSelected\n ? getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorSelectedActive)\n : getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorActive),\n outline: 'none',\n '&:focus-visible': {\n outline: `1px solid ${theme.colors.surface.background.level1.lowContrast}`,\n boxShadow: `0px 0px 0px 4px ${getIn(\n theme.colors,\n tablePagination.pageSelectionButton.focusRingColor,\n )}`,\n },\n },\n '&:active': {\n backgroundColor: isSelected\n ? getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorSelectedActive)\n : getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorActive),\n },\n}));\nconst getPaginationButtons = ({\n currentSelection,\n totalPages,\n}: {\n currentSelection: number;\n totalPages: number;\n}): {\n middleItems: number[];\n showStartEllipsis: boolean;\n showEndEllipsis: boolean;\n firstItem: number;\n lastItem: number;\n} => {\n const halfRange = 2;\n const minMiddleItems = 5;\n\n // return if totalPages is less than minMiddleItems\n if (totalPages <= minMiddleItems) {\n return {\n middleItems: Array.from({ length: totalPages - 2 }, (_, index) => index + 2),\n showStartEllipsis: false,\n showEndEllipsis: false,\n firstItem: 1,\n lastItem: totalPages,\n };\n }\n\n let start = Math.max(1, currentSelection - halfRange);\n let end = Math.min(totalPages, start + 2 * halfRange);\n\n // Ensure at least minMiddleItems items in middleItems\n while (end - start + 1 < minMiddleItems && (start > 1 || end < totalPages)) {\n if (start > 1) {\n start--;\n }\n if (end < totalPages) {\n end++;\n }\n }\n\n let showStartEllipsis = false;\n let showEndEllipsis = false;\n\n const paginationButtons: number[] = [];\n for (let i = start; i <= end; i++) {\n paginationButtons.push(i);\n }\n\n // if paginationButtons contains 1, remove it\n if (paginationButtons.includes(1)) {\n paginationButtons.shift();\n // add an extra item at the end if length of total pages is greater than minMiddleItems+1\n if (totalPages > minMiddleItems + 1) paginationButtons.push(end + 1);\n }\n\n // if paginationButtons contains totalPages, remove it\n if (paginationButtons.includes(totalPages)) {\n paginationButtons.pop();\n // add an extra item at the beginning if length of total pages is greater than minMiddleItems+1\n if (totalPages > minMiddleItems + 1) paginationButtons.unshift(start - 1);\n }\n\n if (paginationButtons[0] > 2) {\n showStartEllipsis = true;\n }\n\n if (paginationButtons[paginationButtons.length - 1] + 1 < totalPages) {\n showEndEllipsis = true;\n }\n\n return {\n middleItems: paginationButtons,\n showStartEllipsis,\n showEndEllipsis,\n firstItem: 1,\n lastItem: totalPages,\n };\n};\n\nconst _TablePagination = ({\n currentPage: controlledCurrentPage,\n onPageChange,\n onPageSizeChange,\n defaultPageSize = tablePagination.defaultPageSize,\n showPageSizePicker = true,\n showPageNumberSelector = false,\n showLabel,\n label,\n}: TablePaginationProps): React.ReactElement => {\n const {\n setPaginationPage,\n currentPaginationState,\n totalItems,\n setPaginationRowSize,\n } = useTableContext();\n const [currentPageSize, setCurrentPageSize] = React.useState<number>(defaultPageSize);\n const [currentPage, setCurrentPage] = React.useState<number>(\n !isUndefined(controlledCurrentPage) ? controlledCurrentPage : currentPaginationState?.page ?? 0,\n );\n const [currentEllipseHover, setCurrentEllipseHover] = React.useState<'start' | 'end' | undefined>(\n undefined,\n );\n\n const defaultLabel = currentPaginationState\n ? `Showing ${currentPaginationState.page * currentPaginationState.size + 1}-${\n currentPaginationState.page * currentPaginationState.size + currentPaginationState.size\n } Items`\n : `Showing 1 to ${totalItems} Items`;\n\n const { platform } = useTheme();\n const onMobile = platform === 'onMobile';\n useEffect(() => {\n setPaginationRowSize(currentPageSize);\n }, []);\n\n useEffect(() => {\n if (currentPage && currentPaginationState?.page !== currentPage) {\n setPaginationPage(currentPage);\n }\n }, [currentPage, currentPaginationState?.page, setPaginationPage]);\n\n const totalPages = Math.ceil(totalItems / currentPageSize);\n\n const handlePageChange = useCallback(\n (page: number): void => {\n let pageToJumpTo = page;\n if (pageToJumpTo < 0) {\n pageToJumpTo = 0;\n } else if (pageToJumpTo > totalPages - 1) {\n pageToJumpTo = totalPages - 1;\n }\n\n onPageChange?.({ page: pageToJumpTo });\n\n if (!isUndefined(controlledCurrentPage)) {\n pageToJumpTo = controlledCurrentPage;\n }\n setPaginationPage(pageToJumpTo);\n setCurrentPage(pageToJumpTo);\n },\n [controlledCurrentPage, onPageChange, setPaginationPage, totalPages],\n );\n\n useEffect(() => {\n if (!isUndefined(controlledCurrentPage) && controlledCurrentPage !== currentPage) {\n handlePageChange(controlledCurrentPage);\n }\n }, [controlledCurrentPage, currentPage, handlePageChange, onPageChange]);\n\n if (currentPage > totalPages - 1) {\n if (!isUndefined(controlledCurrentPage)) {\n if (__DEV__) {\n throwBladeError({\n moduleName: 'TablePagination',\n message: `Value of 'currentPage' prop cannot be greater than the total pages`,\n });\n }\n } else {\n handlePageChange(totalPages - 1);\n }\n }\n\n const handlePageSizeChange = (pageSize: number): void => {\n onPageSizeChange?.({ pageSize });\n setPaginationRowSize(pageSize);\n setCurrentPageSize(pageSize);\n };\n\n const shouldDisableNextPage = (): boolean => {\n return currentPage >= totalPages - 1;\n };\n const paginationButtons = getPaginationButtons({\n currentSelection: currentPage + 1,\n totalPages,\n });\n\n return (\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n padding={tablePagination.padding}\n backgroundColor={tablePagination.backgroundColor}\n >\n {showLabel && !onMobile && (\n <BaseBox display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <Text size=\"medium\" weight=\"bold\">\n {label ?? defaultLabel}\n </Text>\n </BaseBox>\n )}\n <BaseBox\n display=\"flex\"\n flex={1}\n gap=\"spacing.2\"\n justifyContent=\"flex-end\"\n alignItems=\"center\"\n >\n {showPageSizePicker && !onMobile && (\n <BaseBox display=\"flex\" flexDirection=\"row\" alignItems=\"center\">\n <Dropdown selectionType=\"single\">\n <SelectInput\n accessibilityLabel=\"Select pages per row\"\n name=\"page-size\"\n label=\"\"\n labelPosition=\"inside-input\"\n placeholder=\"\"\n onChange={({ values }) => {\n handlePageSizeChange(Number(values[0]));\n }}\n defaultValue={currentPageSize.toString()}\n />\n <DropdownOverlay>\n <ActionList>\n {pageSizeOptions.map((item, index) => (\n <ActionListItem key={index} title={item.toString()} value={item.toString()} />\n ))}\n </ActionList>\n </DropdownOverlay>\n </Dropdown>\n <BaseBox aria-hidden paddingLeft=\"spacing.3\" paddingRight=\"spacing.3\">\n <Text>rows / page</Text>\n </BaseBox>\n </BaseBox>\n )}\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n gap=\"spacing.2\"\n flex={onMobile ? 1 : undefined}\n alignItems=\"center\"\n >\n <Button\n icon={ChevronLeftIcon}\n accessibilityLabel=\"Previous Page\"\n variant=\"tertiary\"\n onClick={() => {\n handlePageChange(currentPage - 1);\n }}\n isDisabled={currentPage <= 0}\n />\n {onMobile && (\n <BaseBox flex={1} alignItems=\"center\" justifyContent=\"center\">\n <Text textAlign=\"center\">{`Showing ${currentPage + 1} of ${totalPages} pages`}</Text>\n </BaseBox>\n )}\n {totalPages > 1 && showPageNumberSelector && !onMobile && (\n <BaseBox gap=\"spacing.1\" display=\"flex\" flexDirection=\"row\">\n <PageSelectionButton\n onClick={() => handlePageChange(paginationButtons.firstItem - 1)}\n isSelected={currentPage === paginationButtons.firstItem - 1}\n >\n <Text\n size=\"medium\"\n color={\n currentPage === paginationButtons.firstItem - 1\n ? tablePagination.pageSelectionButton.textColorSelected\n : tablePagination.pageSelectionButton.textColor\n }\n >\n {paginationButtons.firstItem}\n </Text>\n </PageSelectionButton>\n {paginationButtons.showStartEllipsis && (\n <PageSelectionButton\n onClick={() => handlePageChange(currentPage - 5)}\n onMouseOver={() => setCurrentEllipseHover('start')}\n onMouseLeave={() => setCurrentEllipseHover(undefined)}\n onFocus={() => setCurrentEllipseHover('start')}\n onBlur={() => setCurrentEllipseHover(undefined)}\n {...makeAccessible({ label: 'Go back 5 pages' })}\n >\n {currentEllipseHover === 'start' ? (\n <ChevronsLeftIcon size=\"medium\" />\n ) : (\n <MoreHorizontalIcon size=\"medium\" />\n )}\n </PageSelectionButton>\n )}\n {paginationButtons.middleItems.map((item) => (\n <PageSelectionButton\n key={item - 1}\n onClick={() => handlePageChange(item - 1)}\n isSelected={currentPage === item - 1}\n {...makeAccessible({ label: `Page ${item}` })}\n >\n <Text\n size=\"medium\"\n color={\n currentPage === item - 1\n ? tablePagination.pageSelectionButton.textColorSelected\n : tablePagination.pageSelectionButton.textColor\n }\n >\n {item}\n </Text>\n </PageSelectionButton>\n ))}\n {paginationButtons.showEndEllipsis && (\n <PageSelectionButton\n onClick={() => handlePageChange(currentPage + 5)}\n onMouseOver={() => setCurrentEllipseHover('end')}\n onMouseLeave={() => setCurrentEllipseHover(undefined)}\n onFocus={() => setCurrentEllipseHover('end')}\n onBlur={() => setCurrentEllipseHover(undefined)}\n {...makeAccessible({ label: 'Go forward 5 pages' })}\n >\n {currentEllipseHover === 'end' ? (\n <ChevronsRightIcon size=\"medium\" />\n ) : (\n <MoreHorizontalIcon size=\"medium\" />\n )}\n </PageSelectionButton>\n )}\n <PageSelectionButton\n onClick={() => handlePageChange(paginationButtons.lastItem - 1)}\n isSelected={currentPage === paginationButtons.lastItem - 1}\n >\n <Text\n size=\"medium\"\n color={\n currentPage === paginationButtons.lastItem - 1\n ? tablePagination.pageSelectionButton.textColorSelected\n : tablePagination.pageSelectionButton.textColor\n }\n >\n {paginationButtons.lastItem}\n </Text>\n </PageSelectionButton>\n </BaseBox>\n )}\n <Button\n variant=\"tertiary\"\n icon={ChevronRightIcon}\n accessibilityLabel=\"Next Page\"\n onClick={() => {\n handlePageChange(currentPage + 1);\n }}\n isDisabled={shouldDisableNextPage()}\n />\n </BaseBox>\n </BaseBox>\n </BaseBox>\n );\n};\n\nconst TablePagination = assignWithoutSideEffects(_TablePagination, {\n componentId: ComponentIds.TablePagination,\n});\n\nexport { TablePagination };\n"],"names":["pageSizeOptions","PageSelectionButton","styled","button","withConfig","displayName","componentId","_ref","theme","isSelected","backgroundColor","getIn","colors","tablePagination","pageSelectionButton","backgroundColorSelected","border","cursor","height","makeSize","width","display","alignItems","justifyContent","borderRadius","radius","backgroundColorSelectedHover","backgroundColorHover","backgroundColorSelectedActive","backgroundColorActive","outline","concat","surface","background","level1","lowContrast","boxShadow","focusRingColor","getPaginationButtons","_ref2","currentSelection","totalPages","halfRange","minMiddleItems","middleItems","Array","from","length","_","index","showStartEllipsis","showEndEllipsis","firstItem","lastItem","start","Math","max","end","min","paginationButtons","i","push","includes","shift","pop","unshift","_TablePagination","_ref3","_currentPaginationSta","controlledCurrentPage","currentPage","onPageChange","onPageSizeChange","_ref3$defaultPageSize","defaultPageSize","_ref3$showPageSizePic","showPageSizePicker","_ref3$showPageNumberS","showPageNumberSelector","showLabel","label","_useTableContext","useTableContext","setPaginationPage","currentPaginationState","totalItems","setPaginationRowSize","_React$useState","React","useState","_React$useState2","_slicedToArray","currentPageSize","setCurrentPageSize","_React$useState3","isUndefined","page","_React$useState4","setCurrentPage","_React$useState5","undefined","_React$useState6","currentEllipseHover","setCurrentEllipseHover","defaultLabel","size","_useTheme","useTheme","platform","onMobile","useEffect","ceil","handlePageChange","useCallback","pageToJumpTo","throwBladeError","moduleName","message","handlePageSizeChange","pageSize","shouldDisableNextPage","_jsxs","BaseBox","flexDirection","padding","children","_jsx","Text","weight","flex","gap","Dropdown","selectionType","SelectInput","accessibilityLabel","name","labelPosition","placeholder","onChange","_ref4","values","Number","defaultValue","toString","DropdownOverlay","ActionList","map","item","ActionListItem","title","value","paddingLeft","paddingRight","Button","icon","ChevronLeftIcon","variant","onClick","isDisabled","textAlign","color","textColorSelected","textColor","_objectSpread","onMouseOver","onMouseLeave","onFocus","onBlur","makeAccessible","ChevronsLeftIcon","MoreHorizontalIcon","ChevronsRightIcon","ChevronRightIcon","TablePagination","assignWithoutSideEffects","ComponentIds"],"mappings":"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"}
@@ -38,6 +38,7 @@ var TooltipContent = /*#__PURE__*/React__default.forwardRef(function (_ref, ref)
38
38
  weight: "regular",
39
39
  contrast: "high",
40
40
  color: "feedback.text.neutral.highContrast",
41
+ wordBreak: "break-word",
41
42
  children: children
42
43
  }), arrow]
43
44
  });
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipContent.js","sources":["../../../../../../src/components/Tooltip/TooltipContent.tsx"],"sourcesContent":["import React from 'react';\nimport { TooltipContentWrapper } from './TooltipContentWrapper';\nimport type { TooltipContentProps } from './types';\nimport { Text } from '~components/Typography';\nimport { isReactNative, makeSize } from '~utils';\nimport { size } from '~tokens/global';\n\nconst TooltipContent = React.forwardRef<HTMLDivElement, TooltipContentProps>(\n ({ children, title, arrow, side, style, isVisible }, ref) => {\n return (\n <TooltipContentWrapper\n position={isReactNative() ? 'absolute' : 'relative'}\n paddingTop=\"spacing.3\"\n paddingBottom=\"spacing.3\"\n paddingLeft=\"spacing.4\"\n paddingRight=\"spacing.4\"\n maxWidth={makeSize(size[200])}\n ref={ref as never}\n styles={style}\n side={side}\n isVisible={isVisible}\n >\n {title ? (\n <Text contrast=\"high\" weight=\"bold\" size=\"medium\">\n {title}\n </Text>\n ) : null}\n <Text\n variant=\"body\"\n size=\"small\"\n weight=\"regular\"\n contrast=\"high\"\n color=\"feedback.text.neutral.highContrast\"\n >\n {children}\n </Text>\n {arrow}\n </TooltipContentWrapper>\n );\n },\n);\n\nexport { TooltipContent };\n"],"names":["TooltipContent","React","forwardRef","_ref","ref","children","title","arrow","side","style","isVisible","_jsxs","TooltipContentWrapper","position","isReactNative","paddingTop","paddingBottom","paddingLeft","paddingRight","maxWidth","makeSize","size","styles","_jsx","Text","contrast","weight","variant","color"],"mappings":";;;;;;;;;;;AAOMA,IAAAA,cAAc,gBAAGC,cAAK,CAACC,UAAU,CACrC,UAAAC,IAAA,EAAqDC,GAAG,EAAK;AAAA,EAAA,IAA1DC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAEC,KAAK,GAAAH,IAAA,CAALG,KAAK;IAAEC,KAAK,GAAAJ,IAAA,CAALI,KAAK;IAAEC,IAAI,GAAAL,IAAA,CAAJK,IAAI;IAAEC,KAAK,GAAAN,IAAA,CAALM,KAAK;IAAEC,SAAS,GAAAP,IAAA,CAATO,SAAS,CAAA;EAC/C,oBACEC,IAAA,CAACC,qBAAqB,EAAA;AACpBC,IAAAA,QAAQ,EAAEC,aAAa,EAAE,GAAG,UAAU,GAAG,UAAW;AACpDC,IAAAA,UAAU,EAAC,WAAW;AACtBC,IAAAA,aAAa,EAAC,WAAW;AACzBC,IAAAA,WAAW,EAAC,WAAW;AACvBC,IAAAA,YAAY,EAAC,WAAW;AACxBC,IAAAA,QAAQ,EAAEC,QAAQ,CAACC,IAAI,CAAC,GAAG,CAAC,CAAE;AAC9BjB,IAAAA,GAAG,EAAEA,GAAa;AAClBkB,IAAAA,MAAM,EAAEb,KAAM;AACdD,IAAAA,IAAI,EAAEA,IAAK;AACXE,IAAAA,SAAS,EAAEA,SAAU;AAAAL,IAAAA,QAAA,EAEpBC,CAAAA,KAAK,gBACJiB,GAAA,CAACC,IAAI,EAAA;AAACC,MAAAA,QAAQ,EAAC,MAAM;AAACC,MAAAA,MAAM,EAAC,MAAM;AAACL,MAAAA,IAAI,EAAC,QAAQ;AAAAhB,MAAAA,QAAA,EAC9CC,KAAAA;AAAK,KACF,CAAC,GACL,IAAI,eACRiB,GAAA,CAACC,IAAI,EAAA;AACHG,MAAAA,OAAO,EAAC,MAAM;AACdN,MAAAA,IAAI,EAAC,OAAO;AACZK,MAAAA,MAAM,EAAC,SAAS;AAChBD,MAAAA,QAAQ,EAAC,MAAM;AACfG,MAAAA,KAAK,EAAC,oCAAoC;AAAAvB,MAAAA,QAAA,EAEzCA,QAAAA;KACG,CAAC,EACNE,KAAK,CAAA;AAAA,GACe,CAAC,CAAA;AAE5B,CACF;;;;"}
1
+ {"version":3,"file":"TooltipContent.js","sources":["../../../../../../src/components/Tooltip/TooltipContent.tsx"],"sourcesContent":["import React from 'react';\nimport { TooltipContentWrapper } from './TooltipContentWrapper';\nimport type { TooltipContentProps } from './types';\nimport { Text } from '~components/Typography';\nimport { isReactNative, makeSize } from '~utils';\nimport { size } from '~tokens/global';\n\nconst TooltipContent = React.forwardRef<HTMLDivElement, TooltipContentProps>(\n ({ children, title, arrow, side, style, isVisible }, ref) => {\n return (\n <TooltipContentWrapper\n position={isReactNative() ? 'absolute' : 'relative'}\n paddingTop=\"spacing.3\"\n paddingBottom=\"spacing.3\"\n paddingLeft=\"spacing.4\"\n paddingRight=\"spacing.4\"\n maxWidth={makeSize(size[200])}\n ref={ref as never}\n styles={style}\n side={side}\n isVisible={isVisible}\n >\n {title ? (\n <Text contrast=\"high\" weight=\"bold\" size=\"medium\">\n {title}\n </Text>\n ) : null}\n <Text\n variant=\"body\"\n size=\"small\"\n weight=\"regular\"\n contrast=\"high\"\n color=\"feedback.text.neutral.highContrast\"\n wordBreak=\"break-word\"\n >\n {children}\n </Text>\n {arrow}\n </TooltipContentWrapper>\n );\n },\n);\n\nexport { TooltipContent };\n"],"names":["TooltipContent","React","forwardRef","_ref","ref","children","title","arrow","side","style","isVisible","_jsxs","TooltipContentWrapper","position","isReactNative","paddingTop","paddingBottom","paddingLeft","paddingRight","maxWidth","makeSize","size","styles","_jsx","Text","contrast","weight","variant","color","wordBreak"],"mappings":";;;;;;;;;;;AAOMA,IAAAA,cAAc,gBAAGC,cAAK,CAACC,UAAU,CACrC,UAAAC,IAAA,EAAqDC,GAAG,EAAK;AAAA,EAAA,IAA1DC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAEC,KAAK,GAAAH,IAAA,CAALG,KAAK;IAAEC,KAAK,GAAAJ,IAAA,CAALI,KAAK;IAAEC,IAAI,GAAAL,IAAA,CAAJK,IAAI;IAAEC,KAAK,GAAAN,IAAA,CAALM,KAAK;IAAEC,SAAS,GAAAP,IAAA,CAATO,SAAS,CAAA;EAC/C,oBACEC,IAAA,CAACC,qBAAqB,EAAA;AACpBC,IAAAA,QAAQ,EAAEC,aAAa,EAAE,GAAG,UAAU,GAAG,UAAW;AACpDC,IAAAA,UAAU,EAAC,WAAW;AACtBC,IAAAA,aAAa,EAAC,WAAW;AACzBC,IAAAA,WAAW,EAAC,WAAW;AACvBC,IAAAA,YAAY,EAAC,WAAW;AACxBC,IAAAA,QAAQ,EAAEC,QAAQ,CAACC,IAAI,CAAC,GAAG,CAAC,CAAE;AAC9BjB,IAAAA,GAAG,EAAEA,GAAa;AAClBkB,IAAAA,MAAM,EAAEb,KAAM;AACdD,IAAAA,IAAI,EAAEA,IAAK;AACXE,IAAAA,SAAS,EAAEA,SAAU;AAAAL,IAAAA,QAAA,EAEpBC,CAAAA,KAAK,gBACJiB,GAAA,CAACC,IAAI,EAAA;AAACC,MAAAA,QAAQ,EAAC,MAAM;AAACC,MAAAA,MAAM,EAAC,MAAM;AAACL,MAAAA,IAAI,EAAC,QAAQ;AAAAhB,MAAAA,QAAA,EAC9CC,KAAAA;AAAK,KACF,CAAC,GACL,IAAI,eACRiB,GAAA,CAACC,IAAI,EAAA;AACHG,MAAAA,OAAO,EAAC,MAAM;AACdN,MAAAA,IAAI,EAAC,OAAO;AACZK,MAAAA,MAAM,EAAC,SAAS;AAChBD,MAAAA,QAAQ,EAAC,MAAM;AACfG,MAAAA,KAAK,EAAC,oCAAoC;AAC1CC,MAAAA,SAAS,EAAC,YAAY;AAAAxB,MAAAA,QAAA,EAErBA,QAAAA;KACG,CAAC,EACNE,KAAK,CAAA;AAAA,GACe,CAAC,CAAA;AAE5B,CACF;;;;"}
@@ -0,0 +1,118 @@
1
+ 'use strict';
2
+
3
+ var _typeof = require('@babel/runtime/helpers/typeof');
4
+ var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
5
+
6
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
7
+ var getBladeCoverage = function getBladeCoverage() {
8
+ /**
9
+ * Checks if DOM node is hidden or not
10
+ */
11
+ var isElementHidden = function isElementHidden(element) {
12
+ if (element.parentElement && isElementHidden(element.parentElement)) {
13
+ return true;
14
+ }
15
+ if (!(element instanceof HTMLElement)) {
16
+ return false;
17
+ }
18
+ if (element.hidden) {
19
+ return true;
20
+ }
21
+ var style = getComputedStyle(element);
22
+ return style.display === 'none' || style.visibility === 'hidden' || style.opacity === '0';
23
+ };
24
+
25
+ /**
26
+ * Checks if DOM node is a media element or not
27
+ */
28
+ var isMediaElement = function isMediaElement(element) {
29
+ var mediaTags = ['img', 'video', 'audio', 'source', 'picture'];
30
+ return mediaTags.includes(element.tagName.toLowerCase());
31
+ };
32
+
33
+ /**
34
+ * Checks if DOM element is empty or not
35
+ */
36
+ var isElementEmpty = function isElementEmpty(element) {
37
+ if (!element) return true;
38
+ if (!element.childNodes.length) {
39
+ return true;
40
+ }
41
+ return false;
42
+ };
43
+ var allDomElements = document.querySelectorAll('body *');
44
+ var bladeNodeElements = [];
45
+ var totalNodeElements = [];
46
+ allDomElements.forEach(function (elm) {
47
+ if (isElementHidden(elm)) return;
48
+ if (isElementEmpty(elm)) return;
49
+ if (isMediaElement(elm)) return;
50
+
51
+ // skip svg nodes but not blade icons
52
+ var closestSvgNode = elm.closest('svg');
53
+ // if this is a blade icon then add it
54
+ if (elm.tagName.toLocaleLowerCase() === 'svg' && elm.hasAttribute('data-blade-component')) {
55
+ bladeNodeElements.push(elm);
56
+ totalNodeElements.push(elm);
57
+ return;
58
+ }
59
+ // if it's a svg node inside a blade icon then skip it
60
+ if ((closestSvgNode === null || closestSvgNode === void 0 ? void 0 : closestSvgNode.getAttribute('data-blade-component')) === 'icon') {
61
+ return;
62
+ }
63
+ // if it's a svg node but not a blade icon then skip it
64
+ if (closestSvgNode && !elm.hasAttribute('data-blade-component')) {
65
+ return;
66
+ }
67
+ totalNodeElements.push(elm);
68
+
69
+ // If element has data-blade-component add it
70
+ if (elm.hasAttribute('data-blade-component')) {
71
+ bladeNodeElements.push(elm);
72
+ }
73
+ });
74
+ var totalNodes = totalNodeElements.length;
75
+ var bladeNodes = bladeNodeElements.length;
76
+ var bladeCoverage = Number((bladeNodes / totalNodes * 100).toFixed(2));
77
+ // NaN guard
78
+ if (totalNodes === 0) {
79
+ bladeCoverage = 0;
80
+ }
81
+ return {
82
+ bladeCoverage: bladeCoverage,
83
+ totalNodes: totalNodes,
84
+ bladeNodes: bladeNodes
85
+ };
86
+ };
87
+ var assertBladeCoverage = /*#__PURE__*/function () {
88
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) {
89
+ var page, expect, _ref$threshold, threshold, _yield$page$evaluate, bladeCoverage;
90
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
91
+ while (1) switch (_context.prev = _context.next) {
92
+ case 0:
93
+ page = _ref.page, expect = _ref.expect, _ref$threshold = _ref.threshold, threshold = _ref$threshold === void 0 ? 70 : _ref$threshold;
94
+ _context.next = 3;
95
+ return page.evaluate(function (coverageFnStr) {
96
+ // eslint-disable-next-line @typescript-eslint/no-implied-eval, no-new-func
97
+ var calculateBladeCoverage = new Function("return (".concat(coverageFnStr, ")()"));
98
+ return calculateBladeCoverage();
99
+ }, getBladeCoverage.toString());
100
+ case 3:
101
+ _yield$page$evaluate = _context.sent;
102
+ bladeCoverage = _yield$page$evaluate.bladeCoverage;
103
+ expect(bladeCoverage).toBeGreaterThanOrEqual(threshold);
104
+ case 6:
105
+ case "end":
106
+ return _context.stop();
107
+ }
108
+ }, _callee);
109
+ }));
110
+ return function assertBladeCoverage(_x) {
111
+ return _ref2.apply(this, arguments);
112
+ };
113
+ }();
114
+ module.exports = {
115
+ getBladeCoverage: getBladeCoverage,
116
+ assertBladeCoverage: assertBladeCoverage
117
+ };
118
+ //# sourceMappingURL=bladeCoverage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bladeCoverage.js","sources":["../../../../../src/utils/bladeCoverage.ts"],"sourcesContent":["const getBladeCoverage = (): {\n bladeCoverage: number;\n totalNodes: number;\n bladeNodes: number;\n} => {\n /**\n * Checks if DOM node is hidden or not\n */\n const isElementHidden = (element: Element): boolean => {\n if (element.parentElement && isElementHidden(element.parentElement)) {\n return true;\n }\n if (!(element instanceof HTMLElement)) {\n return false;\n }\n if (element.hidden) {\n return true;\n }\n const style = getComputedStyle(element);\n return style.display === 'none' || style.visibility === 'hidden' || style.opacity === '0';\n };\n\n /**\n * Checks if DOM node is a media element or not\n */\n const isMediaElement = (element: Element): boolean => {\n const mediaTags = ['img', 'video', 'audio', 'source', 'picture'];\n return mediaTags.includes(element.tagName.toLowerCase());\n };\n\n /**\n * Checks if DOM element is empty or not\n */\n const isElementEmpty = (element: Element): boolean => {\n if (!element) return true;\n if (!element.childNodes.length) {\n return true;\n }\n return false;\n };\n\n const allDomElements = document.querySelectorAll('body *');\n\n const bladeNodeElements = [];\n const totalNodeElements = [];\n\n allDomElements.forEach((elm) => {\n if (isElementHidden(elm)) return;\n if (isElementEmpty(elm)) return;\n if (isMediaElement(elm)) return;\n\n // skip svg nodes but not blade icons\n const closestSvgNode = elm.closest('svg');\n // if this is a blade icon then add it\n if (elm.tagName.toLocaleLowerCase() === 'svg' && elm.hasAttribute('data-blade-component')) {\n bladeNodeElements.push(elm);\n totalNodeElements.push(elm);\n return;\n }\n // if it's a svg node inside a blade icon then skip it\n if (closestSvgNode?.getAttribute('data-blade-component') === 'icon') {\n return;\n }\n // if it's a svg node but not a blade icon then skip it\n if (closestSvgNode && !elm.hasAttribute('data-blade-component')) {\n return;\n }\n\n totalNodeElements.push(elm);\n\n // If element has data-blade-component add it\n if (elm.hasAttribute('data-blade-component')) {\n bladeNodeElements.push(elm);\n }\n });\n\n const totalNodes = totalNodeElements.length;\n const bladeNodes = bladeNodeElements.length;\n let bladeCoverage = Number(((bladeNodes / totalNodes) * 100).toFixed(2));\n // NaN guard\n if (totalNodes === 0) {\n bladeCoverage = 0;\n }\n\n return {\n bladeCoverage,\n totalNodes,\n bladeNodes,\n };\n};\n\nconst assertBladeCoverage = async ({\n page,\n expect,\n threshold = 70,\n}: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n page: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n expect: any;\n threshold: number;\n}): Promise<void> => {\n const { bladeCoverage } = await page.evaluate((coverageFnStr: string) => {\n // eslint-disable-next-line @typescript-eslint/no-implied-eval, no-new-func\n const calculateBladeCoverage = new Function(`return (${coverageFnStr})()`);\n return calculateBladeCoverage();\n }, getBladeCoverage.toString());\n\n expect(bladeCoverage).toBeGreaterThanOrEqual(threshold);\n};\n\nmodule.exports = { getBladeCoverage, assertBladeCoverage };\n"],"names":["_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","_typeof","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","undefined","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","_catch","thrown","delegateYield","getBladeCoverage","isElementHidden","element","parentElement","HTMLElement","hidden","style","getComputedStyle","display","visibility","opacity","isMediaElement","mediaTags","includes","tagName","toLowerCase","isElementEmpty","childNodes","allDomElements","document","querySelectorAll","bladeNodeElements","totalNodeElements","elm","closestSvgNode","closest","toLocaleLowerCase","hasAttribute","getAttribute","totalNodes","bladeNodes","bladeCoverage","Number","toFixed","assertBladeCoverage","_ref2","_asyncToGenerator","_callee","_ref","page","expect","_ref$threshold","threshold","_yield$page$evaluate","_callee$","_context","evaluate","coverageFnStr","calculateBladeCoverage","Function","concat","toString","toBeGreaterThanOrEqual","_x","apply","arguments","module"],"mappings":"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"}
@@ -6500,9 +6500,9 @@ type TableToolbarActionsProps = {
6500
6500
 
6501
6501
  declare const Table: <Item>(props: TableProps<Item>) => React__default.ReactElement;
6502
6502
 
6503
- declare const TableHeader: (props: unknown) => React__default.ReactElement;
6504
- declare const TableHeaderRow: (props: unknown) => React__default.ReactElement;
6505
- declare const TableHeaderCell: (props: unknown) => React__default.ReactElement;
6503
+ declare const TableHeader: (props: TableHeaderProps) => React__default.ReactElement;
6504
+ declare const TableHeaderRow: (props: TableHeaderRowProps) => React__default.ReactElement;
6505
+ declare const TableHeaderCell: (props: TableHeaderCellProps) => React__default.ReactElement;
6506
6506
 
6507
6507
  declare const TableBody: (props: TableBodyProps) => React__default.ReactElement;
6508
6508
  declare const TableRow: (props: TableRowProps<unknown>) => React__default.ReactElement;
@@ -0,0 +1,16 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ export function getBladeCoverage(): {
3
+ bladeCoverage: number;
4
+ totalNodes: number;
5
+ bladeNodes: number;
6
+ };
7
+
8
+ export function assertBladeCoverage({
9
+ page,
10
+ expect,
11
+ threshold,
12
+ }: {
13
+ page: any;
14
+ expect: any;
15
+ threshold?: number;
16
+ }): Promise<void>;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@razorpay/blade",
3
3
  "description": "The Design System that powers Razorpay",
4
- "version": "10.22.0",
4
+ "version": "10.23.1",
5
5
  "license": "MIT",
6
6
  "engines": {
7
7
  "node": ">=18.12.1"
@@ -24,7 +24,8 @@
24
24
  "tokens.native.js",
25
25
  "utils.d.ts",
26
26
  "utils.js",
27
- "utils.native.js"
27
+ "utils.native.js",
28
+ "coverageUtils.d.ts"
28
29
  ],
29
30
  "keywords": [
30
31
  "design system",
@@ -69,6 +70,12 @@
69
70
  "production": "./build/lib/web/production/utils/index.js",
70
71
  "default": "./build/lib/web/production/utils/index.js"
71
72
  }
73
+ },
74
+ "./coverageUtils": {
75
+ "default": {
76
+ "types": "./coverageUtils.d.ts",
77
+ "default": "./build/lib/web/production/utils/bladeCoverage.js"
78
+ }
72
79
  }
73
80
  },
74
81
  "scripts": {
@@ -98,8 +105,8 @@
98
105
  "react-native:storybook:ios": "yarn react-native:get-stories && cross-env FRAMEWORK=REACT_NATIVE react-native run-ios",
99
106
  "react-native:storybook:start": "yarn react-native:get-stories && cross-env NODE_OPTIONS=--openssl-legacy-provider FRAMEWORK=REACT_NATIVE react-native start --reset-cache",
100
107
  "react": "yarn run react:storybook",
101
- "react:storybook": "cross-env NODE_OPTIONS=--openssl-legacy-provider FRAMEWORK=REACT start-storybook -c ./.storybook/react -p 9009",
102
- "react:storybook:build": "cross-env NODE_OPTIONS=--openssl-legacy-provider FRAMEWORK=REACT build-storybook -c ./.storybook/react -o storybook-site",
108
+ "react:storybook": "cross-env NODE_OPTIONS=--openssl-legacy-provider FRAMEWORK=REACT storybook dev -c ./.storybook/react -p 9009",
109
+ "react:storybook:build": "cross-env NODE_OPTIONS=--openssl-legacy-provider FRAMEWORK=REACT storybook build -c ./.storybook/react -o storybook-site",
103
110
  "test:react": "cross-env FRAMEWORK=REACT jest -c ./jest.web.config.js --shard=$SHARD --forceExit",
104
111
  "test:react-native": "cross-env FRAMEWORK=REACT_NATIVE jest -c ./jest.native.config.js --shard=$SHARD --forceExit",
105
112
  "start:ios": "cross-env NODE_OPTIONS=--openssl-legacy-provider run-p react-native:storybook:start react-native:storybook:ios",
@@ -152,22 +159,23 @@
152
159
  "@rollup/plugin-node-resolve": "15.2.1",
153
160
  "@rollup/plugin-replace": "5.0.2",
154
161
  "@size-limit/preset-big-lib": "8.2.4",
162
+ "@storybook/addon-a11y": "7.1.0",
163
+ "@storybook/addon-actions": "7.1.0",
164
+ "@storybook/addon-controls": "7.1.0",
165
+ "@storybook/addon-docs": "7.1.0",
166
+ "@storybook/addon-essentials": "7.1.0",
167
+ "@storybook/addon-links": "7.1.0",
168
+ "@storybook/addon-ondevice-actions": "7.0.0-alpha.5",
169
+ "@storybook/addon-ondevice-backgrounds": "7.0.0-alpha.5",
170
+ "@storybook/addon-ondevice-controls": "7.0.0-alpha.5",
171
+ "@storybook/addon-ondevice-notes": "7.0.0-alpha.5",
172
+ "@storybook/design-system": "7.15.13",
173
+ "@storybook/node-logger": "7.1.0",
174
+ "@storybook/preset-create-react-app": "7.1.0",
175
+ "@storybook/react": "7.1.0",
176
+ "@storybook/react-native": "7.0.0-alpha.5",
177
+ "@storybook/react-webpack5": "7.1.0",
155
178
  "@stackblitz/sdk": "1.9.0",
156
- "@storybook/addon-a11y": "6.5.16",
157
- "@storybook/addon-actions": "6.5.16",
158
- "@storybook/addon-controls": "6.5.16",
159
- "@storybook/addon-docs": "6.5.16",
160
- "@storybook/addon-essentials": "6.5.16",
161
- "@storybook/addon-links": "6.5.16",
162
- "@storybook/addon-ondevice-actions": "6.5.5",
163
- "@storybook/addon-ondevice-backgrounds": "6.5.5",
164
- "@storybook/addon-ondevice-controls": "6.5.5",
165
- "@storybook/addon-ondevice-notes": "6.5.5",
166
- "@storybook/design-system": "7.3.4",
167
- "@storybook/node-logger": "6.5.16",
168
- "@storybook/preset-create-react-app": "3.2.0",
169
- "@storybook/react": "6.5.16",
170
- "@storybook/react-native": "6.5.5",
171
179
  "storybook-react-router": "1.0.8",
172
180
  "react-router-dom": "5.3.4",
173
181
  "@testing-library/jest-dom": "5.16.4",
@@ -223,17 +231,22 @@
223
231
  "react-native-gesture-handler": "2.9.0",
224
232
  "react-native-reanimated": "3.4.1",
225
233
  "react-native-svg": "12.3.0",
226
- "react-scripts": "4.0.3",
234
+ "react-scripts": "5.0.1",
227
235
  "react-test-renderer": "18.2.0",
228
236
  "rollup": "3.28.1",
229
237
  "rollup-plugin-dts": "5.3.1",
230
238
  "rollup-plugin-peer-deps-external": "2.2.4",
231
239
  "size-limit": "8.2.4",
240
+ "storybook": "7.1.0",
232
241
  "style-dictionary": "3.7.1",
233
242
  "styled-components": "5.3.5",
234
243
  "tsconfig-paths-webpack-plugin": "3.5.2",
235
244
  "jsdom-testing-mocks": "1.9.0",
236
245
  "postinstall-postinstall": "2.1.0",
246
+ "react-refresh": "0.11.0",
247
+ "react-docgen-typescript-plugin": "1.0.5",
248
+ "metro-config": "0.66.2",
249
+ "@babel/plugin-proposal-class-static-block": "7.21.0",
237
250
  "react-native-safe-area-context": "3.4.1",
238
251
  "ttypescript": "1.5.15",
239
252
  "typescript": "4.9",