(function(u,e){"object"===typeof exports&&"object"===typeof module?module.exports=e():"function"===typeof define&&define.amd?define([],e):"object"===typeof exports?exports["vue-highlights"]=e():u["vue-highlights"]=e()})("undefined"!==typeof self?self:this,(function(){return function(u){var e={};function a(d){if(e[d])return e[d].exports;var t=e[d]={i:d,l:!1,exports:{}};return u[d].call(t.exports,t,t.exports,a),t.l=!0,t.exports}return a.m=u,a.c=e,a.d=function(u,e,d){a.o(u,e)||Object.defineProperty(u,e,{enumerable:!0,get:d})},a.r=function(u){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})},a.t=function(u,e){if(1&e&&(u=a(u)),8&e)return u;if(4&e&&"object"===typeof u&&u&&u.__esModule)return u;var d=Object.create(null);if(a.r(d),Object.defineProperty(d,"default",{enumerable:!0,value:u}),2&e&&"string"!=typeof u)for(var t in u)a.d(d,t,function(e){return u[e]}.bind(null,t));return d},a.n=function(u){var e=u&&u.__esModule?function(){return u["default"]}:function(){return u};return a.d(e,"a",e),e},a.o=function(u,e){return Object.prototype.hasOwnProperty.call(u,e)},a.p="",a(a.s="fb15")}({1985:function(u,e,a){(function(u,d){var t;/*! https://mths.be/punycode v1.4.1 by @mathias */(function(n){e&&e.nodeType,u&&u.nodeType;var r="object"==typeof d&&d;r.global!==r&&r.window!==r&&r.self;var c,i=2147483647,o=36,s=1,f=26,l=38,b=700,h=72,g=128,m="-",p=/^xn--/,v=/[^\x20-\x7E]/,y=/[\x2E\u3002\uFF0E\uFF61]/g,k={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},w=o-s,x=Math.floor,C=String.fromCharCode;function P(u){throw new RangeError(k[u])}function j(u,e){var a=u.length,d=[];while(a--)d[a]=e(u[a]);return d}function F(u,e){var a=u.split("@"),d="";a.length>1&&(d=a[0]+"@",u=a[1]),u=u.replace(y,".");var t=u.split("."),n=j(t,e).join(".");return d+n}function A(u){var e,a,d=[],t=0,n=u.length;while(t=55296&&e<=56319&&t65535&&(u-=65536,e+=C(u>>>10&1023|55296),u=56320|1023&u),e+=C(u),e})).join("")}function U(u){return u-48<10?u-22:u-65<26?u-65:u-97<26?u-97:o}function D(u,e){return u+22+75*(u<26)-((0!=e)<<5)}function E(u,e,a){var d=0;for(u=a?x(u/b):u>>1,u+=x(u/e);u>w*f>>1;d+=o)u=x(u/w);return x(d+(w+1)*u/(u+l))}function $(u){var e,a,d,t,n,r,c,l,b,p,v=[],y=u.length,k=0,w=g,C=h;for(a=u.lastIndexOf(m),a<0&&(a=0),d=0;d=128&&P("not-basic"),v.push(u.charCodeAt(d));for(t=a>0?a+1:0;t=y&&P("invalid-input"),l=U(u.charCodeAt(t++)),(l>=o||l>x((i-k)/r))&&P("overflow"),k+=l*r,b=c<=C?s:c>=C+f?f:c-C,lx(i/p)&&P("overflow"),r*=p}e=v.length+1,C=E(k-n,e,0==n),x(k/e)>i-w&&P("overflow"),w+=x(k/e),k%=e,v.splice(k++,0,w)}return z(v)}function B(u){var e,a,d,t,n,r,c,l,b,p,v,y,k,w,j,F=[];for(u=A(u),y=u.length,e=g,a=0,n=h,r=0;r=e&&vx((i-a)/k)&&P("overflow"),a+=(c-e)*k,e=c,r=0;ri&&P("overflow"),v==e){for(l=a,b=o;;b+=o){if(p=b<=n?s:b>=n+f?f:b-n,l\?@\[\]\^_{|}~\$/,x=/\x09-\x0D\x20\x85\xA0\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000/,C=/[0-9]+/,P=/(?:xn--[\-0-9a-z]+)/,j=/[a-z0-9!?\*'@\(\);:&=\+\$\/%#\[\]\-_\.,~|]/i,F=/[a-z0-9\-_&=#\/]/i,A=t(/[a-z#{cyrillicLettersAndMarks}0-9!*';:=+,.$/%#[\]\-\u2013_~@|&#{latinAccentChars}]/i,{cyrillicLettersAndMarks:g,latinAccentChars:y}),z=t("\\((?:#{validGeneralUrlPathChars}+|(?:#{validGeneralUrlPathChars}*\\(#{validGeneralUrlPathChars}+\\)#{validGeneralUrlPathChars}*))\\)",{validGeneralUrlPathChars:A},"i"),U=t(/[+\-a-z#{cyrillicLettersAndMarks}0-9=_#/#{latinAccentChars}]|(?:#{validUrlBalancedParens})/i,{cyrillicLettersAndMarks:g,latinAccentChars:y,validUrlBalancedParens:z}),D=t(/(?:[^A-Za-z0-9@@$###{invalidCharsGroup}]|[#{directionalMarkersGroup}]|^)/,{invalidCharsGroup:v,directionalMarkersGroup:m}),E=o("#{punct}#{spacesGroup}#{invalidCharsGroup}#{directionalMarkersGroup}",{punct:w,spacesGroup:x,invalidCharsGroup:v,directionalMarkersGroup:m}),$=t(/[^#{invalidDomainChars}]/,{invalidDomainChars:E}),B=t(/(?:(?:#{validDomainChars}(?:-|#{validDomainChars})*)?#{validDomainChars}\.)/,{validDomainChars:$}),S=t(/(?:(?:#{validDomainChars}(?:[_-]|#{validDomainChars})*)?#{validDomainChars}\.)/,{validDomainChars:$}),_=t(/(?:#{validSubdomain}*#{validDomainName}(?:#{validGTLD}|#{validCCTLD}|#{validPunycode}))/,{validDomainName:B,validSubdomain:S,validGTLD:i,validCCTLD:r,validPunycode:P}),T=t("(?:(?:#{validGeneralUrlPathChars}*(?:#{validUrlBalancedParens}#{validGeneralUrlPathChars}*)*#{validUrlPathEndingChars})|(?:@#{validGeneralUrlPathChars}+/))",{validGeneralUrlPathChars:A,validUrlBalancedParens:z,validUrlPathEndingChars:U},"i"),M=t(/(?:[#{bmpLetterAndMarks}]|(?=#{nonBmpCodePairs})(?:#{astralLetterAndMarks}))/,{bmpLetterAndMarks:l,nonBmpCodePairs:k,astralLetterAndMarks:s}),G=t(/(?:[#{bmpLetterAndMarks}#{bmpNumerals}#{hashtagSpecialChars}]|(?=#{nonBmpCodePairs})(?:#{astralLetterAndMarks}|#{astralNumerals}))/,{bmpLetterAndMarks:l,bmpNumerals:b,hashtagSpecialChars:p,nonBmpCodePairs:k,astralLetterAndMarks:s,astralNumerals:f}),L=t(/(?:^|\uFE0E|\uFE0F|$|(?!#{hashtagAlphaNumeric}|&)#{codePoint})/,{codePoint:h,hashtagAlphaNumeric:G}),N=/(?:^|[^a-zA-Z0-9_!#$%&*@@]|(?:^|[^a-zA-Z0-9_+~.-])(?:rt|RT|rT|Rt):?)/,O=t("((#{validUrlPrecedingChars})((https?:\\/\\/)?(#{validDomain})(?::(#{validPortNumber}))?(\\/#{validUrlPath}*)?(\\?#{validUrlQueryChars}*#{validUrlQueryEndingChars})?))",{validUrlPrecedingChars:D,validDomain:_,validPortNumber:C,validUrlPath:T,validUrlQueryChars:j,validUrlQueryEndingChars:F},"gi"),q=t(/(?:(?:[-a-z0-9#{latinAccentChars}]+)\.)+(?:#{validGTLD}|#{validCCTLD}|#{validPunycode})/gi,{latinAccentChars:y,validGTLD:i,validCCTLD:r,validPunycode:P}),R=(t(/^https?:\/\/t\.co\/([a-z0-9]+)(?:\?#{validUrlQueryChars}*#{validUrlQueryEndingChars})?/,{validUrlQueryChars:j,validUrlQueryEndingChars:F},"i"),/[##]/),W=t(/^(?:#{hashSigns}|:\/\/)/,{hashSigns:R}),I=t(/(#{hashtagBoundary})(#{hashSigns})(?!\uFE0F|\u20E3)(#{hashtagAlphaNumeric}*#{hashtagAlpha}#{hashtagAlphaNumeric}*)/gi,{hashtagBoundary:L,hashSigns:R,hashtagAlphaNumeric:G,hashtagAlpha:M}),Q=/[@@]/,Z=t(/^(?:#{atSigns}|[#{latinAccentChars}]|:\/\/)/,{atSigns:Q,latinAccentChars:y}),H=t("(#{validMentionPrecedingChars})(#{atSigns})([a-zA-Z0-9_.]{1,20})",{validMentionPrecedingChars:N,atSigns:Q},"g");var K=function(u){if(!u||!u.match(Q))return[];const e=[];return u.replace(H,(function(u,a,d,t,n,r){const c=r.slice(n+u.length);if(!c.match(Z)){const u=n+a.length,d=u+t.length+1;e.push({username:t,indices:[u,d]})}})),e},V=function(u){if(!u||!u.match(R))return[];let e=[];return u.replace(I,(function(u,a,d,t,n,r){const c=r.slice(n+u.length);if(c.match(W))return;const i=n+a.length,o=i+t.length+1;e.push({hashtag:t,indices:[i,o]})})),e},J=a("1985"),X=a.n(J);const Y=63,uu="xn--",eu={toAscii:function(u){if(u.substring(0,4)===uu&&!u.match(q))return;const e=u.split(".");for(let a=0;aY)return}return e.join(".")}};var au=eu;const du="https://",tu={extractUrlsWithoutProtocol:!0},nu=4096,ru=/[-_./]$/;function cu(u,e,a){let d=u.length;const t=au.toAscii(a);return!(!t||!t.length)&&(d=d+t.length-a.length,e.length+d<=nu)}const iu=function(u,e=tu){if(!u||(e.extractUrlsWithoutProtocol?!u.match(/\./):!u.match(/:/)))return[];const a=[];while(O.exec(u)){const u=RegExp.$2;let d=RegExp.$3;const t=RegExp.$4,n=RegExp.$5,r=RegExp.$7;let c=O.lastIndex;const i=c-d.length;if(cu(d,t||du,n))if(t)a.push({url:d,indices:[i,c]});else{if(!e.extractUrlsWithoutProtocol||u.match(ru))continue;let t=null,o=0;if(n.replace(q,(function(u){const e=n.indexOf(u,o);o=e+u.length,t={url:u,indices:[i+e,i+o]},a.push(t)})),null==t)continue;r&&(t.url=d.replace(n,t.url),t.indices[1]=c)}}return a};var ou=iu,su=function(u){u.sort((function(u,e){return u.indices[0]-e.indices[0]}));let e=u[0];for(let a=1;au[a].indices[0]?(u.splice(a,1),a--):e=u[a]},fu=function(u,e){const a=ou(u,e).concat(K(u)).concat(V(u));return 0===a.length?[]:(su(a),a)};const lu={"&":"&",">":">","<":"<",'"':""","'":"'"};function bu(u){return u&&u.replace(/[&"'><]/g,(function(u){return lu[u]}))}function hu(u){const e={};for(const a in u)u.hasOwnProperty(a)&&(e[a]=u[a]);return e}function gu(u,e){return u.replace(/#\{(\w+)\}/g,(function(u,a){return e[a]||""}))}const mu={disabled:!0,readonly:!0,multiple:!0,checked:!0},pu={urlClass:!0,usernameClass:!0,hashtagClass:!0,usernameUrlBase:!0,hashtagUrlBase:!0,targetBlank:!0,urlTarget:!0,invisibleTagAttrs:!0,linkAttributeBlock:!0,htmlEscapeNonEntities:!0,extractUrlsWithoutProtocol:!0};var vu=function(u){const e={};for(const a in u){let d=u[a];pu[a]||(mu[a]&&(d=d?a:null),null!=d&&(e[a]=d))}return e};const yu={disabled:!0,readonly:!0,multiple:!0,checked:!0};function ku(u){let e="";for(const a in u){let d=u[a];yu[a]&&(d=d?a:null),null!=d&&(e+=` ${bu(a)}="${bu(d.toString())}"`)}return e}var wu=function(u,e,a,d){const t={text:e,attr:ku(a)};return gu("#{text}",t)};const xu=/^https?:\/\//i;var Cu=function(u,e,a){let d=u.url;const t=d;let n=bu(t);const r=hu(a.htmlAttrs||{});return d.match(xu)||(d=`http://${d}`),r.href=d,a.targetBlank&&(r.target="_blank"),a.urlClass&&(r["class"]=a.urlClass),a.urlTarget&&(r.target=a.urlTarget),wu(u,n,r,a)},Pu=function(u,e,a){const d=e.substring(u.indices[0],u.indices[0]+1),t=bu(u.username),n=hu(a.htmlAttrs||{});return n.href=a.usernameUrlBase+t,n.title=`@${t}`,n["class"]=a.usernameClass,n["data-username"]=t,wu(u,`${d}${t}`,n,a)};const ju=/[\u0600-\u06FF]|[\u0750-\u077F]|[\u0590-\u05FF]|[\uFE70-\uFEFF]/gm;var Fu=function(u,e,a){const d=e.substring(u.indices[0],u.indices[0]+1),t=bu(u.hashtag),n=hu(a.htmlAttrs||{});return n.href=a.hashtagUrlBase+t,n.title=`#${t}`,n["class"]=a.hashtagClass,n["data-hashtag"]=t,t.charAt(0).match(ju)&&(n["class"]+=" rtl"),wu(u,`${d}${t}`,n,a)};const Au="highlights username",zu="highlights hashtag",Uu="highlights url";var Du=function(u,e,a){let d=hu(a||{});d.usernameClass=d.usernameClass||Au,d.usernameUrlBase=d.usernameUrlBase||"/",d.hashtagClass=d.hashtagClass||zu,d.hashtagUrlBase=d.hashtagUrlBase||"/hashtag/",d.urlClass=d.urlClass||Uu,d.htmlAttrs=vu(d),d.invisibleTagAttrs=d.invisibleTagAttrs||"style='position:absolute;left:-9999px;'";let t="",n=0;e.sort((function(u,e){return u.indices[0]-e.indices[0]}));for(let r=0;r#{text}",a)}const Tu={targetBlank:!0,extractUrlsWithoutProtocol:!0};function Mu(u,e=Tu){const a=fu(u,e);return Du(u,a,e)}function Gu(u,e=Tu){const a=fu(u,e);return Su(u,a,e)}function Lu(u,e,a){if(a||(a=document.createRange(),a.selectNode(u),a.setStart(u,0)),0===e.count)a.setEnd(u,e.count);else if(u&&e.count>0)if(3===u.nodeType)u.textContent.length=0){const a=Lu(u,{count:e}),d=window.getSelection();a&&(a.collapse(!1),d.removeAllRanges(),d.addRange(a))}}function Ou(u,e){return Gu(u,e)}function qu(u,e){return Mu(u,e)}var Ru={name:"VueHighlights",props:{extractUrlsWithoutProtocol:{type:Boolean,default:!0},mentionsWithDots:{type:Boolean,default:!1},caretColor:{type:String,default:"#ccc"},placeholder:{type:String,default:"What's Happening?"},value:String},data(){return{focused:!1,body:""}},computed:{showPlaceholder(){return!this.body.replace(/^\s*\n/gm,"").length},computedBody(){return Gu(this.body,{extractUrlsWithoutProtocol:this.extractUrlsWithoutProtocol,mentionsWithDots:this.mentionsWithDots})}},methods:{getCaretPos(){const u=this.$refs.mbody,e=window.getSelection();let a=e.focusNode,d=e.focusOffset;while(a){if(a===u)break;if(a.previousSibling)a=a.previousSibling,d+=a.textContent.length;else if(a=a.parentNode,null===a)break}return d},setCaretPos(u){Nu(this.$refs.mbody,u)},clear(){this.$refs.mbody.innerText="",this.body=""},onKeyUp(u){let e=this.getCaretPos();13===u.keyCode&&e++,this.body=u.target.innerText,this.$emit("input",this.body),this.$nextTick(()=>{this.setCaretPos(e)})},onFocus(u){this.focused=!0,this.$emit("focus",u)},onBlur(u){this.focused=!1,this.$emit("blur",u)}},render(u){const e=this.showPlaceholder?u("div",{attrs:{id:"mplaceholder"},staticClass:"highlights__placeholder"},this.placeholder):null,a={ref:"mbody",staticClass:"highlights__body",style:{"text-align":"initial",outline:"currentcolor none medium","user-select":"text","white-space":"pre-wrap","overflow-wrap":"break-word","caret-color":`${this.caretColor}`},attrs:{"aria-label":this.placeHolder,"aria-autocomplete":"list","aria-describedby":"mplaceholder","aria-multiline":"true",contenteditable:!0,role:"textbox",spellCheck:!0,tabindex:0},domProps:{innerHTML:this.computedBody},on:{focus:this.onFocus,blur:this.onBlur,keyup:this.onKeyUp}};return u("div",{staticClass:"highlights__container",style:{position:"relative"}},[u("div",{staticClass:"highlights__content"},[e,u("div",{staticClass:"highlights__body-container"},[u("div",a)])])])}};a.d(e,"autoHighlight",(function(){return Ou})),a.d(e,"autoLink",(function(){return qu}));e["default"]=Ru}})})); //# sourceMappingURL=vue-highlights.umd.min.js.map