{"version":3,"file":"/assets/js/public_post.js","mappings":"4GAAA,IAAMA,EAASC,SAASC,iBAAiB,mBACzC,GAAIF,EAAQ,KACkBG,EADlBC,E,64BAAAC,CACYL,GAAM,QAAAM,EAAA,eAAfC,EAAKJ,EAAAK,MAAAC,EACqBF,EAAMG,QAAhCC,EAAEF,EAAFE,GAAIC,EAASH,EAATG,UAAWC,EAAOJ,EAAPI,QACtB,GAAIF,EAAI,CAEJG,MAAMC,IADW,+CACG,CAChBC,OAAQ,CACJC,IAAKC,UACLC,KAAM,UACNR,GAAAA,KAGHS,MAAK,SAACC,GACH,IAAMC,EAAO,GACb,GAAID,EAAEE,KAAKC,MAAMC,OAAS,EAAG,CACzB,IAAMC,EAAKL,EAAEE,KAAKC,MAAM,GAAGG,QAAQC,WAAWC,KAC9CP,EAAKQ,KAAK,YAADC,OAAalB,EAAO,gBAAAkB,OAAeL,EAAGM,IAAG,aAAAD,OAAYL,EAAGO,MAAK,cAAAF,OAAaL,EAAGQ,OAAM,4BAChG,MACIZ,EAAKQ,KAAK,YAADC,OAAalB,EAAO,gBAAAkB,OAAenB,EAAS,6BAEzDL,EAAM4B,UAAYb,EAAKc,KAAK,GAChC,IAAE,OACK,SAACC,GACJC,QAAQC,IAAIF,EAAIG,SAAWH,EAAIG,SAAYH,EAAII,QAAUJ,EAAII,QAAUJ,GACvE,IAAMf,EAAO,YAAHS,OAAelB,EAAO,iGAChCN,EAAM4B,UAAYb,CACtB,GACR,CAAC,EA1BL,IAAAlB,EAAAsC,MAAAvC,EAAAC,EAAAuC,KAAAC,MAA4BtC,GA2B3B,OAAA+B,GAAAjC,EAAAyC,EAAAR,EAAA,SAAAjC,EAAA0C,GAAA,CACL,CAGqB7C,SAAS8C,eAAe,mBAEzCC,QAAQC,KAAK,CACTC,SAAU,0BACVC,SAAS,EACTC,SAAU,QACVC,QAAS,gUACTC,gBAAgB,EAChBC,QAAS,mJACTC,yBAA0B,GAC1BC,UAAU,EACVC,WAAY,IACZC,eAAgB,QAKxB,IAAMC,EAAkB3D,SAAS8C,eAAe,mBAC5Ca,GACAA,EAAgBC,iBAAiB,UAAU,SAAAhB,GAEvC,GADAA,EAAEiB,kBACGC,QAAQ,eAAgB,OAAO,EAEpCjD,MAAK,OAAQ+B,EAAEmB,OAAOC,QACjB7C,MAAM,SAAAC,GACH6C,MAAM,YACN,IAAIC,EAAS,SACPC,EAAYC,SAASC,OAAOC,MAAM,mBACpCH,GAAaA,EAAU3C,OAAS,IAChC0C,EAASC,EAAU,GAAGI,QAAQ,IAAK,KAGvCH,SAASI,KAAO,GAAH1C,OAAMsC,SAASK,OAASL,SAASM,SAAQ,KAAA5C,OAAIoC,EAC9D,IAAE,OACK,SAAA9B,GACHC,QAAQC,IAAIF,EAAIG,SAAWH,EAAIG,SAAYH,EAAII,QAAUJ,EAAII,QAAUJ,GACvE6B,MAAM,2BACV,GACR,IAGJ,IAAMU,EAAiB3E,SAAS8C,eAAe,cAC3C6B,GACAA,EAAef,iBAAiB,UAAU,SAAAhB,GACtCA,EAAEiB,iBACF,IAAMhB,EAAID,EAAEmB,OACZa,MAAMC,KAAKhC,EAAE5C,iBAAiB,mCACzB6E,KAAI,SAAAC,GACGA,EAAGC,UAAUC,SAAS,cACtBF,EAAGC,UAAUE,OAAO,cACbH,EAAGC,UAAUC,SAAS,sBAC7BF,EAAGI,UAAY,GAEvB,IAEJ,IAAMC,EAAcvC,EAAEwC,cAAc,yBACpCD,EAAYD,UAAY,UACxBC,EAAYE,aAAa,YAAY,GACrC,IAAMC,EAAK,IAAIC,SAAS3C,GACxB0C,EAAGE,OAAO,UAAW1C,QAAQ2C,aAAaC,WAAW,CAACC,OAAQ,SAE9D/E,MAAMgF,KAAKjD,EAAEmB,OAAOC,OAAQuB,GACvBpE,MAAK,SAAAC,GACFgE,EAAYD,UAAY,SACpB/D,EAAEE,KAAKwE,aACP1B,SAASI,KAAOpD,EAAEE,KAAKwE,WAG/B,IAAE,OACK,SAAA1D,GAEH,GADAC,QAAQC,IAAIF,EAAIG,SAAWH,EAAIG,SAAWH,GACtCA,EAAIG,UAAoC,MAAxBH,EAAIG,SAASwD,OAAgB,KACtCC,EAAU5D,EAAIG,SAASjB,KAAvB0E,OACMC,OAAOC,KAAKF,GACpBG,SAAQ,SAAAnF,GACT,IAAMoF,EAAMJ,EAAOhF,GAAK,GACpBqF,EAAOxD,EAAEwC,cAAc,UAADvD,OAAWd,EAAG,QAC3B,aAARA,IACDqF,EAAOxD,EAAEwC,cAAc,wBAGvBgB,KACiBA,EAAKC,QAAQ,eAAejB,cAAc,qBAClDkB,YAAcH,EACvBC,EAAKrB,UAAUwB,IAAI,cAE3B,GACJ,MACIvC,MAAM,gCAGVmB,EAAYD,UAAY,OACxBC,EAAYE,aAAa,YAAY,EACzC,GACR,IAGJ,IAAMmB,EAAyBzG,SAAS8C,eAAe,6BACnD2D,GACAA,EAAuB7C,iBAAiB,SAAS,SAAAhB,GAC7C,IACM8D,EADY1G,SAAS8C,eAAe,kBACX7C,iBAAiB,kCAChD,OAA6B,IAAxByG,EAAalF,QACdyC,MAAM,mBACC,KAGLH,QAAQ,GAADhC,OAAI4E,EAAalF,OAAM,2BAEpCoD,MAAMC,KAAK6B,GAAc5B,KAAI,SAAAC,GACzB,IAAM4B,EAAI,CACNC,QAAS7B,EAAGtE,QAAQoG,OACpBC,YAAa/B,EAAGxE,OAGpBM,MAAK,OAAQ,wBAAyB,CAClCE,OAAQ4F,IAEPxF,MAAK,SAAAC,GACFiB,QAAQC,IAAIlB,GACZ2F,cAAchC,EAAGuB,QAAQ,MAC7B,IAAE,OACK,SAAAlE,GACHC,QAAQC,IAAIF,EAAIG,SAAWH,EAAIG,SAAWH,GAC1C2C,EAAGC,UAAUwB,IAAI,aACrB,GACR,GACJ,G","sources":["webpack:///./resources/js/public_post.js"],"sourcesContent":["const videos = document.querySelectorAll('[data-video-id]');\nif (videos) {\n for (const video of videos) {\n const {id, thumbnail, showUrl} = video.dataset;\n if (id) {\n const endpoint = 'https://www.googleapis.com/youtube/v3/videos';\n axios.get(endpoint, {\n params: {\n key: googleKey,\n part: 'snippet',\n id\n }\n })\n .then((r) => {\n const code = [];\n if (r.data.items.length > 0) {\n const tb = r.data.items[0].snippet.thumbnails.high;\n code.push(`
`);\n } else {\n code.push(`
`);\n }\n video.innerHTML = code.join('');\n })\n .catch((err) => {\n console.log(err.response ? err.response : (err.request ? err.request : err));\n const code = `
`;\n video.innerHTML = code;\n });\n }\n }\n}\n\n// public 글쓰기 모드\nconst publicEditor = document.getElementById('editor-content');\nif (publicEditor) {\n tinyMCE.init({\n selector: 'textarea#editor-content',\n menubar: false,\n language: 'ko_KR',\n plugins: 'print preview paste importcss searchreplace autolink autosave autoresize save directionality code visualblocks visualchars fullscreen image link media template codesample table charmap hr pagebreak nonbreaking anchor toc insertdatetime advlist lists wordcount imagetools textpattern noneditable help charmap emoticons',\n toolbar_sticky: true,\n toolbar: 'bold italic | alignleft aligncenter alignright alignjustify | numlist bullist | forecolor backcolor removeformat | charmap emoticons link | code',\n autoresize_bottom_margin: 50,\n branding: false,\n min_height: 500,\n directionality: 'ltr'\n });\n}\n\n// public post 삭제\nconst destroyPostForm = document.getElementById('destroyPostForm');\nif (destroyPostForm) {\n destroyPostForm.addEventListener('submit', e => {\n e.preventDefault();\n if (!confirm('이 글을 삭제할까요?')) return false;\n\n axios.delete(e.target.action)\n .then( r => {\n alert('삭제되었습니다.');\n let pageNo = 'page=1';\n const pageNoArr = location.search.match(/(&page=[\\d]+)/gi);\n if (pageNoArr && pageNoArr.length > 0) {\n pageNo = pageNoArr[0].replace(/&/, '');\n }\n\n location.href = `${location.origin + location.pathname}?${pageNo}`;\n })\n .catch(err=>{\n console.log(err.response ? err.response : (err.request ? err.request : err));\n alert('삭제 오류 발생 : 관리자에게 문의바랍니다.');\n });\n });\n}\n\nconst publicPostForm = document.getElementById('publicForm');\nif (publicPostForm) {\n publicPostForm.addEventListener('submit', e => {\n e.preventDefault();\n const f = e.target;\n Array.from(f.querySelectorAll('.is-invalid, .invalid-feedback'))\n .map(el=>{\n if (el.classList.contains('is-invalid')) {\n el.classList.remove('is-invalid');\n } else if (el.classList.contains('invalid-feedback')) {\n el.innerText = '';\n }\n });\n\n const submitBtnEl = f.querySelector('button[type=\"submit\"]');\n submitBtnEl.innerText = '저장 중...';\n submitBtnEl.setAttribute('disabled', true);\n const fd = new FormData(f);\n fd.append('content', tinyMCE.activeEditor.getContent({format: 'raw'}));\n\n axios.post(e.target.action, fd)\n .then(r=>{\n submitBtnEl.innerText = '저장 완료!';\n if (r.data.redirectTo) {\n location.href = r.data.redirectTo;\n }\n\n })\n .catch(err=>{\n console.log(err.response ? err.response : err);\n if (err.response && err.response.status === 422) {\n const {errors} = err.response.data;\n const keys = Object.keys(errors);\n keys.forEach(key=>{\n const msg = errors[key][0];\n let item = f.querySelector(`[name=\"${key}\"]`);\n if ( key === 'attached') {\n item = f.querySelector('[name=\"attached[]\"]');\n }\n\n if (item) {\n const feedback = item.closest('.form-group').querySelector('.invalid-feedback');\n feedback.textContent = msg;\n item.classList.add('is-invalid');\n }\n })\n } else {\n alert('저장 중 오류 발생!\\r\\n관리자에게 문의바랍니다.');\n }\n\n submitBtnEl.innerText = '저장하기';\n submitBtnEl.setAttribute('disabled', false);\n });\n });\n}\n\nconst attachedFileDelTrigger = document.getElementById('attached_file_del_trigger');\nif (attachedFileDelTrigger) {\n attachedFileDelTrigger.addEventListener('click', e=>{\n const container = document.getElementById('attached_files');\n const checkedFiles = container.querySelectorAll('input[type=\"checkbox\"]:checked');\n if ( checkedFiles.length === 0 ) {\n alert('삭제할 파일을 선택하세요.');\n return false;\n }\n\n if ( !confirm(`${checkedFiles.length}개의 파일을 삭제하시겠습니까?`) ) return false;\n\n Array.from(checkedFiles).map(el=>{\n const d = {\n post_id: el.dataset.postId,\n attached_id: el.value\n }\n\n axios.delete('/api/attached/destroy', {\n params: d\n })\n .then(r=>{\n console.log(r);\n removeFadeOut(el.closest('li'));\n })\n .catch(err=>{\n console.log(err.response ? err.response : err);\n el.classList.add('is-invalid');\n })\n });\n });\n}\n"],"names":["videos","document","querySelectorAll","_step","_iterator","_createForOfIteratorHelper","_loop","video","value","_video$dataset","dataset","id","thumbnail","showUrl","axios","get","params","key","googleKey","part","then","r","code","data","items","length","tb","snippet","thumbnails","high","push","concat","url","width","height","innerHTML","join","err","console","log","response","request","s","n","done","e","f","getElementById","tinyMCE","init","selector","menubar","language","plugins","toolbar_sticky","toolbar","autoresize_bottom_margin","branding","min_height","directionality","destroyPostForm","addEventListener","preventDefault","confirm","target","action","alert","pageNo","pageNoArr","location","search","match","replace","href","origin","pathname","publicPostForm","Array","from","map","el","classList","contains","remove","innerText","submitBtnEl","querySelector","setAttribute","fd","FormData","append","activeEditor","getContent","format","post","redirectTo","status","errors","Object","keys","forEach","msg","item","closest","textContent","add","attachedFileDelTrigger","checkedFiles","d","post_id","postId","attached_id","removeFadeOut"],"sourceRoot":""}