{"version":3,"names":["Expose","__SystemJSRewritingHack","_export","setters","_reactiveJsx","_addSourceLocation","addSourceLocation","_srcClientHtmlJs","html","default","_srcClientGraphicsJs","pt","rect","execute","_recorder_","_src_client_expose_js","Object","defineProperty","get","set","thisIsVererySecretVariableName","enumerable","configurable","_stylesToSave","toggle","isOpen","close","open","current","lively","registerKeys","document","body","globalFocus","windows","querySelectorAll","sort","w1","w2","parseInt","style","length","dimWindow","topLeft","forEach","w","i","row","Math","floor","windowsPerRows","column","saveWindowStyles","transition","cursor","classList","add","exposeScale","elementLength","border","ext","getExtent","realScale","min","max","x","y","tempScale","setScaleTransform","pos","addPt","delta","getClientPosition","setPosition","subPt","addEventListener","onWindowMouseMove","onWindowClick","setSelectedWindow","second","scale","win","transformOrigin","transform","removeEventListener","Array","from","remove","restoreWindowStyles","tempScaledExtent","undimWindow","window","dataset","toLowerCase","selectNext","idx","indexOf","selectedWin","selectPrev","selectUp","col","selectDown","setTimeout","overlay","createElement","file","end","line","start","id","position","top","left","bottom","right","width","height","background","opacity","appendChild","querySelector","windowRemoveHighlight","windowHighlight","evt","preventDefault","stopPropagation","gotoWindow","onKeyDown","key","String","fromCharCode","keyCode","metaKey","ctrlKey","onLeftDown","onUpDown","onRightDown","onDownDown","onEnterDown","call","onEscDown","postLoad","console","log"],"sources":["expose.js"],"sourcesContent":["\nimport html from \"src/client/html.js\"\nimport {pt,rect} from \"src/client/graphics.js\"\n\n// import lively from './lively.js'\n\nexport default class Expose {\n\n  static get _stylesToSave() {\n    return [\n      // capitalized for dataset\n      'Position',\n      'Left',\n      'Top',\n      'Bottom',\n      'Right',\n      'Width',\n      'Height',\n      'Cursor',\n      'Transform',\n      'Border'\n    ];\n  }\n\n  static toggle() {\n    if (Expose.isOpen) {\n      this.close()\n    } else {\n      this.open();\n    }\n  }\n\n  static open() {\n   \n    if (!Expose.current) return\n    \n    lively.html.registerKeys(document.body, \"expose\", Expose.current, true)\n    lively.globalFocus()\n\n    if (Expose.isOpen) {\n      return;\n    }\n\n    Expose.isOpen = true;\n\n    // Sort windows according to their z-index, because the order\n    // of z-index corresponds to the order of the windows last access.\n    let windows = [...document.querySelectorAll('body > lively-window')].sort((w1, w2) => {\n      return parseInt(w2.style[\"z-index\"]) - parseInt(w1.style[\"z-index\"]);\n    });\n\n    Expose.windows = windows;\n\n    if (windows.length < 2) {\n      // 0: no windows to display\n      // 1: no expose on a single window\n      Expose.isOpen = false;\n      return;\n    }\n\n    Expose.dimWindow();\n\n    let topLeft = pt(100,100)\n    windows.forEach((w, i) => {\n      let row = Math.floor(i / (Expose.windowsPerRows));\n      let column = i % Expose.windowsPerRows;\n\n      Expose.saveWindowStyles(w);\n\n      w.style.transition = 'all 100ms';\n      w.style.cursor = 'pointer';\n      w.classList.add(\"expose\")\n  \n      this.exposeScale = 0.5\n      this.elementLength = 300 \n      w.style.border = \"\"\n    \n      var ext = lively.getExtent(w)\n      \n      const realScale = Math.min(1, this.elementLength / Math.max(ext.x, ext.y))\n      w.tempScale = realScale\n\n      // scale with origin topleft\n      this.setScaleTransform(realScale, w, ext)\n      var pos = topLeft.addPt(pt(column * (this.elementLength + 20), row * (this.elementLength + 20)))\n      \n      var delta = lively.getClientPosition(document.body)\n      lively.setPosition(w, pos.subPt(delta))\n      \n    w.addEventListener('mousemove', Expose.onWindowMouseMove);\n    w.addEventListener('click', Expose.onWindowClick);\n    })\n\n    Expose.setSelectedWindow(windows.second);\n  }\n\n  static setScaleTransform(scale, win, ext) {\n    win.style.transformOrigin = \"top left\";\n    win.style.transform = `scale(${scale})`\n  }\n\n  static close() {\n\n    lively.removeEventListener(\"expose\", document.body)\n\n    if (!Expose.isOpen) {\n      return;\n    }\n\n    Expose.isOpen = false;\n\n    let windows = Array.from(document.querySelectorAll('body > lively-window'));\n    windows.forEach((win) => {\n      win.classList.remove(\"expose\")\n      Expose.restoreWindowStyles(win);\n\n      win.removeEventListener('mousemove', Expose.onWindowMouseMove);\n      win.removeEventListener('click', Expose.onWindowClick);\n      \n      delete win.tempScaledExtent\n      delete win.tempScale\n    });\n\n    Expose.undimWindow();\n  }\n\n  static saveWindowStyles(window) {\n    Expose._stylesToSave.forEach((style) => {\n      window.dataset[`livelyExposePrev${style}`] = window.style[style.toLowerCase()];\n    });\n    window.dataset['livelyExposePrevTransition'] = window.style.transition;\n  }\n\n  static selectNext() {\n    let idx = Expose.windows.indexOf(Expose.selectedWin);\n    Expose.setSelectedWindow(Expose.windows[idx+1] || Expose.windows[0]);\n  }\n\n  static selectPrev() {\n    let idx = Expose.windows.indexOf(Expose.selectedWin);\n    Expose.setSelectedWindow(Expose.windows[idx-1] || Expose.windows[Expose.windows.length-1]);\n  }\n\n  static selectUp() {\n    let idx = Expose.windows.indexOf(Expose.selectedWin);\n    let row = Math.floor(idx / Expose.windowsPerRows);\n    let col = idx % Expose.windowsPerRows;\n    Expose.setSelectedWindow(Expose.windows[(row-1)*Expose.windowsPerRows + col] || Expose.windows[Expose.windows.length-1]);\n  }\n\n  static selectDown() {\n    let idx = Expose.windows.indexOf(Expose.selectedWin);\n    let row = Math.floor(idx / Expose.windowsPerRows);\n    let col = idx % Expose.windowsPerRows;\n    Expose.setSelectedWindow(Expose.windows[(row+1)*Expose.windowsPerRows + col] || Expose.windows[0]);\n  }\n\n  static restoreWindowStyles(w) {\n    Expose._stylesToSave.forEach((style) => {\n      w.style[style.toLowerCase()] = w.dataset[`livelyExposePrev${style}`];\n    });\n\n    // restore transition later for animation\n    setTimeout(function() {\n      w.style.transition = w.dataset['livelyExposePrevTransition'];\n    }, 100);\n  }\n\n  static dimWindow() {\n    let overlay = document.createElement('div');\n    overlay.id = 'lively-expose-overlay';\n    overlay.style.position = 'fixed';\n    overlay.style.top = 0;\n    overlay.style.left = 0;\n    overlay.style.bottom = 0;\n    overlay.style.right = 0;\n    overlay.style.width = '100%';\n    overlay.style.height = '100%';\n    overlay.style.background = 'rgba(0, 0, 0, 0.7)';\n    overlay.style.opacity = 0;\n    overlay.style.transition = 'opacity 100ms';\n    overlay.style['z-index'] = 99;\n\n    document.body.appendChild(overlay);\n    overlay.style.opacity = 1;\n  }\n\n  static undimWindow() {\n    let overlay = document.querySelector('#lively-expose-overlay');\n    if (overlay) {\n      overlay.style.opacity = 0;\n      setTimeout(() => {\n        overlay.remove()\n      }, 100);\n    }\n  }\n\n  static setSelectedWindow(w) {\n    if (w === Expose.selectedWin) {\n      return;\n    }\n    Expose.windowRemoveHighlight(Expose.selectedWin);\n    Expose.windowHighlight(w);\n    Expose.selectedWin = w;\n  }\n\n  static onWindowMouseMove(evt) {\n    Expose.setSelectedWindow(this);\n  }\n\n  static onWindowClick(evt) {\n    evt.preventDefault()\n    evt.stopPropagation()\n    let win = this;\n    setTimeout(() => lively.gotoWindow(win, false), 1000);\n    Expose.close();\n  }\n  \n  /* Highlights */\n  static windowHighlight(w) {\n    this.setScaleTransform(w.tempScale + 0.05, w, w.tempScaledExtent)\n    w.style.border = \"3px solid orange\"\n    w.style.transform = w.style.transform  + \" translate(-20px,-20px)\" ;\n  }\n\n  static windowRemoveHighlight(w) {\n    if (!w) return;\n    w.style.border =\"\"\n    this.setScaleTransform(w.tempScale, w, w.tempScaledExtent)\n  }\n\n\n  // Single Global Event\n  static onKeyDown(evt) {\n    var key = String.fromCharCode(evt.keyCode)\n    // #TODO Consider replacing or disable for editor, \n    // since Ctrl-E is \"jump to end of line\" in every other editor\n    // #KeyboardShortcut Ctrl-E toggle expose\n    if ((key === \"E\" && (evt.metaKey || evt.ctrlKey)) \n        /* || (key === \"Q\" && evt.altKey) */) {\n      Expose.toggle();\n      evt.preventDefault()\n      evt.stopPropagation();\n    }\n  }\n\n  onLeftDown(evt) {\n    \n    \n    Expose.selectPrev();\n  }\n  \n  onUpDown(evt) {\n    Expose.selectUp();\n  }\n  \n  onRightDown(evt) {\n    Expose.selectNext();\n  }\n\n  onDownDown(evt) {\n    Expose.selectDown();\n  }\n  \n  onEnterDown(evt) {\n    Expose.onWindowClick.call(Expose.selectedWin, evt);\n  }\n\n  onEscDown(evt) {\n    Expose.close();\n  }\n\n\n  static postLoad() {\n    if (window.lively && lively.removeEventListener) {\n      console.log(\"Post load expose\")\n      // basic class configuration\n      Expose.isOpen = false;\n      Expose.windowsPerRows = 4;\n      lively.removeEventListener(\"ToggleExpose\", document)\n      lively.addEventListener(\"ToggleExpose\",document, \"keydown\", evt => {\n        Expose.onKeyDown(evt)\n      })\n      Expose.current = new Expose()\n    } else {\n      console.log(\"defere Post load expose\")\n      window.setTimeout(this.postLoad, 100)\n    }\n  }\n}\n\nExpose.postLoad()\n"],"mappings":"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"}