So not sure if you've found the answer to this yet, but I just got it sorted out today. Hopefully some other people can reference this if they want to get these popups moving.
It's mashing the information in this link: Esri JS API Draggable Popups - JSFiddle with the wacky web app builder file structure.
Started with going to this css file: [app instal]\server\apps\[app#]\themes\LaunchpadTheme\common.css
and making it look like this:
@import url("panels/LaunchpadPanel/style.css");
.esriPopupWrapper .title {
cursor: move;
}
.esriPopup .hidden {
display: none !important;
}
This makes the pointer turn into the move cursor so your user knows they can move it around.
Then I headed to [app instal]\server\apps\[app#]\jimu.js\utils.js and added the following to their respective locations:
define(['dojo/dnd/Moveable', 'dojo/dom-class'],
function(Moveable, domClass)
Then down around line 1089 (or do a find and look for createWebMap) I added some lines to mo.createWebMap:
mo.createWebMap = function(portalUrl, itemId, mapDiv, /* optional */ options) {
portalUrl = portalUrlUtils.getStandardPortalUrl(portalUrl);
var itemUrl = portalUrlUtils.getBaseItemUrl(portalUrl);
arcgisUtils.arcgisUrl = itemUrl;
var def = arcgisUtils.createMap(itemId, mapDiv, options);
def.then(function (response){
var map = response.map;
var handle = query(".title", map.infoWindow.domNode)[0];
var dnd = new Moveable(map.infoWindow.domNode, {
handle: handle
});
});
return def;
};
Let me know if you have any questions, I'll try to answer them.