{"version":3,"sources":["webpack:///./app/javascript/application/javascript/Collapsible.vue?f4c6","webpack:///./app/javascript/application/javascript/Collapsible.vue?3f5a","webpack:///app/javascript/application/javascript/Collapsible.vue","webpack:///./app/javascript/application/javascript/Collapsible.vue","webpack:///./app/javascript/application/javascript/Collapsible.vue?710e"],"names":["name","data","open","isOpen","height","closeOnNextTick","transitioning","props","openLabel","type","String","closedLabel","transitionDuration","transitionTimingFunction","transitionDelay","Boolean","onCollapse","Function","methods","handleClick","handleEnd","watch","newVal","oldVal","$refs","inner","scrollHeight","updated","_this","$nextTick","window","setTimeout","component","_vm","this","_h","$createElement","_c","_self","staticClass","class","Collapsible__trigger","attrs","on","$event","preventDefault","apply","arguments","_t","_e","_v","Collapsible__content","style","transitionProperty","ref"],"mappings":"kGAAA,ICAiN,ECoDnM,CACdA,KAAA,cACAC,KAAA,WACA,OACAC,KAAA,KAAAC,OACAC,OAAA,KAAAD,OAAA,aACAE,iBAAA,EACAC,eAAA,EAEA,EACAC,MAAA,CACAC,UAAA,CACAC,KAAAC,OACA,oBAEAC,YAAA,CACAF,KAAAC,OACA,mBAEAE,mBAAA,CACAH,KAAAC,OACA,iBAEAG,yBAAA,CACAJ,KAAAC,OACA,gBAEAI,gBAAA,CACAL,KAAAC,OACA,cAEAP,OAAA,CACA,WACAM,KAAAM,SAEAC,WAAA,CACA,qBACAP,KAAAQ,WAGAC,QAAA,CACAC,YAAA,WACA,KAAAH,YAAA,KAAAb,QACA,KAAAD,MAAA,KAAAA,IACA,EACAkB,UAAA,WACA,aAAAhB,SACA,KAAAA,OAAA,QAEA,KAAAE,eAAA,CACA,GAEAe,MAAA,CACAnB,KAAA,SAAAoB,EAAAC,GACA,KAAAjB,eAAA,EACA,KAAAF,OAAA,KAAAoB,MAAAC,MAAAC,aAAA,MACA,IAAAH,IACA,KAAAlB,iBAAA,EAEA,EACAF,OAAA,SAAAmB,GACA,KAAApB,KAAAoB,CACA,GAEAK,QAAA,eAAAC,EAAA,KACA,KAAAC,WAAA,WACAC,OAAAC,YAAA,WACAH,EAAAvB,kBACAuB,EAAAxB,OAAA,MACAwB,EAAAvB,iBAAA,EAEA,GACA,GACA,G,gBCrHI2B,EAAY,YACd,GHTW,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,eAAe,CAACF,EAAG,SAAS,CAACE,YAAY,qBAAqBC,MAAM,CACpLC,sBAAsB,EACtB,8BAA+BR,EAAI3B,eAAiB2B,EAAI/B,KACxD,gCAAiC+B,EAAI3B,gBAAkB2B,EAAI/B,KAC3D,sCAAuC+B,EAAI3B,eAC3CoC,MAAM,CAAC,KAAO,UAAUC,GAAG,CAAC,MAAQ,SAASC,GAAgC,OAAxBA,EAAOC,iBAAwBZ,EAAId,YAAY2B,MAAM,KAAMC,UAAU,IAAI,CAAEd,EAAQ,KAAEA,EAAIe,GAAG,WAAU,WAAW,MAAO,CAACX,EAAG,OAAO,CAACE,YAAY,6BAA6B,CAACN,EAAIe,GAAG,UAAU,GAAG,IAAGf,EAAIgB,KAAKhB,EAAIiB,GAAG,KAAOjB,EAAI/B,KAAyK+B,EAAIgB,KAAvKhB,EAAIe,GAAG,iBAAgB,WAAW,MAAO,CAACf,EAAIe,GAAG,WAAU,WAAW,MAAO,CAACX,EAAG,OAAO,CAACE,YAAY,6BAA6B,CAACN,EAAIe,GAAG,gBAAgB,GAAG,IAAG,KAAa,GAAGf,EAAIiB,GAAG,KAAKb,EAAG,MAAM,CAACG,MAAM,CACveW,sBAAsB,EACtB,8BAA+BlB,EAAI3B,eAAiB2B,EAAI/B,KACxD,gCAAiC+B,EAAI3B,gBAAkB2B,EAAI/B,KAC3D,sCAAuC+B,EAAI3B,eAC3C8C,MAAM,CACNhD,OAAQ6B,EAAI7B,OACZiD,mBAAoB,SACpBzC,mBAAoBqB,EAAIrB,mBACxBC,yBAA0BoB,EAAIpB,yBAC9BC,gBAAiBmB,EAAInB,iBACpB6B,GAAG,CAAC,cAAgBV,EAAIb,YAAY,CAACiB,EAAG,MAAM,CAACiB,IAAI,QAAQf,YAAY,6BAA6B,CAACN,EAAIe,GAAG,SAAS,MAAM,GAC5G,IGLpB,EACA,KACA,WACA,MAIa,UAAAhB,E,gECnBf,M","file":"js/5-93436e64d0b4eb31e36f.chunk.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"Collapsible\"},[_c('button',{staticClass:\"focus:outline-none\",class:{\n Collapsible__trigger: true,\n 'Collapsible__trigger--open': !_vm.transitioning && _vm.open,\n 'Collapsible__trigger--closed': !_vm.transitioning && !_vm.open,\n 'Collapsible__trigger--transitioning': _vm.transitioning\n },attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();return _vm.handleClick.apply(null, arguments)}}},[(_vm.open)?_vm._t(\"trigger\",function(){return [_c('span',{staticClass:\"Collapsible__triggerLabel\"},[_vm._t(\"title\")],2)]}):_vm._e(),_vm._v(\" \"),(!_vm.open)?_vm._t(\"closedTrigger\",function(){return [_vm._t(\"trigger\",function(){return [_c('span',{staticClass:\"Collapsible__triggerLabel\"},[_vm._t(\"close-title\")],2)]})]}):_vm._e()],2),_vm._v(\" \"),_c('div',{class:{\n Collapsible__content: true,\n 'Collapsible__content--open': !_vm.transitioning && _vm.open,\n 'Collapsible__content--closed': !_vm.transitioning && !_vm.open,\n 'Collapsible__content--transitioning': _vm.transitioning\n },style:({\n height: _vm.height,\n transitionProperty: 'height',\n transitionDuration: _vm.transitionDuration,\n transitionTimingFunction: _vm.transitionTimingFunction,\n transitionDelay: _vm.transitionDelay\n }),on:{\"transitionend\":_vm.handleEnd}},[_c('div',{ref:\"inner\",staticClass:\"Collapsible__contentInner\"},[_vm._t(\"body\")],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Collapsible.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Collapsible.vue?vue&type=script&lang=js&\"","<template>\n <div class=\"Collapsible\">\n <button\n @click.prevent=\"handleClick\"\n type=\"button\"\n class=\"focus:outline-none\"\n :class=\"{\n Collapsible__trigger: true,\n 'Collapsible__trigger--open': !transitioning && open,\n 'Collapsible__trigger--closed': !transitioning && !open,\n 'Collapsible__trigger--transitioning': transitioning\n }\"\n >\n <slot name=\"trigger\" v-if=\"open\">\n <span class=\"Collapsible__triggerLabel\">\n <slot name=\"title\" />\n </span>\n </slot>\n\n <slot name=\"closedTrigger\" v-if=\"!open\">\n <slot name=\"trigger\">\n <span class=\"Collapsible__triggerLabel\">\n <slot name=\"close-title\" />\n </span>\n </slot>\n </slot>\n </button>\n\n <div\n :class=\"{\n Collapsible__content: true,\n 'Collapsible__content--open': !transitioning && open,\n 'Collapsible__content--closed': !transitioning && !open,\n 'Collapsible__content--transitioning': transitioning\n }\"\n :style=\"{\n height,\n transitionProperty: 'height',\n transitionDuration,\n transitionTimingFunction,\n transitionDelay\n }\"\n @transitionend=\"handleEnd\"\n >\n <div class=\"Collapsible__contentInner\" ref=\"inner\">\n <slot name=\"body\" />\n </div>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'Collapsible',\n data() {\n return {\n open: this.isOpen,\n height: this.isOpen ? 'auto' : '0px',\n closeOnNextTick: false,\n transitioning: false\n };\n },\n props: {\n openLabel: {\n type: String,\n default: 'Close me'\n },\n closedLabel: {\n type: String,\n default: 'Open me'\n },\n transitionDuration: {\n type: String,\n default: '400ms'\n },\n transitionTimingFunction: {\n type: String,\n default: 'ease'\n },\n transitionDelay: {\n type: String,\n default: '0s'\n },\n isOpen: {\n default: false,\n type: Boolean\n },\n onCollapse: {\n default: () => {},\n type: Function\n }\n },\n methods: {\n handleClick() {\n this.onCollapse(!this.isOpen);\n this.open = !this.open;\n },\n handleEnd() {\n if (this.height !== '0px') {\n this.height = 'auto';\n }\n this.transitioning = false;\n }\n },\n watch: {\n open(newVal, oldVal) {\n this.transitioning = true;\n this.height = this.$refs.inner.scrollHeight + 'px';\n if (oldVal === true) {\n this.closeOnNextTick = true;\n }\n },\n isOpen(newVal) {\n this.open = newVal;\n }\n },\n updated() {\n this.$nextTick(() => {\n window.setTimeout(() => {\n if (this.closeOnNextTick) {\n this.height = '0px';\n this.closeOnNextTick = false;\n }\n });\n });\n }\n};\n</script>\n\n<style scoped>\n.Collapsible__content {\n overflow: hidden;\n}\n.Collapsible__contentInner {\n height: auto;\n}\n.Collapsible__trigger {\n appearance: none;\n border: 0;\n background: transparent;\n border-radius: 0;\n font-family: inherit;\n font-size: inherit;\n font-style: inherit;\n text-align: inherit;\n color: inherit;\n padding: 0;\n margin: 0;\n display: block;\n width: 100%;\n cursor: pointer;\n}\n</style>\n","import { render, staticRenderFns } from \"./Collapsible.vue?vue&type=template&id=368bcdc6&scoped=true&\"\nimport script from \"./Collapsible.vue?vue&type=script&lang=js&\"\nexport * from \"./Collapsible.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Collapsible.vue?vue&type=style&index=0&id=368bcdc6&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"368bcdc6\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/@rails/webpacker/node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/dist/cjs.js??ref--2-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--2-2!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Collapsible.vue?vue&type=style&index=0&id=368bcdc6&scoped=true&lang=css&\""],"sourceRoot":""}