{"version":3,"sources":["webpack:///./src/components/ui/AppModal.vue","webpack:///src/components/ui/AppModal.vue","webpack:///./src/components/ui/AppModal.vue?199a","webpack:///./src/components/ui/AppModal.vue?15d3","webpack:///./src/components/ui/AppAlert.vue?9bd2","webpack:///./src/views/role-view/index.vue?b397","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./src/views/user-view/index.vue?9d23","webpack:///./src/components/ui/AppModal.vue?aa50","webpack:///./src/components/ui/FloatingField.vue?7b24","webpack:///./node_modules/core-js/modules/es.array.sort.js","webpack:///./src/components/ui/AppPager.vue?c5ef","webpack:///./src/components/ui/FloatingField.vue","webpack:///src/components/ui/FloatingField.vue","webpack:///./src/components/ui/FloatingField.vue?c115","webpack:///./src/components/ui/FloatingField.vue?bd45","webpack:///./src/components/ui/AppPager.vue","webpack:///src/components/ui/AppPager.vue","webpack:///./src/components/ui/AppPager.vue?33f4","webpack:///./src/components/ui/AppPager.vue?877a","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./src/views/role-view/index.vue","webpack:///./src/components/role/RoleList.vue","webpack:///src/components/role/RoleList.vue","webpack:///./src/components/role/RoleList.vue?4c08","webpack:///./src/components/role/RoleList.vue?48ea","webpack:///src/views/role-view/index.vue","webpack:///./src/views/role-view/index.vue?6310","webpack:///./src/views/role-view/index.vue?29ce","webpack:///./src/components/ui/AppAlert.vue","webpack:///src/components/ui/AppAlert.vue","webpack:///./src/components/ui/AppAlert.vue?e63b","webpack:///./src/components/ui/AppAlert.vue?7e53","webpack:///./src/components/ui/EmployeeAutocomplete.vue?c4a1","webpack:///./src/components/role/RoleList.vue?7608","webpack:///./src/mixins/AlertMixin.vue","webpack:///src/mixins/AlertMixin.vue","webpack:///./src/mixins/AlertMixin.vue?4644","webpack:///./src/mixins/ErrorMixin.vue","webpack:///src/mixins/ErrorMixin.vue","webpack:///./src/mixins/ErrorMixin.vue?8530","webpack:///./src/views/user-view/index.vue","webpack:///./src/components/ui/EmployeeAutocomplete.vue","webpack:///src/components/ui/EmployeeAutocomplete.vue","webpack:///./src/components/ui/EmployeeAutocomplete.vue?02c6","webpack:///./src/components/ui/EmployeeAutocomplete.vue?ce6d","webpack:///./src/components/user/UserList.vue","webpack:///src/components/user/UserList.vue","webpack:///./src/components/user/UserList.vue?7bf1","webpack:///./src/components/user/UserList.vue?39ad","webpack:///src/views/user-view/index.vue","webpack:///./src/views/user-view/index.vue?c19c","webpack:///./src/views/user-view/index.vue?de68","webpack:///./src/filters/enum/index.js","webpack:///./src/components/user/UserList.vue?ee9d","webpack:///./src/components/ui/DataTable.vue","webpack:///src/components/ui/DataTable.vue","webpack:///./src/components/ui/DataTable.vue?e336","webpack:///./src/components/ui/DataTable.vue?d365"],"names":["render","_vm","this","_c","_self","attrs","directives","name","rawName","value","show","expression","staticClass","on","staticClose","_t","title","_v","_s","_e","staticRenderFns","props","type","Boolean","required","default","closeOnEscape","static","String","inject","methods","close","eventBus","$emit","CLOSE_MODAL_EVENT","evt","target","$el","mounted","_this","document","addEventListener","e","keyCode","component","module","exports","Object","is","x","y","$","uncurryThis","aCallable","toObject","lengthOfArrayLike","deletePropertyOrThrow","toString","fails","internalSort","arrayMethodIsStrict","FF","IE_OR_EDGE","V8","WEBKIT","test","nativeSort","sort","push","FAILS_ON_UNDEFINED","undefined","FAILS_ON_NULL","STRICT_METHOD","STABLE_SORT","code","chr","index","result","fromCharCode","k","v","a","b","length","charAt","FORCED","getSortCompare","comparefn","proto","forced","array","itemsLength","items","arrayLength","id","label","isRequired","FLOATING_FIELD_TEXTAREA","domProps","$event","FLOATING_FIELD_TEXTINPUT","created","setActive","el","active","formField","parentNode","classList","add","remove","forEach","call","querySelectorAll","onblur","onfocus","class","noPointer","currentPage","goToPrevious","paginate","hasLeftEllipses","_l","pages","page","numberOfPages","key","hasRightEllipses","goToNext","totalNumberOfItems","Number","numberOfItemsPerPage","numberOfPagers","data","computed","includes","Math","ceil","totalNumberOfPagers","Array","from","filter","pagesArray","mid","start","to","fixRegExpWellKnownSymbolLogic","anObject","isNullOrUndefined","requireObjectCoercible","sameValue","getMethod","regExpExec","SEARCH","nativeSearch","maybeCallNative","regexp","O","searcher","RegExp","string","rx","S","res","done","previousLastIndex","lastIndex","alert","message","closeMessage","showAddEditModal","role","scopedSlots","_u","fn","isSavingRole","preventDefault","cancelAddOrEdit","apply","arguments","spin","saveRole","proxy","errors","error","model","callback","$$v","$set","status","staticStyle","isArray","_i","$$a","$$el","$$c","checked","$$i","concat","slice","_f","roleRightsList","right","description","isSelected","showDeleteModal","isDeletingRole","cancelDelete","deleteRole","addRole","_m","headers","itemsToDisplay","_ref","item","_ref2","rights","_ref3","editRole","removeRole","numberOfItems","goToPage","components","DataTable","AppPager","_objectSpread","mapState","roles","state","roleModule","watch","filters","toStatusDescription","toRoleRightsDescription","EDIT_ROLE_EVENT","REMOVE_ROLE_EVENT","RoleList","AppAlert","AppModal","FloatingField","mixins","AlertMixin","ErrorMixin","provide","Enums","Status","Active","totalSelectedRoleRights","totalRights","$nextTick","getElementById","focus","righsList","assign","RoleRights","validateAddOrEditForm","self","actionType","UPDATE_ROLE","CREATE_ROLE","store","dispatch","then","showSuccessMessage","catch","handleError","finally","DELETE_ROLE","splice","form","querySelector","reportValidity","beforeRouteEnter","next","FETCH_ROLES","vm","showErrorMessage","$on","stopPropagation","onClose","ALERT_TYPE_ERROR","ALERT_TYPE_SUCCESS","errorMessage","console","log","isActive","ServerValidationError","_toConsumableArray","errorList","user","isNew","isSavingUser","saveUser","searchedEmployees","roleId","$$selectedVal","prototype","options","o","selected","map","val","_value","multiple","activeRoles","addUser","search","isOpen","isLoading","results","i","setResult","isShown","isSearchMode","arrowCounter","filterResults","toLowerCase","indexOf","EMPLOYEE_SELECTED_EVENT","handleClickOutside","contains","oldValue","onSearch","debounce","EMPLOYEE_SEARCH_STARTED_EVENT","destroyed","removeEventListener","editUser","users","userModule","EDIT_USER_EVENT","disableUser","DISABLE_USER_EVENT","UserList","EmployeeAutocomplete","roleName","mapGetters","setUser","employee","CREATE_USER","UPDATE_USER","FETCH_USERS","searchString","employeeService","searchEmployees","beforeDestroy","$off","convertToEnum","rightsDescriptions","join","header","identifierProp"],"mappings":"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","file":"js/adminViews.e3517d2e.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"name\":\"modal\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.show),expression:\"show\"}],staticClass:\"modal-mask\",on:{\"click\":_vm.staticClose}},[_c('div',{staticClass:\"modal-container\"},[_c('div',{staticClass:\"modal-header\"},[_vm._t(\"header\",function(){return [(_vm.title)?_c('h3',[_vm._v(_vm._s(_vm.title))]):_vm._e()]})],2),_c('div',{staticClass:\"modal-body\"},[_vm._t(\"default\")],2),_c('div',{staticClass:\"modal-footer text-right\"},[_vm._t(\"footer\")],2)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <transition name=\"modal\">\r\n    <div class=\"modal-mask\" v-show=\"show\" @click=\"staticClose\">\r\n      <!--<div class=\"modal-container\" @click.stop>-->\r\n      <div class=\"modal-container\">\r\n        <div class=\"modal-header\">\r\n          <slot name=\"header\">\r\n            <h3 v-if=\"title\">{{ title }}</h3>\r\n          </slot>\r\n        </div>\r\n        <div class=\"modal-body\">\r\n          <slot>\r\n          </slot>\r\n        </div>\r\n        <div class=\"modal-footer text-right\">\r\n          <slot name=\"footer\"></slot>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </transition>\r\n</template>\r\n\r\n<style scoped lang=\"scss\">\r\n  .modal-mask {\r\n    position: fixed;\r\n    z-index: 9998;\r\n    top: 0;\r\n    left: 0;\r\n    width: 100%;\r\n    height: 100%;\r\n    background-color: rgba(0, 0, 0, .5);\r\n    transition: opacity .3s ease;\r\n  }\r\n\r\n  .modal-container {\r\n    width: 600px;\r\n    margin: 40px auto 0;\r\n    padding: 20px 30px;\r\n    background-color: #fff;\r\n    border-radius: 2px;\r\n    box-shadow: 0 2px 8px rgba(0, 0, 0, .33);\r\n    transition: all .3s ease;\r\n    font-family: Helvetica, Arial, sans-serif;\r\n  }\r\n\r\n  .modal-header h3 {\r\n    margin-top: 0;\r\n    color: #0066b2;\r\n  }\r\n\r\n  .modal-body {\r\n    margin: 20px 0;\r\n  }\r\n\r\n  .text-right {\r\n    text-align: right;\r\n  }\r\n\r\n  .modal-enter {\r\n    opacity: 0;\r\n  }\r\n\r\n  .modal-leave-active {\r\n    opacity: 0;\r\n  }\r\n\r\n    .modal-enter .modal-container,\r\n    .modal-leave-active .modal-container {\r\n      -webkit-transform: scale(1.1);\r\n      transform: scale(1.1);\r\n    }\r\n</style>\r\n\r\n<script>\r\nimport { CLOSE_MODAL_EVENT } from '@/utils/constants'\r\n\r\nexport default {\r\n  name: 'app-modal',\r\n  props: {\r\n    show: {\r\n      type: Boolean,\r\n      required: false,\r\n      default: false\r\n    },\r\n    closeOnEscape: {\r\n      type: Boolean,\r\n      required: false,\r\n      default: true\r\n    },\r\n    static: {\r\n      type: Boolean,\r\n      required: false,\r\n      default: true\r\n    },\r\n    title: {\r\n      type: String,\r\n      required: false,\r\n      default: ''\r\n    }\r\n  },\r\n  inject: ['eventBus'],\r\n  methods: {\r\n    close () {\r\n      this.eventBus.$emit(CLOSE_MODAL_EVENT)\r\n    },\r\n    staticClose (evt) {\r\n      if (evt.target == this.$el && !this.static) {\r\n        this.close()\r\n      }\r\n    }\r\n  },\r\n  mounted: function () {\r\n    document.addEventListener('keydown', (e) => {\r\n      if (this.show && this.closeOnEscape && !this.static && e.keyCode == 27) {\r\n        this.close()\r\n      }\r\n    })\r\n  }\r\n}\r\n</script>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppModal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppModal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AppModal.vue?vue&type=template&id=72a61390&scoped=true\"\nimport script from \"./AppModal.vue?vue&type=script&lang=js\"\nexport * from \"./AppModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./AppModal.vue?vue&type=style&index=0&id=72a61390&prod&scoped=true&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  \"72a61390\",\n  null\n  \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppAlert.vue?vue&type=style&index=0&id=05d80fa6&prod&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=a73158d6&prod&scoped=true&lang=scss\"","'use strict';\n// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n  // eslint-disable-next-line no-self-compare -- NaN check\n  return x === y ? x !== 0 || 1 / x === 1 / y : x !== x && y !== y;\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=764a6143&prod&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppModal.vue?vue&type=style&index=0&id=72a61390&prod&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FloatingField.vue?vue&type=style&index=0&id=67d25b86&prod&scoped=true&lang=scss\"","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/environment-ff-version');\nvar IE_OR_EDGE = require('../internals/environment-is-ie-or-edge');\nvar V8 = require('../internals/environment-v8-version');\nvar WEBKIT = require('../internals/environment-webkit-version');\n\nvar test = [];\nvar nativeSort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n  test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n  test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n  // feature detection can be too slow, so check engines versions\n  if (V8) return V8 < 70;\n  if (FF && FF > 3) return;\n  if (IE_OR_EDGE) return true;\n  if (WEBKIT) return WEBKIT < 603;\n\n  var result = '';\n  var code, chr, value, index;\n\n  // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n  for (code = 65; code < 76; code++) {\n    chr = String.fromCharCode(code);\n\n    switch (code) {\n      case 66: case 69: case 70: case 72: value = 3; break;\n      case 68: case 71: value = 4; break;\n      default: value = 2;\n    }\n\n    for (index = 0; index < 47; index++) {\n      test.push({ k: chr + index, v: value });\n    }\n  }\n\n  test.sort(function (a, b) { return b.v - a.v; });\n\n  for (index = 0; index < test.length; index++) {\n    chr = test[index].k.charAt(0);\n    if (result.charAt(result.length - 1) !== chr) result += chr;\n  }\n\n  return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n  return function (x, y) {\n    if (y === undefined) return -1;\n    if (x === undefined) return 1;\n    if (comparefn !== undefined) return +comparefn(x, y) || 0;\n    return toString(x) > toString(y) ? 1 : -1;\n  };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n  sort: function sort(comparefn) {\n    if (comparefn !== undefined) aCallable(comparefn);\n\n    var array = toObject(this);\n\n    if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);\n\n    var items = [];\n    var arrayLength = lengthOfArrayLike(array);\n    var itemsLength, index;\n\n    for (index = 0; index < arrayLength; index++) {\n      if (index in array) push(items, array[index]);\n    }\n\n    internalSort(items, getSortCompare(comparefn));\n\n    itemsLength = lengthOfArrayLike(items);\n    index = 0;\n\n    while (index < itemsLength) array[index] = items[index++];\n    while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n    return array;\n  }\n});\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppPager.vue?vue&type=style&index=0&id=24125f5d&prod&scoped=true&lang=scss\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"form-field\"},[_c('div',{staticClass:\"form-field__control\"},[_c('label',{staticClass:\"form-field__label\",attrs:{\"for\":_vm.id}},[_vm._v(_vm._s(_vm.label)),(_vm.isRequired)?_c('span',{staticClass:\"text-danger font-weight-bold\"},[_vm._v(\"*\")]):_vm._e()]),(_vm.type == _vm.FLOATING_FIELD_TEXTAREA)?_c('textarea',{staticClass:\"form-field__textarea\",attrs:{\"id\":_vm.id,\"name\":_vm.id,\"required\":_vm.isRequired},domProps:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event.target.value)}}}):_c('input',{staticClass:\"form-field__input\",attrs:{\"id\":_vm.id,\"name\":_vm.id,\"type\":_vm.type,\"required\":_vm.isRequired},domProps:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event.target.value)}}})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <div class=\"form-field\">\r\n    <div class=\"form-field__control\">\r\n      <label :for=\"id\" class=\"form-field__label\">{{ label }}<span v-if=\"isRequired\" class=\"text-danger font-weight-bold\">*</span></label>\r\n      <textarea v-if=\"type == FLOATING_FIELD_TEXTAREA\" :id=\"id\" :name=\"id\" class=\"form-field__textarea\" v-bind:value=\"value\" v-on:input=\"$emit('input', $event.target.value)\" v-bind:required=\"isRequired\"></textarea>\r\n      <input v-else :id=\"id\" :name=\"id\" v-bind:type=\"type\" class=\"form-field__input\" v-bind:value=\"value\" v-on:input=\"$emit('input', $event.target.value)\" v-bind:required=\"isRequired\" />\r\n    </div>\r\n  </div>\r\n</template>\r\n\r\n<style scoped lang=\"scss\">\r\n  $primary-color: #0066b2;\r\n  $animation-duration: 0.4s;\r\n\r\n  @mixin label-active() {\r\n    font-size: 0.75rem;\r\n    transform: translateY(-14px);\r\n  }\r\n\r\n  .form-field {\r\n    display: block;\r\n    margin-bottom: 16px;\r\n    &--is-active\r\n\r\n  {\r\n    .form-field__control\r\n\r\n  {\r\n    &::after\r\n\r\n  {\r\n    border-bottom: 2px solid $primary-color;\r\n    transform: scaleX(150);\r\n  }\r\n\r\n  }\r\n\r\n  .form-field__label {\r\n    color: #0066b2;\r\n    @include label-active();\r\n  }\r\n\r\n  }\r\n\r\n  &--is-filled {\r\n    .form-field__label\r\n\r\n  {\r\n    @include label-active();\r\n  }\r\n\r\n  }\r\n  }\r\n\r\n  .form-field__label {\r\n    display: block;\r\n    font-size: 1.0rem;\r\n    font-weight: normal;\r\n    left: 0;\r\n    margin: 0;\r\n    padding: 18px 12px 0;\r\n    position: absolute;\r\n    top: 0;\r\n    transition: all $animation-duration;\r\n    width: 100%;\r\n    text-align: left;\r\n  }\r\n\r\n  .form-field__control {\r\n    background: rgba(238, 238, 238, 0.3);\r\n    /*border-radius: 8px 8px 0 0;*/\r\n    overflow: hidden;\r\n    position: relative;\r\n    width: 100%;\r\n    &::after\r\n\r\n  {\r\n    border-bottom: 2px solid $primary-color;\r\n    bottom: 0;\r\n    content: \"\";\r\n    display: block;\r\n    left: 0;\r\n    margin: 0 auto;\r\n    position: absolute;\r\n    right: 0;\r\n    transform: scaleX(0);\r\n    transition: all $animation-duration;\r\n    width: 1%;\r\n  }\r\n\r\n  }\r\n\r\n  .form-field__input,\r\n  .form-field__textarea {\r\n    appearance: none;\r\n    background: transparent;\r\n    border: 0;\r\n    border-bottom: 1px solid #999;\r\n    color: #333;\r\n    display: block;\r\n    font-size: 1.2rem;\r\n    margin-top: 24px;\r\n    outline: 0;\r\n    padding: 0 12px 10px 12px;\r\n    width: 100%;\r\n  }\r\n\r\n  .form-field__textarea {\r\n    height: 150px;\r\n  }\r\n</style>\r\n\r\n<script>\r\nimport { FLOATING_FIELD_TEXTINPUT, FLOATING_FIELD_TEXTAREA } from '@/utils/constants'\r\n\r\nexport default {\r\n  name: 'floating-field',\r\n  props: {\r\n    id: {\r\n      type: String,\r\n      required: true\r\n    },\r\n    type: {\r\n      type: String,\r\n      required: false,\r\n      default: FLOATING_FIELD_TEXTINPUT\r\n    },\r\n    label: {\r\n      type: String,\r\n      required: true\r\n    },\r\n    value: {\r\n      type: String,\r\n      required: true\r\n    },\r\n    isRequired: {\r\n      type: Boolean,\r\n      required: false,\r\n      default: false\r\n    }\r\n  },\r\n  inject: ['eventBus'],\r\n  methods: {\r\n    close () {\r\n      // this.eventBus.$emit(CLOSE_MODAL)\r\n    },\r\n    staticClose () {\r\n      if (!this.static) {\r\n        this.close()\r\n      }\r\n    }\r\n  },\r\n  created () {\r\n    this.FLOATING_FIELD_TEXTINPUT = FLOATING_FIELD_TEXTINPUT\r\n    this.FLOATING_FIELD_TEXTAREA = FLOATING_FIELD_TEXTAREA\r\n  },\r\n  mounted: function () {\r\n    const setActive = (el, active) => {\r\n      const formField = el.parentNode.parentNode\r\n      if (active) {\r\n        formField.classList.add('form-field--is-active')\r\n      } else {\r\n        formField.classList.remove('form-field--is-active')\r\n        el.value === ''\r\n          ? formField.classList.remove('form-field--is-filled')\r\n          : formField.classList.add('form-field--is-filled')\r\n      }\r\n    }\r\n\r\n    [].forEach.call(\r\n      document.querySelectorAll('.form-field__input, .form-field__textarea'),\r\n      (el) => {\r\n        el.onblur = () => {\r\n          setActive(el, false)\r\n        }\r\n        el.onfocus = () => {\r\n          setActive(el, true)\r\n        }\r\n      }\r\n    )\r\n  }\r\n}\r\n</script>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FloatingField.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FloatingField.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FloatingField.vue?vue&type=template&id=67d25b86&scoped=true\"\nimport script from \"./FloatingField.vue?vue&type=script&lang=js\"\nexport * from \"./FloatingField.vue?vue&type=script&lang=js\"\nimport style0 from \"./FloatingField.vue?vue&type=style&index=0&id=67d25b86&prod&scoped=true&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  \"67d25b86\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',{staticClass:\"pageination\"},[_c('li',{staticClass:\"prev\",class:{ noPointer: _vm.currentPage === 1 },on:{\"click\":_vm.goToPrevious}},[_vm._v(\"Previous\")]),_c('li',{class:{ active: _vm.currentPage == 1 },on:{\"click\":function($event){return _vm.paginate(1)}}},[_vm._v(\"1\")]),(_vm.hasLeftEllipses)?_c('li',{staticClass:\"noPointer\"},[_vm._v(\"...\")]):_vm._e(),_vm._l((_vm.pages),function(page){return (_vm.numberOfPages != 1)?_c('li',{key:page,class:{ active: _vm.currentPage == page },on:{\"click\":function($event){return _vm.paginate(page)}}},[_vm._v(_vm._s(page))]):_vm._e()}),(_vm.hasRightEllipses)?_c('li',{staticClass:\"noPointer\"},[_vm._v(\"...\")]):_vm._e(),(_vm.numberOfPages != 1)?_c('li',{class:{ active: _vm.currentPage == _vm.numberOfPages },on:{\"click\":function($event){return _vm.paginate(_vm.numberOfPages)}}},[_vm._v(_vm._s(_vm.numberOfPages))]):_vm._e(),_c('li',{staticClass:\"next\",class:{ noPointer: _vm.currentPage === _vm.numberOfPages },on:{\"click\":_vm.goToNext}},[_vm._v(\"Next\")])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <ul class=\"pageination\">\r\n    <li class=\"prev\" v-bind:class=\"{ noPointer: currentPage === 1 }\" @click=\"goToPrevious\">Previous</li>\r\n    <li :class=\"{ active: currentPage == 1 }\" @click=\"paginate(1)\">1</li>\r\n    <li v-if=\"hasLeftEllipses\" class=\"noPointer\">...</li>\r\n    <li v-if=\"numberOfPages != 1\" v-for=\"page in pages\" :class=\"{ active: currentPage == page }\" @click=\"paginate(page)\" :key=\"page\">{{ page }}</li>\r\n    <li v-if=\"hasRightEllipses\" class=\"noPointer\">...</li>\r\n    <li v-if=\"numberOfPages != 1\" :class=\"{ active: currentPage == numberOfPages }\" @click=\"paginate(numberOfPages)\">{{ numberOfPages }}</li>\r\n    <li class=\"next\" v-bind:class=\"{ noPointer: currentPage === numberOfPages }\" @click=\"goToNext\">Next</li>\r\n  </ul>\r\n</template>\r\n\r\n<style scoped lang=\"scss\">\r\n  ul.pageination {\r\n    list-style: none;\r\n  }\r\n\r\n    ul.pageination li {\r\n      display: inline;\r\n      padding: 8px 16px;\r\n      font-weight: bold;\r\n      cursor: pointer;\r\n    }\r\n\r\n      ul.pageination li.noPointer, ul.pageination li.active {\r\n        cursor: auto;\r\n      }\r\n\r\n      ul.pageination li.active {\r\n        background-color: #0b2d71;\r\n        color: white;\r\n        border-radius: 5px;\r\n      }\r\n\r\n  ul.pagination li:hover:not(.active) {\r\n    background-color: #ddd;\r\n    border-radius: 5px;\r\n  }\r\n</style>\r\n\r\n<script>\r\nexport default {\r\n  name: 'app-pager',\r\n  props: {\r\n    totalNumberOfItems: {\r\n      type: Number,\r\n      required: true,\r\n      default: 0\r\n    },\r\n    numberOfItemsPerPage: {\r\n      type: Number,\r\n      required: true,\r\n      default: 0\r\n    },\r\n    numberOfPagers: {\r\n      type: Number,\r\n      required: false,\r\n      default: 7\r\n    },\r\n    currentPage: {\r\n      type: Number,\r\n      required: true\r\n    }\r\n  },\r\n  data: () => ({\r\n    hasLeftEllipses: false,\r\n    hasRightEllipses: false\r\n  }),\r\n  computed: {\r\n    numberOfPages () {\r\n      return [-1, 0].includes(this.numberOfItemsPerPage) ? 1 : Math.ceil(this.totalNumberOfItems / this.numberOfItemsPerPage)\r\n    },\r\n    totalNumberOfPagers () {\r\n      return this.numberOfPagers / 2 == 0 ? this.numberOfPagers - 1 : this.numberOfPagers\r\n    },\r\n    pages () {\r\n      if (this.numberOfPages <= this.totalNumberOfPagers || this.totalNumberOfPagers < 1) {\r\n        return Array.from({ length: this.numberOfPages }, (v, k) => k + 1).filter((value) => {\r\n          return value != 1 && value != this.numberOfPages\r\n        })\r\n      } else {\r\n        let pagesArray = []\r\n        let mid = Math.ceil(this.totalNumberOfPagers / 2)\r\n        this.hasLeftEllipses = this.currentPage >= (mid + 1)\r\n        this.hasRightEllipses = this.currentPage <= (this.numberOfPages - mid)\r\n\r\n        if (this.hasLeftEllipses && this.hasRightEllipses) {\r\n          pagesArray.push(this.currentPage)\r\n          let start = 1\r\n          while (pagesArray.length < this.totalNumberOfPagers - 4) {\r\n            pagesArray.push(this.currentPage - start)\r\n            pagesArray.push(this.currentPage + start)\r\n            start++\r\n          }\r\n        } else if (this.hasLeftEllipses) {\r\n          let start = 1\r\n          while (pagesArray.length < this.totalNumberOfPagers - 3) {\r\n            pagesArray.push(this.numberOfPages - start++)\r\n          }\r\n        } else {\r\n          let start = 2\r\n          while (pagesArray.length < this.totalNumberOfPagers - 3) {\r\n            pagesArray.push(start++)\r\n          }\r\n        }\r\n        return pagesArray.sort()\r\n      }\r\n    }\r\n  },\r\n  methods: {\r\n    paginate (to) {\r\n      if (this.currentPage === to) {\r\n        return\r\n      }\r\n      this.$emit('paginate', to)\r\n    },\r\n    goToPrevious () {\r\n      if (this.currentPage === 1) {\r\n        return\r\n      }\r\n      this.paginate(this.currentPage - 1)\r\n    },\r\n    goToNext () {\r\n      if (this.currentPage === this.numberOfPages) {\r\n        return\r\n      }\r\n      this.paginate(this.currentPage + 1)\r\n    }\r\n  }\r\n}\r\n</script>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppPager.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppPager.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AppPager.vue?vue&type=template&id=24125f5d&scoped=true\"\nimport script from \"./AppPager.vue?vue&type=script&lang=js\"\nexport * from \"./AppPager.vue?vue&type=script&lang=js\"\nimport style0 from \"./AppPager.vue?vue&type=style&index=0&id=24125f5d&prod&scoped=true&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  \"24125f5d\",\n  null\n  \n)\n\nexport default component.exports","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n  return [\n    // `String.prototype.search` method\n    // https://tc39.es/ecma262/#sec-string.prototype.search\n    function search(regexp) {\n      var O = requireObjectCoercible(this);\n      var searcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, SEARCH);\n      return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n    },\n    // `RegExp.prototype[@@search]` method\n    // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n    function (string) {\n      var rx = anObject(this);\n      var S = toString(string);\n      var res = maybeCallNative(nativeSearch, rx, S);\n\n      if (res.done) return res.value;\n\n      var previousLastIndex = rx.lastIndex;\n      if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n      var result = regExpExec(rx, S);\n      if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n      return result === null ? -1 : result.index;\n    }\n  ];\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"roleView\"}},[_c('transition',{attrs:{\"name\":\"slide-fade\"}},[(_vm.alert.message)?_c('app-alert',{attrs:{\"type\":_vm.alert.type,\"message\":_vm.alert.message},on:{\"alertclose\":_vm.closeMessage}}):_vm._e()],1),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('h4',[_vm._v(\"manage application roles\")]),_c('app-modal',{attrs:{\"show\":_vm.showAddEditModal,\"title\":_vm.role.id ? 'edit role': 'add new role'},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('button',{staticClass:\"btn btn-danger d-inline mr-2\",attrs:{\"disabled\":_vm.isSavingRole},on:{\"click\":function($event){$event.preventDefault();return _vm.cancelAddOrEdit.apply(null, arguments)}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"btn btn-primary d-inline mr-2\",class:{ spin: _vm.isSavingRole },attrs:{\"disabled\":_vm.isSavingRole},on:{\"click\":function($event){$event.preventDefault();return _vm.saveRole.apply(null, arguments)}}},[_vm._v(\"Submit\"),_c('span',{staticClass:\"spinner\"})])]},proxy:true}])},[_c('ul',{staticClass:\"error\"},_vm._l((_vm.errors),function(error,index){return _c('li',{key:index},[_vm._v(\" \"+_vm._s(error.message)+\" \")])}),0),_c('form',{attrs:{\"id\":\"roleForm\"}},[_c('fieldset',{attrs:{\"disabled\":_vm.isSavingRole}},[_c('floating-field',{attrs:{\"type\":\"email\",\"id\":\"roleName\",\"label\":\"name\",\"isRequired\":\"\"},model:{value:(_vm.role.name),callback:function ($$v) {_vm.$set(_vm.role, \"name\", $$v)},expression:\"role.name\"}}),_c('div',{staticClass:\"form-group row mt-4\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.role.status),expression:\"role.status\"}],staticClass:\"form-control col-md-1 my-auto\",staticStyle:{\"margin-left\":\"-15px\"},attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.role.status)?_vm._i(_vm.role.status,null)>-1:(_vm.role.status)},on:{\"change\":function($event){var $$a=_vm.role.status,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.role, \"status\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.role, \"status\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.role, \"status\", $$c)}}}}),_c('label',{staticClass:\"col-md-4 mr-0 mt-2\"},[_vm._v(_vm._s(_vm._f(\"toStatusDescription\")(_vm.role.status)))])]),_c('div',{staticClass:\"mt-4\"},[_c('h5',{staticClass:\"text-left\"},[_vm._v(\"rights\")]),_c('div',{staticClass:\"row\"},_vm._l((_vm.roleRightsList),function(right,index){return _c('div',{key:index,staticClass:\"row col-md-4 mr-0\"},[_c('label',{staticClass:\"col-md-10 mr-0 mt-2 text-left\"},[_vm._v(_vm._s(right.description))]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(right.isSelected),expression:\"right.isSelected\"}],staticClass:\"form-control col-md-2 my-auto\",staticStyle:{\"margin-left\":\"-15px\"},attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(right.isSelected)?_vm._i(right.isSelected,null)>-1:(right.isSelected)},on:{\"change\":function($event){var $$a=right.isSelected,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(right, \"isSelected\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(right, \"isSelected\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(right, \"isSelected\", $$c)}}}})])}),0)])],1)])]),_c('app-modal',{attrs:{\"show\":_vm.showDeleteModal,\"title\":\"remove role\"},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('button',{staticClass:\"btn btn-danger d-inline mr-2\",attrs:{\"disabled\":_vm.isDeletingRole},on:{\"click\":function($event){$event.preventDefault();return _vm.cancelDelete.apply(null, arguments)}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"btn btn-primary d-inline mr-2\",class:{ spin: _vm.isDeletingRole },attrs:{\"disabled\":_vm.isDeletingRole},on:{\"click\":function($event){$event.preventDefault();return _vm.deleteRole.apply(null, arguments)}}},[_vm._v(\"Delete\"),_c('span',{staticClass:\"spinner\"})])]},proxy:true}])},[_c('form',[_c('fieldset',{attrs:{\"disabled\":_vm.isDeletingRole}},[_vm._v(\" Are you sure you want to remove this role? \")])])]),_c('div',{staticClass:\"d-flex justify-content-end clearfix mb-4\"},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.addRole}},[_c('i',{staticClass:\"icon-expand-plus\",attrs:{\"title\":\"add new role\"}})])]),_vm._m(0),_c('RoleList')],1)])],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"spinner-border text-warning\",attrs:{\"role\":\"status\"}},[_c('span',{staticClass:\"sr-only\"},[_vm._v(\"Loading...\")])])\n}]\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('data-table',{attrs:{\"id\":_vm.id,\"headers\":_vm.headers,\"items\":_vm.itemsToDisplay},scopedSlots:_vm._u([{key:\"item.status\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm._f(\"toStatusDescription\")(item.status))+\" \")]}},{key:\"item.rights\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm._f(\"toRoleRightsDescription\")(item.rights))+\" \")]}},{key:\"item.actions\",fn:function({ item }){return [_c('span',{staticClass:\"action-btn mr-2 font-weight-bold h5\",on:{\"click\":function($event){return _vm.editRole(item)}}},[_vm._v(\"✎\")]),_c('span',{staticClass:\"action-btn font-weight-bold h5\",on:{\"click\":function($event){return _vm.removeRole(item)}}},[_vm._v(\"✖\")])]}}])}),_c('app-pager',{attrs:{\"totalNumberOfItems\":_vm.numberOfItems,\"numberOfItemsPerPage\":_vm.numberOfItemsPerPage,\"numberOfPagers\":_vm.numberOfPagers,\"currentPage\":_vm.currentPage},on:{\"paginate\":_vm.goToPage}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <div>\r\n    <data-table :id='id' :headers='headers' :items='itemsToDisplay'>\r\n      <template v-slot:item.status=\"{ item }\">\r\n        {{ item.status | toStatusDescription }}\r\n      </template>\r\n      <template v-slot:item.rights=\"{ item }\">\r\n        {{ item.rights | toRoleRightsDescription }}\r\n      </template>\r\n      <template v-slot:item.actions=\"{ item }\">\r\n        <span class=\"action-btn mr-2 font-weight-bold h5\" @click=\"editRole(item)\">&#x270E;</span>\r\n        <span class=\"action-btn font-weight-bold h5\" @click=\"removeRole(item)\">&#x2716;</span>\r\n      </template>\r\n    </data-table>\r\n    <app-pager :totalNumberOfItems=\"numberOfItems\" :numberOfItemsPerPage=numberOfItemsPerPage :numberOfPagers=\"numberOfPagers\" :currentPage=\"currentPage\" @paginate=\"goToPage\" />\r\n  </div>\r\n</template>\r\n\r\n<style scoped lang=\"scss\">\r\n  .action-btn {\r\n    cursor: pointer\r\n  }\r\n</style>\r\n\r\n<script>\r\nimport { mapState } from 'vuex'\r\n\r\nimport { EDIT_ROLE_EVENT, REMOVE_ROLE_EVENT } from '@/utils/constants'\r\nimport { toStatusDescription, toRoleRightsDescription } from '@/filters/enum'\r\n\r\nimport DataTable from '@/components/ui/DataTable'\r\nimport AppPager from '@/components/ui/AppPager'\r\n\r\nexport default {\r\n  name: 'RoleList',\r\n  components: {\r\n    DataTable,\r\n    AppPager\r\n  },\r\n  inject: ['eventBus'],\r\n  props: {\r\n    id: {\r\n      type: String,\r\n      required: false,\r\n      default: 'roleList'\r\n    }\r\n  },\r\n  data: () => ({\r\n    headers: [\r\n      {\r\n        name: 'name',\r\n        title: 'role name'\r\n      },\r\n      {\r\n        name: 'rights',\r\n        title: 'role rights'\r\n      },\r\n      {\r\n        name: 'status',\r\n        title: 'status'\r\n      },\r\n      {\r\n        name: 'actions',\r\n        title: ''\r\n      }\r\n    ],\r\n    numberOfItemsPerPage: 2,\r\n    numberOfPagers: 7,\r\n    currentPage: 1\r\n  }),\r\n  computed: {\r\n    ...mapState({\r\n      roles: state => state.roleModule.roles\r\n    }),\r\n    numberOfItems () {\r\n      return this.roles.length\r\n    },\r\n    itemsToDisplay () {\r\n      return this.roles.slice((this.currentPage - 1) * this.numberOfItemsPerPage, this.numberOfItemsPerPage * this.currentPage)\r\n    }\r\n  },\r\n  watch: {\r\n    itemsToDisplay (value) {\r\n      if (!value.length) {\r\n        this.currentPage = 1\r\n      }\r\n    }\r\n  },\r\n  filters: {\r\n    toStatusDescription,\r\n    toRoleRightsDescription\r\n  },\r\n  methods: {\r\n    editRole (item) {\r\n      this.eventBus.$emit(EDIT_ROLE_EVENT, item)\r\n    },\r\n    removeRole (item) {\r\n      this.eventBus.$emit(REMOVE_ROLE_EVENT, item)\r\n    },\r\n    goToPage (page) {\r\n      this.currentPage = page\r\n    }\r\n  }\r\n}\r\n</script>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoleList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoleList.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RoleList.vue?vue&type=template&id=02615670&scoped=true\"\nimport script from \"./RoleList.vue?vue&type=script&lang=js\"\nexport * from \"./RoleList.vue?vue&type=script&lang=js\"\nimport style0 from \"./RoleList.vue?vue&type=style&index=0&id=02615670&prod&scoped=true&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  \"02615670\",\n  null\n  \n)\n\nexport default component.exports","<template>\r\n  <div id=\"roleView\">\r\n    <transition name=\"slide-fade\">\r\n      <app-alert v-if=\"alert.message\" :type=\"alert.type\" :message=\"alert.message\" @alertclose=\"closeMessage\" />\r\n    </transition>\r\n    <div class=\"row\">\r\n      <div class=\"col\">\r\n        <h4>manage application roles</h4>\r\n        <app-modal :show=\"showAddEditModal\" :title=\"role.id ? 'edit role': 'add new role'\">\r\n          <ul class=\"error\">\r\n            <li v-for=\"(error, index) in errors\" :key=\"index\">\r\n              {{ error.message }}\r\n            </li>\r\n          </ul>\r\n          <form id=\"roleForm\">\r\n            <fieldset v-bind:disabled=\"isSavingRole\">\r\n              <floating-field type=\"email\" id=\"roleName\" label=\"name\" v-model=\"role.name\" isRequired></floating-field>\r\n              <div class=\"form-group row mt-4\">\r\n                <input type=\"checkbox\" class=\"form-control col-md-1 my-auto\" style=\"margin-left:-15px\" v-model=\"role.status\" />\r\n                <label class=\"col-md-4 mr-0 mt-2\">{{ role.status | toStatusDescription }}</label>\r\n              </div>\r\n              <div class=\"mt-4\">\r\n                <h5 class=\"text-left\">rights</h5>\r\n                <div class=\"row\">\r\n                  <div class=\"row col-md-4 mr-0\" v-for=\"(right, index) of roleRightsList\" :key=\"index\">\r\n                    <label class=\"col-md-10 mr-0 mt-2 text-left\">{{ right.description }}</label>\r\n                    <input type=\"checkbox\" class=\"form-control col-md-2 my-auto\" style=\"margin-left:-15px\" v-model=\"right.isSelected\" />\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            </fieldset>\r\n          </form>\r\n          <template v-slot:footer>\r\n            <button class=\"btn btn-danger d-inline mr-2\" @click.prevent=\"cancelAddOrEdit\" v-bind:disabled=\"isSavingRole\">Cancel</button>\r\n            <button class=\"btn btn-primary d-inline mr-2\" v-bind:class=\"{ spin: isSavingRole }\" @click.prevent=\"saveRole\" v-bind:disabled=\"isSavingRole\">Submit<span class=\"spinner\"></span></button>\r\n          </template>\r\n        </app-modal>\r\n        <app-modal :show=\"showDeleteModal\" title=\"remove role\">\r\n          <form>\r\n            <fieldset v-bind:disabled=\"isDeletingRole\">\r\n              Are you sure you want to remove this role?\r\n            </fieldset>\r\n          </form>\r\n          <template v-slot:footer>\r\n            <button class=\"btn btn-danger d-inline mr-2\" @click.prevent=\"cancelDelete\" v-bind:disabled=\"isDeletingRole\">Cancel</button>\r\n            <button class=\"btn btn-primary d-inline mr-2\" v-bind:class=\"{ spin: isDeletingRole }\" @click.prevent=\"deleteRole\" v-bind:disabled=\"isDeletingRole\">Delete<span class=\"spinner\"></span></button>\r\n          </template>\r\n        </app-modal>\r\n        <div class=\"d-flex justify-content-end clearfix mb-4\">\r\n          <button type=\"button\" class=\"btn btn-primary \" @click=\"addRole\"><i class=\"icon-expand-plus\" title=\"add new role\"></i></button>\r\n        </div>\r\n        <div class=\"spinner-border text-warning\" role=\"status\">\r\n          <span class=\"sr-only\">Loading...</span>\r\n        </div>\r\n        <RoleList />\r\n      </div>\r\n    </div>\r\n  </div>\r\n</template>\r\n\r\n<style scoped lang=\"scss\">\r\n\r\n  .slide-fade-enter-active {\r\n    transition: all .5s ease;\r\n  }\r\n\r\n  .slide-fade-leave-active {\r\n    transition: all .5s cubic-bezier(1.0, 0.5, 0.8, 1.0);\r\n  }\r\n\r\n  .slide-fade-enter, .slide-fade-leave-to\r\n  /* .slide-fade-leave-active below version 2.1.8 */ {\r\n    transform: translateX(10px);\r\n    opacity: 0;\r\n  }\r\n\r\n  .error {\r\n    text-align: left;\r\n    color: #ac0c0c;\r\n    list-style: none;\r\n  }\r\n\r\n  fieldset {\r\n    border: 0;\r\n  }\r\n\r\n  button {\r\n    position: relative;\r\n    transition: all 1s;\r\n  }\r\n\r\n  .spin {\r\n    padding-left: 2.5em;\r\n    display: block;\r\n  }\r\n\r\n    .spin .spinner {\r\n      left: -.6em;\r\n      top: .4em;\r\n      width: 2.5em;\r\n      display: block;\r\n      position: absolute;\r\n    }\r\n\r\n  /* spinner animation */\r\n  @keyframes spinner {\r\n    0% {\r\n      transform: rotate(0deg);\r\n    }\r\n\r\n    100% {\r\n      transform: rotate(360deg);\r\n    }\r\n  }\r\n\r\n  /* The actual spinner element is a pseudo-element */\r\n  .spin .spinner::before {\r\n    content: \"\";\r\n    width: 1.5em; /* Size of the spinner */\r\n    height: 1.5em; /* Change as desired */\r\n    position: absolute;\r\n    top: 50%;\r\n    left: 50%;\r\n    border-radius: 50%;\r\n    border: solid .35em #000; /* Thickness/color of spinner track */\r\n    border-bottom-color: #555; /* Color of variant spinner piece */\r\n    animation: .8s linear infinite spinner; /* speed of spinner */\r\n    transform: translate(-50%, -50%);\r\n    will-change: transform;\r\n  }\r\n\r\n  /* optional, but it will affect the size if changed */\r\n  *, *::before, *::after {\r\n    box-sizing: border-box;\r\n  }\r\n</style>\r\n\r\n<script>\r\nimport store from '@/store'\r\nimport { toStatusDescription, toRoleRightsDescription } from '@/filters/enum'\r\n\r\nimport { FETCH_ROLES, CREATE_ROLE, UPDATE_ROLE, DELETE_ROLE } from '@/store/action-type'\r\nimport { CLOSE_MODAL_EVENT, EDIT_ROLE_EVENT, REMOVE_ROLE_EVENT } from '@/utils/constants'\r\nimport Enums from '@/utils/enums'\r\n\r\nimport AppAlert from '@/components/ui/AppAlert'\r\nimport AppModal from '@/components/ui/AppModal'\r\nimport FloatingField from '@/components/ui/FloatingField'\r\nimport RoleList from '@/components/role/RoleList'\r\n\r\nimport AlertMixin from '@/mixins/AlertMixin'\r\nimport ErrorMixin from '@/mixins/ErrorMixin'\r\n\r\nexport default {\r\n  name: 'RoleView',\r\n  components: {\r\n    RoleList,\r\n    AppAlert,\r\n    AppModal,\r\n    FloatingField\r\n  },\r\n  mixins: [AlertMixin, ErrorMixin],\r\n  inject: ['eventBus'],\r\n  provide () {\r\n    return {\r\n      eventBus: this.eventBus\r\n    }\r\n  },\r\n  data: () => ({\r\n    role: {\r\n      id: null,\r\n      name: '',\r\n      rights: 0,\r\n      status: Enums.Status.Active.value\r\n    },\r\n    roleRightsList: [],\r\n    showAddEditModal: false,\r\n    showDeleteModal: false,\r\n    isSavingRole: false,\r\n    isDeletingRole: false\r\n  }),\r\n  computed: {\r\n    totalSelectedRoleRights () {\r\n      let totalRights = 0\r\n      for (let right in this.roleRightsList) {\r\n        if (this.roleRightsList[right].isSelected) {\r\n          totalRights = totalRights | this.roleRightsList[right].value\r\n        }\r\n      }\r\n      return totalRights\r\n    }\r\n  },\r\n  watch: {\r\n    showAddEditModal (value) {\r\n      if (value) {\r\n        this.$nextTick(() => {\r\n          document.getElementById('roleName').focus()\r\n        })\r\n      }\r\n    }\r\n  },\r\n  methods: {\r\n    addRole () {\r\n      var righsList = Object.assign({}, Enums.RoleRights)\r\n      for (let right in righsList) {\r\n        righsList[right].isSelected = false\r\n      }\r\n      this.roleRightsList = righsList\r\n      this.role.id = null\r\n      this.role.name = ''\r\n      this.role.rights = 0\r\n      this.role.status = Enums.Status.Active.value\r\n      this.showAddEditModal = true\r\n    },\r\n    editRole (role) {\r\n      var righsList = Object.assign({}, Enums.RoleRights)\r\n      for (let right in righsList) {\r\n        righsList[right].isSelected = role.rights & righsList[right].value\r\n      }\r\n      this.roleRightsList = righsList\r\n      this.role.id = role.id\r\n      this.role.name = role.name\r\n      this.role.rights = role.rights\r\n      this.role.status = role.status\r\n      this.showAddEditModal = true\r\n    },\r\n    saveRole () {\r\n      if (this.validateAddOrEditForm()) {\r\n        const self = this\r\n        self.isSavingRole = true\r\n        self.closeMessage()\r\n        self.role.rights = self.totalSelectedRoleRights\r\n        const actionType = self.role.id ? UPDATE_ROLE : CREATE_ROLE\r\n        store.dispatch(actionType, self.role).then(() => {\r\n          self.showSuccessMessage(`Role ${actionType === UPDATE_ROLE ? 'updated' : 'created'} successfully`)\r\n          self.showAddEditModal = false\r\n        }).catch((error) => {\r\n          self.handleError(error)\r\n        }).finally(() => {\r\n          self.isSavingRole = false\r\n        })\r\n      }\r\n    },\r\n    deleteRole () {\r\n      const self = this\r\n      self.isDeletingRole = true\r\n      self.closeMessage()\r\n      store.dispatch(DELETE_ROLE, self.role).then(() => {\r\n        self.showSuccessMessage(`Role removed successfully`)\r\n        self.showDeleteModal = false\r\n      }).catch((error) => {\r\n        self.handleError(error)\r\n      }).finally(() => {\r\n        self.isDeletingRole = false\r\n      })\r\n    },\r\n    cancelAddOrEdit () {\r\n      this.showAddEditModal = false\r\n    },\r\n    cancelDelete () {\r\n      this.showDeleteModal = false\r\n    },\r\n    validateAddOrEditForm () {\r\n      this.errors.splice(0, this.errors.length)\r\n      let form = document.querySelector('#roleForm')\r\n      form.reportValidity()\r\n      let errors = []\r\n      if (!this.role.name) {\r\n        errors.push({ message: 'role name is required' })\r\n      }\r\n      this.errors = [...errors]\r\n      return !errors.length\r\n    }\r\n  },\r\n  beforeRouteEnter (to, from, next) {\r\n    store.dispatch(FETCH_ROLES).then(() => {\r\n      next()\r\n    }).catch((error) => {\r\n      next(vm => {\r\n        vm.showErrorMessage(error)\r\n      })\r\n    })\r\n  },\r\n  filters: {\r\n    toStatusDescription,\r\n    toRoleRightsDescription\r\n  },\r\n  mounted () {\r\n    const self = this\r\n    self.eventBus.$on(EDIT_ROLE_EVENT, self.editRole)\r\n    self.eventBus.$on(REMOVE_ROLE_EVENT, (role) => {\r\n      this.roleRightsList = []\r\n      this.role.id = role.id\r\n      this.role.name = role.name\r\n      this.role.rights = role.rights\r\n      self.showDeleteModal = true\r\n    })\r\n    self.eventBus.$on(CLOSE_MODAL_EVENT, () => {\r\n      self.showAddEditModal = false\r\n      self.showDeleteModal = false\r\n    })\r\n  }\r\n}\r\n</script>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=a73158d6&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=a73158d6&prod&scoped=true&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  \"a73158d6\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"alert\",class:{'alert-danger': _vm.type == 'error', 'alert-success' : _vm.type == 'success'}},[_vm._v(\" \"+_vm._s(_vm.message)+\" \"),_c('button',{staticClass:\"close\",attrs:{\"type\":\"button\",\"aria-label\":\"Close\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClose.apply(null, arguments)}}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <!--<div id=\"alert-shim-wrap\" v-if=\"message\">\r\n    <div id=\"alert-shim\" :class=\"{ type }\">\r\n      <p>\r\n        {{ message }}\r\n      </p>\r\n    </div>\r\n  </div>-->\r\n\r\n  <div\r\n    class=\"alert\"\r\n    v-bind:class=\"{'alert-danger': type == 'error', 'alert-success' : type == 'success'}\"\r\n  >\r\n    {{ message }}\r\n    <button type=\"button\" class=\"close\" aria-label=\"Close\" @click.stop=\"onClose\">\r\n      <span aria-hidden=\"true\">&times;</span>\r\n    </button>\r\n  </div>\r\n</template>\r\n\r\n<style scoped lang=\"scss\">\r\n.alert {\r\n  position: fixed;\r\n  z-index: 9999;\r\n  top: 5px;\r\n  min-width: 50%;\r\n  /*max-width: 56%;*/\r\n}\r\n\r\n/*#alert-shim-wrap #alert-shim.error {\r\n    background: #97002e\r\n  }\r\n\r\n  #alert-shim-wrap #alert-shim.success {\r\n    background: #1a2c11\r\n  }*/\r\n</style>\r\n\r\n<script>\r\nimport { ALERT_TYPE_ERROR } from '@/utils/constants'\r\n\r\nexport default {\r\n  name: 'app-alert',\r\n  props: {\r\n    type: {\r\n      type: String,\r\n      required: false,\r\n      default: ALERT_TYPE_ERROR\r\n    },\r\n    message: {\r\n      type: String,\r\n      required: true\r\n    }\r\n  },\r\n  methods: {\r\n    onClose () {\r\n      this.$emit('alertclose')\r\n    }\r\n  }\r\n}\r\n</script>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppAlert.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppAlert.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AppAlert.vue?vue&type=template&id=05d80fa6&scoped=true\"\nimport script from \"./AppAlert.vue?vue&type=script&lang=js\"\nexport * from \"./AppAlert.vue?vue&type=script&lang=js\"\nimport style0 from \"./AppAlert.vue?vue&type=style&index=0&id=05d80fa6&prod&scoped=true&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  \"05d80fa6\",\n  null\n  \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmployeeAutocomplete.vue?vue&type=style&index=0&id=20f75bb5&prod&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoleList.vue?vue&type=style&index=0&id=02615670&prod&scoped=true&lang=scss\"","var render, staticRenderFns\nimport script from \"./AlertMixin.vue?vue&type=script&lang=js\"\nexport * from \"./AlertMixin.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","<script>\r\nimport { ALERT_TYPE_ERROR, ALERT_TYPE_SUCCESS } from '@/utils/constants'\r\n\r\nexport default {\r\n  data () {\r\n    return {\r\n      alert: {\r\n        message: '',\r\n        type: ALERT_TYPE_ERROR\r\n      }\r\n    }\r\n  },\r\n  methods: {\r\n    showSuccessMessage (message) {\r\n      this.alert.message = message\r\n      this.alert.type = ALERT_TYPE_SUCCESS\r\n    },\r\n    showErrorMessage (errorMessage) {\r\n      console.log(errorMessage)\r\n      this.alert.message = errorMessage\r\n      this.alert.type = ALERT_TYPE_ERROR\r\n    },\r\n    closeMessage () {\r\n      this.alert.message = ''\r\n      this.alert.isActive = false\r\n    }\r\n  }\r\n}\r\n</script>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlertMixin.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlertMixin.vue?vue&type=script&lang=js\"","var render, staticRenderFns\nimport script from \"./ErrorMixin.vue?vue&type=script&lang=js\"\nexport * from \"./ErrorMixin.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","<script>\r\n\r\nimport { ServerValidationError } from '@/utils/errors'\r\n\r\nexport default {\r\n  data () {\r\n    return {\r\n      errors: []\r\n    }\r\n  },\r\n  methods: {\r\n    handleError (error) {\r\n      if (error instanceof ServerValidationError) {\r\n        var data = {}\r\n        this.errors = [...data.errorList]\r\n      }\r\n      this.showErrorMessage(error.message)\r\n    }\r\n  }\r\n}; </script>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorMixin.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorMixin.vue?vue&type=script&lang=js\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"userView\"}},[_c('transition',{attrs:{\"name\":\"slide-fade\"}},[(_vm.alert.message)?_c('app-alert',{attrs:{\"type\":_vm.alert.type,\"message\":_vm.alert.message},on:{\"alertclose\":_vm.closeMessage}}):_vm._e()],1),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('h4',[_vm._v(\"manage application users\")]),_c('app-modal',{attrs:{\"show\":_vm.showAddEditModal,\"title\":_vm.user.isNew ? 'add new user': 'edit user'},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('button',{staticClass:\"btn btn-danger d-inline mr-2\",attrs:{\"disabled\":_vm.isSavingUser},on:{\"click\":function($event){$event.preventDefault();return _vm.cancelAddOrEdit.apply(null, arguments)}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"btn btn-primary d-inline mr-2\",class:{ spin: _vm.isSavingUser },attrs:{\"disabled\":_vm.isSavingUser},on:{\"click\":function($event){$event.preventDefault();return _vm.saveUser.apply(null, arguments)}}},[_vm._v(\" Submit \"),_c('span',{staticClass:\"spinner\"})])]},proxy:true}])},[_c('ul',{staticClass:\"error\"},_vm._l((_vm.errors),function(error){return _c('li',{key:error.message},[_vm._v(_vm._s(error.message))])}),0),_c('form',{attrs:{\"id\":\"userForm\"}},[_c('fieldset',{attrs:{\"disabled\":_vm.isSavingUser}},[(_vm.user.isNew)?_c('employee-autocomplete',{attrs:{\"items\":_vm.searchedEmployees,\"id\":\"emp_search\",\"data\":_vm.user.name,\"isShown\":_vm.showAddEditModal,\"isRequired\":\"\"}}):_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.user.name))]),_c('div',{staticClass:\"form-group row mt-4\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.status),expression:\"user.status\"}],staticClass:\"form-control col-md-2 my-auto\",staticStyle:{\"margin-left\":\"-15px\"},attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.user.status)?_vm._i(_vm.user.status,null)>-1:(_vm.user.status)},on:{\"change\":function($event){var $$a=_vm.user.status,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.user, \"status\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.user, \"status\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.user, \"status\", $$c)}}}}),_c('label',{staticClass:\"col-md-4 mr-0 mt-2\"},[_vm._v(_vm._s(_vm._f(\"toStatusDescription\")(_vm.user.status)))])]),_c('div',{staticClass:\"form-group row mt-4\"},[_c('label',{staticClass:\"col-md-2 mr-0 text-left\"},[_vm._v(\" role \"),_c('span',{staticClass:\"text-danger font-weight-bold\"},[_vm._v(\"*\")])]),_c('div',{staticClass:\"col-md-8 mr-0\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.roleId),expression:\"user.roleId\"}],staticClass:\"form-control\",attrs:{\"id\":\"userRole\",\"name\":\"userRole\",\"required\":\"\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.user, \"roleId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.activeRoles),function(role){return _c('option',{key:role.id,domProps:{\"value\":role.id}},[_vm._v(_vm._s(role.name))])}),0)])])],1)])]),_c('div',{staticClass:\"d-flex justify-content-end clearfix mb-4\"},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.addUser}},[_c('i',{staticClass:\"icon-expand-plus\",attrs:{\"title\":\"add new user\"}})])]),_vm._m(0),_c('user-list')],1)])],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"spinner-border text-warning\",attrs:{\"role\":\"status\"}},[_c('span',{staticClass:\"sr-only\"},[_vm._v(\"Loading...\")])])\n}]\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"autocomplete\"},[_c('floating-field',{attrs:{\"type\":\"text\",\"id\":_vm.id,\"label\":\"name\",\"isRequired\":_vm.isRequired},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}}),(_vm.isOpen || _vm.isLoading)?_c('ul',{staticClass:\"autocomplete-results\"},[(_vm.isLoading)?_c('li',{staticClass:\"loading\"},[_vm._v(\"Loading results...\")]):_vm._e(),_vm._l((_vm.results),function(result,i){return _c('li',{key:i,staticClass:\"autocomplete-result\",on:{\"click\":function($event){return _vm.setResult(result)}}},[_vm._v(\" \"+_vm._s(result.name)+\" \")])})],2):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <div class=\"autocomplete\">\r\n    <!--<input type=\"text\" v-model=\"search\" @input=\"onChange\" />-->\r\n    <floating-field type=\"text\" :id=\"id\" label=\"name\" v-model=\"search\" :isRequired=\"isRequired\"></floating-field>\r\n    <ul class=\"autocomplete-results\" v-if=\"isOpen || isLoading\">\r\n      <li class=\"loading\" v-if=\"isLoading\">Loading results...</li>\r\n      <li v-for=\"(result, i) in results\" :key=\"i\" class=\"autocomplete-result\" @click=\"setResult(result)\">\r\n        {{ result.name }}\r\n      </li>\r\n    </ul>\r\n  </div>\r\n</template>\r\n\r\n<style scoped lang=\"scss\">\r\n  /*.autocomplete {\r\n    position: relative;\r\n    width: 130px;\r\n  }*/\r\n\r\n  .autocomplete-results {\r\n    padding: 0;\r\n    margin: 0;\r\n    border: 1px solid #eeeeee;\r\n    max-height: 120px;\r\n    overflow: auto;\r\n  }\r\n\r\n  .autocomplete-result {\r\n    list-style: none;\r\n    text-align: left;\r\n    padding: 4px 2px;\r\n    cursor: pointer;\r\n  }\r\n\r\n    .autocomplete-result:hover {\r\n      background-color: #0066b2;\r\n      color: white;\r\n    }\r\n</style>\r\n\r\n<script>\r\nimport { debounce } from 'lodash'\r\nimport { EMPLOYEE_SEARCH_STARTED_EVENT, EMPLOYEE_SELECTED_EVENT } from '@/utils/constants'\r\n\r\nimport FloatingField from '@/components/ui/FloatingField'\r\n\r\nexport default {\r\n  name: 'employee-autocomplete',\r\n  inject: ['eventBus'],\r\n  components: {\r\n    FloatingField\r\n  },\r\n  props: {\r\n    id: {\r\n      type: String,\r\n      required: false,\r\n      default: 'emp_search'\r\n    },\r\n    items: {\r\n      type: Array,\r\n      required: false,\r\n      default: () => []\r\n    },\r\n    data: {\r\n      type: String,\r\n      required: true,\r\n      default: ''\r\n    },\r\n    isShown: {\r\n      type: Boolean,\r\n      required: false,\r\n      default: false\r\n    },\r\n    isRequired: {\r\n      type: Boolean,\r\n      required: false,\r\n      default: false\r\n    }\r\n  },\r\n  data () {\r\n    return {\r\n      search: '',\r\n      results: [],\r\n      isOpen: false,\r\n      isLoading: false,\r\n      isSearchMode: true,\r\n      arrowCounter: -1\r\n    }\r\n  },\r\n  methods: {\r\n    filterResults () {\r\n      this.results = this.items.filter(item => item.toLowerCase().indexOf(this.search.toLowerCase()) > -1)\r\n    },\r\n    setResult (result) {\r\n      this.isSearchMode = false\r\n      this.search = result.name\r\n      this.isOpen = false\r\n      this.eventBus.$emit(EMPLOYEE_SELECTED_EVENT, result)\r\n    },\r\n    handleClickOutside (evt) {\r\n      if (!this.$el.contains(evt.target)) {\r\n        this.isOpen = false\r\n        this.arrowCounter = -1\r\n      }\r\n    }\r\n  },\r\n  watch: {\r\n    // data (value, oldValue) {\r\n    //  if (value) {\r\n    //    this.search = value;\r\n    //  }\r\n    // },\r\n    isShown (value, oldValue) {\r\n      if (value) {\r\n        this.isSearchMode = false\r\n        this.search = this.data\r\n      }\r\n    },\r\n    // Once the items content changes, it means the parent component\r\n    // provided the needed data\r\n    items: function (value, oldValue) {\r\n      // we want to make sure we only do this when it's an async request\r\n      // this.results = value.map(x => {\r\n      //  return {\r\n      //    name: x.employeeName,\r\n      //    id: x.userID\r\n      //  }\r\n      // })\r\n      this.results = value\r\n      this.isOpen = true\r\n      this.isLoading = false\r\n    },\r\n    search () {\r\n      if (this.isSearchMode) {\r\n        this.onSearch()\r\n      }\r\n      this.isSearchMode = true\r\n    }\r\n  },\r\n  created () {\r\n    const self = this\r\n    // self.$on(\"input\", ((value) => {\r\n    //  alert(\"Input\")\r\n    // }))\r\n    self.onSearch = debounce(function () {\r\n      if (self.search && self.search.length >= 4) {\r\n        self.isLoading = true\r\n        self.eventBus.$emit(EMPLOYEE_SEARCH_STARTED_EVENT, self.search)\r\n      }\r\n    }, 500)\r\n  },\r\n  mounted () {\r\n    document.addEventListener('click', this.handleClickOutside)\r\n  },\r\n  destroyed () {\r\n    document.removeEventListener('click', this.handleClickOutside)\r\n  }\r\n}\r\n</script>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmployeeAutocomplete.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmployeeAutocomplete.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./EmployeeAutocomplete.vue?vue&type=template&id=20f75bb5&scoped=true\"\nimport script from \"./EmployeeAutocomplete.vue?vue&type=script&lang=js\"\nexport * from \"./EmployeeAutocomplete.vue?vue&type=script&lang=js\"\nimport style0 from \"./EmployeeAutocomplete.vue?vue&type=style&index=0&id=20f75bb5&prod&scoped=true&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  \"20f75bb5\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('data-table',{attrs:{\"id\":_vm.id,\"headers\":_vm.headers,\"items\":_vm.itemsToDisplay},scopedSlots:_vm._u([{key:\"item.status\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm._f(\"toStatusDescription\")(item.status))+\" \")]}},{key:\"item.actions\",fn:function({ item }){return [_c('span',{staticClass:\"action-btn mr-2 font-weight-bold h5\",on:{\"click\":function($event){return _vm.editUser(item)}}},[_vm._v(\"✎\")])]}}])}),_c('app-pager',{attrs:{\"totalNumberOfItems\":_vm.numberOfItems,\"numberOfItemsPerPage\":_vm.numberOfItemsPerPage,\"numberOfPagers\":_vm.numberOfPagers,\"currentPage\":_vm.currentPage},on:{\"paginate\":_vm.goToPage}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <div>\r\n    <data-table :id='id' :headers='headers' :items='itemsToDisplay'>\r\n      <template v-slot:item.status=\"{ item }\">\r\n        {{ item.status | toStatusDescription }}\r\n      </template>\r\n      <template v-slot:item.actions=\"{ item }\">\r\n        <span class=\"action-btn mr-2 font-weight-bold h5\" @click=\"editUser(item)\">&#x270E;</span>\r\n      </template>\r\n    </data-table>\r\n    <app-pager :totalNumberOfItems=\"numberOfItems\" :numberOfItemsPerPage=numberOfItemsPerPage :numberOfPagers=\"numberOfPagers\" :currentPage=\"currentPage\" v-on:paginate=\"goToPage\" />\r\n  </div>\r\n</template>\r\n\r\n<style scoped lang=\"scss\">\r\n  .action-btn {\r\n    cursor: pointer\r\n  }\r\n</style>\r\n\r\n<script>\r\nimport { mapState } from 'vuex'\r\n\r\nimport { EDIT_USER_EVENT, DISABLE_USER_EVENT } from '@/utils/constants'\r\nimport { toStatusDescription } from '@/filters/enum'\r\n\r\nimport DataTable from '@/components/ui/DataTable'\r\nimport AppPager from '@/components/ui/AppPager'\r\n\r\nexport default {\r\n  name: 'user-list',\r\n  components: {\r\n    DataTable,\r\n    AppPager\r\n  },\r\n  inject: ['eventBus'],\r\n  props: {\r\n    id: {\r\n      type: String,\r\n      required: false,\r\n      default: 'userList'\r\n    }\r\n  },\r\n  data: () => ({\r\n    headers: [\r\n      {\r\n        name: 'id',\r\n        title: 'user id'\r\n      },\r\n      {\r\n        name: 'name',\r\n        title: 'user name'\r\n      },\r\n      {\r\n        name: 'roleName',\r\n        title: 'role'\r\n      },\r\n      {\r\n        name: 'status',\r\n        title: 'status'\r\n      },\r\n      {\r\n        name: 'actions',\r\n        title: ''\r\n      }\r\n    ],\r\n    numberOfItemsPerPage: 2,\r\n    numberOfPagers: 7,\r\n    currentPage: 1\r\n  }),\r\n  computed: {\r\n    ...mapState({\r\n      users: state => state.userModule.users\r\n    }),\r\n    numberOfItems () {\r\n      return this.users.length\r\n    },\r\n    itemsToDisplay () {\r\n      return this.users.slice((this.currentPage - 1) * this.numberOfItemsPerPage, this.numberOfItemsPerPage * this.currentPage)\r\n    }\r\n  },\r\n  filters: {\r\n    toStatusDescription\r\n  },\r\n  methods: {\r\n    editUser (item) {\r\n      this.eventBus.$emit(EDIT_USER_EVENT, item)\r\n    },\r\n    disableUser (item) {\r\n      this.eventBus.$emit(DISABLE_USER_EVENT, item)\r\n    },\r\n    goToPage (page) {\r\n      this.currentPage = page\r\n    }\r\n  }\r\n}\r\n</script>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UserList.vue?vue&type=template&id=078fa87c&scoped=true\"\nimport script from \"./UserList.vue?vue&type=script&lang=js\"\nexport * from \"./UserList.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserList.vue?vue&type=style&index=0&id=078fa87c&prod&scoped=true&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  \"078fa87c\",\n  null\n  \n)\n\nexport default component.exports","<template>\r\n  <div id=\"userView\">\r\n    <transition name=\"slide-fade\">\r\n      <app-alert\r\n        v-if=\"alert.message\"\r\n        :type=\"alert.type\"\r\n        :message=\"alert.message\"\r\n        @alertclose=\"closeMessage\"\r\n      />\r\n    </transition>\r\n    <div class=\"row\">\r\n      <div class=\"col\">\r\n        <h4>manage application users</h4>\r\n        <app-modal :show=\"showAddEditModal\" :title=\"user.isNew ? 'add new user': 'edit user'\">\r\n          <ul class=\"error\">\r\n            <li v-for=\"error in errors\" :key=\"error.message\">{{ error.message }}</li>\r\n          </ul>\r\n          <form id=\"userForm\">\r\n            <fieldset v-bind:disabled=\"isSavingUser\">\r\n              <employee-autocomplete\r\n                v-if=\"user.isNew\"\r\n                :items=\"searchedEmployees\"\r\n                id=\"emp_search\"\r\n                :data=\"user.name\"\r\n                :isShown=\"showAddEditModal\"\r\n                isRequired\r\n              />\r\n              <span v-else class=\"font-weight-bold\">{{ user.name }}</span>\r\n              <div class=\"form-group row mt-4\">\r\n                <input\r\n                  type=\"checkbox\"\r\n                  class=\"form-control col-md-2 my-auto\"\r\n                  style=\"margin-left:-15px\"\r\n                  v-model=\"user.status\"\r\n                />\r\n                <label class=\"col-md-4 mr-0 mt-2\">{{ user.status | toStatusDescription }}</label>\r\n              </div>\r\n              <div class=\"form-group row mt-4\">\r\n                <label class=\"col-md-2 mr-0 text-left\">\r\n                  role\r\n                  <span class=\"text-danger font-weight-bold\">*</span>\r\n                </label>\r\n                <div class=\"col-md-8 mr-0\">\r\n                  <select\r\n                    class=\"form-control\"\r\n                    id=\"userRole\"\r\n                    name=\"userRole\"\r\n                    v-model=\"user.roleId\"\r\n                    required\r\n                  >\r\n                    <option\r\n                      v-for=\"role in activeRoles\"\r\n                      :value=\"role.id\"\r\n                      :key=\"role.id\"\r\n                    >{{ role.name }}</option>\r\n                  </select>\r\n                </div>\r\n              </div>\r\n            </fieldset>\r\n          </form>\r\n          <template v-slot:footer>\r\n            <button\r\n              class=\"btn btn-danger d-inline mr-2\"\r\n              @click.prevent=\"cancelAddOrEdit\"\r\n              v-bind:disabled=\"isSavingUser\"\r\n            >Cancel</button>\r\n            <button\r\n              class=\"btn btn-primary d-inline mr-2\"\r\n              v-bind:class=\"{ spin: isSavingUser }\"\r\n              @click.prevent=\"saveUser\"\r\n              v-bind:disabled=\"isSavingUser\"\r\n            >\r\n              Submit\r\n              <span class=\"spinner\"></span>\r\n            </button>\r\n          </template>\r\n        </app-modal>\r\n        <div class=\"d-flex justify-content-end clearfix mb-4\">\r\n          <button type=\"button\" class=\"btn btn-primary\" @click=\"addUser\">\r\n            <i class=\"icon-expand-plus\" title=\"add new user\"></i>\r\n          </button>\r\n        </div>\r\n        <div class=\"spinner-border text-warning\" role=\"status\">\r\n          <span class=\"sr-only\">Loading...</span>\r\n        </div>\r\n        <user-list />\r\n      </div>\r\n    </div>\r\n  </div>\r\n</template>\r\n\r\n<style scoped lang=\"scss\">\r\n.slide-fade-enter-active {\r\n  transition: all 0.5s ease;\r\n}\r\n\r\n.slide-fade-leave-active {\r\n  transition: all 0.5s cubic-bezier(1, 0.5, 0.8, 1);\r\n}\r\n\r\n.slide-fade-enter, .slide-fade-leave-to\r\n  /* .slide-fade-leave-active below version 2.1.8 */ {\r\n  transform: translateX(10px);\r\n  opacity: 0;\r\n}\r\n\r\n.error {\r\n  text-align: left;\r\n  color: #ac0c0c;\r\n  list-style: none;\r\n}\r\n\r\nfieldset {\r\n  border: 0;\r\n}\r\n\r\nbutton {\r\n  position: relative;\r\n  transition: all 1s;\r\n}\r\n\r\n.spin {\r\n  padding-left: 2.5em;\r\n  display: block;\r\n}\r\n\r\n.spin .spinner {\r\n  left: -0.6em;\r\n  top: 0.4em;\r\n  width: 2.5em;\r\n  display: block;\r\n  position: absolute;\r\n}\r\n\r\n/* spinner animation */\r\n@keyframes spinner {\r\n  0% {\r\n    transform: rotate(0deg);\r\n  }\r\n\r\n  100% {\r\n    transform: rotate(360deg);\r\n  }\r\n}\r\n\r\n/* The actual spinner element is a pseudo-element */\r\n.spin .spinner::before {\r\n  content: \"\";\r\n  width: 1.5em; /* Size of the spinner */\r\n  height: 1.5em; /* Change as desired */\r\n  position: absolute;\r\n  top: 50%;\r\n  left: 50%;\r\n  border-radius: 50%;\r\n  border: solid 0.35em #000; /* Thickness/color of spinner track */\r\n  border-bottom-color: #555; /* Color of variant spinner piece */\r\n  animation: 0.8s linear infinite spinner; /* speed of spinner */\r\n  transform: translate(-50%, -50%);\r\n  will-change: transform;\r\n}\r\n\r\n/* optional, but it will affect the size if changed */\r\n*,\r\n*::before,\r\n*::after {\r\n  box-sizing: border-box;\r\n}\r\n\r\ninput:invalid {\r\n  border: 1px solid red !important;\r\n}\r\n</style>\r\n\r\n<script>\r\nimport store from '@/store'\r\nimport { mapGetters } from 'vuex'\r\nimport { toStatusDescription } from '@/filters/enum'\r\n\r\nimport {\r\n  FETCH_USERS,\r\n  CREATE_USER,\r\n  UPDATE_USER,\r\n  FETCH_ROLES\r\n} from '@/store/action-type'\r\nimport {\r\n  CLOSE_MODAL_EVENT,\r\n  EMPLOYEE_SEARCH_STARTED_EVENT,\r\n  EMPLOYEE_SELECTED_EVENT,\r\n  EDIT_USER_EVENT\r\n} from '@/utils/constants'\r\nimport Enums from '@/utils/enums'\r\nimport { employeeService } from '@/services'\r\n\r\nimport AppAlert from '@/components/ui/AppAlert'\r\nimport AppModal from '@/components/ui/AppModal'\r\nimport EmployeeAutocomplete from '@/components/ui/EmployeeAutocomplete'\r\nimport UserList from '@/components/user/UserList'\r\n\r\nimport AlertMixin from '@/mixins/AlertMixin'\r\nimport ErrorMixin from '@/mixins/ErrorMixin'\r\n\r\nexport default {\r\n  name: 'UserView',\r\n  components: {\r\n    UserList,\r\n    AppAlert,\r\n    AppModal,\r\n    EmployeeAutocomplete\r\n  },\r\n  mixins: [AlertMixin, ErrorMixin],\r\n  inject: ['eventBus'],\r\n  provide () {\r\n    return {\r\n      eventBus: this.eventBus\r\n    }\r\n  },\r\n  data: () => ({\r\n    user: {\r\n      id: null,\r\n      name: '',\r\n      roleId: null,\r\n      roleName: '',\r\n      status: Enums.Status.Active.value,\r\n      isNew: true\r\n    },\r\n    showAddEditModal: false,\r\n    isSavingUser: false,\r\n    searchedEmployees: []\r\n  }),\r\n  computed: {\r\n    ...mapGetters(['activeRoles'])\r\n  },\r\n  watch: {\r\n    showAddEditModal (value) {\r\n      if (value && this.user.isNew) {\r\n        this.$nextTick(() => {\r\n          document.getElementById('emp_search').focus()\r\n        })\r\n      }\r\n    }\r\n  },\r\n  methods: {\r\n    setUser (employee) {\r\n      this.user.name = employee.name\r\n      this.user.id = employee.id\r\n    },\r\n    addUser () {\r\n      this.user.id = null\r\n      this.user.name = ''\r\n      this.user.roleId = ''\r\n      this.user.roleName = ''\r\n      this.user.status = Enums.Status.Active.value\r\n      this.user.isNew = true\r\n      this.showAddEditModal = true\r\n    },\r\n    editUser (user) {\r\n      this.user.id = user.id\r\n      this.user.name = user.name\r\n      this.user.roleId = user.roleId\r\n      this.user.roleName = user.roleName\r\n      this.user.status = user.status\r\n      this.user.isNew = false\r\n      this.showAddEditModal = true\r\n    },\r\n    saveUser () {\r\n      if (this.validateAddOrEditForm()) {\r\n        const self = this\r\n        self.isSavingUser = true\r\n        self.closeMessage()\r\n        const actionType = self.user.isNew ? CREATE_USER : UPDATE_USER\r\n        store\r\n          .dispatch(actionType, self.user)\r\n          .then(() => {\r\n            self.showSuccessMessage(\r\n              `User ${\r\n                actionType === UPDATE_USER ? 'updated' : 'created'\r\n              } successfully`\r\n            )\r\n            self.showAddEditModal = false\r\n          })\r\n          .catch((error) => {\r\n            self.handleError(error)\r\n          })\r\n          .finally(() => {\r\n            self.isSavingUser = false\r\n          })\r\n      }\r\n    },\r\n    cancelAddOrEdit () {\r\n      this.showAddEditModal = false\r\n    },\r\n    validateAddOrEditForm () {\r\n      this.errors.splice(0, this.errors.length)\r\n      let form = document.querySelector('#userForm')\r\n      form.reportValidity()\r\n      let errors = []\r\n      if (!this.user.id) {\r\n        errors.push({ message: 'No user selected' })\r\n      }\r\n      if (!this.user.roleId) {\r\n        errors.push({ message: 'No role selected' })\r\n      }\r\n      this.errors = [...errors]\r\n      return !errors.length\r\n    }\r\n  },\r\n  beforeRouteEnter (to, from, next) {\r\n    store\r\n      .dispatch(FETCH_USERS)\r\n      .then(() => store.dispatch(FETCH_ROLES))\r\n      .then(next)\r\n      .catch((error) => {\r\n        next((vm) => {\r\n          vm.showErrorMessage(error)\r\n        })\r\n      })\r\n  },\r\n  filters: {\r\n    toStatusDescription\r\n  },\r\n  mounted () {\r\n    const self = this\r\n    self.eventBus.$on(EDIT_USER_EVENT, self.editUser)\r\n    self.eventBus.$on(CLOSE_MODAL_EVENT, () => {\r\n      self.showAddEditModal = false\r\n    })\r\n    self.eventBus.$on(EMPLOYEE_SEARCH_STARTED_EVENT, (searchString) => {\r\n      self.user.name = ''\r\n      self.user.id = null\r\n      self.searchedEmployees.splice(0, self.searchedEmployees.length)\r\n      employeeService.searchEmployees(searchString).then((result) => {\r\n        if (result.data && result.data.length) {\r\n          self.searchedEmployees = [...result.data]\r\n        }\r\n      })\r\n    })\r\n    self.eventBus.$on(EMPLOYEE_SELECTED_EVENT, self.setUser)\r\n  },\r\n  beforeDestroy () {\r\n    this.eventBus.$off(EDIT_USER_EVENT)\r\n    this.eventBus.$off(CLOSE_MODAL_EVENT)\r\n    this.eventBus.$off(EMPLOYEE_SEARCH_STARTED_EVENT)\r\n    this.eventBus.$off(EMPLOYEE_SELECTED_EVENT)\r\n  }\r\n}\r\n</script>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=764a6143&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=764a6143&prod&scoped=true&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  \"764a6143\",\n  null\n  \n)\n\nexport default component.exports","import Enums from '@/utils/enums'\r\n\r\nexport const toStatusDescription = (status) => {\r\n  status = status ? 1 : 0\r\n  return Enums.convertToEnum(Enums.Status, status).description\r\n}\r\n\r\nexport const toRoleRightsDescription = (rights) => {\r\n  var rightsDescriptions = []\r\n  for (let right in Enums.RoleRights) {\r\n    if (rights & Enums.RoleRights[right].value) {\r\n      rightsDescriptions.push(Enums.RoleRights[right].description)\r\n    }\r\n  }\r\n  return rightsDescriptions.join(', ')\r\n}\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=style&index=0&id=078fa87c&prod&scoped=true&lang=scss\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('table',[_c('thead',[_c('tr',_vm._l((_vm.headers),function(header){return _c('th',{key:header.name},[_vm._v(_vm._s(header.title || header.name))])}),0)]),_c('tbody',_vm._l((_vm.items),function(item){return _c('tr',{key:'item_row_' + item[_vm.identifierProp]},_vm._l((_vm.headers),function(header){return _c('td',{key:'item_column_' + header.name + '_' + item[_vm.identifierProp]},[_vm._t('item.' + header.name,function(){return [_c('span',[_vm._v(_vm._s(item[header.name]))])]},{\"item\":item})],2)}),0)}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <table>\r\n    <thead>\r\n      <tr>\r\n        <th v-for=\"header in headers\" :key=\"header.name\">{{ header.title || header.name }}</th>\r\n      </tr>\r\n    </thead>\r\n    <tbody>\r\n      <tr v-for=\"item in items\" :key=\"'item_row_' + item[identifierProp]\">\r\n        <td v-for=\"header in headers\" :key=\"'item_column_' + header.name + '_' + item[identifierProp]\">\r\n          <slot :name=\"'item.' + header.name\" v-bind:item=\"item\">\r\n            <span>{{ item[header.name] }}</span>\r\n          </slot>\r\n        </td>\r\n      </tr>\r\n    </tbody>\r\n  </table>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n  name: 'data-table',\r\n  props: {\r\n    id: {\r\n      type: String,\r\n      required: false,\r\n      default: 'my-data-table'\r\n    },\r\n    identifierProp: {\r\n      type: String,\r\n      required: false,\r\n      default: 'id'\r\n    },\r\n    headers: {\r\n      type: Array,\r\n      required: false\r\n    },\r\n    items: {\r\n      type: Array,\r\n      required: false\r\n    }\r\n  }\r\n}\r\n</script>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataTable.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataTable.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DataTable.vue?vue&type=template&id=62258d1c\"\nimport script from \"./DataTable.vue?vue&type=script&lang=js\"\nexport * from \"./DataTable.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports"],"sourceRoot":""}