UNPKG

@kingscode/vuetify-resource

Version:

An easy way to create a resource list with the vuetify data table with default create update and delete dialogs/actions and potential your own actions

1,146 lines (954 loc) 64.7 kB
module.exports = /******/ (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; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // 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 = "fb15"); /******/ }) /************************************************************************/ /******/ ({ /***/ "0457": /***/ (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__("83bc"); if(content.__esModule) content = content.default; if(typeof content === 'string') content = [[module.i, content, '']]; if(content.locals) module.exports = content.locals; // add the styles to the DOM var add = __webpack_require__("499e").default var update = add("5ebb045f", content, true, {"sourceMap":false,"shadowMode":false}); /***/ }), /***/ "24fb": /***/ (function(module, exports, __webpack_require__) { "use strict"; /* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ // css base code, injected by the css-loader // eslint-disable-next-line func-names module.exports = function (useSourceMap) { var list = []; // return the list of modules as css string list.toString = function toString() { return this.map(function (item) { var content = cssWithMappingToString(item, useSourceMap); if (item[2]) { return "@media ".concat(item[2], " {").concat(content, "}"); } return content; }).join(''); }; // import a list of modules into the list // eslint-disable-next-line func-names list.i = function (modules, mediaQuery, dedupe) { if (typeof modules === 'string') { // eslint-disable-next-line no-param-reassign modules = [[null, modules, '']]; } var alreadyImportedModules = {}; if (dedupe) { for (var i = 0; i < this.length; i++) { // eslint-disable-next-line prefer-destructuring var id = this[i][0]; if (id != null) { alreadyImportedModules[id] = true; } } } for (var _i = 0; _i < modules.length; _i++) { var item = [].concat(modules[_i]); if (dedupe && alreadyImportedModules[item[0]]) { // eslint-disable-next-line no-continue continue; } if (mediaQuery) { if (!item[2]) { item[2] = mediaQuery; } else { item[2] = "".concat(mediaQuery, " and ").concat(item[2]); } } list.push(item); } }; return list; }; function cssWithMappingToString(item, useSourceMap) { var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring var cssMapping = item[3]; if (!cssMapping) { return content; } if (useSourceMap && typeof btoa === 'function') { var sourceMapping = toComment(cssMapping); var sourceURLs = cssMapping.sources.map(function (source) { return "/*# sourceURL=".concat(cssMapping.sourceRoot || '').concat(source, " */"); }); return [content].concat(sourceURLs).concat([sourceMapping]).join('\n'); } return [content].join('\n'); } // Adapted from convert-source-map (MIT) function toComment(sourceMap) { // eslint-disable-next-line no-undef var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))); var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64); return "/*# ".concat(data, " */"); } /***/ }), /***/ "2aa1": /***/ (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__("5f61"); if(content.__esModule) content = content.default; if(typeof content === 'string') content = [[module.i, content, '']]; if(content.locals) module.exports = content.locals; // add the styles to the DOM var add = __webpack_require__("499e").default var update = add("84dd6d98", content, true, {"sourceMap":false,"shadowMode":false}); /***/ }), /***/ "30cb": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_VuetifyResource_vue_vue_type_style_index_0_id_377e61b2_prod_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("0457"); /* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_VuetifyResource_vue_vue_type_style_index_0_id_377e61b2_prod_lang_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_VuetifyResource_vue_vue_type_style_index_0_id_377e61b2_prod_lang_css__WEBPACK_IMPORTED_MODULE_0__); /* unused harmony reexport * */ /***/ }), /***/ "4875": /***/ (function(module, exports) { module.exports = require("vuetify/lib"); /***/ }), /***/ "499e": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, "default", function() { return /* binding */ addStylesClient; }); // CONCATENATED MODULE: ./node_modules/vue-style-loader/lib/listToStyles.js /** * Translates the list format produced by css-loader into something * easier to manipulate. */ 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 } // CONCATENATED MODULE: ./node_modules/vue-style-loader/lib/addStylesClient.js /* 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." ) } } /* 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 () {} var options = null var ssrIdKey = 'data-vue-ssr-id' // 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()) function addStylesClient (parentId, list, _isProduction, _options) { isProduction = _isProduction options = _options || {} 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[' + ssrIdKey + '~="' + 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 (options.ssrId) { styleElement.setAttribute(ssrIdKey, obj.id) } 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)) } } /***/ }), /***/ "5f61": /***/ (function(module, exports, __webpack_require__) { // Imports var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb"); exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.i, ".indicator-overlay-wrapper .overlay[data-v-553eb051]{position:absolute;top:0;bottom:0;left:0;right:0;background:#000;opacity:.4;z-index:99;pointer-events:bounding-box}.indicator-overlay-wrapper .indicator-wrapper[data-v-553eb051]{position:absolute;left:50%;top:50%;margin-left:-35px;margin-top:-35px;z-index:100}", ""]); // Exports module.exports = exports; /***/ }), /***/ "7526": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityOverlay_vue_vue_type_style_index_0_id_553eb051_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2aa1"); /* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityOverlay_vue_vue_type_style_index_0_id_553eb051_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityOverlay_vue_vue_type_style_index_0_id_553eb051_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__); /* unused harmony reexport * */ /***/ }), /***/ "83bc": /***/ (function(module, exports, __webpack_require__) { // Imports var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb"); exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.i, ".vuetify-resource{position:relative}.vuetify-resource .v-speed-dial{position:absolute;right:5px;top:-35px;z-index:2}.vuetify-resource.with-search .v-speed-dial{right:5px;top:15px}.vuetify-resource .has-checkboxes th:first-child:not(.column){width:40px}.vuetify-resource.row-click tr{cursor:pointer}@media only screen and (max-width:599px){.vuetify-resource.with-search .v-speed-dial{top:65px}.v-speed-dial{right:0}.vuetify-resource{margin-right:0}.datatable__actions__select,.vuetify-resource th{display:none}.vuetify-resource .has-checkboxes th:nth-child(2),.vuetify-resource th.crud-actions,.vuetify-resource th:first-child{display:table-cell}.vuetify-resource td{display:none}.vuetify-resource .has-checkboxes td:nth-child(2),.vuetify-resource td.crud-actions,.vuetify-resource td:first-child{display:table-cell}.vuetify-resource .v-data-footer__select{display:none}}", ""]); // Exports module.exports = exports; /***/ }), /***/ "fb15": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js // This file is imported into lib/wc client bundles. if (typeof window !== 'undefined') { var currentScript = window.document.currentScript if (false) { var getCurrentScript; } var src = currentScript && currentScript.src.match(/(.+\/)[^/]+\.js(\?.*)?$/) if (src) { __webpack_require__.p = src[1] // eslint-disable-line } } // Indicate to webpack that this file can be concatenated /* harmony default export */ var setPublicPath = (null); // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"db5ca738-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/VuetifyResource.vue?vue&type=template&id=377e61b2 var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:_vm.resourceHtmlClass},[_c('v-dialog',{attrs:{"fullscreen":"","hide-overlay":"","scrollable":"","transition":"dialog-bottom-transition"},model:{value:(_vm.dialog.create),callback:function ($$v) {_vm.$set(_vm.dialog, "create", $$v)},expression:"dialog.create"}},[(_vm.dialog.create)?_c('v-card',{staticClass:"dialog-create-card"},[_c('v-toolbar',{staticClass:"primary",staticStyle:{"flex":"0 0 auto"},attrs:{"dark":""}},[_c('v-btn',{attrs:{"dark":"","icon":""},nativeOn:{"click":function($event){_vm.dialog.create = false}}},[_c('v-icon',[_vm._v("$vuetify.icons.close")])],1),_c('v-toolbar-title',[_vm._v(_vm._s(_vm.meta.name))]),_c('v-spacer'),_c('v-toolbar-items',[_vm._t("createToolbar",function(){return [_c('v-btn',{attrs:{"dark":"","text":""},on:{"click":function($event){return _vm.createHandler()}}},[_vm._v(_vm._s(_vm.lang('save')))])]})],2)],1),_c('v-card-text',[_vm._t("createContent",function(){return [_c('activity-overlay',{model:{value:(_vm.activity.isCreating),callback:function ($$v) {_vm.$set(_vm.activity, "isCreating", $$v)},expression:"activity.isCreating"}})]})],2)],1):_vm._e()],1),_c('v-dialog',{attrs:{"overlay":false,"fullscreen":"","scrollable":"","transition":"dialog-bottom-transition"},model:{value:(_vm.dialog.update),callback:function ($$v) {_vm.$set(_vm.dialog, "update", $$v)},expression:"dialog.update"}},[(_vm.dialog.update)?_c('v-card',{staticClass:"dialog-update-card"},[_c('v-toolbar',{staticClass:"primary",staticStyle:{"flex":"0 0 auto"},attrs:{"dark":""}},[_c('v-btn',{staticClass:"close-button",attrs:{"dark":"","icon":""},nativeOn:{"click":function($event){return _vm.cancelUpdate.apply(null, arguments)}}},[_c('v-icon',[_vm._v("$vuetify.icons.close")])],1),_c('v-toolbar-title',[_vm._v(_vm._s(_vm.meta.name))]),_c('v-spacer'),_c('v-toolbar-items',[_vm._t("updateToolbar",function(){return [_c('v-btn',{staticClass:"save-button",attrs:{"dark":"","text":""},on:{"click":function($event){return _vm.updateHandler()}}},[_vm._v(_vm._s(_vm.lang('save')))])]})],2)],1),_c('v-card-text',[_vm._t("updateContent"),_c('activity-overlay',{model:{value:(_vm.activity.isUpdating),callback:function ($$v) {_vm.$set(_vm.activity, "isUpdating", $$v)},expression:"activity.isUpdating"}})],2)],1):_vm._e()],1),_c('v-snackbar',{attrs:{"color":_vm.snackbar.color,"timeout":2000},model:{value:(_vm.snackbar.active),callback:function ($$v) {_vm.$set(_vm.snackbar, "active", $$v)},expression:"snackbar.active"}},[_vm._v(" "+_vm._s(_vm.snackbar.text)+" "),_c('v-btn',{attrs:{"dark":"","text":""},nativeOn:{"click":function($event){_vm.snackbar.active = false}}},[_vm._v(_vm._s(_vm.lang('close')))])],1),_c('v-layout',[_c('v-fab-transition',[(_vm.speedDialNotEmpty)?_c('v-speed-dial',{attrs:{"direction":_vm.speedDialDirection,"open-on-hover":true,"right":true,"top":true,"transition":"slide-y-reverse-transition"},scopedSlots:_vm._u([{key:"activator",fn:function(){return [_c('v-btn',{attrs:{"color":"accent","dark":"","fab":"","hover":""},model:{value:(_vm.fab),callback:function ($$v) {_vm.fab=$$v},expression:"fab"}},[(_vm.fab)?_c('v-icon',[_vm._v("$vuetify.icons.close")]):_c('v-icon',[_vm._v("$vuetify.icons.menu")])],1)]},proxy:true}],null,false,3403256918),model:{value:(_vm.fab),callback:function ($$v) {_vm.fab=$$v},expression:"fab"}},[_c('v-tooltip',{attrs:{"left":""},scopedSlots:_vm._u([{key:"activator",fn:function({on}){return [(_vm.canUpdateResources(_vm.selected) && _vm.selected.length === 1)?_c('v-btn',_vm._g({staticClass:"edit-button",attrs:{"slot":"activator","color":_vm.speedDialColors.edit,"dark":"","fab":"","small":""},on:{"click":function($event){return _vm.openUpdateHandler()}},slot:"activator"},on),[_c('v-icon',[_vm._v(_vm._s(_vm.crudIcons.edit))])],1):_vm._e()]}}],null,false,1122925069)},[_c('span',[_vm._v(_vm._s(_vm.lang('update')))])]),_c('v-tooltip',{attrs:{"left":""},scopedSlots:_vm._u([{key:"activator",fn:function({on}){return [(_vm.canAdd === true)?_c('v-btn',_vm._g({staticClass:"add-button",attrs:{"slot":"activator","color":_vm.speedDialColors.create,"dark":"","fab":"","small":""},on:{"click":function($event){return _vm.openCreateHandler()}},slot:"activator"},on),[_c('v-icon',[_vm._v(_vm._s(_vm.crudIcons.create))])],1):_vm._e()]}}],null,false,221424312)},[_c('span',[_vm._v(_vm._s(_vm.lang('create')))])]),_c('v-tooltip',{attrs:{"left":""},scopedSlots:_vm._u([{key:"activator",fn:function({on}){return [(_vm.canDeleteResources(_vm.selected) && _vm.selected.length >= 1)?_c('v-btn',_vm._g({staticClass:"delete-button",attrs:{"slot":"activator","color":_vm.speedDialColors.delete,"dark":"","fab":"","small":""},on:{"click":function($event){return _vm.showDeleteConfirmation()}},slot:"activator"},on),[_c('v-icon',[_vm._v(_vm._s(_vm.crudIcons.delete))])],1):_vm._e()]}}],null,false,1392921430)},[_c('span',[_vm._v(_vm._s(_vm.lang('delete')))])]),_vm._t("speedDialAfter",null,{"resources":_vm.selected})],2):_vm._e()],1),_c('v-flex',[(_vm.canSearch)?_c('v-layout',{staticClass:"ma-0",attrs:{"row":""}},[_c('v-flex',{attrs:{"mb-3":"","sm4":"","xs10":""}},[_c('v-text-field',{attrs:{"append-icon":_vm.$vuetify.icons.search,"label":_vm.lang('search'),"hide-details":""},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:"search"}})],1),_c('v-flex',{attrs:{"mb-3":"","sm8":"","xs2":""}},[_vm._t("afterSearchBar")],2)],1):_vm._e(),_c('v-data-table',_vm._g(_vm._b({staticClass:"elevation-1",class:{'has-checkboxes': _vm.useCheckboxes},attrs:{"footer-props":{ itemsPerPageOptions: _vm.rowsPerPageItems },"headers":_vm.headers,"items":_vm.items,"loading":_vm.loading,"mobile-breakpoint":0,"options":_vm.pagination,"server-items-length":_vm.totalItems,"show-select":_vm.useCheckboxes,"item-key":"id"},on:{"update:options":function($event){_vm.pagination=$event},"input":_vm.onSelectedChange},scopedSlots:_vm._u([{key:"item",fn:function({ item, isSelected, select }){return [_c('tr',{class:item.itemClass,on:{"click":function($event){return _vm.handleRowClick(item[_vm.resourceKeyName])}}},[(_vm.useCheckboxes)?_c('td',[_c('v-checkbox',{staticClass:"ma-0",attrs:{"input-value":isSelected,"hide-details":"","primary":""},on:{"click":function($event){$event.stopPropagation();return select(!isSelected)}}})],1):_vm._e(),_vm._l((_vm.tableContent),function(headerItem){return _c('td',[_c(_vm.getColumnType(headerItem.columnType),{tag:"component",attrs:{"content":_vm.formatValue(headerItem, item[headerItem.value]),"item":item,"table-column":headerItem}})],1)}),_c('td',{staticClass:"crud-actions text-right"},[(_vm.canUpdate)?_c('v-tooltip',{attrs:{"left":""},scopedSlots:_vm._u([{key:"activator",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:"edit-button",attrs:{"color":_vm.crudColors.edit,"disabled":!_vm.canUpdateResources([item]),"icon":"","text":""},on:{"click":function($event){$event.stopPropagation();return _vm.openUpdateHandler(item[_vm.resourceKeyName])}}},on),[_c('v-icon',{attrs:{"size":_vm.crudIconSize}},[_vm._v(_vm._s(_vm.crudIcons.edit))])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.lang('update')))])]):_vm._e(),(_vm.canDelete)?_c('v-tooltip',{attrs:{"left":""},scopedSlots:_vm._u([{key:"activator",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:"delete-button",attrs:{"color":_vm.crudColors.delete,"disabled":!_vm.canDeleteResources([item]),"icon":"","text":""},on:{"click":function($event){$event.stopPropagation();return _vm.showDeleteConfirmation([item[_vm.resourceKeyName]])}}},on),[_c('v-icon',{attrs:{"size":_vm.crudIconSize}},[_vm._v(_vm._s(_vm.crudIcons.delete))])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.lang('delete')))])]):_vm._e(),_vm._t("crudActionsAfter",null,{"resource":item})],2)],2)]}},{key:"footer.page-text",fn:function({ pageStart, pageStop, itemsLength }){return [_vm._v(" "+_vm._s(_vm.lang('from'))+" "+_vm._s(pageStart)+" "+_vm._s(_vm.lang('till'))+" "+_vm._s(pageStop)+" "+_vm._s(_vm.lang('of'))+" "+_vm._s(itemsLength)+" ")]}},_vm._l((_vm.$scopedSlots),function(_,name){return {key:name,fn:function(slotData){return [_vm._t(name,null,null,slotData)]}}})],null,true),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:"selected"}},'v-data-table',_vm.$attrs,false),_vm.$listeners),[_c('template',{slot:"no-data"},[_vm._v(" "+_vm._s(_vm.lang('no-data'))+" ")]),_c('template',{slot:"loading"},[_vm._v(" "+_vm._s(_vm.lang('loading'))+" ")]),_c('template',{slot:"no-results"},[_vm._v(" "+_vm._s(_vm.lang('no-results'))+" ")])],2)],1)],1),_c('delete-confirmation',{ref:"deleteConfirmation",attrs:{"callback":_vm.deleteHandler,"texts":_vm.texts}})],1) } var staticRenderFns = [] // CONCATENATED MODULE: ./src/VuetifyResource.vue?vue&type=template&id=377e61b2 // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"db5ca738-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/components/ActivityOverlay.vue?vue&type=template&id=553eb051&scoped=true var ActivityOverlayvue_type_template_id_553eb051_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.value)?_c('div',{staticClass:"indicator-overlay-wrapper"},[_c('div',{staticClass:"overlay"}),_c('div',{staticClass:"indicator-wrapper"},[_c('v-progress-circular',{attrs:{"size":70,"width":7,"color":"white","indeterminate":""}})],1)]):_vm._e() } var ActivityOverlayvue_type_template_id_553eb051_scoped_true_staticRenderFns = [] // CONCATENATED MODULE: ./src/components/ActivityOverlay.vue?vue&type=template&id=553eb051&scoped=true // EXTERNAL MODULE: external "vuetify/lib" var lib_ = __webpack_require__("4875"); // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/components/ActivityOverlay.vue?vue&type=script&lang=js /* harmony default export */ var ActivityOverlayvue_type_script_lang_js = ({ components: {VProgressCircular: lib_["VProgressCircular"]}, name: 'activity-overlay', props: { value: { default: false, required: true, type: Boolean, }, }, }); // CONCATENATED MODULE: ./src/components/ActivityOverlay.vue?vue&type=script&lang=js /* harmony default export */ var components_ActivityOverlayvue_type_script_lang_js = (ActivityOverlayvue_type_script_lang_js); // EXTERNAL MODULE: ./src/components/ActivityOverlay.vue?vue&type=style&index=0&id=553eb051&prod&scoped=true&lang=css var ActivityOverlayvue_type_style_index_0_id_553eb051_prod_scoped_true_lang_css = __webpack_require__("7526"); // CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js /* globals __VUE_SSR_CONTEXT__ */ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules). // This module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle. function normalizeComponent( scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier /* server only */, shadowMode /* vue-cli only */ ) { // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // render functions if (render) { options.render = render options.staticRenderFns = staticRenderFns options._compiled = true } // functional template if (functionalTemplate) { options.functional = true } // scopedId if (scopeId) { options._scopeId = 'data-v-' + 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 = shadowMode ? function () { injectStyles.call( this, (options.functional ? this.parent : this).$root.$options.shadowRoot ) } : injectStyles } if (hook) { if (options.functional) { // for template-only hot-reload because in that case the render fn doesn't // go through the normalizer options._injectStyles = hook // register for functional component in vue file var originalRender = options.render options.render = function renderWithStyleInjection(h, context) { hook.call(context) return originalRender(h, context) } } else { // inject component registration as beforeCreate hook var existing = options.beforeCreate options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } } return { exports: scriptExports, options: options } } // CONCATENATED MODULE: ./src/components/ActivityOverlay.vue /* normalize component */ var component = normalizeComponent( components_ActivityOverlayvue_type_script_lang_js, ActivityOverlayvue_type_template_id_553eb051_scoped_true_render, ActivityOverlayvue_type_template_id_553eb051_scoped_true_staticRenderFns, false, null, "553eb051", null ) /* harmony default export */ var ActivityOverlay = (component.exports); // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"db5ca738-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/columnTypes/Text.vue?vue&type=template&id=07fb0ae8 var Textvue_type_template_id_07fb0ae8_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"column type-text"},[(typeof _vm.tableColumn.tooltip !== 'undefined')?_c('v-tooltip',{attrs:{"right":""},scopedSlots:_vm._u([{key:"activator",fn:function({ on }){return [_c('span',_vm._g({},on),[_vm._v(_vm._s(_vm.content))])]}}],null,false,1535186038)},[_c('span',{domProps:{"innerHTML":_vm._s(_vm.item[_vm.tableColumn.tooltip])}})]):_c('span',[_vm._v(_vm._s(_vm.content))])],1) } var Textvue_type_template_id_07fb0ae8_staticRenderFns = [] // CONCATENATED MODULE: ./src/columnTypes/Text.vue?vue&type=template&id=07fb0ae8 // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/columnTypes/Text.vue?vue&type=script&lang=js /* harmony default export */ var Textvue_type_script_lang_js = ({ name: 'TextType', props: ['content', 'item', 'tableColumn'], components: { VTooltip: lib_["VTooltip"] }, data() { return {}; }, }); // CONCATENATED MODULE: ./src/columnTypes/Text.vue?vue&type=script&lang=js /* harmony default export */ var columnTypes_Textvue_type_script_lang_js = (Textvue_type_script_lang_js); // CONCATENATED MODULE: ./src/columnTypes/Text.vue /* normalize component */ var Text_component = normalizeComponent( columnTypes_Textvue_type_script_lang_js, Textvue_type_template_id_07fb0ae8_render, Textvue_type_template_id_07fb0ae8_staticRenderFns, false, null, null, null ) /* harmony default export */ var Text = (Text_component.exports); // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"db5ca738-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/columnTypes/Checkbox.vue?vue&type=template&id=e319bf9a var Checkboxvue_type_template_id_e319bf9a_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"column type-checkbox"},[(_vm.isTrue())?_c('v-icon',[_vm._v("$vuetify.icons.checkboxOn")]):_vm._e()],1) } var Checkboxvue_type_template_id_e319bf9a_staticRenderFns = [] // CONCATENATED MODULE: ./src/columnTypes/Checkbox.vue?vue&type=template&id=e319bf9a // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/columnTypes/Checkbox.vue?vue&type=script&lang=js /* harmony default export */ var Checkboxvue_type_script_lang_js = ({ name: 'CheckboxType', components: {VIcon: lib_["VIcon"]}, props: ['content'], methods: { /** * Check if the prop: content is a true value */ isTrue() { return !!(this.content || this.content === 'true' || this.content === '1'); }, }, }); // CONCATENATED MODULE: ./src/columnTypes/Checkbox.vue?vue&type=script&lang=js /* harmony default export */ var columnTypes_Checkboxvue_type_script_lang_js = (Checkboxvue_type_script_lang_js); // CONCATENATED MODULE: ./src/columnTypes/Checkbox.vue /* normalize component */ var Checkbox_component = normalizeComponent( columnTypes_Checkboxvue_type_script_lang_js, Checkboxvue_type_template_id_e319bf9a_render, Checkboxvue_type_template_id_e319bf9a_staticRenderFns, false, null, null, null ) /* harmony default export */ var Checkbox = (Checkbox_component.exports); // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"db5ca738-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/components/DeleteConfirmation.vue?vue&type=template&id=6361e78c&scoped=true var DeleteConfirmationvue_type_template_id_6361e78c_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-dialog',{attrs:{"persistent":"","max-width":"290"},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:"dialog"}},[_c('v-card',[_c('v-card-title',{staticClass:"headline"},[_vm._v(_vm._s(_vm.lang('delete-confirmation-title')))]),_c('v-card-text',[_vm._v(_vm._s(_vm.lang('delete-confirmation-content')))]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{"color":"grey","text":""},on:{"click":function($event){_vm.dialog = false}}},[_vm._v(_vm._s(_vm.lang('cancel')))]),_c('v-btn',{staticClass:"confirm-delete-button",attrs:{"color":"priamry darken-1","text":""},on:{"click":_vm.handleDelete}},[_vm._v(" "+_vm._s(_vm.lang('delete'))+" ")])],1)],1)],1) } var DeleteConfirmationvue_type_template_id_6361e78c_scoped_true_staticRenderFns = [] // CONCATENATED MODULE: ./src/components/DeleteConfirmation.vue?vue&type=template&id=6361e78c&scoped=true // CONCATENATED MODULE: ./src/texts.js /* harmony default export */ var texts = ({ save: 'Save', close: 'Close', from: 'from', till: 'till', of: 'of', create: 'Create', update: 'Update', delete: 'Delete', cancel: 'Cancel', 'no-data': 'There is nothing found', 'no-results': 'There is nothing found for this filter', 'snackbar-saved': 'It\'s successfully saved!', 'snackbar-save-error': 'Something went wrong, please try again later', 'snackbar-get-error': 'Something went wrong, please try again later', 'snackbar-deleted': 'It\'s successfully deleted!', 'snackbar-delete-error': 'Something went wrong, please try again later', 'search': 'Search', 'loading': 'Loading..', 'delete-confirmation-title': 'Are you sure?', 'delete-confirmation-content': 'Are you sure you want to delete these item(s)?', }); // CONCATENATED MODULE: ./src/mixins/Language.js /* harmony default export */ var Language = ({ methods: { lang(t) { if (typeof this.texts === 'undefined' || typeof this.texts[t] === 'undefined') { return texts[t]; } else { return this.texts[t]; } }, }, }); // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/components/DeleteConfirmation.vue?vue&type=script&lang=js /* harmony default export */ var DeleteConfirmationvue_type_script_lang_js = ({ props: ['callback', 'texts'], name: 'delete-confirmation', components: {VCard: lib_["VCard"], VBtn: lib_["VBtn"], VSpacer: lib_["VSpacer"], VCardActions: lib_["VCardActions"], VCardTitle: lib_["VCardTitle"], VCardText: lib_["VCardText"], VDialog: lib_["VDialog"]}, mixins: [Language], data() { return { ids: [], dialog: false, }; }, methods: { handleDelete() { this.callback(this.ids); this.dialog = false; }, }, }); // CONCATENATED MODULE: ./src/components/DeleteConfirmation.vue?vue&type=script&lang=js /* harmony default export */ var components_DeleteConfirmationvue_type_script_lang_js = (DeleteConfirmationvue_type_script_lang_js); // CONCATENATED MODULE: ./src/components/DeleteConfirmation.vue /* normalize component */ var DeleteConfirmation_component = normalizeComponent( components_DeleteConfirmationvue_type_script_lang_js, DeleteConfirmationvue_type_template_id_6361e78c_scoped_true_render, DeleteConfirmationvue_type_template_id_6361e78c_scoped_true_staticRenderFns, false, null, "6361e78c", null ) /* harmony default export */ var DeleteConfirmation = (DeleteConfirmation_component.exports); // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/VuetifyResource.vue?vue&type=script&lang=js let VuetifyResourceOptions = { style: { edit: {}, drop: {}, create: {}, }, }; /* harmony default export */ var VuetifyResourcevue_type_script_lang_js = ({ /** * use * * @param options.style.edit * @param options.style.delete * @param options.style.create * @param options.style.default * @return Object with style-properties */ use(options) { if (options && options.style) { VuetifyResourceOptions.style.edit = options.style.edit || {}; VuetifyResourceOptions.style.drop = options.style.delete || {}; VuetifyResourceOptions.style.create = options.style.create || {}; VuetifyResourceOptions.style.default = options.style.default || null; } }, name: 'vuetify-resource', components: { DeleteConfirmation: DeleteConfirmation, ActivityOverlay: ActivityOverlay, /* Vuetify components: */ VDialog: lib_["VDialog"], VCard: lib_["VCard"], VToolbar: lib_["VToolbar"], VBtn: lib_["VBtn"], VIcon: lib_["VIcon"], VFlex: lib_["VFlex"], VTextField: lib_["VTextField"], VSnackbar: lib_["VSnackbar"], VLayout: lib_["VLayout"], VFabTransition: lib_["VFabTransition"], VSpeedDial: lib_["VSpeedDial"], VDataTable: lib_["VDataTable"], VSpacer: lib_["VSpacer"], VTooltip: lib_["VTooltip"], VCheckbox: lib_["VCheckbox"], VCardText: lib_["VCardText"], VToolbarItems: lib_["VToolbarItems"], VToolbarTitle: lib_["VToolbarTitle"], }, mixins: [Language], data() { return { fab: false, search: '', totalItems: 0, items: [], loading: true, pagination: { itemsPerPage: this.rowsPerPage || 10, }, selected: [], headers: [], dialog: { create: false, update: false, }, snackbar: { text: '', active: false, color: 'success', }, activity: { isUpdating: false, isDeleting: false, isCreating: false, }, lastOpenedHash: null, }; }, computed: { resourceHtmlClass() { return { 'vuetify-resource': true, 'with-search': this.canSearch, 'row-click': this.hasClickableRows, }; }, speedDialNotEmpty() { if (!this.showSpeedDial) { return false; } if (this.canAdd || this.canUpdate || this.canDelete) { return true; } return typeof this.$scopedSlots.speedDialAfter !== 'undefined'; }, colors() { const { style: { edit, create, drop, }, } = VuetifyResourceOptions; const base = VuetifyResourceOptions.style.default; return { edit: edit.color || 'green', delete: drop.color || 'red', create: create.color || 'indigo', default: base && base.color != null ? base.color : null, onlyCrudActions: base && !base.onlySpeedDial, onlySpeedDial: base && !base.onlyCrudActions, }; }, crudColors() { return { edit: this.colors.onlyCrudActions && this.colors.default ? this.colors.default : this.colors.edit, delete: this.colors.onlyCrudActions && this.colors.default ? this.colors.default : this.colors.delete, create: this.colors.onlyCrudActions && this.colors.default ? this.colors.default : this.colors.create, }; }, speedDialColors() { return { edit: this.colors.onlySpeedDial && this.colors.default ? this.colors.default : this.colors.edit, delete: this.colors.onlySpeedDial && this.colors.default ? this.colors.default : this.colors.delete, create: this.colors.onlySpeedDial && this.colors.default ? this.colors.default : this.colors.create, }; }, crudIcons() { return { edit: VuetifyResourceOptions.style.edit.icon || '$vuetify.icons.edit', delete: VuetifyResourceOptions.style.drop.icon || '$vuetify.icons.delete', create: VuetifyResourceOptions.style.create.icon || '$vuetify.icons.add', }; }, crudIconSize: () => VuetifyResourceOptions.style.default ? VuetifyResourceOptions.style.default.size : null, hasClickableRows() { return 'row-click' in this.$listeners; }, }, props: { /** * getDataCallBack * * @param pagination * @return promise with resolving items and total for the table */ getDataCallback: { required: true, type: Function, }, /** * getItemCallback * * get the data of a single resource by the key (key is the id by default) * * @param key * @return promise with resolving the data of an resource */ getItemCallback: { required: false, type: Function, }, /** * beforeCreateCallback * the callback wich is called before opening the create form */ beforeCreateCallback: { required: false, type: Function, }, /** * createCallBack * the callback which is called when the create form is saved * * @return promise */ createCallback: { required: false, type: Function, }, /** * beforeUpdateCallback * the callback which is called before the update dialog is opened */ beforeUpdateCallback: { required: false, type: Function, }, /** * updateCallback * the callback wich is called when the update form is saved * * @return promise */ updateCallback: { required: false, type: Function, }, /** * deleteCallback * the callback which is called when the delete action is called * * @return promise */ deleteCallback: { required: false, type: Function, }, /** * useResourceKeyInUrl * Do you want the resource key (by