@economic/taco 2.27.1 → 2.27.3
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/esm/index.css +9 -3
- package/dist/esm/packages/taco/src/components/Provider/Localization.js +3 -3
- package/dist/esm/packages/taco/src/components/Provider/Localization.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/Editing/TextareaWithAutosizing.js +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/Editing/TextareaWithAutosizing.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js +7 -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/components/Columns/Cell/util.js +3 -7
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/util.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyleColumnFreezing.js +19 -6
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyleColumnFreezing.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFontSizeListener.js +9 -2
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFontSizeListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/settings.js +15 -2
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/settings.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js +6 -2
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js.map +1 -1
- package/dist/index.css +9 -3
- package/dist/primitives/Table/Core/components/Columns/Cell/util.d.ts +0 -1
- package/dist/primitives/Table/useTableManager/util/settings.d.ts +2 -1
- package/dist/taco.cjs.development.js +76 -40
- 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/package.json +2 -2
package/dist/esm/index.css
CHANGED
@@ -667,7 +667,9 @@ table[data-taco^='table'][data-table-row-height='short'] td {
|
|
667
667
|
@apply min-h-[33px];
|
668
668
|
}
|
669
669
|
|
670
|
-
table[data-taco^='table'][data-table-row-height='medium'] td
|
670
|
+
table[data-taco^='table'][data-table-row-height='medium'] td,
|
671
|
+
/* Footer should always have medium row height */
|
672
|
+
table[data-taco^='table'][data-table-row-height] tfoot td {
|
671
673
|
@apply min-h-[41px];
|
672
674
|
}
|
673
675
|
|
@@ -701,7 +703,11 @@ table[data-taco^='table'] td:not([data-cell-truncate='true']) {
|
|
701
703
|
|
702
704
|
/* FOOTER */
|
703
705
|
table[data-taco^='table'] tfoot td {
|
704
|
-
|
706
|
+
/*
|
707
|
+
* Since footer has sticky position, the top and bottom padding ensures that the inner content doesn't come over
|
708
|
+
* the border of the footer row.
|
709
|
+
*/
|
710
|
+
@apply border-b-0 !py-1 font-bold;
|
705
711
|
}
|
706
712
|
|
707
713
|
table[data-taco^='table'] tfoot td:before {
|
@@ -894,7 +900,7 @@ table[data-taco^='table'][data-table-font-size='medium'] td [data-taco='Select2'
|
|
894
900
|
}
|
895
901
|
|
896
902
|
table[data-taco^='table'][data-table-font-size='medium'] td [data-taco='textarea'] {
|
897
|
-
@apply !pr-[5px];
|
903
|
+
@apply !-mb-[8px] !pr-[5px];
|
898
904
|
}
|
899
905
|
|
900
906
|
table[data-taco^='table'][data-table-font-size='medium'] td[data-cell-truncate='true'] [data-taco='textarea'] {
|
@@ -248,12 +248,12 @@ const defaultLocalisationTexts = {
|
|
248
248
|
},
|
249
249
|
validation: {
|
250
250
|
alert: {
|
251
|
-
titleOne: '[COUNT] unsaved entry:
|
252
|
-
titlePlural: '[COUNT] unsaved entries:
|
251
|
+
titleOne: '[COUNT] unsaved entry:',
|
252
|
+
titlePlural: '[COUNT] unsaved entries:',
|
253
253
|
messageOne: "[COLUMN] [ROW] is incomplete and hasn't been saved.",
|
254
254
|
messagePlural: "[COLUMN] [ROW] are incomplete and haven't been saved.",
|
255
255
|
messageRow: 'Row',
|
256
|
-
messageAnd: '
|
256
|
+
messageAnd: 'and'
|
257
257
|
},
|
258
258
|
resetFiltersDialog: {
|
259
259
|
title: 'Row is hidden',
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Localization.js","sources":["../../../../../../../src/components/Provider/Localization.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Locale } from '../../types';\nimport { CalendarTexts } from '../Calendar/Calendar';\nimport { ComboboxTexts } from '../Combobox/Combobox';\nimport { DialogTexts } from '../Dialog/Dialog';\nimport { PaginationTexts } from '../Pagination/Pagination';\nimport { ListboxTexts } from '../Listbox/Listbox';\nimport { ToastsTexts } from '../Toast/Toast';\nimport { DatepickerTexts } from '../Datepicker/Datepicker';\nimport { HeaderTexts } from '../Header/Header';\nimport { HangerTexts } from '../Hanger/Hanger';\nimport { SelectTexts } from '../Select/Select';\nimport { TourTexts } from '../Tour/Tour';\nimport { LegacyTableTexts } from '../Table/Table';\nimport { Table3Texts } from '../Table3/types';\nimport { SearchInputTexts } from '../SearchInput/SearchInput';\nimport { Select2Texts } from '../Select2/Select2';\nimport { BannerTexts } from '../Banner/Banner';\nimport { DrawerTexts } from '../Drawer/Drawer';\nimport { TableTexts } from '../../primitives/Table/types';\n\nexport type LocalizationTexts = {\n /** Localized texts and aria-labels for [Banner](component:banner) component */\n banner: BannerTexts;\n /** Localized texts and aria-labels for [Calendar](component:calendar) component */\n calendar: CalendarTexts;\n /** Localized texts and aria-labels for [Combobox](component:combobox) component */\n combobox: ComboboxTexts;\n /** Localized texts and aria-labels for [DatePicker](component:datepicker) component */\n datepicker: DatepickerTexts;\n /** Localized texts and aria-labels for [Dialog](component:dialog) component */\n dialog: DialogTexts;\n /** Localized texts and aria-labels for [Hanger](component:hanger) component */\n hanger: HangerTexts;\n /** Localized texts and aria-labels for [Header](component:header) component */\n header: HeaderTexts;\n /** Localized texts and aria-labels for [Listbox](component:listbox) component */\n listbox: ListboxTexts;\n /** Localized texts and aria-labels for [Pagination](component:pagination) component */\n pagination: PaginationTexts;\n /** Localized texts and aria-labels for [Table](component:table) component */\n legacyTable: LegacyTableTexts;\n /** Localized texts and aria-labels for [Table](primitive:table) component */\n table: TableTexts;\n /** Localized texts and aria-labels for [Table3](component:table3) component */\n table3: Table3Texts;\n /** Localized texts and aria-labels for [SearchInput](component:searchinput) component */\n searchInput: SearchInputTexts;\n /** Localized texts and aria-labels for [Select](component:select) component */\n select: SelectTexts;\n /** Localized texts and aria-labels for [Select2](component:select2) component */\n select2: Select2Texts;\n /** Localized texts and aria-labels for [Toast](component:toast) component */\n toasts: ToastsTexts;\n /** Localized texts and aria-labels for [Tour](component:tour) component */\n tour: TourTexts;\n /** Localized texts and aria-labels for [Drawer](component:drawer) component */\n drawer: DrawerTexts;\n};\n\nexport type Localization = {\n /**\n * Provide the language code used in application.\n * Default value is `en-GB`\n */\n locale: Locale;\n /** Provide the texts and aria-labels for components used within the provider */\n texts: LocalizationTexts;\n /** Provide the formatting */\n formatting: {\n /** Default value is `dd.mm.yy` */\n date: string;\n };\n};\n\nexport const defaultLocalisationTexts = {\n banner: {\n close: 'Close',\n },\n calendar: {\n months: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n actions: {\n previousMonth: 'Previous month',\n nextMonth: 'Next month',\n previousYear: 'Previous year',\n nextYear: 'Next year',\n today: 'Today',\n },\n },\n combobox: {\n tooltip: 'Search in list',\n },\n datepicker: {\n calendar: 'Calendar',\n clear: 'Clear',\n expand: 'Show calendar',\n shortcuts: 'Shortcuts',\n },\n dialog: {\n close: 'Close',\n drag: 'Drag',\n },\n hanger: {\n close: 'Close',\n },\n header: {\n addAgreement: 'Add agreement',\n logout: 'Log off',\n more: 'More',\n new: 'New',\n search: 'Search for agreement...',\n },\n listbox: {\n loading: 'Loading results...',\n empty: 'No results found',\n allOption: 'All',\n },\n pagination: {\n label: 'Pagination',\n pageSize: 'Items per page',\n showingXofYofTotal: 'Showing [X] - [Y] of [total]',\n actions: {\n firstPage: 'Goto first page',\n firstPageWithShortcut: 'Goto first page (Home)',\n previousPage: 'Goto previous page',\n previousPageWithShortcut: 'Goto previous page (Page Up)',\n nextPage: 'Goto next page',\n nextPageWithShortcut: 'Goto next page (Page Down)',\n lastPage: 'Goto last page',\n lastPageWithShortcut: 'Goto last page (End)',\n pageX: 'Goto page [X]',\n },\n },\n legacyTable: {\n actions: 'Other actions',\n edit: 'Edit (e)',\n copy: 'Copy (c)',\n del: 'Delete (del)',\n newSubRow: 'New row (shift + n)',\n loading: 'Loading...',\n },\n table: {\n columns: {\n actions: {\n tooltip: 'Row actions',\n },\n drag: {\n tooltip: 'Drag row',\n },\n expansion: {\n collapse: 'Collapse row',\n collapseAll: 'Collapse all rows',\n expand: 'Expand row',\n expandAll: 'Expand all rows',\n },\n menu: {\n editFilter: 'Edit filter',\n filter: 'Filter',\n freezeFirstColumn: 'Freeze the first column',\n freezeUptoColumn: `Freeze first [TOTAL] columns`,\n gotoRow: 'Go to',\n hideColumn: 'Hide column',\n unfreezeColumns: 'Unfreeze all columns',\n sorting: 'Sorting',\n sortingOrder: {\n ascending: 'Ascending order',\n descending: 'Descending order',\n unsorted: 'No sorting',\n },\n },\n resize: {\n tooltip: 'Resize column',\n },\n select: {\n deselect: 'Deselect row',\n deselectAll: 'Deselect all rows',\n select: 'Select row',\n selectAll: 'Select all rows',\n },\n },\n columnSettings: {\n search: 'Search column...',\n tooltip: 'Column settings',\n button: 'Column settings',\n noResults: 'No results',\n },\n filters: {\n button: 'Filters',\n buttons: {\n addFilter: 'Add new filter',\n clearFilters: 'Clear all filters',\n },\n comparators: {\n contains: 'Contains',\n doesNotContain: 'Does not contain',\n isEqualTo: 'Is',\n isNotEqualTo: 'Is not',\n isGreaterThan: 'Is greater than',\n isLessThan: 'Is less than',\n isBetween: 'Is between',\n isOneOf: 'Is one of',\n isNoneOf: 'Is none of',\n isAllOf: 'Is all of',\n isEmpty: 'Is empty',\n isNotEmpty: 'Is not empty',\n isBefore: 'Is before',\n isAfter: 'Is after',\n isOnOrBefore: 'Is on or before',\n isOnOrAfter: 'Is on or after',\n isLessThanOrEqualTo: 'Is less than or equal to',\n isGreaterThanOrEqualTo: 'Is greater than or equal to',\n hasAnyOf: 'Has any of',\n hasAllOf: 'Has all of',\n hasNoneOf: 'Has none of',\n },\n conditions: {\n and: 'And',\n where: 'Where',\n },\n emptyFilter: {\n condition: 'Condition',\n value: 'Value',\n },\n hiddenColumn: 'Hidden column',\n hiddenGroupedColumn: 'Hidden grouped column',\n tooltip: 'Apply filters',\n total: 'Viewing [CURRENT] of [TOTAL]',\n },\n fontSize: {\n tooltip: 'Font size',\n sizes: {\n small: 'Small',\n medium: 'Medium',\n large: 'Large',\n },\n },\n footer: {\n summary: {\n count: 'of',\n records: 'Records:',\n selected: 'Records selected:',\n },\n },\n print: {\n error: 'An error occurred while creating a print preview',\n loading: 'Creating a print preview',\n tooltip: 'Print',\n warningDialog: {\n title: 'Extra loading time',\n description:\n 'Please note that printing a large amount of data may result in a slightly longer waiting time due to data loading.',\n checkboxVisibilityLabel: \"Don't show again\",\n cancelButtonText: 'Cancel',\n printButtonText: 'Print',\n },\n settingsDialog: {\n title: 'Print settings',\n size: 'Paper size',\n sizeA5: 'A5',\n sizeA4: 'A4',\n sizeA3: 'A3',\n sizeLetter: 'Letter',\n sizeLegal: 'Legal',\n orientation: 'Paper orientation',\n orientationLandscape: 'Landscape',\n orientationPortrait: 'Portrait',\n rows: 'Print rows',\n rowsAll: 'All',\n rowsSelected: 'Selected',\n layout: 'Page layout',\n layoutSplitGroups: 'New page for each [COLUMN]',\n },\n },\n rowHeight: {\n tooltip: 'Row height',\n sizes: {\n short: 'Short',\n medium: 'Medium',\n tall: 'Tall',\n extraTall: 'Extra tall',\n },\n },\n search: {\n excludeUnmatchedResults: 'Show only search results',\n placeholder: 'Search...',\n },\n otherOptions: {\n tooltip: 'Table settings',\n },\n },\n table3: {\n editing: {\n actions: {\n tooltip: 'Row actions',\n save: 'Save',\n clear: 'Clear changes',\n exit: 'Exit edit mode',\n },\n buttons: {\n edit: {\n tooltip: 'Edit table',\n },\n },\n clearChangesConfirmationDialog: {\n title: 'Discard changes',\n description: 'Are you sure you want to discard changes? Your changes will be lost.',\n cancel: 'Continue editing',\n confirm: 'Discard',\n },\n rowIndicator: {\n rowWillMove: 'Row will move due to sorting',\n rowWillBeHidden: 'Row will hide due to filtering',\n rowWillMoveReasonSearch:\n 'Due to a search filter applied to this table, this row will be hidden as soon as you select another row',\n rowWillMoveReasonFilter:\n \"Due to a filter applied to the column '[COLUMN]', this row will be hidden as soon as you select another row\",\n rowWillMoveReasonSorting:\n \"Due to sorting applied to the column '[COLUMN]', this row will move position as soon as you select another row\",\n },\n saving: {\n progress: 'Saving...',\n complete: 'Saved',\n },\n validation: {\n alert: {\n titleOne: '[COUNT] unsaved entry: ',\n titlePlural: '[COUNT] unsaved entries: ',\n messageOne: \"[COLUMN] [ROW] is incomplete and hasn't been saved.\",\n messagePlural: \"[COLUMN] [ROW] are incomplete and haven't been saved.\",\n messageRow: 'Row',\n messageAnd: ' and ',\n },\n resetFiltersDialog: {\n title: 'Row is hidden',\n description: 'The row is hidden due to filtering.',\n cancel: 'Cancel',\n confirm: 'Remove filters',\n },\n },\n },\n },\n searchInput: {\n button: 'Search',\n findNext: 'Next',\n findPrevious: 'Previous',\n placeholder: 'Search...',\n clear: 'Clear',\n },\n select: {\n allOptionsSelected: 'All',\n },\n select2: {\n allSelect: 'Select all',\n allDeselect: 'Deselect all',\n cancel: 'Cancel',\n chooseColor: 'Pick a color',\n create: 'Create',\n delete: 'Delete',\n save: 'Save',\n search: 'Search...',\n searchOrCreate: 'Search or create...',\n selectAll: 'Select all',\n selectAllResults: 'Select all results',\n deselectAll: 'Deselect all',\n deselectAllResults: 'Deselect all results',\n },\n toasts: {\n dismiss: 'Dismiss',\n },\n tour: {\n back: 'Back',\n close: 'Close',\n skip: 'Close and complete',\n last: 'Done',\n next: 'Next',\n open: 'Open',\n },\n drawer: {\n close: 'Close',\n },\n};\n\nexport const defaultLocalizationContext: Localization = {\n locale: 'en-GB',\n texts: defaultLocalisationTexts,\n formatting: {\n date: 'dd.mm.yy',\n },\n};\n\nexport const LocalizationContext = React.createContext<Localization>(defaultLocalizationContext);\nexport interface LocalizationProviderProps {\n children: React.ReactNode;\n localization?: Localization;\n}\nexport const LocalizationProvider: React.FC<LocalizationProviderProps> = ({ localization, children }) => {\n return (\n <LocalizationContext.Provider value={localization ?? defaultLocalizationContext}>{children}</LocalizationContext.Provider>\n );\n};\n\nexport const useLocalization = () => React.useContext(LocalizationContext);\n"],"names":["defaultLocalisationTexts","banner","close","calendar","months","weekdaysShort","weekdays","actions","previousMonth","nextMonth","previousYear","nextYear","today","combobox","tooltip","datepicker","clear","expand","shortcuts","dialog","drag","hanger","header","addAgreement","logout","more","new","search","listbox","loading","empty","allOption","pagination","label","pageSize","showingXofYofTotal","firstPage","firstPageWithShortcut","previousPage","previousPageWithShortcut","nextPage","nextPageWithShortcut","lastPage","lastPageWithShortcut","pageX","legacyTable","edit","copy","del","newSubRow","table","columns","expansion","collapse","collapseAll","expandAll","menu","editFilter","filter","freezeFirstColumn","freezeUptoColumn","gotoRow","hideColumn","unfreezeColumns","sorting","sortingOrder","ascending","descending","unsorted","resize","select","deselect","deselectAll","selectAll","columnSettings","button","noResults","filters","buttons","addFilter","clearFilters","comparators","contains","doesNotContain","isEqualTo","isNotEqualTo","isGreaterThan","isLessThan","isBetween","isOneOf","isNoneOf","isAllOf","isEmpty","isNotEmpty","isBefore","isAfter","isOnOrBefore","isOnOrAfter","isLessThanOrEqualTo","isGreaterThanOrEqualTo","hasAnyOf","hasAllOf","hasNoneOf","conditions","and","where","emptyFilter","condition","value","hiddenColumn","hiddenGroupedColumn","total","fontSize","sizes","small","medium","large","footer","summary","count","records","selected","print","error","warningDialog","title","description","checkboxVisibilityLabel","cancelButtonText","printButtonText","settingsDialog","size","sizeA5","sizeA4","sizeA3","sizeLetter","sizeLegal","orientation","orientationLandscape","orientationPortrait","rows","rowsAll","rowsSelected","layout","layoutSplitGroups","rowHeight","short","tall","extraTall","excludeUnmatchedResults","placeholder","otherOptions","table3","editing","save","exit","clearChangesConfirmationDialog","cancel","confirm","rowIndicator","rowWillMove","rowWillBeHidden","rowWillMoveReasonSearch","rowWillMoveReasonFilter","rowWillMoveReasonSorting","saving","progress","complete","validation","alert","titleOne","titlePlural","messageOne","messagePlural","messageRow","messageAnd","resetFiltersDialog","searchInput","findNext","findPrevious","allOptionsSelected","select2","allSelect","allDeselect","chooseColor","create","delete","searchOrCreate","selectAllResults","deselectAllResults","toasts","dismiss","tour","back","skip","last","next","open","drawer","defaultLocalizationContext","locale","texts","formatting","date","LocalizationContext","React","LocalizationProvider","localization","children","Provider","useLocalization"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Localization.js","sources":["../../../../../../../src/components/Provider/Localization.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Locale } from '../../types';\nimport { CalendarTexts } from '../Calendar/Calendar';\nimport { ComboboxTexts } from '../Combobox/Combobox';\nimport { DialogTexts } from '../Dialog/Dialog';\nimport { PaginationTexts } from '../Pagination/Pagination';\nimport { ListboxTexts } from '../Listbox/Listbox';\nimport { ToastsTexts } from '../Toast/Toast';\nimport { DatepickerTexts } from '../Datepicker/Datepicker';\nimport { HeaderTexts } from '../Header/Header';\nimport { HangerTexts } from '../Hanger/Hanger';\nimport { SelectTexts } from '../Select/Select';\nimport { TourTexts } from '../Tour/Tour';\nimport { LegacyTableTexts } from '../Table/Table';\nimport { Table3Texts } from '../Table3/types';\nimport { SearchInputTexts } from '../SearchInput/SearchInput';\nimport { Select2Texts } from '../Select2/Select2';\nimport { BannerTexts } from '../Banner/Banner';\nimport { DrawerTexts } from '../Drawer/Drawer';\nimport { TableTexts } from '../../primitives/Table/types';\n\nexport type LocalizationTexts = {\n /** Localized texts and aria-labels for [Banner](component:banner) component */\n banner: BannerTexts;\n /** Localized texts and aria-labels for [Calendar](component:calendar) component */\n calendar: CalendarTexts;\n /** Localized texts and aria-labels for [Combobox](component:combobox) component */\n combobox: ComboboxTexts;\n /** Localized texts and aria-labels for [DatePicker](component:datepicker) component */\n datepicker: DatepickerTexts;\n /** Localized texts and aria-labels for [Dialog](component:dialog) component */\n dialog: DialogTexts;\n /** Localized texts and aria-labels for [Hanger](component:hanger) component */\n hanger: HangerTexts;\n /** Localized texts and aria-labels for [Header](component:header) component */\n header: HeaderTexts;\n /** Localized texts and aria-labels for [Listbox](component:listbox) component */\n listbox: ListboxTexts;\n /** Localized texts and aria-labels for [Pagination](component:pagination) component */\n pagination: PaginationTexts;\n /** Localized texts and aria-labels for [Table](component:table) component */\n legacyTable: LegacyTableTexts;\n /** Localized texts and aria-labels for [Table](primitive:table) component */\n table: TableTexts;\n /** Localized texts and aria-labels for [Table3](component:table3) component */\n table3: Table3Texts;\n /** Localized texts and aria-labels for [SearchInput](component:searchinput) component */\n searchInput: SearchInputTexts;\n /** Localized texts and aria-labels for [Select](component:select) component */\n select: SelectTexts;\n /** Localized texts and aria-labels for [Select2](component:select2) component */\n select2: Select2Texts;\n /** Localized texts and aria-labels for [Toast](component:toast) component */\n toasts: ToastsTexts;\n /** Localized texts and aria-labels for [Tour](component:tour) component */\n tour: TourTexts;\n /** Localized texts and aria-labels for [Drawer](component:drawer) component */\n drawer: DrawerTexts;\n};\n\nexport type Localization = {\n /**\n * Provide the language code used in application.\n * Default value is `en-GB`\n */\n locale: Locale;\n /** Provide the texts and aria-labels for components used within the provider */\n texts: LocalizationTexts;\n /** Provide the formatting */\n formatting: {\n /** Default value is `dd.mm.yy` */\n date: string;\n };\n};\n\nexport const defaultLocalisationTexts = {\n banner: {\n close: 'Close',\n },\n calendar: {\n months: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n actions: {\n previousMonth: 'Previous month',\n nextMonth: 'Next month',\n previousYear: 'Previous year',\n nextYear: 'Next year',\n today: 'Today',\n },\n },\n combobox: {\n tooltip: 'Search in list',\n },\n datepicker: {\n calendar: 'Calendar',\n clear: 'Clear',\n expand: 'Show calendar',\n shortcuts: 'Shortcuts',\n },\n dialog: {\n close: 'Close',\n drag: 'Drag',\n },\n hanger: {\n close: 'Close',\n },\n header: {\n addAgreement: 'Add agreement',\n logout: 'Log off',\n more: 'More',\n new: 'New',\n search: 'Search for agreement...',\n },\n listbox: {\n loading: 'Loading results...',\n empty: 'No results found',\n allOption: 'All',\n },\n pagination: {\n label: 'Pagination',\n pageSize: 'Items per page',\n showingXofYofTotal: 'Showing [X] - [Y] of [total]',\n actions: {\n firstPage: 'Goto first page',\n firstPageWithShortcut: 'Goto first page (Home)',\n previousPage: 'Goto previous page',\n previousPageWithShortcut: 'Goto previous page (Page Up)',\n nextPage: 'Goto next page',\n nextPageWithShortcut: 'Goto next page (Page Down)',\n lastPage: 'Goto last page',\n lastPageWithShortcut: 'Goto last page (End)',\n pageX: 'Goto page [X]',\n },\n },\n legacyTable: {\n actions: 'Other actions',\n edit: 'Edit (e)',\n copy: 'Copy (c)',\n del: 'Delete (del)',\n newSubRow: 'New row (shift + n)',\n loading: 'Loading...',\n },\n table: {\n columns: {\n actions: {\n tooltip: 'Row actions',\n },\n drag: {\n tooltip: 'Drag row',\n },\n expansion: {\n collapse: 'Collapse row',\n collapseAll: 'Collapse all rows',\n expand: 'Expand row',\n expandAll: 'Expand all rows',\n },\n menu: {\n editFilter: 'Edit filter',\n filter: 'Filter',\n freezeFirstColumn: 'Freeze the first column',\n freezeUptoColumn: `Freeze first [TOTAL] columns`,\n gotoRow: 'Go to',\n hideColumn: 'Hide column',\n unfreezeColumns: 'Unfreeze all columns',\n sorting: 'Sorting',\n sortingOrder: {\n ascending: 'Ascending order',\n descending: 'Descending order',\n unsorted: 'No sorting',\n },\n },\n resize: {\n tooltip: 'Resize column',\n },\n select: {\n deselect: 'Deselect row',\n deselectAll: 'Deselect all rows',\n select: 'Select row',\n selectAll: 'Select all rows',\n },\n },\n columnSettings: {\n search: 'Search column...',\n tooltip: 'Column settings',\n button: 'Column settings',\n noResults: 'No results',\n },\n filters: {\n button: 'Filters',\n buttons: {\n addFilter: 'Add new filter',\n clearFilters: 'Clear all filters',\n },\n comparators: {\n contains: 'Contains',\n doesNotContain: 'Does not contain',\n isEqualTo: 'Is',\n isNotEqualTo: 'Is not',\n isGreaterThan: 'Is greater than',\n isLessThan: 'Is less than',\n isBetween: 'Is between',\n isOneOf: 'Is one of',\n isNoneOf: 'Is none of',\n isAllOf: 'Is all of',\n isEmpty: 'Is empty',\n isNotEmpty: 'Is not empty',\n isBefore: 'Is before',\n isAfter: 'Is after',\n isOnOrBefore: 'Is on or before',\n isOnOrAfter: 'Is on or after',\n isLessThanOrEqualTo: 'Is less than or equal to',\n isGreaterThanOrEqualTo: 'Is greater than or equal to',\n hasAnyOf: 'Has any of',\n hasAllOf: 'Has all of',\n hasNoneOf: 'Has none of',\n },\n conditions: {\n and: 'And',\n where: 'Where',\n },\n emptyFilter: {\n condition: 'Condition',\n value: 'Value',\n },\n hiddenColumn: 'Hidden column',\n hiddenGroupedColumn: 'Hidden grouped column',\n tooltip: 'Apply filters',\n total: 'Viewing [CURRENT] of [TOTAL]',\n },\n fontSize: {\n tooltip: 'Font size',\n sizes: {\n small: 'Small',\n medium: 'Medium',\n large: 'Large',\n },\n },\n footer: {\n summary: {\n count: 'of',\n records: 'Records:',\n selected: 'Records selected:',\n },\n },\n print: {\n error: 'An error occurred while creating a print preview',\n loading: 'Creating a print preview',\n tooltip: 'Print',\n warningDialog: {\n title: 'Extra loading time',\n description:\n 'Please note that printing a large amount of data may result in a slightly longer waiting time due to data loading.',\n checkboxVisibilityLabel: \"Don't show again\",\n cancelButtonText: 'Cancel',\n printButtonText: 'Print',\n },\n settingsDialog: {\n title: 'Print settings',\n size: 'Paper size',\n sizeA5: 'A5',\n sizeA4: 'A4',\n sizeA3: 'A3',\n sizeLetter: 'Letter',\n sizeLegal: 'Legal',\n orientation: 'Paper orientation',\n orientationLandscape: 'Landscape',\n orientationPortrait: 'Portrait',\n rows: 'Print rows',\n rowsAll: 'All',\n rowsSelected: 'Selected',\n layout: 'Page layout',\n layoutSplitGroups: 'New page for each [COLUMN]',\n },\n },\n rowHeight: {\n tooltip: 'Row height',\n sizes: {\n short: 'Short',\n medium: 'Medium',\n tall: 'Tall',\n extraTall: 'Extra tall',\n },\n },\n search: {\n excludeUnmatchedResults: 'Show only search results',\n placeholder: 'Search...',\n },\n otherOptions: {\n tooltip: 'Table settings',\n },\n },\n table3: {\n editing: {\n actions: {\n tooltip: 'Row actions',\n save: 'Save',\n clear: 'Clear changes',\n exit: 'Exit edit mode',\n },\n buttons: {\n edit: {\n tooltip: 'Edit table',\n },\n },\n clearChangesConfirmationDialog: {\n title: 'Discard changes',\n description: 'Are you sure you want to discard changes? Your changes will be lost.',\n cancel: 'Continue editing',\n confirm: 'Discard',\n },\n rowIndicator: {\n rowWillMove: 'Row will move due to sorting',\n rowWillBeHidden: 'Row will hide due to filtering',\n rowWillMoveReasonSearch:\n 'Due to a search filter applied to this table, this row will be hidden as soon as you select another row',\n rowWillMoveReasonFilter:\n \"Due to a filter applied to the column '[COLUMN]', this row will be hidden as soon as you select another row\",\n rowWillMoveReasonSorting:\n \"Due to sorting applied to the column '[COLUMN]', this row will move position as soon as you select another row\",\n },\n saving: {\n progress: 'Saving...',\n complete: 'Saved',\n },\n validation: {\n alert: {\n titleOne: '[COUNT] unsaved entry:',\n titlePlural: '[COUNT] unsaved entries:',\n messageOne: \"[COLUMN] [ROW] is incomplete and hasn't been saved.\",\n messagePlural: \"[COLUMN] [ROW] are incomplete and haven't been saved.\",\n messageRow: 'Row',\n messageAnd: 'and',\n },\n resetFiltersDialog: {\n title: 'Row is hidden',\n description: 'The row is hidden due to filtering.',\n cancel: 'Cancel',\n confirm: 'Remove filters',\n },\n },\n },\n },\n searchInput: {\n button: 'Search',\n findNext: 'Next',\n findPrevious: 'Previous',\n placeholder: 'Search...',\n clear: 'Clear',\n },\n select: {\n allOptionsSelected: 'All',\n },\n select2: {\n allSelect: 'Select all',\n allDeselect: 'Deselect all',\n cancel: 'Cancel',\n chooseColor: 'Pick a color',\n create: 'Create',\n delete: 'Delete',\n save: 'Save',\n search: 'Search...',\n searchOrCreate: 'Search or create...',\n selectAll: 'Select all',\n selectAllResults: 'Select all results',\n deselectAll: 'Deselect all',\n deselectAllResults: 'Deselect all results',\n },\n toasts: {\n dismiss: 'Dismiss',\n },\n tour: {\n back: 'Back',\n close: 'Close',\n skip: 'Close and complete',\n last: 'Done',\n next: 'Next',\n open: 'Open',\n },\n drawer: {\n close: 'Close',\n },\n};\n\nexport const defaultLocalizationContext: Localization = {\n locale: 'en-GB',\n texts: defaultLocalisationTexts,\n formatting: {\n date: 'dd.mm.yy',\n },\n};\n\nexport const LocalizationContext = React.createContext<Localization>(defaultLocalizationContext);\nexport interface LocalizationProviderProps {\n children: React.ReactNode;\n localization?: Localization;\n}\nexport const LocalizationProvider: React.FC<LocalizationProviderProps> = ({ localization, children }) => {\n return (\n <LocalizationContext.Provider value={localization ?? defaultLocalizationContext}>{children}</LocalizationContext.Provider>\n );\n};\n\nexport const useLocalization = () => React.useContext(LocalizationContext);\n"],"names":["defaultLocalisationTexts","banner","close","calendar","months","weekdaysShort","weekdays","actions","previousMonth","nextMonth","previousYear","nextYear","today","combobox","tooltip","datepicker","clear","expand","shortcuts","dialog","drag","hanger","header","addAgreement","logout","more","new","search","listbox","loading","empty","allOption","pagination","label","pageSize","showingXofYofTotal","firstPage","firstPageWithShortcut","previousPage","previousPageWithShortcut","nextPage","nextPageWithShortcut","lastPage","lastPageWithShortcut","pageX","legacyTable","edit","copy","del","newSubRow","table","columns","expansion","collapse","collapseAll","expandAll","menu","editFilter","filter","freezeFirstColumn","freezeUptoColumn","gotoRow","hideColumn","unfreezeColumns","sorting","sortingOrder","ascending","descending","unsorted","resize","select","deselect","deselectAll","selectAll","columnSettings","button","noResults","filters","buttons","addFilter","clearFilters","comparators","contains","doesNotContain","isEqualTo","isNotEqualTo","isGreaterThan","isLessThan","isBetween","isOneOf","isNoneOf","isAllOf","isEmpty","isNotEmpty","isBefore","isAfter","isOnOrBefore","isOnOrAfter","isLessThanOrEqualTo","isGreaterThanOrEqualTo","hasAnyOf","hasAllOf","hasNoneOf","conditions","and","where","emptyFilter","condition","value","hiddenColumn","hiddenGroupedColumn","total","fontSize","sizes","small","medium","large","footer","summary","count","records","selected","print","error","warningDialog","title","description","checkboxVisibilityLabel","cancelButtonText","printButtonText","settingsDialog","size","sizeA5","sizeA4","sizeA3","sizeLetter","sizeLegal","orientation","orientationLandscape","orientationPortrait","rows","rowsAll","rowsSelected","layout","layoutSplitGroups","rowHeight","short","tall","extraTall","excludeUnmatchedResults","placeholder","otherOptions","table3","editing","save","exit","clearChangesConfirmationDialog","cancel","confirm","rowIndicator","rowWillMove","rowWillBeHidden","rowWillMoveReasonSearch","rowWillMoveReasonFilter","rowWillMoveReasonSorting","saving","progress","complete","validation","alert","titleOne","titlePlural","messageOne","messagePlural","messageRow","messageAnd","resetFiltersDialog","searchInput","findNext","findPrevious","allOptionsSelected","select2","allSelect","allDeselect","chooseColor","create","delete","searchOrCreate","selectAllResults","deselectAllResults","toasts","dismiss","tour","back","skip","last","next","open","drawer","defaultLocalizationContext","locale","texts","formatting","date","LocalizationContext","React","LocalizationProvider","localization","children","Provider","useLocalization"],"mappings":"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"}
|
@@ -36,6 +36,7 @@ const TextareaWithAutosizing = /*#__PURE__*/React__default.forwardRef(function T
|
|
36
36
|
};
|
37
37
|
const handleFocus = event => {
|
38
38
|
var _props$onFocus;
|
39
|
+
toggleHeight();
|
39
40
|
(_props$onFocus = props.onFocus) === null || _props$onFocus === void 0 ? void 0 : _props$onFocus.call(props, event);
|
40
41
|
};
|
41
42
|
const handleBlur = event => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TextareaWithAutosizing.js","sources":["../../../../../../../../../../../src/components/Table3/components/Columns/Cell/Editing/TextareaWithAutosizing.tsx"],"sourcesContent":["import React from 'react';\nimport { Textarea, TextareaProps } from '../../../../../Textarea/Textarea';\nimport { TableFontSize } from '../../../../../../primitives/Table/types';\nimport { useMergedRef } from '../../../../../../hooks/useMergedRef';\n\ntype TextareaWithAutosizingProps = TextareaProps & {\n fontSize: TableFontSize;\n isTruncated: boolean;\n};\n\nexport const TextareaWithAutosizing = React.forwardRef<HTMLTextAreaElement, TextareaWithAutosizingProps>(\n function TextareaWithAutosizing(props, ref) {\n const { fontSize, isTruncated, ...attributes } = props;\n const internalRef = useMergedRef<HTMLTextAreaElement>(ref);\n const initialHeightRef = React.useRef<number>(0);\n\n React.useLayoutEffect(() => {\n if (internalRef.current) {\n initialHeightRef.current = internalRef.current.getBoundingClientRect().height;\n\n if (!isTruncated) {\n toggleHeight();\n }\n }\n }, [fontSize]);\n\n const toggleHeight = (reset = false) => {\n if (internalRef.current) {\n if (reset) {\n if (isTruncated) {\n internalRef.current.style.height = `${initialHeightRef.current}px`;\n }\n } else {\n internalRef.current.style.height = 'inherit';\n\n if (isTruncated) {\n internalRef.current.style.height = `${Math.min(\n internalRef.current.scrollHeight,\n initialHeightRef.current * 3\n )}px`;\n } else {\n internalRef.current.style.height = `${internalRef.current.scrollHeight}px`;\n }\n }\n }\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n props.onFocus?.(event);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n if (isTruncated) {\n toggleHeight(true);\n }\n event.target.scrollTop = 0;\n props.onBlur?.(event);\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n toggleHeight();\n props.onChange?.(event);\n };\n\n const textarea = (\n <Textarea\n {...attributes}\n rows={1}\n onBlur={handleBlur}\n onChange={handleChange}\n onFocus={handleFocus}\n ref={internalRef}\n />\n );\n\n if (isTruncated) {\n return (\n <div className=\"relative inline-flex w-full focus-within:z-30\" data-taco=\"input-container\">\n {textarea}\n </div>\n );\n }\n\n return textarea;\n }\n);\n"],"names":["TextareaWithAutosizing","React","forwardRef","props","ref","fontSize","isTruncated","attributes","internalRef","useMergedRef","initialHeightRef","useRef","useLayoutEffect","current","getBoundingClientRect","height","toggleHeight","reset","style","Math","min","scrollHeight","handleFocus","event","_props$onFocus","onFocus","call","handleBlur","target","scrollTop","_props$onBlur","onBlur","handleChange","_props$onChange","onChange","textarea","Textarea","rows","className"],"mappings":";;;;MAUaA,sBAAsB,gBAAGC,cAAK,CAACC,UAAU,CAClD,SAASF,sBAAsBA,CAACG,KAAK,EAAEC,GAAG;EACtC,MAAM;IAAEC,QAAQ;IAAEC,WAAW;IAAE,GAAGC;GAAY,GAAGJ,KAAK;EACtD,MAAMK,WAAW,GAAGC,YAAY,CAAsBL,GAAG,CAAC;EAC1D,MAAMM,gBAAgB,GAAGT,cAAK,CAACU,MAAM,CAAS,CAAC,CAAC;EAEhDV,cAAK,CAACW,eAAe,CAAC;IAClB,IAAIJ,WAAW,CAACK,OAAO,EAAE;MACrBH,gBAAgB,CAACG,OAAO,GAAGL,WAAW,CAACK,OAAO,CAACC,qBAAqB,EAAE,CAACC,MAAM;MAE7E,IAAI,CAACT,WAAW,EAAE;QACdU,YAAY,EAAE;;;GAGzB,EAAE,CAACX,QAAQ,CAAC,CAAC;EAEd,MAAMW,YAAY,GAAGA,CAACC,KAAK,GAAG,KAAK;IAC/B,IAAIT,WAAW,CAACK,OAAO,EAAE;MACrB,IAAII,KAAK,EAAE;QACP,IAAIX,WAAW,EAAE;UACbE,WAAW,CAACK,OAAO,CAACK,KAAK,CAACH,MAAM,MAAML,gBAAgB,CAACG,WAAW;;OAEzE,MAAM;QACHL,WAAW,CAACK,OAAO,CAACK,KAAK,CAACH,MAAM,GAAG,SAAS;QAE5C,IAAIT,WAAW,EAAE;UACbE,WAAW,CAACK,OAAO,CAACK,KAAK,CAACH,MAAM,MAAMI,IAAI,CAACC,GAAG,CAC1CZ,WAAW,CAACK,OAAO,CAACQ,YAAY,EAChCX,gBAAgB,CAACG,OAAO,GAAG,CAAC,KAC3B;SACR,MAAM;UACHL,WAAW,CAACK,OAAO,CAACK,KAAK,CAACH,MAAM,MAAMP,WAAW,CAACK,OAAO,CAACQ,gBAAgB;;;;GAIzF;EAED,MAAMC,WAAW,GAAIC,KAA4C;;
|
1
|
+
{"version":3,"file":"TextareaWithAutosizing.js","sources":["../../../../../../../../../../../src/components/Table3/components/Columns/Cell/Editing/TextareaWithAutosizing.tsx"],"sourcesContent":["import React from 'react';\nimport { Textarea, TextareaProps } from '../../../../../Textarea/Textarea';\nimport { TableFontSize } from '../../../../../../primitives/Table/types';\nimport { useMergedRef } from '../../../../../../hooks/useMergedRef';\n\ntype TextareaWithAutosizingProps = TextareaProps & {\n fontSize: TableFontSize;\n isTruncated: boolean;\n};\n\nexport const TextareaWithAutosizing = React.forwardRef<HTMLTextAreaElement, TextareaWithAutosizingProps>(\n function TextareaWithAutosizing(props, ref) {\n const { fontSize, isTruncated, ...attributes } = props;\n const internalRef = useMergedRef<HTMLTextAreaElement>(ref);\n const initialHeightRef = React.useRef<number>(0);\n\n React.useLayoutEffect(() => {\n if (internalRef.current) {\n initialHeightRef.current = internalRef.current.getBoundingClientRect().height;\n\n if (!isTruncated) {\n toggleHeight();\n }\n }\n }, [fontSize]);\n\n const toggleHeight = (reset = false) => {\n if (internalRef.current) {\n if (reset) {\n if (isTruncated) {\n internalRef.current.style.height = `${initialHeightRef.current}px`;\n }\n } else {\n internalRef.current.style.height = 'inherit';\n\n if (isTruncated) {\n internalRef.current.style.height = `${Math.min(\n internalRef.current.scrollHeight,\n initialHeightRef.current * 3\n )}px`;\n } else {\n internalRef.current.style.height = `${internalRef.current.scrollHeight}px`;\n }\n }\n }\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n toggleHeight();\n props.onFocus?.(event);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n if (isTruncated) {\n toggleHeight(true);\n }\n event.target.scrollTop = 0;\n props.onBlur?.(event);\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n toggleHeight();\n props.onChange?.(event);\n };\n\n const textarea = (\n <Textarea\n {...attributes}\n rows={1}\n onBlur={handleBlur}\n onChange={handleChange}\n onFocus={handleFocus}\n ref={internalRef}\n />\n );\n\n if (isTruncated) {\n return (\n <div className=\"relative inline-flex w-full focus-within:z-30\" data-taco=\"input-container\">\n {textarea}\n </div>\n );\n }\n\n return textarea;\n }\n);\n"],"names":["TextareaWithAutosizing","React","forwardRef","props","ref","fontSize","isTruncated","attributes","internalRef","useMergedRef","initialHeightRef","useRef","useLayoutEffect","current","getBoundingClientRect","height","toggleHeight","reset","style","Math","min","scrollHeight","handleFocus","event","_props$onFocus","onFocus","call","handleBlur","target","scrollTop","_props$onBlur","onBlur","handleChange","_props$onChange","onChange","textarea","Textarea","rows","className"],"mappings":";;;;MAUaA,sBAAsB,gBAAGC,cAAK,CAACC,UAAU,CAClD,SAASF,sBAAsBA,CAACG,KAAK,EAAEC,GAAG;EACtC,MAAM;IAAEC,QAAQ;IAAEC,WAAW;IAAE,GAAGC;GAAY,GAAGJ,KAAK;EACtD,MAAMK,WAAW,GAAGC,YAAY,CAAsBL,GAAG,CAAC;EAC1D,MAAMM,gBAAgB,GAAGT,cAAK,CAACU,MAAM,CAAS,CAAC,CAAC;EAEhDV,cAAK,CAACW,eAAe,CAAC;IAClB,IAAIJ,WAAW,CAACK,OAAO,EAAE;MACrBH,gBAAgB,CAACG,OAAO,GAAGL,WAAW,CAACK,OAAO,CAACC,qBAAqB,EAAE,CAACC,MAAM;MAE7E,IAAI,CAACT,WAAW,EAAE;QACdU,YAAY,EAAE;;;GAGzB,EAAE,CAACX,QAAQ,CAAC,CAAC;EAEd,MAAMW,YAAY,GAAGA,CAACC,KAAK,GAAG,KAAK;IAC/B,IAAIT,WAAW,CAACK,OAAO,EAAE;MACrB,IAAII,KAAK,EAAE;QACP,IAAIX,WAAW,EAAE;UACbE,WAAW,CAACK,OAAO,CAACK,KAAK,CAACH,MAAM,MAAML,gBAAgB,CAACG,WAAW;;OAEzE,MAAM;QACHL,WAAW,CAACK,OAAO,CAACK,KAAK,CAACH,MAAM,GAAG,SAAS;QAE5C,IAAIT,WAAW,EAAE;UACbE,WAAW,CAACK,OAAO,CAACK,KAAK,CAACH,MAAM,MAAMI,IAAI,CAACC,GAAG,CAC1CZ,WAAW,CAACK,OAAO,CAACQ,YAAY,EAChCX,gBAAgB,CAACG,OAAO,GAAG,CAAC,KAC3B;SACR,MAAM;UACHL,WAAW,CAACK,OAAO,CAACK,KAAK,CAACH,MAAM,MAAMP,WAAW,CAACK,OAAO,CAACQ,gBAAgB;;;;GAIzF;EAED,MAAMC,WAAW,GAAIC,KAA4C;;IAC7DP,YAAY,EAAE;IACd,CAAAQ,cAAA,GAAArB,KAAK,CAACsB,OAAO,cAAAD,cAAA,uBAAbA,cAAA,CAAAE,IAAA,CAAAvB,KAAK,EAAWoB,KAAK,CAAC;GACzB;EAED,MAAMI,UAAU,GAAIJ,KAA4C;;IAC5D,IAAIjB,WAAW,EAAE;MACbU,YAAY,CAAC,IAAI,CAAC;;IAEtBO,KAAK,CAACK,MAAM,CAACC,SAAS,GAAG,CAAC;IAC1B,CAAAC,aAAA,GAAA3B,KAAK,CAAC4B,MAAM,cAAAD,aAAA,uBAAZA,aAAA,CAAAJ,IAAA,CAAAvB,KAAK,EAAUoB,KAAK,CAAC;GACxB;EAED,MAAMS,YAAY,GAAIT,KAA6C;;IAC/DP,YAAY,EAAE;IACd,CAAAiB,eAAA,GAAA9B,KAAK,CAAC+B,QAAQ,cAAAD,eAAA,uBAAdA,eAAA,CAAAP,IAAA,CAAAvB,KAAK,EAAYoB,KAAK,CAAC;GAC1B;EAED,MAAMY,QAAQ,gBACVlC,6BAACmC,QAAQ,oBACD7B,UAAU;IACd8B,IAAI,EAAE,CAAC;IACPN,MAAM,EAAEJ,UAAU;IAClBO,QAAQ,EAAEF,YAAY;IACtBP,OAAO,EAAEH,WAAW;IACpBlB,GAAG,EAAEI;KAEZ;EAED,IAAIF,WAAW,EAAE;IACb,oBACIL;MAAKqC,SAAS,EAAC,+CAA+C;mBAAW;OACpEH,QAAQ,CACP;;EAId,OAAOA,QAAQ;AACnB,CAAC;;;;"}
|
@@ -20,9 +20,13 @@ function Alert(props) {
|
|
20
20
|
const tableMeta = table.options.meta;
|
21
21
|
const [showFilterResetDialog, setShowFilterResetDialog] = React__default.useState(false);
|
22
22
|
const pendingChangesWithErrors = tableMeta.editing.getErrors();
|
23
|
+
const activeRow = React__default.useMemo(() => tableMeta.rowActive.rowActiveIndex ? table.getRowModel().rows[tableMeta.rowActive.rowActiveIndex] : undefined, [tableMeta.rowActive.rowActiveIndex]);
|
23
24
|
// mark errors being rendered as seen
|
24
25
|
React__default.useEffect(() => {
|
25
26
|
pendingChangesWithErrors.forEach(error => {
|
27
|
+
if (activeRow && error.rowId === activeRow.id) {
|
28
|
+
return;
|
29
|
+
}
|
26
30
|
tableMeta.editing.setRowErrorsSeen(error.rowId);
|
27
31
|
});
|
28
32
|
}, [pendingChangesWithErrors]);
|
@@ -48,7 +52,8 @@ function Alert(props) {
|
|
48
52
|
pendingChangesWithErrors.forEach((error, index) => {
|
49
53
|
// if appropriate, concatenate the item with the text "and"
|
50
54
|
if (pendingChangesWithErrors.length > 1 && index === pendingChangesWithErrors.length - 1) {
|
51
|
-
|
55
|
+
// Add space before and after `messageAnd` text
|
56
|
+
links.push(` ${validationTexts.alert.messageAnd} `);
|
52
57
|
}
|
53
58
|
const rowIndex = table.getRowModel().rows.findIndex(row => row.id === error.rowId);
|
54
59
|
const handleClick = () => {
|
@@ -106,7 +111,7 @@ function Alert(props) {
|
|
106
111
|
state: "error"
|
107
112
|
}), /*#__PURE__*/React__default.createElement("span", {
|
108
113
|
className: "font-bold"
|
109
|
-
}, title), message), /*#__PURE__*/React__default.createElement(FilterResetDialog, {
|
114
|
+
}, title), "\u00A0", message), /*#__PURE__*/React__default.createElement(FilterResetDialog, {
|
110
115
|
open: showFilterResetDialog !== false,
|
111
116
|
onChange: () => setShowFilterResetDialog(false),
|
112
117
|
onSubmit: handleResetFilters
|
@@ -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 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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"}
|
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 const activeRow = React.useMemo(\n () => (tableMeta.rowActive.rowActiveIndex ? table.getRowModel().rows[tableMeta.rowActive.rowActiveIndex] : undefined),\n [tableMeta.rowActive.rowActiveIndex]\n );\n\n // mark errors being rendered as seen\n React.useEffect(() => {\n pendingChangesWithErrors.forEach(error => {\n if (activeRow && error.rowId === activeRow.id) {\n return;\n }\n\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 // Add space before and after `messageAnd` text\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> {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","activeRow","useMemo","rowActive","rowActiveIndex","getRowModel","rows","undefined","useEffect","forEach","error","rowId","id","setRowErrorsSeen","scrollToRow","rowIndex","setRowActiveIndex","align","requestAnimationFrame","cell","_tableRef$current","current","querySelector","_cell$focus","focus","call","title","length","alert","titleOne","titlePlural","replace","String","links","rowIdentityColumn","rowIdentityColumnId","getColumn","index","push","messageAnd","findIndex","row","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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"}
|
@@ -5,20 +5,16 @@ import { RowContext } from '../../Row/RowContext.js';
|
|
5
5
|
function getCellAttributes(cell, index, isHighlighted) {
|
6
6
|
const columnMeta = cell.column.columnDef.meta;
|
7
7
|
const isPinned = cell.column.getIsPinned();
|
8
|
-
|
8
|
+
// be careful adding new properties here, any objects will break cell memoisation (e.g. the style attribute)
|
9
|
+
return {
|
9
10
|
'data-cell-align': columnMeta === null || columnMeta === void 0 ? void 0 : columnMeta.align,
|
10
11
|
'data-cell-highlighted': isHighlighted,
|
11
12
|
'data-cell-id': cell.column.id,
|
12
13
|
'data-cell-index': index,
|
13
14
|
'data-cell-pinned': isPinned ? true : undefined,
|
14
15
|
'data-cell-truncate': columnMeta.enableTruncate ? true : undefined,
|
15
|
-
className: typeof columnMeta.className === 'function' ? columnMeta.className(cell.row.original) : columnMeta.className
|
16
|
-
style: {}
|
16
|
+
className: typeof columnMeta.className === 'function' ? columnMeta.className(cell.row.original) : columnMeta.className
|
17
17
|
};
|
18
|
-
if (isPinned) {
|
19
|
-
attributes.style[isPinned] = `${cell.column.getStart(isPinned)}px`;
|
20
|
-
}
|
21
|
-
return attributes;
|
22
18
|
}
|
23
19
|
function useSearchHighlighting(cell, cellIndex, ref) {
|
24
20
|
const {
|
package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/util.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"util.js","sources":["../../../../../../../../../../../src/primitives/Table/Core/components/Columns/Cell/util.ts"],"sourcesContent":["import React from 'react';\nimport { Cell as ReactTableCell, ColumnMeta as ReactTableColumnMeta, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { isCellHighlighted, isInternalColumn } from '../../../../useTableManager/util/columns';\nimport { RowContext } from '../../Row/RowContext';\n\nexport type DisplayCellProps<TType = unknown> = {\n index: number;\n cell: ReactTableCell<TType, unknown>;\n};\n\nexport function getCellAttributes<TType = unknown>(\n cell: ReactTableCell<TType, unknown>,\n index: number,\n isHighlighted: true | 'current' | undefined\n) {\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n
|
1
|
+
{"version":3,"file":"util.js","sources":["../../../../../../../../../../../src/primitives/Table/Core/components/Columns/Cell/util.ts"],"sourcesContent":["import React from 'react';\nimport { Cell as ReactTableCell, ColumnMeta as ReactTableColumnMeta, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { isCellHighlighted, isInternalColumn } from '../../../../useTableManager/util/columns';\nimport { RowContext } from '../../Row/RowContext';\n\nexport type DisplayCellProps<TType = unknown> = {\n index: number;\n cell: ReactTableCell<TType, unknown>;\n};\n\nexport function getCellAttributes<TType = unknown>(\n cell: ReactTableCell<TType, unknown>,\n index: number,\n isHighlighted: true | 'current' | undefined\n) {\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n const isPinned = cell.column.getIsPinned();\n\n // be careful adding new properties here, any objects will break cell memoisation (e.g. the style attribute)\n return {\n 'data-cell-align': columnMeta?.align,\n 'data-cell-highlighted': isHighlighted,\n 'data-cell-id': cell.column.id,\n 'data-cell-index': index,\n 'data-cell-pinned': isPinned ? true : undefined,\n 'data-cell-truncate': columnMeta.enableTruncate ? true : undefined,\n className: typeof columnMeta.className === 'function' ? columnMeta.className(cell.row.original) : columnMeta.className,\n };\n}\n\nexport function useSearchHighlighting<TType = unknown>(\n cell: ReactTableCell<TType, unknown>,\n cellIndex: number,\n ref: React.RefObject<HTMLTableCellElement>\n) {\n const { rowIndex } = React.useContext(RowContext);\n const context = cell.getContext();\n const tableMeta = context.table.options.meta as ReactTableMeta<TType>;\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n\n const isHighlighted: 'current' | boolean | undefined = React.useMemo(() => {\n if (\n !cell.column.columnDef.enableGlobalFilter ||\n isInternalColumn(cell.column.id) ||\n cell.getIsAggregated() ||\n cell.getIsPlaceholder()\n ) {\n return undefined;\n }\n\n let isHighlighted = false;\n\n if (context.table.getState().globalFilter) {\n isHighlighted = isCellHighlighted(context.table.getState().globalFilter, cell.getValue(), columnMeta.dataType);\n }\n\n if (!isHighlighted || tableMeta.search.currentHighlightColumnIndex === undefined) {\n return undefined;\n }\n\n const [rowActiveIndex, currentColumnIndex] =\n tableMeta.search.highlightedColumnIndexes[tableMeta.search.currentHighlightColumnIndex];\n\n if (rowActiveIndex === rowIndex && currentColumnIndex === cellIndex) {\n return 'current';\n }\n\n return true;\n }, [\n cell.getValue(),\n context.table.getState().globalFilter,\n tableMeta.search.highlightedColumnIndexes.length,\n tableMeta.search.currentHighlightColumnIndex,\n ]);\n\n React.useEffect(() => {\n if (ref.current && isHighlighted === 'current') {\n ref.current.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n\n setTimeout(() => {\n if (ref.current) {\n const tableEl = ref.current.closest('table[data-taco^=\"table\"]');\n\n setTimeout(() => {\n const pinnedColumns = tableEl?.querySelectorAll('thead tr:last-child th[data-cell-pinned=\"left\"]');\n\n if (pinnedColumns?.length) {\n const lastFrozenRect = pinnedColumns.item(pinnedColumns.length - 1)?.getBoundingClientRect();\n\n if (lastFrozenRect && cell.column.getStart() < lastFrozenRect.right) {\n tableEl?.scrollTo(cell.column.getStart() - lastFrozenRect.right, tableEl.scrollTop);\n }\n }\n }, 1);\n }\n }, 1);\n }\n }, [isHighlighted]);\n\n return isHighlighted;\n}\n\nexport function getCurrentRowCellElement(index: number, tableEl: HTMLElement) {\n const cellSelector = `[data-current=\"true\"] [data-column-index=\"${index}\"`;\n return tableEl.querySelector(cellSelector);\n}\n\nexport function scrollColumnIntoView(columnIndex: number, frozenColumnIndex: number, column: HTMLElement, tableEl: HTMLElement) {\n if (frozenColumnIndex !== undefined && columnIndex > frozenColumnIndex) {\n const lastFrozenColumnElement = getCurrentRowCellElement(frozenColumnIndex, tableEl);\n const highlightRef = column?.getBoundingClientRect();\n const lastFrozenRect = lastFrozenColumnElement?.getBoundingClientRect();\n\n // offset the width of frozen columns so that the column being scrolled to is not hidden behind them\n if (highlightRef && lastFrozenRect && highlightRef.left < lastFrozenRect.left + lastFrozenRect.width) {\n const pinnedColumnsWidth = lastFrozenRect.left + lastFrozenRect.width;\n tableEl?.scrollTo(highlightRef.left - pinnedColumnsWidth, tableEl.scrollTop);\n }\n } else {\n column.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n}\n"],"names":["getCellAttributes","cell","index","isHighlighted","columnMeta","column","columnDef","meta","isPinned","getIsPinned","align","id","undefined","enableTruncate","className","row","original","useSearchHighlighting","cellIndex","ref","rowIndex","React","useContext","RowContext","context","getContext","tableMeta","table","options","useMemo","enableGlobalFilter","isInternalColumn","getIsAggregated","getIsPlaceholder","getState","globalFilter","isCellHighlighted","getValue","dataType","search","currentHighlightColumnIndex","rowActiveIndex","currentColumnIndex","highlightedColumnIndexes","length","useEffect","current","scrollIntoView","block","inline","setTimeout","tableEl","closest","pinnedColumns","querySelectorAll","_pinnedColumns$item","lastFrozenRect","item","getBoundingClientRect","getStart","right","scrollTo","scrollTop"],"mappings":"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"}
|
package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyleColumnFreezing.js
CHANGED
@@ -2,16 +2,23 @@ import React__default from 'react';
|
|
2
2
|
|
3
3
|
function useTableStyleColumnFreezing(tableId, table) {
|
4
4
|
const {
|
5
|
-
columnPinning
|
5
|
+
columnPinning,
|
6
|
+
columnSizing
|
6
7
|
} = table.getState();
|
7
8
|
const stylesheet = React__default.useMemo(() => {
|
8
9
|
const styles = [];
|
9
10
|
// might be a better way to get this information, but it wasn't obvious
|
10
11
|
const all = table.getFlatHeaders().filter(column => !column.subHeaders.length).map(x => x.id);
|
11
|
-
const left = table.getLeftFlatHeaders().filter(column => !column.subHeaders.length)
|
12
|
-
const right = table.getRightFlatHeaders().filter(column => !column.subHeaders.length)
|
12
|
+
const left = table.getLeftFlatHeaders().filter(column => !column.subHeaders.length);
|
13
|
+
const right = table.getRightFlatHeaders().filter(column => !column.subHeaders.length);
|
13
14
|
if (left.length) {
|
14
|
-
|
15
|
+
left.forEach(cell => {
|
16
|
+
styles.push(`table[data-taco^='table']#${tableId} [data-cell-id="${cell.column.id}"] {
|
17
|
+
left: ${cell.column.getStart(cell.column.getIsPinned())}px;
|
18
|
+
}`);
|
19
|
+
});
|
20
|
+
const leftIds = left.map(x => x.id);
|
21
|
+
const index = all.indexOf(leftIds[leftIds.length - 1]);
|
15
22
|
// add right border, hide the header seperator and add shadow when scrolled
|
16
23
|
// we have to be specific so that nested tables don't inherit the same css
|
17
24
|
styles.push(`table[data-taco^='table']#${tableId} > thead > tr > th:nth-child(${index + 1}),
|
@@ -29,14 +36,20 @@ function useTableStyleColumnFreezing(tableId, table) {
|
|
29
36
|
}`);
|
30
37
|
}
|
31
38
|
if (right.length) {
|
32
|
-
|
39
|
+
right.forEach(cell => {
|
40
|
+
styles.push(`table[data-taco^='table']#${tableId} [data-cell-id="${cell.column.id}"] {
|
41
|
+
right: ${cell.column.getStart(cell.column.getIsPinned())}px;
|
42
|
+
}`);
|
43
|
+
});
|
44
|
+
const rightIds = right.map(x => x.id);
|
45
|
+
const index = all.indexOf(rightIds[rightIds.length - 1]);
|
33
46
|
styles.push(`table[data-taco^='table']#${tableId} > thead > tr > th:nth-child(${index + 1}):not([data-cell-id^="__"]),
|
34
47
|
table[data-taco^='table']#${tableId} > tbody > tr > td:nth-child(${index + 1}):not([data-cell-id^="__"]) {
|
35
48
|
border-left-width: 1px;
|
36
49
|
}`);
|
37
50
|
}
|
38
51
|
return styles.join('\n');
|
39
|
-
}, [columnPinning]);
|
52
|
+
}, [columnPinning, columnSizing]);
|
40
53
|
return {
|
41
54
|
stylesheet
|
42
55
|
};
|
package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyleColumnFreezing.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useTableStyleColumnFreezing.js","sources":["../../../../../../../../../src/primitives/Table/Core/features/useTableStyleColumnFreezing.ts"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable } from '@tanstack/react-table';\n\nexport function useTableStyleColumnFreezing<TType = unknown>(tableId: string, table: ReactTable<TType>) {\n const { columnPinning } = table.getState();\n\n const stylesheet = React.useMemo(() => {\n const styles: string[] = [];\n\n // might be a better way to get this information, but it wasn't obvious\n const all = table\n .getFlatHeaders()\n .filter(column => !column.subHeaders.length)\n .map(x => x.id);\n const left = table
|
1
|
+
{"version":3,"file":"useTableStyleColumnFreezing.js","sources":["../../../../../../../../../src/primitives/Table/Core/features/useTableStyleColumnFreezing.ts"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable } from '@tanstack/react-table';\n\nexport function useTableStyleColumnFreezing<TType = unknown>(tableId: string, table: ReactTable<TType>) {\n const { columnPinning, columnSizing } = table.getState();\n\n const stylesheet = React.useMemo(() => {\n const styles: string[] = [];\n\n // might be a better way to get this information, but it wasn't obvious\n const all = table\n .getFlatHeaders()\n .filter(column => !column.subHeaders.length)\n .map(x => x.id);\n const left = table.getLeftFlatHeaders().filter(column => !column.subHeaders.length);\n const right = table.getRightFlatHeaders().filter(column => !column.subHeaders.length);\n\n if (left.length) {\n left.forEach(cell => {\n styles.push(`table[data-taco^='table']#${tableId} [data-cell-id=\"${cell.column.id}\"] {\n left: ${cell.column.getStart(cell.column.getIsPinned())}px;\n }`);\n });\n const leftIds = left.map(x => x.id);\n const index = all.indexOf(leftIds[leftIds.length - 1]);\n\n // add right border, hide the header seperator and add shadow when scrolled\n // we have to be specific so that nested tables don't inherit the same css\n styles.push(`table[data-taco^='table']#${tableId} > thead > tr > th:nth-child(${index + 1}),\n table[data-taco^='table']#${tableId} > tbody > tr > td:nth-child(${index + 1}) {\n border-right-width: 1px;\n }\\ntable[data-taco^='table']#${tableId} > thead > tr > th:nth-child(${index + 1})[data-cell-id^=\"__\"],\n table[data-taco^='table']#${tableId} > tbody > tr > td:nth-child(${index + 1})[data-cell-id^=\"__\"] {\n border-right-color: transparent;\n }\\ntable[data-taco^='table']#${tableId} > thead > tr > th:nth-child(${index + 1}):after {\n content: none;\n }\\ntable[data-taco^='table'][data-table-horizontally-scrolled=\"true\"]#${tableId} > thead > tr > th:nth-child(${\n index + 1\n }),\n table[data-taco^='table'][data-table-horizontally-scrolled=\"true\"]#${tableId} > tbody > tr > td:nth-child(${\n index + 1\n }) {\n border-right-color: rgb(221, 221, 221);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), 6px 0px 6px rgb(0 0 0/8%);\n }`);\n }\n\n if (right.length) {\n right.forEach(cell => {\n styles.push(`table[data-taco^='table']#${tableId} [data-cell-id=\"${cell.column.id}\"] {\n right: ${cell.column.getStart(cell.column.getIsPinned())}px;\n }`);\n });\n const rightIds = right.map(x => x.id);\n const index = all.indexOf(rightIds[rightIds.length - 1]);\n\n styles.push(`table[data-taco^='table']#${tableId} > thead > tr > th:nth-child(${index + 1}):not([data-cell-id^=\"__\"]),\n table[data-taco^='table']#${tableId} > tbody > tr > td:nth-child(${index + 1}):not([data-cell-id^=\"__\"]) {\n border-left-width: 1px;\n }`);\n }\n\n return styles.join('\\n');\n }, [columnPinning, columnSizing]);\n\n return { stylesheet };\n}\n"],"names":["useTableStyleColumnFreezing","tableId","table","columnPinning","columnSizing","getState","stylesheet","React","useMemo","styles","all","getFlatHeaders","filter","column","subHeaders","length","map","x","id","left","getLeftFlatHeaders","right","getRightFlatHeaders","forEach","cell","push","getStart","getIsPinned","leftIds","index","indexOf","rightIds","join"],"mappings":";;SAGgBA,2BAA2BA,CAAkBC,OAAe,EAAEC,KAAwB;EAClG,MAAM;IAAEC,aAAa;IAAEC;GAAc,GAAGF,KAAK,CAACG,QAAQ,EAAE;EAExD,MAAMC,UAAU,GAAGC,cAAK,CAACC,OAAO,CAAC;IAC7B,MAAMC,MAAM,GAAa,EAAE;;IAG3B,MAAMC,GAAG,GAAGR,KAAK,CACZS,cAAc,EAAE,CAChBC,MAAM,CAACC,MAAM,IAAI,CAACA,MAAM,CAACC,UAAU,CAACC,MAAM,CAAC,CAC3CC,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,EAAE,CAAC;IACnB,MAAMC,IAAI,GAAGjB,KAAK,CAACkB,kBAAkB,EAAE,CAACR,MAAM,CAACC,MAAM,IAAI,CAACA,MAAM,CAACC,UAAU,CAACC,MAAM,CAAC;IACnF,MAAMM,KAAK,GAAGnB,KAAK,CAACoB,mBAAmB,EAAE,CAACV,MAAM,CAACC,MAAM,IAAI,CAACA,MAAM,CAACC,UAAU,CAACC,MAAM,CAAC;IAErF,IAAII,IAAI,CAACJ,MAAM,EAAE;MACbI,IAAI,CAACI,OAAO,CAACC,IAAI;QACbf,MAAM,CAACgB,IAAI,8BAA8BxB,0BAA0BuB,IAAI,CAACX,MAAM,CAACK;4BACnEM,IAAI,CAACX,MAAM,CAACa,QAAQ,CAACF,IAAI,CAACX,MAAM,CAACc,WAAW,EAAE;kBACxD,CAAC;OACN,CAAC;MACF,MAAMC,OAAO,GAAGT,IAAI,CAACH,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,EAAE,CAAC;MACnC,MAAMW,KAAK,GAAGnB,GAAG,CAACoB,OAAO,CAACF,OAAO,CAACA,OAAO,CAACb,MAAM,GAAG,CAAC,CAAC,CAAC;;;MAItDN,MAAM,CAACgB,IAAI,8BAA8BxB,uCAAuC4B,KAAK,GAAG;4CACxD5B,wCAAwC4B,KAAK,GAAG;;+CAE7C5B,wCAAwC4B,KAAK,GAAG;4CACnD5B,wCAAwC4B,KAAK,GAAG;;+CAE7C5B,wCAAwC4B,KAAK,GAAG;;wFAEP5B,wCACxE4B,KAAK,GAAG;qFAE6D5B,wCACrE4B,KAAK,GAAG;;;kBAIN,CAAC;;IAGX,IAAIR,KAAK,CAACN,MAAM,EAAE;MACdM,KAAK,CAACE,OAAO,CAACC,IAAI;QACdf,MAAM,CAACgB,IAAI,8BAA8BxB,0BAA0BuB,IAAI,CAACX,MAAM,CAACK;6BAClEM,IAAI,CAACX,MAAM,CAACa,QAAQ,CAACF,IAAI,CAACX,MAAM,CAACc,WAAW,EAAE;kBACzD,CAAC;OACN,CAAC;MACF,MAAMI,QAAQ,GAAGV,KAAK,CAACL,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,EAAE,CAAC;MACrC,MAAMW,KAAK,GAAGnB,GAAG,CAACoB,OAAO,CAACC,QAAQ,CAACA,QAAQ,CAAChB,MAAM,GAAG,CAAC,CAAC,CAAC;MAExDN,MAAM,CAACgB,IAAI,8BAA8BxB,uCAAuC4B,KAAK,GAAG;4CACxD5B,uCAAuC4B,KAAK,GAAG;;kBAEzE,CAAC;;IAGX,OAAOpB,MAAM,CAACuB,IAAI,CAAC,IAAI,CAAC;GAC3B,EAAE,CAAC7B,aAAa,EAAEC,YAAY,CAAC,CAAC;EAEjC,OAAO;IAAEE;GAAY;AACzB;;;;"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import React__default from 'react';
|
2
2
|
import { FontSizes } from '../../../../types.js';
|
3
|
-
import { getCellMinWidth } from '../util/columns.js';
|
3
|
+
import { isInternalColumn, getCellMinWidth } from '../util/columns.js';
|
4
4
|
import { useLazyEffect } from '../../../../hooks/useLazyEffect.js';
|
5
5
|
|
6
6
|
function useTableFontSizeListener(table) {
|
@@ -8,10 +8,17 @@ function useTableFontSizeListener(table) {
|
|
8
8
|
const previousFontSizeRef = React__default.useRef(meta.fontSize.size);
|
9
9
|
useLazyEffect(() => {
|
10
10
|
const cellWidthDifference = getCellWidthDifference(`${previousFontSizeRef.current}-${meta.fontSize.size}`);
|
11
|
+
const globalMinSize = getCellMinWidth(meta.fontSize.size);
|
11
12
|
table.setColumnSizing(sizes => {
|
12
|
-
const minColumnSize = getCellMinWidth(meta.fontSize.size);
|
13
13
|
return Object.fromEntries(Object.entries(sizes).map(([columnName, prevColumnSize]) => {
|
14
|
+
var _column$columnDef$min;
|
15
|
+
const column = table.getColumn(columnName);
|
16
|
+
if (isInternalColumn(columnName)) {
|
17
|
+
var _column$getSize;
|
18
|
+
return [columnName, (_column$getSize = column === null || column === void 0 ? void 0 : column.getSize()) !== null && _column$getSize !== void 0 ? _column$getSize : prevColumnSize];
|
19
|
+
}
|
14
20
|
// Prevents width value in the setting to go below the minColumnSize
|
21
|
+
const minColumnSize = (_column$columnDef$min = column === null || column === void 0 ? void 0 : column.columnDef.minSize) !== null && _column$columnDef$min !== void 0 ? _column$columnDef$min : globalMinSize;
|
15
22
|
const newSize = Math.max(minColumnSize, prevColumnSize + cellWidthDifference);
|
16
23
|
return [columnName, newSize];
|
17
24
|
}));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useTableFontSizeListener.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/listeners/useTableFontSizeListener.ts"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useLazyEffect } from '../../../../hooks/useLazyEffect';\nimport { FontSizes } from '../../../../types';\nimport { getCellMinWidth } from '../util/columns';\n\nexport function useTableFontSizeListener<TType = unknown>(table: ReactTable<TType>) {\n const meta = table.options.meta as ReactTableMeta<TType>;\n const previousFontSizeRef = React.useRef(meta.fontSize.size);\n\n useLazyEffect(() => {\n const cellWidthDifference = getCellWidthDifference(`${previousFontSizeRef.current}-${meta.fontSize.size}`);\n
|
1
|
+
{"version":3,"file":"useTableFontSizeListener.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/listeners/useTableFontSizeListener.ts"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useLazyEffect } from '../../../../hooks/useLazyEffect';\nimport { FontSizes } from '../../../../types';\nimport { getCellMinWidth, isInternalColumn } from '../util/columns';\n\nexport function useTableFontSizeListener<TType = unknown>(table: ReactTable<TType>) {\n const meta = table.options.meta as ReactTableMeta<TType>;\n const previousFontSizeRef = React.useRef(meta.fontSize.size);\n\n useLazyEffect(() => {\n const cellWidthDifference = getCellWidthDifference(`${previousFontSizeRef.current}-${meta.fontSize.size}`);\n const globalMinSize = getCellMinWidth(meta.fontSize.size);\n\n table.setColumnSizing(sizes => {\n return Object.fromEntries(\n Object.entries(sizes).map(([columnName, prevColumnSize]) => {\n const column = table.getColumn(columnName);\n\n if (isInternalColumn(columnName)) {\n return [columnName, column?.getSize() ?? prevColumnSize];\n }\n\n // Prevents width value in the setting to go below the minColumnSize\n const minColumnSize = column?.columnDef.minSize ?? globalMinSize;\n const newSize = Math.max(minColumnSize, prevColumnSize + cellWidthDifference);\n return [columnName, newSize];\n })\n );\n });\n previousFontSizeRef.current = meta.fontSize.size;\n }, [meta.fontSize.size]);\n}\n\nfunction getCellWidthDifference(fontSizeKey: string) {\n switch (fontSizeKey) {\n case `${FontSizes.small}-${FontSizes.medium}`:\n case `${FontSizes.medium}-${FontSizes.large}`:\n return 8;\n\n case `${FontSizes.medium}-${FontSizes.small}`:\n case `${FontSizes.large}-${FontSizes.medium}`:\n return -8;\n\n case `${FontSizes.small}-${FontSizes.large}`:\n return 16;\n\n case `${FontSizes.large}-${FontSizes.small}`:\n return -16;\n\n default:\n return 0;\n }\n}\n"],"names":["useTableFontSizeListener","table","meta","options","previousFontSizeRef","React","useRef","fontSize","size","useLazyEffect","cellWidthDifference","getCellWidthDifference","current","globalMinSize","getCellMinWidth","setColumnSizing","sizes","Object","fromEntries","entries","map","columnName","prevColumnSize","column","getColumn","isInternalColumn","_column$getSize","getSize","minColumnSize","_column$columnDef$min","columnDef","minSize","newSize","Math","max","fontSizeKey","FontSizes","small","medium","large"],"mappings":";;;;;SAMgBA,wBAAwBA,CAAkBC,KAAwB;EAC9E,MAAMC,IAAI,GAAGD,KAAK,CAACE,OAAO,CAACD,IAA6B;EACxD,MAAME,mBAAmB,GAAGC,cAAK,CAACC,MAAM,CAACJ,IAAI,CAACK,QAAQ,CAACC,IAAI,CAAC;EAE5DC,aAAa,CAAC;IACV,MAAMC,mBAAmB,GAAGC,sBAAsB,IAAIP,mBAAmB,CAACQ,WAAWV,IAAI,CAACK,QAAQ,CAACC,MAAM,CAAC;IAC1G,MAAMK,aAAa,GAAGC,eAAe,CAACZ,IAAI,CAACK,QAAQ,CAACC,IAAI,CAAC;IAEzDP,KAAK,CAACc,eAAe,CAACC,KAAK;MACvB,OAAOC,MAAM,CAACC,WAAW,CACrBD,MAAM,CAACE,OAAO,CAACH,KAAK,CAAC,CAACI,GAAG,CAAC,CAAC,CAACC,UAAU,EAAEC,cAAc,CAAC;;QACnD,MAAMC,MAAM,GAAGtB,KAAK,CAACuB,SAAS,CAACH,UAAU,CAAC;QAE1C,IAAII,gBAAgB,CAACJ,UAAU,CAAC,EAAE;UAAA,IAAAK,eAAA;UAC9B,OAAO,CAACL,UAAU,GAAAK,eAAA,GAAEH,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEI,OAAO,EAAE,cAAAD,eAAA,cAAAA,eAAA,GAAIJ,cAAc,CAAC;;;QAI5D,MAAMM,aAAa,IAAAC,qBAAA,GAAGN,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEO,SAAS,CAACC,OAAO,cAAAF,qBAAA,cAAAA,qBAAA,GAAIhB,aAAa;QAChE,MAAMmB,OAAO,GAAGC,IAAI,CAACC,GAAG,CAACN,aAAa,EAAEN,cAAc,GAAGZ,mBAAmB,CAAC;QAC7E,OAAO,CAACW,UAAU,EAAEW,OAAO,CAAC;OAC/B,CAAC,CACL;KACJ,CAAC;IACF5B,mBAAmB,CAACQ,OAAO,GAAGV,IAAI,CAACK,QAAQ,CAACC,IAAI;GACnD,EAAE,CAACN,IAAI,CAACK,QAAQ,CAACC,IAAI,CAAC,CAAC;AAC5B;AAEA,SAASG,sBAAsBA,CAACwB,WAAmB;EAC/C,QAAQA,WAAW;IACf,QAAQC,SAAS,CAACC,SAASD,SAAS,CAACE,QAAQ;IAC7C,QAAQF,SAAS,CAACE,UAAUF,SAAS,CAACG,OAAO;MACzC,OAAO,CAAC;IAEZ,QAAQH,SAAS,CAACE,UAAUF,SAAS,CAACC,OAAO;IAC7C,QAAQD,SAAS,CAACG,SAASH,SAAS,CAACE,QAAQ;MACzC,OAAO,CAAC,CAAC;IAEb,QAAQF,SAAS,CAACC,SAASD,SAAS,CAACG,OAAO;MACxC,OAAO,EAAE;IAEb,QAAQH,SAAS,CAACG,SAASH,SAAS,CAACC,OAAO;MACxC,OAAO,CAAC,EAAE;IAEd;MACI,OAAO,CAAC;;AAEpB;;;;"}
|
@@ -1,3 +1,5 @@
|
|
1
|
+
import { isInternalColumn } from './columns.js';
|
2
|
+
|
1
3
|
function getSettings(table) {
|
2
4
|
const meta = table.options.meta;
|
3
5
|
const state = table.getState();
|
@@ -6,7 +8,7 @@ function getSettings(table) {
|
|
6
8
|
//columnFilters: table.options.enableColumnFilters ? state.columnFilters : undefined,
|
7
9
|
columnOrder: meta.columnOrdering.isEnabled ? state.columnOrder : undefined,
|
8
10
|
columnPinning: state.columnPinning,
|
9
|
-
columnSizing: state.columnSizing,
|
11
|
+
columnSizing: ignoreInternalColumns(state.columnSizing),
|
10
12
|
columnVisibility: table.options.enableHiding ? state.columnVisibility : undefined,
|
11
13
|
excludeUnmatchedRecordsInSearch: table.options.enableGlobalFilter,
|
12
14
|
fontSize: meta.fontSize.isEnabled ? meta.fontSize.size : undefined,
|
@@ -16,6 +18,17 @@ function getSettings(table) {
|
|
16
18
|
sorting: state.sorting
|
17
19
|
};
|
18
20
|
}
|
21
|
+
function ignoreInternalColumns(data) {
|
22
|
+
return Object.keys(data).reduce((accum, key) => {
|
23
|
+
if (isInternalColumn(key)) {
|
24
|
+
return accum;
|
25
|
+
}
|
26
|
+
return {
|
27
|
+
...accum,
|
28
|
+
[key]: data[key]
|
29
|
+
};
|
30
|
+
}, {});
|
31
|
+
}
|
19
32
|
|
20
|
-
export { getSettings };
|
33
|
+
export { getSettings, ignoreInternalColumns };
|
21
34
|
//# sourceMappingURL=settings.js.map
|