@hsorby/vue3-katex
Version:
Vue 3 plugin for KaTeX
2 lines (1 loc) • 2.13 kB
JavaScript
;var e=require("katex"),r=require("katex/dist/contrib/auto-render.js"),t=require("deepmerge"),o=require("vue"),a=function(o){return{name:"katex",directive:function(a,n){var i=n.value&&n.value.options||{},l=t(o,i);if(n.arg&&"auto"===n.arg)r(a,l);else{var u=n.value.expression||n.value,d={};"display"===n.arg&&(d.displayMode=!0);var s=t(l,d);e.render(u,a,s)}}}},n={name:"KatexElement"},i=Object.assign(n,{props:{expression:{type:String,default:"",required:!0},displayMode:{type:Boolean,default:void 0},throwOnError:{type:Boolean,default:void 0},errorColor:{type:String,default:void 0},macros:{type:Object,default:void 0},colorIsTextColor:{type:Boolean,default:void 0},maxSize:{type:Number,default:void 0},maxExpand:{type:Number,default:void 0},allowedProtocols:{type:Array,default:void 0},strict:{type:[Boolean,String,Function],default:void 0}},setup:function(r){var a=r,n=o.toRefs(a),i=n.displayMode,l=n.expression,u=n.throwOnError,d=n.errorColor,s=n.macros,c=n.colorIsTextColor,p=n.maxSize,v=n.maxExpand,m=n.allowedProtocols,x=n.strict,f=o.ref({});f.value=o.inject("$katexOptions");var y=o.computed((function(){return t(f.value,function(e){var r={};for(var t of Object.keys(e))void 0!==e[t]&&(r[t]=e[t]);return r}({displayMode:i.value,throwOnError:u.value,errorColor:d.value,macros:s.value,colorIsTextColor:c.value,maxSize:p.value,maxExpand:v.value,allowedProtocols:m.value,strict:x.value}))})),g=o.computed((function(){return i.value?"div":"span"})),k=o.computed((function(){return e.renderToString(l.value,y.value)}));return function(e,r){return o.openBlock(),o.createBlock(o.resolveDynamicComponent(o.unref(g)),{innerHTML:o.unref(k)},null,8,["innerHTML"])}}});i.__file="src/components/KatexElement.vue",module.exports=function(e,r){var t=r&&r.globalOptions||{},o=a(t);r&&r.mhchem&&import("katex/dist/contrib/mhchem.mjs"),r&&r.copyTex&&import("katex/dist/contrib/copy-tex.mjs"),r&&r.mathtexScriptType&&import("katex/dist/contrib/mathtex-script-type.mjs"),r&&r.renderA11yString&&import("katex/dist/contrib/render-a11y-string.mjs"),e.directive(o.name,o.directive),e.component(i.name,i),e.provide("$katexOptions",t)};