"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5718],{pq7p:function(e,t,r){r.d(t,{I:function(){return y},R:function(){return RichTextEditor},S:function(){return k}});var o=r("FRPj"),n=r("q1tI"),l=r("LgdP"),i=r("l9Yf"),a=r("wp0n"),d=r("Gx+P"),u=r("sEfC"),s=r.n(u),c=r("27Mu"),p=r("g35t"),m=r("VhOp"),g=r("rBCA"),f=r("iBNF"),b=r("IQVP"),v=r("Aqof"),h=r("0CvA"),x=r("dxY4"),w=r("ywlr");let k=g.Z.div` input:focus, textarea:focus, [contenteditable='true'] { outline: none; } &.has-ask-doctor-option { .textarea-control { border-bottom: none; border-radius: 4px 4px 0 0; } } &.error-description { .textarea-control { border: 1px solid ${f.r.colors.red600}; } } .textarea-control { position: relative; border: 1px solid ${f.r.colors.gray200}; border-radius: ${f.r.borderRadius}; &.--focus { border-color: ${f.r.colors.primaryBase}; box-shadow: 0px 0px 2px 2px ${f.r.colors.primary200}; } .textarea-wrapper { width: 100%; height: 200px; } .control-tool { position: absolute; bottom: 0; left: 0; display: flex; width: calc(100% - 2rem); height: 40px; align-items: center; justify-content: flex-end; border-top: 1px solid ${f.r.colors.gray200}; margin: 0 1rem; .tool-button { display: flex; width: 2rem; height: 2rem; align-items: center; justify-content: center; background: transparent; cursor: pointer; } .image-icon { vertical-align: middle; } } } .link-preview-wrapper { position: relative; .icon-close { position: absolute; top: 5px; right: 5px; width: 24px; height: 24px; cursor: pointer; } } .image-gallery { margin-bottom: 1rem; .image-item { position: relative; overflow: hidden; width: 100%; height: 0; padding-top: 67%; margin-top: 1rem; border-radius: ${f.r.borderRadius}; & > img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; } .close-btn { position: absolute; top: 8px; right: 8px; left: unset; width: 24px; height: 24px; cursor: pointer; } } } .description-label { margin-bottom: 5px; color: ${f.r.colors.gray600}; /* font-family: 'Open Sans', sans-serif; */ font-size: 13px; font-weight: bold; } .count-string { margin-top: 5px; color: ${f.r.colors.gray500}; font-size: 11px; text-align: right; } .input-notification { display: flex; & > img { width: 16px; height: 16px; margin-top: 1.5px; margin-right: 8px; } } `,E=g.Z.div` height: 100%; position: relative; width: 100%; display: flex; flex-direction: column; .ql-toolbar.ql-snow { top: 0; width: 100%; // position: sticky; z-index: 3; border: none; border-bottom: 1px solid #ccc; border-radius: 4px 4px 0 0; background: white; .ql-formats { display: inline-flex; align-items: center; margin-right: 0.5rem; .link-tool-wrapper { .popover-menu__content { padding: 0.5rem; transform: translateX(calc(-50% - 1rem)); max-width: calc(100vw - 4rem); ::before { right: calc(50% - 8px); } .link-tool-popover { input { padding-left: 1rem; } .link-input-url { margin-bottom: 0.5rem; } .link-input-text { margin-bottom: 0.5rem; } label { display: inline-block; margin-bottom: 0.2rem; } .link-input-button-wrapper { &[data-is-marrybaby='true'] { .link-input-button { border: solid 2px ${f.r.mbColors.pink}; background-color: ${f.r.mbColors.pink}; &:hover:not(:disabled) { border: solid 2px ${f.r.mbColors.pink}; background-color: ${f.r.colors.white}; color: ${f.r.mbColors.pink}; } } } } .link-input-button { width: auto; height: auto; padding: 0.4rem 1rem; background-color: ${f.r.colors.primaryBase}; &:disabled { border-color: #bfbfbf; background-color: #bfbfbf; color: #fff; cursor: not-allowed; } &:hover:not(:disabled) { background-color: ${f.r.colors.primaryHover}; } } .error-text { padding: 0; margin-bottom: 0.5rem; font-weight: 600; color: ${f.r.colors.red700}; } } } } } @media (max-width: 450px) { position: relative; .ql-formats { .link-tool-wrapper { position: unset; .popover-menu__content { left: 0; transform: unset; max-width: 100%; } } } } } .quill { flex: 1; overflow-y: hidden; .ql-container { display: inline-block; width: 100%; min-height: 100%; /* padding: 14px 16px; */ border: none; border-radius: ${f.r.borderRadius}; color: ${f.r.colors.gray800}; font-size: 1rem; line-height: 1.5; resize: none; white-space: break-spaces; .ql-editor { word-break: break-word; overflow-wrap: break-word; /* -ms-overflow-style: none; scrollbar-width: none; &::-webkit-scrollbar { display: none; } */ } mocka { padding: 2px 6px; border-radius: 1rem; &[data-url='true'] { /* background-color: #eeeeff; */ font-style: italic; color: #1890ff; cursor: pointer; outline: none; text-decoration: underline; } &[data-error='true'] { background-color: #ffeeee; color: red; text-decoration: underline; font-style: bold; } } mention { padding: 2px 6px; border-radius: 1rem; background-color: #eeeeff; color: #1890ff; cursor: pointer; outline: none; text-decoration: none; } ol, ul { padding-left: 1rem; } } } .mention-search-container { position: absolute; background: white; border-radius: ${f.r.borderRadius}; filter: drop-shadow(0px 10px 16px rgba(0, 0, 0, 0.04)) drop-shadow(0px 2px 8px rgba(0, 0, 0, 0.04)) drop-shadow(0px 0px 1px rgba(0, 0, 0, 0.04)); overflow-y: scroll; z-index: 99; ::-webkit-scrollbar { -webkit-appearance: none; } ::-webkit-scrollbar:vertical { width: 14px; } ::-webkit-scrollbar-thumb { border-radius: ${f.r.borderRadius}; background-color: #d9d9d9; @supports (background-clip: padding-box) { border: 3px solid rgba(0, 0, 0, 0); background-clip: padding-box; } @supports not (background-clip: padding-box) { border: 3px solid white; } } ::-webkit-scrollbar-track { background-color: #fff; border-radius: 0 6px 6px 0; border-left: 1px solid #f2f2f2; } .mention-search-item { cursor: pointer; padding: 12px 1rem; display: flex; align-items: center; &.item-selected { background-color: ${f.r.colors.gray100}; } .search-avatar { width: 40px; height: 40px; font-size: 20px; margin-right: 20px; } } } `;var y="data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3e%3cpath stroke='%23737373' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.75' d='M9.545 16H7.091c-.537 0-1.07-.104-1.566-.305a4.1 4.1 0 0 1-1.327-.867A3.96 3.96 0 0 1 3 12c0-1.06.431-2.078 1.198-2.828A4.14 4.14 0 0 1 7.091 8h2.454m4.38 0h2.984c.537 0 1.07.103 1.566.304a4.1 4.1 0 0 1 1.327.868c.38.371.681.812.887 1.297a3.92 3.92 0 0 1 0 3.062 4 4 0 0 1-.887 1.297c-.38.372-.831.667-1.327.867a4.2 4.2 0 0 1-1.566.305h-2.983M9 12h6'/%3e%3c/svg%3e";let C=null;(0,o.a)(void 0,void 0,void 0,function*(){if("undefined"==typeof window)return;let e=yield Promise.all([r.e(9774),r.e(2937),r.e(2138),r.e(9467),r.e(4467),r.e(6966),r.e(5243),r.e(8132),r.e(1375),r.e(4561),r.e(1448),r.e(5465),r.e(1217),r.e(5480),r.e(731),r.e(2050),r.e(2008),r.e(8469),r.e(8214),r.e(1482),r.e(6817),r.e(467),r.e(5951),r.e(9357),r.e(747),r.e(5675),r.e(6753),r.e(4802),r.e(3046),r.e(5745),r.e(3437),r.e(252),r.e(6839),r.e(9424),r.e(5702),r.e(8922),r.e(6399),r.e(553),r.e(2902),r.e(4969),r.e(3257),r.e(6611),r.e(7538),r.e(6894),r.e(5341)]).then(r.t.bind(r,"rmP6",23));C=e.default;let t=e.Quill||C.Quill;t.register("modules/preserveWhiteSpace",class{constructor(e,t){this.quill=e,this.options=t,e.container.style.whiteSpace="pre-line"}});let o=t.import("blots/inline");let MockABlot=class MockABlot extends o{static create(e){if(!e)return super.create(!1);let t=super.create(e);return MockABlot.setNodeConfigurations(t,e),t}static formats(e){return!!(e.innerText&&(e.getAttribute("data-href")||e.getAttribute("data-url")||e.getAttribute("data-error")||e.getAttribute("data-bad-word")))&&{"data-bad-word":e.getAttribute("data-bad-word"),"data-error":e.getAttribute("data-error"),"data-href":e.getAttribute("data-href"),"data-url":e.getAttribute("data-url"),"data-text":e.innerText||e.getAttribute("data-href")}}static setNodeConfigurations(e,t){var r,o;t&&(null===(o=null===(r=null==t?void 0:t["data-text"])||void 0===r?void 0:r.replace(/(\ )+/g," "))||void 0===o?void 0:o.replace(/(\u200c|‌)+/g,""))&&(t["data-bad-word"]&&e.setAttribute("data-bad-word",t["data-bad-word"]),t["data-href"]&&e.setAttribute("data-href",t["data-href"]),t["data-error"]&&e.setAttribute("data-error",t["data-error"]),t["data-url"]&&e.setAttribute("data-url",t["data-url"]))}};MockABlot.blotName="mocka1",MockABlot.tagName="mocka",t.register(MockABlot);let MentionBlot=class MentionBlot extends o{static create(e){if(!e)return super.create(!1);let t=super.create(e);return MentionBlot.setNodeConfigurations(t,e),t}static formats(e){return!!(e.getAttribute("data-name")&&e.getAttribute("data-id"))&&{"data-name":e.getAttribute("data-name"),"data-id":e.getAttribute("data-id")}}static setNodeConfigurations(e,t){var r,o;t&&t["data-id"]&&(null===(o=null===(r=null==t?void 0:t["data-name"])||void 0===r?void 0:r.replace(/(\ )+/g," "))||void 0===o?void 0:o.replace(/(\u200c|‌)+/g,""))&&(t["data-id"]&&e.setAttribute("data-id",t["data-id"]),t["data-name"]&&e.setAttribute("data-name",t["data-name"]))}};MentionBlot.blotName="mention",MentionBlot.tagName="mention",t.register(MentionBlot)});let inputModify=(e,t)=>{var r;let{formatUrl:o,bannedWords:n=[]}=t||{},l=(0,h.f)((0,h.r)(e));if(!o)return{value:(0,h.h)(l,n)};let i=(0,h.a)((0,h.w)(l)),a=(0,h.g)(l);if(a){let e=[];return a.forEach(t=>{if(t)try{let r=new URL(t);h.A.some(e=>r.origin.endsWith(e))||e.push(t)}catch(r){e.push(t)}}),e.length>0&&(i=i.replace(RegExp(`data-url="true">(${e.map(h.e).join("|")})<`,"gi"),'data-error="true" data-url="true">$1<').replace(RegExp(`data-href="/(${e.map(h.e).join("|")})" data-url="true">`,"gi"),'data-href="/$1" data-error="true" data-url="true">')),{invalidUrls:e,previewUrl:null===(r=a.filter(t=>-1===e.indexOf(t)))||void 0===r?void 0:r[0],value:(0,h.h)(i,n)}}return{value:(0,h.h)(i,n)}},RichTextEditor=({html:e,onChange:t,className:r,style:l,onImagePickerClick:i,bannedWords:d=[],onInvalidUrlsChange:u,onPreviewUrlChange:g,setEditorRef:f,isReplying:w})=>{var k,y,N,A;let R=(0,n.useRef)([]);R.current=d;let[T,S]=(0,n.useState)([]),[$,M]=(0,n.useState)(null),{data:{locale:q}}=(0,n.useContext)(m.T),B=(null==d?void 0:d.join(","))||"";(0,n.useEffect)(()=>{var e,t;let r=null===(t=null===(e=_.current)||void 0===e?void 0:e.getEditor())||void 0===t?void 0:t.root.innerHTML;H(r)},[B]);let fetchPreviewData=e=>{$&&$.url===e||(M({url:e,isFetching:!0}),(0,m.c)((0,m.e)(b.yy.FETCH_PREVIEW,{_locale:q}),"POST",{data:{link:e}}).then(t=>{var r,o,n,l;M({title:null===(r=null==t?void 0:t.data)||void 0===r?void 0:r.title,description:null===(o=null==t?void 0:t.data)||void 0===o?void 0:o.description,image:(null===(n=null==t?void 0:t.data)||void 0===n?void 0:n.image)||(null===(l=null==t?void 0:t.data)||void 0===l?void 0:l.logo),url:e})}).catch(()=>{M(null)}))},U=(0,n.useRef)(fetchPreviewData);U.current=fetchPreviewData;let H=(0,n.useCallback)(s()(e=>{if(e){let r=inputModify(e,{bannedWords:R.current,formatUrl:!0}),{invalidUrls:o,previewUrl:n,value:l}=r;o&&S(o),n?U.current(n):M(null),l!==e&&(null==t||t(l))}},500),[]);(0,n.useEffect)(()=>{u&&u(T)},[T]),(0,n.useEffect)(()=>{g&&((null==$?void 0:$.url)?g({title:$.title||"",url:$.url||"",image:$.image||"",description:$.description||""}):g(null))},[$]);let L=(0,n.useRef)(i);L.current=i;let O=(0,p.a)(),P=(0,n.useRef)({toolbar:{handlers:{image:()=>{var e;return null===(e=L.current)||void 0===e?void 0:e.call(L)},link:()=>!1},container:"#toolbar-"+O},preserveWhiteSpace:!0}),z=(0,n.useRef)(-1),_=(0,n.useRef)(null);f&&(null===(y=null===(k=_.current)||void 0===k?void 0:k.getEditor())||void 0===y?void 0:y.root)&&f(null===(A=null===(N=_.current)||void 0===N?void 0:N.getEditor())||void 0===A?void 0:A.root);let handleSelectionChange=()=>{var e,t,r,o,n,l,i,a;if(null===(t=null===(e=_.current)||void 0===e?void 0:e.getEditor())||void 0===t?void 0:t.root){let e=function(e){var t,r;let o=-1;if(void 0!==window.getSelection){let n=window.getSelection();if((null==n?void 0:n.rangeCount)&&(null==n?void 0:n.rangeCount)>0){let n=null===(t=window.getSelection())||void 0===t?void 0:t.getRangeAt(0);if(n){let t=n.cloneRange();t.selectNodeContents(e),t.setEnd(n.endContainer,n.endOffset),o=function calculateChildNodeOffset(e,t){return e.forEach((r,o)=>{let n=o+1===e.length;if(r.nodeType===Node.ELEMENT_NODE){let e=r.outerHTML;if(n)t+=e.indexOf(">")+1,t=calculateChildNodeOffset(r.childNodes,t);else{t+=e.length;return}}else r.nodeType===Node.TEXT_NODE&&(t+=(r.nodeValue||"").replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").length)}),t}(t.cloneContents().childNodes,o);let l=null===(r=n.endContainer.parentElement)||void 0===r?void 0:r.closest("mocka"),i=n.endContainer.nodeValue||n.endContainer.outerHTML;l&&(null==i?void 0:i.length)&&(o=o-n.endOffset+(l.outerHTML.length-(null==l?void 0:l.outerHTML.lastIndexOf(i))))}}}return o}(null===(o=null===(r=_.current)||void 0===r?void 0:r.getEditor())||void 0===o?void 0:o.root),t=null===(l=null===(n=_.current)||void 0===n?void 0:n.getEditor())||void 0===l?void 0:l.root.innerHTML;if(e>=0&&e0){let n=null===(t=window.getSelection())||void 0===t?void 0:t.getRangeAt(0);if(n){let t=n.cloneRange();t.selectNodeContents(e),t.setEnd(n.endContainer,n.endOffset);let l=(t.endContainer.nodeValue||"").substring(0,n.endOffset),i=l.lastIndexOf("@");if(i+1(0,o.a)(void 0,void 0,void 0,function*(){var o,n,l,i;if(!e||!DOMRect)return j([]);let a=yield((null===(o=(0,c.ej)(v.B))||void 0===o?void 0:o.length)||0)>0?(0,m.b)((0,m.e)(b.yy.SEARCH_USER,{_locale:q,name:e}),"get"):(0,m.q)((0,m.e)(b.qf.SEARCH_USER,{_locale:q,name:e}),"get");Z(0),j(null===(l=null===(n=null==a?void 0:a.data)||void 0===n?void 0:n.users)||void 0===l?void 0:l.filter(e=>!(null==r?void 0:r.includes(String(e.id)))));let d=null===(i=F.current)||void 0===i?void 0:i.getBoundingClientRect();if(t&&d){let e={top:t.bottom-d.top,width:"min(343px, 100%)",maxHeight:256},r=d.width-(t.left-d.left);r<343?e.right=0:e.left=t.left-d.left,W(e)}}),500),[]),setSelectUser=(e,t)=>{var r,o,n;if(Q.current){Q.current.deleteContents();let l=document.createElement("mention");l.setAttribute("data-id",e),l.setAttribute("data-name",t),l.innerText=t;let i=document.createTextNode(" ");Q.current.insertNode(i),Q.current.insertNode(l);let a=null===(o=null===(r=_.current)||void 0===r?void 0:r.getEditor())||void 0===o?void 0:o.root;a.focus();let d=null===(n=window.getSelection())||void 0===n?void 0:n.getRangeAt(0);null==d||d.setStart(Q.current.endContainer,Q.current.endOffset),null==d||d.setEnd(Q.current.endContainer,Q.current.endOffset)}j([])},F=(0,n.useRef)(null),Q=(0,n.useRef)(null),X=(0,n.useRef)(null),[Y,Z]=(0,n.useState)(0);return(0,n.useEffect)(()=>{if(X.current){let e=X.current,t=e.children.item(Y);if(t){let r=e.getBoundingClientRect(),o=t.getBoundingClientRect();t.offsetTope.scrollTop+r.height&&(e.scrollTop=t.offsetTop-r.height+o.height)}}},[Y]),(0,n.useEffect)(()=>{let clickHandler=function(e){var t;(null===(t=F.current)||void 0===t?void 0:t.contains(e.target))||j([])};return window.addEventListener("click",clickHandler,{passive:!0}),()=>{window.removeEventListener("click",clickHandler)}},[]),n.createElement(E,{ref:F,className:r,style:l,onKeyDownCapture:e=>{if(null==D?void 0:D.length){let t=!1;if("ArrowDown"===e.key)t=!0,Z(e=>e+1>=D.length?0:e+1);else if("Escape"===e.key)t=!0,Z(0),j([]);else if("ArrowUp"===e.key)t=!0,Z(e=>e-1<0?D.length-1:e-1);else if("Enter"===e.key||"Tab"===e.key){let e=D[Y];e&&(t=!0,setSelectUser(e.id,e.name))}if(t)return e.preventDefault(),!1}}},n.createElement(CustomToolbar,{id:O,onAddLink:(e,r)=>{var o,n;let l=z.current+1,i=null===(n=null===(o=_.current)||void 0===o?void 0:o.getEditor())||void 0===n?void 0:n.root.innerHTML,a=((null==i?void 0:i.substring(0,l))||"")+`${e} `+((null==i?void 0:i.substring(l))||"");null==t||t(a),H(a)}}),C&&n.createElement(C,{ref:_,theme:"snow",value:e,onChange:e=>{null==t||t(e),H(e),handleSelectionChange()},onChangeSelection:()=>{handleSelectionChange()},modules:P.current,formats:["mocka1","mention","id","key","bold","italic","underline","list","bullet"]}),!!(null==D?void 0:D.length)&&n.createElement("div",{ref:X,className:"mention-search-container",style:I},D.map((e,t)=>n.createElement("div",{className:`mention-search-item ${Y===t?"item-selected":""}`,key:e.id,onClick:t=>{t.preventDefault(),t.stopPropagation(),setSelectUser(e.id,e.name)},onMouseEnter:()=>{Z(t)}},n.createElement(x.U,{className:"search-avatar",username:e.name,avatar:e.avatar}),n.createElement("div",null,n.createElement(a.T,{size:"p2"},e.name),n.createElement(a.T,{size:"p4",color:"#595959"},"@",e.username))))))},CustomToolbar=({onAddLink:e,id:t})=>n.createElement("div",{id:"toolbar-"+t,onClick:e=>{e.preventDefault(),e.stopPropagation()}},n.createElement("span",{className:"ql-formats"},n.createElement("button",{className:"ql-bold",type:"button"}),n.createElement("button",{className:"ql-italic",type:"button"}),n.createElement("button",{className:"ql-underline",type:"button"})),n.createElement("span",{className:"ql-formats"},n.createElement("button",{className:"ql-list",value:"ordered",type:"button"}),n.createElement("button",{className:"ql-list",value:"bullet",type:"button"})),n.createElement("span",{className:"ql-formats"},e&&n.createElement(w.P,{className:"link-tool-wrapper",toggleButtonContent:n.createElement("img",{className:"link-icon",src:y,loading:"lazy"}),buttonProps:{size:"md",color:"transparent"},align:"end"},({setShow:t})=>n.createElement(LinkToolInputPopover,{onAddUrl:e,setShow:t})))),N=["notification.limitUrlDomain","notification.urlWrongFormat"],LinkToolInputPopover=({onAddUrl:e,setShow:t})=>{let{data:{env:{isMarryBaby:r}}}=(0,n.useContext)(m.T),{t:o}=(0,d.u)(),[u,s]=(0,n.useState)(""),[c,p]=(0,n.useState)(""),[g,f]=(0,n.useState)(-1),checkUrlValid=e=>{let t=(0,h.c)(e.trim());try{let e=new URL(t);if(!e.protocol.startsWith("http"))return f(1),!1;if(!h.A.some(t=>e.origin.endsWith("/"+t)||e.origin.endsWith("."+t)))return f(0),!1;return f(-1),!0}catch(e){return f(1),!1}},b=u.trim()&&c.trim()&&g<0;return n.createElement("div",{className:"link-tool-popover"},n.createElement(i.I,{name:"url",value:u,size:"md",label:"URL",placeholder:o("placeholder.enterUrlHere"),type:"text",className:"link-input-url",onChange:e=>{s(e),checkUrlValid(e)}}),g>=0&&n.createElement(a.T,{size:"c2",className:"error-text"},o(N[g])),n.createElement(i.I,{name:"text",value:c,size:"md",label:o("createPost.urlText"),placeholder:o("placeholder.enterUrlTextHere"),type:"text",className:"link-input-text",onChange:e=>p(e)}),n.createElement("div",{"data-is-marrybaby":r,className:"link-input-button-wrapper"},n.createElement(l.B,{theme:r?"marryBaby":"helloSites",size:"sm",color:"primary",className:"link-input-button",onClick:()=>{b&&(e(c.trim(),(0,h.c)(u.trim())),t&&t(!1))},isDisabled:!b},o("insert"))))}}}]);