197 Commits

Author SHA1 Message Date
Faris Ansari
007579f55e feat: Add API for expand/collapse tree nodes 2019-04-05 17:02:31 +05:30
Faris Ansari
637d37deb8 feat: Add not equals (!=) filter 2019-04-03 23:10:00 +05:30
Faris Ansari
7b325a5ba0 feat: Double click resize handle to resize to perfect width 2019-03-30 17:22:25 +05:30
Faris Ansari
3446488b08 fix: Allow column resize past minWidth upto 30px 2019-03-30 17:21:08 +05:30
Faris Ansari
1845adc46e fix: Scroll problem when cell is focused 2019-03-30 17:19:23 +05:30
Saif
0f44a51da3 feat: 🎸 Total Accumulator hook for totals row (#55)
* feat: 🎸 Accumulator event for totals row

* fix: 🐛 Changed values passed to accumulator function

and moved function to hooks.totalAccumulator

* fix: 🐛 Total row set null for column without any number

* fix: Refactor accumulator

- Rename to columnTotal

* fix: 🐛 Prevent showing 0 in total row for Data fieldtype

* fix: Remove hooks object from parent

* fix: Remove separate hooks initialization
2019-02-12 19:51:13 +05:30
Faris Ansari
3e044a5ffa feat: 🎸 Add compareValue hook to control comparison
For custom comparison where the formatted value is different than the
actual value, users will mostly compare using the formatted string. Use
compareValue to return parsed cell value and keyword.
2019-01-14 13:34:04 +05:30
Faris Ansari
3fc8ac9e72 fix: 🐛 Dropdown z-index problem
Z-index of dropdown does not work because it's parent has a transform
property. To avoid this, we float the dropdown using fixed co-ordinates
and then update the x, y positions.
2018-12-28 19:16:26 +05:30
Faris Ansari
acfe0e49cd fix: 🐛 Comparison now also works with strings
Inline filters like >2011/04/01 will work as expected. Works with >, <
and :
2018-12-28 18:10:24 +05:30
Faris Ansari
302c1f83d5 fix: 🐛 Smarter setting of bodyHeight based on overflow
When there are only a couple of rows, the scrollbar causes a scroll
which is not needed. We check if the overflow amount is less than the
size of scrollbar and then forcefully disable the scrolling.
2018-12-22 13:02:31 +05:30
Saif Ur Rehman
d6aa52fb16 fix: 🐛 scrolling and height fixes 2018-12-20 05:33:39 +05:00
Faris Ansari
19fb921ed2 fix: 🐛 Border styling for header 2018-12-13 18:01:30 +05:30
Faris Ansari
bdbdc90578 fix: 🐛 Initialize hyperlist with width/height of container 2018-12-13 18:01:01 +05:30
Faris Ansari
fb4370020f fix: 🐛 Always show vertical scrollbar
Decouple bodyScrollable from header. Now header position is synced based
on scrollLeft of bodyScrollable. Also, remove redundant .dt-body
container.
2018-12-13 16:59:30 +05:30
Faris Ansari
b6d4a0eea7 feat: 🎸 Add = keyword for equality matching
Support = keyword for equality matching in numeric columns
2018-12-10 20:05:19 +05:30
Faris Ansari
c559faa67b fix: 🐛 Sort filtered results
Fixes the problem where when you sort rows and then try to filter, the
sort order is lost.

closes #51
2018-12-10 19:30:12 +05:30
Faris Ansari
1e20502d09 fix: 🐛 Extract getTotalRow into a function 2018-12-07 17:15:08 +05:30
Faris Ansari
96c7b723da fix: 🐛 Fallback to cell content when html is not available 2018-12-07 15:23:22 +05:30
Faris Ansari
f5df997c00 feat: 🎸 Total Row
A persistent row which shows the total of the columns which have numeric
values. It also updates when the rows are filtered.
2018-11-29 16:39:35 +05:30
Faris Ansari
f791c91df6 fix: 🐛 Numeric comparison should compare with cell value
Numeric comparison like >, < should compare with the cell value and not
the formatted html value
2018-11-29 13:41:07 +05:30
Faris Ansari
ec08d75261 fix: 🐛 Filter rows based on the formatted value
Earlier filtering was done based on the original value of the cell, but
formatters could change the display value
2018-11-29 13:19:56 +05:30
Faris Ansari
33f7ab9c25 fix: 🐛 Reset body height before setting the bodyStyle
In case when there are very less number of rows, the height will adapt
to a lower value. But in the next refresh the number of rows could
increase so the body height should be reset to it's original value
2018-11-28 00:15:31 +05:30
Faris Ansari
89f13b530a fix: 🐛 Skip setting cellHeight in setDimensions
cellHeight (row height technically) is now handled by hyperlist
directly, so no need to do it manually
2018-11-20 13:34:04 +01:00
Faris Ansari
6fe075467d fix: 🐛 Sort rows numerically
Default sort method uses alphabetical sort
2018-11-01 16:40:35 +05:30
Faris Ansari
cfbb891737 fix: 🐛 Adapt container height when there are less rows 2018-11-01 15:26:11 +05:30
Faris Ansari
1f27d194ca fix: 🐛 Remove non-existing bindEvents method call 2018-11-01 11:29:15 +05:30
Faris Ansari
7eaabcbfe0 fix: 🐛 Reimplement tree node toggle logic
Earlier, rows were hidden using style. Now, since we are using
hyperlist, it is better to refresh the whole list.
2018-10-31 19:09:40 +05:30
Faris Ansari
932afb6cbe feat: 🎸 Support for multiple filters in columns
Multiple inline filters will be applied as AND filters
2018-10-16 13:56:10 +05:30
Faris Ansari
ffe0d2a3f5 style: 💄 Fix ESLint 2018-10-11 13:14:33 +05:30
Faris Ansari
84b7fa3d83 fix: 🐛 More robust column width calculation
Set minimum column width based on options (default 70), also measure
rowIndex column directly in DOM
2018-10-11 13:05:25 +05:30
Faris Ansari
01d74ef6ad fix: 🐛 Pick cellHeight from options
HyperList should take cellHeight from options
2018-10-10 16:49:44 +05:30
Faris Ansari
51b112687e feat: 🎸 Use HyperList instead of Clusterize to render rows
Clusterize failed to load rows if they were above 1000, this may be a
problem of datatable itself, since it has a complex DOM structure, but
hyperlist works better in it's case.
2018-10-10 14:34:56 +05:30
Faris Ansari
f790a6729a fix: 🐛 Show all rows in restore state
When you refresh datatable after some rows are hidden, after refresh
they remain hidden.
2018-10-05 15:22:47 +05:30
Faris Ansari
2ce132c0bc fix(class selector): Replace all selectors with class based selectors
Class based selectors are faster than attribute based ones.
2018-09-23 14:54:00 +05:30
Faris Ansari
4f57bb1b64 fix(filterRows): Show/hide rows using setStyle and removeStyle
Finding row elements and adding/removing classes on them is slower and unreliable
2018-09-23 14:45:12 +05:30
Faris Ansari
a04a5a1d7c fix(columnWidth): Compensate for scrollbar only if there is vertical scroll 2018-08-23 14:22:35 +05:30
Faris Ansari
7531e13d17 feat(icons): Use feather icons instead of raw ascii strings 2018-08-23 13:52:58 +05:30
Faris Ansari
cdb276abfd feat(filter): Filter now supports complex queries for Number columns
More advanced filter support for Number columns

For e.g
  >5000 filters rows with the cell value greater than 5000
  <30 filters rows with cell value less than 30
  20:340 filters rows with cell value in the range of 20 and 340

You can also provide a custom filter function by providing a
`filterRows` function in the options during initialization.
2018-08-09 13:30:02 +05:30
Faris Ansari
ae6415c950 fix(cell): Disable text selection to enable drag to select in cells 2018-07-20 10:48:21 +05:30
Faris Ansari
18fa7d2eca fix(style): Make cell take full height in firefox 2018-07-19 14:59:44 +05:30
Faris Ansari
7417b0fdcd fix(style): Namespace CSS variables to avoid clash with foreign CSS variables 2018-07-19 14:42:30 +05:30
Faris Ansari
1f387c9079 fix(theme): Include CSS variables in the final css build
CSS Variables should be built into the distributable css file for theme support
2018-07-19 14:28:03 +05:30
Faris Ansari
0856f6cdf7 fix(css): Table cell border fix for firefox and edge browser
Firefox and Edge paints the cell background over the border of the cell. This fixes that.
2018-07-14 11:32:16 +05:30
Faris Ansari
226aea24df fix(toggleFilter): Return early if inlineFilter is disabled 2018-07-14 11:31:45 +05:30
Faris Ansari
bddb3c27ce fix(destroy): Cleanup event listeners on destroy
Event listeners attached to elements inside the root datatable wrapper are automatically removed
when the root element is removed from DOM. But, there are event listeners which are attached to
window and body, those have to be manually removed. This commit introduces an internal event system,
through which we destroy global event handlers.
2018-07-10 12:00:41 +05:30
Faris Ansari
f9714673b4 fix(rowmanager): Fire onCheckRow event on checkAll
When checkAll is triggered via API or UI input, onCheckRow event fires

Closes #38
2018-07-09 17:35:59 +05:30
Faris Ansari
78666f8ab2 fix(theme): More CSS variables for themes
Add CSS variables for header cell background and toast message border for more flexible themeing
2018-07-08 23:17:11 +05:30
Faris Ansari
1b5292a7f0 feat(theme): Add dark theme
Add a new stylesheet which overrides the css variables in the core stylesheet to obtain a dark theme
2018-07-08 19:13:21 +05:30
Faris Ansari
2cf2191f0f fix(treeView): Decrease left padding of tree node cells 2018-07-08 17:35:16 +05:30
Faris Ansari
d225308151 feat(sort): Apply sortOrder in initialization 2018-07-07 22:07:16 +05:30