@economic/taco 2.26.20 → 2.27.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/components/Report/Report.d.ts +1 -1
- package/dist/components/Report/types.d.ts +1 -1
- package/dist/components/Report/useReport.d.ts +2 -2
- package/dist/components/Select2/Select2.d.ts +2 -0
- package/dist/components/Select2/utilities.d.ts +2 -0
- package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js +1 -1
- package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/useReport.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/Select2.js +14 -2
- package/dist/esm/packages/taco/src/components/Select2/Select2.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Option.js +2 -6
- package/dist/esm/packages/taco/src/components/Select2/components/Option.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js +3 -6
- package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/utilities.js +14 -1
- package/dist/esm/packages/taco/src/components/Select2/utilities.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js +2 -2
- package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/Table.js +4 -2
- package/dist/esm/packages/taco/src/primitives/Table/Core/Table.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Footer.js +15 -6
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Footer.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Print/Print.js +15 -6
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Print/Print.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/date.js +2 -2
- package/dist/esm/packages/taco/src/utils/date.js.map +1 -1
- package/dist/primitives/Table/Core/components/Footer/Footer.d.ts +11 -2
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.d.ts +1 -1
- package/dist/taco.cjs.development.js +63 -28
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +1 -1
- package/dist/taco.cjs.production.min.js.map +1 -1
- package/dist/utils/date.d.ts +1 -1
- package/package.json +2 -2
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Alert.js","sources":["../../../../../../../../../src/components/Table3/components/Editing/Alert.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { ScrollToOptions as ReactVirtualScrollToOptions } from '@tanstack/react-virtual';\nimport { Alert as BaseAlert, AlertProps as BaseAlertProps } from '../../../Alert/Alert';\nimport { TableRef } from '../../../../primitives/Table/types';\nimport { Tooltip } from '../../../Tooltip/Tooltip';\nimport { useLocalization } from '../../../Provider/Localization';\nimport { Dialog, DialogProps } from '../../../Dialog/Dialog';\nimport { Group } from '../../../Group/Group';\nimport { Button } from '../../../Button/Button';\n\ntype AlertProps<TType = unknown> = Omit<BaseAlertProps, 'children'> & {\n scrollToIndex: (index: number, options: ReactVirtualScrollToOptions) => void;\n table: ReactTable<TType>;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function Alert<TType = unknown>(props: AlertProps<TType>) {\n const { scrollToIndex, table, tableRef, ...attributes } = props;\n const { texts } = useLocalization();\n const validationTexts = texts.table3.editing.validation;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const [showFilterResetDialog, setShowFilterResetDialog] = React.useState<string | false>(false);\n\n const pendingChangesWithErrors = tableMeta.editing.getErrors<TType>();\n\n // mark errors being rendered as seen\n React.useEffect(() => {\n pendingChangesWithErrors.forEach(error => {\n tableMeta.editing.setRowErrorsSeen(error.rowId);\n });\n }, [pendingChangesWithErrors]);\n\n function scrollToRow(rowIndex: number) {\n tableMeta.rowActive.setRowActiveIndex(rowIndex);\n scrollToIndex(rowIndex, { align: 'center' });\n\n requestAnimationFrame(() => {\n const cell = tableRef.current?.querySelector(\n 'tbody > tr[data-row-active=\"true\"] > td[data-cell-editing-invalid=\"true\"]'\n );\n\n if (cell) {\n (cell as HTMLElement).focus?.();\n }\n });\n }\n\n // generate the \"N unsaved entries\" title\n const title = (\n pendingChangesWithErrors.length === 1 ? validationTexts.alert.titleOne : validationTexts.alert.titlePlural\n ).replace('[COUNT]', String(pendingChangesWithErrors.length));\n\n // generate links to each invalid row, to go into the error message\n const links: React.ReactNode[] = [];\n const rowIdentityColumn = tableMeta.rowIdentityColumnId ? table.getColumn(tableMeta.rowIdentityColumnId) : undefined;\n\n pendingChangesWithErrors.forEach((error, index) => {\n // if appropriate, concatenate the item with the text \"and\"\n if (pendingChangesWithErrors.length > 1 && index === pendingChangesWithErrors.length - 1) {\n links.push(validationTexts.alert.messageAnd);\n }\n\n const handleClick = () => {\n const rowIndex = table.getRowModel().rows.findIndex(row => row.id === error.rowId);\n\n if (rowIndex > -1) {\n scrollToRow(rowIndex);\n } else {\n setShowFilterResetDialog(error.rowId);\n }\n };\n\n let tooltip;\n\n if (error.pendingChange._meta.errors.row) {\n tooltip = error.pendingChange._meta.errors.row;\n } else {\n const firstCellErrorColumnId = Object.keys(error.pendingChange._meta.errors.cells)[0];\n const columnName = table.getAllColumns().find(column => column.id === firstCellErrorColumnId)?.columnDef.meta?.header;\n tooltip = `${columnName}: ${error.pendingChange._meta.errors.cells[firstCellErrorColumnId]}`;\n }\n\n links.push(\n <Tooltip key={error.rowId} title={tooltip}>\n <span className=\"text-blue\" onClick={handleClick} role=\"button\">\n {rowIdentityColumn ? error.pendingChange._meta.original[rowIdentityColumn.id] : error.rowId}\n </span>\n </Tooltip>\n );\n\n // if appropriate, concatenate the item with the text \",\"\n if (pendingChangesWithErrors.length > 2 && index < pendingChangesWithErrors.length - 2) {\n links.push(', ');\n }\n });\n\n // generate the \"Row N is incomplete and hasn't been saved\" error message\n const message = (links.length === 1 ? validationTexts.alert.messageOne : validationTexts.alert.messagePlural)\n .split(/(\\[\\w+\\])/)\n .map(part => {\n if (part === '[COLUMN]') {\n return rowIdentityColumn?.columnDef.meta?.header ?? validationTexts.alert.messageRow;\n }\n\n if (part === '[ROW]') {\n return links;\n }\n\n return part;\n });\n\n const handleResetFilters = () => {\n table.resetGlobalFilter();\n table.resetColumnFilters();\n\n requestAnimationFrame(() => {\n const rowIndex = table.getRowModel().rows.findIndex(row => row.id === showFilterResetDialog);\n\n if (rowIndex > -1) {\n scrollToRow(rowIndex);\n }\n\n setShowFilterResetDialog(false);\n });\n };\n\n return (\n <>\n <BaseAlert {...attributes} state=\"error\">\n <span className=\"font-bold\">{title}</span>\n {message}\n </BaseAlert>\n <FilterResetDialog\n open={showFilterResetDialog !== false}\n onChange={() => setShowFilterResetDialog(false)}\n onSubmit={handleResetFilters}\n />\n </>\n );\n}\n\ntype FilterResetDialogProps = Omit<DialogProps, 'children'> & {\n onSubmit: () => void;\n};\n\nfunction FilterResetDialog(props: FilterResetDialogProps) {\n const { onSubmit: handleSubmit, ...dialogProps } = props;\n const { texts } = useLocalization();\n\n return (\n <Dialog {...dialogProps} size=\"xs\">\n <Dialog.Content aria-label=\"Create a new account\">\n <Dialog.Title>{texts.table3.editing.validation.resetFiltersDialog.title}</Dialog.Title>\n\n <p>{texts.table3.editing.validation.resetFiltersDialog.description}</p>\n\n <Dialog.Footer>\n <Group>\n <Dialog.Close>\n <Button>{texts.table3.editing.validation.resetFiltersDialog.cancel}</Button>\n </Dialog.Close>\n <Button appearance=\"primary\" onClick={handleSubmit}>\n {texts.table3.editing.validation.resetFiltersDialog.confirm}\n </Button>\n </Group>\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog>\n );\n}\n"],"names":["Alert","props","scrollToIndex","table","tableRef","attributes","texts","useLocalization","validationTexts","table3","editing","validation","tableMeta","options","meta","showFilterResetDialog","setShowFilterResetDialog","React","useState","pendingChangesWithErrors","getErrors","useEffect","forEach","error","setRowErrorsSeen","rowId","scrollToRow","rowIndex","rowActive","setRowActiveIndex","align","requestAnimationFrame","cell","_tableRef$current","current","querySelector","_cell$focus","focus","call","title","length","alert","titleOne","titlePlural","replace","String","links","rowIdentityColumn","rowIdentityColumnId","getColumn","undefined","index","push","messageAnd","handleClick","getRowModel","rows","findIndex","row","id","tooltip","pendingChange","_meta","errors","_table$getAllColumns$","_table$getAllColumns$2","firstCellErrorColumnId","Object","keys","cells","columnName","getAllColumns","find","column","columnDef","header","Tooltip","key","className","onClick","role","original","message","messageOne","messagePlural","split","map","part","_rowIdentityColumn$co","_rowIdentityColumn$co2","messageRow","handleResetFilters","resetGlobalFilter","resetColumnFilters","BaseAlert","state","FilterResetDialog","open","onChange","onSubmit","handleSubmit","dialogProps","Dialog","size","Content","Title","resetFiltersDialog","description","Footer","Group","Close","Button","cancel","appearance","confirm"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Alert.js","sources":["../../../../../../../../../src/components/Table3/components/Editing/Alert.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { ScrollToOptions as ReactVirtualScrollToOptions } from '@tanstack/react-virtual';\nimport { Alert as BaseAlert, AlertProps as BaseAlertProps } from '../../../Alert/Alert';\nimport { TableRef } from '../../../../primitives/Table/types';\nimport { Tooltip } from '../../../Tooltip/Tooltip';\nimport { useLocalization } from '../../../Provider/Localization';\nimport { Dialog, DialogProps } from '../../../Dialog/Dialog';\nimport { Group } from '../../../Group/Group';\nimport { Button } from '../../../Button/Button';\n\ntype AlertProps<TType = unknown> = Omit<BaseAlertProps, 'children'> & {\n scrollToIndex: (index: number, options: ReactVirtualScrollToOptions) => void;\n table: ReactTable<TType>;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function Alert<TType = unknown>(props: AlertProps<TType>) {\n const { scrollToIndex, table, tableRef, ...attributes } = props;\n const { texts } = useLocalization();\n const validationTexts = texts.table3.editing.validation;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const [showFilterResetDialog, setShowFilterResetDialog] = React.useState<string | false>(false);\n\n const pendingChangesWithErrors = tableMeta.editing.getErrors<TType>();\n\n // mark errors being rendered as seen\n React.useEffect(() => {\n pendingChangesWithErrors.forEach(error => {\n tableMeta.editing.setRowErrorsSeen(error.rowId);\n });\n }, [pendingChangesWithErrors]);\n\n function scrollToRow(rowIndex: number) {\n tableMeta.rowActive.setRowActiveIndex(rowIndex);\n scrollToIndex(rowIndex, { align: 'center' });\n\n requestAnimationFrame(() => {\n const cell = tableRef.current?.querySelector(\n 'tbody > tr[data-row-active=\"true\"] > td[data-cell-editing-invalid=\"true\"]'\n );\n\n if (cell) {\n (cell as HTMLElement).focus?.();\n }\n });\n }\n\n // generate the \"N unsaved entries\" title\n const title = (\n pendingChangesWithErrors.length === 1 ? validationTexts.alert.titleOne : validationTexts.alert.titlePlural\n ).replace('[COUNT]', String(pendingChangesWithErrors.length));\n\n // generate links to each invalid row, to go into the error message\n const links: React.ReactNode[] = [];\n const rowIdentityColumn = tableMeta.rowIdentityColumnId ? table.getColumn(tableMeta.rowIdentityColumnId) : undefined;\n\n pendingChangesWithErrors.forEach((error, index) => {\n // if appropriate, concatenate the item with the text \"and\"\n if (pendingChangesWithErrors.length > 1 && index === pendingChangesWithErrors.length - 1) {\n links.push(validationTexts.alert.messageAnd);\n }\n const rowIndex = table.getRowModel().rows.findIndex(row => row.id === error.rowId);\n\n const handleClick = () => {\n if (rowIndex > -1) {\n scrollToRow(rowIndex);\n } else {\n setShowFilterResetDialog(error.rowId);\n }\n };\n\n let tooltip;\n\n if (error.pendingChange._meta.errors.row) {\n tooltip = error.pendingChange._meta.errors.row;\n } else {\n const firstCellErrorColumnId = Object.keys(error.pendingChange._meta.errors.cells)[0];\n const columnName = table.getAllColumns().find(column => column.id === firstCellErrorColumnId)?.columnDef.meta?.header;\n tooltip = `${columnName}: ${error.pendingChange._meta.errors.cells[firstCellErrorColumnId]}`;\n }\n\n links.push(\n <Tooltip key={error.rowId} title={tooltip}>\n <span className=\"text-blue\" onClick={handleClick} role=\"button\">\n {rowIdentityColumn ? error.pendingChange._meta.original[rowIdentityColumn.id] : rowIndex + 1}\n </span>\n </Tooltip>\n );\n\n // if appropriate, concatenate the item with the text \",\"\n if (pendingChangesWithErrors.length > 2 && index < pendingChangesWithErrors.length - 2) {\n links.push(', ');\n }\n });\n\n // generate the \"Row N is incomplete and hasn't been saved\" error message\n const message = (links.length === 1 ? validationTexts.alert.messageOne : validationTexts.alert.messagePlural)\n .split(/(\\[\\w+\\])/)\n .map(part => {\n if (part === '[COLUMN]') {\n return rowIdentityColumn?.columnDef.meta?.header ?? validationTexts.alert.messageRow;\n }\n\n if (part === '[ROW]') {\n return links;\n }\n\n return part;\n });\n\n const handleResetFilters = () => {\n table.resetGlobalFilter();\n table.resetColumnFilters();\n\n requestAnimationFrame(() => {\n const rowIndex = table.getRowModel().rows.findIndex(row => row.id === showFilterResetDialog);\n\n if (rowIndex > -1) {\n scrollToRow(rowIndex);\n }\n\n setShowFilterResetDialog(false);\n });\n };\n\n return (\n <>\n <BaseAlert {...attributes} state=\"error\">\n <span className=\"font-bold\">{title}</span>\n {message}\n </BaseAlert>\n <FilterResetDialog\n open={showFilterResetDialog !== false}\n onChange={() => setShowFilterResetDialog(false)}\n onSubmit={handleResetFilters}\n />\n </>\n );\n}\n\ntype FilterResetDialogProps = Omit<DialogProps, 'children'> & {\n onSubmit: () => void;\n};\n\nfunction FilterResetDialog(props: FilterResetDialogProps) {\n const { onSubmit: handleSubmit, ...dialogProps } = props;\n const { texts } = useLocalization();\n\n return (\n <Dialog {...dialogProps} size=\"xs\">\n <Dialog.Content aria-label=\"Create a new account\">\n <Dialog.Title>{texts.table3.editing.validation.resetFiltersDialog.title}</Dialog.Title>\n\n <p>{texts.table3.editing.validation.resetFiltersDialog.description}</p>\n\n <Dialog.Footer>\n <Group>\n <Dialog.Close>\n <Button>{texts.table3.editing.validation.resetFiltersDialog.cancel}</Button>\n </Dialog.Close>\n <Button appearance=\"primary\" onClick={handleSubmit}>\n {texts.table3.editing.validation.resetFiltersDialog.confirm}\n </Button>\n </Group>\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog>\n );\n}\n"],"names":["Alert","props","scrollToIndex","table","tableRef","attributes","texts","useLocalization","validationTexts","table3","editing","validation","tableMeta","options","meta","showFilterResetDialog","setShowFilterResetDialog","React","useState","pendingChangesWithErrors","getErrors","useEffect","forEach","error","setRowErrorsSeen","rowId","scrollToRow","rowIndex","rowActive","setRowActiveIndex","align","requestAnimationFrame","cell","_tableRef$current","current","querySelector","_cell$focus","focus","call","title","length","alert","titleOne","titlePlural","replace","String","links","rowIdentityColumn","rowIdentityColumnId","getColumn","undefined","index","push","messageAnd","getRowModel","rows","findIndex","row","id","handleClick","tooltip","pendingChange","_meta","errors","_table$getAllColumns$","_table$getAllColumns$2","firstCellErrorColumnId","Object","keys","cells","columnName","getAllColumns","find","column","columnDef","header","Tooltip","key","className","onClick","role","original","message","messageOne","messagePlural","split","map","part","_rowIdentityColumn$co","_rowIdentityColumn$co2","messageRow","handleResetFilters","resetGlobalFilter","resetColumnFilters","BaseAlert","state","FilterResetDialog","open","onChange","onSubmit","handleSubmit","dialogProps","Dialog","size","Content","Title","resetFiltersDialog","description","Footer","Group","Close","Button","cancel","appearance","confirm"],"mappings":"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"}
|
@@ -2,7 +2,7 @@ import React__default from 'react';
|
|
2
2
|
import { FocusScope } from '@react-aria/focus';
|
3
3
|
import { Header } from './components/Header/Header.js';
|
4
4
|
import { Body } from './components/Body/Body.js';
|
5
|
-
import {
|
5
|
+
import { Foot } from './components/Footer/Footer.js';
|
6
6
|
import { EmptyStateBody } from './components/Body/EmptyStateBody.js';
|
7
7
|
import { TableToolbar } from './components/Toolbar/Toolbar.js';
|
8
8
|
|
@@ -45,7 +45,9 @@ function TableGrid(props) {
|
|
45
45
|
enableHorizontalArrowKeyNavigation: enableHorizontalArrowKeyNavigation,
|
46
46
|
table: table.instance,
|
47
47
|
style: table.renderer.style
|
48
|
-
}, table.renderer.rows), table.meta.footer.isEnabled ?
|
48
|
+
}, table.renderer.rows), table.meta.footer.isEnabled ? /*#__PURE__*/React__default.createElement(Foot, {
|
49
|
+
table: table.instance
|
50
|
+
}) : null)) : ( /*#__PURE__*/React__default.createElement(EmptyStateBody, {
|
49
51
|
emptyState: table.props.emptyState
|
50
52
|
})))));
|
51
53
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Table.js","sources":["../../../../../../../../src/primitives/Table/Core/Table.tsx"],"sourcesContent":["import React from 'react';\nimport { FocusScope } from '@react-aria/focus';\nimport { Header } from './components/Header/Header';\nimport { Body } from './components/Body/Body';\nimport {
|
1
|
+
{"version":3,"file":"Table.js","sources":["../../../../../../../../src/primitives/Table/Core/Table.tsx"],"sourcesContent":["import React from 'react';\nimport { FocusScope } from '@react-aria/focus';\nimport { Header } from './components/Header/Header';\nimport { Body } from './components/Body/Body';\nimport { Foot } from './components/Footer/Footer';\nimport { EmptyStateBody } from './components/Body/EmptyStateBody';\nimport { useTableReturnValue } from './useTable';\nimport { TableToolbar } from './components/Toolbar/Toolbar';\nimport './style.css';\n\ntype TableProps = {\n children: JSX.Element | Array<JSX.Element | null>;\n};\n\nexport function Table(props: TableProps) {\n return <>{props.children}</>;\n}\nTable.Toolbar = TableToolbar;\nTable.Grid = TableGrid;\n\nexport type TableGridProps<TType = unknown> = React.TableHTMLAttributes<HTMLTableElement> & {\n 'data-taco': string;\n enableHorizontalArrowKeyNavigation?: boolean;\n table: useTableReturnValue<TType>;\n};\n\nexport function TableGrid<TType = unknown>(props: TableGridProps<TType>) {\n const { enableHorizontalArrowKeyNavigation, table, ...attributes } = props;\n const handleFocus =\n table.meta.rowActive.rowActiveIndex === undefined\n ? (event: React.FocusEvent) => {\n table.meta.rowActive.handleFocus(event, table.meta.length, table.renderer.scrollToIndex);\n }\n : undefined;\n\n return (\n <>\n <style>{table.stylesheet}</style>\n <FocusScope>\n <table\n {...attributes}\n id={table.id}\n data-table-font-size={table.meta.fontSize.size}\n data-table-grouped={!!table.state.grouping?.length}\n data-table-horizontally-scrolled={table.meta.columnFreezing.isHorizontallyScrolled ? true : undefined}\n data-table-status={table.meta.server.isEnabled ? (table.meta.server.isReady ? 'ready' : undefined) : 'ready'}\n data-table-pause-hover={table.meta.rowActive.isHoverStatePaused ? true : undefined}\n data-table-resizing={table.state.columnSizingInfo.isResizingColumn ? true : undefined}\n data-table-row-height={table.meta.rowHeight.height}\n onFocus={handleFocus}\n onScroll={table.meta.columnFreezing.handleScroll}\n ref={table.ref}\n style={table.style}\n tabIndex={-1}>\n <thead>\n {table.instance.getHeaderGroups().map(headerGroup => (\n <tr key={headerGroup.id}>\n {headerGroup.headers.map(props => (\n <Header key={props.id} header={props} scrollToIndex={table.renderer.scrollToIndex} />\n ))}\n </tr>\n ))}\n </thead>\n {table.instance.getRowModel().rows.length ? (\n <>\n <Body\n enableHorizontalArrowKeyNavigation={enableHorizontalArrowKeyNavigation}\n table={table.instance}\n style={table.renderer.style}>\n {table.renderer.rows}\n </Body>\n {table.meta.footer.isEnabled ? <Foot table={table.instance} /> : null}\n </>\n ) : (\n <EmptyStateBody emptyState={table.props.emptyState} />\n )}\n </table>\n </FocusScope>\n </>\n );\n}\n"],"names":["Table","props","React","children","Toolbar","TableToolbar","Grid","TableGrid","enableHorizontalArrowKeyNavigation","table","attributes","handleFocus","meta","rowActive","rowActiveIndex","undefined","event","length","renderer","scrollToIndex","stylesheet","FocusScope","id","fontSize","size","_table$state$grouping","state","grouping","columnFreezing","isHorizontallyScrolled","server","isEnabled","isReady","isHoverStatePaused","columnSizingInfo","isResizingColumn","rowHeight","height","onFocus","onScroll","handleScroll","ref","style","tabIndex","instance","getHeaderGroups","map","headerGroup","key","headers","Header","header","getRowModel","rows","Body","footer","Foot","EmptyStateBody","emptyState"],"mappings":"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"}
|
@@ -2,16 +2,25 @@ import React__default from 'react';
|
|
2
2
|
import { flexRender } from '@tanstack/react-table';
|
3
3
|
import { Summary } from './Summary.js';
|
4
4
|
|
5
|
-
function
|
6
|
-
|
5
|
+
function Foot(props) {
|
6
|
+
const nonGroupedHeaders = props.table.getFooterGroups()[0].headers.filter(header => !header.column.getIsGrouped());
|
7
|
+
return /*#__PURE__*/React__default.createElement("tfoot", null, /*#__PURE__*/React__default.createElement("tr", null, nonGroupedHeaders.map((header, index) => ( /*#__PURE__*/React__default.createElement(Footer, {
|
7
8
|
key: header.id,
|
8
|
-
|
9
|
+
header: header,
|
10
|
+
index: index
|
11
|
+
})))));
|
12
|
+
}
|
13
|
+
function Footer(props) {
|
14
|
+
return /*#__PURE__*/React__default.createElement(MemoedFooter, {
|
15
|
+
footer: props.header,
|
16
|
+
index: props.index
|
9
17
|
});
|
10
18
|
}
|
11
19
|
const MemoedFooter = /*#__PURE__*/React__default.memo(function MemoedFooter(props) {
|
12
20
|
var _footer$subHeaders, _footer$subHeaders$fi;
|
13
21
|
const {
|
14
|
-
footer
|
22
|
+
footer,
|
23
|
+
index
|
15
24
|
} = props;
|
16
25
|
const columnMeta = footer.column.columnDef.meta;
|
17
26
|
// getIsPinned returns true for split header groups, even if the split group has no pinned sub headers
|
@@ -24,7 +33,7 @@ const MemoedFooter = /*#__PURE__*/React__default.memo(function MemoedFooter(prop
|
|
24
33
|
}
|
25
34
|
let content;
|
26
35
|
let align;
|
27
|
-
if (
|
36
|
+
if (index === 0) {
|
28
37
|
align = 'left';
|
29
38
|
content = /*#__PURE__*/React__default.createElement(Summary, {
|
30
39
|
table: footer.getContext().table
|
@@ -42,5 +51,5 @@ const MemoedFooter = /*#__PURE__*/React__default.memo(function MemoedFooter(prop
|
|
42
51
|
}, content);
|
43
52
|
});
|
44
53
|
|
45
|
-
export { Footer };
|
54
|
+
export { Foot, Footer };
|
46
55
|
//# sourceMappingURL=Footer.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Footer.js","sources":["../../../../../../../../../../src/primitives/Table/Core/components/Footer/Footer.tsx"],"sourcesContent":["import React from 'react';\nimport {
|
1
|
+
{"version":3,"file":"Footer.js","sources":["../../../../../../../../../../src/primitives/Table/Core/components/Footer/Footer.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Header as ReactTableHeader,\n ColumnMeta as ReactTableColumnMeta,\n flexRender,\n Table as ReactTable,\n} from '@tanstack/react-table';\nimport { Summary } from './Summary';\n\nexport type FootProps<TType = unknown> = {\n table: ReactTable<TType>;\n};\nexport function Foot<TType = unknown>(props: FootProps<TType>) {\n const nonGroupedHeaders = props.table.getFooterGroups()[0].headers.filter(header => !header.column.getIsGrouped());\n return (\n <tfoot>\n <tr>\n {nonGroupedHeaders.map((header, index) => (\n <Footer key={header.id} header={header} index={index} />\n ))}\n </tr>\n </tfoot>\n );\n}\n\nexport type FooterProps<TType = unknown> = {\n header: ReactTableHeader<TType, unknown>;\n index: number;\n};\nexport function Footer<TType = unknown>(props: FooterProps<TType>) {\n return <MemoedFooter footer={props.header} index={props.index} />;\n}\n\nexport type MemoedFooterProps<TType = unknown> = {\n footer: ReactTableHeader<TType, unknown>;\n index: number;\n};\nconst MemoedFooter = React.memo(function MemoedFooter<TType = unknown>(props: MemoedFooterProps<TType>) {\n const { footer, index } = props;\n const columnMeta = footer.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n\n // getIsPinned returns true for split header groups, even if the split group has no pinned sub headers\n const isHeaderGroup = !!footer.subHeaders?.length;\n const isPinned = isHeaderGroup\n ? footer.subHeaders.find(x => x.column.getIsPinned())?.column.getIsPinned()\n : footer.column.getIsPinned();\n\n const style: React.CSSProperties = {};\n\n if (isPinned) {\n // pinned columns should be offset from either the left or right\n style[isPinned] = `${footer.column.getStart(isPinned) - 1}px`;\n }\n\n let content;\n let align;\n\n if (index === 0) {\n align = 'left';\n content = <Summary table={footer.getContext().table} />;\n } else {\n align = columnMeta.align;\n content = footer.isPlaceholder ? null : flexRender(footer.column.columnDef.footer, footer.getContext());\n }\n\n return (\n <td\n key={footer.id}\n data-cell-align={align}\n data-cell-id={footer.id}\n data-cell-pinned={isPinned ? isPinned : undefined}\n style={style}>\n {content}\n </td>\n );\n}) as <TType = unknown>(props: MemoedFooterProps<TType>) => JSX.Element;\n"],"names":["Foot","props","nonGroupedHeaders","table","getFooterGroups","headers","filter","header","column","getIsGrouped","React","map","index","Footer","key","id","MemoedFooter","footer","memo","columnMeta","columnDef","meta","isHeaderGroup","_footer$subHeaders","subHeaders","length","isPinned","_footer$subHeaders$fi","find","x","getIsPinned","style","getStart","content","align","Summary","getContext","isPlaceholder","flexRender","undefined"],"mappings":";;;;SAYgBA,IAAIA,CAAkBC,KAAuB;EACzD,MAAMC,iBAAiB,GAAGD,KAAK,CAACE,KAAK,CAACC,eAAe,EAAE,CAAC,CAAC,CAAC,CAACC,OAAO,CAACC,MAAM,CAACC,MAAM,IAAI,CAACA,MAAM,CAACC,MAAM,CAACC,YAAY,EAAE,CAAC;EAClH,oBACIC,yDACIA,yCACKR,iBAAiB,CAACS,GAAG,CAAC,CAACJ,MAAM,EAAEK,KAAK,oBACjCF,6BAACG,MAAM;IAACC,GAAG,EAAEP,MAAM,CAACQ,EAAE;IAAER,MAAM,EAAEA,MAAM;IAAEK,KAAK,EAAEA;IAAS,CAC3D,CAAC,CACD,CACD;AAEhB;SAMgBC,MAAMA,CAAkBZ,KAAyB;EAC7D,oBAAOS,6BAACM,YAAY;IAACC,MAAM,EAAEhB,KAAK,CAACM,MAAM;IAAEK,KAAK,EAAEX,KAAK,CAACW;IAAS;AACrE;AAMA,MAAMI,YAAY,gBAAGN,cAAK,CAACQ,IAAI,CAAC,SAASF,YAAYA,CAAkBf,KAA+B;;EAClG,MAAM;IAAEgB,MAAM;IAAEL;GAAO,GAAGX,KAAK;EAC/B,MAAMkB,UAAU,GAAGF,MAAM,CAACT,MAAM,CAACY,SAAS,CAACC,IAA4C;;EAGvF,MAAMC,aAAa,GAAG,CAAC,GAAAC,kBAAA,GAACN,MAAM,CAACO,UAAU,cAAAD,kBAAA,eAAjBA,kBAAA,CAAmBE,MAAM;EACjD,MAAMC,QAAQ,GAAGJ,aAAa,IAAAK,qBAAA,GACxBV,MAAM,CAACO,UAAU,CAACI,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACrB,MAAM,CAACsB,WAAW,EAAE,CAAC,cAAAH,qBAAA,uBAAnDA,qBAAA,CAAqDnB,MAAM,CAACsB,WAAW,EAAE,GACzEb,MAAM,CAACT,MAAM,CAACsB,WAAW,EAAE;EAEjC,MAAMC,KAAK,GAAwB,EAAE;EAErC,IAAIL,QAAQ,EAAE;;IAEVK,KAAK,CAACL,QAAQ,CAAC,MAAMT,MAAM,CAACT,MAAM,CAACwB,QAAQ,CAACN,QAAQ,CAAC,GAAG,KAAK;;EAGjE,IAAIO,OAAO;EACX,IAAIC,KAAK;EAET,IAAItB,KAAK,KAAK,CAAC,EAAE;IACbsB,KAAK,GAAG,MAAM;IACdD,OAAO,gBAAGvB,6BAACyB,OAAO;MAAChC,KAAK,EAAEc,MAAM,CAACmB,UAAU,EAAE,CAACjC;MAAS;GAC1D,MAAM;IACH+B,KAAK,GAAGf,UAAU,CAACe,KAAK;IACxBD,OAAO,GAAGhB,MAAM,CAACoB,aAAa,GAAG,IAAI,GAAGC,UAAU,CAACrB,MAAM,CAACT,MAAM,CAACY,SAAS,CAACH,MAAM,EAAEA,MAAM,CAACmB,UAAU,EAAE,CAAC;;EAG3G,oBACI1B;IACII,GAAG,EAAEG,MAAM,CAACF,EAAE;uBACGmB,KAAK;oBACRjB,MAAM,CAACF,EAAE;wBACLW,QAAQ,GAAGA,QAAQ,GAAGa,SAAS;IACjDR,KAAK,EAAEA;KACNE,OAAO,CACP;AAEb,CAAC,CAAsE;;;;"}
|
@@ -55,12 +55,21 @@ function Print(props) {
|
|
55
55
|
// do this here because Safari doesn't support the beforeprint event
|
56
56
|
togglePrinting(true);
|
57
57
|
requestAnimationFrame(() => {
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
58
|
+
requestAnimationFrame(() => {
|
59
|
+
const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
|
60
|
+
if (isSafari) {
|
61
|
+
try {
|
62
|
+
// Try using document.execCommand for printing in Safari
|
63
|
+
document.execCommand('print', false, undefined);
|
64
|
+
} catch (error) {
|
65
|
+
// If document.execCommand fails or throws an error, fallback to window.print()
|
66
|
+
window.print();
|
67
|
+
}
|
68
|
+
} else {
|
69
|
+
// Execute window.print() for all other browsers
|
70
|
+
window.print();
|
71
|
+
}
|
72
|
+
});
|
64
73
|
});
|
65
74
|
}, 150);
|
66
75
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Print.js","sources":["../../../../../../../../../../../../src/primitives/Table/Core/components/Toolbar/components/Print/Print.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { IconButton } from '../../../../../../../components/IconButton/IconButton';\nimport { useLocalization } from '../../../../../../../components/Provider/Localization';\nimport { useToast } from '../../../../../../../components/Toast/Toaster';\nimport { TableRef } from '../../../../../types';\nimport { PrintDialog } from './PrintDialog';\nimport { Shortcut } from '../../../../../../../components/Shortcut/Shortcut';\n\nexport type PrintProps<TType = unknown> = {\n table: ReactTable<TType>;\n tableId: string;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function Print<TType = unknown>(props: PrintProps<TType>) {\n const { table, tableId, tableRef } = props;\n const { texts } = useLocalization();\n const ref = React.useRef<HTMLButtonElement>(null);\n const lastScrollTopRef = React.useRef<number>();\n const toast = useToast();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const { allRows, orientation, size, splitGroups } = tableMeta.printing.settings;\n\n const togglePrinting = React.useCallback(\n enabled => {\n tableMeta.printing.setIsPrinting(enabled);\n\n if (tableRef.current) {\n if (enabled) {\n lastScrollTopRef.current = tableRef.current.scrollTop;\n } else if (lastScrollTopRef.current !== undefined) {\n tableRef.current.scrollTop = lastScrollTopRef.current;\n lastScrollTopRef.current = undefined;\n }\n }\n },\n [tableRef.current]\n );\n\n React.useEffect(() => {\n const afterPrint = () => {\n togglePrinting(false);\n };\n\n window.addEventListener('afterprint', afterPrint);\n\n return () => {\n window.removeEventListener('afterprint', afterPrint);\n };\n }, []);\n\n const print = async () => {\n const toastRef = toast.loading(texts.table.print.loading);\n\n if (tableMeta.server.isEnabled && tableMeta.server.loadAllIfNeeded) {\n try {\n await tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters, undefined);\n } catch (error) {\n const errorMessage = `${texts.table.print.error}: ${error}`;\n console.error(errorMessage);\n toastRef.error(errorMessage);\n }\n }\n\n // this might close immediately if the dataset is small - this is okay\n toastRef.close();\n\n // use a timeout to let the toast close, otherwise it freezes mid animation when the print dialog opens\n setTimeout(() => {\n // do this here because Safari doesn't support the beforeprint event\n togglePrinting(true);\n\n requestAnimationFrame(() => {\n try {\n // window.print doesn't always work in Safari :man_shrugging:\n document.execCommand('print', false, undefined);\n } catch {\n window.print();\n }\n });\n }, 150);\n };\n\n const printStyle = [`@page { size: ${size} ${orientation}; }`];\n\n if (!allRows) {\n printStyle.push(`table[data-taco^='table']#${tableId} tr:not([data-row-selected=\"true\"]) { display: none; }`);\n }\n\n if (splitGroups) {\n printStyle.push(`table[data-taco^='table']#${tableId} tr[data-row-group]:not(:first-child) { break-before: page; }`);\n }\n\n const shortcut = { key: 'p', meta: true, shift: false };\n const tooltip = (\n <>\n {texts.table.print.tooltip}\n <Shortcut className=\"ml-2\" keys={shortcut} />\n </>\n );\n\n return (\n <>\n <style media=\"print\">{printStyle.join('\\n')}</style>\n <IconButton\n icon=\"print\"\n aria-label={texts.table.print.tooltip}\n dialog={dialogProps => (\n <PrintDialog\n {...dialogProps}\n table={table}\n onAccept={print}\n orientation={orientation}\n setOrientation={value => tableMeta.printing.setSetting('orientation', value)}\n size={size}\n setSize={value => tableMeta.printing.setSetting('size', value)}\n allRows={allRows}\n setAllRows={value => tableMeta.printing.setSetting('allRows', value)}\n splitGroups={splitGroups}\n setSplitGroups={value => tableMeta.printing.setSetting('splitGroups', value)}\n />\n )}\n ref={ref}\n shortcut={shortcut}\n tooltip={tooltip}\n />\n </>\n );\n}\n"],"names":["Print","props","table","tableId","tableRef","texts","useLocalization","ref","React","useRef","lastScrollTopRef","toast","useToast","tableMeta","options","meta","allRows","orientation","size","splitGroups","printing","settings","togglePrinting","useCallback","enabled","setIsPrinting","current","scrollTop","undefined","useEffect","afterPrint","window","addEventListener","removeEventListener","print","toastRef","close","setTimeout","requestAnimationFrame","document","execCommand","loading","_temp2","server","isEnabled","loadAllIfNeeded","_temp","_catch","Promise","resolve","getState","sorting","columnFilters","then","error","errorMessage","console","_temp3","e","reject","printStyle","push","shortcut","key","shift","tooltip","Shortcut","className","keys","media","join","IconButton","icon","dialog","dialogProps","PrintDialog","onAccept","setOrientation","value","setSetting","setSize","setAllRows","setSplitGroups"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Print.js","sources":["../../../../../../../../../../../../src/primitives/Table/Core/components/Toolbar/components/Print/Print.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { IconButton } from '../../../../../../../components/IconButton/IconButton';\nimport { useLocalization } from '../../../../../../../components/Provider/Localization';\nimport { useToast } from '../../../../../../../components/Toast/Toaster';\nimport { TableRef } from '../../../../../types';\nimport { PrintDialog } from './PrintDialog';\nimport { Shortcut } from '../../../../../../../components/Shortcut/Shortcut';\n\nexport type PrintProps<TType = unknown> = {\n table: ReactTable<TType>;\n tableId: string;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function Print<TType = unknown>(props: PrintProps<TType>) {\n const { table, tableId, tableRef } = props;\n const { texts } = useLocalization();\n const ref = React.useRef<HTMLButtonElement>(null);\n const lastScrollTopRef = React.useRef<number>();\n const toast = useToast();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const { allRows, orientation, size, splitGroups } = tableMeta.printing.settings;\n\n const togglePrinting = React.useCallback(\n enabled => {\n tableMeta.printing.setIsPrinting(enabled);\n\n if (tableRef.current) {\n if (enabled) {\n lastScrollTopRef.current = tableRef.current.scrollTop;\n } else if (lastScrollTopRef.current !== undefined) {\n tableRef.current.scrollTop = lastScrollTopRef.current;\n lastScrollTopRef.current = undefined;\n }\n }\n },\n [tableRef.current]\n );\n\n React.useEffect(() => {\n const afterPrint = () => {\n togglePrinting(false);\n };\n\n window.addEventListener('afterprint', afterPrint);\n\n return () => {\n window.removeEventListener('afterprint', afterPrint);\n };\n }, []);\n\n const print = async () => {\n const toastRef = toast.loading(texts.table.print.loading);\n\n if (tableMeta.server.isEnabled && tableMeta.server.loadAllIfNeeded) {\n try {\n await tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters, undefined);\n } catch (error) {\n const errorMessage = `${texts.table.print.error}: ${error}`;\n console.error(errorMessage);\n toastRef.error(errorMessage);\n }\n }\n\n // this might close immediately if the dataset is small - this is okay\n toastRef.close();\n\n // use a timeout to let the toast close, otherwise it freezes mid animation when the print dialog opens\n setTimeout(() => {\n // do this here because Safari doesn't support the beforeprint event\n togglePrinting(true);\n\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\n if (isSafari) {\n try {\n // Try using document.execCommand for printing in Safari\n document.execCommand('print', false, undefined);\n } catch (error) {\n // If document.execCommand fails or throws an error, fallback to window.print()\n window.print();\n }\n } else {\n // Execute window.print() for all other browsers\n window.print();\n }\n });\n });\n }, 150);\n };\n\n const printStyle = [`@page { size: ${size} ${orientation}; }`];\n\n if (!allRows) {\n printStyle.push(`table[data-taco^='table']#${tableId} tr:not([data-row-selected=\"true\"]) { display: none; }`);\n }\n\n if (splitGroups) {\n printStyle.push(`table[data-taco^='table']#${tableId} tr[data-row-group]:not(:first-child) { break-before: page; }`);\n }\n\n const shortcut = { key: 'p', meta: true, shift: false };\n const tooltip = (\n <>\n {texts.table.print.tooltip}\n <Shortcut className=\"ml-2\" keys={shortcut} />\n </>\n );\n\n return (\n <>\n <style media=\"print\">{printStyle.join('\\n')}</style>\n <IconButton\n icon=\"print\"\n aria-label={texts.table.print.tooltip}\n dialog={dialogProps => (\n <PrintDialog\n {...dialogProps}\n table={table}\n onAccept={print}\n orientation={orientation}\n setOrientation={value => tableMeta.printing.setSetting('orientation', value)}\n size={size}\n setSize={value => tableMeta.printing.setSetting('size', value)}\n allRows={allRows}\n setAllRows={value => tableMeta.printing.setSetting('allRows', value)}\n splitGroups={splitGroups}\n setSplitGroups={value => tableMeta.printing.setSetting('splitGroups', value)}\n />\n )}\n ref={ref}\n shortcut={shortcut}\n tooltip={tooltip}\n />\n </>\n );\n}\n"],"names":["Print","props","table","tableId","tableRef","texts","useLocalization","ref","React","useRef","lastScrollTopRef","toast","useToast","tableMeta","options","meta","allRows","orientation","size","splitGroups","printing","settings","togglePrinting","useCallback","enabled","setIsPrinting","current","scrollTop","undefined","useEffect","afterPrint","window","addEventListener","removeEventListener","print","toastRef","close","setTimeout","requestAnimationFrame","isSafari","test","navigator","userAgent","document","execCommand","error","loading","_temp2","server","isEnabled","loadAllIfNeeded","_temp","_catch","Promise","resolve","getState","sorting","columnFilters","then","errorMessage","console","_temp3","e","reject","printStyle","push","shortcut","key","shift","tooltip","Shortcut","className","keys","media","join","IconButton","icon","dialog","dialogProps","PrintDialog","onAccept","setOrientation","value","setSetting","setSize","setAllRows","setSplitGroups"],"mappings":"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"}
|
@@ -14,7 +14,7 @@ const format = (date, mask = 'dd.mm.yy') => {
|
|
14
14
|
const pad = v => String(v).length === 1 ? `0${v}` : v.toString();
|
15
15
|
return mask.replace('dd', pad(value.getDate())).replace('mm', pad(value.getMonth() + 1)).replace('yy', String(value.getFullYear()).slice(2));
|
16
16
|
};
|
17
|
-
const parseFromCustomString = (date = '', mask = 'dd.mm.yy') => {
|
17
|
+
const parseFromCustomString = (date = '', mask = 'dd.mm.yy', defaultYear = undefined) => {
|
18
18
|
if (!date || !date.length) {
|
19
19
|
return undefined;
|
20
20
|
}
|
@@ -48,7 +48,7 @@ const parseFromCustomString = (date = '', mask = 'dd.mm.yy') => {
|
|
48
48
|
month = Number.parseInt(month, 10);
|
49
49
|
year = Number.parseInt(year, 10);
|
50
50
|
const currentDate = new Date();
|
51
|
-
return new Date( /* year */Object.is(year, NaN) ? currentDate.getFullYear() : year, /* month */Object.is(month, NaN) ? currentDate.getMonth() : month - 1,
|
51
|
+
return new Date( /* year */Object.is(year, NaN) ? defaultYear !== null && defaultYear !== void 0 ? defaultYear : currentDate.getFullYear() : year, /* month */Object.is(month, NaN) ? currentDate.getMonth() : month - 1,
|
52
52
|
// months are zero based in javascript, so subtract a day
|
53
53
|
/* day */
|
54
54
|
Object.is(day, NaN) ? currentDate.getDate() : day, /* hours */12, /* minutes */0 // set to midday to avoid UTC offset causing dates to be mismatched server side
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"date.js","sources":["../../../../../../src/utils/date.ts"],"sourcesContent":["import { isDate, toDate, isValid } from 'date-fns';\n\nexport const isWeakEqual = (leftDate: Date, rightDate: Date) => {\n return (\n leftDate.getFullYear() === rightDate.getFullYear() &&\n leftDate.getMonth() === rightDate.getMonth() &&\n leftDate.getDay() === rightDate.getDay()\n );\n};\n\nexport const format = (date: Date | undefined, mask = 'dd.mm.yy'): string | undefined => {\n if (!date) {\n return undefined;\n }\n\n const value = isDate(date) ? date : toDate(date);\n\n if (!isValid(value)) {\n return undefined;\n }\n\n const pad = (v: number): string => (String(v).length === 1 ? `0${v}` : v.toString());\n\n return mask\n .replace('dd', pad(value.getDate()))\n .replace('mm', pad(value.getMonth() + 1))\n .replace('yy', String(value.getFullYear()).slice(2));\n};\n\nexport const parseFromCustomString = (date = ''
|
1
|
+
{"version":3,"file":"date.js","sources":["../../../../../../src/utils/date.ts"],"sourcesContent":["import { isDate, toDate, isValid } from 'date-fns';\n\nexport const isWeakEqual = (leftDate: Date, rightDate: Date) => {\n return (\n leftDate.getFullYear() === rightDate.getFullYear() &&\n leftDate.getMonth() === rightDate.getMonth() &&\n leftDate.getDay() === rightDate.getDay()\n );\n};\n\nexport const format = (date: Date | undefined, mask = 'dd.mm.yy'): string | undefined => {\n if (!date) {\n return undefined;\n }\n\n const value = isDate(date) ? date : toDate(date);\n\n if (!isValid(value)) {\n return undefined;\n }\n\n const pad = (v: number): string => (String(v).length === 1 ? `0${v}` : v.toString());\n\n return mask\n .replace('dd', pad(value.getDate()))\n .replace('mm', pad(value.getMonth() + 1))\n .replace('yy', String(value.getFullYear()).slice(2));\n};\n\nexport const parseFromCustomString = (\n date = '',\n mask = 'dd.mm.yy',\n defaultYear: number | undefined = undefined\n): Date | undefined => {\n if (!date || !date.length) {\n return undefined;\n }\n\n const sanitizedMask = mask.split(/[^dmy]/);\n const dd = sanitizedMask.findIndex(x => x === 'dd');\n const mm = sanitizedMask.findIndex(x => x === 'mm');\n const yy = sanitizedMask.findIndex(x => x === 'yy' || x === 'yyyy');\n\n let day;\n let month;\n let year;\n\n const getFullYear = (y: string): string => {\n if (y && y.length === 2) {\n const z = Number.parseInt(y, 10);\n\n return z > 50 ? `19${y}` : `20${y}`;\n }\n\n return y;\n };\n\n const inputParts = date.split(/\\D/);\n\n if (inputParts.length === 1) {\n const fullDate = inputParts[0];\n const unseparatedMask = mask.replace(/[^dmy]/g, '');\n\n day = fullDate.slice(unseparatedMask.indexOf('d'), unseparatedMask.lastIndexOf('d') + 1);\n month = fullDate.slice(unseparatedMask.indexOf('m'), unseparatedMask.lastIndexOf('m') + 1);\n year = getFullYear(fullDate.slice(unseparatedMask.indexOf('y'), unseparatedMask.lastIndexOf('y') + 3)); // account for full years\n } else {\n day = inputParts[dd];\n month = inputParts[mm];\n year = getFullYear(inputParts[yy]);\n }\n\n day = Number.parseInt(day, 10);\n month = Number.parseInt(month, 10);\n year = Number.parseInt(year, 10);\n\n const currentDate = new Date();\n\n return new Date(\n /* year */ Object.is(year, NaN) ? defaultYear ?? currentDate.getFullYear() : year,\n /* month */ Object.is(month, NaN) ? currentDate.getMonth() : month - 1, // months are zero based in javascript, so subtract a day\n /* day */ Object.is(day, NaN) ? currentDate.getDate() : day,\n /* hours */ 12,\n /* minutes */ 0 // set to midday to avoid UTC offset causing dates to be mismatched server side\n );\n};\n\nexport const parseFromISOString = (date: string): Date | undefined => {\n const tempDate = new Date(date);\n return isValid(tempDate) ? parseFromCustomString(format(new Date(date))) : undefined;\n};\n"],"names":["isWeakEqual","leftDate","rightDate","getFullYear","getMonth","getDay","format","date","mask","undefined","value","isDate","toDate","isValid","pad","v","String","length","toString","replace","getDate","slice","parseFromCustomString","defaultYear","sanitizedMask","split","dd","findIndex","x","mm","yy","day","month","year","y","z","Number","parseInt","inputParts","fullDate","unseparatedMask","indexOf","lastIndexOf","currentDate","Date","Object","is","NaN","parseFromISOString","tempDate"],"mappings":"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"}
|
@@ -1,6 +1,15 @@
|
|
1
1
|
/// <reference types="react" />
|
2
|
-
import { Header as ReactTableHeader } from '@tanstack/react-table';
|
3
|
-
export declare
|
2
|
+
import { Header as ReactTableHeader, Table as ReactTable } from '@tanstack/react-table';
|
3
|
+
export declare type FootProps<TType = unknown> = {
|
4
|
+
table: ReactTable<TType>;
|
5
|
+
};
|
6
|
+
export declare function Foot<TType = unknown>(props: FootProps<TType>): JSX.Element;
|
7
|
+
export declare type FooterProps<TType = unknown> = {
|
8
|
+
header: ReactTableHeader<TType, unknown>;
|
9
|
+
index: number;
|
10
|
+
};
|
11
|
+
export declare function Footer<TType = unknown>(props: FooterProps<TType>): JSX.Element;
|
4
12
|
export declare type MemoedFooterProps<TType = unknown> = {
|
5
13
|
footer: ReactTableHeader<TType, unknown>;
|
14
|
+
index: number;
|
6
15
|
};
|
@@ -6,7 +6,7 @@ export declare type FilterColumnProps<TType = unknown> = Omit<Select2Props, 'chi
|
|
6
6
|
allColumns: ReactTableColumn<TType, unknown>[];
|
7
7
|
filters: TableFilter[];
|
8
8
|
};
|
9
|
-
export declare const FilterColumn: React.ForwardRefExoticComponent<Pick<Select2Props, "defaultValue" | "onChange" | "value" | "defaultChecked" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "nonce" | "placeholder" | "slot" | "spellCheck" | "style" | "tabIndex" | "title" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "autoFocus" | "emptyValue" | "disabled" | "highlighted" | "invalid" | "multiple" | "name" | "onCreate" | "onDelete" | "onEdit" | "readOnly" | "required" | "tags" | "fontSize"> & {
|
9
|
+
export declare const FilterColumn: React.ForwardRefExoticComponent<Pick<Select2Props, "defaultValue" | "onChange" | "value" | "defaultChecked" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "nonce" | "placeholder" | "slot" | "spellCheck" | "style" | "tabIndex" | "title" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "autoFocus" | "emptyValue" | "disabled" | "highlighted" | "invalid" | "loading" | "multiple" | "name" | "onCreate" | "onDelete" | "onEdit" | "readOnly" | "required" | "tags" | "fontSize"> & {
|
10
10
|
allColumns: ReactTableColumn<unknown, unknown>[];
|
11
11
|
filters: TableFilter[];
|
12
12
|
} & React.RefAttributes<HTMLButtonElement>>;
|
@@ -5977,7 +5977,7 @@ const format = (date, mask = 'dd.mm.yy') => {
|
|
5977
5977
|
const pad = v => String(v).length === 1 ? `0${v}` : v.toString();
|
5978
5978
|
return mask.replace('dd', pad(value.getDate())).replace('mm', pad(value.getMonth() + 1)).replace('yy', String(value.getFullYear()).slice(2));
|
5979
5979
|
};
|
5980
|
-
const parseFromCustomString = (date = '', mask = 'dd.mm.yy') => {
|
5980
|
+
const parseFromCustomString = (date = '', mask = 'dd.mm.yy', defaultYear = undefined) => {
|
5981
5981
|
if (!date || !date.length) {
|
5982
5982
|
return undefined;
|
5983
5983
|
}
|
@@ -6011,7 +6011,7 @@ const parseFromCustomString = (date = '', mask = 'dd.mm.yy') => {
|
|
6011
6011
|
month = Number.parseInt(month, 10);
|
6012
6012
|
year = Number.parseInt(year, 10);
|
6013
6013
|
const currentDate = new Date();
|
6014
|
-
return new Date( /* year */Object.is(year, NaN) ? currentDate.getFullYear() : year, /* month */Object.is(month, NaN) ? currentDate.getMonth() : month - 1,
|
6014
|
+
return new Date( /* year */Object.is(year, NaN) ? defaultYear !== null && defaultYear !== void 0 ? defaultYear : currentDate.getFullYear() : year, /* month */Object.is(month, NaN) ? currentDate.getMonth() : month - 1,
|
6015
6015
|
// months are zero based in javascript, so subtract a day
|
6016
6016
|
/* day */
|
6017
6017
|
Object.is(day, NaN) ? currentDate.getDate() : day, /* hours */12, /* minutes */0 // set to midday to avoid UTC offset causing dates to be mismatched server side
|
@@ -6049,7 +6049,7 @@ const useDatepicker = ({
|
|
6049
6049
|
// event handlers
|
6050
6050
|
const handleInputBlur = event => {
|
6051
6051
|
event.persist();
|
6052
|
-
const valueAsDate = parseFromCustomString(event.target.value);
|
6052
|
+
const valueAsDate = parseFromCustomString(event.target.value, 'dd.mm.yy', value === null || value === void 0 ? void 0 : value.getFullYear());
|
6053
6053
|
const formattedValue = valueAsDate ? format(valueAsDate) || '' : '';
|
6054
6054
|
event.target.value = formattedValue;
|
6055
6055
|
if (onChange) {
|
@@ -12817,16 +12817,25 @@ function Summary(props) {
|
|
12817
12817
|
}, label, "\u00A0", count);
|
12818
12818
|
}
|
12819
12819
|
|
12820
|
-
function
|
12821
|
-
|
12820
|
+
function Foot(props) {
|
12821
|
+
const nonGroupedHeaders = props.table.getFooterGroups()[0].headers.filter(header => !header.column.getIsGrouped());
|
12822
|
+
return /*#__PURE__*/React__default.createElement("tfoot", null, /*#__PURE__*/React__default.createElement("tr", null, nonGroupedHeaders.map((header, index) => ( /*#__PURE__*/React__default.createElement(Footer$3, {
|
12822
12823
|
key: header.id,
|
12823
|
-
|
12824
|
+
header: header,
|
12825
|
+
index: index
|
12826
|
+
})))));
|
12827
|
+
}
|
12828
|
+
function Footer$3(props) {
|
12829
|
+
return /*#__PURE__*/React__default.createElement(MemoedFooter, {
|
12830
|
+
footer: props.header,
|
12831
|
+
index: props.index
|
12824
12832
|
});
|
12825
12833
|
}
|
12826
12834
|
const MemoedFooter = /*#__PURE__*/React__default.memo(function MemoedFooter(props) {
|
12827
12835
|
var _footer$subHeaders, _footer$subHeaders$fi;
|
12828
12836
|
const {
|
12829
|
-
footer
|
12837
|
+
footer,
|
12838
|
+
index
|
12830
12839
|
} = props;
|
12831
12840
|
const columnMeta = footer.column.columnDef.meta;
|
12832
12841
|
// getIsPinned returns true for split header groups, even if the split group has no pinned sub headers
|
@@ -12839,7 +12848,7 @@ const MemoedFooter = /*#__PURE__*/React__default.memo(function MemoedFooter(prop
|
|
12839
12848
|
}
|
12840
12849
|
let content;
|
12841
12850
|
let align;
|
12842
|
-
if (
|
12851
|
+
if (index === 0) {
|
12843
12852
|
align = 'left';
|
12844
12853
|
content = /*#__PURE__*/React__default.createElement(Summary, {
|
12845
12854
|
table: footer.getContext().table
|
@@ -13879,6 +13888,18 @@ const createOptionClassName = (shouldPauseHoverState = false) => cn('group mb-px
|
|
13879
13888
|
'hover:wcag-grey-200': !shouldPauseHoverState
|
13880
13889
|
});
|
13881
13890
|
const createCollectionClassName = () => 'flex flex-col gap-px';
|
13891
|
+
const getFontSize = fontSize => {
|
13892
|
+
switch (fontSize) {
|
13893
|
+
case exports.FontSizes.small:
|
13894
|
+
return 'text-xs';
|
13895
|
+
case exports.FontSizes.medium:
|
13896
|
+
return 'text-sm';
|
13897
|
+
case exports.FontSizes.large:
|
13898
|
+
return 'text-base';
|
13899
|
+
default:
|
13900
|
+
return 'text-sm';
|
13901
|
+
}
|
13902
|
+
};
|
13882
13903
|
|
13883
13904
|
const Select2Context = /*#__PURE__*/React__default.createContext({});
|
13884
13905
|
const useSelect2Context = () => React__default.useContext(Select2Context);
|
@@ -14090,11 +14111,7 @@ const Option$1 = /*#__PURE__*/React__default.forwardRef(function Select2Option(p
|
|
14090
14111
|
value,
|
14091
14112
|
fontSize = exports.FontSizes.medium
|
14092
14113
|
} = useSelect2Context();
|
14093
|
-
const className = cn(createOptionClassName(shouldPauseHoverState),
|
14094
|
-
'text-xs': fontSize === exports.FontSizes.small,
|
14095
|
-
'text-sm': fontSize === exports.FontSizes.medium,
|
14096
|
-
'text-base': fontSize === exports.FontSizes.large
|
14097
|
-
}, cName);
|
14114
|
+
const className = cn(createOptionClassName(shouldPauseHoverState), fontSize && getFontSize(fontSize), cName);
|
14098
14115
|
const hasValue = Array.isArray(value) ? !!value.length : value !== undefined;
|
14099
14116
|
const isTag = tags && !!color;
|
14100
14117
|
const handleClick = () => {
|
@@ -14227,11 +14244,8 @@ const Button$2 = /*#__PURE__*/React__default.forwardRef(function Select2TriggerB
|
|
14227
14244
|
highlighted,
|
14228
14245
|
invalid,
|
14229
14246
|
readOnly
|
14230
|
-
}).replace('w-full', '').replace('px-2', ''), {
|
14231
|
-
'w-full': !((_props$className = props.className) !== null && _props$className !== void 0 && _props$className.includes('w-'))
|
14232
|
-
'text-xs': fontSize === exports.FontSizes.small,
|
14233
|
-
'text-sm': fontSize === exports.FontSizes.medium,
|
14234
|
-
'text-base': fontSize === exports.FontSizes.large
|
14247
|
+
}).replace('w-full', '').replace('px-2', ''), fontSize && getFontSize(fontSize), {
|
14248
|
+
'w-full': !((_props$className = props.className) !== null && _props$className !== void 0 && _props$className.includes('w-'))
|
14235
14249
|
}, props.className);
|
14236
14250
|
const handleClick = event => {
|
14237
14251
|
if (disabled || readOnly) {
|
@@ -14739,6 +14753,7 @@ const Select2 = /*#__PURE__*/React__default.forwardRef(function Select2(props, r
|
|
14739
14753
|
tags = false,
|
14740
14754
|
value: prop,
|
14741
14755
|
fontSize,
|
14756
|
+
loading,
|
14742
14757
|
...otherProps
|
14743
14758
|
} = props;
|
14744
14759
|
const emptyOption = React__default.useMemo(() => {
|
@@ -14951,7 +14966,16 @@ const Select2 = /*#__PURE__*/React__default.forwardRef(function Select2(props, r
|
|
14951
14966
|
onClick: areAllSelected ? deselectAll : selectAll
|
14952
14967
|
}, selectAllText), /*#__PURE__*/React__default.createElement("div", {
|
14953
14968
|
className: "border-grey-300 mx-3 rounded border-t"
|
14954
|
-
}))))) : null,
|
14969
|
+
}))))) : null, loading ? ( /*#__PURE__*/React__default.createElement("span", {
|
14970
|
+
className: cn('text-grey-700 flex items-center italic', fontSize && getFontSize(fontSize))
|
14971
|
+
}, /*#__PURE__*/React__default.createElement("span", null, /*#__PURE__*/React__default.createElement(Spinner, {
|
14972
|
+
delay: 0,
|
14973
|
+
className: cn('ml-3 mr-2 mt-1.5 h-5 w-5', {
|
14974
|
+
'!mt-1 !h-3.5 !w-3.5': fontSize === exports.FontSizes.small,
|
14975
|
+
'!h-4 !w-4': fontSize === exports.FontSizes.medium,
|
14976
|
+
'!h-5 !w-5': fontSize === exports.FontSizes.large
|
14977
|
+
})
|
14978
|
+
})), /*#__PURE__*/React__default.createElement("span", null, texts.listbox.loading))) : flattenedChildren.length <= 0 ? ( /*#__PURE__*/React__default.createElement("div", {
|
14955
14979
|
className: "text-grey-700 -mt-0.5 flex h-8 items-center px-2",
|
14956
14980
|
role: "presentation"
|
14957
14981
|
}, "No results found...")) : ( /*#__PURE__*/React__default.createElement(Root$1, {
|
@@ -15134,12 +15158,21 @@ function Print$1(props) {
|
|
15134
15158
|
// do this here because Safari doesn't support the beforeprint event
|
15135
15159
|
togglePrinting(true);
|
15136
15160
|
requestAnimationFrame(() => {
|
15137
|
-
|
15138
|
-
|
15139
|
-
|
15140
|
-
|
15141
|
-
|
15142
|
-
|
15161
|
+
requestAnimationFrame(() => {
|
15162
|
+
const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
|
15163
|
+
if (isSafari) {
|
15164
|
+
try {
|
15165
|
+
// Try using document.execCommand for printing in Safari
|
15166
|
+
document.execCommand('print', false, undefined);
|
15167
|
+
} catch (error) {
|
15168
|
+
// If document.execCommand fails or throws an error, fallback to window.print()
|
15169
|
+
window.print();
|
15170
|
+
}
|
15171
|
+
} else {
|
15172
|
+
// Execute window.print() for all other browsers
|
15173
|
+
window.print();
|
15174
|
+
}
|
15175
|
+
});
|
15143
15176
|
});
|
15144
15177
|
}, 150);
|
15145
15178
|
}
|
@@ -15830,7 +15863,9 @@ function TableGrid(props) {
|
|
15830
15863
|
enableHorizontalArrowKeyNavigation: enableHorizontalArrowKeyNavigation,
|
15831
15864
|
table: table.instance,
|
15832
15865
|
style: table.renderer.style
|
15833
|
-
}, table.renderer.rows), table.meta.footer.isEnabled ?
|
15866
|
+
}, table.renderer.rows), table.meta.footer.isEnabled ? /*#__PURE__*/React__default.createElement(Foot, {
|
15867
|
+
table: table.instance
|
15868
|
+
}) : null)) : ( /*#__PURE__*/React__default.createElement(EmptyStateBody, {
|
15834
15869
|
emptyState: table.props.emptyState
|
15835
15870
|
})))));
|
15836
15871
|
}
|
@@ -18445,8 +18480,8 @@ function Alert$1(props) {
|
|
18445
18480
|
if (pendingChangesWithErrors.length > 1 && index === pendingChangesWithErrors.length - 1) {
|
18446
18481
|
links.push(validationTexts.alert.messageAnd);
|
18447
18482
|
}
|
18483
|
+
const rowIndex = table.getRowModel().rows.findIndex(row => row.id === error.rowId);
|
18448
18484
|
const handleClick = () => {
|
18449
|
-
const rowIndex = table.getRowModel().rows.findIndex(row => row.id === error.rowId);
|
18450
18485
|
if (rowIndex > -1) {
|
18451
18486
|
scrollToRow(rowIndex);
|
18452
18487
|
} else {
|
@@ -18469,7 +18504,7 @@ function Alert$1(props) {
|
|
18469
18504
|
className: "text-blue",
|
18470
18505
|
onClick: handleClick,
|
18471
18506
|
role: "button"
|
18472
|
-
}, rowIdentityColumn ? error.pendingChange._meta.original[rowIdentityColumn.id] :
|
18507
|
+
}, rowIdentityColumn ? error.pendingChange._meta.original[rowIdentityColumn.id] : rowIndex + 1)));
|
18473
18508
|
// if appropriate, concatenate the item with the text ","
|
18474
18509
|
if (pendingChangesWithErrors.length > 2 && index < pendingChangesWithErrors.length - 2) {
|
18475
18510
|
links.push(', ');
|