@@ -72,7 +72,7 @@ export class GridStack {
7272 return null ;
7373 }
7474 if ( ! el . gridstack ) {
75- el . gridstack = new GridStack ( el , options ) ;
75+ el . gridstack = new GridStack ( el , Utils . clone ( options ) ) ;
7676 }
7777 return el . gridstack
7878 }
@@ -152,14 +152,11 @@ export class GridStack {
152152 obsoleteAttr ( this . el , 'data-gs-height' , 'data-gs-max-row' , 'v0.5.3' ) ;
153153 obsoleteAttr ( this . el , 'data-gs-current-height' , 'data-gs-current-row' , 'v1.0.0' ) ;
154154
155- opts . itemClass = opts . itemClass || 'grid-stack-item' ;
156-
157155 // if row property exists, replace minRow and maxRow instead
158156 if ( opts . row ) {
159157 opts . minRow = opts . maxRow = opts . row ;
160158 delete opts . row ;
161159 }
162-
163160 let rowAttr = Utils . toNumber ( el . getAttribute ( 'data-gs-row' ) ) ;
164161
165162 // elements attributes override any passed options (like CSS style) - merge the two together
@@ -180,29 +177,28 @@ export class GridStack {
180177 staticGrid : false ,
181178 _class : 'grid-stack-instance-' + ( Math . random ( ) * 10000 ) . toFixed ( 0 ) ,
182179 animate : Utils . toBool ( el . getAttribute ( 'data-gs-animate' ) ) || false ,
183- alwaysShowResizeHandle : opts . alwaysShowResizeHandle || false ,
184- resizable : Utils . defaults ( opts . resizable || { } , {
180+ alwaysShowResizeHandle : false ,
181+ resizable : {
185182 autoHide : ! ( opts . alwaysShowResizeHandle || false ) ,
186183 handles : 'se'
187- } ) ,
188- draggable : Utils . defaults ( opts . draggable || { } , {
189- handle : ( opts . handleClass ? '.' + opts . handleClass : ( opts . handle ? opts . handle : '' ) ) ||
190- '.grid-stack-item-content' ,
184+ } ,
185+ draggable : {
186+ handle : ( opts . handleClass ? '.' + opts . handleClass : ( opts . handle ? opts . handle : '' ) ) || '.grid-stack-item-content' ,
191187 scroll : false ,
192188 appendTo : 'body'
193- } ) ,
194- disableDrag : opts . disableDrag || false ,
195- disableResize : opts . disableResize || false ,
189+ } ,
190+ disableDrag : false ,
191+ disableResize : false ,
196192 rtl : 'auto' ,
197193 removable : false ,
198- removableOptions : Utils . defaults ( opts . removableOptions || { } , {
194+ removableOptions : {
199195 accept : '.' + opts . itemClass
200- } ) ,
196+ } ,
201197 removeTimeout : 2000 ,
202198 verticalMarginUnit : 'px' ,
203199 cellHeightUnit : 'px' ,
204- disableOneColumnMode : opts . disableOneColumnMode || false ,
205- oneColumnModeDomSort : opts . oneColumnModeDomSort
200+ disableOneColumnMode : false ,
201+ oneColumnModeDomSort : false
206202 } ;
207203
208204 this . opts = Utils . defaults ( opts , defaults ) ;
@@ -460,7 +456,7 @@ export class GridStack {
460456 /** returns an array of grid HTML elements (no placeholder) - used internally to iterate through our children */
461457 public getGridItems ( ) : GridItemHTMLElement [ ] {
462458 return Array . from ( this . el . children )
463- . filter ( el => el . matches ( '.' + this . opts . itemClass ) && ! el . matches ( '.' + this . opts . placeholderClass ) ) as GridItemHTMLElement [ ] ;
459+ . filter ( ( el : HTMLElement ) => el . matches ( '.' + this . opts . itemClass ) && ! el . matches ( '.' + this . opts . placeholderClass ) ) as GridItemHTMLElement [ ] ;
464460 }
465461
466462 /**
@@ -781,9 +777,9 @@ export class GridStack {
781777 let noData = ( name === 'enable' || name === 'disable' ) ;
782778 this . _gsEventHandler = this . _gsEventHandler || { } ;
783779 if ( noData ) {
784- this . _gsEventHandler [ name ] = ( event ) => callback ( event ) ;
780+ this . _gsEventHandler [ name ] = ( event : Event ) => callback ( event ) ;
785781 } else {
786- this . _gsEventHandler [ name ] = ( event ) => callback ( event , event . detail ) ;
782+ this . _gsEventHandler [ name ] = ( event : CustomEvent ) => callback ( event , event . detail ) ;
787783 }
788784 this . el . addEventListener ( name , this . _gsEventHandler [ name ] ) ;
789785 } else if ( name === 'dragstart' || name === 'dragstop' || name === 'resizestart' || name === 'resizestop' || name === 'dropped' ) {
@@ -1071,11 +1067,11 @@ export class GridStack {
10711067 let margin = this . opts . verticalMargin as number ;
10721068
10731069 if ( ! this . opts . verticalMargin || this . opts . cellHeightUnit === this . opts . verticalMarginUnit ) {
1074- getHeight = ( nbRows , nbMargins ) => {
1070+ getHeight = ( nbRows : number , nbMargins : number ) => {
10751071 return ( height * nbRows + margin * nbMargins ) + this . opts . cellHeightUnit ;
10761072 }
10771073 } else {
1078- getHeight = ( nbRows , nbMargins ) => {
1074+ getHeight = ( nbRows : number , nbMargins : number ) => {
10791075 if ( ! nbRows || ! nbMargins ) {
10801076 return ( height * nbRows + margin * nbMargins ) + this . opts . cellHeightUnit ;
10811077 }
@@ -1173,8 +1169,8 @@ export class GridStack {
11731169 /** @internal prepares the element for drag&drop **/
11741170 private _prepareElementsByNode ( el : GridItemHTMLElement , node : GridStackNode ) : GridStack {
11751171 // variables used/cashed between the 3 start/move/end methods, in addition to node passed above
1176- let cellWidth ;
1177- let cellFullHeight ; // internal cellHeight + v-margin
1172+ let cellWidth : number ;
1173+ let cellFullHeight : number ; // internal cellHeight + v-margin
11781174
11791175 /** called when item starts moving/resizing */
11801176 let onStartMoving = ( event , ui ) => {
@@ -1220,7 +1216,7 @@ export class GridStack {
12201216 }
12211217
12221218 /** called when item is being dragged/resized */
1223- let dragOrResize = ( event , ui ) => {
1219+ let dragOrResize = ( event : Event , ui ) => {
12241220 let x = Math . round ( ui . position . left / cellWidth ) ;
12251221 let y = Math . floor ( ( ui . position . top + cellFullHeight / 2 ) / cellFullHeight ) ;
12261222 let width ;
@@ -1281,8 +1277,8 @@ export class GridStack {
12811277 }
12821278
12831279 /** called when the item stops moving/resizing */
1284- let onEndMoving = ( event ) => {
1285- let { target } = event ;
1280+ let onEndMoving = ( event : Event ) => {
1281+ let target : GridItemHTMLElement = event . target as GridItemHTMLElement ;
12861282 if ( ! target . gridstackNode ) return ;
12871283
12881284 // let forceNotify = false; what is the point of calling 'change' event with no data, when the 'removed' event is already called ?
@@ -1323,7 +1319,7 @@ export class GridStack {
13231319
13241320 // if we re-sized a nested grid item, let the children resize as well
13251321 if ( event . type === 'resizestop' ) {
1326- target . querySelectorAll ( '.grid-stack' ) . forEach ( el => el . gridstack . _onResizeHandler ( ) ) ;
1322+ target . querySelectorAll ( '.grid-stack' ) . forEach ( ( el : GridHTMLElement ) => el . gridstack . _onResizeHandler ( ) ) ;
13271323 }
13281324 }
13291325
0 commit comments