* Enable/disable/configure dragging for grid elements. * * @param el - Grid item element(s) to configure * @param opts - Drag options or command ('enable', 'disable', 'destroy', 'option', or config object) * @param key - Option key when using 'option' command * @param value - Opt
(el: GridItemHTMLElement, opts: DDOpts, key?: DDKey, value?: DDValue)
| 120 | * dd.draggable(element, {handle: '.drag-handle'}); // Configure drag handle |
| 121 | */ |
| 122 | public draggable(el: GridItemHTMLElement, opts: DDOpts, key?: DDKey, value?: DDValue): DDGridStack { |
| 123 | this._getDDElements(el, opts).forEach(dEl => { |
| 124 | if (opts === 'disable' || opts === 'enable') { |
| 125 | dEl.ddDraggable && dEl.ddDraggable[opts](); // can't create DD as it requires options for setupDraggable() |
| 126 | } else if (opts === 'destroy') { |
| 127 | dEl.ddDraggable && dEl.cleanDraggable(); |
| 128 | } else if (opts === 'option') { |
| 129 | dEl.setupDraggable({ [key]: value }); |
| 130 | } else { |
| 131 | const grid = dEl.el.gridstackNode.grid; |
| 132 | dEl.setupDraggable({ |
| 133 | ...grid.opts.draggable, |
| 134 | ...{ |
| 135 | // containment: (grid.parentGridNode && grid.opts.dragOut === false) ? grid.el.parentElement : (grid.opts.draggable.containment || null), |
| 136 | start: opts.start, |
| 137 | stop: opts.stop, |
| 138 | drag: opts.drag, |
| 139 | rtl: opts.rtl, |
| 140 | } |
| 141 | }); |
| 142 | } |
| 143 | }); |
| 144 | return this; |
| 145 | } |
| 146 | |
| 147 | public dragIn(el: GridStackElement, opts: DDDragOpt): DDGridStack { |
| 148 | this._getDDElements(el).forEach(dEl => dEl.setupDraggable(opts)); |
no test coverage detected