balm-ui
Version:
A modular and customizable UI library based on Material Design and Vue 3
1 lines • 5.61 kB
JavaScript
!function(e,r){"object"===typeof exports&&"object"===typeof module?module.exports=r(require("vue")):"function"===typeof define&&define.amd?define("UiCollapse",["vue"],r):"object"===typeof exports?exports.UiCollapse=r(require("vue")):e.UiCollapse=r(e.Vue)}("undefined"!==typeof self?self:this,(function(e){return function(){"use strict";var r={744:function(e){var r=function(e){return function(e){return!!e&&"object"===typeof e}(e)&&!function(e){var r=Object.prototype.toString.call(e);return"[object RegExp]"===r||"[object Date]"===r||function(e){return e.$$typeof===t}(e)}(e)};var t="function"===typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function n(e,r){return!1!==r.clone&&r.isMergeableObject(e)?s((t=e,Array.isArray(t)?[]:{}),e,r):e;var t}function o(e,r,t){return e.concat(r).map((function(e){return n(e,t)}))}function c(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(r){return Object.propertyIsEnumerable.call(e,r)})):[]}(e))}function a(e,r){try{return r in e}catch(t){return!1}}function l(e,r,t){var o={};return t.isMergeableObject(e)&&c(e).forEach((function(r){o[r]=n(e[r],t)})),c(r).forEach((function(c){(function(e,r){return a(e,r)&&!(Object.hasOwnProperty.call(e,r)&&Object.propertyIsEnumerable.call(e,r))})(e,c)||(a(e,c)&&t.isMergeableObject(r[c])?o[c]=function(e,r){if(!r.customMerge)return s;var t=r.customMerge(e);return"function"===typeof t?t:s}(c,t)(e[c],r[c],t):o[c]=n(r[c],t))})),o}function s(e,t,c){(c=c||{}).arrayMerge=c.arrayMerge||o,c.isMergeableObject=c.isMergeableObject||r,c.cloneUnlessOtherwiseSpecified=n;var a=Array.isArray(t);return a===Array.isArray(e)?a?c.arrayMerge(e,t,c):l(e,t,c):n(t,c)}s.all=function(e,r){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,t){return s(e,t,r)}),{})};var i=s;e.exports=i},154:function(r){r.exports=e}},t={};function n(e){var o=t[e];if(void 0!==o)return o.exports;var c=t[e]={exports:{}};return r[e](c,c.exports,n),c.exports}n.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(r,{a:r}),r},n.d=function(e,r){for(var t in r)n.o(r,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},n.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)};var o={};n.d(o,{default:function(){return j}});var c=n(744),a=n.n(c);const l=/(?:^\[object\s(.*?)\]$)/;var s=e=>Object.prototype.toString.call(e).replace(l,"$1").toLowerCase();const i=e=>{let{componentProps:r,propName:t,props:n}=e,o=n[t];if("object"===s(o)){const e=r[t].default;r[t].default=()=>a()(e,o)}else Array.isArray(o)?r[t].default=()=>o:r[t].default=o},u=e=>{let{componentMixins:r,propName:t,props:n}=e;if(r.length){let e=r.length;for(;e--;)if(r[e].props&&void 0!==r[e].props[t]){i({componentProps:r[e].props,propName:t,props:n});break}}};var p=(e,r)=>{for(const t of Object.keys(r))e.props?void 0===e.props[t]?u({componentMixins:e.mixins,propName:t,props:r}):i({componentProps:e.props,propName:t,props:r}):u({componentMixins:e.mixins,propName:t,props:r})};var f=e=>{const r={install(r){p(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}),r.component(e.name,e)}};return r},d=n(154);const m={cssClasses:{icon:"material-icons"},EVENTS:{CLICK:"click"},getMaterialIconClass:function(){for(var e=arguments.length,r=new Array(e),t=0;t<e;t++)r[t]=arguments[t];return[m.cssClasses.icon,...r]}};var y=m;const v=["aria-expanded"],b={class:"mdc-collapse__title"},C={class:"mdc-collapse__content"},g={cssClasses:{icon:"mdc-collapse__icon"},EVENTS:{CHANGE:"update:modelValue"}},E={name:"UiCollapse",customOptions:{UI_GLOBAL:y,UI_COLLAPSE:g}};var h=Object.assign(E,{props:{modelValue:{type:Boolean,default:!1},withIcon:{type:Boolean,default:!1},iconEndAligned:{type:Boolean,default:!1},ripple:{type:[Boolean,Number],default:!1}},emits:[y.EVENTS.CLICK,g.EVENTS.CHANGE],setup(e,r){let{emit:t}=r;const n=e,o=t,c=(0,d.ref)(n.modelValue),{handleClick:a}=function(e){let{emit:r}=e;return{handleClick:function(e){r(m.EVENTS.CLICK,e)}}}({emit:o}),l=(0,d.computed)((()=>({"mdc-collapse":!0,"mdc-collapse--expanded":c.value,"mdc-collapse--with-icon":n.withIcon,"mdc-collapse--icon-end-aligned":n.iconEndAligned})));function s(){c.value=!c.value,o(g.EVENTS.CHANGE,c.value)}return(0,d.watch)((()=>n.modelValue),(e=>c.value=e)),(r,t)=>{const n=(0,d.resolveDirective)("ripple");return(0,d.openBlock)(),(0,d.createElementBlock)("div",{class:(0,d.normalizeClass)(l.value),"aria-expanded":c.value,onClick:t[0]||(t[0]=function(){return(0,d.unref)(a)&&(0,d.unref)(a)(...arguments)})},[(0,d.withDirectives)(((0,d.openBlock)(),(0,d.createElementBlock)("div",{class:"mdc-collapse__header",onClick:s},[c.value?(0,d.renderSlot)(r.$slots,"expand-more-icon",{key:0,iconClass:g.cssClasses.icon},(()=>[e.withIcon?((0,d.openBlock)(),(0,d.createElementBlock)("i",{key:0,class:(0,d.normalizeClass)((0,d.unref)(y).getMaterialIconClass(g.cssClasses.icon)),"aria-hidden":"true"}," expand_more ",2)):(0,d.createCommentVNode)("",!0)])):(0,d.renderSlot)(r.$slots,"expand-less-icon",{key:1,iconClass:g.cssClasses.icon},(()=>[e.withIcon?((0,d.openBlock)(),(0,d.createElementBlock)("i",{key:0,class:(0,d.normalizeClass)((0,d.unref)(y).getMaterialIconClass(g.cssClasses.icon)),"aria-hidden":"true"}," chevron_right ",2)):(0,d.createCommentVNode)("",!0)])),(0,d.createElementVNode)("div",b,[(0,d.renderSlot)(r.$slots,"toggle")])])),[[n,e.ripple]]),(0,d.withDirectives)((0,d.createElementVNode)("div",C,[(0,d.renderSlot)(r.$slots,"default")],512),[[d.vShow,c.value]])],10,v)}}});var j=f(h);return o=o.default}()}));