{"version":3,"file":"editor.js","names":["$","document","on","saveArticle","icons","Quill","import","header","BubbleTheme","ExtendBubbleTheme","_BubbleTheme","_inheritsLoose","quill","options","_this","call","range","theme","tooltip","show","position","getBounds","delta","oldDelta","source","last","ops","length","Object","prototype","hasOwnProperty","insert","register","BlockEmbed","VideoBlot","_BlockEmbed","apply","arguments","create","url","node","iframe","createElement","setAttribute","appendChild","value","domNode","src","childElementCount","firstChild","nodeType","hasAttribute","getAttribute","blotName","tagName","modules","toolbar","list","placeholder","input","root","querySelector","dataset","link","addEventListener","e","stopPropagation","preventDefault","sel","window","getSelection","getRangeAt","deleteContents","clipboardData","pastedData","getData","textNode","createTextNode","insertNode","setStartAfter","change","text","setInterval","onbeforeunload","glass","obj","ajax","dataType","type","data","attr","encodeURIComponent","innerHTML","beforeSend","prepend","success","find","remove","hide","error","moment","format","id","jqXHR","textStatus","errorThrown","console","log"],"sources":["src/editor.js"],"sourcesContent":["import $ from 'jquery'\nimport Quill from 'quill.js'\nimport moment from 'moment'\n// import showModal from '../main.js'\n\n$(document).on('click', '.save-btn', () => {\n saveArticle(true)\n})\n\nconst icons = Quill.import('ui/icons')\nicons.header[3] = `\n\n`\n// $('.dropdown-item').on('click', (e) => {\n// e.preventDefault()\n// })\n\nconst BubbleTheme = Quill.import('themes/bubble')\nclass ExtendBubbleTheme extends BubbleTheme {\n constructor(quill, options) {\n super(quill, options)\n quill.on('selection-change', (range) => {\n if (range) {\n quill.theme.tooltip.show()\n quill.theme.tooltip.position(quill.getBounds(range))\n }\n })\n quill.on('text-change', (delta, oldDelta, source) => {\n const last = delta.ops[delta.ops.length - 1]\n if (Object.prototype.hasOwnProperty.call(last, 'insert') && last.insert === '\\n') {\n quill.theme.tooltip.show()\n quill.theme.tooltip.position(quill.getBounds(source))\n }\n })\n }\n}\nQuill.register('themes/bubble', ExtendBubbleTheme)\n\nconst BlockEmbed = Quill.import('blots/block/embed')\nclass VideoBlot extends BlockEmbed {\n static create(url) {\n const node = super.create(url)\n const iframe = document.createElement('iframe')\n // Set styles for wrapper\n node.setAttribute('class', 'embed-responsive embed-responsive-16by9')\n // Set styles for iframe\n iframe.setAttribute('frameborder', '0')\n iframe.setAttribute('allowfullscreen', true)\n iframe.setAttribute('src', url)\n // Append iframe as child to wrapper\n node.appendChild(iframe)\n return node\n }\n\n static value(domNode) {\n let src = null\n if (domNode.childElementCount > 0 && domNode.firstChild.nodeType === 1 && domNode.firstChild.hasAttribute('src')) {\n src = domNode.firstChild.getAttribute('src')\n }\n return src\n }\n}\nVideoBlot.blotName = 'video'\nVideoBlot.tagName = 'div'\n\nQuill.register(VideoBlot, true)\n\n// eslint-disable-next-line no-unused-vars\nconst quill = new Quill('#editor', {\n modules: {\n toolbar: [\n ['bold', 'italic', 'underline', 'strike'],\n [{\n header: '2'\n }, {\n header: '3'\n }, 'blockquote'],\n [{\n list: 'ordered'\n }, {\n list: 'bullet'\n }],\n ['link', 'image', 'video']\n ]\n },\n placeholder: '%%Начните писать статью...%%',\n theme: 'bubble'\n})\n\nconst tooltip = quill.theme.tooltip\nconst input = tooltip.root.querySelector('input[data-link]')\ninput.dataset.link = 'https://horseexperts.ru'\n\ndocument.querySelector('.post-body .header h1, .post-body .anons').addEventListener('paste', (e) => {\n e.stopPropagation()\n e.preventDefault()\n const sel = window.getSelection()\n const range = sel.getRangeAt(0)\n range.deleteContents()\n const clipboardData = e.clipboardData || window.clipboardData\n const pastedData = clipboardData.getData('Text')\n const textNode = document.createTextNode(pastedData)\n range.insertNode(textNode)\n range.setStartAfter(textNode)\n})\n\nlet change = false\nquill.on('text-change', () => {\n $('.timer').text('%%скоро сохранение%%')\n change = true\n})\ndocument.querySelector('.post-body .header h1').addEventListener('input', () => {\n $('.timer').text('%%скоро сохранение%%')\n change = true\n})\ndocument.querySelector('.post-body .header .anons').addEventListener('input', () => {\n $('.timer').text('%%скоро сохранение%%')\n change = true\n})\n\n\nsetInterval(() => {\n if (change) {\n saveArticle()\n }\n}, 10 * 1000)\n\n// eslint-disable-next-line consistent-return\nwindow.onbeforeunload = () => {\n if (change) {\n return 'There are unsaved changes. Are you sure you want to leave?'\n }\n}\n\nfunction saveArticle(glass) {\n const obj = $('.save-btn')\n change = false\n $.ajax({\n dataType: 'json',\n type: 'post',\n url: '/api/save.json',\n data: `id=${$(obj).attr('data-id')}&title=${encodeURIComponent($('.post-body .header h1').text())}&anons=${encodeURIComponent($('.post-body .anons').text())}&body=${encodeURIComponent(quill.root.innerHTML)}`,\n beforeSend: () => {\n if (glass) {\n $('.glass').show()\n }\n $('.timer').text('сохранение')\n obj.prepend('')\n },\n success: (data) => {\n obj.find('.icon-spinner').remove()\n $('.glass').hide()\n if (data.error) {\n //\n } else {\n $('.timer').text(`сохранено ${moment().format('HH:mm:ss')}`)\n if ($(obj).attr('data-id') === '0') {\n $(obj).attr('data-id', data.id)\n }\n }\n },\n error: (jqXHR, textStatus, errorThrown) => {\n window.console.log(jqXHR, textStatus, errorThrown)\n }\n })\n}\n"],"mappings":"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"}