@@ -83,14 +83,26 @@ export class GridsStateImpl implements GridsState {
83
83
} )
84
84
}
85
85
86
+ setResizing ( resizing : boolean , element : HTMLElement ) {
87
+ if ( resizing ) {
88
+ element . parentElement ?. classList . add ( styles . resizing )
89
+ } else {
90
+ element . parentElement ?. classList . remove ( styles . resizing )
91
+ }
92
+ }
93
+
86
94
createGridstack ( e : Element ) : GridStack {
87
95
//const gridId = gridIdforTab(tabId)
88
96
const grid = GridStack . init (
89
97
{
90
98
removable : "#" + TRASH_DROP ,
91
99
acceptWidgets : true ,
92
100
margin : '1' ,
93
- cellHeight : '70px'
101
+ cellHeight : '70px' ,
102
+ resizable : {
103
+ handles : 'e, se, s, sw, w'
104
+
105
+ }
94
106
} ,
95
107
e as GridStackElement
96
108
)
@@ -106,11 +118,11 @@ export class GridsStateImpl implements GridsState {
106
118
}
107
119
}
108
120
109
- element . classList . remove ( styles . resizing )
121
+ this . setResizing ( false , element )
110
122
} )
111
123
112
124
grid . on ( "resizestart" , ( _event , element ) => {
113
- element . classList . add ( styles . resizing )
125
+ this . setResizing ( true , element )
114
126
} )
115
127
116
128
grid . on ( "removed" , ( event , items ) => {
@@ -140,6 +152,12 @@ export class GridsStateImpl implements GridsState {
140
152
this . cs . updatePanel ( panel )
141
153
}
142
154
}
155
+
156
+ this . setResizing ( false , element )
157
+ } )
158
+
159
+ grid . on ( "dragstart" , ( _event , element ) => {
160
+ this . setResizing ( true , element )
143
161
} )
144
162
145
163
return grid
@@ -173,6 +191,11 @@ export class GridsStateImpl implements GridsState {
173
191
}
174
192
175
193
createWidget ( grid : GridStack , p : AppPanel , content : boolean ) : GridItemHTMLElement {
194
+ // check the panel size
195
+ if ( p . x == - 1 || p . y == - 1 ) {
196
+ this . findEmptyArea ( p , grid )
197
+ }
198
+
176
199
// add to the grid
177
200
const opts : GridStackWidget = {
178
201
h : p . h ,
@@ -198,7 +221,6 @@ export class GridsStateImpl implements GridsState {
198
221
const root = createRoot ( div )
199
222
const content = this . render ( p , contentIdforTab ( p . panelId ) )
200
223
root . render ( content )
201
- //ReactDOM.render(content, div)
202
224
}
203
225
204
226
findChild ( e : DocumentFragment | HTMLElement | Element , id : string ) : HTMLElement | null {
0 commit comments