vue-safe-html
Version:
A Vue directive which renders sanitised HTML dynamically
1 lines • 1.28 kB
JavaScript
var e={d:(r,t)=>{for(var n in t)e.o(t,n)&&!e.o(r,n)&&Object.defineProperty(r,n,{enumerable:!0,get:t[n]})},o:(e,r)=>Object.prototype.hasOwnProperty.call(e,r)},r={};e.d(r,{l1:()=>n,ff:()=>i,ZP:()=>o});var t=/<\/?[^>]+(>|$)/g,n=["a","b","br","strong","i","em","mark","small","del","ins","sub","sup"],a=function(e){return Array.isArray(e)&&e.every((function(e){return"string"==typeof e}))};const i=function(e,r){var i=a(e)?e:n;return function(e,n){var o=i;if(n.modifiers){var l=Object.keys(n.modifiers);l.length>0&&a(l)&&(o=l)}var c=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return e?0===r.length?e.replace(t,""):e.replace(/<(\/*)(\w+)([^>]*)>/g,(function(e,t,a,i){if(r.includes(a)){if(t)return"</".concat(a,">");var o=i.split(/\s+/).filter((function(e){return n.includes(e.split("=")[0])})).join(" ");return"<".concat(a).concat(o?" ".concat(o):"",">")}return""})):""}(n.value,o,r);"string"==typeof e.innerHTML?e.innerHTML=c:e.data.domProps={innerHTML:c}}},o={install:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.directive("safe-html",i(r.allowedTags,r.allowedAttributes))}};var l=r.l1,c=r.ff,s=r.ZP;export{l as allowedTags,c as createDirective,s as default};