text: /*!
   * Keen UI v1.3.0 (https://github.com/JosephusPaye/keen-ui)
   * (c) 2020 Josephus Paye II
   * Released under the MIT License.
   */
  (function webpackUniversalModuleDefinition(root, factory) {
  	if(typeof exports === 'object' && typeof module === 'object')
  		module.exports = factory();
  	else if(typeof define === 'function' && define.amd)
  		define([], factory);
  	else if(typeof exports === 'object')
  		exports["UiCollapsible"] = factory();
  	else
  		root["KeenUI"] = root["KeenUI"] || {}, root["KeenUI"]["UiCollapsible"] = factory();
  })(this, function() {
  return /******/ (function(modules) { // webpackBootstrap
  /******/ 	// The module cache
  /******/ 	var installedModules = {};
  
  /******/ 	// The require function
  /******/ 	function __webpack_require__(moduleId) {
  
  /******/ 		// Check if module is in cache
  /******/ 		if(installedModules[moduleId])
  /******/ 			return installedModules[moduleId].exports;
  
  /******/ 		// Create a new module (and put it into the cache)
  /******/ 		var module = installedModules[moduleId] = {
  /******/ 			i: moduleId,
  /******/ 			l: false,
  /******/ 			exports: {}
  /******/ 		};
  
  /******/ 		// Execute the module function
  /******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  
  /******/ 		// Flag the module as loaded
  /******/ 		module.l = true;
  
  /******/ 		// Return the exports of the module
  /******/ 		return module.exports;
  /******/ 	}
  
  
  /******/ 	// expose the modules object (__webpack_modules__)
  /******/ 	__webpack_require__.m = modules;
  
  /******/ 	// expose the module cache
  /******/ 	__webpack_require__.c = installedModules;
  
  /******/ 	// identity function for calling harmony imports with the correct context
  /******/ 	__webpack_require__.i = function(value) { return value; };
  
  /******/ 	// define getter function for harmony exports
  /******/ 	__webpack_require__.d = function(exports, name, getter) {
  /******/ 		if(!__webpack_require__.o(exports, name)) {
  /******/ 			Object.defineProperty(exports, name, {
  /******/ 				configurable: false,
  /******/ 				enumerable: true,
  /******/ 				get: getter
  /******/ 			});
  /******/ 		}
  /******/ 	};
  
  /******/ 	// getDefaultExport function for compatibility with non-harmony modules
  /******/ 	__webpack_require__.n = function(module) {
  /******/ 		var getter = module && module.__esModule ?
  /******/ 			function getDefault() { return module['default']; } :
  /******/ 			function getModuleExports() { return module; };
  /******/ 		__webpack_require__.d(getter, 'a', getter);
  /******/ 		return getter;
  /******/ 	};
  
  /******/ 	// Object.prototype.hasOwnProperty.call
  /******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  
  /******/ 	// __webpack_public_path__
  /******/ 	__webpack_require__.p = "";
  
  /******/ 	// Load entry module and return exports
  /******/ 	return __webpack_require__(__webpack_require__.s = 236);
  /******/ })
  /************************************************************************/
  /******/ ({
  
  /***/ 0:
  /***/ (function(module, exports) {
  
  /*
  	MIT License http://www.opensource.org/licenses/mit-license.php
  	Author Tobias Koppers @sokra
  */
  // css base code, injected by the css-loader
  module.exports = function() {
  	var list = [];
  
  	// return the list of modules as css string
  	list.toString = function toString() {
  		var result = [];
  		for(var i = 0; i < this.length; i++) {
  			var item = this[i];
  			if(item[2]) {
  				result.push("@media " + item[2] + "{" + item[1] + "}");
  			} else {
  				result.push(item[1]);
  			}
  		}
  		return result.join("");
  	};
  
  	// import a list of modules into the list
  	list.i = function(modules, mediaQuery) {
  		if(typeof modules === "string")
  			modules = [[null, modules, ""]];
  		var alreadyImportedModules = {};
  		for(var i = 0; i < this.length; i++) {
  			var id = this[i][0];
  			if(typeof id === "number")
  				alreadyImportedModules[id] = true;
  		}
  		for(i = 0; i < modules.length; i++) {
  			var item = modules[i];
  			// skip already imported module
  			// this implementation is not 100% perfect for weird media query combinations
  			//  when a module is imported multiple times with different media queries.
  			//  I hope this will never occur (Hey this way we have smaller bundles)
  			if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
  				if(mediaQuery && !item[2]) {
  					item[2] = mediaQuery;
  				} else if(mediaQuery) {
  					item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
  				}
  				list.push(item);
  			}
  		}
  	};
  	return list;
  };
  
  
  /***/ }),
  
  /***/ 1:
  /***/ (function(module, exports) {
  
  /* globals __VUE_SSR_CONTEXT__ */
  
  // this module is a runtime utility for cleaner component module output and will
  // be included in the final webpack user bundle
  
  module.exports = function normalizeComponent (
    rawScriptExports,
    compiledTemplate,
    injectStyles,
    scopeId,
    moduleIdentifier /* server only */
  ) {
    var esModule
    var scriptExports = rawScriptExports = rawScriptExports || {}
  
    // ES6 modules interop
    var type = typeof rawScriptExports.default
    if (type === 'object' || type === 'function') {
      esModule = rawScriptExports
      scriptExports = rawScriptExports.default
    }
  
    // Vue.extend constructor export interop
    var options = typeof scriptExports === 'function'
      ? scriptExports.options
      : scriptExports
  
    // render functions
    if (compiledTemplate) {
      options.render = compiledTemplate.render
      options.staticRenderFns = compiledTemplate.staticRenderFns
    }
  
    // scopedId
    if (scopeId) {
      options._scopeId = scopeId
    }
  
    var hook
    if (moduleIdentifier) { // server build
      hook = function (context) {
        // 2.3 injection
        context =
          context || // cached call
          (this.$vnode && this.$vnode.ssrContext) || // stateful
          (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
        // 2.2 with runInNewContext: true
        if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
          context = __VUE_SSR_CONTEXT__
        }
        // inject component styles
        if (injectStyles) {
          injectStyles.call(this, context)
        }
        // register component module identifier for async chunk inferrence
        if (context && context._registeredComponents) {
          context._registeredComponents.add(moduleIdentifier)
        }
      }
      // used by ssr in case component is cached and beforeCreate
      // never gets called
      options._ssrRegister = hook
    } else if (injectStyles) {
      hook = injectStyles
    }
  
    if (hook) {
      var functional = options.functional
      var existing = functional
        ? options.render
        : options.beforeCreate
      if (!functional) {
        // inject component registration as beforeCreate hook
        options.beforeCreate = existing
          ? [].concat(existing, hook)
          : [hook]
      } else {
        // register for functioal component in vue file
        options.render = function renderWithStyleInjection (h, context) {
          hook.call(context)
          return existing(h, context)
        }
      }
    }
  
    return {
      esModule: esModule,
      exports: scriptExports,
      options: options
    }
  }
  
  
  /***/ }),
  
  /***/ 10:
  /***/ (function(module, exports, __webpack_require__) {
  
  // style-loader: Adds some css to the DOM by adding a <style> tag
  
  // load the styles
  var content = __webpack_require__(8);
  if(typeof content === 'string') content = [[module.i, content, '']];
  if(content.locals) module.exports = content.locals;
  // add the styles to the DOM
  var update = __webpack_require__(2)("c3ae284a", content, false);
  // Hot Module Replacement
  if(false) {
   // When the styles change, update the <style> tags
   if(!content.locals) {
     module.hot.accept("!!../node_modules/css-loader/index.js!../node_modules/vue-loader/lib/style-compiler/index.js?{\"vue\":true,\"id\":\"data-v-39a27af7\",\"scoped\":false,\"hasInlineConfig\":true}!../node_modules/sass-loader/index.js!../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./UiIcon.vue", function() {
       var newContent = require("!!../node_modules/css-loader/index.js!../node_modules/vue-loader/lib/style-compiler/index.js?{\"vue\":true,\"id\":\"data-v-39a27af7\",\"scoped\":false,\"hasInlineConfig\":true}!../node_modules/sass-loader/index.js!../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./UiIcon.vue");
       if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
       update(newContent);
     });
   }
   // When the module is disposed, remove the <style> tags
   module.hot.dispose(function() { update(); });
  }
  
  /***/ }),
  
  /***/ 11:
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_UiRippleInk_vue__ = __webpack_require__(12);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_5ef65288_hasScoped_false_node_modules_vue_loader_lib_selector_type_template_index_0_UiRippleInk_vue__ = __webpack_require__(14);
  var disposed = false
  function injectStyle (ssrContext) {
    if (disposed) return
    __webpack_require__(15)
  }
  var normalizeComponent = __webpack_require__(1)
  /* script */
  
  /* template */
  
  /* styles */
  var __vue_styles__ = injectStyle
  /* scopeId */
  var __vue_scopeId__ = null
  /* moduleIdentifier (server only) */
  var __vue_module_identifier__ = null
  var Component = normalizeComponent(
    __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_UiRippleInk_vue__["a" /* default */],
    __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_5ef65288_hasScoped_false_node_modules_vue_loader_lib_selector_type_template_index_0_UiRippleInk_vue__["a" /* default */],
    __vue_styles__,
    __vue_scopeId__,
    __vue_module_identifier__
  )
  Component.options.__file = "src\\UiRippleInk.vue"
  if (Component.esModule && Object.keys(Component.esModule).some(function (key) {return key !== "default" && key.substr(0, 2) !== "__"})) {console.error("named exports are not supported in *.vue files.")}
  if (Component.options.functional) {console.error("[vue-loader] UiRippleInk.vue: functional components are not supported with templates, they should use render functions.")}
  
  /* hot reload */
  if (false) {(function () {
    var hotAPI = require("vue-hot-reload-api")
    hotAPI.install(require("vue"), false)
    if (!hotAPI.compatible) return
    module.hot.accept()
    if (!module.hot.data) {
      hotAPI.createRecord("data-v-5ef65288", Component.options)
    } else {
      hotAPI.reload("data-v-5ef65288", Component.options)
    }
    module.hot.dispose(function (data) {
      disposed = true
    })
  })()}
  
  /* harmony default export */ __webpack_exports__["default"] = Component.exports;
  
  
  /***/ }),
  
  /***/ 111:
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_UiCollapsible_vue__ = __webpack_require__(133);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_ca040308_hasScoped_false_node_modules_vue_loader_lib_selector_type_template_index_0_UiCollapsible_vue__ = __webpack_require__(204);
  var disposed = false
  function injectStyle (ssrContext) {
    if (disposed) return
    __webpack_require__(228)
  }
  var normalizeComponent = __webpack_require__(1)
  /* script */
  
  /* template */
  
  /* styles */
  var __vue_styles__ = injectStyle
  /* scopeId */
  var __vue_scopeId__ = null
  /* moduleIdentifier (server only) */
  var __vue_module_identifier__ = null
  var Component = normalizeComponent(
    __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_UiCollapsible_vue__["a" /* default */],
    __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_ca040308_hasScoped_false_node_modules_vue_loader_lib_selector_type_template_index_0_UiCollapsible_vue__["a" /* default */],
    __vue_styles__,
    __vue_scopeId__,
    __vue_module_identifier__
  )
  Component.options.__file = "src\\UiCollapsible.vue"
  if (Component.esModule && Object.keys(Component.esModule).some(function (key) {return key !== "default" && key.substr(0, 2) !== "__"})) {console.error("named exports are not supported in *.vue files.")}
  if (Component.options.functional) {console.error("[vue-loader] UiCollapsible.vue: functional components are not supported with templates, they should use render functions.")}
  
  /* hot reload */
  if (false) {(function () {
    var hotAPI = require("vue-hot-reload-api")
    hotAPI.install(require("vue"), false)
    if (!hotAPI.compatible) return
    module.hot.accept()
    if (!module.hot.data) {
      hotAPI.createRecord("data-v-ca040308", Component.options)
    } else {
      hotAPI.reload("data-v-ca040308", Component.options)
    }
    module.hot.dispose(function (data) {
      disposed = true
    })
  })()}
  
  /* harmony default export */ __webpack_exports__["default"] = Component.exports;
  
  
  /***/ }),
  
  /***/ 12:
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__helpers_classlist__ = __webpack_require__(5);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helpers_element_ref__ = __webpack_require__(4);
  
  
  
  
  var startRipple = function startRipple(eventType, event) {
      var holder = event.currentTarget || event.target;
  
      if (holder && !__WEBPACK_IMPORTED_MODULE_0__helpers_classlist__["a" /* default */].has(holder, 'ui-ripple-ink')) {
          holder = holder.querySelector('.ui-ripple-ink');
      }
  
      if (!holder) {
          return;
      }
  
      var prev = holder.getAttribute('data-ui-event');
  
      if (prev && prev !== eventType) {
          return;
      }
  
      holder.setAttribute('data-ui-event', eventType);
  
      var rect = holder.getBoundingClientRect();
      var x = event.clientX - rect.left;
      var y = event.clientY - rect.top;
  
      var ripple = document.createElement('div');
      var max = void 0;
  
      if (rect.width === rect.height) {
          max = rect.width * 1.412;
      } else {
          max = Math.sqrt(rect.width * rect.width + rect.height * rect.height);
      }
  
      var size = max * 2 + 'px';
  
      ripple.style.width = size;
      ripple.style.height = size;
      ripple.style.marginLeft = -max + x + 'px';
      ripple.style.marginTop = -max + y + 'px';
  
      ripple.className = 'ui-ripple-ink__ink';
      holder.appendChild(ripple);
  
      setTimeout(function () {
          __WEBPACK_IMPORTED_MODULE_0__helpers_classlist__["a" /* default */].add(ripple, 'is-held');
      }, 0);
  
      var releaseEvent = eventType === 'mousedown' ? 'mouseup' : 'touchend';
  
      var handleRelease = function handleRelease() {
          document.removeEventListener(releaseEvent, handleRelease);
  
          __WEBPACK_IMPORTED_MODULE_0__helpers_classlist__["a" /* default */].add(ripple, 'is-done');
  
          var timeout = 650;
  
          setTimeout(function () {
              holder.removeChild(ripple);
  
              if (holder.children.length === 0) {
                  holder.removeAttribute('data-ui-event');
              }
          }, timeout);
      };
  
      document.addEventListener(releaseEvent, handleRelease);
  };
  
  var handleMouseDown = function handleMouseDown(e) {
      if (e.button === 0) {
          startRipple(e.type, e);
      }
  };
  
  var handleTouchStart = function handleTouchStart(e) {
      if (e.changedTouches) {
          for (var i = 0; i < e.changedTouches.length; ++i) {
              startRipple(e.type, e.changedTouches[i]);
          }
      }
  };
  
  /* harmony default export */ __webpack_exports__["a"] = {
      name: 'ui-ripple-ink',
  
      props: {
          trigger: {
              validator: function validator(value) {
                  return __WEBPACK_IMPORTED_MODULE_1__helpers_element_ref__["a" /* default */].validate(value, '[UiRippleInk]: Invalid prop: "trigger". Expected Element, VueComponent or CSS selector string.');
              }
          }
      },
  
      watch: {
          trigger: function trigger() {
              this.setupRipple();
          }
      },
  
      created: function created() {
          this.triggerEl = null;
      },
      mounted: function mounted() {
          this.setupRipple();
      },
      beforeDestroy: function beforeDestroy() {
          this.destroyRipple();
      },
  
  
      methods: {
          setupRipple: function setupRipple() {
              this.triggerEl = __WEBPACK_IMPORTED_MODULE_1__helpers_element_ref__["a" /* default */].resolve(this.trigger, this.$el.parentElement);
  
              if (!this.triggerEl) {
                  console.error('[UiRippleInk]: Trigger element not found.');
                  return;
              }
  
              this.triggerEl.addEventListener('touchstart', handleTouchStart);
              this.triggerEl.addEventListener('mousedown', handleMouseDown);
          },
          destroyRipple: function destroyRipple() {
              if (!this.triggerEl) {
                  return;
              }
  
              this.triggerEl.removeEventListener('mousedown', handleMouseDown);
              this.triggerEl.removeEventListener('touchstart', handleTouchStart);
          }
      }
  };
  
  /***/ }),
  
  /***/ 13:
  /***/ (function(module, exports, __webpack_require__) {
  
  exports = module.exports = __webpack_require__(0)();
  // imports
  
  
  // module
  exports.push([module.i, "\n.ui-ripple-ink {\n  border-radius: inherit;\n  bottom: 0;\n  display: block;\n  left: 0;\n  overflow: hidden;\n  position: absolute;\n  right: 0;\n  top: 0;\n  -webkit-mask-image: -webkit-radial-gradient(circle, white, black);\n}\n.ui-ripple-ink__ink {\n  background-clip: padding-box;\n  background-color: currentColor;\n  border-radius: 50%;\n  height: 0;\n  opacity: 0.2;\n  pointer-events: none;\n  position: absolute;\n  -webkit-transform: scale(0);\n          transform: scale(0);\n  -webkit-transition: opacity 0.6s ease-out, -webkit-transform 0.6s ease-out;\n  transition: opacity 0.6s ease-out, -webkit-transform 0.6s ease-out;\n  transition: transform 0.6s ease-out, opacity 0.6s ease-out;\n  transition: transform 0.6s ease-out, opacity 0.6s ease-out, -webkit-transform 0.6s ease-out;\n  -webkit-user-select: none;\n     -moz-user-select: none;\n      -ms-user-select: none;\n          user-select: none;\n  width: 0;\n}\n.ui-ripple-ink__ink.is-held {\n    opacity: 0.4;\n    -webkit-transform: scale(1);\n            transform: scale(1);\n}\n.ui-ripple-ink__ink.is-done {\n    opacity: 0 !important;\n}\n", ""]);
  
  // exports
  
  
  /***/ }),
  
  /***/ 133:
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__UiIcon_vue__ = __webpack_require__(6);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__UiRippleInk_vue__ = __webpack_require__(11);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__helpers_uuid__ = __webpack_require__(89);
  
  
  
  
  
  
  /* harmony default export */ __webpack_exports__["a"] = {
      name: 'ui-collapsible',
  
      props: {
          open: {
              type: Boolean,
              default: false
          },
          title: String,
          removeIcon: {
              type: Boolean,
              default: false
          },
          disableRipple: {
              type: Boolean,
              default: false
          },
          disabled: {
              type: Boolean,
              default: false
          }
      },
  
      data: function data() {
          return {
              isOpen: this.open,
              id: __WEBPACK_IMPORTED_MODULE_2__helpers_uuid__["a" /* default */].short('ui-collapsible-')
          };
      },
  
  
      computed: {
          classes: function classes() {
              return [{ 'is-open': this.isOpen }, { 'is-disabled': this.disabled }];
          }
      },
  
      watch: {
          open: function open() {
              if (this.isOpen !== this.open) {
                  this.isOpen = this.open;
              }
          }
      },
  
      mounted: function mounted() {
          if (this.isOpen) {
              this.$refs.bodyWrapper.style.maxHeight = 'none';
          }
      },
  
  
      methods: {
          toggleCollapsible: function toggleCollapsible() {
              if (this.disabled) {
                  return;
              }
  
              this.isOpen = !this.isOpen;
          },
          onEnter: function onEnter(el) {
              this.$emit('open');
              el.style.maxHeight = el.scrollHeight + 'px';
          },
          afterEnter: function afterEnter(el) {
              el.style.maxHeight = 'none';
          },
          beforeLeave: function beforeLeave(el) {
              el.style.maxHeight = el.scrollHeight + 'px';
  
              el.offsetHeight;
          },
          onLeave: function onLeave(el) {
              el.style.maxHeight = 0;
              this.$emit('close');
          }
      },
  
      components: {
          UiIcon: __WEBPACK_IMPORTED_MODULE_0__UiIcon_vue__["default"],
          UiRippleInk: __WEBPACK_IMPORTED_MODULE_1__UiRippleInk_vue__["default"]
      }
  };
  
  /***/ }),
  
  /***/ 14:
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
    return _c('div', {
      staticClass: "ui-ripple-ink"
    })
  }
  var staticRenderFns = []
  render._withStripped = true
  var esExports = { render: render, staticRenderFns: staticRenderFns }
  /* harmony default export */ __webpack_exports__["a"] = esExports;
  if (false) {
    module.hot.accept()
    if (module.hot.data) {
       require("vue-hot-reload-api").rerender("data-v-5ef65288", esExports)
    }
  }
  
  /***/ }),
  
  /***/ 15:
  /***/ (function(module, exports, __webpack_require__) {
  
  // style-loader: Adds some css to the DOM by adding a <style> tag
  
  // load the styles
  var content = __webpack_require__(13);
  if(typeof content === 'string') content = [[module.i, content, '']];
  if(content.locals) module.exports = content.locals;
  // add the styles to the DOM
  var update = __webpack_require__(2)("1485a295", content, false);
  // Hot Module Replacement
  if(false) {
   // When the styles change, update the <style> tags
   if(!content.locals) {
     module.hot.accept("!!../node_modules/css-loader/index.js!../node_modules/vue-loader/lib/style-compiler/index.js?{\"vue\":true,\"id\":\"data-v-5ef65288\",\"scoped\":false,\"hasInlineConfig\":true}!../node_modules/sass-loader/index.js!../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./UiRippleInk.vue", function() {
       var newContent = require("!!../node_modules/css-loader/index.js!../node_modules/vue-loader/lib/style-compiler/index.js?{\"vue\":true,\"id\":\"data-v-5ef65288\",\"scoped\":false,\"hasInlineConfig\":true}!../node_modules/sass-loader/index.js!../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./UiRippleInk.vue");
       if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
       update(newContent);
     });
   }
   // When the module is disposed, remove the <style> tags
   module.hot.dispose(function() { update(); });
  }
  
  /***/ }),
  
  /***/ 176:
  /***/ (function(module, exports, __webpack_require__) {
  
  exports = module.exports = __webpack_require__(0)();
  // imports
  
  
  // module
  exports.push([module.i, "\n.ui-collapsible {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Fira Sans\", \"Droid Sans\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  margin-bottom: 0.5rem;\n  width: 100%;\n}\n.ui-collapsible:not(.is-disabled) .ui-collapsible__header:hover,\n  body[modality=\"keyboard\"] .ui-collapsible:not(.is-disabled) .ui-collapsible__header:focus {\n    background-color: #e0e0e0;\n}\n.ui-collapsible.is-open .ui-collapsible__header-icon {\n    -webkit-transform: rotate(-180deg);\n            transform: rotate(-180deg);\n}\n.ui-collapsible.is-disabled .ui-collapsible__header {\n    cursor: default;\n    opacity: 0.6;\n}\n.ui-collapsible.is-disabled .ui-collapsible__header-icon {\n    cursor: default;\n}\n.ui-collapsible__header {\n  -webkit-box-align: center;\n      -ms-flex-align: center;\n          align-items: center;\n  background-color: #eeeeee;\n  cursor: pointer;\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  font-size: 0.9375rem;\n  line-height: 1.5;\n  margin: 0;\n  min-height: 3rem;\n  padding: 0.75rem 1rem;\n  position: relative;\n  -ms-touch-action: manipulation;\n      touch-action: manipulation;\n  width: 100%;\n}\n.ui-collapsible__header .ui-ripple-ink__ink {\n    opacity: 0.1;\n}\n.ui-collapsible__header-content {\n  padding-right: 0.5rem;\n}\n.ui-collapsible__header-icon {\n  color: rgba(0, 0, 0, 0.54);\n  cursor: pointer;\n  margin-left: auto;\n  margin-right: -0.25rem;\n  -webkit-transition: -webkit-transform 0.3s ease;\n  transition: -webkit-transform 0.3s ease;\n  transition: transform 0.3s ease;\n  transition: transform 0.3s ease, -webkit-transform 0.3s ease;\n}\n.ui-collapsible__body-wrapper {\n  max-height: 0;\n  overflow: hidden;\n  -webkit-transition: max-height 0.3s ease;\n  transition: max-height 0.3s ease;\n}\n.ui-collapsible__body {\n  border: 1px solid #eeeeee;\n  border-top: 0;\n  display: block;\n  padding: 1rem;\n  width: 100%;\n}\n", ""]);
  
  // exports
  
  
  /***/ }),
  
  /***/ 2:
  /***/ (function(module, exports, __webpack_require__) {
  
  /*
    MIT License http://www.opensource.org/licenses/mit-license.php
    Author Tobias Koppers @sokra
    Modified by Evan You @yyx990803
  */
  
  var hasDocument = typeof document !== 'undefined'
  
  if (typeof DEBUG !== 'undefined' && DEBUG) {
    if (!hasDocument) {
      throw new Error(
      'vue-style-loader cannot be used in a non-browser environment. ' +
      "Use { target: 'node' } in your Webpack config to indicate a server-rendering environment."
    ) }
  }
  
  var listToStyles = __webpack_require__(3)
  
  /*
  type StyleObject = {
    id: number;
    parts: Array<StyleObjectPart>
  }
  
  type StyleObjectPart = {
    css: string;
    media: string;
    sourceMap: ?string
  }
  */
  
  var stylesInDom = {/*
    [id: number]: {
      id: number,
      refs: number,
      parts: Array<(obj?: StyleObjectPart) => void>
    }
  */}
  
  var head = hasDocument && (document.head || document.getElementsByTagName('head')[0])
  var singletonElement = null
  var singletonCounter = 0
  var isProduction = false
  var noop = function () {}
  
  // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
  // tags it will allow on a page
  var isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\b/.test(navigator.userAgent.toLowerCase())
  
  module.exports = function (parentId, list, _isProduction) {
    isProduction = _isProduction
  
    var styles = listToStyles(parentId, list)
    addStylesToDom(styles)
  
    return function update (newList) {
      var mayRemove = []
      for (var i = 0; i < styles.length; i++) {
        var item = styles[i]
        var domStyle = stylesInDom[item.id]
        domStyle.refs--
        mayRemove.push(domStyle)
      }
      if (newList) {
        styles = listToStyles(parentId, newList)
        addStylesToDom(styles)
      } else {
        styles = []
      }
      for (var i = 0; i < mayRemove.length; i++) {
        var domStyle = mayRemove[i]
        if (domStyle.refs === 0) {
          for (var j = 0; j < domStyle.parts.length; j++) {
            domStyle.parts[j]()
          }
          delete stylesInDom[domStyle.id]
        }
      }
    }
  }
  
  function addStylesToDom (styles /* Array<StyleObject> */) {
    for (var i = 0; i < styles.length; i++) {
      var item = styles[i]
      var domStyle = stylesInDom[item.id]
      if (domStyle) {
        domStyle.refs++
        for (var j = 0; j < domStyle.parts.length; j++) {
          domStyle.parts[j](item.parts[j])
        }
        for (; j < item.parts.length; j++) {
          domStyle.parts.push(addStyle(item.parts[j]))
        }
        if (domStyle.parts.length > item.parts.length) {
          domStyle.parts.length = item.parts.length
        }
      } else {
        var parts = []
        for (var j = 0; j < item.parts.length; j++) {
          parts.push(addStyle(item.parts[j]))
        }
        stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }
      }
    }
  }
  
  function createStyleElement () {
    var styleElement = document.createElement('style')
    styleElement.type = 'text/css'
    head.appendChild(styleElement)
    return styleElement
  }
  
  function addStyle (obj /* StyleObjectPart */) {
    var update, remove
    var styleElement = document.querySelector('style[data-vue-ssr-id~="' + obj.id + '"]')
  
    if (styleElement) {
      if (isProduction) {
        // has SSR styles and in production mode.
        // simply do nothing.
        return noop
      } else {
        // has SSR styles but in dev mode.
        // for some reason Chrome can't handle source map in server-rendered
        // style tags - source maps in <style> only works if the style tag is
        // created and inserted dynamically. So we remove the server rendered
        // styles and inject new ones.
        styleElement.parentNode.removeChild(styleElement)
      }
    }
  
    if (isOldIE) {
      // use singleton mode for IE9.
      var styleIndex = singletonCounter++
      styleElement = singletonElement || (singletonElement = createStyleElement())
      update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)
      remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)
    } else {
      // use multi-style-tag mode in all other cases
      styleElement = createStyleElement()
      update = applyToTag.bind(null, styleElement)
      remove = function () {
        styleElement.parentNode.removeChild(styleElement)
      }
    }
  
    update(obj)
  
    return function updateStyle (newObj /* StyleObjectPart */) {
      if (newObj) {
        if (newObj.css === obj.css &&
            newObj.media === obj.media &&
            newObj.sourceMap === obj.sourceMap) {
          return
        }
        update(obj = newObj)
      } else {
        remove()
      }
    }
  }
  
  var replaceText = (function () {
    var textStore = []
  
    return function (index, replacement) {
      textStore[index] = replacement
      return textStore.filter(Boolean).join('\n')
    }
  })()
  
  function applyToSingletonTag (styleElement, index, remove, obj) {
    var css = remove ? '' : obj.css
  
    if (styleElement.styleSheet) {
      styleElement.styleSheet.cssText = replaceText(index, css)
    } else {
      var cssNode = document.createTextNode(css)
      var childNodes = styleElement.childNodes
      if (childNodes[index]) styleElement.removeChild(childNodes[index])
      if (childNodes.length) {
        styleElement.insertBefore(cssNode, childNodes[index])
      } else {
        styleElement.appendChild(cssNode)
      }
    }
  }
  
  function applyToTag (styleElement, obj) {
    var css = obj.css
    var media = obj.media
    var sourceMap = obj.sourceMap
  
    if (media) {
      styleElement.setAttribute('media', media)
    }
  
    if (sourceMap) {
      // https://developer.chrome.com/devtools/docs/javascript-debugging
      // this makes source maps inside style tags work properly in Chrome
      css += '\n/*# sourceURL=' + sourceMap.sources[0] + ' */'
      // http://stackoverflow.com/a/26603875
      css += '\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'
    }
  
    if (styleElement.styleSheet) {
      styleElement.styleSheet.cssText = css
    } else {
      while (styleElement.firstChild) {
        styleElement.removeChild(styleElement.firstChild)
      }
      styleElement.appendChild(document.createTextNode(css))
    }
  }
  
  
  /***/ }),
  
  /***/ 204:
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
    return _c('div', {
      staticClass: "ui-collapsible",
      class: _vm.classes
    }, [_c('div', {
      staticClass: "ui-collapsible__header",
      attrs: {
        "aria-controls": _vm.id,
        "aria-expanded": _vm.isOpen ? 'true' : 'false',
        "tabindex": _vm.disabled ? null : 0
      },
      on: {
        "click": _vm.toggleCollapsible,
        "keydown": [function($event) {
          if (!('button' in $event) && _vm._k($event.keyCode, "enter", 13, $event.key, "Enter")) { return null; }
          $event.preventDefault();
          return _vm.toggleCollapsible($event)
        }, function($event) {
          if (!('button' in $event) && _vm._k($event.keyCode, "space", 32, $event.key, [" ", "Spacebar"])) { return null; }
          $event.preventDefault();
          return _vm.toggleCollapsible($event)
        }]
      }
    }, [_c('div', {
      staticClass: "ui-collapsible__header-content"
    }, [_vm._t("header", [_vm._v(_vm._s(_vm.title))])], 2), _vm._v(" "), (!_vm.removeIcon) ? _c('ui-icon', {
      staticClass: "ui-collapsible__header-icon"
    }, [_c('svg', {
      attrs: {
        "xmlns": "http://www.w3.org/2000/svg",
        "width": "24",
        "height": "24",
        "viewBox": "0 0 24 24"
      }
    }, [_c('path', {
      attrs: {
        "d": "M7.406 7.828L12 12.422l4.594-4.594L18 9.234l-6 6-6-6z"
      }
    })])]) : _vm._e(), _vm._v(" "), (!_vm.disableRipple && !_vm.disabled) ? _c('ui-ripple-ink') : _vm._e()], 1), _vm._v(" "), _c('transition', {
      on: {
        "enter": _vm.onEnter,
        "after-enter": _vm.afterEnter,
        "before-leave": _vm.beforeLeave,
        "leave": _vm.onLeave
      }
    }, [_c('div', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: (_vm.isOpen),
        expression: "isOpen"
      }],
      ref: "bodyWrapper",
      staticClass: "ui-collapsible__body-wrapper",
      attrs: {
        "aria-hidden": _vm.isOpen ? null : 'true',
        "id": _vm.id
      }
    }, [_c('div', {
      staticClass: "ui-collapsible__body"
    }, [_vm._t("default")], 2)])])], 1)
  }
  var staticRenderFns = []
  render._withStripped = true
  var esExports = { render: render, staticRenderFns: staticRenderFns }
  /* harmony default export */ __webpack_exports__["a"] = esExports;
  if (false) {
    module.hot.accept()
    if (module.hot.data) {
       require("vue-hot-reload-api").rerender("data-v-ca040308", esExports)
    }
  }
  
  /***/ }),
  
  /***/ 228:
  /***/ (function(module, exports, __webpack_require__) {
  
  // style-loader: Adds some css to the DOM by adding a <style> tag
  
  // load the styles
  var content = __webpack_require__(176);
  if(typeof content === 'string') content = [[module.i, content, '']];
  if(content.locals) module.exports = content.locals;
  // add the styles to the DOM
  var update = __webpack_require__(2)("867d645e", content, false);
  // Hot Module Replacement
  if(false) {
   // When the styles change, update the <style> tags
   if(!content.locals) {
     module.hot.accept("!!../node_modules/css-loader/index.js!../node_modules/vue-loader/lib/style-compiler/index.js?{\"vue\":true,\"id\":\"data-v-ca040308\",\"scoped\":false,\"hasInlineConfig\":true}!../node_modules/sass-loader/index.js!../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./UiCollapsible.vue", function() {
       var newContent = require("!!../node_modules/css-loader/index.js!../node_modules/vue-loader/lib/style-compiler/index.js?{\"vue\":true,\"id\":\"data-v-ca040308\",\"scoped\":false,\"hasInlineConfig\":true}!../node_modules/sass-loader/index.js!../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./UiCollapsible.vue");
       if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
       update(newContent);
     });
   }
   // When the module is disposed, remove the <style> tags
   module.hot.dispose(function() { update(); });
  }
  
  /***/ }),
  
  /***/ 236:
  /***/ (function(module, exports, __webpack_require__) {
  
  module.exports = __webpack_require__(111);
  
  
  /***/ }),
  
  /***/ 3:
  /***/ (function(module, exports) {
  
  /**
   * Translates the list format produced by css-loader into something
   * easier to manipulate.
   */
  module.exports = function listToStyles (parentId, list) {
    var styles = []
    var newStyles = {}
    for (var i = 0; i < list.length; i++) {
      var item = list[i]
      var id = item[0]
      var css = item[1]
      var media = item[2]
      var sourceMap = item[3]
      var part = {
        id: parentId + ':' + i,
        css: css,
        media: media,
        sourceMap: sourceMap
      }
      if (!newStyles[id]) {
        styles.push(newStyles[id] = { id: id, parts: [part] })
      } else {
        newStyles[id].parts.push(part)
      }
    }
    return styles
  }
  
  
  /***/ }),
  
  /***/ 4:
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* unused harmony export validate */
  /* unused harmony export resolve */
  function validate(ref, warning) {
      var isValid = ref instanceof Element || ref && ref._isVue || typeof ref === 'string';
  
      if (!isValid && warning) {
          console.warn(warning);
      }
  
      return isValid;
  }
  
  function resolve(ref, fallback) {
      if (ref instanceof Element) {
          return ref;
      } else if (ref && ref._isVue) {
          return ref.$el;
      } else if (typeof ref === 'string') {
          return document.querySelector(ref);
      }
  
      return fallback;
  }
  
  /* harmony default export */ __webpack_exports__["a"] = {
      validate: validate,
      resolve: resolve
  };
  
  /***/ }),
  
  /***/ 5:
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  
  var trim = /^\s+|\s+$/g;
  var whitespace = /\s+/g;
  
  function interpret(input) {
      return typeof input === 'string' ? input.replace(trim, '').split(whitespace) : input;
  }
  
  function classes(el) {
      if (isElement(el)) {
          return (el.getAttribute('class') || '').replace(trim, '').split(whitespace);
      }
  
      return [];
  }
  
  function set(el, input) {
      if (isElement(el)) {
          el.setAttribute('class', interpret(input).join(' '));
      }
  }
  
  function add(el, input) {
      var current = remove(el, input);
      var values = interpret(input);
  
      current.push.apply(current, values);
      set(el, current);
  
      return current;
  }
  
  function remove(el, input) {
      var current = classes(el);
      var values = interpret(input);
  
      values.forEach(function (value) {
          var i = current.indexOf(value);
          if (i !== -1) {
              current.splice(i, 1);
          }
      });
  
      set(el, current);
  
      return current;
  }
  
  function contains(el, input) {
      var current = classes(el);
      var values = interpret(input);
  
      return values.every(function (value) {
          return current.indexOf(value) !== -1;
      });
  }
  
  function isElement(o) {
      var elementObjects = (typeof HTMLElement === 'undefined' ? 'undefined' : _typeof(HTMLElement)) === 'object';
      return elementObjects ? o instanceof HTMLElement : isElementObject(o);
  }
  
  function isElementObject(o) {
      return o && (typeof o === 'undefined' ? 'undefined' : _typeof(o)) === 'object' && typeof o.nodeName === 'string' && o.nodeType === 1;
  }
  
  /* harmony default export */ __webpack_exports__["a"] = {
      add: add,
      remove: remove,
      contains: contains,
      has: contains,
      set: set,
      get: classes
  };
  
  /***/ }),
  
  /***/ 6:
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_UiIcon_vue__ = __webpack_require__(7);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_39a27af7_hasScoped_false_node_modules_vue_loader_lib_selector_type_template_index_0_UiIcon_vue__ = __webpack_require__(9);
  var disposed = false
  function injectStyle (ssrContext) {
    if (disposed) return
    __webpack_require__(10)
  }
  var normalizeComponent = __webpack_require__(1)
  /* script */
  
  /* template */
  
  /* styles */
  var __vue_styles__ = injectStyle
  /* scopeId */
  var __vue_scopeId__ = null
  /* moduleIdentifier (server only) */
  var __vue_module_identifier__ = null
  var Component = normalizeComponent(
    __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_UiIcon_vue__["a" /* default */],
    __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_39a27af7_hasScoped_false_node_modules_vue_loader_lib_selector_type_template_index_0_UiIcon_vue__["a" /* default */],
    __vue_styles__,
    __vue_scopeId__,
    __vue_module_identifier__
  )
  Component.options.__file = "src\\UiIcon.vue"
  if (Component.esModule && Object.keys(Component.esModule).some(function (key) {return key !== "default" && key.substr(0, 2) !== "__"})) {console.error("named exports are not supported in *.vue files.")}
  if (Component.options.functional) {console.error("[vue-loader] UiIcon.vue: functional components are not supported with templates, they should use render functions.")}
  
  /* hot reload */
  if (false) {(function () {
    var hotAPI = require("vue-hot-reload-api")
    hotAPI.install(require("vue"), false)
    if (!hotAPI.compatible) return
    module.hot.accept()
    if (!module.hot.data) {
      hotAPI.createRecord("data-v-39a27af7", Component.options)
    } else {
      hotAPI.reload("data-v-39a27af7", Component.options)
    }
    module.hot.dispose(function (data) {
      disposed = true
    })
  })()}
  
  /* harmony default export */ __webpack_exports__["default"] = Component.exports;
  
  
  /***/ }),
  
  /***/ 7:
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  
  
  /* harmony default export */ __webpack_exports__["a"] = {
      name: 'ui-icon',
  
      props: {
          icon: String,
          iconSet: {
              type: String,
              default: 'material-icons'
          },
          ariaLabel: String,
          removeText: {
              type: Boolean,
              default: false
          },
          useSvg: {
              type: Boolean,
              default: false
          }
      }
  };
  
  /***/ }),
  
  /***/ 8:
  /***/ (function(module, exports, __webpack_require__) {
  
  exports = module.exports = __webpack_require__(0)();
  // imports
  
  
  // module
  exports.push([module.i, "\n.ui-icon {\n  cursor: inherit;\n  display: inline-block;\n  font-size: 1.5rem;\n  height: 1em;\n  -webkit-user-select: none;\n     -moz-user-select: none;\n      -ms-user-select: none;\n          user-select: none;\n  vertical-align: middle;\n  width: 1em;\n}\n.ui-icon svg {\n    display: block;\n    fill: currentColor;\n    height: 1em;\n    margin: 0;\n    padding: 0;\n    width: 1em;\n}\n", ""]);
  
  // exports
  
  
  /***/ }),
  
  /***/ 89:
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /**
   * Fast UUID generator, RFC4122 version 4 compliant.
   * @author Jeff Ward (jcward.com).
   * @license MIT license
   * @link http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136
   */
  
  var lut = [];
  
  for (var i = 0; i < 256; i++) {
      lut[i] = (i < 16 ? '0' : '') + i.toString(16);
  }
  
  var generate = function generate() {
      var d0 = Math.random() * 0xffffffff | 0;
      var d1 = Math.random() * 0xffffffff | 0;
      var d2 = Math.random() * 0xffffffff | 0;
      var d3 = Math.random() * 0xffffffff | 0;
  
      return lut[d0 & 0xff] + lut[d0 >> 8 & 0xff] + lut[d0 >> 16 & 0xff] + lut[d0 >> 24 & 0xff] + '-' + lut[d1 & 0xff] + lut[d1 >> 8 & 0xff] + '-' + lut[d1 >> 16 & 0x0f | 0x40] + lut[d1 >> 24 & 0xff] + '-' + lut[d2 & 0x3f | 0x80] + lut[d2 >> 8 & 0xff] + '-' + lut[d2 >> 16 & 0xff] + lut[d2 >> 24 & 0xff] + lut[d3 & 0xff] + lut[d3 >> 8 & 0xff] + lut[d3 >> 16 & 0xff] + lut[d3 >> 24 & 0xff];
  };
  
  var short = function short(prefix) {
      prefix = prefix || '';
  
      var uuid = generate();
  
      return prefix + uuid.split('-')[0];
  };
  
  /* harmony default export */ __webpack_exports__["a"] = {
      generate: generate,
      short: short
  };
  
  /***/ }),
  
  /***/ 9:
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
    return _c('span', {
      staticClass: "ui-icon",
      class: [_vm.iconSet, _vm.icon],
      attrs: {
        "aria-label": _vm.ariaLabel
      }
    }, [(_vm.useSvg) ? _c('svg', {
      staticClass: "ui-icon__svg"
    }, [_c('use', {
      attrs: {
        "xmlns:xlink": "http://www.w3.org/1999/xlink",
        "xlink:href": '#' + _vm.icon
      }
    })]) : _vm._t("default", [_vm._v(_vm._s(_vm.removeText ? null : _vm.icon))])], 2)
  }
  var staticRenderFns = []
  render._withStripped = true
  var esExports = { render: render, staticRenderFns: staticRenderFns }
  /* harmony default export */ __webpack_exports__["a"] = esExports;
  if (false) {
    module.hot.accept()
    if (module.hot.data) {
       require("vue-hot-reload-api").rerender("data-v-39a27af7", esExports)
    }
  }
  
  /***/ })
  
  /******/ });
  });