@janniks/vue3-katex
Version:
Vue 3 plugin for KaTeX
2 lines (1 loc) • 2.33 kB
JavaScript
!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o(require("katex"),require("katex/dist/contrib/auto-render.js"),require("deepmerge"),require("vue")):"function"==typeof define&&define.amd?define(["katex","katex/dist/contrib/auto-render.js","deepmerge","vue"],o):(e="undefined"!=typeof globalThis?globalThis:e||self).Vue3Katex=o(e.Katex,e.renderMathInElement,e.deepmerge,e.Vue)}(this,(function(e,o,t,r){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=a(e),u=a(o),l=a(t),i={name:"KatexElement"},d=Object.assign(i,{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(e){var o=e,t=r.toRefs(o),a=t.displayMode,u=t.expression,i=t.throwOnError,d=t.errorColor,f=t.macros,s=t.colorIsTextColor,c=t.maxSize,p=t.maxExpand,v=t.allowedProtocols,m=t.strict,x=r.ref({});x.value=r.inject("$katexOptions");var y=r.computed((function(){return l.default(x.value,function(e){var o={};for(var t of Object.keys(e))void 0!==e[t]&&(o[t]=e[t]);return o}({displayMode:a.value,throwOnError:i.value,errorColor:d.value,macros:f.value,colorIsTextColor:s.value,maxSize:c.value,maxExpand:p.value,allowedProtocols:v.value,strict:m.value}))})),g=r.computed((function(){return a.value?"div":"span"})),b=r.computed((function(){return n.default.renderToString(u.value,y.value)}));return function(e,o){return r.openBlock(),r.createBlock(r.resolveDynamicComponent(r.unref(g)),{innerHTML:r.unref(b)},null,8,["innerHTML"])}}});return d.__file="src/components/KatexElement.vue",function(e,o){var t=o&&o.globalOptions||{},r=function(e){return{name:"katex",directive:function(o,t){var r=t.value&&t.value.options||{},a=l.default(e,r);if(t.arg&&"auto"===t.arg)u.default(o,a);else{var i=t.value.expression||t.value,d={};"display"===t.arg&&(d.displayMode=!0);var f=l.default(a,d);n.default.render(i,o,f)}}}}(t);e.directive(r.name,r.directive),e.component(d.name,d),e.provide("$katexOptions",t)}}));