account for matrix transforms in getAbsoluteBounds

Issue: BHV-15490
Enyo-DCO-1.1-Signed-off-by: Ryan Duffy (ryan.duffy@lge.com)
use style property for bounds with computed style fallback

The style property is often sufficient but if the transform is specified in a
unit other than 'px', fall back to computed style to get the pixel value.

Issue: BHV-14590
Enyo-DCO-1.1-Signed-off-by: Ryan Duffy (ryan.duffy@lge.com)
removes enyo-fit from FloatingLayer for < IE11

Issue: ENYO-364
Enyo-DCO-1.1-Signed-off-by: Ryan Duffy (ryan.duffy@lge.com)
ENYO-371: Attempts to set scroll position fail in certain cases

enyo.Scroller attempts to honor requests to set scroll position
(via setScrollTop() and setScrollLeft()) even when the scroller is
hidden. However, it fails to do so in some cases (e.g. when the
Scroller itself is showing, but one of its ancestors is hidden,
or when a DOM ancestor of Scroller does certain types of async
things in response to onShowingChanged, like a subkind of
enyo.Popup that animates on show / hide).

The latter case can be avoided with thoughtful design of the
subkind (e.g. moon.Popup, which also animates when showing / hiding
but doesn't have this issue), but it would be nice to be more
bullet-proof.

To achieve better results, we replace Scroller's position caching /
restoring mechanism with a simpler mechanism based on the
onShowingChanged event of enyo.Control (which lets Controls
respond when an ancestor is shown or hidden, but which didn't exist
when Scroller was originally implemented).

To make this work, I adjusted the timing of onShowingChanged.
Previously, a Control would consistently waterfall this event after
hiding / showing itself. However, descendants will be able to do
more useful things with the event if we waterfall *before* hiding
(when a descendant can still take measurements or perform DOM
operations requiring a visible node), but  *after* showing (again,
so that a descendant has a visible DOM node to work with as
needed).

This commit also includes a new utility function (isNumeric()) in
lang.js. This was required by a fix that I ended up rejecting, but
it seems like it might be useful in other cases so I am leaving it
here.

Enyo-DCO-1.1-Signed-Off-By: Gray Norton (gray.norton@lge.com)
BHV-16137: Only set rtl property when there is content.

Enyo-DCO-1.1-Signed-off-by: Aaron Tam <aaron.tam@lge.com>
ENYO-392: Allow definition of custom hold events

Garnet has requirements from MC to support "longpress" behavior,
in addition to basic "hold" behavior.

Rather than add new events globally, we will extend the existing
"configureHoldPulse" functionality so that Garnet (and others in
similar situations) can easily define a set of custom hold events
to meet their specific requirements.

We add an "events" property to the holdPulse configuration object.
This property takes an array of objects, where each object defines
a custom hold event in the form of a name / time pair. We also add
a "frequency" property that determines both the frequency of
holdpulse events as well as the frequency with which we check to
see whether it's time to fire a hold event. These new properties
together replace the old "delay" property. For backward
compatibility, we look for config objects containing "delay" and
automatically translate them to the new format.

We also expose a public enyo.gesture.drag.configureHoldPulse()
method that will allow a library or app developer to imperatively
change the default holdPulse configuration. This will allow
Garnet, for example, to universally use a custom set of hold
events, avoiding the need to override the defaults in the "down"
handler for every Control.

Also added docs for configuring holdPulse. These docs are fairly
comprehensive, but will need some editing love and some reorg to
take advantage of JSDoc structured metadata (e.g., properties
and their default values are currently described, but only in free
text).

Enyo-DCO-1.1-Signed-Off-By: Gray Norton (gray.norton@lge.com)
ENYO-402: Fixed an issue related to RTL and the animation "jumping" when it shouldn't by increasing the precision of the calculations.

Enyo-DCO-1.1-Signed-off-by: Blake Stephens <blake.stephens@lge.com>
ENYO-382: Access the correct source/target properties.

Enyo-DCO-1.1-Signed-off-by: Aaron Tam <aaron.tam@lge.com>
BHV-16550: Use getBoundingClientRect inside of getAbsoluteBounds

Issue:
Previous implementation of getAbsoluteBounds is accumulate all offsetTop + scrollTop + translate values of all the parents.
But, we found some edge cases that getAbsoluteBounds doesn't calculate absolute bounds well.
- Previous implementation doesn't add value of border
- Previous implementation doesn't add value of translateX(100%)

Fix:
The result of getBoundingClientRect() is actually the absolute bounds of element measured from viewport.
We calculate right and bottom values just like previous implementation did because getBoundingClientRect returns the distance from top and left.

DCO-1.1-Signed-Off-By: Kunmyon Choi kunmyon.choi@lge.com
Merge pull request #911 from enyojs/ENYO-402-blakestephens

ENYO-402: Fixed an issue related to RTL and the animation "jumping"...

Reviewed-By: Art Dahm (art.dahm@lge.com)
Integrated-By: Aaron Tam (aaron.tam@lge.com)
BHV-16550: Remove unnecessary variable check

DCO-1.1-Signed-Off-By: Kunmyon Choi kunmyon.choi@lge.com
BHV-11799: Add new sample to test DataList / Scroller interaction

In addressing BHV-11799, I found it helpful to create a sample to
exhaustively test the interaction of DataList and DataGridList
with our various scroll strategies.

Submitting this as a separate pull request so that this sample can
more easily be used to test behavior both before and after the
changes made to fix BHV-11799.

Enyo-DCO-1.1-Signed-Off-By: Gray Norton (gray.norton@lge.com)
ENYO-402: Increase precision of animation calculations.

Enyo-DCO-1.1-Signed-off-by: Aaron Tam <aaron.tam@lge.com>
Merge pull request #917 from enyojs/ENYO-402-blakestephens

ENYO-402: Increase precision of animation calculations.

Integrated-By: Aaron Tam (aaron.tam@lge.com)
fix for BHV-16168 select method delay
missing semi colon
added a skip defer option
Merge pull request #877 from enyojs/BHV-15490-ryanjduffy

Fixes BHV-15490

Reviewed-By: Krishna Rangarajan (krishna.rangarajan@lge.com)
Integrated-By: Aaron Tam (aaron.tam@lge.com)
Revert "Merge pull request #877 from enyojs/BHV-15490-ryanjduffy"

This reverts commit 96c6cdb462b908546659f313972f71e306c939e2, reversing
changes made to f146196db601a33ecff0588cf612933d26fdbd28.

Reverting this in favor of the fix for BHV-16550 (https://github.com/enyojs/enyo/pull/913).
Merge pull request #913 from enyojs/BHV-16550-kunmyonchoi

BHV-16550: Use getBoundingClientRect inside of getAbsoluteBounds

Reviewed-by: Roy Sutton (roy.sutton@lge.com)
Integrated-By: Aaron Tam (aaron.tam@lge.com)