{"version":3,"sources":["webpack:///./src/components/authenticated/Users/Services.vue?b784","webpack:///./src/components/authenticated/Users/Services.vue?e0c7","webpack:///src/components/authenticated/Users/Services.vue","webpack:///./src/components/authenticated/Users/Services.vue?a070","webpack:///./src/components/authenticated/Users/Services.vue?5b6a","webpack:///./src/assets/js/helper/table.js"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","is","loading","relationsIs","tableData","fields","items","$root","mobile","up","key","table","helper","rowClass","scopedSlots","_u","fn","_v","_s","$T","proxy","data","$options","item","on","$value","updateRelation","field","model","value","callback","$$v","$set","expression","title","_e","staticRenderFns","name","parentKey","PARENT_KEY","parentId","entityKey","ENTITY_KEY","relationKey","RELATION_KEY","options","includes","excludes","sorting","sortable","labelKey","label","variant","class","thClass","tdClass","computed","parent","$store","getters","definition","entities","relationsDefinition","relations","tableEntities","getTranslatedValue","property","methods","getParent","commit","dispatch","getEntities","id","userId","subscriptionAndServiceId","subscribed","created","component","OPTIONS_BASE","tBodyTrClassHooks","detailshowing","TableHelper","tBodyTrClass","rowClassHook","registerTBodyTrClassHook","toggleDetail","trClickToggleDetail","rememberOpenDetail","rememberDetailhowing","restoreOpenDetail","restoreDetailShowing","sortByProperties","Table","o","merge","fieldsCreate","itemsCreateTitles","length","arrayExcludeKeys","arrayDistinct","arrayIncludeKeys","map","Object","keys","flat","fieldsRemoveUnkown","fieldsSort","fieldsMap","console","warn","knownFields","concat","removeUnknown","indexOf","CLASS_TABLE_FIELD_KEY_UNKNOWN","filter","fieldKey","CLASS_TABLE_FIELD_KEYS_UNSORTABLE","CLASS_TABLE_FIELD_KEY_ALL","undefined","toString","find","vKey","stringToKebabCase","unknownIndex","sort","a","b","aIndex","bIndex","reduce","rows","_table","assign","isTitle","_hasDetails","_showDetails","fieldsExcludes","CLASS_TABLE_GLOBAL_FIELD_EXCLUDES","array","Array","from","Set","string","replace","toLowerCase","rowType","classes","push","forEach","h","join","hook","Vue","set","_showDetailsHook","elements","r","i","index","element","propertyPaths","propertyA","propertyB","propertyPath","getProperty","compare","getCompareValue","object","propertyValue","propertyByStringPath"],"mappings":"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","file":"js/component-user-services.2c15f603.js","sourcesContent":["export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Services.vue?vue&type=style&index=0&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-table',{staticClass:\"services-table\",attrs:{\"busy\":_vm.is.loading || _vm.relationsIs.loading,\"fields\":_vm.tableData.fields,\"items\":_vm.tableData.items,\"thead-class\":\"d-none\",\"striped\":\"\",\"borderless\":\"\",\"stacked\":_vm.$root.mobile.up.key,\"show-empty\":\"\",\"sort-icon-left\":\"\",\"tbody-tr-class\":_vm.table.helper.rowClass},scopedSlots:_vm._u([{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center\"},[_c('c-loader',{attrs:{\"type\":\"dots\",\"inline\":\"\",\"scale\":\"4\"}}),_c('div',[_vm._v(_vm._s(_vm.$T('Busy')))])],1)]},proxy:true},{key:\"cell(subscribed)\",fn:function(data){return [_c('control-checkbox',{staticClass:\"mb-0\",attrs:{\"id\":((_vm.$options.name) + \"_Checkbox_\" + (data.item.id)),\"switch\":\"\"},on:{\"change\":function ($value) { return _vm.updateRelation(data.field.key, data.item, $value); }},model:{value:(data.value),callback:function ($$v) {_vm.$set(data, \"value\", $$v)},expression:\"data.value\"}})]}},{key:\"row-details\",fn:function(data){return [(data.item.isTitle)?[_c('h3',{staticClass:\"h5\"},[_vm._v(_vm._s(data.item.title))])]:_vm._e()]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n
\r\n \r\n \r\n
\r\n {{ $T('Busy') }}
\r\n \r\n \r\n\r\n \r\n updateRelation(data.field.key, data.item, $value)\"\r\n />\r\n \r\n\r\n \r\n \r\n {{ data.item.title }}
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Services.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Services.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Services.vue?vue&type=template&id=6adc1532&\"\nimport script from \"./Services.vue?vue&type=script&lang=js&\"\nexport * from \"./Services.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Services.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport merge from 'lodash.merge'\r\nimport { CLASS_TABLE_GLOBAL_FIELD_EXCLUDES, CLASS_TABLE_FIELD_KEY_ALL, CLASS_TABLE_FIELD_KEY_UNKNOWN, CLASS_TABLE_FIELD_KEYS_UNSORTABLE } from '@/assets/js/config/client'\r\nimport { propertyByStringPath } from '@/assets/js/helper/object'\r\n\r\nexport const OPTIONS_BASE = {\r\n includes: [],\r\n excludes: [],\r\n sorting: [],\r\n sortable: [],\r\n labelKey: '', // e.g. 'components.table.fields.{field}'\r\n label: {},\r\n variant: {},\r\n thClass: {},\r\n tdClass: {},\r\n class: {}\r\n}\r\n\r\nconst tBodyTrClassHooks = []\r\nlet detailshowing = []\r\n\r\nexport const TableHelper = {\r\n rowClass: tBodyTrClass,\r\n rowClassHook: registerTBodyTrClassHook,\r\n toggleDetail: trClickToggleDetail,\r\n rememberOpenDetail: rememberDetailhowing,\r\n restoreOpenDetail: restoreDetailShowing,\r\n sortByProperties\r\n}\r\n\r\nexport default class Table {\r\n constructor (items = [], options = {}) {\r\n const o = merge({}, OPTIONS_BASE, options)\r\n\r\n this.fields = []\r\n this.items = items\r\n\r\n this.fieldsCreate(items, o)\r\n this.itemsCreateTitles(items, o)\r\n }\r\n\r\n fieldsCreate (items = [], options = {}) {\r\n if (items.length > 0) {\r\n const o = merge({}, OPTIONS_BASE, options)\r\n\r\n this.fields = arrayExcludeKeys(arrayDistinct(arrayIncludeKeys(items.map(item => Object.keys(item)).flat(), o.includes)), o.excludes)\r\n\r\n this.fieldsRemoveUnkown(this.fields, o)\r\n this.fieldsSort(this.fields, o)\r\n this.fieldsMap(this.fields, o)\r\n\r\n if (this.fields.length === 0) {\r\n console.warn('Table Warning: No table-field has left to render! Instead table shows all data-properties.')\r\n }\r\n }\r\n }\r\n\r\n fieldsRemoveUnkown (fields = [], options = {}) {\r\n const o = merge({}, OPTIONS_BASE, options)\r\n const knownFields = [].concat(o.includes, o.sorting, o.sortable)\r\n const removeUnknown = o.sorting.indexOf(CLASS_TABLE_FIELD_KEY_UNKNOWN) < 0\r\n\r\n if (removeUnknown) {\r\n this.fields = fields\r\n .filter(field => {\r\n const fieldKey = typeof field === 'object' ? field.key : field\r\n\r\n return knownFields.includes(fieldKey)\r\n })\r\n }\r\n }\r\n\r\n fieldsMap (fields = [], options = {}) {\r\n const o = merge({}, OPTIONS_BASE, options)\r\n\r\n this.fields = fields\r\n .map(field => {\r\n const fieldKey = typeof field === 'object' ? field.key : field\r\n\r\n return {\r\n key: fieldKey,\r\n sortable: !CLASS_TABLE_FIELD_KEYS_UNSORTABLE.includes(fieldKey) ? o.sortable.includes(CLASS_TABLE_FIELD_KEY_ALL) || o.sortable.includes(fieldKey) : false,\r\n label: o.label[fieldKey] !== undefined ? o.label[fieldKey].toString() : fieldKey,\r\n variant: o.variant[Object.keys(o.variant).find(vKey => vKey === fieldKey)] || null,\r\n thClass: [`cell-id-${stringToKebabCase(fieldKey)} col-id-${stringToKebabCase(fieldKey)}`].concat(o.thClass[fieldKey] || []),\r\n tdClass: [`col-id-${stringToKebabCase(fieldKey)}`].concat(o.tdClass[fieldKey] || []),\r\n class: [].concat(o.class[fieldKey] || [])\r\n }\r\n })\r\n }\r\n\r\n fieldsSort (fields = [], options = {}) {\r\n const o = merge({}, OPTIONS_BASE, options)\r\n\r\n let unknownIndex = o.sorting.indexOf(CLASS_TABLE_FIELD_KEY_UNKNOWN)\r\n unknownIndex = unknownIndex >= 0 ? unknownIndex : this.fields.length\r\n\r\n this.fields = fields.sort((a, b) => {\r\n const aIndex = o.sorting.indexOf(typeof a === 'object' ? a.key : a)\r\n const bIndex = o.sorting.indexOf(typeof b === 'object' ? b.key : b)\r\n\r\n return (aIndex >= 0 ? aIndex : unknownIndex) - (bIndex >= 0 ? bIndex : unknownIndex)\r\n })\r\n }\r\n\r\n itemsCreateTitles (items = []) {\r\n this.items = items.reduce((rows, item) => {\r\n const _table = item._table || {}\r\n\r\n return rows.concat(\r\n _table.title ? Object.assign({ title: _table.title, isTitle: true, _hasDetails: true, _showDetails: true }, item) : [],\r\n item\r\n )\r\n }, [])\r\n }\r\n}\r\n\r\nfunction arrayIncludeKeys (fields = [], includes = []) {\r\n return [].concat(fields, includes)\r\n}\r\n\r\nfunction arrayExcludeKeys (fields = [], excludes = []) {\r\n const fieldsExcludes = [].concat(CLASS_TABLE_GLOBAL_FIELD_EXCLUDES, excludes)\r\n\r\n return fields.filter(field => !fieldsExcludes.includes(field))\r\n}\r\n\r\nfunction arrayDistinct (array = []) {\r\n return Array.from(new Set(array))\r\n}\r\n\r\nfunction stringToKebabCase (string = '') {\r\n return string\r\n .replace(/([a-z])([A-Z])/g, '$1-$2')\r\n .replace(/\\s+/g, '-')\r\n .toLowerCase()\r\n}\r\n\r\nfunction tBodyTrClass (item = {}, rowType = '') {\r\n let classes = []\r\n\r\n if (item) {\r\n if (rowType === 'row' && item._hasDetails) classes.push('has-details')\r\n if (rowType === 'row-details') classes.push('is-detail')\r\n\r\n if (item.isTitle) {\r\n if (rowType === 'row') classes.push('d-none')\r\n if (rowType === 'row-details') classes.push('is-title')\r\n }\r\n\r\n tBodyTrClassHooks.forEach(h => {\r\n classes = classes.concat(h(item, rowType) || [])\r\n })\r\n }\r\n\r\n return classes.join(' ')\r\n}\r\n\r\nfunction registerTBodyTrClassHook (hook = null) {\r\n if (typeof hook === 'function') tBodyTrClassHooks.push(hook)\r\n}\r\n\r\nfunction trClickToggleDetail (item = {}, index = null, event = {}) {\r\n if (item) {\r\n if (item._hasDetails) {\r\n Vue.set(item, '_showDetails', !item._showDetails)\r\n if (typeof item._showDetailsHook === 'function') item._showDetailsHook(item._showDetails, item)\r\n }\r\n }\r\n}\r\n\r\nfunction rememberDetailhowing (rows = [], property = null) {\r\n detailshowing = rows.reduce((elements, r, i) => elements.concat(r._showDetails ? { id: r[property] || null, index: i } : []), [])\r\n}\r\n\r\nfunction restoreDetailShowing (rows = [], property = null) {\r\n detailshowing.forEach(element => {\r\n Vue.set(rows.find(r => r[property] === element.id) || rows[element.index], '_showDetails', true)\r\n })\r\n}\r\n\r\n// sort items by simple Properties (e.g. strings, numbers, booleans)\r\nfunction sortByProperties (...propertyPaths) {\r\n return function (propertyA, propertyB) {\r\n return propertyPaths\r\n .map(propertyPath => ({ a: getProperty(propertyA, propertyPath), b: getProperty(propertyB, propertyPath) }))\r\n .reduce((compare, property) => getCompareValue(compare, property.a, property.b), 0)\r\n }\r\n\r\n function getProperty (object = {}, propertyPath = '') {\r\n const propertyValue = propertyByStringPath(object, propertyPath, true)\r\n return typeof propertyValue === 'string' ? propertyValue.toLowerCase() : propertyValue\r\n }\r\n\r\n function getCompareValue (compare, propertyA, propertyB) {\r\n if (compare === 0) {\r\n if (propertyA !== undefined && propertyB === undefined) compare = -1\r\n else if (propertyA === undefined && propertyB !== undefined) compare = 1\r\n else if (propertyA === true && propertyB !== true) compare = -1\r\n else if (propertyA !== true && propertyB === true) compare = 1\r\n else if (propertyA < propertyB) compare = -1\r\n else if (propertyA > propertyB) compare = 1\r\n }\r\n\r\n return compare\r\n }\r\n}\r\n"],"sourceRoot":""}