- bug fix: range high underflow with final removeIndex
- update modules
- raise z-index for dragBar to 3000
- bug fix (required with latest React)
- Additions to documentation regarding the scroller
profile
property - Addition of
scrollerProfile
toDragDropTransferCallback
context
parameter
enhanced data return with nativeTypeCallback
. Now includes whitespaceposition
('head' or 'tail') and listrange
.
- support for native drag and drop types onto scrollers: files, urls, and text
- new scroller
dndOptions.nativeTypeCallback
property - a host provided function to return the result of native type drag and drop
New layout
property option
- new
layout
property type 'static' which allows insertion ofstaticComponent
, and ignores all other properties, other than scrollerdndOptions
- new
staticComponent
property which allows insertion of a static component layer. Ignored unlesslayout
is set tostatic
These changes allow the RIGS root level to have an arbitrary layout. Specifically the inserted component allows for more than one top-level scroller, with drag and drop between them.
New scroller dndOptions
property
dndOptions.showScrollTabs
(defaulttrue
)
DndScrollTabs can now be suppressed by setting the showScrollTabs
scroller dndOptions
property to false
Added:
- intra-list and inter-list drag and drop capability
- scroller
dndOptions
property, containingaccept
list of content types - scroller host-defined
profile
property to help with response to certain functions - host provided
getDropEffect
function (forRigsDnd
higher order component only) which provides the host the opportunity to constrain the drop effect on scrollers, based onsourceScrollerID
,targetScrollerID
, andcontext
data. - host-provided
dragDropTransferCallback
function to notify host of completed drag and drop operations getItemPack
(replacesgetItem
). The return object ofgetItemPack
from the host includes the host-definedcomponent
function, and a dataprofile
object with host-defined properties; for dnd, it includes a celldndOptions
object withdragText
andtype
Renamed:
scrollerProperties
renamed toscrollerContext
scrollerContext
properties renamed fromcellFramePropertiesRef
tocell
, and fromscrollerPropertiesRef
toscroller
. Both follow the reactref
pattern, with data held in thecurrent
property
Removed:
- GetItem. Use GetItemPack
- remapIndexes was removed as a service function, as dead weight
- startingListSize. Use startingListRange
- setListSize. Use setListRange
- changeListSizeCallback. Use changeListRangeCallback
Changed:
- All API functions with return values have had the shape of those return values changed. Notably all return values now include a
context
object, which contains acontextType
name, ascrollerID
number, and sometimes more.
fix debug error
Fix regression re programmatic scrolling
This version deals with virtual list boundaries - SOL (start-of-list) & EOL (end-of-list)
A new callback function is recognized:
boundaryCallback(position:string,index:number):void
provided by the host is called whenever a SOL or EOL index is loaded into the Cradle.position
= "SOL" | "EOL",index
being the start or end index.
A new property has been added:
getExpansionCount(position, index):integer
is a function optionally provided by the host. If provided, it is called whenever a SOL or EOL index is loaded into the Cradle withposition
= "SOL" | "EOL" andindex
being the start or end index. The function is expected to return the number (>=0) of indexes to add to the virtual list at the noted start or end.
This version adds flexible padding and gap configuration.
padding
has been moved fromCradle
grid blocks to theScrollblock
.- the
padding
property now accepts an array of integers as well as a standalone integer. Values match standard CSS order. Standalone integer = padding (in pixels) for all of top, right, bottom, left. 1-item array, same as integer. 2-item array = [t/b, r/l]. 3-item array = [t, r/l, b]. 4-item array = [t, r, b, l] - the
gap
property now accepts an array of integers as well as a standalone integer. Values match standard CSS order. Standalone integer = gap (in pixels) for both of column-gap (horizontal) and row-gap (vertical). 1-item array, same as integer. 2-item array = [col, row]
This version introduces programmatic scrolling.
New API calls:
- scrollToPixel(pixel:number[,behavior:string])
- scrollByPixel(pixel:number[,behavior;string])
Internal updates:
- scroll mechanics for variable content was changed to accomodate scroll API calls.
This version introduces bi-directional virtual list expansion (or contraction), by allowing negative indexes.
Breaking change:
changeListSizeCallback
API replaces changeListsizeCallback (note the camel case)
Other changes:
- new RIGS property
startingListRange
optionally takes an array of two numbers[lowindex, highindex]
, being thelowindex
andhighindex
of the virtual list.lowindex
must be <=highindex
, but both can be positive or negative integers.startingListRange
if present supercedesstartingListSize
. IfstartingListRange
is given an empty array ([]
) it creates an empty virtual list setListsize
API call is deprecated, replaced bysetListSize
(note the camel case)- new API calls: setListRange, prependIndexCount, appendIndexCount, getPropertiesSnapshot. See documentation
Internal refactors:
- promote PortalCache component to top tier
- introduce experimental capability to share cache among multiple scrollers (this currently has no operational effect)
Refactor index insert, remove, and move
A couple of corrections to list resize
Fix regression in CellFrame
Integrated multiple suggestions from a linter, including one bug fix ("=" s/b "=="). Allow startingListSize of 0.
Moved two pre-emptive function component error returns in InfiniteGridScroller to location after all hooks. Avoided third pre-emptive return by calling Scrollblock conditionally on listsize > 0.
No change, just updated the version number in the README file.
No change, just upgraded the utility to production release status
Release candidate 1. Several cross-browser issues were identified and resolved.
RIGS now appears to be functional and stable. Feature freeze for version 1.0.0 is in effect.
Many issues were identified and resolved, thanks mostly to testing with the demo site.
Beta 4 should be the last testing cycle before the product is promoted to Release Candidate status. Focussing on cross-browser testing.
- better stability
- demo site established for exploration and testing
- some more work to do around edge cases
- Beta-1 has been completely refactored
- First release