{"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"}