@dialpad/dialtone
Version:
Dialpad's Dialtone design system monorepo
1 lines • 5.1 kB
Source Map (JSON)
{"version":3,"file":"collapsible-lazy-show.cjs","sources":["../../../components/collapsible/collapsible_lazy_show.vue"],"sourcesContent":["<template>\n <!-- applies the transition on initial render -->\n <transition\n :appear=\"appear\"\n enter-active-class=\"d-collapsible__enter-active\"\n leave-active-class=\"d-collapsible__leave-active\"\n v-bind=\"$attrs\"\n :css=\"isCSSEnabled\"\n @before-enter=\"beforeEnter\"\n @enter=\"enter\"\n @after-enter=\"afterEnter\"\n @before-leave=\"beforeLeave\"\n @leave=\"leave\"\n @after-leave=\"afterLeave\"\n >\n <component\n :is=\"elementType\"\n v-show=\"show\"\n v-bind=\"$attrs\"\n >\n <!-- @slot slot for Content within collapsible -->\n <slot v-if=\"initialized\" />\n </component>\n </transition>\n</template>\n\n<script>\nexport default {\n name: 'DtCollapsibleLazyShow',\n\n inheritAttrs: false,\n\n /******************\n * PROPS *\n ******************/\n props: {\n /**\n * Whether the child slot is shown.\n */\n show: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Enable/Disable transition animation\n */\n appear: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML element type (tag name) of the content wrapper element.\n */\n elementType: {\n type: String,\n default: 'div',\n },\n },\n\n /******************\n * DATA *\n ******************/\n data () {\n return {\n initialized: !!this.show,\n };\n },\n\n /******************\n * COMPUTED *\n ******************/\n computed: {\n /**\n * Set the css property to false when running tests only.\n * Refer to: https://vuejs.org/guide/built-ins/transition.html#javascript-hooks for details about\n * transition `css` property\n * @returns {boolean}\n */\n isCSSEnabled () {\n return process.env.NODE_ENV !== 'test';\n },\n },\n\n /******************\n * WATCH *\n ******************/\n watch: {\n show: function (newValue) {\n if (!newValue || this.initialized) return;\n\n this.initialized = true;\n },\n },\n\n methods: {\n /**\n * @param {HTMLElement} element\n */\n beforeEnter (element) {\n requestAnimationFrame(() => {\n if (!element.style.height) {\n element.style.height = '0px';\n }\n });\n },\n\n /**\n * @param {HTMLElement} element\n */\n enter (element) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n element.style.height = `${element.scrollHeight}px`;\n });\n });\n },\n\n /**\n * @param {HTMLElement} element\n */\n afterEnter (element) {\n element.style.height = null;\n },\n\n /**\n * @param {HTMLElement} element\n */\n beforeLeave (element) {\n requestAnimationFrame(() => {\n if (!element.style.height) {\n element.style.height = `${element.offsetHeight}px`;\n }\n });\n },\n\n /**\n * @param {HTMLElement} element\n */\n leave (element) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n element.style.height = '0px';\n });\n });\n },\n\n /**\n * @param {HTMLElement} element\n */\n afterLeave (element) {\n element.style.height = null;\n },\n },\n};\n</script>\n"],"names":["_sfc_main","newValue","element","_openBlock","_createBlock","_Transition","_mergeProps","$props","_ctx","$options","_withCtx","_withDirectives","_resolveDynamicComponent","_normalizeProps","_guardReactiveProps","$data","_renderSlot","_createCommentVNode"],"mappings":"6LA2BKA,EAAU,CACb,KAAM,wBAEN,aAAc,GAKd,MAAO,CAIL,KAAM,CACJ,KAAM,QACN,QAAS,MAMX,OAAQ,CACN,KAAM,QACN,QAAS,IAMX,YAAa,CACX,KAAM,OACN,QAAS,QAOb,MAAQ,CACN,MAAO,CACL,YAAa,CAAC,CAAC,KAAK,KAExB,EAKA,SAAU,CAOR,cAAgB,CACd,OAAO,QAAQ,IAAI,WAAa,MAClC,GAMF,MAAO,CACL,KAAM,SAAUC,EAAU,CACpB,CAACA,GAAY,KAAK,cAEtB,KAAK,YAAc,GACrB,GAGF,QAAS,CAIP,YAAaC,EAAS,CACpB,sBAAsB,IAAM,CACrBA,EAAQ,MAAM,SACjBA,EAAQ,MAAM,OAAS,MAE3B,CAAC,CACH,EAKA,MAAOA,EAAS,CACd,sBAAsB,IAAM,CAC1B,sBAAsB,IAAM,CAC1BA,EAAQ,MAAM,OAAS,GAAGA,EAAQ,YAAY,IAChD,CAAC,CACH,CAAC,CACH,EAKA,WAAYA,EAAS,CACnBA,EAAQ,MAAM,OAAS,IACzB,EAKA,YAAaA,EAAS,CACpB,sBAAsB,IAAM,CACrBA,EAAQ,MAAM,SACjBA,EAAQ,MAAM,OAAS,GAAGA,EAAQ,YAAY,KAElD,CAAC,CACH,EAKA,MAAOA,EAAS,CACd,sBAAsB,IAAM,CAC1B,sBAAsB,IAAM,CAC1BA,EAAQ,MAAM,OAAS,KACzB,CAAC,CACH,CAAC,CACH,EAKA,WAAYA,EAAS,CACnBA,EAAQ,MAAM,OAAS,IACzB,EAEJ,0BAzJE,OAAAC,YAAA,EAAAC,cAqBaC,EAAAA,WArBbC,EAAAA,WAqBa,CApBV,OAAQC,EAAA,OACT,qBAAmB,8BACnB,qBAAmB,+BACXC,EAAA,OAAM,CACb,IAAKC,EAAA,aACL,cAAcA,EAAA,YACd,QAAOA,EAAA,MACP,aAAaA,EAAA,WACb,cAAcA,EAAA,YACd,QAAOA,EAAA,MACP,aAAaA,EAAA,cAblB,QAAAC,EAAAA,QAeI,IAOY,CAPZC,EAAAA,gBAAAR,EAAAA,UAAA,EAAAC,EAAAA,YAOYQ,EAAAA,wBANLL,EAAA,WAAW,EAhBtBM,EAAAA,eAAAC,EAAAA,mBAkBcN,EAAA,MAAM,CAAA,EAAA,CAlBpB,QAAAE,EAAAA,QAqBM,IAA2B,CAAfK,EAAA,YAAZC,EAAAA,WAA2BR,oBArBjC,IAAA,CAAA,CAAA,EAAAS,EAAAA,mBAAA,GAAA,EAAA,IAAA,EAAA,kBAiBcV,EAAA,IAAI,MAjBlB,EAAA"}