Commit Graph

12956 Commits (f72b887bb4af8e9959e495539c65fe7bfec70534)

Author SHA1 Message Date
Aditya Chandra b6cc223bcc fix: wrong tabList inkbar placement when using default value 2025-02-11 22:04:33 +07:00
Cagatay Civici 9e35aa1804 Redo auth 2025-02-11 13:26:24 +03:00
tugcekucukoglu 7a3b228ae3 Refactor #7090 - For Tab 2025-02-10 10:09:53 +03:00
tugcekucukoglu 8a50610fd6 Fixed #7222 - DataTable: Colspan not working correctly when selectionMode='single' in Column 2025-02-10 09:56:27 +03:00
Henry Nguyen af5e626064
Fix multi-row range selection on lazily paginated multi-selection Datatable
On a datatable that has the paginator enabled, with lazy=true, and selectionMode="multiple", then on the first page, shift-clicking multiple rows functions properly as expected by selecting all shift-clicked rows. However, when navigating to any page other than the first page, shift-clicking does NOT work, and instead cancels out any selection.

What's happening is that inside the [`selectRange()`](https://github.com/primefaces/primevue/blob/master/packages/primevue/src/datatable/DataTable.vue#L1190) method of datatable, `this.processedData` contains an array of data that is rendered on the current page of the table, and we use the indexes of rows that the user has shift+clicked in order to access the array by those indexes, which we call [`rangeStart` and `rangeEnd`](https://github.com/primefaces/primevue/blob/master/packages/primevue/src/datatable/DataTable.vue#L1190). For example, consider a collection of data containing 50 total items. On a datatable displaying 10 rows at a time, `this.processedData` will contain an array of length 10, and when the user shift+clicks the first three rows, we will assign a `rangeStart` of 0 and a `rangeEnd` of 2 for selection.

The problem is that when we navigate to the other pages other than the first, `this.processedData` still only contains a subset of the total dataset, but our `rangeStart` and `rangeEnd` indexes contain the indexes relative to the entire total dataset. Continuing on with the previous example, when we navigate to page 2 and try to shift+click the first three rows, `this.processedData` still only contains an array of length 10, since we are only rendering 10 items at a time, but `rangeStart` will be 10 and `rangeEnd` will be 12, which are both outside the bounds of the `this.processedData` array so no rows end up being selected.

Currently there is [code that meant to account for this](https://github.com/primefaces/primevue/blob/master/packages/primevue/src/datatable/DataTable.vue#L1182C13-L1182C45), by subtracting the number rows from previous pages so that we get the properly offset indexes relative to the `this.processedData` subset, not the total. Specifically, it first determines `rangeStart` and `rangeEnd` relative to the total dataset, and then subtracts `this.first` from both values, where `this.first` appears as though it's meant to be the number of items that are contained in the pages previous to the current page (a.k.a. the index of the _first_ item on the _current_ page of the subset of data from the total dataset).

The bug is that `this.first` does not actually contain the expected value here to properly perform the offset. Continuing from the above example, when shift+clicking the first three rows on the second page of results, `rangeStart` and `rangeEnd` will be 10 and 12 respectively, and we would expect that we subtract 10 from the first page of results to get correct values of 0 and 2. However, `this.first` is actually 0, and so we end up with `rangeStart` and `rangeEnd` of 10 and 12, which are outside the bounds of `this.processedData` which cannot be processed on subsequent lines.

This PR attempts to fix this bug by adjusting the subtraction to use `this.d_first` instead of `this.first`, which has been confirmed to contain the desired value of the total number of rows in previous pages. In the above example, it contains 10 for the second page, 20 for the third page, 30 for the fourth page, so on, which causes `rangeStart` and `rangeEnd` to contain the proper expected values for accessing `this.processedData` correctly.

Alternatively, we could've instead updated the assignment of `this.first` to contain `this.d_first`, so that the current code here would function correctly. However, I'm not sure what other undesired effects that might cause, so am requesting more knowledgeable eyes to review the above proposal. Many thanks!! 🙏 ❤️
2025-02-08 23:34:28 -08:00
hxl f51d7f9b87 fix(docs): Optimize the template structure of the Paginator component by removing unnecessary nested templates. 2025-02-08 11:17:22 +08:00
tugcekucukoglu ff3b7a58a9 Fixed #7219 - Multiselect unnecessarily scrolling to bottom of options on open 2025-02-07 16:26:28 +03:00
tugcekucukoglu 01c488f08e Fixed #7221 - Dock: Blocked aria-hidden on an element error 2025-02-07 16:12:16 +03:00
Tuğçe Küçükoğlu 238404aa68
Merge pull request #7210 from MstrVLT/Fix-Issue-#7208
fix(VirtualScroller): Typo - missing calculations for grid column
2025-02-07 10:06:16 +03:00
GitHub Actions Bot 13d8e88c08 Update API doc 2025-02-07 07:04:18 +00:00
Tuğçe Küçükoğlu d2d861a6ea
Merge pull request #7214 from SamVanini/feat/7194-add-datatable-generics
feat(datatable): Added generics to type data and newData #7194
2025-02-07 10:03:26 +03:00
Tuğçe Küçükoğlu d149a9555e
Merge pull request #7213 from anispwyn/fix-typo
fix(Passthrough): Typo - Fix declearativeDoc example typo
2025-02-07 10:01:50 +03:00
SamVanini 4a333b684e feat(datatable): Added generics to type data and newData #7194 2025-02-06 23:07:54 +01:00
fame 04306bace1
replace class= with class: 2025-02-07 02:07:15 +07:00
fame e9ca449d32
Fix extra double quotes in passthrough DeclearativeDoc 2025-02-07 01:53:22 +07:00
tugcekucukoglu 013583d9a4 Format fix 2025-02-06 19:08:30 +03:00
GitHub Actions Bot 102677e716 Update API doc 2025-02-06 14:38:03 +00:00
tugcekucukoglu 61cb4594b0 Fixed #7209 - Form components: wrong default value of variant prop in .d.ts files 2025-02-06 17:37:09 +03:00
VLT 92063b98b1
Missing calculation for grid column 2025-02-06 16:35:01 +03:00
Tuğçe Küçükoğlu df90418496
Merge pull request #7207 from MstrVLT/Fix-Issue-#6986
fix(VirtualScroller): #7208
2025-02-06 16:14:12 +03:00
VLT 6af6a2730d
Fix Issue primefaces#6986 2025-02-06 13:24:13 +03:00
GitHub Actions Bot 1ae6326061 Update API doc 2025-02-06 09:36:15 +00:00
Tuğçe Küçükoğlu a8796c2775
Merge pull request #7205 from wangziling/fix-confirm-dialog-types
fix(confirmdialog): fix the missing of the pass-though prop named `mask`
2025-02-06 12:35:23 +03:00
GitHub Actions Bot b37f5a0fae Update API doc 2025-02-06 09:30:11 +00:00
Tuğçe Küçükoğlu 4b2a656c1c
Merge pull request #7203 from wangziling/feature/fix-select-types
fix(select): fix the missing of the pass-though prop named `dropdownIcon`
2025-02-06 12:29:08 +03:00
王子凌 fa7f4d80d0 fix(confirmdialog): fix the missing of the pass-though prop named `mask` 2025-02-06 11:44:32 +08:00
王子凌 020d7f9cc3 fix(select): fix the missing of the pass-though prop named `dropdownIcon` 2025-02-06 10:48:03 +08:00
tugcekucukoglu 41bbf66544 Fixed #7180 - FileUpload shouldn't post to url if none is provided 2025-02-05 12:00:02 +03:00
GitHub Actions Bot 0158f03002 Update API doc 2025-02-05 07:47:25 +00:00
Tuğçe Küçükoğlu 263f939fbc
Merge pull request #7188 from wangziling/feature/fix-file-upload-types
fix(fileupload): fix the types of the `content` slot
2025-02-05 10:46:35 +03:00
王子凌 b07257958c fix(fileupload): fix the types of the `content` slot 2025-02-05 14:09:58 +08:00
Tuğçe Küçükoğlu b2cd1f8501
Merge pull request #7186 from qburst/fix--7185
fix: filter input reference check on overlay close
2025-02-04 13:11:20 +03:00
GitHub Actions Bot e2027f8a5a Update API doc 2025-02-04 10:10:21 +00:00
Tuğçe Küçükoğlu 7b7d354f9b
Merge pull request #7175 from pickbreaker/feature/datatable-paginatorcontainer-slot-types
feat(datatable): add types for paginatorcontainer slot
2025-02-04 13:09:26 +03:00
navedqb 461ed10995
Merge pull request #48 from navedqb/fix--7185
fix: filter input reference check on overlay close
2025-02-04 15:25:39 +05:30
navedqb dea20c573b
fix: check filter input reference before focusing 2025-02-04 15:25:00 +05:30
Benedikt Lang e508660c38 feat(datatable): add types for slotProps 2025-01-31 13:41:58 +01:00
tugcekucukoglu 8cf3f0c26b Merge branch 'master' of https://github.com/primefaces/primevue 2025-01-31 12:56:40 +03:00
tugcekucukoglu 654bdf4bc3 Refactor #7173 2025-01-31 12:56:33 +03:00
GitHub Actions Bot 61eed9cc0a Update API doc 2025-01-31 09:54:22 +00:00
tugcekucukoglu 2a2c07ddb2 Fixed #7173 - Eslint 9 version update changes 2025-01-31 12:53:30 +03:00
Mert Sincan 0f58abbec9
Update README.md 2025-01-29 17:14:23 +00:00
Mert Sincan 125c66a65c fix: update copyright year in LICENSE.md 2025-01-29 16:56:33 +00:00
GitHub Actions Bot 07c5dc2ef7 Update API doc 2025-01-28 20:14:02 +00:00
Mert Sincan 153b37da63 Merge branch 'master' of https://github.com/primefaces/primevue 2025-01-28 20:12:50 +00:00
Mert Sincan 7d70280d79 feat: Added utils methods to primevue package 2025-01-28 20:12:43 +00:00
GitHub Actions Bot 55acd255bc Update API doc 2025-01-28 20:09:44 +00:00
Mert Sincan 68e0813622 refactor: update utils.d.ts 2025-01-28 20:08:32 +00:00
GitHub Actions Bot ecde5f788c Update API doc 2025-01-28 19:58:04 +00:00
Mert Sincan 303959438a fix: Base Presets: CSS var --p-scrollbar-width is not defined. Fixes #6094 2025-01-28 19:56:48 +00:00