dygraphs.git
11 years agoMerge branch 'master' of https://github.com/danvk/dygraphs into option-consolidation
Robert Konigsberg [Sun, 30 Dec 2012 01:49:15 +0000 (20:49 -0500)]
Merge branch 'master' of https://github.com/danvk/dygraphs into option-consolidation

11 years agoSimplify valueRange work in computeYAxes. Add comment indicating its weirdness.
Robert Konigsberg [Sun, 30 Dec 2012 01:47:11 +0000 (20:47 -0500)]
Simplify valueRange work in computeYAxes. Add comment indicating its weirdness.

11 years agoRemove more options. Tested them, either manually, or written, but as you can see...
Robert Konigsberg [Sun, 30 Dec 2012 01:11:08 +0000 (20:11 -0500)]
Remove more options. Tested them, either manually, or written, but as you can see by the tests, there are some things left to be desired.

Almost done with option removal from computeYAxes, though, which is really good.

11 years agoMove makeNumbers to Util, and reduce number of makeNumbers calls.
Robert Konigsberg [Sat, 29 Dec 2012 18:23:02 +0000 (13:23 -0500)]
Move makeNumbers to Util, and reduce number of makeNumbers calls.

11 years agoMerge pull request #190 from kberg/palette
Robert Konigsberg [Sat, 29 Dec 2012 04:11:24 +0000 (20:11 -0800)]
Merge pull request #190 from kberg/palette

Make palette support axes and series configuration.

11 years agoMerge pull request #186 from kberg/master
Robert Konigsberg [Sat, 29 Dec 2012 04:11:00 +0000 (20:11 -0800)]
Merge pull request #186 from kberg/master

Fix issue http://code.google.com/p/dygraphs/issues/detail?id=409

11 years agojqueryify tooltip.
Robert Konigsberg [Sat, 29 Dec 2012 04:01:54 +0000 (23:01 -0500)]
jqueryify tooltip.

11 years agojquery-ify the palette object.
Robert Konigsberg [Sat, 29 Dec 2012 03:39:26 +0000 (22:39 -0500)]
jquery-ify the palette object.

11 years agoRemove the "Copy" code, it's been replaced by "to hash".
Robert Konigsberg [Sat, 29 Dec 2012 02:52:51 +0000 (21:52 -0500)]
Remove the "Copy" code, it's been replaced by "to hash".

11 years agoClean up palette.css (requires less css).
Robert Konigsberg [Sat, 29 Dec 2012 02:27:32 +0000 (21:27 -0500)]
Clean up palette.css (requires less css).

11 years agoClean up instructions section of the palette; hide it until we need it.
Robert Konigsberg [Sat, 29 Dec 2012 02:26:01 +0000 (21:26 -0500)]
Clean up instructions section of the palette; hide it until we need it.

11 years agoUpdate instructions on index.html.
Robert Konigsberg [Sat, 29 Dec 2012 02:11:21 +0000 (21:11 -0500)]
Update instructions on index.html.

11 years agoRemove commented-out console.log.
Robert Konigsberg [Sat, 29 Dec 2012 02:09:29 +0000 (21:09 -0500)]
Remove commented-out console.log.

11 years agoBe array<int> friendly.
Robert Konigsberg [Sat, 29 Dec 2012 02:05:32 +0000 (21:05 -0500)]
Be array<int> friendly.

11 years agoAdd series customization to the palette. Requires some bug fixes. Nice, nice.
Robert Konigsberg [Fri, 28 Dec 2012 23:55:52 +0000 (18:55 -0500)]
Add series customization to the palette. Requires some bug fixes. Nice, nice.

11 years agoAdd more option specifications per series, and nullify the 'series' and 'axis' warnin...
Robert Konigsberg [Fri, 28 Dec 2012 23:55:17 +0000 (18:55 -0500)]
Add more option specifications per series, and nullify the 'series' and 'axis' warnings dumped to the console.

11 years agoAdd "to hash" feature to make palette more useful!
Robert Konigsberg [Fri, 28 Dec 2012 23:11:13 +0000 (18:11 -0500)]
Add "to hash" feature to make palette more useful!

11 years agoRestore funny format; add comment to indicate why it's formatted funny.
Robert Konigsberg [Fri, 28 Dec 2012 23:10:54 +0000 (18:10 -0500)]
Restore funny format; add comment to indicate why it's formatted funny.

11 years agoBooleans are now three-state buttons.
Robert Konigsberg [Fri, 28 Dec 2012 21:34:38 +0000 (16:34 -0500)]
Booleans are now three-state buttons.

11 years agoMerge branch 'palette' of https://github.com/kberg/dygraphs into palette
Robert Konigsberg [Fri, 28 Dec 2012 21:08:25 +0000 (16:08 -0500)]
Merge branch 'palette' of https://github.com/kberg/dygraphs into palette

Conflicts:
experimental/palette/options.js

11 years agoAdd per-axis specification in Dygraphs. Adding jquery as part of introducing multi...
Robert Konigsberg [Fri, 28 Dec 2012 21:04:04 +0000 (16:04 -0500)]
Add per-axis specification in Dygraphs. Adding jquery as part of introducing multi-palette. tooltip's API is slightly simpler.

11 years agoAdd per-axis specification in Dygraphs. Adding jquery as part of introducing multi...
Robert Konigsberg [Fri, 28 Dec 2012 21:04:04 +0000 (16:04 -0500)]
Add per-axis specification in Dygraphs. Adding jquery as part of introducing multi-palette. tooltip's API is slightly simpler.

11 years agoRemove loud logging.
Robert Konigsberg [Fri, 28 Dec 2012 21:02:54 +0000 (16:02 -0500)]
Remove loud logging.

11 years agoReformat options.
Robert Konigsberg [Thu, 27 Dec 2012 23:18:42 +0000 (18:18 -0500)]
Reformat options.

11 years agoformatting
Robert Konigsberg [Thu, 27 Dec 2012 22:32:44 +0000 (17:32 -0500)]
formatting

11 years agoAdd some comments to index.js, the Index namespace for the palette.
Robert Konigsberg [Thu, 27 Dec 2012 22:23:30 +0000 (17:23 -0500)]
Add some comments to index.js, the Index namespace for the palette.

11 years agoAdd some of the new options to the experimental palette.
Robert Konigsberg [Thu, 27 Dec 2012 22:23:21 +0000 (17:23 -0500)]
Add some of the new options to the experimental palette.

11 years agoMerge branch 'master' of https://github.com/danvk/dygraphs into option-consolidation
Robert Konigsberg [Thu, 27 Dec 2012 16:08:15 +0000 (11:08 -0500)]
Merge branch 'master' of https://github.com/danvk/dygraphs into option-consolidation

11 years agoMerge branch 'master' of https://github.com/danvk/dygraphs
Robert Konigsberg [Thu, 27 Dec 2012 16:07:52 +0000 (11:07 -0500)]
Merge branch 'master' of https://github.com/danvk/dygraphs

11 years agoAdd test for axisTickSize. Fill out test for yAxisLabelWidth. axisTickSize is no...
Robert Konigsberg [Thu, 27 Dec 2012 15:58:58 +0000 (10:58 -0500)]
Add test for axisTickSize. Fill out test for yAxisLabelWidth. axisTickSize is no longer required for computeYAxes.

11 years agoRemove yAxisLabelWidth from Dygraph.axes_.
Robert Konigsberg [Thu, 27 Dec 2012 00:36:41 +0000 (19:36 -0500)]
Remove yAxisLabelWidth from Dygraph.axes_.

11 years agoRemove labelsKMB and labelsKMG2 from Dygraph.axes_.
Robert Konigsberg [Thu, 27 Dec 2012 00:23:34 +0000 (19:23 -0500)]
Remove labelsKMB and labelsKMG2 from Dygraph.axes_.

11 years agoMerge pull request #189 from klausw-g/large-y-scale
Robert Konigsberg [Tue, 18 Dec 2012 22:03:23 +0000 (14:03 -0800)]
Merge pull request #189 from klausw-g/large-y-scale

Fix tick marks for large Y scale ranges

11 years agotick scaling: Added comments, and adjust loop ends
Klaus Weidner [Tue, 18 Dec 2012 02:32:56 +0000 (18:32 -0800)]
tick scaling: Added comments, and adjust loop ends

Update the mults arrays to cover the range from 1..base^2, and start the loop at a slightly lower value for safety. This should help ensure equivalent behavior to the pre-patch version.

11 years agoFix tick marks for large Y scale ranges
Klaus Weidner [Tue, 18 Dec 2012 01:50:22 +0000 (17:50 -0800)]
Fix tick marks for large Y scale ranges

The tick placement logic used a double loop to look for appropriate tick spacing, assuming that a base unit around 10^50 would be sufficient to cover any Y range. Unfortunately this places 10^100 tick marks for Y values around 10^150, leading to excessive resource usage on typical client hardware.

This patch replaces the double loop with a single loop, finding the starting point by explicit calculation.

It also adds a regression test to catch the defective behavior.

11 years agoRemove last vestige of axis.logscale.
Robert Konigsberg [Mon, 17 Dec 2012 01:09:15 +0000 (20:09 -0500)]
Remove last vestige of axis.logscale.

11 years agoRemove axis.logscale for interaction model.
Robert Konigsberg [Mon, 17 Dec 2012 01:03:13 +0000 (20:03 -0500)]
Remove axis.logscale for interaction model.

11 years agoRemove axis.logscale; add test that verifies that custom bars are drawn correctly...
Robert Konigsberg [Mon, 17 Dec 2012 00:52:23 +0000 (19:52 -0500)]
Remove axis.logscale; add test that verifies that custom bars are drawn correctly in log scale.

11 years agoRemove one instance of logscale and all (that is one) instance of includeZero from...
Robert Konigsberg [Sun, 16 Dec 2012 23:11:31 +0000 (18:11 -0500)]
Remove one instance of logscale and all (that is one) instance of includeZero from the Dygraph.axes_ object.

11 years agoMerge branch 'master' of https://github.com/danvk/dygraphs into remove-axis-crap
Robert Konigsberg [Sun, 16 Dec 2012 22:56:54 +0000 (17:56 -0500)]
Merge branch 'master' of https://github.com/danvk/dygraphs into remove-axis-crap

11 years agoMerge pull request #187 from adilhn/rgbcolor_change
Robert Konigsberg [Fri, 14 Dec 2012 19:06:48 +0000 (11:06 -0800)]
Merge pull request #187 from adilhn/rgbcolor_change

Changes for "some performance improvements"

11 years agoMerge branch 'master' of https://github.com/danvk/dygraphs into unzoom
Robert Konigsberg [Fri, 14 Dec 2012 14:30:09 +0000 (09:30 -0500)]
Merge branch 'master' of https://github.com/danvk/dygraphs into unzoom

11 years agoFix logscale. Also fix includeZero (and add tests for it.) Probably fixes all those...
Robert Konigsberg [Thu, 13 Dec 2012 23:57:20 +0000 (18:57 -0500)]
Fix logscale. Also fix includeZero (and add tests for it.) Probably fixes all those special per axis options which should now use the other axis-property specification.

11 years agoMissed an RGBColor-->RGBColorParser change.
Adil [Thu, 13 Dec 2012 22:24:28 +0000 (17:24 -0500)]
Missed an RGBColor-->RGBColorParser change.

11 years ago- Minor updates from the code review.
Adil [Thu, 13 Dec 2012 22:08:08 +0000 (17:08 -0500)]
- Minor updates from the code review.

11 years agoAdd tests that break currently, but will pass when http://code.google.com/p/dygraphs...
Robert Konigsberg [Thu, 13 Dec 2012 17:01:32 +0000 (12:01 -0500)]
Add tests that break currently, but will pass when code.google.com/p/dygraphs/issues/detail?id=412 is fixed.  (Log scale works again.)

11 years agoFixed typo.
Adil [Wed, 12 Dec 2012 18:28:38 +0000 (13:28 -0500)]
Fixed typo.

11 years agoMerge remote-tracking branch 'upstream/master' into rgbcolor_change
Adil [Wed, 12 Dec 2012 18:24:30 +0000 (13:24 -0500)]
Merge remote-tracking branch 'upstream/master' into rgbcolor_change

11 years ago- Refactored requestAnimFrame.
Adil [Wed, 12 Dec 2012 18:17:09 +0000 (13:17 -0500)]
- Refactored requestAnimFrame.
- No longer need xIsEpochDate, so removed.

11 years agoAdd tests for labelsKMG and labelsKMB2.
Robert Konigsberg [Sat, 8 Dec 2012 23:32:34 +0000 (18:32 -0500)]
Add tests for labelsKMG and labelsKMB2.

11 years agoRemove superfluous warning when specifying labelsKMG2.
Robert Konigsberg [Sat, 8 Dec 2012 23:32:19 +0000 (18:32 -0500)]
Remove superfluous warning when specifying labelsKMG2.

11 years agoSet up the ability to fail tests on warnings.
Robert Konigsberg [Sat, 8 Dec 2012 23:31:47 +0000 (18:31 -0500)]
Set up the ability to fail tests on warnings.

11 years agoWhoops, remove labels.js from auto_tests/misc/local.html
Robert Konigsberg [Sat, 8 Dec 2012 23:26:22 +0000 (18:26 -0500)]
Whoops, remove labels.js from auto_tests/misc/local.html

11 years agoCentralize utility methods in automated tests.
Robert Konigsberg [Sat, 8 Dec 2012 23:24:52 +0000 (18:24 -0500)]
Centralize utility methods in automated tests.

11 years agoMove common code to Util.js, reducing multiple-axes tests.
Robert Konigsberg [Sat, 8 Dec 2012 23:01:19 +0000 (18:01 -0500)]
Move common code to Util.js, reducing multiple-axes tests.

11 years agoMinor whitespace tweak.
Robert Konigsberg [Sat, 8 Dec 2012 17:18:29 +0000 (12:18 -0500)]
Minor whitespace tweak.

11 years agoMake new options stuff work with gviz.
Robert Konigsberg [Sat, 8 Dec 2012 17:18:07 +0000 (12:18 -0500)]
Make new options stuff work with gviz.

11 years ago- Changes from code review:
Adil [Tue, 4 Dec 2012 23:27:56 +0000 (18:27 -0500)]
- Changes from code review:
  - Refactored repeatAndCleanup() function.
  - Reverted making private methods doUnzoom and predraw public.
  - Put requestAnimationFrame shim function in Dygraph namespace.

11 years agoHackish way of testing against dygraphs-combined. Tacky but it works!
Robert Konigsberg [Tue, 4 Dec 2012 14:00:31 +0000 (09:00 -0500)]
Hackish way of testing against dygraphs-combined. Tacky but it works!

11 years agoAdd generate-documentation.sh to Makefile.
Robert Konigsberg [Tue, 4 Dec 2012 02:53:03 +0000 (21:53 -0500)]
Add generate-documentation.sh to Makefile.

We should remove some of the Makefile/script duplication.

11 years agoMerge pull request #185 from davidmsibley/master
Robert Konigsberg [Tue, 4 Dec 2012 02:38:45 +0000 (18:38 -0800)]
Merge pull request #185 from davidmsibley/master

synching dygraph-dev and generate-combined

11 years agosynched generate-combined.sh to dygraphs-dev.js
David M Sibley [Mon, 3 Dec 2012 19:48:47 +0000 (13:48 -0600)]
synched generate-combined.sh to dygraphs-dev.js

11 years agoAddress lint warnings.
Robert Konigsberg [Mon, 3 Dec 2012 14:22:42 +0000 (09:22 -0500)]
Address lint warnings.

11 years agoMerge pull request #184 from kberg/master
Robert Konigsberg [Fri, 30 Nov 2012 15:27:06 +0000 (07:27 -0800)]
Merge pull request #184 from kberg/master

More tests in the new style, add error message that guides users who just add series{} around their series.

11 years agoAdd test that shows that you can't put {} inside the series option.
Robert Konigsberg [Fri, 30 Nov 2012 15:21:32 +0000 (10:21 -0500)]
Add test that shows that you can't put {} inside the series option.

11 years agoAdd multiple_axes.js which focuses only on new style series API.
Robert Konigsberg [Fri, 30 Nov 2012 14:36:30 +0000 (09:36 -0500)]
Add multiple_axes.js which focuses only on new style series API.

11 years agoRename test and test methods so they do not conflict with multiple-axes.js.
Robert Konigsberg [Fri, 30 Nov 2012 14:29:26 +0000 (09:29 -0500)]
Rename test and test methods so they do not conflict with multiple-axes.js.

11 years agoIn preparation for migrating axis tests to new-format.
Robert Konigsberg [Fri, 30 Nov 2012 14:24:31 +0000 (09:24 -0500)]
In preparation for migrating axis tests to new-format.

11 years agoRemove maxAxis; it's not used.
Robert Konigsberg [Fri, 30 Nov 2012 14:19:56 +0000 (09:19 -0500)]
Remove maxAxis; it's not used.

11 years agoMerge pull request #180 from kberg/new-series-option
Robert Konigsberg [Thu, 29 Nov 2012 20:17:45 +0000 (12:17 -0800)]
Merge pull request #180 from kberg/new-series-option

Introducing series{} and revised axis{} (when within series{}).

11 years agoMerge branch 'master' of https://github.com/danvk/dygraphs into new-series-option
Robert Konigsberg [Thu, 29 Nov 2012 20:13:14 +0000 (15:13 -0500)]
Merge branch 'master' of https://github.com/danvk/dygraphs into new-series-option

Conflicts:
Makefile
dygraph.js

11 years ago- Added xIsEpochDate option to save redundant encoding to Date objects when X axis...
Adil [Wed, 28 Nov 2012 21:37:06 +0000 (16:37 -0500)]
- Added xIsEpochDate option to save redundant encoding to Date objects when X axis is already in units of epoch time (performance improvement for large data sets).
- Using requestAnimationFrame to make animatedZooms smoother.
- Made doUnzoom() and predraw() methods public (to allow more graph control).
- Renamed RGBColor to RGBColorParser to avoid a function name collision with: http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-RGBColor

11 years agoMerge pull request #182 from kberg/master
Dan Vanderkam [Mon, 26 Nov 2012 21:41:50 +0000 (13:41 -0800)]
Merge pull request #182 from kberg/master

Minor change based on danvk's comments in merge 181.

11 years agoMerge branch 'master' of https://github.com/danvk/dygraphs
Robert Konigsberg [Mon, 26 Nov 2012 02:26:54 +0000 (21:26 -0500)]
Merge branch 'master' of https://github.com/danvk/dygraphs

11 years agoAdded additional comment to the deprecated options warning per Dan's advice.
Robert Konigsberg [Mon, 26 Nov 2012 02:26:24 +0000 (21:26 -0500)]
Added additional comment to the deprecated options warning per Dan's advice.

11 years agoMerge pull request #181 from kberg/master
Dan Vanderkam [Mon, 26 Nov 2012 01:49:52 +0000 (17:49 -0800)]
Merge pull request #181 from kberg/master

Add deprecation warning when a legacy option is mapped. Also some comments and comment clean-up

11 years agoMigrate multi-scale to use non-deprecated axis-specific formatters
Robert Konigsberg [Sun, 25 Nov 2012 16:16:08 +0000 (11:16 -0500)]
Migrate multi-scale to use non-deprecated axis-specific formatters

11 years agoFixed per-series typo in misc/local.html.
Robert Konigsberg [Sun, 25 Nov 2012 16:06:46 +0000 (11:06 -0500)]
Fixed per-series typo in misc/local.html.

11 years agoMerge branch 'master' of https://github.com/danvk/dygraphs
Robert Konigsberg [Sun, 25 Nov 2012 16:06:27 +0000 (11:06 -0500)]
Merge branch 'master' of https://github.com/danvk/dygraphs

11 years agoRenaming deprecated methods because the automated test framework doesn't like multipl...
Robert Konigsberg [Sun, 25 Nov 2012 16:05:47 +0000 (11:05 -0500)]
Renaming deprecated methods because the automated test framework doesn't like multiple test methods with the same name, across classes. RGGAGAGRGA

11 years agoAdd axis_labels tests that rely on the preferred style of formatting axes.
Robert Konigsberg [Sun, 25 Nov 2012 16:00:06 +0000 (11:00 -0500)]
Add axis_labels tests that rely on the preferred style of formatting axes.

11 years agoRename axis_labels.js to axis_labels-deprecated.js, as it will now only hold deprecat...
Robert Konigsberg [Sun, 25 Nov 2012 15:51:50 +0000 (10:51 -0500)]
Rename axis_labels.js to axis_labels-deprecated.js, as it will now only hold deprecated uses of xLabelFormatter, etc.

11 years agoAdd comments and warnings for legacy options.
Robert Konigsberg [Sun, 25 Nov 2012 14:26:09 +0000 (09:26 -0500)]
Add comments and warnings for legacy options.

11 years agoAdd comments and warnings for legacy options.
Robert Konigsberg [Sun, 25 Nov 2012 14:26:09 +0000 (09:26 -0500)]
Add comments and warnings for legacy options.

11 years agoOoh more code cleanup; all 155 tests pass.
Robert Konigsberg [Sun, 25 Nov 2012 04:19:15 +0000 (23:19 -0500)]
Ooh more code cleanup; all 155 tests pass.

11 years agoMerge branch 'remove-old-options' into new-series-option, make new style axis specifi...
Robert Konigsberg [Sun, 25 Nov 2012 04:11:14 +0000 (23:11 -0500)]
Merge branch 'remove-old-options' into new-series-option, make new style axis specification work.

Conflicts:
dygraph-options.js

11 years agoMerge pull request #179 from kberg/makefile-fun
Dan Vanderkam [Sun, 25 Nov 2012 01:29:34 +0000 (17:29 -0800)]
Merge pull request #179 from kberg/makefile-fun

Some Makefile fun - * new lint and clean commands, * add test to generate-combined

11 years agoStart working on new-version axis support. Tests still fail.
Robert Konigsberg [Sat, 24 Nov 2012 18:48:13 +0000 (13:48 -0500)]
Start working on new-version axis support. Tests still fail.

11 years agoFix options reference, so it includes 'Series' category.
Robert Konigsberg [Sat, 24 Nov 2012 18:47:32 +0000 (13:47 -0500)]
Fix options reference, so it includes 'Series' category.

11 years agoMerge branch 'master' of https://github.com/kberg/dygraphs into new-series-option
Robert Konigsberg [Sat, 24 Nov 2012 16:49:14 +0000 (11:49 -0500)]
Merge branch 'master' of https://github.com/kberg/dygraphs into new-series-option

11 years agoSome Makefile fun - * new lint and clean commands, * add test to generate-combined
Robert Konigsberg [Sat, 24 Nov 2012 16:44:08 +0000 (11:44 -0500)]
Some Makefile fun - * new lint and clean commands, * add test to generate-combined

11 years agoMerge branch 'remove-old-options' of https://github.com/kberg/dygraphs into remove...
Robert Konigsberg [Sat, 24 Nov 2012 15:56:25 +0000 (10:56 -0500)]
Merge branch 'remove-old-options' of https://github.com/kberg/dygraphs into remove-old-options

Conflicts:
dygraph.js

11 years agoMerge branch 'master' into remove-old-options
Robert Konigsberg [Sat, 24 Nov 2012 15:45:26 +0000 (10:45 -0500)]
Merge branch 'master' into remove-old-options

Conflicts:
dygraph-options.js
dygraph.js

11 years agoMerge branch 'master' into remove-old-options
Robert Konigsberg [Sat, 24 Nov 2012 15:45:26 +0000 (10:45 -0500)]
Merge branch 'master' into remove-old-options

Conflicts:
dygraph-options.js
dygraph.js

11 years agoMerge branch 'master' of https://github.com/kberg/dygraphs into remove-old-options
Robert Konigsberg [Sat, 24 Nov 2012 15:31:03 +0000 (10:31 -0500)]
Merge branch 'master' of https://github.com/kberg/dygraphs into remove-old-options

11 years agoOptions code review, plus, remove original attr_ code.
Robert Konigsberg [Sat, 24 Nov 2012 10:38:46 +0000 (05:38 -0500)]
Options code review, plus, remove original attr_ code.

11 years agoexclude externs from lint
Dan Vanderkam [Sat, 24 Nov 2012 04:04:17 +0000 (23:04 -0500)]
exclude externs from lint

11 years agoMore correctly-compiling files, plus some more info in closure-todo.txt
Dan Vanderkam [Sat, 24 Nov 2012 04:03:05 +0000 (23:03 -0500)]
More correctly-compiling files, plus some more info in closure-todo.txt

11 years agodygraph-tickers builds clean
Dan Vanderkam [Sat, 24 Nov 2012 03:16:34 +0000 (22:16 -0500)]
dygraph-tickers builds clean

11 years agoClosurify some low-hanging fruit
Dan Vanderkam [Sat, 24 Nov 2012 02:40:39 +0000 (21:40 -0500)]
Closurify some low-hanging fruit