{"version":3,"sources":["replies.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"reply-to.js","sourcesContent":["(function () {\n var MeerkatReply = {\n Endpoints: Object.freeze({\n SubmitComment: '/!/Meerkat/socialize'\n }),\n closeOnCancel: true,\n replyOpen: null,\n canceled: null,\n submit: function (event) {\n \n },\n getOpenReplyForm: function () {\n var forms = document.querySelectorAll('form[data-meerkat-form=\"comment-reply-form\"]');\n\n return forms[forms.length - 1];\n }\n };\n var MeerkatForms = {\n data: {\n ReplyForm: null,\n Extend: null,\n IsGoogleRecaptchaInUse: false,\n CaptchaElementId: null,\n GoogleRecaptchaInstance: null,\n GoogleRecaptchaTheme: null,\n GoogleRecaptchaSiteKey: null\n },\n findClosest: function (el, selector) {\n var matchesFn;\n\n ['matches','webkitMatchesSelector','mozMatchesSelector','msMatchesSelector','oMatchesSelector'].some(function(fn) {\n if (typeof document.body[fn] == 'function') {\n matchesFn = fn;\n return true;\n }\n return false;\n })\n\n var parent;\n\n while (el) {\n parent = el.parentElement;\n if (parent && parent[matchesFn](selector)) {\n return parent;\n }\n el = parent;\n }\n\n return null;\n },\n generateId: function () {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n },\n getReplyForm: function () {\n var form = document.querySelectorAll('[data-meerkat-form=\"comment-reply-form\"]');\n\n if (form.length == 0) {\n form = document.querySelectorAll('[data-meerkat-form=\"comment-form\"]');\n }\n\n\n if (form.length > 0) {\n var meerkatReplyForm = form[0].cloneNode(true);\n\n if (meerkatReplyForm.innerHTML.indexOf('g-recaptcha') > -1) {\n if (typeof window['grecaptcha'] !== 'undefined') {\n this.data.IsGoogleRecaptchaInUse = true;\n\n for (var i = 0; i < meerkatReplyForm.childNodes.length; i += 1) {\n if (typeof meerkatReplyForm.childNodes[i].className !== 'undefined') {\n if (meerkatReplyForm.childNodes[i].className.match(\"\\s*g-recaptcha\\s*\")) {\n this.data.CaptchaElementId = 'meerkat_c-' + this.generateId();\n meerkatReplyForm.childNodes[i].setAttribute('id', this.data.CaptchaElementId);\n\n if (typeof meerkatReplyForm.childNodes[i].dataset !== 'undefined') {\n var captchaDataSet = meerkatReplyForm.childNodes[i].dataset;\n\n if (typeof captchaDataSet.sitekey !== 'undefined') {\n this.data.GoogleRecaptchaSiteKey = captchaDataSet.sitekey;\n }\n\n if (typeof captchaDataSet.theme !== 'undefined') {\n this.data.GoogleRecaptchaTheme = captchaDataSet.theme;\n }\n }\n }\n }\n }\n }\n }\n\n form = meerkatReplyForm;\n }\n\n return form;\n },\n resetCaptchaId: function () {\n if (this.data.ReplyForm !== null) {\n for (var i = 0; i < this.data.ReplyForm.childNodes.length; i += 1) {\n if (typeof this.data.ReplyForm.childNodes[i].className !== 'undefined') {\n if (this.data.ReplyForm.childNodes[i].className.match(\"\\s*g-recaptcha\\s*\")) {\n this.data.CaptchaElementId = 'meerkat_c-' + this.generateId();\n this.data.ReplyForm.childNodes[i].setAttribute('id', this.data.CaptchaElementId);\n\n if (typeof this.data.ReplyForm.childNodes[i].dataset !== 'undefined') {\n var captchaDataSet = this.data.ReplyForm.childNodes[i].dataset;\n\n if (typeof captchaDataSet.sitekey !== 'undefined') {\n this.data.GoogleRecaptchaSiteKey = captchaDataSet.sitekey;\n }\n\n if (typeof captchaDataSet.theme !== 'undefined') {\n this.data.GoogleRecaptchaTheme = captchaDataSet.theme;\n }\n }\n }\n }\n }\n }\n },\n makeReplyInput: function (replyingTo) {\n var replyInput = document.createElement('input');\n replyInput.type = 'hidden';\n replyInput.value = replyingTo;\n replyInput.name = 'ids';\n\n return replyInput;\n },\n addEventListeners: function () {\n var _this = this;\n var replyLinks = document.querySelectorAll('[data-meerkat-form=\"reply\"]');\n\n replyLinks.forEach(function (el) {\n el.addEventListener('click', function (event) {\n\n if (_this.data.ReplyForm !== null) {\n _this.data.ReplyForm.parentNode.removeChild(_this.data.ReplyForm);\n }\n\n _this.data.ReplyForm = _this.getReplyForm();\n\n var replyingTo = event.target.getAttribute('data-meerkat-reply-to');\n\n _this.data.ReplyForm.appendChild(_this.makeReplyInput(replyingTo));\n _this.data.ReplyForm.addEventListener('submit', _this.data.Extend.submit, false);\n\n if (typeof MeerkatForms.data.Extend.replyOpen !== 'undefined' && MeerkatForms.data.Extend.replyOpen !== null) {\n MeerkatForms.data.Extend.replyOpen(_this.data.ReplyForm);\n }\n\n el.parentNode.insertBefore(_this.data.ReplyForm, el.nextSibling);\n\n if (_this.data.IsGoogleRecaptchaInUse && _this.data.CaptchaElementId !== null) {\n if (_this.data.GoogleRecaptchaTheme !== null && _this.data.GoogleRecaptchaSiteKey !== null) {\n window.setTimeout(function () {\n var captchaElement = window.document.getElementById(_this.data.CaptchaElementId);\n captchaElement.innerHTML = '';\n\n try {\n _this.data.GoogleRecaptchaInstance = window.grecaptcha.render(_this.data.CaptchaElementId, {\n 'sitekey': _this.data.GoogleRecaptchaSiteKey,\n 'theme': _this.data.GoogleRecaptchaTheme\n });\n } catch (err) {\n }\n }, 250);\n }\n }\n\n _this.addCancelReplyListeners();\n event.preventDefault();\n });\n });\n },\n replyHandler: function (event) {\n var meerkatForm = MeerkatForms.findClosest(event.target, '[data-meerkat-form]');\n\n if (typeof meerkatForm !== 'undefined' && meerkatForm !== null) {\n \n var replyingTo = meerkatForm.querySelectorAll('[name=ids]')[0].value;\n\n if (typeof MeerkatForms.data.Extend.canceled !== 'undefined' && MeerkatForms.data.Extend.canceled !== null) {\n MeerkatForms.data.Extend.canceled(replyingTo, meerkatForm);\n }\n\n if (MeerkatForms.data.Extend.closeOnCancel) {\n this.removeEventListener('click', MeerkatForms.replyHandler);\n meerkatForm.remove();\n }\n }\n\n event.preventDefault();\n },\n addCancelReplyListeners: function () {\n var _this = this;\n var cancelLinks = document.querySelectorAll('[data-meerkat-form=\"cancel-reply\"]');\n\n cancelLinks.forEach(function (el) {\n el.addEventListener('click', _this.replyHandler);\n });\n },\n init: function () {\n this.data.Extend = MeerkatReply;\n this.getReplyForm();\n this.addEventListeners();\n window.MeerkatReply = this.data.Extend;\n }\n };\n\n MeerkatForms.init();\n})();"]}