UNPKG

@hsorby/vue3-katex

Version:
2 lines (1 loc) 2.14 kB
import e from"katex";import r from"katex/dist/contrib/auto-render.js";import o from"deepmerge";import{toRefs as t,ref as a,inject as i,computed as n,openBlock as l,createBlock as u,resolveDynamicComponent as d,unref as s}from"vue";var p=function(t){return{name:"katex",directive:function(a,i){var n=i.value&&i.value.options||{},l=o(t,n);if(i.arg&&"auto"===i.arg)r(a,l);else{var u=i.value.expression||i.value,d={};"display"===i.arg&&(d.displayMode=!0);var s=o(l,d);e.render(u,a,s)}}}},v={name:"KatexElement"},c=Object.assign(v,{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 p=t(r),v=p.displayMode,c=p.expression,m=p.throwOnError,x=p.errorColor,f=p.macros,y=p.colorIsTextColor,g=p.maxSize,b=p.maxExpand,k=p.allowedProtocols,h=p.strict,O=a({});O.value=i("$katexOptions");var S=n((function(){return o(O.value,function(e){var r={};for(var o of Object.keys(e))void 0!==e[o]&&(r[o]=e[o]);return r}({displayMode:v.value,throwOnError:m.value,errorColor:x.value,macros:f.value,colorIsTextColor:y.value,maxSize:g.value,maxExpand:b.value,allowedProtocols:k.value,strict:h.value}))})),j=n((function(){return v.value?"div":"span"})),E=n((function(){return e.renderToString(c.value,S.value)}));return function(e,r){return l(),u(d(s(j)),{innerHTML:s(E)},null,8,["innerHTML"])}}});function m(e,r){var o=r&&r.globalOptions||{},t=p(o);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(t.name,t.directive),e.component(c.name,c),e.provide("$katexOptions",o)}c.__file="src/components/KatexElement.vue";export{m as default};