Table of Contents generated with DocToc
- 11.0.0 (TBD)
- 10.3.1 (2024-07-21)
- 10.3.0 (2024-06-26)
- 10.2.1 (2024-06-23)
- 10.2.0 (2024-06-02)
- 10.1.2 (2024-03-30)
- 10.1.1 (2024-03-03)
- 10.1.0 (2024-02-04)
- 10.0.1 (2023-12-10)
- 10.0.0 (2023-11-20)
- 9.5.1 (2023-11-11)
- 9.5.0 (2023-10-26)
- 9.4.0 (2023-10-15)
- 9.3.0 (2023-09-30)
- 9.2.2 (2023-09-27)
- 9.2.1 (2023-09-20)
- 9.2.0 (2023-09-10)
- 9.1.1 (2023-09-06)
- 9.1.0 (2023-09-04)
- 9.0.2 (2023-08-29)
- 9.0.1 (2023-08-27)
- 9.0.0 (2023-08-23)
- 8.4.0 (2023-07-20)
- 8.3.0 (2023-06-13)
- 8.2.3 (2023-06-11)
- 8.2.1 (2023-05-26)
- 8.2.0 (2023-05-24)
- 8.1.2 (2023-05-22)
- 8.1.1 (2023-05-13)
- 8.1.0 (2023-05-06)
- 8.0.1 (2023-04-29)
- 8.0.0 (2023-04-29)
- 7.3.0 (2023-04-01)
- 7.2.3 (2023-02-02)
- 7.2.2 (2023-01-16)
- 7.2.1 (2023-01-14)
- 7.2.0 (2023-01-07)
- 7.1.2 (2022-12-29)
- 7.1.1 (2022-11-13)
- 7.1.0 (2022-10-23)
- 7.0.1 (2022-10-14)
- 7.0.0 (2022-10-09)
- 6.0.3 (2022-10-08)
- 6.0.2 (2022-09-23)
- 6.0.1 (2022-08-27)
- 6.0.0 (2022-08-21)
- 5.1.1 (2022-06-16)
- 5.1.0 (2022-05-21)
- 5.0.0 (2022-01-10)
- 4.4.1 (2021-12-24)
- 4.4.0 (2021-12-21)
- 4.3.1 (2021-10-18)
- 4.3.0 (2021-10-15)
- 4.2.7 (2021-9-12)
- 4.2.6 (2021-7-11)
- 4.2.5 (2021-5-31)
- 4.2.4 (2021-5-29)
- 4.2.3 (2021-5-8)
- 4.2.2 (2021-4-23)
- 4.2.1 (2021-4-18)
- 4.2.0 (2021-4-11)
- 4.1.0 (2021-4-7)
- 4.0.3 (2021-3-28)
- 4.0.2 (2021-3-27)
- 4.0.1 (2021-3-20)
- 4.0.0 (2021-3-19)
- 3.3.0 (2021-2-2)
- 3.2.0 (2021-1-25)
- 3.1.5 (2021-1-23)
- 3.1.4 (2021-1-11)
- 3.1.3 (2021-1-2)
- 3.1.2 (2020-12-7)
- 3.1.0 (2020-12-4)
- 3.0.0 (2020-11-29)
- 2.2.0 (2020-11-7)
- 2.1.0 (2020-10-28)
- 2.0.2 (2020-10-05)
- 2.0.1 (2020-09-26)
- 2.0.0 (2020-09-07)
- 1.2.1 (2020-09-04)
- 1.2.0 (2020-08-01)
- 1.1.2 (2020-05-17)
- 1.1.1 (2020-03-17)
- 1.1.0 (2020-02-29)
- v1.0.0 (2020-02-23)
- v0.6.4 (2020-02-17)
- v0.6.3 (2020-02-05)
- v0.6.2 (2020-02-03)
- v0.6.1 (2020-02-02)
- v0.6.0 (2019-12-24)
- v0.5.5 (2019-11-27)
- v0.5.4 (2019-11-26)
- v0.5.3 (2019-11-20)
- v0.5.2 (2019-11-13)
- v0.5.1 (2019-11-07)
- v0.5.0 (2019-11-06)
- v0.4.0 (2018-05-11)
- v0.3.0 (2017-04-21)
- v0.2.6 (2016-08-17)
- v0.2.5 (2016-03-02)
- v0.2.4 (2016-02-15)
- v0.2.3 (2015-06-23)
- v0.2.2 (2014-12-23)
- v0.2.1 (2014-12-09)
- v0.2.0 (2014-11-30)
- v0.1.0 (2014-11-18)
- fix: #2736 safe practices around GridStackWidget.content no longer setting innerHTML
- fix: #2231,#1840,#2354 big overall to how we do sidepanel drag&drop helper. see release notes.
- feat: #2818 support for Angular Component hosting true sub-grids (that size according to parent) without requring them to be only child of grid-item-content.
- fix: #2734 rotate() JS error
- fix: #2741 resizeToContent JS error with nested grid
- fix: #2740 nested grid drag fix
- fix: #2730 resizing left from right most item works
- fix: #2327 remove dataTransfer mention as not supported
- fix: #2720 load() now creates widgets in order (used to be reverse due to old collision code)
- fix: #2683 check for fixed grid maxRow during resize
- fix: #2694 prevent 'r' rotation to items that can't resize (locked, noResize, fixed sizes)
- fix: #2709 support for multiple drag targets - Thank you nickfulcher
- fix: #2669 load() sometimes restore incorrectly
- feat: #2682 You can now press 'Esc' to cancel a move|resize, 'r' to rotate during a drag. added
GridStack.rotate()
as well - Thank you John B. for this feature sponsor. - fix: #2672 dropping into full grid JS error
- fix: #2676 handle minW resizing when column count is less
- fix: #2677 allow button as handle dragging
- fix: #2628
removeAll()
does not trigger Angular's ngOnDestroy - fix: #2503 Drag and drop a widget on top of a locked widget - Thank you JakubEleniuk
- fix: #2584 wrong sort order during 1 column resize - Thank you JakubEleniuk again.
- fix: #2639 load() with mix of new item without coordinates
- fix: #2633 Drop into full grid causes crash
- fix: #2559 changed angular demos (support 1 column)
- fix: #2453 recreated grid trash issue
- fix: #2620 allow resizing with sizeToContent:NUMBER is uses
- feat: #2574 Allow cell height in cm and mm units
- feat: #2578 allow different scaling between drag toolbar and grid
- fix: #2577 ui-resizable-s/-n style fix
- fix: #2576 column('none') now ignores layouts
- fix: #2560 nested grid fix (enter can call leave which can call enter again) - Thank you v1talii-dev
- fix: #2596 prevent SSR crash
- fix: #2610 using passive:true for mousemove events
- fix: #2612 restrict vertical resize if
sizeToContent:true
- demo: nested.htm now has nested create and drag&drop example - Thank you fredericrous
- fix: #2552 DOM init doesn't sizeToContent
- fix: #2561 issues with sizeToContent animation, cleanup, etc...
- fix: #2427 sizeToContent supports rem/em cell height
- fix: #2558 remove style node in shadow root
- fix: #2556 make sure 'new GridStack(el)' set el.gridstack=this right away
- cleanup: #2550 Optimize resize arrow (~88% lighter from 1.82 KB to 225B)
- feat #2542 we now support much richer responsive behavior with
GridStackOptions.columnOpts
including any breakpoint width:column pairs, or automatic column sizing. disableOneColumnMode
,oneColumnSize
,oneColumnModeDomSort
have been removed (see v10 migration doc)
- fix #2525 Fixed unhandled exception happening in _mouseMove handler
- fix potential crash in resizeToContentCheck() if grid gets deleted by the time the delay happens
- fix #2527 Incorrect layout on grid load in one column mode
- fix #2496 animation on init, introduced in 8.1.1
- feat #1275 div scale support - Thank you elmehdiamlou for implementing this teh right way (add scale to current code)
- fix #2489 moved the dropped event handler to after doing everything (no more setTimeout) - Thanks arnoudb for suggesting a fix.
- fix #2497 Utils.parseHeight() fix
- fix column(1) to not restore if disableOneColumnMode on size change
- revert #2263 div scale support - causing too many issues for now (#2498 #2491)
- fix #2492 calling load() allows overlapping widgets
- fix #1275 div scale support - Thank you VincentMolinie for implementing this
- fix - sub-grid styles now look for immediate correct parent, not any depth above.
- fix #2469 "Invalid height" error CSS minHeight
- fix #2394 nested grid size issue when sub-items moved up/down
- fix _updateContainerHeight() to use height rather than min-height again (apart for nested grids which need it) and partial getComputedStyle CSS minHeight support
- feat: nested grids now support
sizeToContent
to size themselves to how many sub items they contain - Thank you @Helix for sponsoring this! - fix #2449 full grid maxRow fix
- fix #2435 directionCollideCoverage() tweaks
- fix resizeToContent() to handle node.h (using when cellHeight changes or we resize) vs DOM sizing (rest of the time)
- renamed fitToContent to sizeToContent (API BREAK)
- feat:
sizeToContent
now supports beingboolean|number
to limit the height but user can resize past that, unlike maxH. - feat:
resizeToContentParent
now on GridStackWidget for those widgets that need to resize differently.
- fix 'resizecontent' event fix not called.
- partial fix #2427 sizeToContent when calling cellHeight()/addWidget()/MakeWidget()
- fix #2413 support touchscreen+mouse devices. Thank you @Ruslan207
- tweak to
sizeToContent
from #2412. Thank you @JonSohn
- feat #404 added
GridStackOptions.sizeToContent
andGridStackWidget.sizeToContent
to make gridItems size themselves to their content (no scroll bar), callingGridStack.resizeToContent(el)
whenever the grid or item is resized. - also added new
'resizecontent'
event, andresizeToContentCB
andresizeToContentParent
vars. - fix #2406 inf loop when autoPosition after loading into 1 column, then 2.
- feat #2378 attribute
DDRemoveOpt.decline
to deny the removal of a specific class. - fix: dragging onto trash now calls removeWidget() and therefore
GridStack.addRemoveCB
(for component cleanup) - feat:
load()
support re-order loading without explicit coordinates (autoPosition
or missingx,y
) uses passed order.
- feat #2358 column(N, 'list'|'compact'|...) resizing now support reflowing content as list
- fix #2349 grid NoMove vs item NoMove support
- fix #2352 .ui-draggable-dragging z-index for modal dialogs
- fix #2357 NaN inf loop when using cellHeight rem/em
- fix #2354 max-w cloning issue fix
- fix: make sure
removeNode()
uses internal _id (unique) and not node itself (since we clone those often) - fix: after calling
addRemoveCB
make sure we don't makeWidget() (incorrectly) a second time - break:
GridStackWidget.id
is now string only (used to be numberOrString) as it causes usage to have to check and cast
- feat:
makeWidget()
now take optionalGridStackWidget
for sizing - fix: make sure
GridStack.saveCB
is call inremoveWidget()
- feat: angular wrapper: serialize custom data support, and making sure destroy() is called on ng components
- #2323 module for Angular wrapper
- fix: #2314 fix issue with having min-height/width instead of height/width for gs-h|x="1"
also further compressed CSS multi column rules (use
.gs-# > .grid-stack-item
instead of.grid-stack-# > .grid-stack-item
)
- break: remove
GridStackOptions.minWidth
obsolete since 5.1, useoneColumnSize
instead - optimize: CSS files now even 25% smaller (after being halfed in 8.0.0) by removing
.grid-stack
prefix for anything already gs based, and 3 digit rounding. - fix: #2275
setupDragIn()
signature tweaks (HTMLElement | Document) - feat: #2205 added
GridStackOptions.draggable.cancel
for list of selectors that should prevent item dragging
- feat: #2275
setupDragIn()
now can take an array or elements (in addition to selector string) and optional parent root (for shadow DOM support) - fix: #2234
Utils.getElements('1')
(called by removeWidget() and others) now checks for digit 'selector' (becomes an id). - fix: #2213
destroy()
now removes event handlers too - feat: #2292 ne nw resize handle
- break: (meant to be in v8) removed
GridStackOptions.dragInOptions
sinceGridStack.setupDragIn()
has it replaced since 4.0
- package is now ES2020 (TS exported files), webpack all.js still umd (better than commonjs for browsers), still have es5/ files unchanged (for now)
- optimize #2243 removed
gs-min|max_w|h
attribute generated in CSS or written out as they are never used for rendering, only for initial load. This reduce our column/row CSS in half! - optimize: removed
gs-w='1'
andgs-h='1'
dom attribute writing since we already have min-width/min-height set, no need to set more attributes. - optimize: remove
'ui-draggable'
and'ui-resizable'
since wasn't used in CSS and we have the-disabled
version when off (so we can usenot(xyz-disabled)
). - add:
GridStack.saveCB
global callback for each item during save so app can insert any custom data before serializing it.save()
can now be passed optional callback - move:
GridStack.addRemoveCB
is now global instead of grid option.load()
can still be passed different optional callback - fix: addGrid() to handle passing an existing initialized grid already
- break:
GridStackOptions.subGrid
->GridStackOptions.subGridOpts
. We now haveGridStackWidget.subGridOpts
vsGridStackNode.subGrid
(subclass) rather than try to merge the two at runtime since very different types... - tons of improvements for Angular wrapper.
- feat #2229 support nonce for CSP. Thank you @jedwards1211
- feat: support nested grids with Angular component demo. Thank you R. Blanken for supporting this.
- fix #2206
load()
with collision fix - fix #2232
autoPosition
bug loading from DOM
- fix
addWidget()
to handle passing just {el} which was needed for Angular HMTL template demo - add
opts.draggable.scroll
back to disable scrolling. Thank you @VincentMolinie
- fix #2171
save()
nested grid has extra nested children & options - regression for fix #2110: nested grids lost their styles causing wrong rendering when dragging to create sub nesting
- fix #2162 removing item from a grid (into another) will now call
change
if anything was also modified during the remove - fix #2110 custom
GridStackOptions.itemClass
now works when dragging from outside
- fix #1936 some styles left behind after a drag
- remove #1842 incorrect doc/partial code on widget resizeHandles
- doc #2033
resizestop
is actually correct as we don't animate resize today - add -
init()
|initAll()
will now load any listed children (whataddGrid()
already did) - add -
GridStackOptions.addRemoveCB
which is use by frameworks (eg Angular) to dynamically create their gridItem components instead of regular div with class
- fix #939 'prototype' undefined error for dd-gridstack.js
- add #939 disable/enable are methods now recursive by default
- add better
GridStackEventHandlerCallback
spelled out types - add We now have support for Angular Component wrappers out of the box included in the build, with docs and demo! Need help to do that for React and Vue.
- back to MIT license in package.json
- add
GridStackEngine.findEmptyPosition()
- fix #2081 removeWidget() after it's gone from DOM
- fix #1985 addWidget() or DOM read in single column mode will not adjust to multi column mode
- fix #1975 oneColumnModeDomSort not respected when loading in 1 column
- fix #2073 SSR (server side rendering) isTouch issue (regression in v6)
- fix - removing last item delete sub-grid that are not auto-generated (nested.html vs nested_advanced.html)
- add #1009 Create sub-grids on the fly,
by dragging items completely over others (nest) vs partially (push) using new flag
GridStackOptions.subGridDynamic=true
. Thank you [StephanP] for sponsoring it.
See advance Nested - add - ability to pause drag&drop collision until the user stops moving - see
DDDragOpt.pause
(used for creating nested grids on the fly based on gesture). - add #1943 you can now drag sub-grids into other sub-grids
- fix #2055 maxRow=1 resize outside (broke in 6.0.1)
- fix #2054 Can't enter text in textarea/input (broke in v6)
- fix #2034
removeWidget()
breaking resize handle feedback - fix #2043 when swapping shapes in maxRow grid, make sure we still check for 50% coverage
- fix
float(val)
to set on grid and engine, so save() will read it. - fix #2018 mouseover and React different behavior
- fix getting nested grid resize handles while dragging child
- converted previous HTML5
draggable=true
based code to simple Mouse Events and Touch mobile support for drag&Drop. - removed all jquery-ui related code, and D&D plugging as we only support native events now
alwaysShowResizeHandle
now support'mobile'
which is the default, making it much easier (see doc)- changed
commit()
to bebatchUpdate(false)
to make it easier to turn batch on/off. updated doc. old API remains for now
- fix v5.1.0 regression #1973 DnD Snap to Animation
- add
GridStack.registerEngine()
to let user use their own custom layout engine subclass. Thank you [Thomas] for sponsoring it. - grid option
minWidth
is nowoneColumnSize
to make it clearer, but old field will still work (JS only) for a while - fix #1966 restore animation when dragging items
- updated jqueryui to latest v1.13.1
- add #992 support dragging into and out of nested grids from parents! Thank you @arclogos132 for sponsoring it.
- add #1910 new
column:'auto'
option to size nested grids to their parent grid item column count, keeping items the same size inside and outside. Thank you @arclogos132 for also sponsoring it. - fix #1902 nested.html: dragging between sub-grids show items clipped
- fix #1558 dragging between vertical grids causes too much growth, not follow mouse.
- fix #1912 no longer force rows for min-height
- fix #1888 locks up with nested grid when 'column' is set to 1
- fix #1901 error regression for #1785 when re-loading with fewer objects
- add #1887 support for IE (new es5 folder) by @SmileLifeIven
- fix #1785 overlapping items when switching column() and making edits. Thank you @radovanobal for sponsoring it.
- fix #1890 unhandled exception when dragging fast between grids.
- fix #1868 prevent swap during resize
- fix #1849 #1816 save highest resolution in 1 column mode
- fix #1855 resize when padding is large vs cellHeight
- you can now swap items of different width if they are the same row/height. Thanks to spektrummedia for sponsoring it.
- fix #1860 nested grid save inf loop fix
- use latest
dart-sass
, updated comments
- fix #1817 Enable passing of DragEvent to gridstack dropped event. Thanks @onepartsam
- fix #1835 Layout incorrectly restored when node has a minimum width. Thanks @hssm
- fix #1794 addGrid() does not recognize rem cellHeightUnit
- fix #1784
removable:true
working by itself (without needingacceptWidgets:true
) - fix #1791 removed drag flicker and scroll issue. Thanks @nelsieborja
- fix #1795
save(false)
will no longer have.content
field (removed existing one if present) - fix #1782
save(false, false)
now correctly saves nested grids - fix #1793
save(false, true)
followed by enable() throws error. we now have newUtils.cloneDeep()
- fix for website with JQ
droppable('destroy')
giving error
- fix #1760
removable:true
working again (broke in 4.x) - fix #1761
staticGrid(false)
will now enable drag in behavior (if set) - fix #1767
locked
item can be user moved/resized again, just not pushed by other nodes (broke in 1.1.1) - fix #1764
destroy(false)
can now re-init properly (doesn't force static grid)
Utils.getScrollParent()
->getScrollElement()
rename- fix #1745 digression on scrolling in v4.2.1. Thanks @Manfred-on-github for fixing your prev change.
- fix #1684 #1550 mac Safari H5 draggable broken in 4.0.1. Thanks @wurambo
- fix #1562 mac Safari page scroll fix
- fix #1700 JQ nested grid drag fix broken in 4.0.3 (but much older underlying issue)
- fix #1678 item gs-x:0 not animating fix
- fix #1727 resize-scroll issue when grid is not at top of page. Thanks @Manfred-on-github
- fix #1728 fix sizing from top/left sides
- fix #1704 scrollbar fix broken in 4.x
- fix #1655
addWidget()
while in 1 column now remembers original wanted width - add #1727
addWidget()
now supports nested grids like init/addGrid() does.
- fix #219 fixing another 6 years old request we now automatically insert extra rows when dragging an item at the bottom below others to make it easier to insert below.
- fix #1687 more fix for drag between 2 grids with
row / maxRow
broken in 4.x - fix export symbols .d.ts for
gridstack-h5.js | gridstack-jq.js | gridstack-static.js
- fix #1709 correct info for using JQ version and ES6 (tested in Angular app)
- fix #1693
load
afterinit()
broken in 4.x - fix #1687 drag between 2 grids with
row / maxRow
broken in 4.x - fix #1676 drag edge case in/out single grid without acceptWidgets fix broken in 4.x
- fix #1679
Resizable: {handles:'w/sw'}
broken in 4.x - fix #1658
enableMove(T/F)
not working correctly - fix
helper: myFunction
now working for H5 case fordragInOptions
&setupDragIn()
broken in 3.x - fix prevent
addGrid()
from creating nested div grid if container already is a '.grid-stack' div
- fix #149 #1094 #1605 #1534 re-write of the collision code - fixing 6 years old most requested request
- you can now swap items of the same size (vertical/horizontal) when grid is full, and is the default in
float:false
(top gravity) as it feels more natural. Could add Alt key for swap vs push behavior later. - Dragging up and down now behave the same (used to require push WAY down past to swap/append). Also much more efficient collision code.
- handle mid point of dragged over items (>50%) rather than just a new row/column and check for the most covered item when multiple collide.
- we now remove item when cursor leaves (
acceptWidgets
case usingdropout
event) or shape is outside (re-using same method) and re-insert on cursor enter (since we only getdropover
event). Should not be possible to have 2 placeholders which confuses the grids. - major re-write and cleanup of the drag in/out. Vars have been renamed and fully documented as I couldn't understand the legacy buggy code.
- removed any over trash delay feedback as I don't see the point and could introduce race conditions.
- fix 1617 FireFox DOM order issue. Thanks @marcel-necker
- fix changing column #
column(n)
now resizescellHeight:'auto'
to keep square - add 1616
drag | resize
events while dragging. Thanks @MrCorba - add 1637
GridStack.setupDragIn()
so user can update external draggable after the grid has been created
- big re-write on how
cellHeight()
works. you can now call it at any time (not just grid init options) including switching to 'auto' or other modes on the fly. - fix
cellHeight:auto
now keeps cell square as window resizes (regressing from 2.x TS conversion).Utils.throttle()
works better too (guaranteed to be called last event) - new
cellHeight:initial
which makes the cell squares initially, but doesn't change as windows resizes (better performance) - new grid option
cellHeightThrottle
(100ms) to control throttle of auto sizing triggers - fix 1600 height too small with
cellHeight:auto
loading in 1 column. Now detect we load at 1 column and size accordingly (default 'auto' could make big 700x700 cells, so explicit px might still be wanted) - fix 1538 loading nested into small size and sizing back up
- fix 1604 nested grid resizing fix
- fix 1599 resize from left side can move item right
- fix 1413 website & lib works on mobile. We now compile the latest v1.0.8
jquery.ui.touch-punch
into the JQ version (only 2k) so mobile devices (android, iphone, ipad, ms surface, etc...) are supported out of the box. HTML5 version will require re-write to plainmousemove
& mobiletouchmove
instead of drag events in a future release. - small optimizations (create placeholder content on the fly, moved more DD code into draggable class)
- fix 1572
column: N
option now sets CSS class - fix 1571 don't allow drop when grid is full
- fix 1570 easier to drag out/in from below
- fix 1579
cellHeight()
not updating CSS correctly - fix 1581 H5 draggable by actual div handle rather than entire item (let content respond to drag as well)
- fix 1557 fix no-drop cursor on windows when dragging within a default grid (no external drag in)
- fix 1541 fix Safari H5 delay when dropping items
- fix 1540 Safari H5 drag&drop fix
- fix 1535 use batchUpdate() around grid init to make sure gs-y attributes are respected.
- fix 1545
disableMove()
correctly prevents drag later (remove events and draggable attribute) - fix 1546 resize no longer delayed, which caused race conditions errors
- fix 1001 resizing near bottom/top needs to auto-scroll/. thanks @hbcarlos!
- fix 1419 dragging into a fixed row grid works better (check if it will fit, else try to append, else won't insert) -- possible BREAK (unlikely you use engine directly)
- engine constructor takes Options struct rather than spelling arguments (easier to extend/use)
canBePlacedWithRespectToHeight()
->willItFit()
like grid method
- fix 1330
maxW
does not work as intended with resizable handle"w"
- fix 1472 support all options for new dragged in widgets (read all
gs-xyz
attributes) - fix 1511 dragging any grid item content works
- fix 1438 web-component fixes & grid with 0 size initially.
- add new
addGrid(parent, opts)
to create a grid and load children instead ofinit() + load()
, which is used byload()
to supports nested grids creation. see nested.html demo. save()
will now work on nested grids, recursively saving info. added flag to also allow saving the current grid options + children (needed for nested grids) so you can now call newadddGrid()
to re-create everything from JSON.- fix 1505 don't call
movable()
/resizable()
on locked items error. thanks @infime - fix 1517 force typescript 3.6 as 3.7 has breaking change
- the big news is we finally have a native HTML5 drag&drop plugin (zero jquery)! Huge thanks to @rhlin for creating this in stealth mode. Read all about it in main doc.
- we now have a React example, in addition to Vue - Angular is next!. thanks @eloparco
- fix placeholder not having custom
GridStackOptions.itemClass
. thanks @pablosichert - fix 1484 dragging between 2 grids and back (regression in 2.0.1)
- fix 1471
load()
into 1 column mode doesn't resize back to 12 correctly - fix 1235
update(el, opts)
re-write to take allGridStackWidget
options (not just x,y,width,height) and do everything efficiently. Hidinglocked()
,move()
,resize()
,minWidth()
, etc... as they just simply call update() which does all the constrain now as well! - del
ddPlugin
grid option as we only have one drag&drop plugin at runtime, which is defined by the include you use (HTML5 vs jquery vs none) - change attribute
data-gs-min-width
is nowgs-min-w
. We removed 'data-' from all attributes, and shorten 'width|height' to just 'w|h' to require less typing and more efficient (2k saved in .js alone!) 1491 1492 - also
GridStackWidget
used in most APIwidth|height|minWidth|minHeight|maxWidth|maxHeight
are now shorterw|h|minW|minH|maxW|maxH
as well 1493 - **** see migrating to v3 ****
- add
margin
option now support multi values CSS format'5px 10px 0 20px'
or'5em 10em'
- add
data-gs-static-grid
attribute - fix 1435
class="ui-draggable-disabled ui-resizable-disabled"
have been added back to static grid items, so existing CSS rule to style continue working - fix 1439 getting DOM element by id with number works (api that uses
GridStackElement
handle more string formats) - fix 1442 setting
marginTop
(or any 4 sides) to cause resize to break. Thanks @deadivan for suggested fix.
- fix grid
static: true
to no longer add any drag&drop (even disabled) which should speed things up, andsetStatic(T/F)
will now correctly add it back/delete for items that need it only. Also fixed JQ draggable warning if not initialized first 858 - add
addWidget(opt)
now handles just passing aGridStackWidget
which creates the default divs, simplifying your code. Old API still supported. - add
save(saveContent = true)
now lets you optionally save the HTML content in the node property, with load() restoring it 1418 - add
GridStackWidget.content
now lets you add any HTML content when callingload()/save()
oraddWidget()
1418 - add
ColumnOptions
tocolumn(n, options)
for multiple re-layout options, including 'none' that will preserve the x and width, until out of bound/overlap 1338 including a custom function for you to create the new layout 1332
- fix
animate
to not re-create CSS style each time (should be faster too) and made it default now since so much nicer. pass{animate: false}
grid options if you want instant again 937 - fix
resizable: { handles: ...}
forcingalwaysShowResizeHandle
behavior 1373
- fix
minWidth()
,minHeight()
,maxHeight()
to set node value as well 1359 - fix
GridStackOptions
spelling 1359 - fix remove window resize event when
grid.destroy()
1369 - fix nested grid resize 1361
- fix resize with
cellHeight
'6rem' '6em' not working 1356 - fix preserve attributes (min/max/id/etc...) when dragging between grids 1367
- fix 2 drop shadows when dragging between grids 393
- re-write to native Typescript, removing all JQuery from main code and API (drag&drop plugin still using jqueryui for now)
- add
getGridItems()
to return list of HTML grid items - add
{dragIn | dragInOptions}
grid attributes to handle external drag&drop items - add
save()
andload()
to serialize grids from JSON, saving all attributes (not just w,h,x,y) 1286 - add
margin
to replaceverticalMargin
which affects both dimensions in code, rather than one in code the other in CSS. You can now have perfect square cells (default) 723 - fix 1299 many columns round-off error
- fix 1102 loose functionality when they are moved to a new grid
- add optional params to
removeWidget()
to have quiet mode (no callbacks) - drop support for IE11 due to more compact ES6 output and newer TS code
- fix 1341 Enable the UMD behavior for bundlers compatibility
- fix 1311 domAttr is not defined
- adds
styleInHead
option to allow for selecting older behavior (adding STYLE element to HEAD element instead of parentNode) - update jquery to v3.5.1
- fix 1229
staticGrid
no longer disable oneColumnMode - fix 1195 options broken with ember hash helper - thanks @btecu
- fix 1250 don't remove item from another grid
- fix 1261
init()
clones passed options so second doesn't affect first one - fix 1276
addWidget()
ignores data attributes
- fix 1187 IE support for
CustomEvent
polyfill - thanks @phil-blais - fix 1204 destroy drag&drop when removing node(s) instead of just disabling it.
- fix 1181 Locked widgets are still moveable by other widgets.
- fix 1217 If I set cellHeight to some vh, only first grid will take vh, rest will use px
- include SASS source files to npm package again 1193
- add
minRow
androw
grid options (which set minRow=maxRow=N) 1172 - thanks @RadoiAndrei - fix 1166 resize not taking margin height into account - thanks @awjae
- fix 1155
maxRow
now limit initial item placement if out of bound, preventing broken drag behavior - fix 1171 added event support to call
grid.on('added removed change', callback)
again even with native events.
- breaking: (1084) jquery was removed from the API and dependencies (initialize differently, and methods take/return
GridStack
orHTMLElement
instead ofJQuery
), so your code will need to change. See Migrating to v1.0.0 setColumn(N)
is nowcolumn(N)
(matches other set/get methods) andgetColumn()
to get current column number- add
grid.on(eventName, callback)
/grid.off(eventName)
to hide native JQ events mix - add
grid.getRow()
to get the current grid row number
- fix #540 WebComponent support: CSS file now insert before grid instead of 'head'
- fix #1143 nested grids with different
acceptWidgets
class - fix #1142 add/remove widget will also trigger change events when it should.
- optimized
change
callback to save original x,y,w,h values and only call those that changed 1148 - delete
bower
since dead for a while now
- fix #1132 oneColumnMode missing CSS to do layout
- del
oneColumnModeClass
/.grid-stack-one-column-mode
and associated code. If you depended on this, use class.grid-stack-1
instead since it is 1 column layout anyway 1134
- add
oneColumnModeDomSort
true|false to let you specify a custom layout (use dom order instead of x,y) for oneColumnModecolumn(1)
#713 - fix oneColumnMode to only restore if we auto went to it as window sizes up #1125
- editing in 1 column (or few columns) does a better job updating higher layout (track before and after and move items accordingly). Tracking item swap would be even better still. #1127
- fix #37 oneColumnMode (<768px by default) now simply calls
column(1)
and remembers prev columns (so we can restore). This gives us full resize/re-order of items capabilities rather than a locked CSS only layout (see prev rev changes). #1120 - fix responsive.html demo #1121
- add
float(val)
to set/get the grid float mode, which will relayout #1088 - add
compact()
to reclaim any empty space and relayout grid items #1101 - add
options.dragOut
to let user drag nested grid items out of a parent or not (default false) and jQuery UIdraggable.containment
can now be specified in options. You can now drag&drop between 2 nested grids #1105 - add
%
as a valid unit for height #1093. thank you @trevisanweb @aureality @ZoolWay - fix callbacks to get either
added, removed, change
or combination if adding a node require also to change its (x,y) for example. Also you can now callbatchUpdate()
before calling a bunch ofaddWidget()
and get a single event callback (more efficient). #1096 removeAll()
is now much faster (no relayout) and callsremoved
event just once with a list #1097column()
complete re-write and is no longer "Experimental". We now do a reasonable job at sizing/position the widgets (especially 1 column) and also now cache each column layout so you can go back to say 12 column and not loose original layout. #1098- fix
addWidget(el)
(no data) would not render item at correct location, and overlap item at (0,0) #1098 - you can now pre-define size of dragable elements from a sidebar using standard
data-gs-width
anddata-gs-height
- fix #413, #914, #918, #922, #933 thanks @ermcgrat and others for pointing out code issue.
- min files include rev number/license #1075
- npm package fix to exclude more temporary content #1078
- removed
jquery-ui/*
requirements from AMD packing ingridstack.jQueryUI.js
as it was causing App compile missing errors now that we include a subset of jquery-ui
- fix for griditems with x=0 placement wrong order (regression by #1017) (#1054).
- fix
cellHeight(val)
not working due to style change (regression by #937) (#1068). - add
gridstack-poly.js
for IE and older browsers, removedcore-js
lib from samples (<1k vs 85k), and all IE8 mentions (#1061). - add
jquery-ui.js
(and min.js) as minimal subset we need (55k vs 248k), which is now part ofgridstack-h5.js
. Include individual parts if you need your own lib instead of all.js (#1064). - changed jquery dependency to lowest we can use (>=1.8) (#629).
- add advance demo from web site (#1073).
- grid options
width
is nowcolumn
,height
nowmaxRow
, andsetGridWidth()
nowcolumn()
to match what they are. Old names are still supported (console warnings). Various fixes for custom # of column and re-wrote entire doc section (#1053). - fix widgets not animating when
animate: true
is used. on every move, styles were recreated-fix should slightly improve gridstack.js speed (#937). - fix moving widgets when having multiple grids. jquery-ui workaround (#1043).
- switch to eslint (#763) thanks @rwstoneback.
- fix null values
addWidget()
options (#1042).
- fix undefined
x,y
position messes up grid (#1017). - changed code to 2 spaces.
- fix minHeight during
onStartMoving()
(#999). - add
gridstack.d.ts
TypeScript definition file now included - no need to include@types/gridstack
, easier to update (#1036). - add
addWidget(el, options)
to pass object so you don't have to spell 10 params. (#907).
- reduced npm package size from 672k to 324k (drop demo, src and extra files)
- emit
dropped
event when a widget is dropped from one grid into another (#823). - don't throw error if no bounding scroll element is found (#891).
- don't push locked widgets even if they are at the top of the grid (#882).
- RequireJS and CommonJS now export on the
exports
module fix (#643). - automatically scroll page when widget is moving beyond viewport (#827).
- removed lodash dependencies (#693).
- don't overwrite globals jQuery when in a modular environment (#974).
- removed z-index from
.grid-stack-item-content
causing child modal dialog clipping (#984). - convert project to use yarn (#983).
- widgets can have their own resize handles. Use
data-gs-resize-handles
element attribute to use. For example,data-gs-resize-handles="e,w"
will make the particular widget only resize west and east. (#494). - enable sidebar items to be duplicated properly. Pass
helper: 'clone'
indraggable
options. (#661, #396, #499). - fix
staticGrid
grid option (#743) - preserve inline styles when moving/cloning items (thanks @silverwind)
- fix bug causing heights not to get set (#744)
- allow grid to have min-height, fixes (#628) thanks @adumesny
- widget x and y are now ints (thanks @DonnchaC)
- allow all droppable options (thanks @vigor-vlad)
- properly track mouse position in
getCellFromPixel
(thanks @aletorrado) - remove instance of
!important
(thanks @krilllind) - scroll when moving widget up or down out of viewport (#827)
- remove placeholder when dragging widget below grid (already worked when dragging left, above, and to the right of grid).
- prevent extra checks for removing widget when dragging off grid.
- trigger
added
when a widget is added via dropping from one grid to another. - trigger
removed
when a widget is removed via dropping from one grid to another. - trigger
removed
when a widget is removed via dropping on a removable zone (#607 and #550). - trigger custom event for
resizestop
calledgsresizestop
(#577 and #398). - prevent dragging/resizing in
oneColumnMode
(#593). - add
oneColumnModeClass
option to grid. - remove 768px CSS styles, moved to grid-stack-one-column-mode class.
- add max-width override on grid-stck-one-column-mode (#462).
- add internal function
isNodeChangedPosition
, minor optimization to move/drag. - drag'n'drop plugin system. Move jQuery UI dependencies to separate plugin file.
- update requirements to the latest versions of jQuery (v3.1.0+) and jquery-ui (v1.12.0+).
- fix jQuery
size()
(#486). - update
destroy([removeDOM])
call (#422). - don't mutate options when calling
draggable
andresizable
. (#505). - update _notify to allow detach (#411).
- fix code that checks for jquery-ui (#481).
- fix
cellWidth
calculation on empty grid
- update names to respect js naming convention.
cellHeight
andmargin
can now be string (e.g. '3em', '20px') (Thanks to @jlowcs).- add
maxWidth
/maxHeight
methods. - add
enableMove
/enableResize
methods. - fix window resize issue #331).
- add options
disableDrag
anddisableResize
. - fix
batchUpdate
/commit
(Thank to @radiolips) - remove dependency of FontAwesome
- RTL support
'auto'
value forcellHeight
option- fix
setStatic
method - add
setAnimation
method to API - add
column
method (#227) - add
removable
/removeTimeout
(experimental) - add
removeDOM
parameter todestroy
method (#216) (thanks @jhpedemonte) - add
useOffset
parameter togetCellFromPixel
method (#237) - add
minWidth
,maxWidth
,minHeight
,maxHeight
,id
parameters toaddWidget
(#188) - add
added
andremoved
events for when a widget is added or removed, respectively. (#54) - add
acceptWidgets
parameter. Widgets can now be draggable between grids or from outside (experimental)
- fix closure compiler/linter warnings
- add
staticGrid
option. - add
minWidth
/minHeight
methods (Thanks to @cvillemure) - add
destroy
method (Thanks to @zspitzer) - add
placeholderText
option (Thanks to @slauyama) - add
handleClass
option. - add
makeWidget
method. - lodash v 4.x support (Thanks to @andrewr88)
- gridstack-extra.css
- add support of lodash.js
- add
isAreaEmpty
method - nested grids
- add
batchUpdate
/commit
methods - add
update
method - allow to override
resizable
/draggable
options - add
disable
/enable
methods - add
getCellFromPixel
(thanks to @juchi) - AMD support
- fix nodes sorting
- improved touch devices support
- add
alwaysShowResizeHandle
option - minor fixes and improvements
- fix grid initialization
- add
cellHeight
/cellWidth
API methods - fix boolean attributes (#31)
- add widgets locking (#19)
- add
willItFit
API method - fix auto-positioning (#20)
- add animation (thanks to @ishields)
- fix
y
coordinate calculation when dragging (#18) - fix
removeWidget
(#16) - minor fixes
- add
height
option - auto-generate css rules (widgets
height
andtop
) - add
GridStack.Utils.sort
utility function - add
removeAll
API method - add
resize
andmove
API methods - add
resizable
andmovable
API methods - add
data-gs-no-move
attribute - add
float
option - fix default css rule for inner content
- minor fixes
Very first version.