UNPKG

14.8 kBJavaScriptView Raw
1!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).BbobVue={},t.Vue)}(this,function(t,n){"use strict";var e={},r={};Object.defineProperty(r,"__esModule",{value:!0});var o=r.BACKSLASH=r.PLACEHOLDER_SPACE=r.PLACEHOLDER_SPACE_TAB=g=r.SLASH=l=r.CLOSE_BRAKET=f=r.OPEN_BRAKET=s=r.SPACE=c=r.QUOTEMARK=a=r.EQ=u=r.TAB=r.R=r.F=i=r.N=void 0,i=r.N="\n";r.F="\f",r.R="\r";var u=r.TAB=" ",a=r.EQ="=",c=r.QUOTEMARK='"',s=r.SPACE=" ",f=r.OPEN_BRAKET="[",l=r.CLOSE_BRAKET="]",g=r.SLASH="/";r.PLACEHOLDER_SPACE_TAB=" ",r.PLACEHOLDER_SPACE=" ",o=r.BACKSLASH="\\";var p={};Object.defineProperty(p,"__esModule",{value:!0}),p.isEOL=p.isStringNode=A=p.isTagNode=p.getUniqAttr=p.getNodeLength=p.escapeHTML=p.appendToNode=p.attrValue=p.attrsToString=void 0;var h=function(t){return"object"==typeof t&&!!t.tag},d=function(t){return"string"==typeof t},v=function(t,n,e){return Object.keys(t).reduce(n,e)},y=function(t){return h(t)?t.content.reduce(function(t,n){return t+y(n)},0):d(t)?t.length:0},b=function(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;").replace(/(javascript):/gi,"$1%3A")},T=function(t,n){var e=void 0===n?"undefined":n&&"undefined"!=typeof Symbol&&n.constructor===Symbol?"symbol":typeof n,r={boolean:function(){return n?"".concat(t):""},number:function(){return"".concat(t,'="').concat(n,'"')},string:function(){return"".concat(t,'="').concat(b(n),'"')},object:function(){return"".concat(t,'="').concat(b(JSON.stringify(n)),'"')}};return r[e]?r[e]():""};p.attrsToString=function(t){return null==t?"":v(t,function(n,e){return((function(t){if(Array.isArray(t)){for(var n=0,e=Array(t.length);n<t.length;n++)e[n]=t[n];return e}})(n)||function(t){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}(n)||function(){throw TypeError("Invalid attempt to spread non-iterable instance")}()).concat([T(e,t[e])])},[""]).join(" ")},p.attrValue=T,p.appendToNode=function(t,n){t.content.push(n)},p.escapeHTML=b,p.getNodeLength=y,p.getUniqAttr=function(t){return v(t,function(n,e){return t[e]===e?t[e]:null},null)};var A=p.isTagNode=h;p.isStringNode=d,p.isEOL=function(t){return t===r.N},Object.defineProperty(e,"__esModule",{value:!0});var E=e.default=e.TagNode=void 0;function S(t,n){for(var e=0;e<n.length;e++){var r=n[e];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var m=function(t,n){var e=p.getUniqAttr(n);if(e){var r=p.attrValue(t,e),o=function(t){for(var n=1;n<arguments.length;n++){var e=null!=arguments[n]?arguments[n]:{},r=Object.keys(e);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(e).filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.forEach(function(n){var r,o;r=t,o=e[n],n in r?Object.defineProperty(r,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):r[n]=o})}return t}({},n);delete o[e];var i=p.attrsToString(o);return"".concat(r).concat(i)}return"".concat(t).concat(p.attrsToString(n))},k=function(){var t,n;function e(t,n,r){!function(t,n){if(!(t instanceof n))throw TypeError("Cannot call a class as a function")}(this,e),this.tag=t,this.attrs=n,this.content=Array.isArray(r)?r:[r]}return t=[{key:"attr",value:function(t,n){return void 0!==n&&(this.attrs[t]=n),this.attrs[t]}},{key:"append",value:function(t){return p.appendToNode(this,t)}},{key:"length",get:function(){return p.getNodeLength(this)}},{key:"toTagStart",value:function(t){var n=void 0===t?{}:t,e=n.openTag,o=void 0===e?r.OPEN_BRAKET:e,i=n.closeTag,u=void 0===i?r.CLOSE_BRAKET:i,a=m(this.tag,this.attrs);return"".concat(o).concat(a).concat(u)}},{key:"toTagEnd",value:function(t){var n=void 0===t?{}:t,e=n.openTag,o=void 0===e?r.OPEN_BRAKET:e,i=n.closeTag,u=void 0===i?r.CLOSE_BRAKET:i;return"".concat(o).concat(r.SLASH).concat(this.tag).concat(u)}},{key:"toTagNode",value:function(){return new e(this.tag.toLowerCase(),this.attrs,this.content)}},{key:"toString",value:function(t){var n=void 0===t?{}:t,e=n.openTag,o=void 0===e?r.OPEN_BRAKET:e,i=n.closeTag,u=void 0===i?r.CLOSE_BRAKET:i,a=0===this.content.length,c=this.content.reduce(function(t,n){return t+n.toString({openTag:o,closeTag:u})},""),s=this.toTagStart({openTag:o,closeTag:u});return a?s:"".concat(s).concat(c).concat(this.toTagEnd({openTag:o,closeTag:u}))}}],S(e.prototype,t),n&&S(e,n),e}();function O(t,n){for(var e=0;e<n.length;e++){var r=n[e];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}k.create=function(t,n,e){return new k(t,void 0===n?{}:n,void 0===e?[]:e)},k.isOf=function(t,n){return t.tag===n},e.TagNode=k,E=e.default=k;var N="type",L="value",C="line",j=function(t){return t&&void 0!==t[L]?t[L]:""},w=function(t){return j(t).charCodeAt(0)===g.charCodeAt(0)},P=function(t){var n=j(t);return w(t)?n.slice(1):n},x=function(){var t;function n(t,e,r,o){!function(t,n){if(!(t instanceof n))throw TypeError("Cannot call a class as a function")}(this,n),this[N]=Number(t),this[L]=String(e),this[C]=Number(r),this.row=Number(o)}return O(n.prototype,[{key:"isEmpty",value:function(){return isNaN(this[N])}},{key:"isText",value:function(){return!!this&&void 0!==this[N]&&(5===this[N]||6===this[N]||1===this[N])}},{key:"isTag",value:function(){return!!this&&void 0!==this[N]&&2===this[N]}},{key:"isAttrName",value:function(){return!!this&&void 0!==this[N]&&3===this[N]}},{key:"isAttrValue",value:function(){return!!this&&void 0!==this[N]&&4===this[N]}},{key:"isStart",value:function(){return!w(this)}},{key:"isEnd",value:function(){return w(this)}},{key:"getName",value:function(){return P(this)}},{key:"getValue",value:function(){return j(this)}},{key:"getLine",value:function(){return this&&this[C]||0}},{key:"getColumn",value:function(){return this&&this.row||0}},{key:"toString",value:function(){var t;return t=this,j(t)+l}}]),t&&O(n,t),n}();function _(t,n){var e={pos:0,len:t.length},r=function(){return e.len>e.pos},o=function(t,r){e.pos+=void 0===t?1:t,n&&n.onSkip&&!r&&n.onSkip()},i=function(){return t[e.pos]};this.skip=o,this.hasNext=r,this.getCurr=i,this.getRest=function(){return t.substr(e.pos)},this.getNext=function(){var n=e.pos+1;return n<=t.length-1?t[n]:null},this.getPrev=function(){var n=e.pos-1;return void 0!==t[n]?t[n]:null},this.isLast=function(){return e.pos===e.len},this.includes=function(n){return t.indexOf(n,e.pos)>=0},this.grabWhile=function(n,u){var a=0;if(r())for(a=e.pos;r()&&n(i());)o(1,u);return t.substr(a,e.pos-a)},this.substrUntilChar=function(n){var r=e.pos,o=t.indexOf(n,r);return o>=0?t.substr(r,o-r):""}}var R=function(t,n){return new _(t,n)},B=function(t,n){for(;t.charAt(0)===n;)t=t.substring(1);for(;t.charAt(t.length-1)===n;)t=t.substring(0,t.length-1);return t};function K(t){var n=void 0===t?[]:t;this.push=function(t){return n.push(t)},this.toArray=function(){return n},this.getLast=function(){return Array.isArray(n)&&n.length>0&&void 0!==n[n.length-1]?n[n.length-1]:null},this.flushLast=function(){return!!n.length&&n.pop()}}var V=function(t){return new K(void 0===t?[]:t)};function H(t,n){var e=void 0===n?{}:n,r=function(t,n){var e,r,o=(e=m,r=k,new x(t,n,void 0===e?0:e,void 0===r?0:r));_(o),C[O+=1]=o},p=function(t,n){if(L===E){var e=t.grabWhile(function(t){return!(t===a||q(t))}),i=t.isLast(),u=t.getCurr()!==a;return(t.skip(),i||u?r(4,F(e)):r(3,e),i)?A:u?E:S}if(L===S){var s=!1,e=t.grabWhile(function(e){var r=e===c,i=t.getPrev(),u=t.getNext(),f=i===o,l=u===a,g=q(e),p=q(u);return!!(s&&z(e))||(!r||!!f||!!(s=!s)||!!l||!!p)&&(!!n||!1===g)});return(t.skip(),r(4,F(e)),t.isLast())?A:E}var e=t.grabWhile(function(n){return!(n===a||q(n)||t.isLast())});return(r(2,e),t.skip(),n)?S:t.includes(a)?E:S},h=function(){var t=J.getCurr();if(t===j){var n=J.getNext();J.skip();var e=J.substrUntilChar(w),o=0===e.length||e.indexOf(j)>=0;if(W(n)||o||J.isLast())return r(1,t),y;var i=-1===e.indexOf(a),u=e[0]===g;if(i||u){var c=J.grabWhile(function(t){return t!==w});return J.skip(),r(2,c),y}return T}return y},d=function(){var t=J.grabWhile(function(t){return t!==w},!0),n=R(t,{onSkip:I}),e=n.includes(s);for(L=A;n.hasNext();)L=p(n,!e);return J.skip(),y},v=function(){if(U(J.getCurr()))return r(6,J.getCurr()),J.skip(),k=0,m++,y;if(q(J.getCurr()))return r(5,J.grabWhile(q)),y;if(J.getCurr()===j)return J.includes(w)?b:(r(1,J.getCurr()),J.skip(),y);if(P){if($(J.getCurr())){var t=J.getCurr(),n=J.getNext();return(J.skip(),Q(n))?(J.skip(),r(1,n),y):(r(1,t),y)}return r(1,J.grabWhile(function(t){return D(t)&&!$(t)})),y}return r(1,J.grabWhile(D)),y},y=0,b=1,T=2,A=0,E=1,S=2,m=0,k=0,O=-1,N=0,L=0,C=Array(Math.floor(t.length)),j=e.openTag||f,w=e.closeTag||l,P=!!e.enableEscapeTags,_=e.onToken||function(){},K=[w,j,c,o,s,u,a,i,"!"],V=[j,s,u,i],H=[s,u],M=[a,s,u],W=function(t){return K.indexOf(t)>=0},U=function(t){return t===i},q=function(t){return H.indexOf(t)>=0},D=function(t){return -1===V.indexOf(t)},z=function(t){return M.indexOf(t)>=0},Q=function(t){return t===j||t===w||t===o},$=function(t){return t===o},I=function(){k++},F=function(t){return B(t,c).replace(o+c,c)},J=R(t,{onSkip:I});return{tokenize:function(){for(N=y;J.hasNext();)switch(N){case b:N=h();break;case T:N=d();break;case y:N=v();break;default:N=y}return C.length=O+1,C},isTokenNested:function(n){var e=j+g+n.getValue();return t.indexOf(e)>-1}}}var M=function(t,n){var e=void 0===n?{}:n,r=e.openTag||f,o=e.closeTag||l,i=null,u=V(),a=V(),c=V(),s=V(),g=new Set,p=function(t){var n=t.getValue();return!g.has(n)&&i.isTokenNested&&i.isTokenNested(t)?(g.add(n),!0):g.has(n)},h=function(){c.flushLast()&&s.flushLast()},d=function(){var t=a.getLast();return t&&Array.isArray(t.content)?t.content:u.toArray()},v=function(t){var n,i=d();Array.isArray(i)&&(A(t)?(n=t.tag,!e.onlyAllowTags||!e.onlyAllowTags.length||e.onlyAllowTags.indexOf(n)>=0)?i.push(t.toTagNode()):(i.push(t.toTagStart({openTag:r,closeTag:o})),t.content.length&&(t.content.forEach(function(t){i.push(t)}),i.push(t.toTagEnd({openTag:r,closeTag:o})))):i.push(t))},y=function(t){h();var n=E.create(t.getValue()),e=p(t);c.push(n),e?a.push(n):v(n)},b=function(t){h();var n=a.flushLast();if(n)v(n);else if("function"==typeof e.onError){var r=t.getValue(),o=t.getLine(),i=t.getColumn();e.onError({message:"Inconsistent tag '".concat(r,"' on line ").concat(o," and column ").concat(i),tagName:r,lineNumber:o,columnNumber:i})}},T=function(t){t.isStart()&&y(t),t.isEnd()&&b(t)},S=function(t){var n=c.getLast(),e=t.getValue(),r=Boolean(g.has(t));if(n){if(t.isAttrName())s.push(e),n.attr(s.getLast(),"");else if(t.isAttrValue()){var o=s.getLast();o?(n.attr(o,e),s.flushLast()):n.attr(e,e)}else t.isText()?r?n.append(e):v(e):t.isTag()&&v(t.toString())}else t.isText()?v(e):t.isTag()&&v(t.toString())};return(i=(e.createTokenizer?e.createTokenizer:H)(t,{onToken:function(t){t.isTag()?T(t):S(t)},onlyAllowTags:e.onlyAllowTags,openTag:r,closeTag:o,enableEscapeTags:e.enableEscapeTags})).tokenize(),u.toArray()},W=function(t){return t&&"undefined"!=typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},U=function(t){return"object"==typeof t};function q(t,n){var e=t;if(Array.isArray(e))for(var r=0;r<e.length;r++)e[r]=q(n(e[r]),n);else e&&U(e)&&e.content&&q(e.content,n);return e}function D(t,n){return(void 0===t?"undefined":W(t))===(void 0===n?"undefined":W(n))&&(U(t)&&null!==t?Array.isArray(t)?t.every(function(t){return[].some.call(n,function(n){return D(t,n)})}):Object.keys(t).every(function(e){var r=n[e],o=t[e];return U(o)&&null!==o&&null!==r?D(o,r):"boolean"==typeof o?o!==(null===r):r===o}):t===n)}function z(t,n){return Array.isArray(t)?q(this,function(e){for(var r=0;r<t.length;r++)if(D(t[r],e))return n(e);return e}):q(this,function(e){return D(t,e)?n(e):e})}function Q(t){return q(this,t)}var $=function(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;").replace(/(javascript):/gi,"$1%3A")},I=function(t,n){var e=void 0===n?"undefined":n&&"undefined"!=typeof Symbol&&n.constructor===Symbol?"symbol":typeof n,r={boolean:function(){return n?"".concat(t):""},number:function(){return"".concat(t,'="').concat(n,'"')},string:function(){return"".concat(t,'="').concat($(n),'"')},object:function(){return"".concat(t,'="').concat($(JSON.stringify(n)),'"')}};return r[e]?r[e]():""},F=function(t){return null==t?"":Object.keys(t).reduce(function(n,e){return((function(t){if(Array.isArray(t)){for(var n=0,e=Array(t.length);n<t.length;n++)e[n]=t[n];return e}})(n)||function(t){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}(n)||function(){throw TypeError("Invalid attempt to spread non-iterable instance")}()).concat([I(e,t[e])])},[""]).join(" ")},J=function(t,n){var e=n.stripTags,r=void 0!==e&&e;if(!t)return"";var o=void 0===t?"undefined":t&&"undefined"!=typeof Symbol&&t.constructor===Symbol?"symbol":typeof t;return"string"===o||"number"===o?t:"object"===o?!0===r?G(t.content,{stripTags:r}):null===t.content?["<",t.tag,F(t.attrs),"/>"].join(""):["<",t.tag,F(t.attrs),">",G(t.content),"</",t.tag,">"].join(""):Array.isArray(t)?G(t,{stripTags:r}):""},G=function(t,n){var e=(void 0===n?{}:n).stripTags,r=void 0!==e&&e;return[].concat(t).reduce(function(t,n){return t+J(n,{stripTags:r})},"")};let X=(t,n=[],e={})=>{var r,o;return(r="function"==typeof n?[n]:n||[],o={skipParse:!1},{process:function(t,n){var e=(o=n||{}).parser||M,i=o.render,u=o.data||null;if("function"!=typeof e)throw Error('"parser" is not a function, please pass to "process(input, { parser })" right function');var a=o.skipParse?t||[]:e(t,o),c=a;return a.messages=[],a.options=o,a.walk=Q,a.match=z,r.forEach(function(t){a=t(a,{parse:e,render:i,iterate:q,match:z,data:u})||a}),{get html(){if("function"!=typeof i)throw Error('"render" function not defined, please pass to "process(input, { render })"');return i(a,a.options)},tree:a,raw:c,messages:a.messages}}}).process(t,{...e,render:t=>G(t,{stripTags:!0})}).tree},Y=t=>!t||0===t.length;function Z(t,n,e,r){return function t(n,e){return[].concat(e).reduce((e,r,o)=>("object"==typeof r&&r.tag?e.push(function(n,e,r){let{class:o,style:i,...u}=e.attrs||{};return n(e.tag,{key:r,class:o,style:i,domProps:u},Y(e.content)?null:t(n,e.content))}(n,r,o)):"string"==typeof r&&e.push(r),e),[])}(t,X(n,e,r))}let tt=n.extend({props:{container:{type:String,default:"span"},plugins:{type:Array},options:{type:Object}},render(t){if(this.$slots.default){let n=this.$slots.default.reduce((t,n)=>t+n.text,"");return t(this.container,Z(t,n,this.plugins,this.options))}return null}});t.Component=tt,t.default=function(t){t.component("bbob-bbcode",tt)},t.render=Z,Object.defineProperty(t,"__esModule",{value:!0})});