@semcore/data-table 17.0.0-prerelease.37 → 17.0.0-prerelease.42

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 (75) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/lib/cjs/components/DataTable/DataTable.js +14 -40
  3. package/lib/cjs/components/DataTable/DataTable.js.map +1 -1
  4. package/lib/cjs/components/Head/Head.js +6 -1
  5. package/lib/cjs/components/Head/Head.js.map +1 -1
  6. package/lib/cjs/components/RowSelector/RowsSelector.js +1 -1
  7. package/lib/cjs/components/RowSelector/RowsSelector.js.map +1 -1
  8. package/lib/cjs/components/RowSelector/SRAnnouncer.js +49 -0
  9. package/lib/cjs/components/RowSelector/SRAnnouncer.js.map +1 -0
  10. package/lib/cjs/components/RowSelector/SRReactiveAnnouncer.js +31 -0
  11. package/lib/cjs/components/RowSelector/SRReactiveAnnouncer.js.map +1 -0
  12. package/lib/cjs/store/SelectableRows.js +6 -5
  13. package/lib/cjs/store/SelectableRows.js.map +1 -1
  14. package/lib/cjs/translations/de.json +6 -1
  15. package/lib/cjs/translations/es.json +6 -1
  16. package/lib/cjs/translations/fr.json +6 -1
  17. package/lib/cjs/translations/it.json +6 -1
  18. package/lib/cjs/translations/ja.json +6 -1
  19. package/lib/cjs/translations/ko.json +6 -1
  20. package/lib/cjs/translations/nl.json +6 -1
  21. package/lib/cjs/translations/pl.json +6 -1
  22. package/lib/cjs/translations/pt.json +6 -1
  23. package/lib/cjs/translations/sv.json +6 -1
  24. package/lib/cjs/translations/tr.json +6 -1
  25. package/lib/cjs/translations/vi.json +6 -1
  26. package/lib/cjs/translations/zh.json +6 -1
  27. package/lib/es6/components/DataTable/DataTable.js +15 -41
  28. package/lib/es6/components/DataTable/DataTable.js.map +1 -1
  29. package/lib/es6/components/Head/Head.js +6 -1
  30. package/lib/es6/components/Head/Head.js.map +1 -1
  31. package/lib/es6/components/RowSelector/RowsSelector.js +1 -1
  32. package/lib/es6/components/RowSelector/RowsSelector.js.map +1 -1
  33. package/lib/es6/components/RowSelector/SRAnnouncer.js +42 -0
  34. package/lib/es6/components/RowSelector/SRAnnouncer.js.map +1 -0
  35. package/lib/es6/components/RowSelector/SRReactiveAnnouncer.js +24 -0
  36. package/lib/es6/components/RowSelector/SRReactiveAnnouncer.js.map +1 -0
  37. package/lib/es6/store/SelectableRows.js +6 -5
  38. package/lib/es6/store/SelectableRows.js.map +1 -1
  39. package/lib/es6/translations/de.json +6 -1
  40. package/lib/es6/translations/es.json +6 -1
  41. package/lib/es6/translations/fr.json +6 -1
  42. package/lib/es6/translations/it.json +6 -1
  43. package/lib/es6/translations/ja.json +6 -1
  44. package/lib/es6/translations/ko.json +6 -1
  45. package/lib/es6/translations/nl.json +6 -1
  46. package/lib/es6/translations/pl.json +6 -1
  47. package/lib/es6/translations/pt.json +6 -1
  48. package/lib/es6/translations/sv.json +6 -1
  49. package/lib/es6/translations/tr.json +6 -1
  50. package/lib/es6/translations/vi.json +6 -1
  51. package/lib/es6/translations/zh.json +6 -1
  52. package/lib/esm/components/DataTable/DataTable.mjs +15 -41
  53. package/lib/esm/components/Head/Head.mjs +6 -1
  54. package/lib/esm/components/RowSelector/RowsSelector.mjs +1 -1
  55. package/lib/esm/components/RowSelector/SRAnnouncer.mjs +44 -0
  56. package/lib/esm/components/RowSelector/SRReactiveAnnouncer.mjs +26 -0
  57. package/lib/esm/store/SelectableRows.mjs +6 -5
  58. package/lib/esm/translations/de.json.mjs +6 -1
  59. package/lib/esm/translations/es.json.mjs +6 -1
  60. package/lib/esm/translations/fr.json.mjs +6 -1
  61. package/lib/esm/translations/it.json.mjs +6 -1
  62. package/lib/esm/translations/ja.json.mjs +6 -1
  63. package/lib/esm/translations/ko.json.mjs +6 -1
  64. package/lib/esm/translations/nl.json.mjs +6 -1
  65. package/lib/esm/translations/pl.json.mjs +6 -1
  66. package/lib/esm/translations/pt.json.mjs +6 -1
  67. package/lib/esm/translations/sv.json.mjs +6 -1
  68. package/lib/esm/translations/tr.json.mjs +6 -1
  69. package/lib/esm/translations/vi.json.mjs +6 -1
  70. package/lib/esm/translations/zh.json.mjs +6 -1
  71. package/lib/types/components/RowSelector/SRAnnouncer.d.ts +10 -0
  72. package/lib/types/components/RowSelector/SRReactiveAnnouncer.d.ts +8 -0
  73. package/lib/types/store/SelectableRows.d.ts +5 -1
  74. package/lib/types/translations/__intergalactic-dynamic-locales.d.ts +65 -0
  75. package/package.json +20 -20
@@ -1 +1 @@
1
- {"version":3,"file":"Head.js","names":["Box","ScreenReaderOnly","Checkbox","Component","createComponent","Root","sstyled","React","Column","Group","style","_sstyled","insert","SelectableRows","DataTable","SELECT_ALL","UNIQ_ROW_KEY","HeadRoot","constructor","args","_defineProperty","undefined","value","event","selectedRows","asProps","Array","isArray","idsSet","Set","selectableRows","forEach","row","add","delete","onChangeSelectAll","from","selectAll","clearAllAvailable","preventDefault","stopPropagation","handleSelectAll","componentDidMount","unsubscribeSelectAll","subscribe","SELECT_ALL_EVENT","forceUpdate","componentWillUnmount","sortableColumnDescribeId","uid","getGroupProps","props","index","fixed","columns","use","gridAreaGroupMap","children","getFixedStyle","shadowVertical","top","scrollDirection","groupColumns","firstColumn","lastColumn","length","name","gridArea","get","withConfig","showShadowVertical","getColumnProps","_","sort","onSortChange","tableRef","gridTemplateColumns","gridTemplateAreas","sticky","h","onCellClick","column","borders","parent","areAllRowsSelected","every","includes","isAllSelected","isIndeterminate","some","flatRows","mappedFlatRows","filter","r","nextColumnName","render","_ref","_ref2","SHead","SHeadCheckboxCol","Head","Children","styles","getI18nText","treeColumns","animationDuration","isDataEmpty","indeterminate","createElement","Fragment","cn","_assignProps","join","toString","handleClickSelectAll","Value","Control","CheckMark","mt","map","_i","columnsName","c","_extends","key","title"],"sources":["../../../../src/components/Head/Head.tsx"],"sourcesContent":["import { Box, ScreenReaderOnly } from '@semcore/base-components';\nimport Checkbox from '@semcore/checkbox';\nimport { Component, createComponent, type Intergalactic, Root, sstyled } from '@semcore/core';\nimport type Tooltip from '@semcore/tooltip';\nimport React from 'react';\n\nimport { Column } from './Column';\nimport type { DataTableColumnProps } from './Column.types';\nimport { Group } from './Group';\nimport type { DataTableGroupProps } from './Group.type';\nimport type { DataTableHeadProps, HeadPropsInner } from './Head.types';\nimport style from './style.shadow.css';\nimport { SelectableRows } from '../../store/SelectableRows';\nimport type { DTRow } from '../Body/Row.types';\nimport { DataTable, type ROW_GROUP, SELECT_ALL, UNIQ_ROW_KEY } from '../DataTable/DataTable';\nimport type { DataTableData } from '../DataTable/DataTable.types';\n\nclass HeadRoot<\n Data extends DataTableData,\n UniqKey extends (Data[number] extends { [ROW_GROUP]: DataTableData } ? keyof Data[number][typeof ROW_GROUP][number] : keyof Data[number]),\n UniqKeyType extends (Data[number] extends { [ROW_GROUP]: DataTableData } ? Data[number][typeof ROW_GROUP][number][UniqKey] : Data[number][UniqKey]),\n> extends Component<\n DataTableHeadProps,\n [],\n {},\n HeadPropsInner<Data, UniqKey, UniqKeyType>\n > {\n static displayName = 'Head';\n static style = style;\n\n private unsubscribeSelectAll: undefined | (() => void) = undefined;\n\n componentDidMount() {\n const { selectedRows } = this.asProps;\n\n if (selectedRows && !Array.isArray(selectedRows)) {\n this.unsubscribeSelectAll = selectedRows.subscribe(SelectableRows.SELECT_ALL_EVENT, () => {\n this.forceUpdate();\n });\n }\n }\n\n componentWillUnmount() {\n this.unsubscribeSelectAll?.();\n }\n\n sortableColumnDescribeId() {\n const { uid } = this.asProps;\n return `${uid}-column-sortable-describer`;\n }\n\n getGroupProps(props: any, index: number) {\n const { fixed, columns } = props;\n const { use, gridAreaGroupMap, children, getFixedStyle, shadowVertical, top, scrollDirection } = this.asProps;\n const groupColumns = columns ?? [];\n\n const firstColumn = groupColumns[0];\n const lastColumn = groupColumns[groupColumns.length - 1];\n\n const style: any = {};\n\n if (fixed === 'left' && firstColumn) {\n const [name, value] = getFixedStyle({ name: firstColumn.name, fixed: 'left' });\n if (name !== undefined && value !== undefined) {\n style[name] = value;\n }\n }\n if (fixed === 'right' && lastColumn) {\n const [name, value] = getFixedStyle({ name: lastColumn.name, fixed: 'right' });\n if (name !== undefined && value !== undefined) {\n style[name] = value;\n }\n }\n if (top && scrollDirection !== 'horizontal') {\n style.top = `${top}px`;\n }\n\n return {\n use,\n gridArea: gridAreaGroupMap.get(index),\n withConfig: children === undefined,\n getFixedStyle,\n shadowVertical: (firstColumn.showShadowVertical || lastColumn.showShadowVertical) ? shadowVertical : undefined,\n style,\n scrollDirection,\n };\n }\n\n getColumnProps(_: any, index: number) {\n const {\n use,\n columns,\n sort,\n onSortChange,\n tableRef,\n gridTemplateColumns,\n gridTemplateAreas,\n sticky,\n top,\n selectedRows,\n h,\n getFixedStyle,\n onCellClick,\n shadowVertical,\n scrollDirection,\n } = this.asProps;\n const column = columns[index];\n\n if (index === 0 && selectedRows && columns[index + 1].fixed) {\n column.fixed = 'left';\n }\n\n const [name, value] = getFixedStyle(column);\n const style: any = {};\n\n if (top && scrollDirection !== 'horizontal') {\n style.top = `${top}px`;\n }\n\n if (name !== undefined && value !== undefined) {\n style[name] = value;\n }\n\n return {\n use,\n 'aria-colindex': index + 1,\n style,\n 'gridArea': column.gridArea,\n 'fixed': column.fixed,\n sticky,\n 'borders': column.borders,\n sort,\n onSortChange,\n 'parent': column.parent,\n 'sortableColumnDescribeId': this.sortableColumnDescribeId(),\n 'columnIndex': index,\n tableRef,\n gridTemplateColumns,\n gridTemplateAreas,\n h,\n 'onClick': onCellClick,\n 'shadowVertical': column.showShadowVertical ? shadowVertical : undefined,\n scrollDirection,\n };\n }\n\n handleSelectAll = (value: boolean, event?: React.SyntheticEvent<HTMLElement>) => {\n const { selectedRows } = this.asProps;\n\n if (Array.isArray(selectedRows)) {\n const idsSet = new Set<UniqKeyType>(selectedRows);\n\n if (value) {\n this.selectableRows.forEach((row) => {\n idsSet.add(row[UNIQ_ROW_KEY]);\n });\n } else {\n this.selectableRows.forEach((row) => {\n idsSet.delete(row[UNIQ_ROW_KEY]);\n });\n }\n\n this.asProps.onChangeSelectAll?.(Array.from(idsSet), event);\n } else if (selectedRows) {\n if (value) {\n selectedRows.selectAll();\n } else {\n selectedRows.clearAllAvailable();\n }\n }\n };\n\n handleClickSelectAll = (value: boolean) => (event?: React.SyntheticEvent<HTMLElement>) => {\n event?.preventDefault();\n event?.stopPropagation();\n\n this.handleSelectAll(value, event);\n };\n\n get areAllRowsSelected() {\n const { selectedRows } = this.asProps;\n\n if (Array.isArray(selectedRows)) {\n return selectedRows.length > 0 && this.selectableRows.every((row) => selectedRows?.includes(row[UNIQ_ROW_KEY]));\n } else if (selectedRows) {\n return selectedRows.isAllSelected();\n }\n }\n\n get isIndeterminate() {\n const { selectedRows } = this.asProps;\n\n if (Array.isArray(selectedRows)) {\n return this.selectableRows.some((row) => selectedRows?.includes(row[UNIQ_ROW_KEY]));\n } else if (selectedRows) {\n return selectedRows.isIndeterminate();\n }\n }\n\n get selectableRows(): DTRow<UniqKeyType>[] {\n const { columns, flatRows } = this.asProps;\n const mappedFlatRows = flatRows\n .filter((r) => {\n const nextColumnName = columns[1]?.name;\n return r[nextColumnName] !== undefined;\n });\n\n return mappedFlatRows;\n }\n\n render() {\n const SHead = Root;\n const SHeadCheckboxCol = Head.Column;\n const { Children, styles, getI18nText, children, treeColumns, selectedRows, sticky, animationDuration, isDataEmpty, gridTemplateColumns } = this.asProps;\n\n const areAllRowsSelected = this.areAllRowsSelected;\n const indeterminate = this.isIndeterminate && !areAllRowsSelected;\n\n return sstyled(styles)(\n <>\n <SHead\n render={Box}\n role='row'\n aria-rowindex={1}\n sticky={sticky}\n use:animationDuration={animationDuration ? `${animationDuration}ms` : undefined}\n isDataEmpty={isDataEmpty}\n use:gridTemplateColumns={gridTemplateColumns.join(' ')}\n tabIndex={isDataEmpty ? 0 : undefined}\n >\n {selectedRows && (\n <SHeadCheckboxCol\n name={SELECT_ALL.toString()}\n onClick={this.handleClickSelectAll(!areAllRowsSelected)}\n >\n <Checkbox\n checked={areAllRowsSelected}\n indeterminate={indeterminate}\n aria-label={getI18nText('DataTable.Header.selectAllCheckbox:aria-label')}\n onChange={this.handleSelectAll}\n >\n <Checkbox.Value>\n <Checkbox.Value.Control />\n <Checkbox.Value.CheckMark mt={0} />\n </Checkbox.Value>\n </Checkbox>\n </SHeadCheckboxCol>\n )}\n\n {children\n ? (\n <Children />\n )\n : (\n <>\n {treeColumns.map((column, _i) => {\n if ('columns' in column) {\n const columnsName = column.columns?.map((c) => c.name).join('/');\n return (\n <DataTable.Head.Group\n key={columnsName}\n {...column}\n name={columnsName}\n title=''\n />\n );\n }\n\n return <DataTable.Head.Column key={column.name} {...column} />;\n })}\n </>\n )}\n </SHead>\n\n <ScreenReaderOnly aria-hidden={true} id={this.sortableColumnDescribeId()}>\n {getI18nText('sortableColumn')}\n </ScreenReaderOnly>\n </>,\n );\n }\n}\n\nexport const Head = createComponent(HeadRoot, { Column, Group }) as Intergalactic.Component<\n 'div',\n DataTableHeadProps\n> & {\n Column: <Tag extends 'div' | typeof Tooltip = 'div'>(\n props: Intergalactic.InternalTypings.ComponentProps<Tag, 'div', DataTableColumnProps, {}, []>,\n ) => Intergalactic.InternalTypings.ComponentRenderingResults;\n Group: <Tag extends 'div' | typeof Tooltip = 'div'>(\n props: Intergalactic.InternalTypings.ComponentProps<Tag, 'div', DataTableGroupProps, {}, []>,\n ) => Intergalactic.InternalTypings.ComponentRenderingResults;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Head.js","names":["Box","ScreenReaderOnly","Checkbox","Component","createComponent","Root","sstyled","React","Column","Group","style","_sstyled","insert","SelectableRows","DataTable","SELECT_ALL","UNIQ_ROW_KEY","HeadRoot","constructor","args","_defineProperty","undefined","value","event","selectedRows","asProps","Array","isArray","idsSet","Set","selectableRows","forEach","row","add","delete","onChangeSelectAll","from","selectAll","clearAllAvailable","preventDefault","stopPropagation","handleSelectAll","componentDidMount","unsubscribeSelectAll","on","SELECT_ALL_EVENT","forceUpdate","unsubscribeSetIndeterminate","SET_INDETERMINATE_EVENT","componentWillUnmount","sortableColumnDescribeId","uid","getGroupProps","props","index","fixed","columns","use","gridAreaGroupMap","children","getFixedStyle","shadowVertical","top","scrollDirection","groupColumns","firstColumn","lastColumn","length","name","gridArea","get","withConfig","showShadowVertical","getColumnProps","_","sort","onSortChange","tableRef","gridTemplateColumns","gridTemplateAreas","sticky","h","onCellClick","column","borders","parent","areAllRowsSelected","every","includes","isAllSelected","isIndeterminate","some","flatRows","mappedFlatRows","filter","r","nextColumnName","render","_ref","_ref2","SHead","SHeadCheckboxCol","Head","Children","styles","getI18nText","treeColumns","animationDuration","isDataEmpty","indeterminate","createElement","Fragment","cn","_assignProps","join","toString","handleClickSelectAll","Value","Control","CheckMark","mt","map","_i","columnsName","c","_extends","key","title"],"sources":["../../../../src/components/Head/Head.tsx"],"sourcesContent":["import { Box, ScreenReaderOnly } from '@semcore/base-components';\nimport Checkbox from '@semcore/checkbox';\nimport { Component, createComponent, type Intergalactic, Root, sstyled } from '@semcore/core';\nimport type Tooltip from '@semcore/tooltip';\nimport React from 'react';\n\nimport { Column } from './Column';\nimport type { DataTableColumnProps } from './Column.types';\nimport { Group } from './Group';\nimport type { DataTableGroupProps } from './Group.type';\nimport type { DataTableHeadProps, HeadPropsInner } from './Head.types';\nimport style from './style.shadow.css';\nimport { SelectableRows } from '../../store/SelectableRows';\nimport type { DTRow } from '../Body/Row.types';\nimport { DataTable, type ROW_GROUP, SELECT_ALL, UNIQ_ROW_KEY } from '../DataTable/DataTable';\nimport type { DataTableData } from '../DataTable/DataTable.types';\n\nclass HeadRoot<\n Data extends DataTableData,\n UniqKey extends (Data[number] extends { [ROW_GROUP]: DataTableData } ? keyof Data[number][typeof ROW_GROUP][number] : keyof Data[number]),\n UniqKeyType extends (Data[number] extends { [ROW_GROUP]: DataTableData } ? Data[number][typeof ROW_GROUP][number][UniqKey] : Data[number][UniqKey]),\n> extends Component<\n DataTableHeadProps,\n [],\n {},\n HeadPropsInner<Data, UniqKey, UniqKeyType>\n > {\n static displayName = 'Head';\n static style = style;\n\n private unsubscribeSelectAll: undefined | (() => void) = undefined;\n private unsubscribeSetIndeterminate: undefined | (() => void) = undefined;\n\n componentDidMount() {\n const { selectedRows } = this.asProps;\n\n if (selectedRows && !Array.isArray(selectedRows)) {\n this.unsubscribeSelectAll = selectedRows.on(SelectableRows.SELECT_ALL_EVENT, () => {\n this.forceUpdate();\n });\n\n this.unsubscribeSetIndeterminate = selectedRows.on(SelectableRows.SET_INDETERMINATE_EVENT, () => {\n this.forceUpdate();\n });\n }\n }\n\n componentWillUnmount() {\n this.unsubscribeSelectAll?.();\n this.unsubscribeSetIndeterminate?.();\n }\n\n sortableColumnDescribeId() {\n const { uid } = this.asProps;\n return `${uid}-column-sortable-describer`;\n }\n\n getGroupProps(props: any, index: number) {\n const { fixed, columns } = props;\n const { use, gridAreaGroupMap, children, getFixedStyle, shadowVertical, top, scrollDirection } = this.asProps;\n const groupColumns = columns ?? [];\n\n const firstColumn = groupColumns[0];\n const lastColumn = groupColumns[groupColumns.length - 1];\n\n const style: any = {};\n\n if (fixed === 'left' && firstColumn) {\n const [name, value] = getFixedStyle({ name: firstColumn.name, fixed: 'left' });\n if (name !== undefined && value !== undefined) {\n style[name] = value;\n }\n }\n if (fixed === 'right' && lastColumn) {\n const [name, value] = getFixedStyle({ name: lastColumn.name, fixed: 'right' });\n if (name !== undefined && value !== undefined) {\n style[name] = value;\n }\n }\n if (top && scrollDirection !== 'horizontal') {\n style.top = `${top}px`;\n }\n\n return {\n use,\n gridArea: gridAreaGroupMap.get(index),\n withConfig: children === undefined,\n getFixedStyle,\n shadowVertical: (firstColumn.showShadowVertical || lastColumn.showShadowVertical) ? shadowVertical : undefined,\n style,\n scrollDirection,\n };\n }\n\n getColumnProps(_: any, index: number) {\n const {\n use,\n columns,\n sort,\n onSortChange,\n tableRef,\n gridTemplateColumns,\n gridTemplateAreas,\n sticky,\n top,\n selectedRows,\n h,\n getFixedStyle,\n onCellClick,\n shadowVertical,\n scrollDirection,\n } = this.asProps;\n const column = columns[index];\n\n if (index === 0 && selectedRows && columns[index + 1].fixed) {\n column.fixed = 'left';\n }\n\n const [name, value] = getFixedStyle(column);\n const style: any = {};\n\n if (top && scrollDirection !== 'horizontal') {\n style.top = `${top}px`;\n }\n\n if (name !== undefined && value !== undefined) {\n style[name] = value;\n }\n\n return {\n use,\n 'aria-colindex': index + 1,\n style,\n 'gridArea': column.gridArea,\n 'fixed': column.fixed,\n sticky,\n 'borders': column.borders,\n sort,\n onSortChange,\n 'parent': column.parent,\n 'sortableColumnDescribeId': this.sortableColumnDescribeId(),\n 'columnIndex': index,\n tableRef,\n gridTemplateColumns,\n gridTemplateAreas,\n h,\n 'onClick': onCellClick,\n 'shadowVertical': column.showShadowVertical ? shadowVertical : undefined,\n scrollDirection,\n };\n }\n\n handleSelectAll = (value: boolean, event?: React.SyntheticEvent<HTMLElement>) => {\n const { selectedRows } = this.asProps;\n\n if (Array.isArray(selectedRows)) {\n const idsSet = new Set<UniqKeyType>(selectedRows);\n\n if (value) {\n this.selectableRows.forEach((row) => {\n idsSet.add(row[UNIQ_ROW_KEY]);\n });\n } else {\n this.selectableRows.forEach((row) => {\n idsSet.delete(row[UNIQ_ROW_KEY]);\n });\n }\n\n this.asProps.onChangeSelectAll?.(Array.from(idsSet), event);\n } else if (selectedRows) {\n if (value) {\n selectedRows.selectAll();\n } else {\n selectedRows.clearAllAvailable();\n }\n }\n };\n\n handleClickSelectAll = (value: boolean) => (event?: React.SyntheticEvent<HTMLElement>) => {\n event?.preventDefault();\n event?.stopPropagation();\n\n this.handleSelectAll(value, event);\n };\n\n get areAllRowsSelected() {\n const { selectedRows } = this.asProps;\n\n if (Array.isArray(selectedRows)) {\n return selectedRows.length > 0 && this.selectableRows.every((row) => selectedRows?.includes(row[UNIQ_ROW_KEY]));\n } else if (selectedRows) {\n return selectedRows.isAllSelected();\n }\n }\n\n get isIndeterminate() {\n const { selectedRows } = this.asProps;\n\n if (Array.isArray(selectedRows)) {\n return this.selectableRows.some((row) => selectedRows?.includes(row[UNIQ_ROW_KEY]));\n } else if (selectedRows) {\n return selectedRows.isIndeterminate();\n }\n }\n\n get selectableRows(): DTRow<UniqKeyType>[] {\n const { columns, flatRows } = this.asProps;\n const mappedFlatRows = flatRows\n .filter((r) => {\n const nextColumnName = columns[1]?.name;\n return r[nextColumnName] !== undefined;\n });\n\n return mappedFlatRows;\n }\n\n render() {\n const SHead = Root;\n const SHeadCheckboxCol = Head.Column;\n const { Children, styles, getI18nText, children, treeColumns, selectedRows, sticky, animationDuration, isDataEmpty, gridTemplateColumns } = this.asProps;\n\n const areAllRowsSelected = this.areAllRowsSelected;\n const indeterminate = this.isIndeterminate && !areAllRowsSelected;\n\n return sstyled(styles)(\n <>\n <SHead\n render={Box}\n role='row'\n aria-rowindex={1}\n sticky={sticky}\n use:animationDuration={animationDuration ? `${animationDuration}ms` : undefined}\n isDataEmpty={isDataEmpty}\n use:gridTemplateColumns={gridTemplateColumns.join(' ')}\n tabIndex={isDataEmpty ? 0 : undefined}\n >\n {selectedRows && (\n <SHeadCheckboxCol\n name={SELECT_ALL.toString()}\n onClick={this.handleClickSelectAll(!areAllRowsSelected)}\n >\n <Checkbox\n checked={areAllRowsSelected}\n indeterminate={indeterminate}\n aria-label={getI18nText('DataTable.Header.selectAllCheckbox:aria-label')}\n onChange={this.handleSelectAll}\n >\n <Checkbox.Value>\n <Checkbox.Value.Control />\n <Checkbox.Value.CheckMark mt={0} />\n </Checkbox.Value>\n </Checkbox>\n </SHeadCheckboxCol>\n )}\n\n {children\n ? (\n <Children />\n )\n : (\n <>\n {treeColumns.map((column, _i) => {\n if ('columns' in column) {\n const columnsName = column.columns?.map((c) => c.name).join('/');\n return (\n <DataTable.Head.Group\n key={columnsName}\n {...column}\n name={columnsName}\n title=''\n />\n );\n }\n\n return <DataTable.Head.Column key={column.name} {...column} />;\n })}\n </>\n )}\n </SHead>\n\n <ScreenReaderOnly aria-hidden={true} id={this.sortableColumnDescribeId()}>\n {getI18nText('sortableColumn')}\n </ScreenReaderOnly>\n </>,\n );\n }\n}\n\nexport const Head = createComponent(HeadRoot, { Column, Group }) as Intergalactic.Component<\n 'div',\n DataTableHeadProps\n> & {\n Column: <Tag extends 'div' | typeof Tooltip = 'div'>(\n props: Intergalactic.InternalTypings.ComponentProps<Tag, 'div', DataTableColumnProps, {}, []>,\n ) => Intergalactic.InternalTypings.ComponentRenderingResults;\n Group: <Tag extends 'div' | typeof Tooltip = 'div'>(\n props: Intergalactic.InternalTypings.ComponentProps<Tag, 'div', DataTableGroupProps, {}, []>,\n ) => Intergalactic.InternalTypings.ComponentRenderingResults;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -51,7 +51,7 @@ export class RowSelector extends React.PureComponent {
51
51
  selectedRows
52
52
  } = this.props;
53
53
  if (selectedRows && !Array.isArray(selectedRows)) {
54
- this.unsubscribeToggle = selectedRows.subscribe(SelectableRows.TOGGLE_EVENT, key => {
54
+ this.unsubscribeToggle = selectedRows.on(SelectableRows.TOGGLE_EVENT, key => {
55
55
  if (row[UNIQ_ROW_KEY] === key) {
56
56
  this.setState({
57
57
  checked: selectedRows.has(row[UNIQ_ROW_KEY])
@@ -1 +1 @@
1
- {"version":3,"file":"RowsSelector.js","names":["Checkbox","React","SelectableRows","Row","UNIQ_ROW_KEY","SELECT_ALL","RowSelector","PureComponent","constructor","props","_defineProperty","checked","undefined","value","event","row","rowIndex","onSelectRow","selectedRows","Array","isArray","toggle","preventDefault","stopPropagation","state","has","componentDidMount","unsubscribeToggle","subscribe","TOGGLE_EVENT","key","setState","componentWillUnmount","render","SCheckboxCell","Cell","gridRowIndex","expanded","withAccordion","isAccordionRow","isCellHidden","theme","uid","rowUniqKey","includes","createElement","column","name","toString","columnIndex","onClick","handleClickCheckbox","onChange","handleSelectRow","Value"],"sources":["../../../../src/components/RowSelector/RowsSelector.tsx"],"sourcesContent":["import Checkbox from '@semcore/checkbox';\nimport React from 'react';\n\nimport type { ISelectedRows } from '../../store/SelectableRows';\nimport { SelectableRows } from '../../store/SelectableRows';\nimport type { Theme } from '../Body/Cell.types';\nimport { Row } from '../Body/Row';\nimport type { DTRow } from '../Body/Row.types';\nimport { UNIQ_ROW_KEY, SELECT_ALL } from '../DataTable/DataTable';\n\ntype RowSelectorProps<UniqKeyType> = {\n row: DTRow<UniqKeyType>;\n rowIndex: number;\n gridRowIndex: number;\n expanded: boolean;\n withAccordion: boolean;\n\n uid: string;\n theme?: Theme;\n isCellHidden?: boolean;\n isAccordionRow?: boolean;\n selectedRows?: UniqKeyType[] | ISelectedRows<UniqKeyType>;\n onSelectRow?: (\n isSelect: boolean,\n selectedRowIndex: number,\n row: DTRow<UniqKeyType>,\n event?: React.SyntheticEvent<HTMLElement>,\n ) => void;\n};\n\ntype State = {\n checked: boolean;\n};\n\nexport class RowSelector<UniqKeyType> extends React.PureComponent<RowSelectorProps<UniqKeyType>, State> {\n state: State = {\n checked: false,\n };\n\n private unsubscribeToggle: undefined | (() => void) = undefined;\n\n constructor(props: RowSelectorProps<UniqKeyType>) {\n super(props);\n\n const { row, selectedRows } = props;\n if (selectedRows && !Array.isArray(selectedRows)) {\n this.state.checked = selectedRows.has(row[UNIQ_ROW_KEY]);\n }\n }\n\n componentDidMount(): void {\n const { row, selectedRows } = this.props;\n if (selectedRows && !Array.isArray(selectedRows)) {\n this.unsubscribeToggle = selectedRows.subscribe(SelectableRows.TOGGLE_EVENT, (key: UniqKeyType) => {\n if (row[UNIQ_ROW_KEY] === key) {\n this.setState({ checked: selectedRows.has(row[UNIQ_ROW_KEY]) });\n }\n });\n }\n }\n\n componentWillUnmount(): void {\n this.unsubscribeToggle?.();\n }\n\n handleSelectRow = (value: boolean, event?: React.SyntheticEvent<HTMLElement>) => {\n const { row, rowIndex, onSelectRow, selectedRows } = this.props;\n\n onSelectRow?.(value, rowIndex, row, event);\n\n if (selectedRows && !Array.isArray(selectedRows)) {\n selectedRows.toggle(value, row);\n }\n };\n\n handleClickCheckbox = (value: boolean) => (event?: React.SyntheticEvent<HTMLElement>) => {\n event?.preventDefault();\n event?.stopPropagation();\n const { row, rowIndex, onSelectRow, selectedRows } = this.props;\n\n onSelectRow?.(value, rowIndex, row, event);\n\n if (selectedRows && !Array.isArray(selectedRows)) {\n selectedRows.toggle(value, row);\n }\n };\n\n render() {\n const SCheckboxCell = Row.Cell;\n\n const { row, rowIndex, gridRowIndex, expanded, withAccordion, isAccordionRow, isCellHidden, theme, uid, selectedRows } = this.props;\n const rowUniqKey = row[UNIQ_ROW_KEY];\n\n const checked = Array.isArray(selectedRows) ? selectedRows.includes(rowUniqKey) : this.state.checked;\n\n return (\n <SCheckboxCell\n row={row}\n rowIndex={rowIndex}\n column={{ name: SELECT_ALL.toString() }}\n columnIndex={0}\n gridRowIndex={gridRowIndex}\n onClick={this.handleClickCheckbox(!checked)}\n expanded={expanded}\n isAccordionRow={isAccordionRow}\n aria-hidden={isCellHidden}\n withAccordion={withAccordion}\n theme={theme}\n data-row-selector\n >\n <Checkbox\n checked={checked}\n aria-labelledby={`${uid}_${rowUniqKey}_1`}\n onChange={this.handleSelectRow}\n >\n <Checkbox.Value />\n </Checkbox>\n </SCheckboxCell>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"RowsSelector.js","names":["Checkbox","React","SelectableRows","Row","UNIQ_ROW_KEY","SELECT_ALL","RowSelector","PureComponent","constructor","props","_defineProperty","checked","undefined","value","event","row","rowIndex","onSelectRow","selectedRows","Array","isArray","toggle","preventDefault","stopPropagation","state","has","componentDidMount","unsubscribeToggle","on","TOGGLE_EVENT","key","setState","componentWillUnmount","render","SCheckboxCell","Cell","gridRowIndex","expanded","withAccordion","isAccordionRow","isCellHidden","theme","uid","rowUniqKey","includes","createElement","column","name","toString","columnIndex","onClick","handleClickCheckbox","onChange","handleSelectRow","Value"],"sources":["../../../../src/components/RowSelector/RowsSelector.tsx"],"sourcesContent":["import Checkbox from '@semcore/checkbox';\nimport React from 'react';\n\nimport type { ISelectedRows } from '../../store/SelectableRows';\nimport { SelectableRows } from '../../store/SelectableRows';\nimport type { Theme } from '../Body/Cell.types';\nimport { Row } from '../Body/Row';\nimport type { DTRow } from '../Body/Row.types';\nimport { UNIQ_ROW_KEY, SELECT_ALL } from '../DataTable/DataTable';\n\ntype RowSelectorProps<UniqKeyType> = {\n row: DTRow<UniqKeyType>;\n rowIndex: number;\n gridRowIndex: number;\n expanded: boolean;\n withAccordion: boolean;\n\n uid: string;\n theme?: Theme;\n isCellHidden?: boolean;\n isAccordionRow?: boolean;\n selectedRows?: UniqKeyType[] | ISelectedRows<UniqKeyType>;\n onSelectRow?: (\n isSelect: boolean,\n selectedRowIndex: number,\n row: DTRow<UniqKeyType>,\n event?: React.SyntheticEvent<HTMLElement>,\n ) => void;\n};\n\ntype State = {\n checked: boolean;\n};\n\nexport class RowSelector<UniqKeyType> extends React.PureComponent<RowSelectorProps<UniqKeyType>, State> {\n state: State = {\n checked: false,\n };\n\n private unsubscribeToggle: undefined | (() => void) = undefined;\n\n constructor(props: RowSelectorProps<UniqKeyType>) {\n super(props);\n\n const { row, selectedRows } = props;\n if (selectedRows && !Array.isArray(selectedRows)) {\n this.state.checked = selectedRows.has(row[UNIQ_ROW_KEY]);\n }\n }\n\n componentDidMount(): void {\n const { row, selectedRows } = this.props;\n if (selectedRows && !Array.isArray(selectedRows)) {\n this.unsubscribeToggle = selectedRows.on(SelectableRows.TOGGLE_EVENT, (key: UniqKeyType) => {\n if (row[UNIQ_ROW_KEY] === key) {\n this.setState({ checked: selectedRows.has(row[UNIQ_ROW_KEY]) });\n }\n });\n }\n }\n\n componentWillUnmount(): void {\n this.unsubscribeToggle?.();\n }\n\n handleSelectRow = (value: boolean, event?: React.SyntheticEvent<HTMLElement>) => {\n const { row, rowIndex, onSelectRow, selectedRows } = this.props;\n\n onSelectRow?.(value, rowIndex, row, event);\n\n if (selectedRows && !Array.isArray(selectedRows)) {\n selectedRows.toggle(value, row);\n }\n };\n\n handleClickCheckbox = (value: boolean) => (event?: React.SyntheticEvent<HTMLElement>) => {\n event?.preventDefault();\n event?.stopPropagation();\n const { row, rowIndex, onSelectRow, selectedRows } = this.props;\n\n onSelectRow?.(value, rowIndex, row, event);\n\n if (selectedRows && !Array.isArray(selectedRows)) {\n selectedRows.toggle(value, row);\n }\n };\n\n render() {\n const SCheckboxCell = Row.Cell;\n\n const { row, rowIndex, gridRowIndex, expanded, withAccordion, isAccordionRow, isCellHidden, theme, uid, selectedRows } = this.props;\n const rowUniqKey = row[UNIQ_ROW_KEY];\n\n const checked = Array.isArray(selectedRows) ? selectedRows.includes(rowUniqKey) : this.state.checked;\n\n return (\n <SCheckboxCell\n row={row}\n rowIndex={rowIndex}\n column={{ name: SELECT_ALL.toString() }}\n columnIndex={0}\n gridRowIndex={gridRowIndex}\n onClick={this.handleClickCheckbox(!checked)}\n expanded={expanded}\n isAccordionRow={isAccordionRow}\n aria-hidden={isCellHidden}\n withAccordion={withAccordion}\n theme={theme}\n data-row-selector\n >\n <Checkbox\n checked={checked}\n aria-labelledby={`${uid}_${rowUniqKey}_1`}\n onChange={this.handleSelectRow}\n >\n <Checkbox.Value />\n </Checkbox>\n </SCheckboxCell>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,42 @@
1
+ import { ScreenReaderOnly } from '@semcore/base-components';
2
+ import React from 'react';
3
+ import { UNIQ_ROW_KEY } from '../DataTable/DataTable';
4
+ export function SRAnnouncer(props) {
5
+ const [ariaMessage, setAriaMessage] = React.useState('');
6
+ const [selectedAll, setSelectedAll] = React.useState(false);
7
+ React.useEffect(() => {
8
+ const selectedRowsSet = new Set(props.selectedRows);
9
+ const allChecked = [];
10
+ const allUnchecked = [];
11
+ props.flatRows.forEach(row => {
12
+ if (selectedRowsSet.has(row[UNIQ_ROW_KEY])) {
13
+ allChecked.push(row[UNIQ_ROW_KEY]);
14
+ } else {
15
+ allUnchecked.push(row[UNIQ_ROW_KEY]);
16
+ }
17
+ });
18
+ if (allChecked.length === props.data.length) {
19
+ setSelectedAll(true);
20
+ } else if (allUnchecked.length === props.data.length) {
21
+ setSelectedAll(false);
22
+ }
23
+ }, [props.selectedRows, props.data, props.flatRows]);
24
+ React.useEffect(() => {
25
+ const {
26
+ getI18nText
27
+ } = props;
28
+ const message = getI18nText(selectedAll ? 'DataTable.allItemsSelected:aria-live' : 'DataTable.allItemsDeselected:aria-live');
29
+ setAriaMessage(message);
30
+ const timeout = setTimeout(() => setAriaMessage(''), 5000);
31
+ return () => clearTimeout(timeout);
32
+ }, [selectedAll, props.getI18nText]);
33
+ React.useEffect(() => {
34
+ const timer = setTimeout(() => setAriaMessage(''), 1000);
35
+ return () => clearTimeout(timer);
36
+ }, [ariaMessage]);
37
+ return /*#__PURE__*/React.createElement(ScreenReaderOnly, {
38
+ role: "status",
39
+ "aria-live": "polite"
40
+ }, ariaMessage);
41
+ }
42
+ //# sourceMappingURL=SRAnnouncer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SRAnnouncer.js","names":["ScreenReaderOnly","React","UNIQ_ROW_KEY","SRAnnouncer","props","ariaMessage","setAriaMessage","useState","selectedAll","setSelectedAll","useEffect","selectedRowsSet","Set","selectedRows","allChecked","allUnchecked","flatRows","forEach","row","has","push","length","data","getI18nText","message","timeout","setTimeout","clearTimeout","timer","createElement","role"],"sources":["../../../../src/components/RowSelector/SRAnnouncer.tsx"],"sourcesContent":["import { ScreenReaderOnly } from '@semcore/base-components';\nimport React from 'react';\n\nimport type { DTRow } from '../Body/Row.types';\nimport { UNIQ_ROW_KEY } from '../DataTable/DataTable';\n\ntype Props<UniqKey> = {\n selectedRows: Array<UniqKey>;\n getI18nText: (key: string) => string;\n flatRows: DTRow<UniqKey>[];\n data: unknown[];\n};\n\nexport function SRAnnouncer<UniqKey>(props: Props<UniqKey>) {\n const [ariaMessage, setAriaMessage] = React.useState('');\n const [selectedAll, setSelectedAll] = React.useState(false);\n\n React.useEffect(() => {\n const selectedRowsSet = new Set<UniqKey>(props.selectedRows);\n\n const allChecked: UniqKey[] = [];\n const allUnchecked: UniqKey[] = [];\n\n props.flatRows.forEach((row) => {\n if (selectedRowsSet.has(row[UNIQ_ROW_KEY])) {\n allChecked.push(row[UNIQ_ROW_KEY]);\n } else {\n allUnchecked.push(row[UNIQ_ROW_KEY]);\n }\n });\n\n if (allChecked.length === props.data.length) {\n setSelectedAll(true);\n } else if (allUnchecked.length === props.data.length) {\n setSelectedAll(false);\n }\n }, [props.selectedRows, props.data, props.flatRows]);\n\n React.useEffect(() => {\n const { getI18nText } = props;\n\n const message = getI18nText(\n selectedAll\n ? 'DataTable.allItemsSelected:aria-live'\n : 'DataTable.allItemsDeselected:aria-live',\n );\n setAriaMessage(message);\n\n const timeout = setTimeout(() => setAriaMessage(''), 5000);\n\n return () => clearTimeout(timeout);\n }, [selectedAll, props.getI18nText]);\n\n React.useEffect(() => {\n const timer = setTimeout(() => setAriaMessage(''), 1000);\n return () => clearTimeout(timer);\n }, [ariaMessage]);\n\n return (\n <ScreenReaderOnly role='status' aria-live='polite'>\n {ariaMessage}\n </ScreenReaderOnly>\n );\n}\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,0BAA0B;AAC3D,OAAOC,KAAK,MAAM,OAAO;AAGzB,SAASC,YAAY,QAAQ,wBAAwB;AASrD,OAAO,SAASC,WAAWA,CAAUC,KAAqB,EAAE;EAC1D,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGL,KAAK,CAACM,QAAQ,CAAC,EAAE,CAAC;EACxD,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGR,KAAK,CAACM,QAAQ,CAAC,KAAK,CAAC;EAE3DN,KAAK,CAACS,SAAS,CAAC,MAAM;IACpB,MAAMC,eAAe,GAAG,IAAIC,GAAG,CAAUR,KAAK,CAACS,YAAY,CAAC;IAE5D,MAAMC,UAAqB,GAAG,EAAE;IAChC,MAAMC,YAAuB,GAAG,EAAE;IAElCX,KAAK,CAACY,QAAQ,CAACC,OAAO,CAAEC,GAAG,IAAK;MAC9B,IAAIP,eAAe,CAACQ,GAAG,CAACD,GAAG,CAAChB,YAAY,CAAC,CAAC,EAAE;QAC1CY,UAAU,CAACM,IAAI,CAACF,GAAG,CAAChB,YAAY,CAAC,CAAC;MACpC,CAAC,MAAM;QACLa,YAAY,CAACK,IAAI,CAACF,GAAG,CAAChB,YAAY,CAAC,CAAC;MACtC;IACF,CAAC,CAAC;IAEF,IAAIY,UAAU,CAACO,MAAM,KAAKjB,KAAK,CAACkB,IAAI,CAACD,MAAM,EAAE;MAC3CZ,cAAc,CAAC,IAAI,CAAC;IACtB,CAAC,MAAM,IAAIM,YAAY,CAACM,MAAM,KAAKjB,KAAK,CAACkB,IAAI,CAACD,MAAM,EAAE;MACpDZ,cAAc,CAAC,KAAK,CAAC;IACvB;EACF,CAAC,EAAE,CAACL,KAAK,CAACS,YAAY,EAAET,KAAK,CAACkB,IAAI,EAAElB,KAAK,CAACY,QAAQ,CAAC,CAAC;EAEpDf,KAAK,CAACS,SAAS,CAAC,MAAM;IACpB,MAAM;MAAEa;IAAY,CAAC,GAAGnB,KAAK;IAE7B,MAAMoB,OAAO,GAAGD,WAAW,CACzBf,WAAW,GACP,sCAAsC,GACtC,wCACN,CAAC;IACDF,cAAc,CAACkB,OAAO,CAAC;IAEvB,MAAMC,OAAO,GAAGC,UAAU,CAAC,MAAMpB,cAAc,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAE1D,OAAO,MAAMqB,YAAY,CAACF,OAAO,CAAC;EACpC,CAAC,EAAE,CAACjB,WAAW,EAAEJ,KAAK,CAACmB,WAAW,CAAC,CAAC;EAEpCtB,KAAK,CAACS,SAAS,CAAC,MAAM;IACpB,MAAMkB,KAAK,GAAGF,UAAU,CAAC,MAAMpB,cAAc,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IACxD,OAAO,MAAMqB,YAAY,CAACC,KAAK,CAAC;EAClC,CAAC,EAAE,CAACvB,WAAW,CAAC,CAAC;EAEjB,oBACEJ,KAAA,CAAA4B,aAAA,CAAC7B,gBAAgB;IAAC8B,IAAI,EAAC,QAAQ;IAAC,aAAU;EAAQ,GAC/CzB,WACe,CAAC;AAEvB","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ import { ScreenReaderOnly } from '@semcore/base-components';
2
+ import React from 'react';
3
+ import { SelectableRows } from '../../store/SelectableRows';
4
+ export function SRReactiveAnnouncer(props) {
5
+ const [ariaMessage, setAriaMessage] = React.useState('');
6
+ const setAriaCallback = React.useCallback(() => {
7
+ const isAllSelected = props.selectedRows.isAllSelected();
8
+ const message = props.getI18nText(isAllSelected ? 'DataTable.allItemsSelected:aria-live' : 'DataTable.allItemsDeselected:aria-live');
9
+ setAriaMessage(message);
10
+ }, [props.selectedRows]);
11
+ React.useEffect(() => {
12
+ const unsubscribe = props.selectedRows.on(SelectableRows.SELECT_ALL_EVENT, setAriaCallback);
13
+ return unsubscribe;
14
+ }, [props.selectedRows]);
15
+ React.useEffect(() => {
16
+ const timer = setTimeout(() => setAriaMessage(''), 1000);
17
+ return () => clearTimeout(timer);
18
+ }, [ariaMessage]);
19
+ return /*#__PURE__*/React.createElement(ScreenReaderOnly, {
20
+ role: "status",
21
+ "aria-live": "polite"
22
+ }, ariaMessage);
23
+ }
24
+ //# sourceMappingURL=SRReactiveAnnouncer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SRReactiveAnnouncer.js","names":["ScreenReaderOnly","React","SelectableRows","SRReactiveAnnouncer","props","ariaMessage","setAriaMessage","useState","setAriaCallback","useCallback","isAllSelected","selectedRows","message","getI18nText","useEffect","unsubscribe","on","SELECT_ALL_EVENT","timer","setTimeout","clearTimeout","createElement","role"],"sources":["../../../../src/components/RowSelector/SRReactiveAnnouncer.tsx"],"sourcesContent":["import { ScreenReaderOnly } from '@semcore/base-components';\nimport React from 'react';\n\nimport type { ISelectedRows } from '../../store/SelectableRows';\nimport { SelectableRows } from '../../store/SelectableRows';\n\ntype Props<UniqKey> = {\n selectedRows: ISelectedRows<UniqKey>;\n getI18nText: (key: string) => string;\n};\n\nexport function SRReactiveAnnouncer<UniqKey>(props: Props<UniqKey>) {\n const [ariaMessage, setAriaMessage] = React.useState('');\n\n const setAriaCallback = React.useCallback(() => {\n const isAllSelected = props.selectedRows.isAllSelected();\n\n const message = props.getI18nText(\n isAllSelected\n ? 'DataTable.allItemsSelected:aria-live'\n : 'DataTable.allItemsDeselected:aria-live',\n );\n setAriaMessage(message);\n }, [props.selectedRows]);\n\n React.useEffect(() => {\n const unsubscribe = props.selectedRows.on(SelectableRows.SELECT_ALL_EVENT, setAriaCallback);\n\n return unsubscribe;\n }, [props.selectedRows]);\n\n React.useEffect(() => {\n const timer = setTimeout(() => setAriaMessage(''), 1000);\n return () => clearTimeout(timer);\n }, [ariaMessage]);\n\n return (\n <ScreenReaderOnly role='status' aria-live='polite'>\n {ariaMessage}\n </ScreenReaderOnly>\n );\n}\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,0BAA0B;AAC3D,OAAOC,KAAK,MAAM,OAAO;AAGzB,SAASC,cAAc,QAAQ,4BAA4B;AAO3D,OAAO,SAASC,mBAAmBA,CAAUC,KAAqB,EAAE;EAClE,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGL,KAAK,CAACM,QAAQ,CAAC,EAAE,CAAC;EAExD,MAAMC,eAAe,GAAGP,KAAK,CAACQ,WAAW,CAAC,MAAM;IAC9C,MAAMC,aAAa,GAAGN,KAAK,CAACO,YAAY,CAACD,aAAa,CAAC,CAAC;IAExD,MAAME,OAAO,GAAGR,KAAK,CAACS,WAAW,CAC/BH,aAAa,GACT,sCAAsC,GACtC,wCACN,CAAC;IACDJ,cAAc,CAACM,OAAO,CAAC;EACzB,CAAC,EAAE,CAACR,KAAK,CAACO,YAAY,CAAC,CAAC;EAExBV,KAAK,CAACa,SAAS,CAAC,MAAM;IACpB,MAAMC,WAAW,GAAGX,KAAK,CAACO,YAAY,CAACK,EAAE,CAACd,cAAc,CAACe,gBAAgB,EAAET,eAAe,CAAC;IAE3F,OAAOO,WAAW;EACpB,CAAC,EAAE,CAACX,KAAK,CAACO,YAAY,CAAC,CAAC;EAExBV,KAAK,CAACa,SAAS,CAAC,MAAM;IACpB,MAAMI,KAAK,GAAGC,UAAU,CAAC,MAAMb,cAAc,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IACxD,OAAO,MAAMc,YAAY,CAACF,KAAK,CAAC;EAClC,CAAC,EAAE,CAACb,WAAW,CAAC,CAAC;EAEjB,oBACEJ,KAAA,CAAAoB,aAAA,CAACrB,gBAAgB;IAACsB,IAAI,EAAC,QAAQ;IAAC,aAAU;EAAQ,GAC/CjB,WACe,CAAC;AAEvB","ignoreList":[]}
@@ -97,16 +97,16 @@ export class SelectableRows extends EventEmitter {
97
97
  }
98
98
  toggleOneRow(isSelected, key) {
99
99
  if (isSelected) {
100
- if (this.values.size === 0) {
101
- this.emit(SelectableRows.SELECT_ALL_EVENT);
100
+ if (!this.isIndeterminate()) {
101
+ this.emit(SelectableRows.SET_INDETERMINATE_EVENT);
102
102
  }
103
103
  this.values.add(key);
104
- if (this.values.size === this.availableKeys.size) {
104
+ if (this.isAllSelected()) {
105
105
  this.emit(SelectableRows.SELECT_ALL_EVENT);
106
106
  }
107
107
  } else {
108
- if (this.values.size === this.availableKeys.size) {
109
- this.emit(SelectableRows.SELECT_ALL_EVENT);
108
+ if (this.isAllSelected()) {
109
+ this.emit(SelectableRows.SET_INDETERMINATE_EVENT);
110
110
  }
111
111
  this.values.delete(key);
112
112
  if (this.values.size === 0) {
@@ -118,4 +118,5 @@ export class SelectableRows extends EventEmitter {
118
118
  }
119
119
  _defineProperty(SelectableRows, "TOGGLE_EVENT", 'toggle_selected_row');
120
120
  _defineProperty(SelectableRows, "SELECT_ALL_EVENT", 'select_all_selected_rows');
121
+ _defineProperty(SelectableRows, "SET_INDETERMINATE_EVENT", 'set_indeterminate');
121
122
  //# sourceMappingURL=SelectableRows.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectableRows.js","names":["EventEmitter","UNIQ_ROW_KEY","SelectableRows","constructor","initValues","_defineProperty","Set","values","setAvailableKeys","value","availableKeys","get","Array","from","keys","isChecked","key","has","replace","clearAll","forEach","val","add","emit","TOGGLE_EVENT","isAllSelected","size","isIndeterminate","selectAll","SELECT_ALL_EVENT","clear","clearAllAvailable","delete","toggle","selected","row","isPressedShift","lastSelectedRow","select","item","toggleOneRow","isSelected"],"sources":["../../../src/store/SelectableRows.ts"],"sourcesContent":["import EventEmitter from '@semcore/core/lib/utils/eventEmitter';\n\nimport type { DTRow } from '../components/Body/Row.types';\nimport { UNIQ_ROW_KEY } from '../components/DataTable/DataTable';\n\nexport interface ISelectedRows<UniqKeyType> {\n /** Flag for multiple rows selection */\n isPressedShift: boolean;\n /** Method for set keys from data. Call it in DataTable, on data changes */\n setAvailableKeys(keys: UniqKeyType[]): void;\n\n /** Get the list of keys */\n get(): UniqKeyType[];\n\n /** Check if the row is selected */\n isChecked(key: UniqKeyType): boolean;\n\n /** Replace the list of keys. */\n replace(value: UniqKeyType[]): void;\n\n /** Check if the key exists in selected rows */\n has(value: UniqKeyType): boolean;\n\n /** Select all handler */\n selectAll(): void;\n\n /** Clear all handler */\n clearAll(): void;\n\n /** Clear all available values (rows on current page) handler */\n clearAllAvailable(): void;\n\n /** Toggle selection of row */\n toggle(selected: boolean, row: DTRow<UniqKeyType>): void;\n\n /** Check if all rows selected */\n isAllSelected(): boolean;\n\n /** Check if at least one row selected */\n isIndeterminate(): boolean;\n\n /** Subscribe to changes */\n subscribe: EventEmitter<Events<UniqKeyType>>['subscribe'];\n}\n\ntype Events<UniqRowKeyType> = {\n [SelectableRows.TOGGLE_EVENT]: (val: UniqRowKeyType) => void;\n [SelectableRows.SELECT_ALL_EVENT]: () => void;\n};\n\nexport class SelectableRows<UniqRowKeyType> extends EventEmitter<Events<UniqRowKeyType>> implements ISelectedRows<UniqRowKeyType> {\n private readonly values: Set<UniqRowKeyType>;\n\n private availableKeys = new Set<UniqRowKeyType>();\n\n private lastSelectedRow: UniqRowKeyType | null = null;\n\n public static TOGGLE_EVENT = 'toggle_selected_row' as const;\n public static SELECT_ALL_EVENT = 'select_all_selected_rows' as const;\n\n public isPressedShift: boolean = false;\n\n constructor(initValues: UniqRowKeyType[] = []) {\n super();\n\n this.values = new Set<UniqRowKeyType>(initValues);\n }\n\n public setAvailableKeys(value: UniqRowKeyType[]): void {\n this.availableKeys = new Set(value);\n }\n\n public get() {\n return Array.from(this.values.keys());\n }\n\n public isChecked(key: UniqRowKeyType): boolean {\n return this.values.has(key);\n }\n\n public replace(value: UniqRowKeyType[]): void {\n this.clearAll();\n\n value.forEach((val) => {\n this.values.add(val);\n\n this.emit(SelectableRows.TOGGLE_EVENT, val);\n });\n }\n\n public has(value: UniqRowKeyType): boolean {\n return this.values.has(value);\n }\n\n public isAllSelected(): boolean {\n let isAllSelected = true;\n\n if (this.availableKeys.size === 0 || this.values.size === 0) {\n return false;\n }\n\n for (const key of this.availableKeys.values()) {\n if (!this.values.has(key)) {\n isAllSelected = false;\n break;\n }\n }\n\n return isAllSelected;\n }\n\n public isIndeterminate(): boolean {\n let isIndeterminate = false;\n\n for (const key of this.availableKeys.values()) {\n if (this.values.has(key)) {\n isIndeterminate = true;\n break;\n }\n }\n\n return isIndeterminate;\n }\n\n public selectAll(): void {\n for (const key of this.availableKeys.values()) {\n this.values.add(key);\n this.emit(SelectableRows.TOGGLE_EVENT, key);\n }\n\n this.emit(SelectableRows.SELECT_ALL_EVENT);\n }\n\n public clearAll(): void {\n const keys = Array.from(this.values.values());\n this.values.clear();\n for (const key of keys) {\n this.emit(SelectableRows.TOGGLE_EVENT, key);\n }\n\n this.emit(SelectableRows.SELECT_ALL_EVENT);\n }\n\n public clearAllAvailable(): void {\n for (const key of this.availableKeys.values()) {\n this.values.delete(key);\n this.emit(SelectableRows.TOGGLE_EVENT, key);\n }\n\n this.emit(SelectableRows.SELECT_ALL_EVENT);\n }\n\n public toggle(selected: boolean, row: DTRow<UniqRowKeyType>): void {\n if (this.isPressedShift && this.values.size > 0 && this.lastSelectedRow && (selected ? this.values.has(this.lastSelectedRow) : true)) {\n let select = false;\n\n for (const item of this.availableKeys.values()) {\n if (!select && (item === row[UNIQ_ROW_KEY] || item === this.lastSelectedRow)) {\n select = true;\n this.toggleOneRow(selected, item);\n continue;\n }\n\n if (select) {\n this.toggleOneRow(selected, item);\n }\n\n if (select && (item === row[UNIQ_ROW_KEY] || item === this.lastSelectedRow)) {\n break;\n }\n }\n } else {\n this.toggleOneRow(selected, row[UNIQ_ROW_KEY]);\n }\n\n this.lastSelectedRow = row[UNIQ_ROW_KEY];\n }\n\n private toggleOneRow(isSelected: boolean, key: UniqRowKeyType): void {\n if (isSelected) {\n if (this.values.size === 0) {\n this.emit(SelectableRows.SELECT_ALL_EVENT);\n }\n\n this.values.add(key);\n\n if (this.values.size === this.availableKeys.size) {\n this.emit(SelectableRows.SELECT_ALL_EVENT);\n }\n } else {\n if (this.values.size === this.availableKeys.size) {\n this.emit(SelectableRows.SELECT_ALL_EVENT);\n }\n\n this.values.delete(key);\n\n if (this.values.size === 0) {\n this.emit(SelectableRows.SELECT_ALL_EVENT);\n }\n }\n\n this.emit(SelectableRows.TOGGLE_EVENT, key);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SelectableRows.js","names":["EventEmitter","UNIQ_ROW_KEY","SelectableRows","constructor","initValues","_defineProperty","Set","values","setAvailableKeys","value","availableKeys","get","Array","from","keys","isChecked","key","has","replace","clearAll","forEach","val","add","emit","TOGGLE_EVENT","isAllSelected","size","isIndeterminate","selectAll","SELECT_ALL_EVENT","clear","clearAllAvailable","delete","toggle","selected","row","isPressedShift","lastSelectedRow","select","item","toggleOneRow","isSelected","SET_INDETERMINATE_EVENT"],"sources":["../../../src/store/SelectableRows.ts"],"sourcesContent":["import EventEmitter from '@semcore/core/lib/utils/eventEmitter';\n\nimport type { DTRow } from '../components/Body/Row.types';\nimport { UNIQ_ROW_KEY } from '../components/DataTable/DataTable';\n\nexport interface ISelectedRows<UniqKeyType> {\n /** Flag for multiple rows selection */\n isPressedShift: boolean;\n /** Method for set keys from data. Call it in DataTable, on data changes */\n setAvailableKeys(keys: UniqKeyType[]): void;\n\n /** Get the list of keys */\n get(): UniqKeyType[];\n\n /** Check if the row is selected */\n isChecked(key: UniqKeyType): boolean;\n\n /** Replace the list of keys. */\n replace(value: UniqKeyType[]): void;\n\n /** Check if the key exists in selected rows */\n has(value: UniqKeyType): boolean;\n\n /** Select all handler */\n selectAll(): void;\n\n /** Clear all handler */\n clearAll(): void;\n\n /** Clear all available values (rows on current page) handler */\n clearAllAvailable(): void;\n\n /** Toggle selection of row */\n toggle(selected: boolean, row: DTRow<UniqKeyType>): void;\n\n /** Check if all rows selected */\n isAllSelected(): boolean;\n\n /** Check if at least one row selected */\n isIndeterminate(): boolean;\n\n /** Subscribe to changes */\n on: EventEmitter<Events<UniqKeyType>>['on'];\n /** Unsubscribe to changes */\n off: EventEmitter<Events<UniqKeyType>>['off'];\n}\n\ntype Events<UniqRowKeyType> = {\n [SelectableRows.TOGGLE_EVENT]: (val: UniqRowKeyType) => void;\n [SelectableRows.SELECT_ALL_EVENT]: () => void;\n [SelectableRows.SET_INDETERMINATE_EVENT]: () => void;\n};\n\nexport class SelectableRows<UniqRowKeyType> extends EventEmitter<Events<UniqRowKeyType>> implements ISelectedRows<UniqRowKeyType> {\n private readonly values: Set<UniqRowKeyType>;\n\n private availableKeys = new Set<UniqRowKeyType>();\n\n private lastSelectedRow: UniqRowKeyType | null = null;\n\n public static TOGGLE_EVENT = 'toggle_selected_row' as const;\n public static SELECT_ALL_EVENT = 'select_all_selected_rows' as const;\n public static SET_INDETERMINATE_EVENT = 'set_indeterminate' as const;\n\n public isPressedShift: boolean = false;\n\n constructor(initValues: UniqRowKeyType[] = []) {\n super();\n\n this.values = new Set<UniqRowKeyType>(initValues);\n }\n\n public setAvailableKeys(value: UniqRowKeyType[]): void {\n this.availableKeys = new Set(value);\n }\n\n public get() {\n return Array.from(this.values.keys());\n }\n\n public isChecked(key: UniqRowKeyType): boolean {\n return this.values.has(key);\n }\n\n public replace(value: UniqRowKeyType[]): void {\n this.clearAll();\n\n value.forEach((val) => {\n this.values.add(val);\n\n this.emit(SelectableRows.TOGGLE_EVENT, val);\n });\n }\n\n public has(value: UniqRowKeyType): boolean {\n return this.values.has(value);\n }\n\n public isAllSelected(): boolean {\n let isAllSelected = true;\n\n if (this.availableKeys.size === 0 || this.values.size === 0) {\n return false;\n }\n\n for (const key of this.availableKeys.values()) {\n if (!this.values.has(key)) {\n isAllSelected = false;\n break;\n }\n }\n\n return isAllSelected;\n }\n\n public isIndeterminate(): boolean {\n let isIndeterminate = false;\n\n for (const key of this.availableKeys.values()) {\n if (this.values.has(key)) {\n isIndeterminate = true;\n break;\n }\n }\n\n return isIndeterminate;\n }\n\n public selectAll(): void {\n for (const key of this.availableKeys.values()) {\n this.values.add(key);\n this.emit(SelectableRows.TOGGLE_EVENT, key);\n }\n\n this.emit(SelectableRows.SELECT_ALL_EVENT);\n }\n\n public clearAll(): void {\n const keys = Array.from(this.values.values());\n this.values.clear();\n for (const key of keys) {\n this.emit(SelectableRows.TOGGLE_EVENT, key);\n }\n\n this.emit(SelectableRows.SELECT_ALL_EVENT);\n }\n\n public clearAllAvailable(): void {\n for (const key of this.availableKeys.values()) {\n this.values.delete(key);\n this.emit(SelectableRows.TOGGLE_EVENT, key);\n }\n\n this.emit(SelectableRows.SELECT_ALL_EVENT);\n }\n\n public toggle(selected: boolean, row: DTRow<UniqRowKeyType>): void {\n if (this.isPressedShift && this.values.size > 0 && this.lastSelectedRow && (selected ? this.values.has(this.lastSelectedRow) : true)) {\n let select = false;\n\n for (const item of this.availableKeys.values()) {\n if (!select && (item === row[UNIQ_ROW_KEY] || item === this.lastSelectedRow)) {\n select = true;\n this.toggleOneRow(selected, item);\n continue;\n }\n\n if (select) {\n this.toggleOneRow(selected, item);\n }\n\n if (select && (item === row[UNIQ_ROW_KEY] || item === this.lastSelectedRow)) {\n break;\n }\n }\n } else {\n this.toggleOneRow(selected, row[UNIQ_ROW_KEY]);\n }\n\n this.lastSelectedRow = row[UNIQ_ROW_KEY];\n }\n\n private toggleOneRow(isSelected: boolean, key: UniqRowKeyType): void {\n if (isSelected) {\n if (!this.isIndeterminate()) {\n this.emit(SelectableRows.SET_INDETERMINATE_EVENT);\n }\n\n this.values.add(key);\n\n if (this.isAllSelected()) {\n this.emit(SelectableRows.SELECT_ALL_EVENT);\n }\n } else {\n if (this.isAllSelected()) {\n this.emit(SelectableRows.SET_INDETERMINATE_EVENT);\n }\n\n this.values.delete(key);\n\n if (this.values.size === 0) {\n this.emit(SelectableRows.SELECT_ALL_EVENT);\n }\n }\n\n this.emit(SelectableRows.TOGGLE_EVENT, key);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,8 @@
1
1
  {
2
- "sortableColumn": "Sortierbar"
2
+ "sortableColumn": "Sortierbar",
3
+ "DataTable.Cell.AccordionToggle.expand:aria-label": "Details einblenden",
4
+ "DataTable.Cell.AccordionToggle.collapse:aria-label": "Details ausblenden",
5
+ "DataTable.Header.selectAllCheckbox:aria-label": "Alle Elemente",
6
+ "DataTable.allItemsSelected:aria-live": "Alle Elemente ausgewählt",
7
+ "DataTable.allItemsDeselected:aria-live": "Alle Elemente nicht ausgewählt"
3
8
  }
@@ -1,3 +1,8 @@
1
1
  {
2
- "sortableColumn": "Ordenable"
2
+ "sortableColumn": "Ordenable",
3
+ "DataTable.Cell.AccordionToggle.expand:aria-label": "Mostrar detalles",
4
+ "DataTable.Cell.AccordionToggle.collapse:aria-label": "Ocultar detalles",
5
+ "DataTable.Header.selectAllCheckbox:aria-label": "Todos los elementos",
6
+ "DataTable.allItemsSelected:aria-live": "Todos los elementos seleccionados",
7
+ "DataTable.allItemsDeselected:aria-live": "Todos los elementos deseleccionados"
3
8
  }
@@ -1,3 +1,8 @@
1
1
  {
2
- "sortableColumn": "Triable"
2
+ "sortableColumn": "Triable",
3
+ "DataTable.Cell.AccordionToggle.expand:aria-label": "Afficher les détails",
4
+ "DataTable.Cell.AccordionToggle.collapse:aria-label": "Masquer les détails",
5
+ "DataTable.Header.selectAllCheckbox:aria-label": "Tous les éléments",
6
+ "DataTable.allItemsSelected:aria-live": "Tous les éléments sélectionnés",
7
+ "DataTable.allItemsDeselected:aria-live": "Tous les éléments désélectionnés"
3
8
  }
@@ -1,3 +1,8 @@
1
1
  {
2
- "sortableColumn": "Ordinabile"
2
+ "sortableColumn": "Ordinabile",
3
+ "DataTable.Cell.AccordionToggle.expand:aria-label": "Mostra dettagli",
4
+ "DataTable.Cell.AccordionToggle.collapse:aria-label": "Nascondi dettagli",
5
+ "DataTable.Header.selectAllCheckbox:aria-label": "Tutti gli elementi",
6
+ "DataTable.allItemsSelected:aria-live": "Tutti gli elementi selezionati",
7
+ "DataTable.allItemsDeselected:aria-live": "Tutti gli elementi deselezionati"
3
8
  }
@@ -1,3 +1,8 @@
1
1
  {
2
- "sortableColumn": "分類可能"
2
+ "sortableColumn": "分類可能",
3
+ "DataTable.Cell.AccordionToggle.expand:aria-label": "詳細を表示する",
4
+ "DataTable.Cell.AccordionToggle.collapse:aria-label": "詳細を非表示にする",
5
+ "DataTable.Header.selectAllCheckbox:aria-label": "すべての項目",
6
+ "DataTable.allItemsSelected:aria-live": "すべての項目が選択されました",
7
+ "DataTable.allItemsDeselected:aria-live": "すべての項目が選択解除されました"
3
8
  }
@@ -1,3 +1,8 @@
1
1
  {
2
- "sortableColumn": "정렬 가능"
2
+ "sortableColumn": "정렬 가능",
3
+ "DataTable.Cell.AccordionToggle.expand:aria-label": "세부 정보 표시",
4
+ "DataTable.Cell.AccordionToggle.collapse:aria-label": "세부 정보 숨기기",
5
+ "DataTable.Header.selectAllCheckbox:aria-label": "모든 항목",
6
+ "DataTable.allItemsSelected:aria-live": "모든 항목이 선택됨",
7
+ "DataTable.allItemsDeselected:aria-live": "모든 항목이 선택 해제됨"
3
8
  }
@@ -1,3 +1,8 @@
1
1
  {
2
- "sortableColumn": "Sorteerbaar"
2
+ "sortableColumn": "Sorteerbaar",
3
+ "DataTable.Cell.AccordionToggle.expand:aria-label": "Details tonen",
4
+ "DataTable.Cell.AccordionToggle.collapse:aria-label": "Details verbergen",
5
+ "DataTable.Header.selectAllCheckbox:aria-label": "Alle items",
6
+ "DataTable.allItemsSelected:aria-live": "Alle items geselecteerd",
7
+ "DataTable.allItemsDeselected:aria-live": "Alle items niet geselecteerd"
3
8
  }
@@ -1,3 +1,8 @@
1
1
  {
2
- "sortableColumn": "Umożliwia sortowanie"
2
+ "sortableColumn": "Umożliwia sortowanie",
3
+ "DataTable.Cell.AccordionToggle.expand:aria-label": "Pokaż szczegóły",
4
+ "DataTable.Cell.AccordionToggle.collapse:aria-label": "Ukryj szczegóły",
5
+ "DataTable.Header.selectAllCheckbox:aria-label": "Wszystkie przedmioty",
6
+ "DataTable.allItemsSelected:aria-live": "Wszystkie przedmioty wybrane",
7
+ "DataTable.allItemsDeselected:aria-live": "Wszystkie przedmioty odznaczone"
3
8
  }
@@ -1,3 +1,8 @@
1
1
  {
2
- "sortableColumn": "Classificável"
2
+ "sortableColumn": "Classificável",
3
+ "DataTable.Cell.AccordionToggle.expand:aria-label": "Exibir detalhes",
4
+ "DataTable.Cell.AccordionToggle.collapse:aria-label": "Ocultar detalhes",
5
+ "DataTable.Header.selectAllCheckbox:aria-label": "Todos os itens",
6
+ "DataTable.allItemsSelected:aria-live": "Todos os itens selecionados",
7
+ "DataTable.allItemsDeselected:aria-live": "Todos os itens desmarcados"
3
8
  }
@@ -1,3 +1,8 @@
1
1
  {
2
- "sortableColumn": "Sorterbar"
2
+ "sortableColumn": "Sorterbar",
3
+ "DataTable.Cell.AccordionToggle.expand:aria-label": "Visa detaljer",
4
+ "DataTable.Cell.AccordionToggle.collapse:aria-label": "Dölj detaljer",
5
+ "DataTable.Header.selectAllCheckbox:aria-label": "Alla objekt",
6
+ "DataTable.allItemsSelected:aria-live": "Alla objekt valda",
7
+ "DataTable.allItemsDeselected:aria-live": "Alla objekt avmarkerade"
3
8
  }
@@ -1,3 +1,8 @@
1
1
  {
2
- "sortableColumn": "Sıralanabilir"
2
+ "sortableColumn": "Sıralanabilir",
3
+ "DataTable.Cell.AccordionToggle.expand:aria-label": "Detayları göster",
4
+ "DataTable.Cell.AccordionToggle.collapse:aria-label": "Detayları gizle",
5
+ "DataTable.Header.selectAllCheckbox:aria-label": "Tüm öğeler",
6
+ "DataTable.allItemsSelected:aria-live": "Tüm öğeler seçildi",
7
+ "DataTable.allItemsDeselected:aria-live": "Tüm öğeler seçilmedi"
3
8
  }
@@ -1,3 +1,8 @@
1
1
  {
2
- "sortableColumn": "Có thể sắp xếp"
2
+ "sortableColumn": "Có thể sắp xếp",
3
+ "DataTable.Cell.AccordionToggle.expand:aria-label": "Hiển thị chi tiết",
4
+ "DataTable.Cell.AccordionToggle.collapse:aria-label": "Ẩn bớt",
5
+ "DataTable.Header.selectAllCheckbox:aria-label": "Tất cả các mục",
6
+ "DataTable.allItemsSelected:aria-live": "Tất cả các mục đã được chọn",
7
+ "DataTable.allItemsDeselected:aria-live": "Tất cả các mục đã được bỏ chọn"
3
8
  }
@@ -1,3 +1,8 @@
1
1
  {
2
- "sortableColumn": "可排序"
2
+ "sortableColumn": "可排序",
3
+ "DataTable.Cell.AccordionToggle.expand:aria-label": "显示详细信息",
4
+ "DataTable.Cell.AccordionToggle.collapse:aria-label": "隐藏详细信息",
5
+ "DataTable.Header.selectAllCheckbox:aria-label": "所有项目",
6
+ "DataTable.allItemsSelected:aria-live": "所有项目已选择",
7
+ "DataTable.allItemsDeselected:aria-live": "所有项目已取消选择"
3
8
  }
@@ -1,6 +1,6 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
2
  import { sstyled, Component, lastInteraction, assignProps, createComponent } from "@semcore/core";
3
- import { Box, ScrollArea, ScreenReaderOnly } from "@semcore/base-components";
3
+ import { Box, ScrollArea } from "@semcore/base-components";
4
4
  import canUseDOM from "@semcore/core/lib/utils/canUseDOM";
5
5
  import i18nEnhance from "@semcore/core/lib/utils/enhances/i18nEnhance";
6
6
  import findComponent from "@semcore/core/lib/utils/findComponent";
@@ -16,6 +16,8 @@ import { localizedMessages } from "../../translations/__intergalactic-dynamic-lo
16
16
  import { Body } from "../Body/Body.mjs";
17
17
  import { MergedRowsCell, MergedColumnsCell } from "../Body/MergedCells.mjs";
18
18
  import { Head } from "../Head/Head.mjs";
19
+ import { SRAnnouncer } from "../RowSelector/SRAnnouncer.mjs";
20
+ import { SRReactiveAnnouncer } from "../RowSelector/SRReactiveAnnouncer.mjs";
19
21
  const style = (
20
22
  /*__reshadow_css_start__*/
21
23
  (sstyled.insert(
@@ -101,7 +103,6 @@ class DataTableRoot extends Component {
101
103
  gridTemplateColumns: [],
102
104
  gridTemplateAreas: []
103
105
  });
104
- _defineProperty(this, "selectAllMessageTimer", 0);
105
106
  _defineProperty(this, "headerNodesMap", /* @__PURE__ */ new Map());
106
107
  _defineProperty(this, "selectedRowsContainer", void 0);
107
108
  _defineProperty(this, "lastSelectedRowKey", void 0);
@@ -202,23 +203,6 @@ class DataTableRoot extends Component {
202
203
  row
203
204
  });
204
205
  });
205
- _defineProperty(this, "setSelectAllMessage", (selectedAll) => {
206
- if (this.selectAllMessageTimer) {
207
- clearTimeout(this.selectAllMessageTimer);
208
- }
209
- const {
210
- getI18nText
211
- } = this.asProps;
212
- const message = getI18nText(selectedAll ? "DataTable.allItemsSelected:aria-live" : "DataTable.allItemsDeselected:aria-live");
213
- this.setState({
214
- selectAllMessage: message
215
- });
216
- this.selectAllMessageTimer = window.setTimeout(() => {
217
- this.setState({
218
- selectAllMessage: ""
219
- });
220
- }, 5e3);
221
- });
222
206
  _defineProperty(this, "getRow", (index) => {
223
207
  return this.tableRef.current?.querySelector(`:scope [aria-rowindex="${index + 1}"]:not([aria-hidden="true"]):not(:scope [data-ui-name="DataTable"] [aria-rowindex="${index + 1}"]:not([aria-hidden="true"])`);
224
208
  });
@@ -585,23 +569,6 @@ class DataTableRoot extends Component {
585
569
  this.calculateVerticalShadow();
586
570
  }
587
571
  }
588
- if (prevProps.selectedRows !== selectedRows && selectedRows !== void 0 && Array.isArray(selectedRows)) {
589
- const selectedRowsSet = new Set(selectedRows);
590
- const allChecked = [];
591
- const allUnchecked = [];
592
- this.flatRows.forEach((row) => {
593
- if (selectedRowsSet.has(row[UNIQ_ROW_KEY])) {
594
- allChecked.push(row[UNIQ_ROW_KEY]);
595
- } else {
596
- allUnchecked.push(row[UNIQ_ROW_KEY]);
597
- }
598
- });
599
- if (allChecked.length === data.length) {
600
- this.setSelectAllMessage(true);
601
- } else if (allUnchecked.length === data.length) {
602
- this.setSelectAllMessage(false);
603
- }
604
- }
605
572
  if (prevProps.selectedRows !== selectedRows && selectedRows !== void 0 && !Array.isArray(selectedRows)) {
606
573
  this.selectedRowsContainer = selectedRows;
607
574
  }
@@ -822,7 +789,9 @@ class DataTableRoot extends Component {
822
789
  children,
823
790
  headerProps,
824
791
  loading,
825
- selectedRows
792
+ selectedRows,
793
+ getI18nText,
794
+ data
826
795
  } = this.asProps;
827
796
  const [offsetLeftSum, offsetRightSum] = this.getScrollOffsetValue();
828
797
  const {
@@ -897,10 +866,15 @@ class DataTableRoot extends Component {
897
866
  }), /* @__PURE__ */ React.createElement(ScrollArea.Bar, {
898
867
  orientation: "vertical",
899
868
  zIndex: 20
900
- })), selectedRows !== void 0 && /* @__PURE__ */ React.createElement(ScreenReaderOnly, _ref2.cn("ScreenReaderOnly", {
901
- "aria-live": "polite",
902
- "role": "status"
903
- }), this.state.selectAllMessage));
869
+ })), selectedRows !== void 0 && !Array.isArray(selectedRows) && /* @__PURE__ */ React.createElement(SRReactiveAnnouncer, _ref2.cn("SRReactiveAnnouncer", {
870
+ "selectedRows": selectedRows,
871
+ "getI18nText": getI18nText
872
+ })), selectedRows !== void 0 && Array.isArray(selectedRows) && /* @__PURE__ */ React.createElement(SRAnnouncer, _ref2.cn("SRAnnouncer", {
873
+ "selectedRows": selectedRows,
874
+ "getI18nText": getI18nText,
875
+ "data": data,
876
+ "flatRows": this.flatRows
877
+ })));
904
878
  }
905
879
  calculateColumnsFromConfig() {
906
880
  const {
@@ -58,6 +58,7 @@ class HeadRoot extends Component {
58
58
  constructor(...args) {
59
59
  super(...args);
60
60
  _defineProperty(this, "unsubscribeSelectAll", void 0);
61
+ _defineProperty(this, "unsubscribeSetIndeterminate", void 0);
61
62
  _defineProperty(this, "handleSelectAll", (value, event) => {
62
63
  const {
63
64
  selectedRows
@@ -93,13 +94,17 @@ class HeadRoot extends Component {
93
94
  selectedRows
94
95
  } = this.asProps;
95
96
  if (selectedRows && !Array.isArray(selectedRows)) {
96
- this.unsubscribeSelectAll = selectedRows.subscribe(SelectableRows.SELECT_ALL_EVENT, () => {
97
+ this.unsubscribeSelectAll = selectedRows.on(SelectableRows.SELECT_ALL_EVENT, () => {
98
+ this.forceUpdate();
99
+ });
100
+ this.unsubscribeSetIndeterminate = selectedRows.on(SelectableRows.SET_INDETERMINATE_EVENT, () => {
97
101
  this.forceUpdate();
98
102
  });
99
103
  }
100
104
  }
101
105
  componentWillUnmount() {
102
106
  this.unsubscribeSelectAll?.();
107
+ this.unsubscribeSetIndeterminate?.();
103
108
  }
104
109
  sortableColumnDescribeId() {
105
110
  const {
@@ -51,7 +51,7 @@ class RowSelector extends React__default.PureComponent {
51
51
  selectedRows
52
52
  } = this.props;
53
53
  if (selectedRows && !Array.isArray(selectedRows)) {
54
- this.unsubscribeToggle = selectedRows.subscribe(SelectableRows.TOGGLE_EVENT, (key) => {
54
+ this.unsubscribeToggle = selectedRows.on(SelectableRows.TOGGLE_EVENT, (key) => {
55
55
  if (row[UNIQ_ROW_KEY] === key) {
56
56
  this.setState({
57
57
  checked: selectedRows.has(row[UNIQ_ROW_KEY])