{"version":3,"file":"js/11-copy-to-clipboard.js","sources":["js/11-copy-to-clipboard.js"],"sourcesContent":["/*******************************************************************************\n * Copyright (c) 2020 IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors:\n * IBM Corporation - initial API and implementation\n *******************************************************************************/\n\nvar code_blocks_with_copy_to_clipboard = 'pre:not(.no_copy pre)'; // CSS Selector\n$(document).ready(function () {\n $(code_blocks_with_copy_to_clipboard).each(function (){\n $(this).wrap('<div class=\"code_block_wrapper\" title=\"Code block\"></div>'); \n })\n $('.code_block_wrapper').each(function (){\n $(this).prepend('<div class=\"copied_confirmation\">Copied to clipboard</div><input type=\"image\" class=\"copy_to_clipboard\" src=\"/img/guides_copy_button.svg\" alt=\"Copy code block\" title=\"Copy code block\"/>');\n });\n\n $(code_blocks_with_copy_to_clipboard).each(function(){\n if($(this).height() >= 500){\n $(this).siblings(\".copy_to_clipboard\").css(\"right\", \"25px\")\n }\n })\n\n // Copy target element and show copied confirmation when copy to clipboard button clicked\n $(document).on(\"click\", \".copy_to_clipboard\", function(event) {\n event.preventDefault();\n target = $(this).siblings(code_blocks_with_copy_to_clipboard);\n copy_element_to_clipboard(target, function(){});\n $(this).prev().fadeIn().delay(1000).fadeOut()\n });\n\n /* Copy the target element to the clipboard\n target: element to copy\n callback: function to run if the copy is successful\n */\n function copy_element_to_clipboard(target, callback){\n // IE\n if(window.clipboardData){\n window.clipboardData.setData(\"Text\", target.innerText);\n } \n else{\n var temp = $('<textarea>');\n temp.css({\n position: \"absolute\",\n left: \"-1000px\",\n top: \"-1000px\",\n }); \n \n // Create a temporary element for copying the text.\n // Prepend <br> with newlines because jQuery .text() strips the <br>'s and we use .text() because we don't want all of the html tags copied to the clipboard.\n // Remove <b> tags that contain callouts\n var text = $(target).clone().find('br').prepend('\\r\\n').end().find(\"b\").remove().end().text().trim();\n temp.text(text);\n $(\"body\").append(temp);\n temp.trigger('select');\n \n // Try to copy the selection and if it fails display a popup to copy manually.\n if(document.execCommand('copy')) { \n callback();\n } else {\n alert('Copy failed. Copy the command manually: ' + target.innerText);\n }\n temp.remove(); // Remove temporary element.\n }\n }\n});\n"],"names":["code_blocks_with_copy_to_clipboard","$","document","ready","each","this","wrap","prepend","height","siblings","css","on","event","preventDefault","copy_element_to_clipboard","temp","text","target","callback","window","clipboardData","setData","innerText","position","left","top","clone","find","end","remove","trim","append","trigger","execCommand","alert","prev","fadeIn","delay","fadeOut"],"mappings":"AAWA,IAAIA,mCAAqC,wBACzCC,EAAEC,QAAQ,EAAEC,MAAM,WACdF,EAAED,kCAAkC,EAAEI,KAAK,WACvCH,EAAEI,IAAI,EAAEC,KAAK,2DAA2D,CAC5E,CAAC,EACDL,EAAE,qBAAqB,EAAEG,KAAK,WAC1BH,EAAEI,IAAI,EAAEE,QAAQ,2LAA2L,CAC/M,CAAC,EAEDN,EAAED,kCAAkC,EAAEI,KAAK,WAChB,KAApBH,EAAEI,IAAI,EAAEG,OAAO,GACdP,EAAEI,IAAI,EAAEI,SAAS,oBAAoB,EAAEC,IAAI,QAAS,MAAM,CAElE,CAAC,EAGDT,EAAEC,QAAQ,EAAES,GAAG,QAAS,qBAAsB,SAASC,GACnDA,EAAMC,eAAe,EAErBC,IAcQC,EAUAC,EAhBuBC,EAT/BA,OAAShB,EAAEI,IAAI,EAAEI,SAAST,kCAAkC,EASrBkB,EARL,aAU/BC,OAAOC,cACND,OAAOC,cAAcC,QAAQ,OAAQJ,EAAOK,SAAS,IAGjDP,EAAOd,EAAE,YAAY,GACpBS,IAAI,CACLa,SAAU,WACVC,KAAU,UACVC,IAAU,SACd,CAAC,EAKGT,EAAOf,EAAEgB,CAAM,EAAES,MAAM,EAAEC,KAAK,IAAI,EAAEpB,QAAQ,MAAM,EAAEqB,IAAI,EAAED,KAAK,GAAG,EAAEE,OAAO,EAAED,IAAI,EAAEZ,KAAK,EAAEc,KAAK,EACnGf,EAAKC,KAAKA,CAAI,EACdf,EAAE,MAAM,EAAE8B,OAAOhB,CAAI,EACrBA,EAAKiB,QAAQ,QAAQ,EAGlB9B,SAAS+B,YAAY,MAAM,EAC1Bf,EAAS,EAETgB,MAAM,2CAA6CjB,EAAOK,SAAS,EAEvEP,EAAKc,OAAO,GAlChB5B,EAAEI,IAAI,EAAE8B,KAAK,EAAEC,OAAO,EAAEC,MAAM,GAAI,EAAEC,QAAQ,CAChD,CAAC,CAoCL,CAAC"}