balm-ui
Version:
A modular and customizable UI library based on Material Design and Vue 3
1 lines • 48.9 kB
JavaScript
!function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("vue"),require("quill")):"function"===typeof define&&define.amd?define("BalmUIPlus",["vue","quill"],t):"object"===typeof exports?exports.BalmUIPlus=t(require("vue"),require("quill")):e.BalmUIPlus=t(e.Vue,e.Quill)}("undefined"!==typeof self?self:this,(function(e,t){return function(){"use strict";var n={744:function(e){var t=function(e){return function(e){return!!e&&"object"===typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===n}(e)}(e)};var n="function"===typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function o(e,t){return!1!==t.clone&&t.isMergeableObject(e)?c((n=e,Array.isArray(n)?[]:{}),e,t):e;var n}function l(e,t,n){return e.concat(t).map((function(e){return o(e,n)}))}function a(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return Object.propertyIsEnumerable.call(e,t)})):[]}(e))}function r(e,t){try{return t in e}catch(n){return!1}}function i(e,t,n){var l={};return n.isMergeableObject(e)&&a(e).forEach((function(t){l[t]=o(e[t],n)})),a(t).forEach((function(a){(function(e,t){return r(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,a)||(r(e,a)&&n.isMergeableObject(t[a])?l[a]=function(e,t){if(!t.customMerge)return c;var n=t.customMerge(e);return"function"===typeof n?n:c}(a,n)(e[a],t[a],n):l[a]=o(t[a],n))})),l}function c(e,n,a){(a=a||{}).arrayMerge=a.arrayMerge||l,a.isMergeableObject=a.isMergeableObject||t,a.cloneUnlessOtherwiseSpecified=o;var r=Array.isArray(n);return r===Array.isArray(e)?r?a.arrayMerge(e,n,a):i(e,n,a):o(n,a)}c.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,n){return c(e,n,t)}),{})};var s=c;e.exports=s},600:function(e){e.exports=t},154:function(t){t.exports=e}},o={};function l(e){var t=o[e];if(void 0!==t)return t.exports;var a=o[e]={exports:{}};return n[e](a,a.exports,l),a.exports}l.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,{a:t}),t},l.d=function(e,t){for(var n in t)l.o(t,n)&&!l.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},l.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};l.r(a),l.d(a,{$lazyload:function(){return jt},UiBottomSheet:function(){return ot},UiEditor:function(){return Ne},UiNavigationBar:function(){return Xe},UiNavigationRail:function(){return dt},UiSideSheet:function(){return xt},UiSkeleton:function(){return k},UiTree:function(){return Re},UiTreeNode:function(){return He},default:function(){return zt},install:function(){return Rt},vAnchor:function(){return $t},vCopy:function(){return Dt},vLongpress:function(){return Ht},version:function(){return r}});var r="10.31.1",i=l(744),c=l.n(i);const s=/(?:^\[object\s(.*?)\]$)/;var d=e=>Object.prototype.toString.call(e).replace(s,"$1").toLowerCase();const u=e=>{let{componentProps:t,propName:n,props:o}=e,l=o[n];if("object"===d(l)){const e=t[n].default;t[n].default=()=>c()(e,l)}else Array.isArray(l)?t[n].default=()=>l:t[n].default=l},m=e=>{let{componentMixins:t,propName:n,props:o}=e;if(t.length){let e=t.length;for(;e--;)if(t[e].props&&void 0!==t[e].props[n]){u({componentProps:t[e].props,propName:n,props:o});break}}};var p=(e,t)=>{for(const n of Object.keys(t))e.props?void 0===e.props[n]?m({componentMixins:e.mixins,propName:n,props:t}):u({componentProps:e.props,propName:n,props:t}):m({componentMixins:e.mixins,propName:n,props:t})};var h=(e,t)=>{for(const n of Object.keys(t))if(/^Ui[A-Z]{1}[A-Za-z]+$/.test(n)){const o=e[n],l=t[n];p(o,l)}};var f=(e,t,n)=>{let{Components:o,Plugins:l,Directives:a}=n;h(o,t);for(const r in o){const t=o[r];e.component(t.name,t)}for(const r in l){const n=l[r];t[r]?e.use(n,t[r]):e.use(n)}for(const r in a){const t=a[r];e.directive(t.name,t)}},v=l(154);const b={key:0,class:"mdc-skeleton__header"},y={class:"mdc-skeleton__content"},g={key:1,class:"mdc-skeleton-paragraph"},E={name:"UiSkeleton",customOptions:{}};var k=Object.assign(E,{props:{loading:{type:Boolean,default:!0},active:{type:Boolean,default:!1},avatar:{type:[Boolean,Object],default:!1},title:{type:[Boolean,Object],default:!0},paragraph:{type:[Boolean,Object],default:!0}},setup(e){const t=e,n=(0,v.computed)((()=>t.loading?{"mdc-skeleton":!0,"mdc-skeleton--with-avatar":t.avatar,"mdc-skeleton--active":t.active}:{})),o=(0,v.computed)((()=>"object"===d(t.avatar)?t.avatar:{})),l=(0,v.computed)((()=>({"mdc-skeleton-avatar":!0,"mdc-skeleton-avatar--circle":"square"!==o.value.shape,"mdc-skeleton-avatar--large":"large"===o.value.size,"mdc-skeleton-avatar--small":"small"===o.value.size}))),a=(0,v.computed)((()=>{const{size:e}=o.value;return"number"===d(e)?{width:`${e}px`,height:`${e}px`,lineHeight:`${e}px`}:{}})),r=(0,v.computed)((()=>{let e={};return!t.avatar&&t.paragraph&&(e={width:"38%"}),t.avatar&&t.paragraph&&(e={width:"50%"}),"object"===d(t.title)&&t.title.width&&(e={width:t.title.width}),e})),i=(0,v.computed)((()=>{let e={};return t.avatar&&t.title||(e={width:"61%"}),"object"===d(t.paragraph)&&t.paragraph.width&&(e={width:t.paragraph.width}),e})),c=(0,v.computed)((()=>{let e=0;return e=!t.avatar&&t.title?3:2,"object"===d(t.paragraph)&&t.paragraph.rows&&(e=t.paragraph.rows),e}));return(t,o)=>((0,v.openBlock)(),(0,v.createElementBlock)("div",{class:(0,v.normalizeClass)(n.value)},[e.loading?((0,v.openBlock)(),(0,v.createElementBlock)(v.Fragment,{key:0},[e.avatar?((0,v.openBlock)(),(0,v.createElementBlock)("div",b,[(0,v.createElementVNode)("i",{class:(0,v.normalizeClass)(l.value),style:(0,v.normalizeStyle)(a.value)},null,6)])):(0,v.createCommentVNode)("",!0),(0,v.createElementVNode)("div",y,[e.title?((0,v.openBlock)(),(0,v.createElementBlock)("h3",{key:0,class:"mdc-skeleton-title",style:(0,v.normalizeStyle)(r.value)},null,4)):(0,v.createCommentVNode)("",!0),c.value?((0,v.openBlock)(),(0,v.createElementBlock)("ul",g,[((0,v.openBlock)(!0),(0,v.createElementBlock)(v.Fragment,null,(0,v.renderList)(c.value,(e=>((0,v.openBlock)(),(0,v.createElementBlock)("li",{key:e,style:(0,v.normalizeStyle)(e===c.value?i.value:{})},null,4)))),128))])):(0,v.createCommentVNode)("",!0)])],64)):(0,v.renderSlot)(t.$slots,"default",{key:1})],2))}}),S=l(600),C=l.n(S);let x,N,_={};const B="UiEditor",w=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object.keys(e).length&&(e.quill?N=e.quill:(x=e.Quill,_=e.toolbarHandlers))},V=()=>({Quill:x,quill:N,toolbarHandlers:_}),L="ql-emoji";function T(e,t){return t.name&&("emoji"===e?t.value:t.src)}function j(e){return"emoji"===e.type?`:${e.name}:`:`[${e.name}]`}function A(e){let t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,o=function(e,t){let n=t;return t||(n="emoji"===e.type?document.createElement("span"):document.createElement("img")),"emoji"===e.type?(n.innerHTML=e.value,n.style.fontSize="18px"):(n.src=e.src,n.setAttribute("alt",e.alt||"")),n}(e,n);return n||(t=document.createElement("span"),t.classList.add(L,`ql-${e.type}-${e.name}`),t.appendChild(o)),n?o:t}const O=/(:\w+:)|(\[\w+\])/g;let M=[],q={},$={};var D=class{constructor(e){for(let t=0,n=e.length;t<n;t++){const n=e[t];if(M.push({type:n.type,title:n.title}),!n.content.every((e=>T(n.type,e)))){console.warn(`[${B}]`,"Invalid emotions format"),M=[],q={},$={};break}{let e=[];[].slice.call(n.content).forEach((t=>{const o=Object.assign({type:n.type},t),l=j(o);e.push(o),$[l]=o})),q[n.title]=e}}}static getTypes(){return M}static getEmotion(e){return q[e]}static getEmotions(){return $}static clear(){M=[],q={},$={}}static encode(e){const t=(new DOMParser).parseFromString(e,"text/html");return t.querySelectorAll(`.${L}`).forEach((e=>{const t=e.classList[1]?e.classList[1].split("-"):[];if(3===t.length){!function(e,t){if(e.outerHTML)e.outerHTML=t;else{let n=document.createElement("div");n.innerText=t;let o=e.parentNode;o.replaceChild(n,e),o.innerHTML=o.innerHTML.replace(`<div>${t}</div>`,t)}}(e,j({type:t[1],name:t[2]}))}})),t.querySelector("body").innerHTML}static decode(e){let t=e;try{const n=e.match(O);n&&n.forEach((e=>{let n="emoji"===$[e].type?document.createElement("span"):document.createElement("img");n.classList.add(L);const o=A($[e],n);t=t.replace(e,o.outerHTML)}))}catch(n){console.warn(`[${B}]`,"The param of the 'decodeEmoji' method must be an async data")}return t}};var I=function(){const{Quill:e}=V(),t=e.import("parchment");class n extends t.EmbedBlot{static create(e){let t="emoji"===e.type?document.createElement("span"):document.createElement("img");if("object"===typeof e)return A(e,t);if("string"===typeof e){return A(D.getEmotions()[e],t)}return console.warn(`[${B}]`,"Invalid emoji"),t}}n.blotName="emoji",n.tagName=["SPAN","IMG"],n.className=L,e.register("formats/emoji",n,!0)};const H={cssClasses:{icon:"material-icons"},EVENTS:{CLICK:"click"},getMaterialIconClass:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return[H.cssClasses.icon,...t]}};var U=H;const F="ql-emoji-toolbar",P="ql-emoji-toolbar-close",R={tabBar:"ql-emoji-tab-bar",tabScroller:"ql-emoji-tab-scroller",tabContent:"ql-emoji-tab-content",tab:"ql-emoji-tab",tabActive:"ql-emoji-tab--active",panel:"ql-emoji-panel"};let z=!1;function K(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"div";const n=document.createElement(t);return n.className=e,n}function G(){let e=document.getElementById(F);return e&&e.remove(),e}function Q(e){const t=e.target;if(t&&new RegExp(`^${L}`).test(t.classList[0]))e.preventDefault(),e.stopPropagation();else if(z){let e=t;for(;e&&e.classList&&!e.classList.contains("mdc-editor-quill");)if(e=e.parentNode,e&&e.classList&&e.classList.contains("mdc-editor-quill")){e.querySelector("#ql-emoji-toolbar")||G();break}}else G()}var X=function(){const{Quill:e}=V(),t=e.import("core/module");e.register("modules/emoji",class extends t{constructor(e,t){super(e,t),this.quill=e;const n=e.getModule("toolbar");"undefined"!==typeof n&&(n.addHandler("emoji",this.openEmojiToolbar.bind(this)),this.quill.on("selection-change",((e,t,n)=>{if(z=e,z){let e=document.getElementById(F);e&&this.setEmojiToolbarBounds(e)}})))}setEmojiToolbarBounds(e){let t=this.quill.getSelection(!0);if(e&&t){let n=this.quill.getBounds(t.index),o=n.left+240;e.style.top=`${n.top+n.height+10}px`,o>this.quill.container.offsetWidth?e.style.left=n.left-250+"px":e.style.left=`${n.left}px`}}openEmojiToolbar(){if(!G()){const e=document.createElement("div");e.id=F,this.quill.container.appendChild(e),this.setEmojiToolbarBounds(e);const t=document.createElement("i");t.id=P,t.className=U.cssClasses.icon,t.innerHTML="close",e.appendChild(t);const n=K(R.tabBar),o=K(R.tabScroller);n.appendChild(o),e.appendChild(n);const l=K(R.panel);e.appendChild(l);const a=D.getTypes();this.addTabs(a,o,l),this.updatePanel(a[0]&&a[0].title,l),this.onEmojiHandler(),this.onCloseHandler()}}addTabs(e,t,n){const o=K(R.tabContent,"ul");t.appendChild(o),e.forEach(((e,t)=>{let l=document.createElement("li");l.classList.add(R.tab),0===t&&l.classList.add(R.tabActive),l.innerHTML=e.title,l.dataset.title=e.title,o.appendChild(l),l.addEventListener(U.EVENTS.CLICK,(e=>{let t=e.target;if(!t.classList.contains(R.tabActive)){let e=document.querySelector(`.${R.tabActive}`);e&&e.classList.remove(R.tabActive),t.classList.toggle(R.tabActive),this.updatePanel(t.dataset.title,n)}}))}))}updatePanel(e,t){if(e){t.innerHTML="",D.getEmotion(e).forEach((e=>{const n=A(e);n.setAttribute("title",j(e)),t.appendChild(n)})),this.quill.focus()}else t.innerHTML="Emotions is empty"}onEmojiHandler(){const t=D.getEmotions();document.querySelector(".ql-emoji-panel").addEventListener(U.EVENTS.CLICK,(n=>{const o=n.target.parentNode;if(o&&o.classList.contains(L)){let n=this.quill.getSelection(!0);n&&(this.quill.insertEmbed(n.index,"emoji",t[o.title],e.sources.USER),this.quill.setSelection(n.index+1,e.sources.SILENT)),G()}}))}onCloseHandler(){document.getElementById(P).addEventListener(U.EVENTS.CLICK,G)}},!0)};var W=function(e){D.getTypes().length||(new D(e),I(),X())};var J=function(){const{Quill:e}=V(),t=e.import("attributors/style/align");e.register(t,!0)};var Z=function(){const{Quill:e}=V(),t=e.import("attributors/style/direction");e.register(t,!0)};const Y=[1,2,3,4,5,6,7,8].map((e=>`${e}em`));var ee=function(){const{Quill:e}=V(),t=e.import("parchment");let n={scope:t.Scope.BLOCK,whitelist:Y};class o extends t.Attributor{add(e,t){if("+1"===t||"-1"===t){let n=this.value(e)||0;t="+1"===t?n+1:n-1}return 0===t?(this.remove(e),!0):super.add(e,`${t}em`)}value(e){return parseInt(super.value(e))||void 0}}const l=new o("indent","margin-left",n),a=new o("textindent","text-indent",n);e.register(l,!0),e.register(a,!0)};var te=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(e.length){const{Quill:t}=V(),n=t.import("attributors/style/font");n.whitelist=e,t.register(n,!0)}};var ne=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(e.length){const{Quill:t}=V(),n=t.import("attributors/style/size");n.whitelist=e,t.register(n,!0)}};var oe=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(e.length){const{Quill:t}=V(),n=t.import("parchment");let o={scope:n.Scope.INLINE,whitelist:e};const l=new n.Attributor("lineheight","line-height",o);t.register(l,!0)}};var le=function(){const{Quill:e}=V(),t=e.import("parchment");class n extends t.EmbedBlot{static create(e){let t=super.create();return"string"===typeof e&&(t.innerHTML=e),t}}n.blotName="html",n.tagName="DIV",e.register("formats/html",n,!0)};var ae=function(e){let{font:t,size:n,lineheight:o}=e;J(),Z(),ee(),te(t),ne(n),oe(o),le()};const re=`.ql-picker${["header","font","size","lineheight"].map((e=>`:not(.ql-${e})`)).join("")} .ql-picker-label`;function ie(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=document.querySelectorAll(".ql-toolbar button"),n=document.querySelectorAll(`.ql-toolbar ${re}`),o=document.querySelectorAll(".ql-toolbar .ql-align .ql-picker-item");if([...t,...n,...o].forEach((e=>{e.classList.add(U.cssClasses.icon)})),Object.keys(e).length){const n=document.querySelectorAll(".ql-toolbar .ql-picker");!function(e,t){const n=Object.keys(t);e.forEach((e=>{const o=e.classList[0].replace("ql-","");n.includes(o)&&("object"===typeof t[o]?e.title=t[o][e.value||"default"]:e.title=t[o])}))}([...t,...n],e)}}var ce=function(){const{Quill:e}=V();e.register("modules/counter",class{constructor(e,t){this.quill=e,this.options=t,this.container=t.container,e.on("text-change",this.update.bind(this)),this.update()}calculate(){let e=this.quill.getText();return"word"===this.options.unit?(e=e.trim(),e.length>0?e.split(/\s+/).length:0):e.length}update(){let e=this.calculate(),t=this.options.unit||"character";1!==e&&(t+="s"),this.container.innerText=e+" "+t}},!0)};var se=function(){const{toolbarHandlers:e}=V();e.undo=()=>{const{quill:e}=V();e.history.undo()},e.redo=()=>{const{quill:e}=V();e.history.redo()}};var de=function(e){!function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{Quill:t}=V(),n=t.import("ui/icons");for(const[o,l]of Object.entries(e))n[o]=l}(e),ce(),se()};var ue=function(){const{Quill:e}=V(),t=e.import("parchment");class n extends t.EmbedBlot{}n.blotName="divider",n.tagName="HR",e.register("formats/divider",n,!0)};var me=function(){const{Quill:e}=V();e.register("modules/divider",class{constructor(e){this.quill=e;const t=e.getModule("toolbar");"undefined"!==typeof t&&t.addHandler("divider",this.insertHandler.bind(this))}insertHandler(){let t=this.quill.getSelection(!0);t&&(this.quill.insertText(t.index,"\n",e.sources.USER),this.quill.insertEmbed(t.index+1,"divider",!0,e.sources.USER),this.quill.setSelection(t.index+2,e.sources.SILENT))}},!0)};var pe=function(){ue(),me()};var he=function(){const{toolbarHandlers:e}=V();e.linkoff=()=>{const{quill:e}=V();let t=e.getContents().ops.map((e=>(e.attributes&&"undefined"!==typeof e.attributes.link&&delete e.attributes.link,e)));e.setContents(t)}};var fe=function(){const{toolbarHandlers:e}=V();e.selectall=()=>{const{quill:e}=V();let t=e.getText();e.setSelection(0,t.length)}};var ve=function(){pe(),he(),fe()};const be=["divider","emoji"];const ye={ERROR:{NON_IMAGE:1,NOT_PREVIEWABLE:2},tmpFileId(){const e=window.crypto||window.msCrypto;let t=new Uint32Array(8);e.getRandomValues(t);let n="";for(let o=0,l=t.length;o<l;o++)n+=(o<2||o>5?"":"-")+t[o].toString(16).slice(-4);return n},createFileObject(e){let{lastModified:t,name:n,size:o,type:l}=e;return{tmpId:ye.tmpFileId(),lastModified:t,name:n,size:o,type:l,sourceFile:e}},getPreviewSrc(e){return new Promise(((t,n)=>{if(e.type.startsWith("image/"))if(window.URL)t(window.URL.createObjectURL(e.sourceFile));else if(window.FileReader){let n=new FileReader;n.onload=function(e){t(e.target.result)},n.readAsDataURL(e.sourceFile)}else n(ye.ERROR.NOT_PREVIEWABLE);else n(ye.ERROR.NON_IMAGE)}))},async handlePreview(e){e.previewSrc="",e.previewError=0;try{e.previewSrc=await ye.getPreviewSrc(e)}catch(t){e.previewError=t}}};var ge=async function(e,t,n){const o=[].slice.call(t.target.files);if(o.length){n(await Promise.all(o.map((async t=>{const n=ye.createFileObject(t);return e.preview&&await ye.handlePreview(n),Promise.resolve(n)})))),t.target.value=""}},Ee={EVENTS:{TEXT_CHANGE:"update:modelValue",FILE_CHANGE:"file-change"},BLANK:"<p><br></p>",toolbarIcons:{align:{"":"format_align_left",center:"format_align_center",right:"format_align_right",justify:"format_align_justify"},background:"font_download",blockquote:"format_quote",bold:"format_bold",clean:"format_clear",code:"code",color:"text_format",formula:"functions",italic:"format_italic",image:"insert_photo",indent:{"+1":"format_indent_increase","-1":"format_indent_decrease"},link:"insert_link",list:{ordered:"format_list_numbered",bullet:"format_list_bulleted"},script:{sub:"subscript",super:"superscript"},strike:"strikethrough_s",underline:"format_underlined",video:"videocam",divider:"horizontal_rule",emoji:"insert_emoticon",cut:"content_cut",copy:"content_copy",paste:"content_paste",delete:"clear",search:"search",preview:"preview",selectall:"select_all",fullscreen:{"":"fullscreen",exit:"fullscreen_exit"},undo:"undo",redo:"redo",linkoff:"link_off",textindent:{"+1":"format_indent_increase","-1":"format_indent_decrease"},pdf:"picture_as_pdf"},defaultToolbar:[[{header:[]},{font:[]},{size:[]}],["bold","italic","underline",{color:[]},{background:[]}],[{align:""},{align:"center"},{align:"right"},{align:"justify"}],[{list:"ordered"},{list:"bullet"},{indent:"+1"},{indent:"-1"},"blockquote","emoji"],["link","image","video"],["strike",{script:"super"},{script:"sub"},"divider"],["clean","undo","redo"]]};const ke={class:"mdc-editor__content"},Se={key:0,class:"mdc-editor-code",contenteditable:""},Ce={name:B,customOptions:{UI_EDITOR:Ee}};var xe=Object.assign(Ce,{props:{modelValue:{type:String,default:""},options:{type:Object,default:()=>({})},toolbar:{type:[Array,String,null],default:null},placeholder:{type:[String,null],default:null},readonly:{type:Boolean,default:!1},fullwidth:{type:Boolean,default:!1},theme:{type:String,default:"snow"},toolbarIcons:{type:Object,default:()=>({})},toolbarTips:{type:Object,default:()=>({})},toolbarOptions:{type:Object,default:()=>({})},toolbarHandlers:{type:Object,default:()=>({})},customImageHandler:{type:Boolean,default:!1},emotions:{type:Array,default:()=>[]},withCounter:{type:Boolean,default:!1},extension:{type:[Boolean,Object],default:!1}},emits:[Ee.EVENTS.TEXT_CHANGE,Ee.EVENTS.FILE_CHANGE],setup(e,t){let{expose:n,emit:o}=t;const l=e,a=o,r=(0,v.ref)(null),i=(0,v.ref)(null),c=(0,v.ref)(null),s=(0,v.reactive)({$editor:null,htmlContent:"",editSourceCode:!1}),{htmlContent:u,editSourceCode:m}=(0,v.toRefs)(s),p=(0,v.computed)((()=>({"mdc-editor":!0,"mdc-editor--fullwidth":l.fullwidth})));function h(e,t,n){for(let o of e)"object"===d(o)&&"array"===d(o[t])&&0===o[t].length?o[t]=[!1,...n]:"array"===d(o)&&h(o,t,n)}function f(){let e=l.toolbar;return"array"===d(e)&&Object.keys(l.toolbarOptions).forEach((t=>{l.toolbarOptions[t].length&&h(e,t,l.toolbarOptions[t])})),"full"===l.toolbar?Ee.defaultToolbar:e}function b(e){const{placeholder:t,readonly:n,theme:o}=l,a={modules:{},placeholder:t,readOnly:n,theme:o};let r=Object.assign(a,l.options);r.modules.toolbar={container:f(),handlers:{}},l.withCounter&&(r.modules.counter={container:e});const i=r.modules.toolbar.handlers;return l.customImageHandler&&(i.image=()=>{c.value.click()}),Object.keys(l.toolbarHandlers).forEach((e=>{i[e]=t=>{l.toolbarHandlers[e](s.$editor,t)}})),r}(0,v.onMounted)((()=>{(0,v.nextTick)((async()=>{const{toolbarTips:e,toolbarOptions:t,emotions:n,extension:o}=l;s.$editor=await function(e,t){let{toolbarIcons:n,toolbarTips:o,toolbarOptions:l,options:a,emotions:r,extension:i}=t;const c=a.modules.toolbar.handlers;w({Quill:C(),toolbarHandlers:c}),be.forEach((e=>{a.modules[e]=!0})),ae(l),de(n),ve(),"snow"===a.theme?W(r):delete a.modules.emoji,i&&C().register(i,!0);const s=new(C())(e,a);return w({quill:s}),s.insert=function(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=s.getSelection(!0);n&&(s.insertEmbed(n.index,e,t,C().sources.USER),s.setSelection(n.index+1,C().sources.SILENT))},ie(o),s}(r.value,{toolbarIcons:Object.assign(Ee.toolbarIcons,l.toolbarIcons),toolbarTips:e,toolbarOptions:t,options:b(i.value),emotions:n,extension:o}),l.modelValue&&g(l.modelValue),s.$editor.on("text-change",((e,t,n)=>{let o=y();o===Ee.BLANK&&(o=""),s.htmlContent=o,a(Ee.EVENTS.TEXT_CHANGE,o)}))})),(0,v.watch)((()=>l.modelValue),(e=>{e?s.htmlContent!==e&&(g(e),s.$editor.blur()):g()})),(0,v.watch)((()=>l.readonly),(e=>e?s.$editor.disable():s.$editor.enable())),document.addEventListener("click",Q)})),(0,v.onBeforeUnmount)((()=>{D.clear(),document.removeEventListener("click",Q)}));const y=()=>s.$editor.root.innerHTML,g=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";s.$editor.root.innerHTML=e,function(e){l.placeholder&&(l.readonly&&e?s.$editor.root.setAttribute("data-placeholder",""):s.$editor.root.dataset.placeholder||s.$editor.root.setAttribute("data-placeholder",l.placeholder))}(e)},E=e=>s.$editor.insert("image",e);function k(e){ge(l,e,(e=>{a(Ee.EVENTS.FILE_CHANGE,e[0],E)}))}return n({useEditor:V,encodeEmoji:e=>D.encode(e),decodeEmoji:e=>D.decode(e)}),(t,n)=>((0,v.openBlock)(),(0,v.createElementBlock)("div",{class:(0,v.normalizeClass)(p.value)},[(0,v.renderSlot)(t.$slots,"toolbar"),(0,v.createElementVNode)("div",ke,[(0,v.unref)(m)?((0,v.openBlock)(),(0,v.createElementBlock)("pre",Se,(0,v.toDisplayString)((0,v.unref)(u)),1)):((0,v.openBlock)(),(0,v.createElementBlock)("div",{key:1,ref_key:"editor",ref:r,class:"mdc-editor-quill"},null,512))]),e.withCounter?((0,v.openBlock)(),(0,v.createElementBlock)("div",{key:0,ref_key:"counter",ref:i,class:"mdc-editor__counter"},null,512)):(0,v.createCommentVNode)("",!0),e.customImageHandler?((0,v.openBlock)(),(0,v.createElementBlock)("input",{key:1,ref_key:"file",ref:c,type:"file",accept:"image/*",hidden:"",onChange:k},null,544)):(0,v.createCommentVNode)("",!0),(0,v.renderSlot)(t.$slots,"default")],2))}});var Ne=xe;const _e=(e,t,n)=>{let{selectedValue:o,nodeMap:l,dataFormat:a}=e,{level:r,parentKey:i}=n,c=Object.assign({},t);const{value:s,children:d,hasChildren:u,isLeaf:m,disabled:p}=a,h=c[s],f=Array.isArray(c[d])?c[d]:[],v=((e,t,n)=>e[t]||!n)(c,m,c[u]||f.length);return c.level=r,c.isRoot=!r,c.isLeaf=v,c.expanded=!1,c.selected=!Array.isArray(o)&&h===o,c.checked=Array.isArray(o)&&o.includes(h),c.parentKey=i,c.disabled=c[p],f.length||(c[d]=[]),v||(c.indeterminate=!1),l.has(h)||l.set(h,c),c};let Be=[],we=[];class Ve{constructor(e){this.treeData=e}getData(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";const{dataFormat:o,maxLevel:l}=this.treeData,a=[],{value:r,children:i,hasChildren:c}=o;for(let s=0,d=e.length;s<d;s++){let o=_e(this.treeData,e[s],{level:t,parentKey:n});const d=Array.isArray(o[i])?o[i]:[],u=o[c]||d.length;t<l&&u&&(o[i]=this.getData(d,t+1,o[r])),a.push(o)}return a}static addData(e,t,n){const{dataFormat:o,nodeMap:l}=e,a=[],{value:r,children:i}=o,c=t.level+1,s=t[r];for(let d=0,u=n.length;d<u;d++){let t=_e(e,n[d],{level:c,parentKey:s});t.checked&&this.setMultipleSelectedValue(e,t[r],!0),a.push(t)}t[i]=a,t.expanded=!0,l.set(s,t)}static async onExpand(e,t){if(e.loadData){const{dataFormat:n}=e;if(t[n.children]&&t[n.children].length)t.expanded=!t.expanded;else{const o=await e.loadData(t[n.value],t);if(Array.isArray(o)){this.addData(e,t,o);const l=o.every((t=>e.selectedValue.includes(t[n.value])));if(!!l||o.some((t=>e.selectedValue.includes(t[n.value]))))if(l||1===o.length){const l=o[0][n.parentKey];l?(e.selectedValue.push(l),t.checked=!0):console.warn("[UiTree]","Missing `parentKey`")}else t.indeterminate=!0}else console.warn("[UiTree]","Invalid data")}}else t.expanded=!t.expanded}static async collapseAllNode(e,t){const{dataFormat:n,nodeMap:o}=e;for await(let l of t){const t=l[n.value],a=o.get(t);a.expanded=!1,a.children&&a.children.length&&this.collapseAllNode(e,a.children)}return!0}static setSingleSelectedValue(e,t,n){const{nodeMap:o}=e,l=o.get(t);l&&(l.selected=n,e.selectedEvent={selected:n,selectedNodes:t,node:l})}static onSelect(e,t){const{dataFormat:n,selectedValue:o}=e,l=t[n.value];o&&this.setSingleSelectedValue(e,o,!1),e.selectedValue=l,this.setSingleSelectedValue(e,l,!0)}static setMultipleSelectedValue(e,t,n){const{dataFormat:o,nodeMap:l,filterParentNode:a}=e,r=l.get(t);n&&!r.indeterminate?e.selectedValue.includes(t)||(a?r.isLeaf&&e.selectedValue.push(t):e.selectedValue.push(t)):e.selectedValue=e.selectedValue.filter((e=>e!==t))}static setChildrenCheckedValue(e,t,n){const{dataFormat:o,nodeMap:l}=e,{value:a,children:r}=o;for(let i=0,c=t.length;i<c;i++){let o=Object.assign({},t[i]);const c=o[a],s=o[r],d=l.get(c);d&&(n?!d.checked&&Be.push(c):d.checked&&Be.push(c),d.indeterminate=!1,d.checked=n,this.setMultipleSelectedValue(e,c,n)),!o.isLeaf&&s.length&&this.setChildrenCheckedValue(e,s,n)}}static setParentCheckedValue(e,t){const{dataFormat:n,nodeMap:o}=e,{value:l,children:a}=n;if(t){const n=t[l],r=t[a],i=r.filter((e=>e.checked||e.indeterminate)),c=o.get(n);if(i.length){const t=i.filter((e=>e.checked)).length,o=t===r.length;o?!c.checked&&Be.push(n):c.checked&&Be.push(n),c.checked=o,c.indeterminate=!o,this.setMultipleSelectedValue(e,n,o)}else c.checked=!1,c.indeterminate=!1,this.setMultipleSelectedValue(e,n,c.checked);t.isRoot||this.setParentCheckedValue(e,o.get(t.parentKey))}}static onCheck(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=!t.checked;"boolean"===typeof n&&(o=n);const{dataFormat:l,nodeMap:a,singleChecked:r}=e,{value:i,children:c}=l,s=t[i],d=t[c];r?(t.checked=o,this.setMultipleSelectedValue(e,s,o),e.selectedEvent={checked:o,checkedNodes:[s],node:t}):(Be=[s],t.isLeaf?(t.checked=o,this.setMultipleSelectedValue(e,s,o)):(t.indeterminate&&(t.indeterminate=!1,o=!0),t.checked=o,this.setMultipleSelectedValue(e,s,o),this.setChildrenCheckedValue(e,d,o)),t.isRoot||this.setParentCheckedValue(e,a.get(t.parentKey)),e.selectedEvent={checked:o,checkedNodes:Be,node:t})}static async handleExpandKeys(e,t,n){const{dataFormat:o,nodeMap:l}=e;for await(let a of t){const t=a[o.value],r=l.get(t);n.includes(t)&&this.onExpand(e,r),a.children&&a.children.length&&this.handleExpandKeys(e,a.children,n)}}static async handleExpandAll(e,t){const{dataFormat:n,nodeMap:o}=e;for await(let l of t){const t=l[n.value],a=o.get(t);this.onExpand(e,a),a.children&&a.children.length&&this.handleExpandAll(e,a.children)}}static async findTreeNode(e,t,n){if(e[t]===n)return e;if(e.children&&e.children.length)for(let o=0;o<e.children.length;o++){const l=await this.findTreeNode(e.children[o],t,n);if(null!==l)return l}return null}static toReverseArray(e){const t=[];for(let n=e.length-1;n>=0;n--)t.push(e[n]);return t}static async handleAutoExpandSelected(e,t,n,o){if(await this.collapseAllNode(o,e)){const l=await this.findTreeNode(e[0],t,n);if(we.push(l[t]),l.parentKey&&this.handleAutoExpandSelected(e,t,l.parentKey,o),!l.parentKey){const t=this.toReverseArray(we);o&&this.handleExpandKeys(o,e,t)}}}static async setExpanded(e,t,n){let{autoExpandParent:o,defaultExpandedKeys:l,autoExpandAll:a}=n;const{dataFormat:r,nodeMap:i}=e;if(a&&this.handleExpandAll(e,t),o)if(l.length)this.handleExpandKeys(e,t,l);else for await(let c of t){const t=c[r.value],n=i.get(t);this.onExpand(e,n)}}static resetSelected(e,t){const{nodeMap:n}=e;for(let o=0,l=t.length;o<l;o++){const l=t[o],a=n.get(l);a&&this.onCheck(e,a,!1)}}static setSelected(e,t,n){let{nodeList:o,autoExpandSelected:l}=n;const{dataFormat:a,nodeMap:r,multiple:i}=e,c=Array.isArray(t)?t:[t];for(let s=0,d=c.length;s<d;s++){const t=c[s],n=r.get(t);n&&(i?this.onCheck(e,n,!0):this.onSelect(e,n))}l&&!Array.isArray(t)&&(we=[],this.handleAutoExpandSelected(o,a.value,t,e))}static async createNode(e,t,n){const{dataFormat:o,nodeMap:l}=e,{value:a,children:r,hasChildren:i}=o,c=l.get(t),s=n[a];let d=_e(e,n,{level:c.level+1,parentKey:t,checked:!1});c.isLeaf?(c[r].unshift(d),c[i]||(c[i]=!0),c.isLeaf=!1):c[i]?c[r].length?c[r].unshift(d):await this.onExpand(e,c):(c[r].unshift(d),c[i]=!0,c.expanded=!0),l.set(t,c),l.set(s,d)}static updateNode(e,t,n){const{dataFormat:o,nodeMap:l}=e,{value:a,children:r}=o,i=n[a],c=l.get(i);Object.keys(c).forEach((e=>{"undefined"!==typeof n[e]&&(c[e]=n[e])}));const s=l.get(t),d=s[r].findIndex((e=>e[a]===i));s[r][d]=c,l.set(t,s),l.set(i,c)}static deleteNode(e,t,n){const{dataFormat:o,nodeMap:l}=e,{value:a,children:r,hasChildren:i}=o,c=n[a];if(l.has(c)){const e=l.get(t),n=e[r];n.splice(n.findIndex((e=>e[a]===c)),1),e[i]=n.length,e[i]||(e.isLeaf=!0,e.expanded=!1),l.set(t,e),l.delete(c)}}}const Le=["checked","disabled"],Te=(0,v.createStaticVNode)('<div class="mdc-checkbox__background"><svg class="mdc-checkbox__checkmark" viewBox="0 0 24 24"><path class="mdc-checkbox__checkmark-path" fill="none" d="M1.73,12.91 8.1,19.28 22.79,4.59"></path></svg><div class="mdc-checkbox__mixedmark"></div></div><div class="mdc-checkbox__ripple"></div><div class="mdc-checkbox__focus-ring"></div>',3),je={name:"MdcCheckbox",customOptions:{}};var Ae=Object.assign(je,{props:{checked:{type:[Boolean,null],default:null},indeterminate:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e,t){let{expose:n}=t;const o=e,l=(0,v.ref)(null),a=(0,v.ref)(null);return(0,v.onMounted)((()=>{o.indeterminate&&(a.value.indeterminate=o.indeterminate),o.disabled&&(a.value.disabled=o.disabled),(0,v.watch)((()=>o.indeterminate),(e=>a.value.indeterminate=e)),(0,v.watch)((()=>o.disabled),(e=>a.value.disabled=e))})),n({mdcCheckbox:l,reset:function(){a.value.indeterminate?a.value.indeterminate=!1:a.value.checked=!1}}),(t,n)=>((0,v.openBlock)(),(0,v.createElementBlock)("div",{ref_key:"mdcCheckbox",ref:l,class:"mdc-checkbox"},[(0,v.renderSlot)(t.$slots,"default",{},(()=>[(0,v.createElementVNode)("input",{ref_key:"checkbox",ref:a,type:"checkbox",class:"mdc-checkbox__native-control",checked:e.checked,disabled:e.disabled},null,8,Le)])),Te],512))}});const Oe={key:0,class:"mdc-tree-node__indent"},Me={class:"mdc-tree-node__icon"},qe=["onClick"],$e=["onClick"],De=["onClick"],Ie={name:"UiTreeNode",customOptions:{UI_GLOBAL:U}};var He=Object.assign(Ie,{props:{children:{type:Array,default:()=>[]},treeData:{type:Object,default:()=>({})}},setup(e){const t=e,n=t.treeData.dataFormat;function o(e){!e.disabled&&Ve.onCheck(t.treeData,e)}function l(e){const{children:t,...o}=e;return e[n.isLeaf]?e:o}return(a,r)=>{const i=(0,v.resolveComponent)("ui-tree-node");return(0,v.openBlock)(),(0,v.createElementBlock)("ul",null,[((0,v.openBlock)(!0),(0,v.createElementBlock)(v.Fragment,null,(0,v.renderList)(e.children,((r,c)=>((0,v.openBlock)(),(0,v.createElementBlock)("li",{key:c,class:(0,v.normalizeClass)(["mdc-tree-node",{"mdc-tree-node--root":r.isRoot,"mdc-tree-node--leaf":r.isLeaf}])},[(0,v.createElementVNode)("div",{class:(0,v.normalizeClass)(["mdc-tree-node__content",{"mdc-tree-node--selected":r.selected||r.checked}])},[(0,v.renderSlot)(a.$slots,"before",{data:l(r)}),r.level?((0,v.openBlock)(),(0,v.createElementBlock)("div",Oe,[((0,v.openBlock)(!0),(0,v.createElementBlock)(v.Fragment,null,(0,v.renderList)(r.level,(e=>((0,v.openBlock)(),(0,v.createElementBlock)("span",{key:e,class:"mdc-tree-node__indent-unit"})))),128))])):(0,v.createCommentVNode)("",!0),(0,v.createElementVNode)("div",Me,[r[(0,v.unref)(n).isLeaf]?(0,v.createCommentVNode)("",!0):((0,v.openBlock)(),(0,v.createElementBlock)("span",{key:0,onClick:e=>{return n=r,void Ve.onExpand(t.treeData,n);var n}},[r.expanded?(0,v.renderSlot)(a.$slots,"expand-more-icon",{key:0},(()=>[(0,v.createElementVNode)("i",{class:(0,v.normalizeClass)((0,v.unref)(U).cssClasses.icon),"aria-hidden":"true"}," expand_more ",2)])):(0,v.renderSlot)(a.$slots,"expand-less-icon",{key:1},(()=>[(0,v.createElementVNode)("i",{class:(0,v.normalizeClass)((0,v.unref)(U).cssClasses.icon),"aria-hidden":"true"}," chevron_right ",2)]))],8,qe))]),e.treeData.multiple?((0,v.openBlock)(),(0,v.createElementBlock)("div",{key:1,class:"mdc-tree-node__checkbox",onClick:e=>o(r)},[r[(0,v.unref)(n).isLeaf]?((0,v.openBlock)(),(0,v.createBlock)(Ae,{key:0,checked:r.checked,disabled:r.disabled},null,8,["checked","disabled"])):((0,v.openBlock)(),(0,v.createBlock)(Ae,{key:1,checked:r.checked,indeterminate:r.indeterminate,disabled:r.disabled},null,8,["checked","indeterminate","disabled"]))],8,$e)):(0,v.createCommentVNode)("",!0),(0,v.createElementVNode)("label",{class:(0,v.normalizeClass)({"mdc-tree-node__label":!0,"mdc-tree-node__label--disabled":r.disabled}),onClick:(0,v.withModifiers)((n=>{return e.treeData.multiple?o(r):void(!(l=r).disabled&&Ve.onSelect(t.treeData,l));var l}),["prevent"])},[(0,v.renderSlot)(a.$slots,"title",{data:l(r)},(()=>[(0,v.createTextVNode)((0,v.toDisplayString)(r[(0,v.unref)(n).label]),1)]))],10,De),(0,v.renderSlot)(a.$slots,"after",{data:l(r)})],2),!r[(0,v.unref)(n).isLeaf]&&r.expanded?((0,v.openBlock)(),(0,v.createBlock)(i,{key:0,class:"mdc-tree-node__children",children:r[(0,v.unref)(n).children],"tree-data":e.treeData},(0,v.createSlots)({_:2},[(0,v.renderList)(a.$slots,((e,t)=>({name:t,fn:(0,v.withCtx)((e=>[(0,v.renderSlot)(a.$slots,t,(0,v.normalizeProps)((0,v.guardReactiveProps)(e)))]))})))]),1032,["children","tree-data"])):(0,v.createCommentVNode)("",!0)],2)))),128))])}}});const Ue={dataFormat:{label:"label",value:"value",children:"children",hasChildren:"hasChildren",isLeaf:"isLeaf",disabled:"disabled",parentKey:"parentKey"},EVENTS:{CHANGE:"update:modelValue",SELECTED:"selected"}},Fe={name:"UiTree",customOptions:{UI_TREE:Ue}};var Pe=Object.assign(Fe,{props:{modelValue:{type:[String,Number,Array],default:""},filterParentNode:{type:Boolean,default:!1},data:{type:Array,default:()=>[]},dataFormat:{type:Object,default:()=>({})},maxLevel:{type:Number,default:0},multiple:{type:Boolean,default:!1},singleChecked:{type:Boolean,default:!1},loadData:{type:[Function,null],default:null},autoExpandParent:{type:Boolean,default:!1},defaultExpandedKeys:{type:Array,default:()=>[]},autoExpandSelected:{type:Boolean,default:!1},autoExpandAll:{type:Boolean,default:!1}},emits:[Ue.EVENTS.CHANGE,Ue.EVENTS.SELECTED],setup(e,t){let{expose:n,emit:o}=t;const l=e,a=o,r=(0,v.reactive)({$tree:null,nodeList:[],treeData:{dataFormat:Object.assign(Ue.dataFormat,l.dataFormat),maxLevel:l.maxLevel,nodeMap:new Map,selectedValue:l.modelValue,filterParentNode:l.filterParentNode,multiple:l.multiple,singleChecked:l.singleChecked,loadData:l.loadData,selectedEvent:{}}}),{nodeList:i,treeData:c}=(0,v.toRefs)(r),s=(0,v.computed)((()=>({"mdc-tree":!0,"mdc-tree--multiple":l.multiple})));function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l.data;r.nodeList=r.$tree.getData(e),r.nodeList.length&&(Ve.setExpanded(r.treeData,r.nodeList,{autoExpandParent:l.autoExpandParent,defaultExpandedKeys:l.defaultExpandedKeys,autoExpandAll:l.autoExpandAll}),Ve.setSelected(r.treeData,r.treeData.selectedValue,{nodeList:r.nodeList,autoExpandSelected:l.autoExpandSelected}))}function u(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];(0,v.nextTick)((()=>{t.length&&Ve.resetSelected(r.treeData,t),Ve.setSelected(r.treeData,e,{nodeList:r.nodeList,autoExpandSelected:l.autoExpandSelected}),r.treeData.selectedValue=e}))}(0,v.watch)((()=>l.modelValue),((e,t)=>{Array.isArray(e)?((e,t)=>{for(const n of new Set([...e,...t]))if(e.filter((e=>e===n)).length!==t.filter((e=>e===n)).length)return!1;return!0})(r.treeData.selectedValue,e)||u(e,t):r.treeData.selectedValue!==e&&u(e)})),(0,v.watch)((()=>l.data),(e=>d(e))),(0,v.watch)((()=>r.treeData.selectedValue),(e=>{a(Ue.EVENTS.CHANGE,e,r.treeData.selectedEvent),a(Ue.EVENTS.SELECTED,Array.isArray(e)?e.map((e=>m(e))):m(e))})),(0,v.onBeforeMount)((()=>{if(l.multiple&&!Array.isArray(r.treeData.selectedValue))throw new Error("[UiTree]: The 'modelValue' prop must be an array in the multiple tree")})),(0,v.onMounted)((()=>{r.$tree=new Ve(r.treeData),d()}));const m=e=>r.treeData.nodeMap.get(e);return n({updateNode:function(e,t,n){switch(e){case"create":Ve.createNode(r.treeData,t,n);break;case"delete":Ve.deleteNode(r.treeData,t,n);break;default:Ve.updateNode(r.treeData,t,n)}},getNode:m}),(e,t)=>((0,v.openBlock)(),(0,v.createElementBlock)("div",{class:(0,v.normalizeClass)(s.value)},[(0,v.renderSlot)(e.$slots,"default"),(0,v.createVNode)(He,{children:(0,v.unref)(i),"tree-data":(0,v.unref)(c)},(0,v.createSlots)({_:2},[(0,v.renderList)(e.$slots,((t,n)=>({name:n,fn:(0,v.withCtx)((t=>[(0,v.renderSlot)(e.$slots,n,(0,v.normalizeProps)((0,v.guardReactiveProps)(t)))]))})))]),1032,["children","tree-data"])],2))}});var Re=Pe;const ze={class:"mdc-navigation-bar__destinations"},Ke="UiNavigationBar",Ge={FIXED_ADJUST:{STANDARD:"mdc-navigation-bar--fixed-adjust",STACKED:"mdc-navigation-bar--stacked-fixed-adjust"}},Qe={name:Ke,customOptions:{name:Ke,UI_NAVIGATION_BAR:Ge}};var Xe=Object.assign(Qe,{props:{contentSelector:{type:String,required:!0},stacked:{type:Boolean,default:!1},min:{type:Boolean,default:!1},max:{type:Boolean,default:!1}},setup(e){const t=e,n=(0,v.reactive)({destinations:4}),o=(0,v.computed)((()=>{let e=["mdc-navigation-bar",{"mdc-navigation-bar--stacked":t.stacked}];const o=Math.floor(100/n.destinations);return e.push(`mdc-navigation-bar--dest-${o}`),e}));return(0,v.onBeforeMount)((()=>{t.contentSelector||console.error(`[${Ke}]: The 'contentSelector' prop is required`),t.min?n.destinations=3:t.max&&(n.destinations=5)})),(0,v.onMounted)((()=>function(){const e=document.querySelector(t.contentSelector),n=document.createElement("div");n.classList.add(t.stacked?Ge.FIXED_ADJUST.STACKED:Ge.FIXED_ADJUST.STANDARD),e.appendChild(n)}())),(e,t)=>((0,v.openBlock)(),(0,v.createElementBlock)("div",{class:(0,v.normalizeClass)(o.value)},[(0,v.createElementVNode)("div",ze,[(0,v.renderSlot)(e.$slots,"default")])],2))}}),We="mdc-dialog-scroll-lock";["textarea",".mdc-menu .mdc-list-item",".mdc-menu .mdc-deprecated-list-item"].join(", ");function Je(){document.querySelector("body").classList.remove(We)}function Ze(e){document.querySelector("body").classList.contains(We)&&(Je(),window.removeEventListener("popstate",Ze))}function Ye(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];document.querySelector("body").classList.add(We),e&&window.addEventListener("popstate",Ze)}const et={key:0,class:"mdc-bottom-sheet__content"},tt={EVENTS:{CHANGE:"update:modelValue"}},nt={name:"UiBottomSheet",customOptions:{UI_BOTTOM_SHEET:tt}};var ot=Object.assign(nt,{props:{modelValue:{type:Boolean,default:!1}},emits:[tt.EVENTS.CHANGE],setup(e,t){let{emit:n}=t;const o=e,l=n,a=(0,v.reactive)({closing:!1}),r=(0,v.computed)((()=>({"mdc-bottom-sheet":!0,"mdc-bottom-sheet--open":o.modelValue,"mdc-bottom-sheet--closing":a.closing})));function i(){a.closing=!0,setTimeout((()=>{l(tt.EVENTS.CHANGE,!1),a.closing=!1}),300)}return(0,v.watch)((()=>o.modelValue),(e=>{e?Ye():Je()})),(t,n)=>((0,v.openBlock)(),(0,v.createElementBlock)("div",{class:(0,v.normalizeClass)(r.value)},[(0,v.createVNode)(v.Transition,{name:"mdc-slide"},{default:(0,v.withCtx)((()=>[e.modelValue?((0,v.openBlock)(),(0,v.createElementBlock)("div",et,[(0,v.renderSlot)(t.$slots,"default")])):(0,v.createCommentVNode)("",!0)])),_:3}),(0,v.createElementVNode)("div",{class:"mdc-bottom-sheet__scrim",onClick:i})],2))}});const lt={class:"mdc-navigation-rail"},at={class:"mdc-navigation-rail__menu"},rt={class:"mdc-navigation-rail__key-action"},it={class:"mdc-navigation-rail__destinations"},ct={key:0},st={name:"UiNavigationRail",customOptions:{}};var dt=Object.assign(st,{props:{items:{type:Array,default:()=>[]}},setup(e){return(t,n)=>{const o=(0,v.resolveComponent)("mdc-icon-button");return(0,v.openBlock)(),(0,v.createElementBlock)("div",lt,[(0,v.createElementVNode)("div",at,[(0,v.renderSlot)(t.$slots,"menu",{},(()=>[t.hasMenu?((0,v.openBlock)(),(0,v.createBlock)(o,{key:0,class:"mdc-navigation-rail__navigation-icon"},{default:(0,v.withCtx)((()=>[(0,v.createTextVNode)(" menu ")])),_:1})):(0,v.createCommentVNode)("",!0)]))]),(0,v.createElementVNode)("div",rt,[(0,v.renderSlot)(t.$slots,"key-action")]),(0,v.createElementVNode)("div",it,[(0,v.renderSlot)(t.$slots,"default",{},(()=>[e.items.length?((0,v.openBlock)(),(0,v.createElementBlock)("ul",ct,[((0,v.openBlock)(!0),(0,v.createElementBlock)(v.Fragment,null,(0,v.renderList)(e.items,((t,n)=>((0,v.openBlock)(),(0,v.createElementBlock)("li",{key:n},(0,v.toDisplayString)(e.items),1)))),128))])):(0,v.createCommentVNode)("",!0)]))])])}}});const ut=(0,v.createElementVNode)("div",{class:"mdc-icon-button__ripple"},null,-1),mt=(0,v.createElementVNode)("span",{class:"mdc-icon-button__focus-ring"},null,-1),pt={name:"MdcIconButton",customOptions:{UI_GLOBAL:U}};var ht=Object.assign(pt,{emits:[U.EVENTS.CLICK],setup(e,t){let{emit:n}=t;const o=n,{handleClick:l}=function(e){let{emit:t}=e;return{handleClick:function(e){t(H.EVENTS.CLICK,e)}}}({emit:o});return(e,t)=>((0,v.openBlock)(),(0,v.createElementBlock)("button",{type:"button",class:(0,v.normalizeClass)(["mdc-icon-button",(0,v.unref)(U).cssClasses.icon]),onClick:t[0]||(t[0]=function(){return(0,v.unref)(l)&&(0,v.unref)(l)(...arguments)})},[ut,mt,(0,v.renderSlot)(e.$slots,"default")],2))}});var ft=ht;const vt={key:0,class:"mdc-side-sheet__container"},bt={class:"mdc-side-sheet__wrapper"},yt={key:0,class:"mdc-side-sheet__header"},gt={class:"mdc-side-sheet__title"},Et={class:"mdc-side-sheet__content"},kt={key:0,class:"mdc-side-sheet__actions"},St={EVENTS:{CHANGE:"update:modelValue"}},Ct={name:"UiSideSheet",customOptions:{UI_SIDE_SHEET:St}};var xt=Object.assign(Ct,{props:{modelValue:{type:Boolean,default:!1},closable:{type:Boolean,default:!1}},emits:[St.EVENTS.CHANGE],setup(e,t){let{emit:n}=t;const o=e,l=n,a=(0,v.useSlots)(),r=(0,v.reactive)({closing:!1}),i=(0,v.computed)((()=>({"mdc-side-sheet":!0,"mdc-side-sheet--open":o.modelValue,"mdc-side-sheet--closing":r.closing}))),c=(0,v.computed)((()=>a.title||o.closable)),s=(0,v.computed)((()=>a.actions));function d(){r.closing=!0,setTimeout((()=>{l(St.EVENTS.CHANGE,!1),r.closing=!1}),300)}return(0,v.watch)((()=>o.modelValue),(e=>{e?Ye():Je()})),(t,n)=>((0,v.openBlock)(),(0,v.createElementBlock)("div",{class:(0,v.normalizeClass)(i.value)},[(0,v.createVNode)(v.Transition,{name:"mdc-side-sheet"},{default:(0,v.withCtx)((()=>[e.modelValue?((0,v.openBlock)(),(0,v.createElementBlock)("div",vt,[(0,v.createElementVNode)("div",bt,[c.value?((0,v.openBlock)(),(0,v.createElementBlock)("header",yt,[(0,v.createElementVNode)("h4",gt,[(0,v.renderSlot)(t.$slots,"title")]),e.closable?((0,v.openBlock)(),(0,v.createBlock)(ft,{key:0,tabindex:"-1",onClick:n[0]||(n[0]=e=>d())},{default:(0,v.withCtx)((()=>[(0,v.createTextVNode)(" close ")])),_:1})):(0,v.createCommentVNode)("",!0)])):(0,v.createCommentVNode)("",!0),(0,v.createElementVNode)("div",Et,[(0,v.renderSlot)(t.$slots,"default")])]),s.value?((0,v.openBlock)(),(0,v.createElementBlock)("footer",kt,[(0,v.renderSlot)(t.$slots,"actions")])):(0,v.createCommentVNode)("",!0)])):(0,v.createCommentVNode)("",!0)])),_:3}),(0,v.createElementVNode)("div",{class:"mdc-side-sheet__scrim",onClick:d})],2))}});const Nt={src:"",delay:300,scrollEvent:"scroll"};let _t=Nt,Bt=!0;const wt=(e,t)=>{const n="IMG"===e.tagName?e:e.querySelector("img");if(!n||"IMG"!==n.tagName)throw Bt=!1,new Error("[v-lazyload]: <image> element not found");t(n)},Vt={init(e,t){e.setAttribute("data-src",t),e.setAttribute("src",_t.src)},observe(e){new IntersectionObserver((t=>{const n=e.dataset.src;t[0].isIntersecting&&n&&(e.src=n,e.removeAttribute("data-src"))})).observe(e)},listenerScroll(e){const t=Vt.throttle(Vt.load,_t.delay);Vt.load(e),window.addEventListener(_t.scrollEvent,(()=>{t(e)}))},load(e){const t=document.documentElement.clientHeight,n=e.getBoundingClientRect().top,o=e.getBoundingClientRect().bottom;if(n-t<0&&o>0){const t=e.dataset.src;t&&(e.src=t,e.removeAttribute("data-src"))}},throttle(e,t){let n,o;return function(){for(var l=arguments.length,a=new Array(l),r=0;r<l;r++)a[r]=arguments[r];const i=Date.now(),c=this;if(o||(o=i),clearTimeout(n),i-o>t)return o=i,e.apply(c,a),void clearTimeout(n);n=setTimeout((function(){o=Date.now(),n=null,e.apply(c,a)}),t)}}},Lt={name:"lazyload",definition:{beforeMount(e,t){let{value:n}=t;Bt&&wt(e,(e=>{Vt.init(e,n)}))},mounted(e){Bt&&wt(e,(e=>IntersectionObserver?Vt.observe(e):Vt.listenerScroll(e)))}}};const Tt={install:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_t=Object.assign({},Nt,t),e.directive(Lt.name,Lt.definition)}};var jt=Tt;let At={cssClasses:{outer:"v-anchor--html",inner:"v-anchor"},body:null,offset:0};const Ot=e=>{let t=document.querySelector(e);t?At.body.scrollTop=t.offsetTop-At.offset:console.warn("[v-anchor]",`Invalid anchor: ${e}`)},Mt=(e,t,n)=>{let{value:o,arg:l,modifiers:a}=n;switch(l){case"href":t.dataset.href=o,t[`${e}EventListener`]("click",(()=>{Ot(o)}));break;case"id":t.setAttribute("id",o)}a.html&&t.classList[e](At.cssClasses.outer)},qt=function(e){let t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:document).querySelectorAll(`.${At.cssClasses.outer} .${At.cssClasses.inner}`);t.length&&t.forEach((t=>{t[`${e}EventListener`]("click",(()=>{Ot(t.dataset.href)}))}))};var $t={name:"anchor",beforeMount(e,t){Mt("add",e,t)},mounted(e,t){((e,t)=>{let{value:n,modifiers:o}=t;Object.keys(o).length&&(At.body=o.bodyElement?e:document.documentElement||document.body,At.offset=o.offset?n:At.body.dataset.vanchorOffset||0)})(e,t),t.modifiers.html&&qt("add")},updated(e,t,n){t.modifiers.html&&qt("add",n.el)},beforeUnmount(e,t){e===At.body&&(At.body=document.documentElement||document.body),Mt("remove",e,t),t.modifiers.html&&qt("remove")}};var Dt={name:"copy",beforeMount(e,t){let{value:n}=t;if("object"!==d(n))throw new Error("[v-copy]: The 'value' must be an object ({ text: string; success: Function; error?: Function })");{const{text:t,success:o,error:l}=n;"function"!==d(o)&&console.warn("[v-copy]: The 'success' must be a function"),e.$value=t,e.handler=()=>{if(!e.$value)return void(l&&l());const t=document.createElement("textarea");t.readOnly=!0,t.style.position="absolute",t.style.left="-9999px",t.value=e.$value,document.body.appendChild(t),t.select();document.execCommand("copy")&&o(),document.body.removeChild(t)},e.addEventListener("click",e.handler)}},updated(e,t){let{value:n}=t;e.$value=n.text},unmounted(e){e.removeEventListener("click",e.handler)}};function It(e,t){let{callback:n,delay:o}=t,l=null;function a(e){"click"===e.type&&0!==e.button||null===l&&(l=setTimeout((()=>{!function(e){n(e)}(e)}),o||2e3))}function r(e){null!==l&&(clearTimeout(l),l=null)}e.addEventListener("mousedown",a),e.addEventListener("touchstart",a),e.addEventListener("click",r),e.addEventListener("mouseout",r),e.addEventListener("touchend",r),e.addEventListener("touchcancel",r)}var Ht={name:"longpress",beforeMount(e,t){let{value:n}=t;if("function"===d(n))It(e,{callback:n});else{if("object"!==d(n))throw new Error("[v-longpress]: The 'value' must be an object ({ callback: Function, delay?: number })");"function"!==d(n.callback)&&console.warn("[v-longpress]: The 'callback' must be a function"),It(e,n)}},updated(e,t){let{value:n}=t;e.$value=n},unmounted(e){e.removeEventListener("click",e.handler)}};const Ut={UiEditor:Ne,UiSideSheet:xt,UiSkeleton:k,UiTree:Re,UiTreeNode:He,UiBottomSheet:ot,UiNavigationBar:Xe,UiNavigationRail:dt},Ft={$lazyload:jt},Pt={vAnchor:$t,vCopy:Dt,vLongpress:Ht},Rt=function(e){return f(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{Components:Ut,Plugins:Ft,Directives:Pt})};var zt={install:Rt};return a}()}));