{"version":3,"sources":["webpack:///./app/javascript/packs/stylesheets/projects.scss?148b","webpack:///./app/javascript/packs/stylesheets/projects.scss","webpack:///./app/javascript/packs/projects.js","webpack:///./app/javascript/projects/general.js","webpack:///./app/javascript/projects/toolbar.js","webpack:///./node_modules/css-loader/dist/runtime/getUrl.js","webpack:///./app/javascript/packs/images/icons/fontawesome/plus-circle.svg","webpack:///./app/javascript/packs/images/icons/fontawesome/rename.svg","webpack:///./app/javascript/packs/images/icons/fontawesome/clone.svg","webpack:///./app/javascript/packs/images/icons/fontawesome/external-link-alt.svg","webpack:///./app/javascript/packs/images/icons/fontawesome/trash-dark.svg","webpack:///./app/javascript/packs/images/icons/mime/lock_brown.svg","webpack:///./app/javascript/packs/images/icons/mime/lock_green.svg","webpack:///./app/javascript/packs/images/icons/mime/sys.svg"],"names":["api","content","__esModule","default","module","i","options","exported","locals","exports","___CSS_LOADER_API_IMPORT___","___CSS_LOADER_GET_URL_IMPORT___","___CSS_LOADER_URL_IMPORT_0___","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_IMPORT_3___","___CSS_LOADER_URL_IMPORT_4___","___CSS_LOADER_URL_IMPORT_5___","___CSS_LOADER_URL_IMPORT_6___","___CSS_LOADER_URL_IMPORT_7___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","___CSS_LOADER_URL_REPLACEMENT_3___","___CSS_LOADER_URL_REPLACEMENT_4___","___CSS_LOADER_URL_REPLACEMENT_5___","___CSS_LOADER_URL_REPLACEMENT_6___","___CSS_LOADER_URL_REPLACEMENT_7___","push","relation","a","b","attr","order","test","$","find","data","Number","sort_projects","by","sorted","console","log","sort","detach","append","document","on","User","onlogin","window","location","reload","onlogout","click","this","hasClass","removeClass","addClass","className","split","toolbar","currentExp","ontoolbar","width","css","link","length","top","offset","left","linkWidth","transform","display","e","experiment","createElement","setAttribute","slug","style","body","appendChild","removeChild","name","replace","duplicateExp","element","html","Modular","close","Uploader","request_json","then","m","remove","Message","user","xpsize","size","usersize","cached_size","JSON","parse","warning","init","show","deleteExp","focus","stopPropagation","key","preventDefault","newname","oldname","removeAttr","error","rename","success","message","tryToRename","blur","undefined","url","slice","hash","needQuotes","concat"],"mappings":"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","file":"js/projects-cddd5e31f8a67ee24667.chunk.js","sourcesContent":["var api = require(\"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??ref--7-1!../../../../node_modules/postcss-loader/src/index.js??ref--7-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--7-3!./projects.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(module.id, content, options);\n\nvar exported = content.locals ? content.locals : {};\n\n\n\nmodule.exports = exported;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_GET_URL_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL_IMPORT_0___ = require(\"../images/icons/fontawesome/plus-circle.svg\");\nvar ___CSS_LOADER_URL_IMPORT_1___ = require(\"../images/icons/mime/lock_brown.svg\");\nvar ___CSS_LOADER_URL_IMPORT_2___ = require(\"../images/icons/mime/lock_green.svg\");\nvar ___CSS_LOADER_URL_IMPORT_3___ = require(\"../images/icons/mime/sys.svg\");\nvar ___CSS_LOADER_URL_IMPORT_4___ = require(\"../images/icons/fontawesome/external-link-alt.svg\");\nvar ___CSS_LOADER_URL_IMPORT_5___ = require(\"../images/icons/fontawesome/trash-dark.svg\");\nvar ___CSS_LOADER_URL_IMPORT_6___ = require(\"../images/icons/fontawesome/rename.svg\");\nvar ___CSS_LOADER_URL_IMPORT_7___ = require(\"../images/icons/fontawesome/clone.svg\");\nexports = ___CSS_LOADER_API_IMPORT___(true);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);\nvar ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___);\nvar ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___);\n// Module\nexports.push([module.id, \".modular #confirmation-delete{text-align:center}.modular #confirmation-delete p,.modular #confirmation-delete button{font-size:1.5em}#main-container{display:flex;flex-direction:column}#main-container h2{text-align:center;width:100%;margin-top:1.5em;margin-bottom:0.25em}#main-container .new_project{width:100vw;text-align:center}#main-container .new_project a{display:block;font-size:2em;font-weight:bold;width:4em;height:4em;line-height:4em;border:dotted 1px gray;border-radius:0.5em;cursor:pointer;margin:0.5em auto;color:transparent;text-decoration:none;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");background-size:75%;background-position:50%;background-repeat:no-repeat}#main-container .new_project a:hover{background-color:floralwhite}#main-container .tmp{text-align:center;font-size:1.5em;margin:1em}#main-container .tmp a{color:#444444;text-decoration:none}#main-container .tmp a:hover{color:#4444BB;text-decoration:underline}#main-container .title{font-size:2em;font-weight:bold;text-align:center}#main-container .projectsbrowser{display:flex;flex-direction:row;flex-wrap:nowrap;width:100vw;overflow-y:hidden;margin:1em}#main-container .projectsbrowser .projects{display:flex;flex-direction:column;height:100%;flex-grow:1;margin-top:1em;width:100%;position:relative}#main-container .projectsbrowser .projects h3{font-size:1.66em;width:100%}#main-container .projectsbrowser .projects .sortby{display:flex;width:80%}#main-container .projectsbrowser .projects .sortby .sorts{display:flex;justify-content:space-between;flex-grow:1}#main-container .projectsbrowser .projects .sortby .sorts .name{margin-left:1em}#main-container .projectsbrowser .projects .sortby .sorts .size{margin-right:2em}#main-container .projectsbrowser .projects .sortby .sorts span:hover{cursor:pointer}#main-container .projectsbrowser .projects .sortby .sorts span:before{content:\\\"\\\\25BE\\\";visibility:hidden}#main-container .projectsbrowser .projects .sortby .sorts .down:before{content:\\\"\\\\25BE\\\";visibility:visible}#main-container .projectsbrowser .projects .sortby .sorts .up:before{content:\\\"\\\\25B4\\\";visibility:visible}#main-container .projectsbrowser .projects ul{width:80%;height:100%;overflow:hidden scroll}#main-container .projectsbrowser .projects ul li{position:relative;width:100%;list-style:none;font-size:1.5em;padding:0.5em}#main-container .projectsbrowser .projects ul li a{text-decoration:none;width:95%;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#main-container .projectsbrowser .projects ul li a:hover{text-decoration:underline}#main-container .projectsbrowser .projects ul li .size{position:relative;top:-0.25em;font-size:0.75em;font-feature-settings:\\\"sups\\\";font-variant:super;font-weight:bold}#main-container .projectsbrowser .projects ul li .size:after{content:\\\"MB\\\"}#main-container .projectsbrowser .projects ul li:nth-child(odd){background-color:#c4c4c4}#main-container .projectsbrowser .projects ul li:nth-child(odd){background-color:#e8e8e8}#main-container .projectsbrowser .projects.private ul li a{width:calc(100% - 6em)}#main-container .projectsbrowser .projects.private .statuses{display:inline-flex;flex-direction:column;-webkit-transform:translateY(-0.66em);transform:translateY(-0.66em)}@-webkit-keyframes rotating{from{-webkit-transform:rotate(0deg);transform:rotate(0deg);-webkit-transform-origin:50% 50%;transform-origin:50% 50%}to{-webkit-transform:rotate(360deg);transform:rotate(360deg);-webkit-transform-origin:50% 50%;transform-origin:50% 50%}}@keyframes rotating{from{-webkit-transform:rotate(0deg);transform:rotate(0deg);-webkit-transform-origin:50% 50%;transform-origin:50% 50%}to{-webkit-transform:rotate(360deg);transform:rotate(360deg);-webkit-transform-origin:50% 50%;transform-origin:50% 50%}}#main-container .projectsbrowser .projects.private .statuses #layer1{-webkit-animation:rotating 6s linear infinite;animation:rotating 6s linear infinite}#main-container .projectsbrowser .projects.private .statuses span{display:inline-block;width:0.75em;height:0.75em}#main-container .projectsbrowser .projects.private .statuses span.private{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \")}#main-container .projectsbrowser .projects.private .statuses span.public{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \")}#main-container .projectsbrowser .projects.private .statuses span.dev{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \")}#main-container .projectsbrowser .projects.private .statuses span svg{position:absolute}#main-container .projectsbrowser .projects.public li{display:flex}#main-container .projectsbrowser .projects.public li a:first-child{width:1em;height:1em;margin-right:0.25em;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \")}#main-container .projectsbrowser .projects.public li a:first-child:hover{-webkit-filter:invert(40%);filter:invert(40%)}#main-container #toolbar-experiment{display:flex;flex-direction:row;position:absolute;padding:0.5em;background-color:#222222dd}#main-container #toolbar-experiment div{color:lightgray;margin:0.25em}#main-container #toolbar-experiment div:hover{color:white;text-decoration:underline;cursor:pointer}#main-container #toolbar-experiment div:before{content:'';background-size:contain;background-repeat:no-repeat;width:1em;height:1em;display:inline-block;-webkit-filter:invert(100%);filter:invert(100%)}#main-container #toolbar-experiment .delete:before{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \")}#main-container #toolbar-experiment .rename:before{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \")}#main-container #toolbar-experiment .duplicate:before{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \")}#main-container #toolbar-experiment .tryit:before{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \")}\\n\", \"\",{\"version\":3,\"sources\":[\"/myapp/app/javascript/packs/stylesheets/projects.scss\"],\"names\":[],\"mappings\":\"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\",\"file\":\"projects.scss\",\"sourcesContent\":[\".modular {\\n #confirmation-delete { \\n text-align: center;\\n p, button { font-size: 1.5em; }\\n }\\n}\\n\\n#main-container {\\n display: flex;\\n flex-direction: column;\\n h2 { \\n text-align: center;\\n width: 100%; \\n margin-top: 1.5em;\\n margin-bottom: 0.25em;\\n }\\n .new_project {\\n width: 100vw;\\n text-align: center;\\n a {\\n display: block;\\n font-size: 2em;\\n font-weight: bold;\\n width: 4em;\\n height: 4em;\\n line-height: 4em;\\n border: dotted 1px gray;\\n border-radius: 0.5em;\\n cursor: pointer;\\n margin: 0.5em auto;\\n color: transparent;\\n text-decoration: none;\\n background-image: url('../images/icons/fontawesome/plus-circle.svg');\\n background-size: 75%;\\n background-position: 50%;\\n background-repeat: no-repeat;\\n }\\n a:hover { background-color: floralwhite; } \\n }\\n\\n .tmp {\\n text-align: center;\\n font-size: 1.5em;\\n margin: 1em;\\n a {\\n color: #444444;\\n text-decoration: none;\\n }\\n a:hover {\\n color: #4444BB;\\n text-decoration: underline;\\n }\\n }\\n\\n .title{ \\n font-size: 2em; \\n font-weight: bold;\\n text-align: center;;\\n }\\n\\n .projectsbrowser {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: nowrap;\\n width: 100vw;\\n overflow-y: hidden;\\n margin: 1em;\\n .projects {\\n display: flex;\\n flex-direction: column;\\n height: 100%;\\n flex-grow: 1;\\n margin-top: 1em;\\n width: 100%;\\n position: relative;\\n // overflow-y: scroll;\\n h3 { \\n font-size: 1.66em;\\n width: 100%; \\n }\\n .sortby {\\n display: flex;\\n width: 80%;\\n .sorts {\\n display: flex;\\n justify-content: space-between;\\n flex-grow: 1;\\n .name {\\n margin-left: 1em;\\n }\\n .size{\\n margin-right: 2em;\\n }\\n span {\\n &:hover {\\n cursor: pointer;\\n }\\n &:before{\\n content: \\\"\\\\25BE\\\";\\n visibility: hidden;\\n }\\n }\\n .down:before {\\n content: \\\"\\\\25BE\\\";\\n visibility: visible;\\n }\\n .up:before {\\n content: \\\"\\\\25B4\\\";\\n visibility: visible;\\n }\\n }\\n }\\n ul {\\n width: 80%;\\n // margin: auto;\\n // display: flex;\\n // justify-content: space-evenly;\\n // flex-wrap: wrap;\\n height: 100%;\\n overflow: hidden scroll;\\n li { \\n position: relative;\\n width: 100%;\\n list-style: none;\\n font-size: 1.5em; \\n padding: 0.5em;\\n // font-size: 2em; \\n // margin: 1em;\\n a{\\n text-decoration: none;\\n width: 95%;\\n display: inline-block;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n }\\n a:hover {\\n text-decoration: underline;\\n }\\n .size {\\n position: relative;\\n top: -0.25em;\\n font-size: 0.75em;\\n font-variant: super;\\n font-weight: bold;\\n }\\n .size:after{\\n content: \\\"MB\\\";\\n }\\n // .description {\\n // display: none;\\n // position: absolute;\\n // max-width: 80%;\\n // color: white;\\n // background-color: #000000cc;\\n // font-size: 0.75em;\\n // margin-left: 0.25em;\\n // padding: 0.25em;\\n // }\\n // &:hover .description { display: inline-block; }\\n }\\n li:nth-child(odd){\\n background-color: #c4c4c4;\\n }\\n li:nth-child(odd){\\n background-color: #e8e8e8;\\n }\\n }\\n &.private {\\n ul li a {\\n width: calc(100% - 6em);\\n }\\n .statuses{\\n display: inline-flex;\\n flex-direction: column;\\n transform: translateY(-0.66em);\\n @keyframes rotating {\\n from {\\n transform: rotate(0deg);\\n transform-origin: 50% 50%;\\n }\\n to {\\n transform: rotate(360deg);\\n transform-origin: 50% 50%;\\n }\\n }\\n #layer1 {\\n animation: rotating 6s linear infinite;\\n }\\n span {\\n display: inline-block;\\n width: 0.75em;\\n height: 0.75em;\\n &.private{\\n background-image: url(\\\"../images/icons/mime/lock_brown.svg\\\");\\n }\\n &.public{\\n background-image: url(\\\"../images/icons/mime/lock_green.svg\\\");\\n }\\n &.dev{\\n background-image: url(\\\"../images/icons/mime/sys.svg\\\");\\n }\\n svg {\\n position: absolute;\\n }\\n // &.prod{\\n // background-image: url(\\\"../images/icons/mime/prod.svg\\\");\\n // }\\n }\\n }\\n }\\n &.public {\\n li {\\n display: flex;\\n a:first-child {\\n width: 1em;\\n height: 1em;\\n margin-right: 0.25em;\\n background-image: url(\\\"../images/icons/fontawesome/external-link-alt.svg\\\");\\n &:hover {\\n filter: invert(40%);\\n }\\n }\\n }\\n }\\n }\\n }\\n \\n #toolbar-experiment {\\n display: flex;\\n flex-direction: row;\\n position: absolute;\\n padding: 0.5em;\\n background-color: #222222dd;\\n div {\\n color: lightgray;\\n margin: 0.25em;\\n }\\n div:hover {\\n color: white;\\n text-decoration: underline;\\n cursor: pointer;\\n }\\n div:before {\\n content:'';\\n background-size: contain;\\n background-repeat: no-repeat;\\n width: 1em;\\n height: 1em;\\n display: inline-block;\\n filter: invert(100%);\\n }\\n .delete:before { background-image: url(\\\"../images/icons/fontawesome/trash-dark.svg\\\"); }\\n .rename:before { background-image: url(\\\"../images/icons/fontawesome/rename.svg\\\"); }\\n // .edit:before { background-image: url(\\\"../images/icons/fontawesome/edit.svg\\\"); }\\n .duplicate:before { background-image: url(\\\"../images/icons/fontawesome/clone.svg\\\"); }\\n .tryit:before { background-image: url(\\\"../images/icons/fontawesome/external-link-alt.svg\\\"); }\\n }\\n}\\n\"]}]);\n// Exports\nmodule.exports = exports;\n","import \"./stylesheets/projects.scss\";\n\nimport \"../projects/general\";\nimport \"../projects/toolbar\";\n","import { User } from '../shared/user';\n\nconst relation = (a,b,attr,order) => {\n let test;\n if (order==\"up\") test = ($(a).find('a').data(attr) > $(b).find('a').data(attr));\n else test = $(a).find('a').data(attr) < $(b).find('a').data(attr);\n return 2*Number(test==true) - 1;\n}\nconst sort_projects = (by,order) => {\n console.log(\"sort projects\", by, order);\n let sorted;\n switch (by){\n case 'name':\n sorted = $(\".private li\").sort( (a,b) => relation(a,b,'name',order) );\n break;\n case 'lastedit':\n sorted = $(\".private li\").sort( (a,b) => relation(a,b,'updatedAt',order) );\n break;\n case 'size':\n sorted = $(\".private li\").sort( (a,b) => relation(a,b,'size',order) );\n break;\n }\n $(\".private li\").detach();\n $(\".private ul\").append(sorted);\n}\n\n\n$(document).on('turbolinks:load', ()=>{\n console.log(\"User:\", $(\"#user\").data());\n User.onlogin( ()=> { console.log(\"reloading\"); window.location.reload() } );\n User.onlogout( ()=> { console.log(\"logout\"); window.location.reload() } );\n\n $(\".sorts span\").click( function(){\n if ($(this).hasClass(\"down\")) $(this).removeClass(\"down\").addClass(\"up\");\n else if ($(this).hasClass(\"up\")) $(this).removeClass(\"up\").addClass(\"down\");\n else {\n $(\".sorts .up, .sorts .down\").removeClass(\"up\").removeClass(\"down\");\n $(this).addClass(\"down\");\n }\n sort_projects(...this.className.split(\" \"));\n } );\n});\n","import { Uploader } from '../shared/uploader';\nimport { Modular } from '../shared/modular_popin';\nimport { Message } from '../shared/modular_messages';\nimport { User } from '../shared/user';\n\nlet toolbar, currentExp;\n\n\nlet tryToRename = element => {\n let newname = element.html(), oldname = element.data().name;\n element.removeAttr('contenteditable');\n if (newname == oldname)\n return;\n else if ($(`.projects.private li a[data-name='${newname}']`).length){\n Message.error(`There already is another experiment named ${newname}`);\n element.html(oldname);\n }\n else\n Uploader.request_json({rename: newname}, '/experiments/'+element.data().slug)\n .success( m => {\n element.html(m.newname);\n element.data('name', m.newname);\n Message.log(`Experiment ${oldname} successfully renamed ${m.newname}` , 'experimentStatus' );\n })\n .error( m => {\n Message.log(`There was a problem renaming the experiment: ${m.error||m.message}`) \n element.html(oldname);\n });\n return false;\n};\n\n\nlet editExpName = element => {\n toolbar.css('display','none');\n element.attr(\"contenteditable\", true);\n element.focus();\n};\n\n\nconst tryExp = experiment => {\n const link = document.createElement('a');\n link.setAttribute('href', `/r/${experiment.slug}/experiment.html?test=true`);\n link.setAttribute('target', '_blank');\n link.style.display = 'none';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n}\n\nlet duplicateExp = experiment => {\n toolbar.css('display','none');\n let link = `/experiments/new?from=${experiment.slug}&name=${experiment.name}_copy`;\n window.location.replace( link );\n};\n\n\nlet deleteExp = experiment => {\n toolbar.css('display','none');\n let element = $(\"#modulars #confirmationdelete\"), slug = experiment.slug, name = experiment.name;\n element.find(\".warning p\").html( `Are you sure you want to delete the experiment named ${name}?` );\n element.find(\"button[name='yes']\").click( e=> {\n Modular.close();\n Uploader.request_json( {} , '/experiments/'+slug , 'DELETE' )\n .then( m => {\n $(`.projects.private li[slug='${slug}']`).remove();\n if (currentExp.data().slug == slug)\n toolbar.css(\"display\",\"none\"); \n Message.log( `Experiment ${name} has been successfully deleted` ); \n if (m.user) {\n let xpsize = experiment.size, usersize = $(\"#user\").data().cached_size;\n m.user = JSON.parse( m.user );\n $(\"#user\").data( m.user );\n console.log(\"m.user.cached_size\", m.user.cached_size, \"usersize\", usersize, \"xpsize\", xpsize);\n if (m.user.cached_size != usersize-xpsize)\n Message.warning( \"Some resources might have been transfered to another experiment, refresh this page for an accurate estimation of the size of the other experiments\" );\n }\n User.init( $(\"#user\").data() );\n } );\n });\n element.find(\"button[name='no']\").click( () => Modular.close() );\n Modular.show( 'confirmationdelete' );\n};\n\n\n$(document).on('turbolinks:load', ()=>{\n toolbar = $(\"#toolbar-experiment\");\n let ontoolbar = false;\n let width = toolbar.width();\n toolbar.css('display', 'none');\n\n $(document).on('mouseenter', '.projects.private li', function(){\n const link = $(this).find('a');\n if (link.length && link.attr(\"contenteditable\")) return;\n let top = $(this).offset().top, \n left = link.offset().left,\n linkWidth = link.width(),\n xoverflow = width+left-$('body').width();\n toolbar.css({\n // top: `calc(${offset.top}px + 0.75em`,\n top: `calc(${top}px + 0.5em)`,\n // left: offset.left - (xoverflow>0?10+xoverflow:0),\n left: left + linkWidth + 16,\n // right: `calc(${offset.left + $(this).width()}px)`,\n 'margin-left': '0.5em',\n transform: 'translate(0%, -100%)',\n display: 'flex'\n });\n currentExp = $(this).find('a');\n })\n\n $(document).on('mouseleave', '.projects, .projects.private ul', function(){\n if (!ontoolbar)\n toolbar.css('display','none');\n });\n\n $(document).on('mouseenter', '#toolbar-experiment', ()=>{ontoolbar=true; toolbar.css('display','flex')})\n .on('mouseleave', '#toolbar-experiment', ()=>ontoolbar=false);\n\n toolbar.find(\".tryit\").on('click', e => tryExp(currentExp.data()) );\n toolbar.find(\".duplicate\").on('click', e => duplicateExp(currentExp.data()) );\n toolbar.find(\".delete\").on('click', e=> deleteExp( currentExp.data() ) );\n toolbar.find(\".rename\").on('click', e=> editExpName( currentExp ) );\n $(\".projects.private li a\").on('keydown', function(e) {\n e.stopPropagation();\n if (e.key == \"Enter\"){\n e.preventDefault();\n tryToRename($(this));\n }\n else if (e.key==\"Escape\")\n $(this).blur();\n console.log(\"key\",e.key);\n }).on('blur', function(e){ $(this).removeAttr(\"contenteditable\"); $(this).html($(this).data().name); })\n .on('click', function(){ return $(this).attr(\"contenteditable\")===undefined; });\n});\n","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n // eslint-disable-next-line no-param-reassign\n options = {};\n } // eslint-disable-next-line no-underscore-dangle, no-param-reassign\n\n\n url = url && url.__esModule ? url[\"default\"] : url;\n\n if (typeof url !== 'string') {\n return url;\n } // If url is already wrapped in quotes, remove them\n\n\n if (/^['\"].*['\"]$/.test(url)) {\n // eslint-disable-next-line no-param-reassign\n url = url.slice(1, -1);\n }\n\n if (options.hash) {\n // eslint-disable-next-line no-param-reassign\n url += options.hash;\n } // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n\n\n if (/[\"'() \\t\\n]/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n'), \"\\\"\");\n }\n\n return url;\n};","export default __webpack_public_path__ + \"media/packs/images/icons/fontawesome/plus-circle-2b2138f3af2701eec3e6655191d37f4f.svg\";","export default __webpack_public_path__ + \"media/packs/images/icons/fontawesome/rename-02365108d311bf107ef13839ace94e7a.svg\";","export default __webpack_public_path__ + \"media/packs/images/icons/fontawesome/clone-18168fc6091f1a2dba70661e9b1b7394.svg\";","export default __webpack_public_path__ + \"media/packs/images/icons/fontawesome/external-link-alt-729921ece596073323d92057d2021452.svg\";","export default __webpack_public_path__ + \"media/packs/images/icons/fontawesome/trash-dark-762fa71bd93692ced8981bba810ae1a1.svg\";","export default __webpack_public_path__ + \"media/packs/images/icons/mime/lock_brown-d9572074f8aeca2ca0d7ccb921cd8788.svg\";","export default __webpack_public_path__ + \"media/packs/images/icons/mime/lock_green-b90c643ddc7fd30e23818bb4d74b2840.svg\";","export default __webpack_public_path__ + \"media/packs/images/icons/mime/sys-85225cebc7dba3b42346b18c29e5a2d0.svg\";"],"sourceRoot":""}