{"version":3,"sources":["webpack:///../../../src/components/VExpansionPanel/VExpansionPanels.ts","webpack:///../../../src/components/VExpansionPanel/VExpansionPanelContent.ts","webpack:///./src/components/roles/RoleCreate.vue","webpack:///src/components/roles/RoleCreate.vue","webpack:///./src/components/roles/RoleCreate.vue?db84","webpack:///./src/components/roles/RoleCreate.vue?7e3e","webpack:///./src/components/roles/PermissionPicker.vue","webpack:///src/components/roles/PermissionPicker.vue","webpack:///./src/components/roles/PermissionPicker.vue?0c67","webpack:///./src/components/roles/PermissionPicker.vue?77f1","webpack:///../../../src/components/VExpansionPanel/VExpansionPanelHeader.ts","webpack:///../../../src/components/VExpansionPanel/VExpansionPanel.ts"],"names":["BaseItemGroup","extend","name","provide","expansionPanels","this","props","accordion","Boolean","disabled","flat","hover","focusable","inset","popout","readonly","tile","computed","classes","_objectSpread","options","call","created","$attrs","hasOwnProperty","breaking","Array","isArray","value","length","methods","updateItem","item","index","getValue","nextValue","isActive","toggleMethod","nextIsActive","baseMixins","mixins","Bootable","Colorable","RegistrableInject","data","parentIsActive","expansionPanel","watch","immediate","handler","val","oldVal","_this","isBooted","$nextTick","registerContent","beforeDestroy","unregisterContent","render","h","_this2","VExpandTransition","showLazyContent","setBackgroundColor","color","staticClass","directives","class","getSlot","open","on","$event","model","_vm","callback","valid","_c","attrs","$t","permissions","expression","submit","staticRenderFns","components","PermissionPicker","required","v","mapActions","_asyncToGenerator","_regeneratorRuntime","mark","_callee","payload","wrap","_context","prev","next","$refs","form","validate","abrupt","permissionGuids","createRole","stop","component","domProps","_l","key","defaultRoles","addPermissionsFromDefault","i","staticStyle","_v","_s","permission","missingRecommended","addAllRecommended","type","default","panels","toggled","mapState","mapGetters","lPermissions","_step","_iterator","_createForOfIteratorHelper","recommended","s","n","done","r","includes","err","e","f","isRecommended","id","toggle","res","findIndex","push","splice","getRecommendedPermissions","$emit","rolePermissions","_step2","_iterator2","p","userPermissionId","clearToggled","_step3","missing","_iterator3","concat","getPermissions","ripple","disableIconRotate","expandIcon","String","hideActions","Object","hasMousedown","isDisabled","isReadonly","registerHeader","unregisterHeader","onClick","genIcon","icon","$createElement","VIcon","VFadeTransition","tabindex","$listeners","click","mousedown","mouseup","GroupableFactory","RegistrableProvide","content","header","groupClasses","vm","$on","detail","$el","blur"],"mappings":"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","file":"js/chunk-339156c9.ef783e18.js","sourcesContent":["// Styles\nimport './VExpansionPanel.sass'\n\n// Components\nimport { BaseItemGroup, GroupableInstance } from '../VItemGroup/VItemGroup'\nimport VExpansionPanel from './VExpansionPanel'\n\n// Utilities\nimport { breaking } from '../../util/console'\n\n// Types\ninterface VExpansionPanelInstance extends InstanceType<typeof VExpansionPanel> {}\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n  name: 'v-expansion-panels',\n\n  provide (): object {\n    return {\n      expansionPanels: this,\n    }\n  },\n\n  props: {\n    accordion: Boolean,\n    disabled: Boolean,\n    flat: Boolean,\n    hover: Boolean,\n    focusable: Boolean,\n    inset: Boolean,\n    popout: Boolean,\n    readonly: Boolean,\n    tile: Boolean,\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        ...BaseItemGroup.options.computed.classes.call(this),\n        'v-expansion-panels': true,\n        'v-expansion-panels--accordion': this.accordion,\n        'v-expansion-panels--flat': this.flat,\n        'v-expansion-panels--hover': this.hover,\n        'v-expansion-panels--focusable': this.focusable,\n        'v-expansion-panels--inset': this.inset,\n        'v-expansion-panels--popout': this.popout,\n        'v-expansion-panels--tile': this.tile,\n      }\n    },\n  },\n\n  created () {\n    /* istanbul ignore next */\n    if (this.$attrs.hasOwnProperty('expand')) {\n      breaking('expand', 'multiple', this)\n    }\n\n    /* istanbul ignore next */\n    if (\n      Array.isArray(this.value) &&\n      this.value.length > 0 &&\n      typeof this.value[0] === 'boolean'\n    ) {\n      breaking(':value=\"[true, false, true]\"', ':value=\"[0, 2]\"', this)\n    }\n  },\n\n  methods: {\n    updateItem (item: GroupableInstance & VExpansionPanelInstance, index: number) {\n      const value = this.getValue(item, index)\n      const nextValue = this.getValue(item, index + 1)\n\n      item.isActive = this.toggleMethod(value)\n      item.nextIsActive = this.toggleMethod(nextValue)\n    },\n  },\n})\n","// Components\nimport VExpansionPanel from './VExpansionPanel'\nimport { VExpandTransition } from '../transitions'\n\n// Mixins\nimport Bootable from '../../mixins/bootable'\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n  Bootable,\n  Colorable,\n  RegistrableInject<'expansionPanel', VueConstructor<Vue>>('expansionPanel', 'v-expansion-panel-content', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue<typeof baseMixins> {\n  expansionPanel: InstanceType<typeof VExpansionPanel>\n}\n\n/* @vue/component */\nexport default baseMixins.extend<options>().extend({\n  name: 'v-expansion-panel-content',\n\n  data: () => ({\n    isActive: false,\n  }),\n\n  computed: {\n    parentIsActive (): boolean {\n      return this.expansionPanel.isActive\n    },\n  },\n\n  watch: {\n    parentIsActive: {\n      immediate: true,\n      handler (val, oldVal) {\n        if (val) this.isBooted = true\n\n        if (oldVal == null) this.isActive = val\n        else this.$nextTick(() => this.isActive = val)\n      },\n    },\n  },\n\n  created () {\n    this.expansionPanel.registerContent(this)\n  },\n\n  beforeDestroy () {\n    this.expansionPanel.unregisterContent()\n  },\n\n  render (h): VNode {\n    return h(VExpandTransition, this.showLazyContent(() => [\n      h('div', this.setBackgroundColor(this.color, {\n        staticClass: 'v-expansion-panel-content',\n        directives: [{\n          name: 'show',\n          value: this.isActive,\n        }],\n      }), [\n        h('div', { class: 'v-expansion-panel-content__wrap' }, getSlot(this, 'default', { open: this.isActive })),\n      ]),\n    ]))\n  },\n})\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":true},on:{\"submit\":function($event){$event.preventDefault();return _vm.handleSubmit.apply(null, arguments)}},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-card',[_c('v-card-text',[_c('v-text-field',{attrs:{\"label\":_vm.$t('roles.fields.name'),\"prepend-icon\":\"mdi-rename-box\",\"rules\":_vm.required},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}})],1),_c('v-card-text',[_c('permission-picker',{model:{value:(_vm.permissions),callback:function ($$v) {_vm.permissions=$$v},expression:\"permissions\"}})],1),_c('v-card-text',[_c('v-btn',{on:{\"click\":_vm.submit}},[_vm._v(\"Submit\")])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <v-form\r\n    :lazy-validation=\"true\"\r\n    @submit.prevent=\"handleSubmit\"\r\n    v-model=\"valid\"\r\n    ref=\"form\"\r\n  >\r\n    <v-card>\r\n      <v-card-text>\r\n        <v-text-field\r\n          :label=\"$t('roles.fields.name')\"\r\n          v-model=\"name\"\r\n          prepend-icon=\"mdi-rename-box\"\r\n          :rules=\"required\"\r\n        ></v-text-field>\r\n      </v-card-text>\r\n\r\n      <!-- Create the custom permission picker -->\r\n      <v-card-text>\r\n        <permission-picker v-model=\"permissions\" />\r\n      </v-card-text>\r\n\r\n      <v-card-text>\r\n        <v-btn @click=\"submit\">Submit</v-btn>\r\n      </v-card-text>\r\n    </v-card>\r\n  </v-form>\r\n</template>\r\n\r\n<script>\r\nimport { mapActions } from \"vuex\";\r\nimport PermissionPicker from \"./PermissionPicker.vue\";\r\n\r\nexport default {\r\n  name: \"RoleCreate\",\r\n\r\n  components: {\r\n    PermissionPicker,\r\n  },\r\n\r\n  data() {\r\n    return {\r\n      valid: false,\r\n      name: \"\",\r\n      permissions: [],\r\n      required: [(v) => !!v || this.$t(\"dashboard.nameReq\")],\r\n    };\r\n  },\r\n\r\n  computed: {},\r\n\r\n  methods: {\r\n    ...mapActions(\"roles\", [\"createRole\"]),\r\n\r\n    async submit() {\r\n      if (!this.$refs.form.validate()) {\r\n        this.valid = false;\r\n        return;\r\n      }\r\n\r\n      var payload = {\r\n        name: this.name,\r\n        permissionGuids: this.permissions,\r\n      };\r\n\r\n      await this.createRole(payload);\r\n\r\n      // Create the role\r\n    },\r\n  },\r\n\r\n  created() {},\r\n};\r\n</script>","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoleCreate.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoleCreate.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RoleCreate.vue?vue&type=template&id=beb92b42\"\nimport script from \"./RoleCreate.vue?vue&type=script&lang=js\"\nexport * from \"./RoleCreate.vue?vue&type=script&lang=js\"\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  null,\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('h2',{staticClass:\"h2 text-left\"},[_vm._v(_vm._s(_vm.$t(\"roles.pickPermissionsTitle\")))]),_c('p',{staticClass:\"subtitle-1 text-left\",domProps:{\"innerHTML\":_vm._s(_vm.$t('roles.pickPermissionsDesc'))}}),_c('v-row',[_vm._l((_vm.defaultsWithPermissions),function(defaultRoles){return _c('v-btn',{key:defaultRoles.userRoleId,staticClass:\"ma-3\",attrs:{\"rounded\":\"\",\"color\":\"primary\",\"small\":\"\"},on:{\"click\":() => _vm.addPermissionsFromDefault(defaultRoles.permissions)}},[_vm._v(\" \"+_vm._s(defaultRoles.name)+\" \")])}),_c('v-btn',{staticClass:\"ma-3 white--text\",attrs:{\"rounded\":\"\",\"small\":\"\",\"color\":\"grey\"},on:{\"click\":_vm.clearToggled}},[_vm._v(\" \"+_vm._s(_vm.$t(\"common.clear\"))+\" \")])],2),_c('v-row',[_c('v-expansion-panels',{attrs:{\"inset\":\"\",\"multiple\":\"\"},model:{value:(_vm.panels),callback:function ($$v) {_vm.panels=$$v},expression:\"panels\"}},_vm._l((_vm.lPermissions),function(_,i){return _c('v-expansion-panel',{key:i},[_c('v-expansion-panel-header',{staticClass:\"white--text\",attrs:{\"color\":\"grey darken-2\"}},[_vm._v(_vm._s(_vm.$t(\"roles.layerTypes.\" + i)))]),_c('v-expansion-panel-content',[_c('v-container',[_c('v-row',_vm._l((_vm.lPermissions[i]),function(permission){return _c('v-col',{key:permission.userPermissionId,staticStyle:{\"overflow\":\"hidden\"},attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"xs\":\"6\"}},[_c('v-btn',{class:_vm.isActive(permission.userPermissionId)\n                      ? 'success white--text'\n                      : _vm.isRecommended(permission.userPermissionId)\n                      ? 'yellow darken-3'\n                      : 'grey white--text',attrs:{\"depressed\":\"\",\"rounded\":\"\",\"x-small\":\"\"},on:{\"click\":function($event){return _vm.toggle(permission.userPermissionId)}}},[_vm._v(\" \"+_vm._s(permission.name)+\" \")])],1)}),1)],1)],1)],1)}),1)],1),(_vm.missingRecommended)?_c('v-row',{staticClass:\"mt-4 d-flex align-center justify-center\",staticStyle:{\"width\":\"100%\"}},[_c('v-card',{staticStyle:{\"width\":\"60%\",\"background-color\":\"#f57f1736 !important\"},on:{\"click\":_vm.addAllRecommended}},[_c('v-card-text',[_c('h6',{staticClass:\"text-h6 yellow--text text--darken-4\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"roles.missingRecommendedTitle\"))+\" \")]),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"yellow darken-4\"}},[_vm._v(_vm._s(_vm.$t(\"roles.missingRecommendedButton\")))])],1)],1)],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <v-container fluid>\r\n    <h2 class=\"h2 text-left\">{{ $t(\"roles.pickPermissionsTitle\") }}</h2>\r\n    <p\r\n      class=\"subtitle-1 text-left\"\r\n      v-html=\"$t('roles.pickPermissionsDesc')\"\r\n    ></p>\r\n\r\n    <v-row>\r\n      <v-btn\r\n        rounded\r\n        color=\"primary\"\r\n        small\r\n        class=\"ma-3\"\r\n        v-for=\"defaultRoles in defaultsWithPermissions\"\r\n        :key=\"defaultRoles.userRoleId\"\r\n        @click=\"() => addPermissionsFromDefault(defaultRoles.permissions)\"\r\n      >\r\n        {{ defaultRoles.name }}\r\n      </v-btn>\r\n\r\n      <v-btn\r\n        rounded\r\n        small\r\n        class=\"ma-3 white--text\"\r\n        color=\"grey\"\r\n        @click=\"clearToggled\"\r\n      >\r\n        {{ $t(\"common.clear\") }}\r\n      </v-btn>\r\n    </v-row>\r\n\r\n    <v-row>\r\n      <v-expansion-panels v-model=\"panels\" inset multiple>\r\n        <v-expansion-panel v-for=\"(_, i) in lPermissions\" :key=\"i\">\r\n          <v-expansion-panel-header class=\"white--text\" color=\"grey darken-2\">{{\r\n            $t(\"roles.layerTypes.\" + i)\r\n          }}</v-expansion-panel-header>\r\n          <v-expansion-panel-content>\r\n            <v-container>\r\n              <v-row>\r\n                <v-col\r\n                  lg=\"3\"\r\n                  md=\"4\"\r\n                  sm=\"6\"\r\n                  xs=\"6\"\r\n                  v-for=\"permission in lPermissions[i]\"\r\n                  :key=\"permission.userPermissionId\"\r\n                  style=\"overflow: hidden\"\r\n                >\r\n                  <v-btn\r\n                    depressed\r\n                    rounded\r\n                    x-small\r\n                    :class=\"\r\n                      isActive(permission.userPermissionId)\r\n                        ? 'success white--text'\r\n                        : isRecommended(permission.userPermissionId)\r\n                        ? 'yellow darken-3'\r\n                        : 'grey white--text'\r\n                    \"\r\n                    @click=\"toggle(permission.userPermissionId)\"\r\n                  >\r\n                    {{ permission.name }}\r\n                  </v-btn>\r\n                </v-col>\r\n              </v-row>\r\n            </v-container>\r\n          </v-expansion-panel-content>\r\n        </v-expansion-panel>\r\n      </v-expansion-panels>\r\n    </v-row>\r\n\r\n    <v-row\r\n      v-if=\"missingRecommended\"\r\n      class=\"mt-4 d-flex align-center justify-center\"\r\n      style=\"width: 100%\"\r\n    >\r\n      <v-card\r\n        style=\"width: 60%; background-color: #f57f1736 !important\"\r\n        @click=\"addAllRecommended\"\r\n      >\r\n        <v-card-text>\r\n          <h6 class=\"text-h6 yellow--text text--darken-4\">\r\n            {{ $t(\"roles.missingRecommendedTitle\") }}\r\n          </h6>\r\n          <v-btn text color=\"yellow darken-4\">{{\r\n            $t(\"roles.missingRecommendedButton\")\r\n          }}</v-btn>\r\n        </v-card-text>\r\n      </v-card>\r\n    </v-row>\r\n  </v-container>\r\n</template>\r\n\r\n<script>\r\nimport { mapActions, mapGetters, mapState } from \"vuex\";\r\nexport default {\r\n  name: \"PermissionPicker\",\r\n\r\n  props: {\r\n    value: {\r\n      type: Array,\r\n      default: function () {\r\n        return [];\r\n      },\r\n    },\r\n  },\r\n\r\n  data() {\r\n    return {\r\n      panels: [0, 0],\r\n      toggled: [],\r\n    };\r\n  },\r\n\r\n  computed: {\r\n    ...mapState(\"roles\", [\"permissions\", \"recommended\"]),\r\n    ...mapGetters(\"roles\", [\"defaultsWithPermissions\"]),\r\n\r\n    lPermissions() {\r\n      return this.permissions;\r\n    },\r\n\r\n    missingRecommended() {\r\n      for (var r of this.recommended)\r\n        if (!this.toggled.includes(r)) {\r\n          return true;\r\n        }\r\n\r\n      return false;\r\n    },\r\n  },\r\n\r\n  methods: {\r\n    ...mapActions(\"roles\", [\"getRecommendedPermissions\", \"getPermissions\"]),\r\n\r\n    isRecommended(id) {\r\n      return this.recommended.includes(id);\r\n    },\r\n\r\n    toggle(id) {\r\n      var res = this.toggled.findIndex((e) => e == id);\r\n      if (res == -1) {\r\n        this.toggled.push(id);\r\n      } else {\r\n        this.toggled.splice(res, 1);\r\n      }\r\n\r\n      this.getRecommendedPermissions(this.toggled);\r\n      this.$emit(\"input\", this.toggled);\r\n    },\r\n\r\n    isActive(id) {\r\n      return this.toggled.includes(id);\r\n    },\r\n\r\n    addPermissionsFromDefault(rolePermissions) {\r\n      for (var p of rolePermissions) {\r\n        if (!this.toggled.includes(p.userPermissionId))\r\n          this.toggled.push(p.userPermissionId);\r\n      }\r\n\r\n      this.$emit(\"input\", this.toggled);\r\n      this.getRecommendedPermissions(this.toggled);\r\n    },\r\n\r\n    clearToggled() {\r\n      this.toggled = [];\r\n      this.getRecommendedPermissions(this.toggled);\r\n      this.$emit(\"input\", []);\r\n    },\r\n\r\n    addAllRecommended() {\r\n      let missing = [];\r\n      for (var r of this.recommended)\r\n        if (!this.toggled.includes(r)) this.toggled.push(r);\r\n\r\n      if (missing.length != 0) this.toggled = this.toggled.concat(missing);\r\n    },\r\n  },\r\n\r\n  async created() {\r\n    if (this.value != null && this.value.length > 0) this.toggled = this.value;\r\n\r\n    this.getRecommendedPermissions(this.toggled);\r\n    await this.getPermissions();\r\n  },\r\n};\r\n</script>","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionPicker.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionPicker.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PermissionPicker.vue?vue&type=template&id=111e721c\"\nimport script from \"./PermissionPicker.vue?vue&type=script&lang=js\"\nexport * from \"./PermissionPicker.vue?vue&type=script&lang=js\"\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  null,\n  null\n  \n)\n\nexport default component.exports","// Components\nimport { VFadeTransition } from '../transitions'\nimport VExpansionPanel from './VExpansionPanel'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n  Colorable,\n  RegistrableInject<'expansionPanel', VueConstructor<Vue>>('expansionPanel', 'v-expansion-panel-header', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue<typeof baseMixins> {\n  $el: HTMLElement\n  expansionPanel: InstanceType<typeof VExpansionPanel>\n}\n\nexport default baseMixins.extend<options>().extend({\n  name: 'v-expansion-panel-header',\n\n  directives: { ripple },\n\n  props: {\n    disableIconRotate: Boolean,\n    expandIcon: {\n      type: String,\n      default: '$expand',\n    },\n    hideActions: Boolean,\n    ripple: {\n      type: [Boolean, Object],\n      default: false,\n    },\n  },\n\n  data: () => ({\n    hasMousedown: false,\n  }),\n\n  computed: {\n    classes (): object {\n      return {\n        'v-expansion-panel-header--active': this.isActive,\n        'v-expansion-panel-header--mousedown': this.hasMousedown,\n      }\n    },\n    isActive (): boolean {\n      return this.expansionPanel.isActive\n    },\n    isDisabled (): boolean {\n      return this.expansionPanel.isDisabled\n    },\n    isReadonly (): boolean {\n      return this.expansionPanel.isReadonly\n    },\n  },\n\n  created () {\n    this.expansionPanel.registerHeader(this)\n  },\n\n  beforeDestroy () {\n    this.expansionPanel.unregisterHeader()\n  },\n\n  methods: {\n    onClick (e: MouseEvent) {\n      this.$emit('click', e)\n    },\n    genIcon () {\n      const icon = getSlot(this, 'actions', { open: this.isActive }) ||\n        [this.$createElement(VIcon, this.expandIcon)]\n\n      return this.$createElement(VFadeTransition, [\n        this.$createElement('div', {\n          staticClass: 'v-expansion-panel-header__icon',\n          class: {\n            'v-expansion-panel-header__icon--disable-rotate': this.disableIconRotate,\n          },\n          directives: [{\n            name: 'show',\n            value: !this.isDisabled,\n          }],\n        }, icon),\n      ])\n    },\n  },\n\n  render (h): VNode {\n    return h('button', this.setBackgroundColor(this.color, {\n      staticClass: 'v-expansion-panel-header',\n      class: this.classes,\n      attrs: {\n        tabindex: this.isDisabled ? -1 : null,\n        type: 'button',\n        'aria-expanded': this.isActive,\n      },\n      directives: [{\n        name: 'ripple',\n        value: this.ripple,\n      }],\n      on: {\n        ...this.$listeners,\n        click: this.onClick,\n        mousedown: () => (this.hasMousedown = true),\n        mouseup: () => (this.hasMousedown = false),\n      },\n    }), [\n      getSlot(this, 'default', { open: this.isActive }, true),\n      this.hideActions || this.genIcon(),\n    ])\n  },\n})\n","// Components\nimport VExpansionPanels from './VExpansionPanels'\nimport VExpansionPanelHeader from './VExpansionPanelHeader'\nimport VExpansionPanelContent from './VExpansionPanelContent'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VExpansionPanelHeaderInstance = InstanceType<typeof VExpansionPanelHeader>\ntype VExpansionPanelContentInstance = InstanceType<typeof VExpansionPanelContent>\n\nexport default mixins(\n  GroupableFactory<'expansionPanels', typeof VExpansionPanels>('expansionPanels', 'v-expansion-panel', 'v-expansion-panels'),\n  RegistrableProvide('expansionPanel', true)\n  /* @vue/component */\n).extend({\n  name: 'v-expansion-panel',\n\n  props: {\n    disabled: Boolean,\n    readonly: Boolean,\n  },\n\n  data () {\n    return {\n      content: null as VExpansionPanelContentInstance | null,\n      header: null as VExpansionPanelHeaderInstance | null,\n      nextIsActive: false,\n    }\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        'v-expansion-panel--active': this.isActive,\n        'v-expansion-panel--next-active': this.nextIsActive,\n        'v-expansion-panel--disabled': this.isDisabled,\n        ...this.groupClasses,\n      }\n    },\n    isDisabled (): boolean {\n      return this.expansionPanels.disabled || this.disabled\n    },\n    isReadonly (): boolean {\n      return this.expansionPanels.readonly || this.readonly\n    },\n  },\n\n  methods: {\n    registerContent (vm: VExpansionPanelContentInstance) {\n      this.content = vm\n    },\n    unregisterContent () {\n      this.content = null\n    },\n    registerHeader (vm: VExpansionPanelHeaderInstance) {\n      this.header = vm\n      vm.$on('click', this.onClick)\n    },\n    unregisterHeader () {\n      this.header = null\n    },\n    onClick (e: MouseEvent) {\n      if (e.detail) this.header!.$el.blur()\n\n      this.$emit('click', e)\n\n      this.isReadonly || this.isDisabled || this.toggle()\n    },\n    toggle () {\n      this.$nextTick(() => this.$emit('change'))\n    },\n  },\n\n  render (h): VNode {\n    return h('div', {\n      staticClass: 'v-expansion-panel',\n      class: this.classes,\n      attrs: {\n        'aria-expanded': String(this.isActive),\n      },\n    }, getSlot(this))\n  },\n})\n"],"sourceRoot":""}