scripts.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. 'use strict';
  2. ((window.gitter = {}).chat = {}).options = {
  3. room: 'kevinchappell/formBuilder'
  4. };
  5. const toast = opts => {
  6. opts = Object.assign({ type: 'success', msg: '' }, opts)
  7. const toast = document.createElement('div')
  8. const text = document.createTextNode(opts.msg)
  9. toast.classList.add('toast')
  10. toast.classList.add(opts.type)
  11. toast.appendChild(text)
  12. document.body.appendChild(toast)
  13. setTimeout(() => {
  14. document.body.removeChild(toast)
  15. }, 2500)
  16. }
  17. const copyBtnImg = () => {
  18. const img = document.createElement('img')
  19. img.src = 'https://formbuilder.online/docs/img/clipboard.svg'
  20. img.className = 'clippy'
  21. img.width = 13
  22. img.alt = 'Copy to clipboard'
  23. return img
  24. }
  25. const copyBtn = msg => {
  26. const btn = document.createElement('button')
  27. btn.className = 'btn'
  28. btn.appendChild(copyBtnImg())
  29. const clipboard = new window.ClipboardJS(btn, {
  30. text: () => msg,
  31. })
  32. clipboard.on('success', e => {
  33. toast({ msg: 'Copied to clipboard.' })
  34. e.clearSelection()
  35. })
  36. return btn
  37. }
  38. setTimeout(() => {
  39. const codeBlocks = document.querySelectorAll('code.hljs')
  40. if (codeBlocks && codeBlocks.length) {
  41. for (let i = 0; i < codeBlocks.length; i++) {
  42. codeBlocks[i].appendChild(copyBtn(codeBlocks[i].innerText))
  43. }
  44. }
  45. }, 2000)