{"version":3,"sources":["webpack:///./src/views/configuration/GroupsByUser.vue?7387","webpack:///./src/components/filters/GroupsFilterByUser.vue?ea6c","webpack:///src/components/filters/GroupsFilterByUser.vue","webpack:///./src/components/filters/GroupsFilterByUser.vue?11ac","webpack:///./src/components/filters/GroupsFilterByUser.vue","webpack:///./src/components/UserLinkGroupsDialog.vue?2cf7","webpack:///src/components/UserLinkGroupsDialog.vue","webpack:///./src/components/UserLinkGroupsDialog.vue?1765","webpack:///./src/components/UserLinkGroupsDialog.vue","webpack:///./src/components/UserLinkUsersDialog.vue?d7ff","webpack:///src/components/UserLinkUsersDialog.vue","webpack:///./src/components/UserLinkUsersDialog.vue?a9b2","webpack:///./src/components/UserLinkUsersDialog.vue","webpack:///./src/services/configurations/groups/gGetUserGruposPag.js","webpack:///./src/services/configurations/groups/gGetUserGruposExcel.js","webpack:///./src/services/configurations/groups/linkUserToGroups.js","webpack:///./src/services/configurations/groups/unlinkUserGroups.js","webpack:///./src/services/configurations/groups/removeTemporalesGroups.js","webpack:///./src/services/configurations/groups/addTraspasoGroups.js","webpack:///src/views/configuration/GroupsByUser.vue","webpack:///./src/views/configuration/GroupsByUser.vue?e5b5","webpack:///./src/views/configuration/GroupsByUser.vue","webpack:///./src/services/configurations/getUser.js","webpack:///./src/services/configurations/groups/getGroupsSimple.js","webpack:///./src/services/configurations/getAllUsers.js"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","toggleTableTools","slot","header","pagination","total","currentPage","pageSize","on","changeCurrentPage","changePerPage","staticClass","toggleSearchesDialog","toggleFilters","tags","removeFilterTagHanlder","removeAllTagsHandler","saveTagsHandler","spanish","kendo","dataResult","isGeneralLoading","selectedField","dataStateChange","columnReorder","openPath","onColumnsSubmit","sortChange","filterChange","onSelectionChange","onHeaderSelectionChange","labelBtnExcel","loadingExcel","exportExcel","$t","deleteTemporal","toggleAddTemporal","golinkTagToUser","hasSelected","rowsSelected","rowsTotal","unselect","_v","unlink","linkGroupToUserDialog","$route","params","id","toggleDialogs","applyLinkHandler","addTemporalDialog","applyAddTemporal","filterPanel","applyFiltersHandler","numberSearches","idVista","saveSearchDialog","toggleDialogSearches","applySearchHandler","ref","vuexnamespace","searchesPanel","updateNumberSearches","staticRenderFns","panelOpen","togglePanel","_s","values","model","value","form","temporal","callback","$$v","$set","expression","name","tiposGrupos","tipoGrupo","verTodoGroups","verTodoStatuses","verTodoCompanies","send_alerts","enviarAvisosUsuarios","email","phone","_e","applyFilters","props","type","default","data","isOpen","links","label","watch","handler","mounted","computed","role","roles","hasPermModuleSMS","methods","panelOpenHandler","resetForm","querySearch","cb","createFilter","handleSelect","handleSelectCliente","handleSelectRole","handleSelectTipoAuth","component","dialogOpen","toggleDialog","style","heightContainerSelect","listaGroupsGrouping","isLoadingSelect","onExpand","onChangeInput","loading","loadingActionSelect","loadingActionUnSelect","_l","i","key","isAllSelected","isEmptyList","$event","$refs","groupsSelector","unselectAll","isLoadedData","selectAll","apply","components","heightSelect","heightInput","groupId","groups","idUsuario","group","setTimeout","title","users","labelOrigen","labelDestino","directives","rawName","arg","radioDestino","radioOrigen","usersSelect","BaseDialogButton","async","gGetUserGruposPag","order","req","url","method","headers","res","axiosInstance","gGetUserGruposExcel","payload","responseType","response","linkUserToGroups","unlinkUserGroups","removeTemporalesGroups","addTraspasoGroups","ListLayout","FilterPanel","FilterPanelSearches","CreateSearchDialog","KendoGridComponent","UserLinkGroupsDialog","UserLinkUsersDialog","showModal","icon","breadcrumb","showAllRows","loadingDataTable","selected","isHeadCoreReady","setLabelTowShow","masterFilters","headerCoreFilters","columns","field","width","headerSelectionValue","reorderable","groupable","areAllSelected","deep","skip","take","sort","created","breadcrumbs","path","idUsuarios","TemporalOrigen","TemporalDestino","disableRoutes","disableGroups","disableStatuses","disableCompanies","disableProviderCompanies","bus","updateAllSelectedHeader","removeFilterTag","createAppState","column","options","nombre","tipo","VerTodoGrupos","VerTodoEstados","VerTodoEmpresas","numeroSMSGenerico","enviarAvisos","grupos","encoding","link","filename","console","filter","expandChange","event","getItemsData","paginate","results","page","totalPages","headerCoreFiltersHandler","tableSortByChangeHandler","prop","downloadData","user","unlinkHandler","idGrupos","linkHandler","getUser","getGroupsSimple","getAllUsers"],"mappings":"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C,0EACA9H,0CAGA6H,QACAC,sBACA9H,0CAGA6H,QAAAC,4BAAA9H,iCAEA,mCACA6H,QAAAC,QAAA9H,iBACA,wDACA,sBAEA,yBAEA,qCAEA0B,SACAlE,oBACA,gDAEAe,uCAAA8F,cAAAO,eAAAD,IACA,IACA,sCACA,8BACA,GACAV,YACA8D,aACAC,iBACAC,mBAEA,cACA,eACA,iDAEA,oBACA,+DAEA,SACA,kBACA,QACA,yBACA,wCAGA1K,gCACA,IACA,sCACA,8BACA,WAAA0G,eACA,eACA,iDAEA,oBACA,kEAEA,SACA,kBACA,QACA,wCAGAiE,0BACA,oGACA,sBACA,GACAC,mBACAC,uCACAC,0CACAC,6BAEAC,wCAEAC,mCACA,iBAGA,+DAFA,+CAKA3L,uBAIAZ,yBACA,oCAEAmC,yBACA,wDAEAqK,4BACA,0CAEAC,2BACA,uBACA,uBACA,QAIA,yBACA,2BACA,wBAEA/L,kCACA,4BACA,qCAEAC,0BACA,mCACA,mCACA,oDACA+L,yCACAC,qBAGA,8BAEAvL,6BACA,wCACA,qBACA,qEACA,GACA4G,gCACAtE,0CACAkJ,gCACAC,wCACAC,yDACAC,8DACAC,iEACAzI,iCACA0I,6CACAC,oDACA5I,+EAEA,0DACA,sEACA,GAAA0E,cAAAmE,UACA,qBACA,wCACA3D,aAEA,IACA,qBACA,qBAAA5E,iBAAAwI,mBACA,8BACAC,qCACA,4BACAC,eACAD,aACAA,UACA,eAEA,GADAE,iBACA,2CACA,qCACA,wBAEA,kBAEA,QACA,wCACA,uBAGA1M,4BACA,2BACA,sBAEAC,uBACA,aACA,mBACA4K,KAEA,SACAF,qBACAC,qBACAC,OACAzD,uBACAuF,0BAEA,sBAAA1I,UAEA/D,yBACA,SACAyK,qBACAC,qBACAC,qBACAzD,uBACAuF,UAGA,sBAAA1I,UAEA2I,yBACAC,kFAEAhJ,+BACA,yBACA,qEACA,GACAsD,gCACAtE,0CACAkJ,gCACAC,wCACAC,yDACAC,8DACAC,iEACAzI,iCACA0I,6CACAC,oDACA5I,+EAEA,0DACA,IACA,uCACA,SAEA,sCACA,2DAGA,OADA,+BACA,WAEAqJ,iCAAA,YACA,+CACA,sCACA,SACAC,YACAC,iCACAC,oCACA,GAEA,8BACA,sBACA,SACAtO,mDACAC,+DACAsO,2DACArO,yDAKA,OAHA,8DACA,sCACA,yBACA,WAEA,uBACA,SACAkO,YACAC,iCACAC,oCACA,GAEA,eAIA,OAHA,gBACA,gDAEA,GAEAtL,sCACA,2DACA,sCAEA5C,oCACA,2DACA,yCAEAC,gCACA,2DACA,wDACA,kBACA,yCAEAK,mCAEA,2DACA,4EACA,QACA,6DACA,gCAEA8N,qCACA,sBACA,yBAGA7N,gCACA,2DACA,6DACA,gCAEA8N,wCAAAC,QAAAlF,IACA,oDACA,yDACA,2DACA,yBAEAmF,+BACA,WACA,IACA,sCAEA,SACAnG,aAEAoG,2BACA,eACA,gDAEAA,cAEA,SACA,kBACA,QACA,sCAEA,UAEAxM,oBACA,WACA,kCACA,gCAEAE,wBACA,4BACA,sBAIA,qCAEAuM,gCAEA,IACA,sCACA,8BACA,GAAArG,YAAAsG,aACAnB,cACA3D,6BAEA,oBACA,eACA,gDAEA,wDAEA,SACA,kBACA,QACA,wCAGAhI,2BACA,wDAEAP,oCACA,+BACA,kCACA,gCAEAD,8BACA0M,+DACA,qDACA,gCAEAtL,mCACA,4BAEA,oBACA,qBAEAmM,8BACA,IACA,sCACA,8BACA,GAAAvG,YAAAsG,YACA,cACA,eACA,iDAEA,qDACA,sBAEA,SACA,kBACA,QACA,wCAGAvO,gCACA,wCAEAK,2BACA,8CAEAwC,gCACA,8CAEAC,oCACA,4BAEA,6CAEAI,uCACA,yBC/oBoW,ICOhW,EAAY,eACd,EACArE,EACAsE,GACA,EACA,KACA,KACA,MAIa,e,6CClBf,4DAGA4F,eAAe0F,EAASvM,EAAS,MAKxB,CACL,MAAMgH,EAAM,CACVC,IAAK,kCACLC,OAAQ,MACRC,QAAS,CACP,eAAgB,mBAChB,8BAA+B,KAEjCnH,UAEIoH,QAAYC,eAAcL,GAChC,OAAOI,EAAIvE,Q,oCCnBf,4DAGAgE,eAAe2F,EAAiBxM,EAAS,MAgBhC,CACL,MAAMgH,EAAM,CACVC,IAAK,wBACLC,OAAQ,MACRC,QAAS,CACP,eAAgB,mBAChB,8BAA+B,KAEjCnH,UAEIoH,QAAYC,eAAcL,GAChC,OAAOI,EAAIvE,Q,kCC9Bf,4DAGAgE,eAAe4F,EAAazM,EAAS,MAgB5B,CACL,MAAMgH,EAAM,CACVC,IAAK,kCACLC,OAAQ,MACRC,QAAS,CACP,eAAgB,mBAChB,8BAA+B,KAEjCnH,UAEIoH,QAAYC,eAAcL,GAChC,OAAOI,EAAIvE","file":"js/chunk-6c44c98a.v.6.0.0.1743755007948.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('list-layout',{attrs:{\"tableTools\":_vm.toggleTableTools}},[_c('template',{slot:\"header\"},[_c('BaseHeader',{attrs:{\"content\":_vm.header}})],1),_c('template',{slot:\"table-core\"},[_c('base-table-pagination',{attrs:{\"total\":_vm.pagination.total,\"currentPage\":_vm.pagination.currentPage,\"perPage\":_vm.pagination.pageSize},on:{\"changeCurrentPage\":_vm.changeCurrentPage,\"changePerPage\":_vm.changePerPage}}),_c('div',{staticClass:\"flex flex-row w-100\"},[_c('base-table-searches',{on:{\"toggleSearchesDialog\":_vm.toggleSearchesDialog}}),_c('base-table-search',{on:{\"toggleFilters\":_vm.toggleFilters}})],1)],1),_c('template',{slot:\"table-tags\"},[_c('base-table-filter-tags',{attrs:{\"tags\":_vm.tags},on:{\"removeTag\":_vm.removeFilterTagHanlder,\"removeAllTags\":_vm.removeAllTagsHandler,\"saveTags\":_vm.saveTagsHandler}})],1),_c('template',{slot:\"table-component\"},[_c('kendo-grid-component',{staticClass:\"kendo-pointer-default\",attrs:{\"spanish\":_vm.spanish,\"dataResult\":_vm.kendo.dataResult,\"kendo\":_vm.kendo,\"loading\":_vm.isGeneralLoading,\"selectedField\":_vm.selectedField},on:{\"datastatechange\":_vm.dataStateChange,\"columnreorder\":_vm.columnReorder,\"rowclick\":_vm.openPath,\"columnssubmit\":_vm.onColumnsSubmit,\"sortchange\":_vm.sortChange,\"filterchange\":_vm.filterChange,\"selectionchange\":_vm.onSelectionChange,\"headerselectionchange\":_vm.onHeaderSelectionChange}})],1),_c('template',{slot:\"layout-extend\"},[_c('base-footer',[_c('template',{slot:\"actions\"},[_c('base-button-responsive',{attrs:{\"mode\":\"primary\",\"text\":_vm.labelBtnExcel,\"icon\":\"excelxls\",\"loading\":_vm.isGeneralLoading || _vm.loadingExcel,\"disabled\":_vm.loadingExcel},on:{\"click\":_vm.exportExcel}}),_c('base-button-responsive',{attrs:{\"mode\":\"primary\",\"text\":_vm.$t('configurations.delete_temporal'),\"icon\":\"unlink\",\"loading\":_vm.isGeneralLoading,\"disabled\":_vm.isGeneralLoading},on:{\"click\":_vm.deleteTemporal}}),_c('base-button-responsive',{attrs:{\"mode\":\"primary\",\"text\":_vm.$t('configurations.add_temporal_groups'),\"icon\":\"link\",\"loading\":_vm.isGeneralLoading,\"disabled\":_vm.isGeneralLoading},on:{\"click\":_vm.toggleAddTemporal}}),_c('base-button-responsive',{attrs:{\"mode\":\"primary\",\"text\":_vm.$t('groups.link'),\"icon\":\"plus\",\"loading\":_vm.isGeneralLoading},on:{\"click\":_vm.golinkTagToUser}})],1)],2),_c('base-table-select-actions-expand',{attrs:{\"visibility\":_vm.hasSelected,\"selected\":_vm.rowsSelected,\"total\":_vm.rowsTotal}},[_c('template',{slot:\"commons\"},[_c('base-button',{attrs:{\"size\":\"xs\",\"mode\":\"tools\"},on:{\"click\":_vm.unselect}},[_c('base-icon',{staticClass:\"mr-1\",attrs:{\"name\":\"vall\",\"size\":\"sm\"}}),_vm._v(\" Deseleccionar \")],1)],1),_c('template',{slot:\"more\"},[_c('base-button-item-list',{attrs:{\"theme\":\"dark\"},on:{\"click\":_vm.unlink}},[_c('base-icon',{staticClass:\"mr-2\",attrs:{\"name\":\"unlink\"}}),_vm._v(\" Desvincular \")],1)],1)],2),_c('user-link-groups-dialog',{attrs:{\"dialogOpen\":_vm.linkGroupToUserDialog,\"userId\":this.$route.params.id},on:{\"toggleDialog\":_vm.toggleDialogs,\"applyDialog\":_vm.applyLinkHandler}}),_c('user-link-users-dialog',{attrs:{\"dialogOpen\":_vm.addTemporalDialog,\"idUsuario\":this.$route.params.id,\"labelOrigen\":_vm.$t('app.origen_groups'),\"labelDestino\":_vm.$t('app.destino_groups'),\"title\":_vm.$t('configurations.add_temporal_groups')},on:{\"toggleDialog\":_vm.toggleAddTemporal,\"applyDialog\":_vm.applyAddTemporal}}),_c('filter-panel',{attrs:{\"panelOpen\":_vm.filterPanel},on:{\"togglePanel\":_vm.toggleFilters,\"applyFilters\":_vm.applyFiltersHandler}}),_c('create-search-dialog',{attrs:{\"numberSearches\":_vm.numberSearches,\"idVista\":_vm.idVista,\"dialogOpen\":_vm.saveSearchDialog,\"tags\":_vm.tags},on:{\"toggleDialog\":_vm.toggleDialogSearches,\"applyDialog\":_vm.applySearchHandler}}),_c('filter-panel-searches',{ref:\"filterPanelSearches\",attrs:{\"idVista\":_vm.idVista,\"vuexnamespace\":_vm.vuexnamespace,\"panelOpen\":_vm.searchesPanel},on:{\"togglePanel\":_vm.toggleSearchesDialog,\"applyFilters\":_vm.applyFiltersHandler,\"updateNumberSearches\":_vm.updateNumberSearches}})],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('base-slide-panel',{attrs:{\"isOpen\":_vm.panelOpen},on:{\"closePanel\":_vm.togglePanel}},[_c('template',{slot:\"header\"},[_c('div',{staticClass:\"h-16 bg-secondary dark:bg-darkblue-600 flex items-center justify-between text-white px-4\"},[_c('div',{staticClass:\"flex items-center\"},[_c('base-icon',{attrs:{\"name\":\"filter\"}}),_c('h2',{staticClass:\"font-bold ml-2\"},[_vm._v(\"Filtrar por\")])],1),_c('span',{staticClass:\"cursor-pointer\",on:{\"click\":_vm.togglePanel}},[_c('base-button-icon',{attrs:{\"name\":\"cross\",\"size\":\"xs\",\"iconSize\":\"sm\",\"mode\":\"secondary\"}})],1)])]),_c('template',{slot:\"main\"},[_c('div',{staticClass:\"form-wrapper p-4 dark:bg-darkblue-800 dark:text-darkblue-200\"},[_c('el-form',{ref:\"ruleForm\"},[_c('div',{staticClass:\"lg:mb-2\"},[_c('div',[_c('label',{staticClass:\"text-sm font-semibold text-secondary-600 block mb-1\"},[_vm._v(_vm._s(_vm.$t('app.vinculo_temporal')))]),_c('el-form-item',{attrs:{\"prop\":\"temporal\"}},[_c('base-el-select',{staticClass:\"w-full\",attrs:{\"options\":_vm.values,\"clearable\":\"\",\"placeholder\":_vm.$t('app.vinculo_temporal_yes_no')},model:{value:(_vm.form.temporal.value),callback:function ($$v) {_vm.$set(_vm.form.temporal, \"value\", $$v)},expression:\"form.temporal.value\"}})],1)],1),_c('div',[_c('label',{staticClass:\"text-sm font-semibold text-secondary-600 block mb-1\"},[_vm._v(_vm._s(_vm.$t('configurations.name')))]),_c('el-form-item',{attrs:{\"prop\":\"name\"}},[_c('el-input',{staticClass:\"w-full\",attrs:{\"clearable\":\"\",\"maxlength\":\"50\"},model:{value:(_vm.form.name.value),callback:function ($$v) {_vm.$set(_vm.form.name, \"value\", $$v)},expression:\"form.name.value\"}})],1)],1),_c('div',[_c('label',{staticClass:\"text-sm font-semibold text-secondary-600 block mb-1\"},[_vm._v(_vm._s(_vm.$t('configurations.type')))]),_c('el-form-item',{attrs:{\"prop\":\"tipoGrupo\"}},[_c('base-el-select',{staticClass:\"w-full\",attrs:{\"options\":_vm.tiposGrupos,\"clearable\":\"\",\"filterable\":\"\"},model:{value:(_vm.form.tipoGrupo.value),callback:function ($$v) {_vm.$set(_vm.form.tipoGrupo, \"value\", $$v)},expression:\"form.tipoGrupo.value\"}})],1)],1),_c('div',[_c('label',{staticClass:\"text-sm font-semibold text-secondary-600 block mb-1\"},[_vm._v(_vm._s(_vm.$t('configurations.ver_todo_groups')))]),_c('el-form-item',{attrs:{\"prop\":\"verTodoGroups\"}},[_c('base-el-select',{staticClass:\"w-full\",attrs:{\"options\":_vm.values,\"clearable\":\"\",\"placeholder\":_vm.$t('configurations.ver_todo_yes_no')},model:{value:(_vm.form.verTodoGroups.value),callback:function ($$v) {_vm.$set(_vm.form.verTodoGroups, \"value\", $$v)},expression:\"form.verTodoGroups.value\"}})],1)],1),_c('div',[_c('label',{staticClass:\"text-sm font-semibold text-secondary-600 block mb-1\"},[_vm._v(_vm._s(_vm.$t('configurations.ver_todo_statuses')))]),_c('el-form-item',{attrs:{\"prop\":\"verTodoStatuses\"}},[_c('base-el-select',{staticClass:\"w-full\",attrs:{\"options\":_vm.values,\"clearable\":\"\",\"placeholder\":_vm.$t('configurations.ver_todo_yes_no')},model:{value:(_vm.form.verTodoStatuses.value),callback:function ($$v) {_vm.$set(_vm.form.verTodoStatuses, \"value\", $$v)},expression:\"form.verTodoStatuses.value\"}})],1)],1),_c('div',[_c('label',{staticClass:\"text-sm font-semibold text-secondary-600 block mb-1\"},[_vm._v(_vm._s(_vm.$t('configurations.ver_todo_companies')))]),_c('el-form-item',{attrs:{\"prop\":\"verTodoCompanies\"}},[_c('base-el-select',{staticClass:\"w-full\",attrs:{\"options\":_vm.values,\"clearable\":\"\",\"placeholder\":_vm.$t('configurations.ver_todo_yes_no')},model:{value:(_vm.form.verTodoCompanies.value),callback:function ($$v) {_vm.$set(_vm.form.verTodoCompanies, \"value\", $$v)},expression:\"form.verTodoCompanies.value\"}})],1)],1),_c('div',[_c('label',{staticClass:\"text-sm font-semibold text-secondary-600 block mb-1\"},[_vm._v(_vm._s(_vm.$t('companies.send_alerts')))]),_c('el-form-item',{attrs:{\"prop\":\"send_alerts\"}},[_c('base-el-select',{staticClass:\"w-full\",attrs:{\"options\":_vm.values,\"clearable\":\"\",\"placeholder\":_vm.$t('companies.send_alerts_yes_no')},model:{value:(_vm.form.send_alerts.value),callback:function ($$v) {_vm.$set(_vm.form.send_alerts, \"value\", $$v)},expression:\"form.send_alerts.value\"}})],1)],1),_c('div',[_c('label',{staticClass:\"text-sm font-semibold text-secondary-600 block mb-1\"},[_vm._v(_vm._s(_vm.$t('companies.send_alerts_users')))]),_c('el-form-item',{attrs:{\"prop\":\"enviarAvisosUsuarios\"}},[_c('base-el-select',{staticClass:\"w-full\",attrs:{\"options\":_vm.values,\"clearable\":\"\",\"placeholder\":_vm.$t('companies.send_alerts_yes_no')},model:{value:(_vm.form.enviarAvisosUsuarios.value),callback:function ($$v) {_vm.$set(_vm.form.enviarAvisosUsuarios, \"value\", $$v)},expression:\"form.enviarAvisosUsuarios.value\"}})],1)],1),_c('div',[_c('label',{staticClass:\"text-sm font-semibold text-secondary-600 block mb-1\"},[_vm._v(_vm._s(_vm.$t('configurations.email')))]),_c('el-form-item',{attrs:{\"prop\":\"email\"}},[_c('el-input',{staticClass:\"w-full\",attrs:{\"clearable\":\"\",\"maxlength\":\"500\"},model:{value:(_vm.form.email.value),callback:function ($$v) {_vm.$set(_vm.form.email, \"value\", $$v)},expression:\"form.email.value\"}})],1)],1),(_vm.hasPermModuleSMS)?_c('div',[_c('label',{staticClass:\"text-sm font-semibold text-secondary-600 block mb-1\"},[_vm._v(_vm._s(_vm.$t('configurations.phone')))]),_c('el-form-item',{attrs:{\"prop\":\"phone\"}},[_c('el-input',{staticClass:\"w-full\",attrs:{\"clearable\":\"\",\"maxlength\":\"9\"},model:{value:(_vm.form.phone.value),callback:function ($$v) {_vm.$set(_vm.form.phone, \"value\", $$v)},expression:\"form.phone.value\"}})],1)],1):_vm._e()])])],1)]),_c('template',{slot:\"footer\"},[_c('base-button',{attrs:{\"mode\":\"secondary-phantom-blue\",\"text\":_vm.$t('app.cancel')},on:{\"click\":_vm.togglePanel}}),_c('base-button',{staticClass:\"w-full\",attrs:{\"mode\":\"secondary-phantom-blue\",\"text\":_vm.$t('app.apply')},on:{\"click\":_vm.applyFilters}})],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <base-slide-panel :isOpen=\"panelOpen\" @closePanel=\"togglePanel\">\r\n    <template slot=\"header\">\r\n      <div class=\"h-16 bg-secondary dark:bg-darkblue-600 flex items-center justify-between text-white px-4\">\r\n        <div class=\"flex items-center\">\r\n          <base-icon name=\"filter\"/>\r\n          <h2 class=\"font-bold ml-2\">Filtrar por</h2>\r\n        </div>\r\n        <span class=\"cursor-pointer\" @click=\"togglePanel\">\r\n          <base-button-icon name=\"cross\" size=\"xs\" iconSize=\"sm\" mode=\"secondary\" />\r\n        </span>\r\n      </div>\r\n    </template>\r\n    <template slot=\"main\">\r\n      <div class=\"form-wrapper p-4 dark:bg-darkblue-800 dark:text-darkblue-200\">\r\n        <el-form\r\n          ref=\"ruleForm\"\r\n        >\r\n          <div class=\"lg:mb-2\">\r\n\r\n          <div>\r\n            <label class=\"text-sm font-semibold text-secondary-600 block mb-1\">{{$t('app.vinculo_temporal')}}</label>\r\n            <el-form-item prop=\"temporal\">\r\n              <base-el-select class=\"w-full\" :options=\"values\" v-model=\"form.temporal.value\" clearable :placeholder=\"$t('app.vinculo_temporal_yes_no')\" />\r\n            </el-form-item>\r\n          </div>\r\n\r\n            <div>\r\n              <label class=\"text-sm font-semibold text-secondary-600 block mb-1\">{{$t('configurations.name')}}</label>\r\n              <el-form-item prop=\"name\">\r\n                <el-input\r\n                  clearable\r\n                  class=\"w-full\"\r\n                  v-model=\"form.name.value\"\r\n                  maxlength=\"50\"\r\n                />\r\n              </el-form-item>\r\n            </div>\r\n\r\n            <div>\r\n              <label class=\"text-sm font-semibold text-secondary-600 block mb-1\">{{$t('configurations.type')}}</label>\r\n              <el-form-item prop=\"tipoGrupo\">\r\n                <base-el-select class=\"w-full\" :options=\"tiposGrupos\" v-model=\"form.tipoGrupo.value\" clearable filterable />\r\n              </el-form-item>\r\n            </div>\r\n\r\n            <div>\r\n              <label class=\"text-sm font-semibold text-secondary-600 block mb-1\">{{$t('configurations.ver_todo_groups')}}</label>\r\n              <el-form-item prop=\"verTodoGroups\">\r\n                <base-el-select class=\"w-full\" :options=\"values\" v-model=\"form.verTodoGroups.value\" clearable :placeholder=\"$t('configurations.ver_todo_yes_no')\" />\r\n              </el-form-item>\r\n            </div>\r\n             <div>\r\n              <label class=\"text-sm font-semibold text-secondary-600 block mb-1\">{{$t('configurations.ver_todo_statuses')}}</label>\r\n              <el-form-item prop=\"verTodoStatuses\">\r\n                <base-el-select class=\"w-full\" :options=\"values\" v-model=\"form.verTodoStatuses.value\" clearable :placeholder=\"$t('configurations.ver_todo_yes_no')\" />\r\n              </el-form-item>\r\n            </div>\r\n             <div>\r\n              <label class=\"text-sm font-semibold text-secondary-600 block mb-1\">{{$t('configurations.ver_todo_companies')}}</label>\r\n              <el-form-item prop=\"verTodoCompanies\">\r\n                <base-el-select class=\"w-full\" :options=\"values\" v-model=\"form.verTodoCompanies.value\" clearable :placeholder=\"$t('configurations.ver_todo_yes_no')\" />\r\n              </el-form-item>\r\n            </div>\r\n\r\n            <div>\r\n              <label class=\"text-sm font-semibold text-secondary-600 block mb-1\">{{$t('companies.send_alerts')}}</label>\r\n              <el-form-item prop=\"send_alerts\">\r\n                <base-el-select class=\"w-full\" :options=\"values\" v-model=\"form.send_alerts.value\" clearable :placeholder=\"$t('companies.send_alerts_yes_no')\" />\r\n              </el-form-item>\r\n            </div>\r\n\r\n            <div>\r\n              <label class=\"text-sm font-semibold text-secondary-600 block mb-1\">{{$t('companies.send_alerts_users')}}</label>\r\n              <el-form-item prop=\"enviarAvisosUsuarios\">\r\n                <base-el-select class=\"w-full\" :options=\"values\" v-model=\"form.enviarAvisosUsuarios.value\" clearable :placeholder=\"$t('companies.send_alerts_yes_no')\" />\r\n              </el-form-item>\r\n            </div>\r\n              \r\n            <div>\r\n              <label class=\"text-sm font-semibold text-secondary-600 block mb-1\">{{$t('configurations.email')}}</label>\r\n              <el-form-item prop=\"email\">\r\n                <el-input\r\n                  clearable\r\n                  class=\"w-full\"\r\n                  v-model=\"form.email.value\"\r\n                  maxlength=\"500\"\r\n                />\r\n              </el-form-item>\r\n            </div>\r\n\r\n            <div v-if=\"hasPermModuleSMS\">\r\n              <label class=\"text-sm font-semibold text-secondary-600 block mb-1\">{{$t('configurations.phone')}}</label>\r\n              <el-form-item prop=\"phone\">\r\n                <el-input\r\n                  clearable\r\n                  class=\"w-full\"\r\n                  v-model=\"form.phone.value\"\r\n                  maxlength=\"9\"\r\n                />\r\n              </el-form-item>\r\n            </div>\r\n\r\n            <!--\r\n            <div>\r\n              <label class=\"text-sm font-semibold text-secondary-600 block mb-1\">{{$t('configurations.company')}}</label>\r\n              <el-form-item prop=\"company\">\r\n                <el-autocomplete class=\"w-full\" v-model=\"form.company.value\" clearable\r\n                :fetch-suggestions=\"querySearch\"\r\n                @select=\"handleSelect\">\r\n                  </el-autocomplete>\r\n              </el-form-item>\r\n            </div>\r\n            -->\r\n          </div>\r\n        </el-form>\r\n      </div>\r\n    </template>\r\n    <template slot=\"footer\">\r\n      <base-button @click=\"togglePanel\" mode=\"secondary-phantom-blue\" :text=\"$t('app.cancel')\"/>\r\n      <base-button mode=\"secondary-phantom-blue\" class=\"w-full\" :text=\"$t('app.apply')\" @click=\"applyFilters\"/>\r\n    </template>\r\n  </base-slide-panel>\r\n</template>\r\n\r\n<script>\r\nimport { i18n } from '@/i18n'\r\nimport { ROLES } from '@/config/roles'\r\nimport { TIPOS_GRUPO } from '@/config/tipos-grupo'\r\n\r\nexport default {\r\n  /* eslint-disable camelcase */\r\n  name: 'filter-panel',\r\n  props: {\r\n    panelOpen: {\r\n      type: Boolean,\r\n      default: false\r\n    }\r\n  },\r\n  data: function () {\r\n    return {\r\n      vuexnamespace: 'usergroups',\r\n      isOpen: this.panelOpen,\r\n      links: [],\r\n      form: {\r\n        id: { label: i18n.t('configurations.id'), value: '' },\r\n        name: { label: i18n.t('configurations.username'), value: '' },\r\n        tipoGrupo: { label: i18n.t('configurations.type'), value: '' },\r\n        temporal: { label: i18n.t('app.temporal'), value: '' },\r\n        verTodoGroups: { label: i18n.t('configurations.ver_todo_groups'), value: '' },\r\n        verTodoStatuses: { label: i18n.t('configurations.ver_todo_statuses'), value: '' },\r\n        verTodoCompanies: { label: i18n.t('configurations.ver_todo_companies'), value: '' },\r\n        send_alerts: { label: 'Enviar avisos', value: '' },\r\n        enviarAvisosUsuarios: { label: i18n.t('companies.send_alerts_users'), value: '' },\r\n        email: { label: i18n.t('configurations.email'), value: '' },\r\n        phone: { label: i18n.t('configurations.phone'), value: '' },\r\n      },\r\n      tiposGrupos: TIPOS_GRUPO.map(x => ({ label: x.name, value: x.id })),\r\n      values: [\r\n        {\r\n          value: true,\r\n          label: i18n.t('app.yes')\r\n        },\r\n        {\r\n          value: false,\r\n          label: i18n.t('app.no')\r\n        }\r\n      ],\r\n    }\r\n  },\r\n\r\n  watch: {\r\n    panelOpen: {\r\n      handler: 'panelOpenHandler'\r\n    }\r\n  },\r\n  mounted: async function () {\r\n  },\r\n  computed: {\r\n    role: function () {\r\n      return this.$store.getters['auth/role']\r\n    },\r\n    roles: function () {\r\n      return ROLES.filter(r => {\r\n        if (r.only) {\r\n          return r.only.includes(this.role)\r\n        }\r\n        return true\r\n      })\r\n    },\r\n    hasPermModuleSMS () {\r\n      return this.$store.getters['auth/hasModuleEnvioSMS'] &&\r\n        (this.role === 'Administrador' || this.role === 'AdminDistribuidor' || this.role === 'SuperAdminDistribuidor' || this.role === 'SuperAdministrador') \r\n    },\r\n  },\r\n  methods: {\r\n    panelOpenHandler: function (data) {\r\n      const _temp = this.$store.getters[this.vuexnamespace + '/getMasterFilters']\r\n      if (_temp) {\r\n        this.resetForm()\r\n        this.form.name.value = _temp.name !== undefined && _temp.name.value !== '' ? _temp.name.value : ''\r\n        this.form.tipoGrupo.value = _temp.tipoGrupo !== undefined && _temp.tipoGrupo.value !== '' ? _temp.tipoGrupo.value : ''\r\n        this.form.temporal.value = _temp.temporal !== undefined && _temp.temporal.value !== '' ? _temp.temporal.value : ''\r\n        this.form.verTodoGroups.value = _temp.verTodoGroups !== undefined && _temp.verTodoGroups.value !== '' ? _temp.verTodoGroups.value : ''\r\n        this.form.verTodoStatuses.value = _temp.verTodoStatuses !== undefined && _temp.verTodoStatuses.value !== '' ? _temp.verTodoStatuses.value : ''\r\n        this.form.verTodoCompanies.value = _temp.verTodoCompanies !== undefined && _temp.verTodoCompanies.value !== '' ? _temp.verTodoCompanies.value : ''\r\n        this.form.send_alerts.value = _temp.send_alerts !== undefined && _temp.send_alerts ? _temp.send_alerts.value : ''\r\n        this.form.enviarAvisosUsuarios.value = _temp.enviarAvisosUsuarios !== undefined && _temp.enviarAvisosUsuarios ? _temp.enviarAvisosUsuarios.value : ''\r\n        this.form.email.value = _temp.email !== undefined && _temp.email.value !== '' ? _temp.email.value : ''\r\n        this.form.phone.value = _temp.phone !== undefined && _temp.phone.value !== '' ? _temp.phone.value : ''\r\n      }\r\n    },\r\n    togglePanel: function () {\r\n      this.isOpen = !this.isOpen\r\n      // this.resetForm()\r\n      this.$emit('togglePanel')\r\n    },\r\n    resetForm: function () {\r\n      this.form = {\r\n        id: { label: i18n.t('configurations.id'), value: '' },\r\n        name: { label: i18n.t('configurations.username'), value: '' },\r\n        tipoGrupo: { label: i18n.t('configurations.type'), value: '' },\r\n        temporal: { label: i18n.t('app.temporal'), value: '' },\r\n        verTodoGroups: { label: i18n.t('configurations.ver_todo_groups'), value: '' },\r\n        verTodoStatuses: { label: i18n.t('configurations.ver_todo_statuses'), value: '' },\r\n        verTodoCompanies: { label: i18n.t('configurations.ver_todo_companies'), value: '' },\r\n        send_alerts: { label: 'Enviar avisos', value: '' },\r\n        enviarAvisosUsuarios: { label: i18n.t('companies.send_alerts_users'), value: '' },\r\n        email: { label: i18n.t('configurations.email'), value: '' },\r\n        phone: { label: i18n.t('configurations.phone'), value: '' },\r\n      }\r\n    },\r\n    applyFilters: function () {\r\n      this.$store.commit(this.vuexnamespace + '/setMasterFilters', this.form)\r\n      this.$emit('applyFilters', true)\r\n      this.isOpen = !this.isOpen\r\n      this.$emit('togglePanel')\r\n    },\r\n    querySearch: function (queryString, cb) {\r\n      const links = this.links\r\n      const results = queryString ? links.filter(this.createFilter(queryString)) : links\r\n      // call callback function to return suggestions\r\n      cb(results)\r\n    },\r\n    createFilter: function (queryString) {\r\n      return (link) => {\r\n        return (link.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0)\r\n      }\r\n    },\r\n    handleSelect: function (item) {\r\n      // console.log(item)\r\n    },\r\n    handleSelectCliente: function (item) {\r\n      this.form.empresa.value = item.id\r\n    },\r\n    handleSelectRole: function (item) {\r\n      this.form.role.value = item.id\r\n    },\r\n    handleSelectTipoAuth: function (item) {\r\n      this.form.tipoAuth.value = item.id\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!./GroupsFilterByUser.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!./GroupsFilterByUser.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./GroupsFilterByUser.vue?vue&type=template&id=04a096dd\"\nimport script from \"./GroupsFilterByUser.vue?vue&type=script&lang=js\"\nexport * from \"./GroupsFilterByUser.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('base-dialog-button',{attrs:{\"isOpen\":_vm.dialogOpen},on:{\"closeDialog\":_vm.toggleDialog}},[_c('template',{slot:\"header\"},[_c('div',{staticClass:\"h-16 bg-secondary flex items-center justify-between text-white px-4\"},[_c('div',{staticClass:\"flex items-center\"},[_c('h2',{staticClass:\"font-bold ml-2\"},[_vm._v(_vm._s(_vm.$t('groups.link')))])]),_c('span',{staticClass:\"cursor-pointer\",on:{\"click\":_vm.toggleDialog}},[_c('base-button-icon',{attrs:{\"name\":\"cross\",\"size\":\"xs\",\"iconSize\":\"sm\",\"mode\":\"secondary\"}})],1)])]),_c('template',{slot:\"main\"},[_c('div',{ref:\"containerSelect\",staticClass:\"form-wrapper p-4 overflow-x-hidden\",style:({'height':_vm.heightContainerSelect})},[_c('el-form',{ref:\"ruleForm\"},[_c('div',{staticClass:\"lg:mb-2\"},[_c('div',{ref:\"selectRef\"},[_c('label',{staticClass:\"text-sm font-semibold text-secondary-600 block mb-1\"},[_vm._v(_vm._s(_vm.$t('app.groups')))]),_c('el-form-item',{attrs:{\"prop\":\"groupId\"}},[_c('base-el-select',{ref:\"groupsSelector\",staticClass:\"w-full\",attrs:{\"groups\":_vm.listaGroupsGrouping,\"multiple\":\"\",\"filterable\":\"\",\"disabled\":_vm.isLoadingSelect},on:{\"visible-change\":_vm.onExpand,\"change\":_vm.onChangeInput,\"select-all\":function (loading) { return _vm.loadingActionSelect = loading; },\"unselect-all\":function (loading) { return _vm.loadingActionUnSelect = loading; }},model:{value:(_vm.form.groupId),callback:function ($$v) {_vm.$set(_vm.form, \"groupId\", $$v)},expression:\"form.groupId\"}})],1)],1)]),_vm._l((0),function(i){return _c('p',{key:i},[_vm._v(\"form\")])})],2)],1)]),_c('template',{slot:\"footer\"},[(!_vm.isAllSelected)?_c('base-button',{staticClass:\"w-full\",attrs:{\"mode\":\"secondary-phantom-blue\",\"disabled\":!_vm.isLoadedData || _vm.isLoadingSelect || _vm.isEmptyList,\"text\":_vm.$t('app.select_all'),\"loading\":_vm.isLoadingSelect},on:{\"click\":function($event){return _vm.$refs.groupsSelector.selectAll()}}}):_c('base-button',{staticClass:\"w-full\",attrs:{\"text\":_vm.$t('app.unselect_all'),\"mode\":\"secondary-phantom-blue\",\"loading\":_vm.isLoadingSelect,\"disabled\":_vm.isLoadingSelect || _vm.isEmptyList},on:{\"click\":function($event){return _vm.$refs.groupsSelector.unselectAll()}}}),_c('div',{staticClass:\"w-48 \"}),_c('base-button',{staticClass:\"w-full\",attrs:{\"mode\":\"secondary-phantom-blue\",\"text\":_vm.$t('app.cancel'),\"loading\":_vm.isLoadingSelect,\"disabled\":_vm.isLoadingSelect},on:{\"click\":_vm.toggleDialog}}),_c('base-button',{staticClass:\"w-full\",attrs:{\"mode\":\"secondary-phantom-blue\",\"text\":_vm.$t('app.accept'),\"loading\":_vm.isLoadingSelect,\"disabled\":_vm.isLoadingSelect},on:{\"click\":_vm.apply}})],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <base-dialog-button :isOpen=\"dialogOpen\" @closeDialog=\"toggleDialog\">\r\n    <template slot=\"header\">\r\n      <div class=\"h-16 bg-secondary flex items-center justify-between text-white px-4\">\r\n        <div class=\"flex items-center\">\r\n          <h2 class=\"font-bold ml-2\">{{$t('groups.link')}}</h2>\r\n        </div>\r\n        <span class=\"cursor-pointer\" @click=\"toggleDialog\">\r\n          <base-button-icon name=\"cross\" size=\"xs\" iconSize=\"sm\" mode=\"secondary\" />\r\n        </span>\r\n      </div>\r\n    </template>\r\n    <template slot=\"main\">\r\n      <div \r\n        class=\"form-wrapper p-4 overflow-x-hidden\"\r\n        ref=\"containerSelect\"\r\n        :style=\"{'height':heightContainerSelect}\"\r\n        >\r\n        <el-form\r\n          ref=\"ruleForm\"\r\n        >\r\n          <div class=\"lg:mb-2\">\r\n            <div ref=\"selectRef\">\r\n              <label class=\"text-sm font-semibold text-secondary-600 block mb-1\">{{$t('app.groups')}}</label>\r\n              <el-form-item prop=\"groupId\">\r\n                <base-el-select ref=\"groupsSelector\" class=\"w-full\" :groups=\"listaGroupsGrouping\" v-model=\"form.groupId\" multiple filterable :disabled=\"isLoadingSelect\"\r\n                  @visible-change=\"onExpand\" @change=\"onChangeInput\" @select-all=\"loading => loadingActionSelect = loading\" @unselect-all=\"loading => loadingActionUnSelect = loading\" />\r\n              </el-form-item>\r\n            </div>\r\n          </div>\r\n          <p v-for=\"i in 0\" :key=\"i\">form</p>\r\n        </el-form>\r\n      </div>\r\n    </template>\r\n    <template slot=\"footer\">\r\n        <base-button mode=\"secondary-phantom-blue\"\r\n            class=\"w-full\"\r\n          v-if=\"!isAllSelected\" \r\n          :disabled=\"!isLoadedData || isLoadingSelect || isEmptyList\" \r\n          :text=\"$t('app.select_all')\" \r\n          @click=\"$refs.groupsSelector.selectAll()\" \r\n          :loading=\"isLoadingSelect\"\r\n          />\r\n        <base-button v-else :text=\"$t('app.unselect_all')\" mode=\"secondary-phantom-blue\"\r\n            class=\"w-full\"\r\n          @click=\"$refs.groupsSelector.unselectAll()\"\r\n          :loading=\"isLoadingSelect\"\r\n          :disabled=\"isLoadingSelect || isEmptyList\"\r\n          />\r\n          <div class=\"w-48 \"></div>\r\n        <base-button @click=\"toggleDialog\" mode=\"secondary-phantom-blue\" :text=\"$t('app.cancel')\" \r\n            class=\"w-full\"\r\n          :loading=\"isLoadingSelect\"\r\n          :disabled=\"isLoadingSelect\"/>\r\n        <base-button mode=\"secondary-phantom-blue\" class=\"w-full\" :text=\"$t('app.accept')\" @click=\"apply\" \r\n          :loading=\"isLoadingSelect\"\r\n          :disabled=\"isLoadingSelect\"/>\r\n    </template>\r\n  </base-dialog-button>\r\n</template>\r\n\r\n<script>\r\nimport { getGroupsSimple } from '@/services/configurations/groups/getGroupsSimple'\r\n\r\nexport default\r\n{\r\n  name: 'user-link-groups-dialog',\r\n  components: {\r\n  },\r\n  props: {\r\n    dialogOpen: {\r\n      type: Boolean,\r\n      default: false\r\n    },\r\n  },\r\n  data: function () {\r\n    return {\r\n      heightSelect: 0,\r\n      heightInput: 64,\r\n      isOpen: this.dialogOpen,\r\n      form: {\r\n        groupId: []\r\n      },\r\n      groups: [],\r\n      isLoadedData: false,\r\n      loadingActionSelect: false,\r\n      loadingActionUnSelect: false\r\n    }\r\n  },\r\n  mounted: async function () {\r\n    this.isLoadedData = false\r\n    const data = await getGroupsSimple({ idUsuario: this.$route.params.id })\r\n    if (data.blnError === true) {\r\n      this.doFeedback(data.msgError + ' [' + data.codError + ']')\r\n    } else {\r\n      data.Respuesta.forEach(row => {\r\n        this.groups.push({ groupId: row.IdGrupo, value: row.Nombre, group: row.Tipo })\r\n      })\r\n    }\r\n    this.isLoadedData = true\r\n  },\r\n  watch: {\r\n    dialogOpen: function (value, oldValue) {\r\n      if (value !== oldValue) {\r\n        this.isOpen = value\r\n        this.heightSelect = 0\r\n      }\r\n    }\r\n  },\r\n  computed: {\r\n    listaGroupsGrouping () {\r\n      return this.groups.reduce((a, b) => ({ ...a, [b.group]: [...(a[b.group] || []), b] }), {})\r\n    },\r\n    isEmptyList: function () {\r\n      return this.groups === undefined || this.groups === null || this.groups.length === 0\r\n    },\r\n    isLoadingSelect: function () {\r\n      return this.loadingActionUnSelect || this.loadingActionSelect\r\n    },\r\n    isAllSelected: function () {\r\n      if (this.groups.length === this.form.groupId.length) return true\r\n      else return false\r\n    },\r\n    heightContainerSelect: function () {\r\n      if (this.heightSelect !== undefined && this.heightSelect !== 0) {\r\n        let heightCalc = this.heightSelect + this.heightInput + 30\r\n        if (heightCalc > 400) heightCalc = 400\r\n        return heightCalc + 'px'\r\n      } else {\r\n        return 'auto'\r\n      }\r\n    },\r\n  },\r\n  methods: {\r\n    onExpand (value) {\r\n      this.onChangeInput()\r\n      if (value) {\r\n        setTimeout(() => {\r\n          const elementsScrollBar = document.getElementsByClassName('el-scrollbar')\r\n          this.heightSelect = elementsScrollBar[elementsScrollBar.length - 1]?.clientHeight ?? 0\r\n        }, 100)\r\n      } else {\r\n        this.heightSelect = 0\r\n      }\r\n    },\r\n    onChangeInput () {\r\n      setTimeout(() => {\r\n        this.heightInput = this.$refs.selectRef?.clientHeight ?? 0\r\n      }, 100)\r\n    },\r\n    toggleDialog: function () {\r\n      if (this.dialogOpen && this.isLoadingSelect) return\r\n      this.isOpen = !this.isOpen\r\n      this.$emit('toggleDialog')\r\n      this.form.groupId = []\r\n    },\r\n    apply: function () {\r\n      this.isOpen = !this.isOpen\r\n      this.$emit('applyDialog', this.form.groupId)\r\n      this.form.groupId = []\r\n    },\r\n  }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped></style>\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!./UserLinkGroupsDialog.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!./UserLinkGroupsDialog.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UserLinkGroupsDialog.vue?vue&type=template&id=e7830692&scoped=true\"\nimport script from \"./UserLinkGroupsDialog.vue?vue&type=script&lang=js\"\nexport * from \"./UserLinkGroupsDialog.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  \"e7830692\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('base-dialog-button',{attrs:{\"isOpen\":_vm.dialogOpen},on:{\"closeDialog\":_vm.toggleDialog}},[_c('template',{slot:\"header\"},[_c('div',{staticClass:\"h-16 bg-secondary flex items-center justify-between text-white px-4\"},[_c('div',{staticClass:\"flex items-center\"},[_c('h2',{staticClass:\"font-bold ml-2\"},[_vm._v(_vm._s(_vm.title))])]),_c('span',{staticClass:\"cursor-pointer\",on:{\"click\":_vm.toggleDialog}},[_c('base-button-icon',{attrs:{\"name\":\"cross\",\"size\":\"xs\",\"iconSize\":\"sm\",\"mode\":\"secondary\"}})],1)])]),_c('template',{slot:\"main\"},[_c('div',{ref:\"containerSelect\",staticClass:\"form-wrapper p-4 overflow-x-hidden\",style:({'height':_vm.heightContainerSelect})},[_c('el-form',{ref:\"ruleForm\"},[_c('div',{staticClass:\"lg:mb-2\"},[_c('div',{ref:\"selectRef\"},[_c('label',{staticClass:\"text-sm font-semibold text-secondary-600 block mb-1\"},[_vm._v(_vm._s(_vm.$t('app.users')))]),_c('el-form-item',{attrs:{\"prop\":\"users\"}},[_c('base-el-select',{ref:\"usersSelect\",staticClass:\"w-full\",attrs:{\"options\":_vm.users,\"multiple\":\"\",\"filterable\":\"\",\"disabled\":_vm.isLoadingSelect},on:{\"visible-change\":_vm.onExpand,\"change\":_vm.onChangeInput},model:{value:(_vm.form.users),callback:function ($$v) {_vm.$set(_vm.form, \"users\", $$v)},expression:\"form.users\"}})],1)],1)]),_c('div',{staticClass:\"lg:mb-2 \"},[_c('label',{staticClass:\"text-sm font-semibold text-secondary-600 block mb-1\"},[_vm._v(_vm._s(_vm.labelOrigen))]),_c('el-radio-group',{staticClass:\"flex flex-col md:inline-block\",model:{value:(_vm.form.radioOrigen),callback:function ($$v) {_vm.$set(_vm.form, \"radioOrigen\", $$v)},expression:\"form.radioOrigen\"}},[_c('el-radio-button',{attrs:{\"label\":0}},[_vm._v(\"Todos\")]),_c('el-radio-button',{staticClass:\"border-l-2 dark:border-darkblue-300\",attrs:{\"label\":1}},[_vm._v(\"Temporales\")]),_c('el-radio-button',{staticClass:\"border-l-2 dark:border-darkblue-300\",attrs:{\"label\":2}},[_vm._v(\"Permanentes\")])],1)],1),_c('div',{staticClass:\"lg:mb-2\"},[_c('label',{staticClass:\"text-sm font-semibold text-secondary-600 block mb-1\"},[_vm._v(_vm._s(_vm.labelDestino))]),_c('el-radio-group',{staticClass:\"flex flex-col md:inline-block\",model:{value:(_vm.form.radioDestino),callback:function ($$v) {_vm.$set(_vm.form, \"radioDestino\", $$v)},expression:\"form.radioDestino\"}},[_c('el-radio-button',{directives:[{name:\"popover\",rawName:\"v-popover:popovermantener\",arg:\"popovermantener\"}],attrs:{\"label\":0}},[_vm._v(\" Mantener estado de origen \")]),_c('el-popover',{ref:\"popovermantener\",attrs:{\"placement\":\"left\",\"width\":\"300\",\"value\":_vm.form.radioDestino === 0 && _vm.form.radioOrigen !== 1,\"popper-class\":\"dark:bg-darkblue dark:border-darkblue-600 dark:text-darkblue-200\",\"trigger\":\"manual\"}},[_c('div',{staticClass:\"break-normal\"},[_vm._v(\"Es posible que se sobreescriban los vínculos temporales como permanentes en los usuarios destinos si estos usuarios ya tienen estos vínculos como temporales.\")])]),_c('el-radio-button',{staticClass:\"border-l-2 dark:border-darkblue-300\",attrs:{\"label\":1}},[_vm._v(\"Temporales\")]),_c('el-radio-button',{directives:[{name:\"popover\",rawName:\"v-popover:popoverpermanentes\",arg:\"popoverpermanentes\"}],staticClass:\"border-l-2 dark:border-darkblue-300\",attrs:{\"label\":2}},[_vm._v(\" Permanentes \")]),_c('el-popover',{ref:\"popoverpermanentes\",attrs:{\"placement\":\"right\",\"width\":\"300\",\"value\":_vm.form.radioDestino === 2,\"popper-class\":\"dark:bg-darkblue dark:border-darkblue-600 dark:text-darkblue-200\",\"trigger\":\"manual\"}},[_c('div',{staticClass:\"break-normal\"},[_vm._v(\"Los vínculos ya existentes en los usuarios destinos se sobreescribirán como permanentes.\")])])],1)],1)])],1)]),_c('template',{slot:\"footer\"},[(!_vm.isAllSelected)?_c('base-button',{staticClass:\"w-full\",attrs:{\"mode\":\"secondary-phantom-blue\",\"disabled\":!_vm.isLoadedData || _vm.isLoadingSelect || _vm.isEmptyList,\"text\":_vm.$t('app.select_all'),\"loading\":_vm.isLoadingSelect},on:{\"click\":function($event){return _vm.$refs.usersSelect.selectAll()}}}):_c('base-button',{staticClass:\"w-full\",attrs:{\"text\":_vm.$t('app.unselect_all'),\"mode\":\"secondary-phantom-blue\",\"loading\":_vm.isLoadingSelect,\"disabled\":_vm.isLoadingSelect || _vm.isEmptyList},on:{\"click\":function($event){return _vm.$refs.usersSelect.unselectAll()}}}),_c('div',{staticClass:\"w-48 \"}),_c('base-button',{staticClass:\"w-full\",attrs:{\"mode\":\"secondary-phantom-blue\",\"text\":_vm.$t('app.cancel'),\"loading\":_vm.isLoadingSelect,\"disabled\":_vm.isLoadingSelect},on:{\"click\":_vm.toggleDialog}}),_c('base-button',{staticClass:\"w-full\",attrs:{\"mode\":\"secondary-phantom-blue\",\"text\":_vm.$t('app.accept'),\"loading\":_vm.isLoadingSelect,\"disabled\":_vm.isLoadingSelect},on:{\"click\":_vm.apply}})],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <base-dialog-button :isOpen=\"dialogOpen\" @closeDialog=\"toggleDialog\">\r\n    <template slot=\"header\">\r\n      <div class=\"h-16 bg-secondary flex items-center justify-between text-white px-4\">\r\n        <div class=\"flex items-center\">\r\n          <h2 class=\"font-bold ml-2\">{{title}}</h2>\r\n        </div>\r\n        <span class=\"cursor-pointer\" @click=\"toggleDialog\">\r\n          <base-button-icon name=\"cross\" size=\"xs\" iconSize=\"sm\" mode=\"secondary\" />\r\n        </span>\r\n      </div>\r\n    </template>\r\n    <template slot=\"main\">\r\n      <div \r\n        class=\"form-wrapper p-4 overflow-x-hidden\"\r\n        ref=\"containerSelect\"\r\n        :style=\"{'height':heightContainerSelect}\"\r\n        >\r\n        <el-form\r\n          ref=\"ruleForm\"\r\n        >\r\n          <div class=\"lg:mb-2\">\r\n            <div ref=\"selectRef\">\r\n              <label class=\"text-sm font-semibold text-secondary-600 block mb-1\">{{$t('app.users')}}</label>\r\n              <el-form-item prop=\"users\">\r\n                <base-el-select ref=\"usersSelect\" class=\"w-full\" :options=\"users\" v-model=\"form.users\" multiple filterable :disabled=\"isLoadingSelect\" @visible-change=\"onExpand\" @change=\"onChangeInput\" />\r\n              </el-form-item>\r\n            </div>\r\n          </div>\r\n\r\n          <div class=\"lg:mb-2 \">\r\n            <label class=\"text-sm font-semibold text-secondary-600 block mb-1\">{{labelOrigen}}</label>\r\n            <el-radio-group v-model=\"form.radioOrigen\" class=\"flex flex-col md:inline-block\">\r\n              <el-radio-button :label=\"0\">Todos</el-radio-button>\r\n              <el-radio-button class=\"border-l-2 dark:border-darkblue-300\" :label=\"1\">Temporales</el-radio-button>\r\n              <el-radio-button class=\"border-l-2 dark:border-darkblue-300\" :label=\"2\">Permanentes</el-radio-button>\r\n            </el-radio-group>\r\n          </div>\r\n          \r\n          <div class=\"lg:mb-2\">\r\n            <label class=\"text-sm font-semibold text-secondary-600 block mb-1\">{{labelDestino}}</label>\r\n            <el-radio-group v-model=\"form.radioDestino\" class=\"flex flex-col md:inline-block\">\r\n              <el-radio-button \r\n                :label=\"0\"\r\n                v-popover:popovermantener\r\n                >\r\n                Mantener estado de origen\r\n              </el-radio-button>\r\n              <el-popover\r\n                ref=\"popovermantener\"\r\n                placement=\"left\"\r\n                width=\"300\"\r\n                :value=\"form.radioDestino === 0 && form.radioOrigen !== 1\"\r\n                popper-class=\"dark:bg-darkblue dark:border-darkblue-600 dark:text-darkblue-200\"\r\n                trigger=\"manual\"\r\n                >\r\n                <div class=\"break-normal\">Es posible que se sobreescriban los vínculos \r\n                temporales como permanentes en los usuarios \r\n                destinos si estos usuarios ya tienen estos \r\n                vínculos como temporales.</div>\r\n              </el-popover>\r\n              <el-radio-button class=\"border-l-2 dark:border-darkblue-300\" :label=\"1\">Temporales</el-radio-button>\r\n              <el-radio-button \r\n                class=\"border-l-2 dark:border-darkblue-300\" \r\n                :label=\"2\"\r\n                v-popover:popoverpermanentes\r\n                >\r\n                Permanentes\r\n              </el-radio-button>\r\n              <el-popover\r\n                ref=\"popoverpermanentes\"\r\n                placement=\"right\"\r\n                width=\"300\"\r\n                :value=\"form.radioDestino === 2\"\r\n                popper-class=\"dark:bg-darkblue dark:border-darkblue-600 dark:text-darkblue-200\"\r\n                trigger=\"manual\"\r\n                >\r\n                <div class=\"break-normal\">Los vínculos ya existentes en los \r\n                usuarios destinos se sobreescribirán\r\n                como permanentes.</div>\r\n              </el-popover>\r\n            </el-radio-group>\r\n          </div>\r\n\r\n        </el-form>\r\n      </div>\r\n    </template>\r\n    <template slot=\"footer\">\r\n        <base-button mode=\"secondary-phantom-blue\"\r\n          class=\"w-full\"\r\n          v-if=\"!isAllSelected\" \r\n          :disabled=\"!isLoadedData || isLoadingSelect || isEmptyList\" \r\n          :text=\"$t('app.select_all')\"\r\n          @click=\"$refs.usersSelect.selectAll()\"\r\n          :loading=\"isLoadingSelect\"\r\n          />\r\n        <base-button v-else :text=\"$t('app.unselect_all')\" mode=\"secondary-phantom-blue\"\r\n          class=\"w-full\"\r\n          @click=\"$refs.usersSelect.unselectAll()\"\r\n          :loading=\"isLoadingSelect\"\r\n          :disabled=\"isLoadingSelect || isEmptyList\"\r\n          />\r\n          <div class=\"w-48 \"></div>\r\n        <base-button @click=\"toggleDialog\" mode=\"secondary-phantom-blue\" :text=\"$t('app.cancel')\" \r\n          class=\"w-full\"\r\n          :loading=\"isLoadingSelect\"\r\n          :disabled=\"isLoadingSelect\"/>\r\n        <base-button mode=\"secondary-phantom-blue\" class=\"w-full\" :text=\"$t('app.accept')\" @click=\"apply\" \r\n          :loading=\"isLoadingSelect\"\r\n          :disabled=\"isLoadingSelect\"/>\r\n    </template>\r\n  </base-dialog-button>\r\n</template>\r\n\r\n<script>\r\nimport BaseDialogButton from './base/BaseDialogButton.vue'\r\nimport { getAllUsers } from '@/services/configurations/getAllUsers'\r\nimport { i18n } from '@/i18n'\r\n\r\nexport default\r\n{\r\n  name: 'user-link-users-dialog',\r\n  components: {\r\n    BaseDialogButton\r\n  },\r\n  props: {\r\n    dialogOpen: {\r\n      type: Boolean,\r\n      default: false\r\n    },\r\n    idUsuario: {\r\n      type: [Number, String],\r\n      default: -1\r\n    },\r\n    title: {\r\n      type: String,\r\n      default: '',\r\n    },\r\n    labelOrigen: {\r\n      type: String,\r\n      default: i18n.t('app.origen')\r\n    },\r\n    labelDestino: {\r\n      type: String,\r\n      default: i18n.t('app.destino')\r\n    }\r\n  },\r\n  data: function () {\r\n    return {\r\n      heightSelect: 0,\r\n      heightInput: 64,\r\n      isOpen: this.dialogOpen,\r\n      form: {\r\n        users: [],\r\n        radioOrigen: 2,\r\n        radioDestino: 1,\r\n      },\r\n      users: [],\r\n      isLoadedData: false,\r\n      loadingActionSelect: false,\r\n      loadingActionUnSelect: false\r\n    }\r\n  },\r\n  mounted: async function () {\r\n    this.isLoadedData = false\r\n    const data = await getAllUsers({ idUsuario: this.idUsuario })\r\n    if (data.blnError === true) {\r\n      this.doFeedback(data.msgError + ' [' + data.codError + ']')\r\n    } else {\r\n      data.respuesta.forEach(row => {\r\n        this.users.push({ value: row.IdUsuario, label: row.Usuario })\r\n      })\r\n    }\r\n    this.isLoadedData = true\r\n  },\r\n  computed: {\r\n    isEmptyList: function () {\r\n      return this.users === undefined || this.users === null || this.users.length === 0\r\n    },\r\n    isLoadingSelect: function () {\r\n      return this.loadingActionUnSelect || this.loadingActionSelect\r\n    },\r\n    isAllSelected: function () {\r\n      if (this.users.length === this.form.users.length) return true\r\n      else return false\r\n    },\r\n    heightContainerSelect: function () {\r\n      if (this.heightSelect !== undefined && this.heightSelect !== 0) {\r\n        const maxHeight = 400\r\n        const nextHeight = this.heightSelect + this.heightInput + 30\r\n        const minHeigth = this.$refs.containerSelect?.clientHeight ?? 0\r\n        const heightCalc = Math.min(Math.max(nextHeight, minHeigth), maxHeight)\r\n        return heightCalc + 'px'\r\n      } else {\r\n        return 'auto'\r\n      }\r\n    },\r\n  },\r\n  methods: {\r\n    onExpand (value) {\r\n      this.onChangeInput()\r\n      if (value) {\r\n        setTimeout(() => {\r\n          this.heightSelect = document.getElementsByClassName('el-scrollbar')[0]?.clientHeight\r\n        }, 100)\r\n      } else {\r\n        this.heightSelect = 0\r\n      }\r\n    },\r\n    onChangeInput () {\r\n      setTimeout(() => {\r\n        this.heightInput = this.$refs.selectRef.clientHeight\r\n      }, 100)\r\n    },\r\n    toggleDialog: function () {\r\n      if (this.dialogOpen && this.isLoadingSelect) return\r\n      this.isOpen = !this.isOpen\r\n      this.$emit('toggleDialog')\r\n      this.form.users = []\r\n    },\r\n    apply: function () {\r\n      this.isOpen = !this.isOpen\r\n      this.$emit('applyDialog', this.form)\r\n      this.form.users = []\r\n    },\r\n  }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped></style>\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!./UserLinkUsersDialog.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!./UserLinkUsersDialog.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UserLinkUsersDialog.vue?vue&type=template&id=152a05ea&scoped=true\"\nimport script from \"./UserLinkUsersDialog.vue?vue&type=script&lang=js\"\nexport * from \"./UserLinkUsersDialog.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  \"152a05ea\",\n  null\n  \n)\n\nexport default component.exports","import axiosInstance from '@/services/axiosInstance'\r\nimport mock from '@/services/mock/index'\r\n\r\nasync function gGetUserGruposPag (order = {}, params = null) {\r\n  if (process.env.VUE_APP_ENVIRONMENT === 'test') {\r\n    return new Promise((resolve, reject) => {\r\n      const data = mock.getUsers\r\n      const pages = data.data.length\r\n\r\n      const clone = JSON.parse(JSON.stringify(data))\r\n      if (params !== null) {\r\n        console.log(clone.data)\r\n        clone.data = clone.data.slice(0, params.limit)\r\n      }\r\n\r\n      clone.meta.total = pages\r\n\r\n      resolve(clone)\r\n    })\r\n  } else {\r\n    const req = {\r\n      url: '/api/grupos/getusergrupospag',\r\n      method: 'POST',\r\n      headers: {\r\n        'Content-type': 'application/json',\r\n        'access-control-allow-origin': '*'\r\n      },\r\n      data: order,\r\n      params\r\n    }\r\n    const res = await axiosInstance(req)\r\n    return res.data\r\n  }\r\n}\r\n\r\nexport { gGetUserGruposPag }\r\n","import axiosInstance from '@/services/axiosInstance'\r\nimport mock from '@/services/mock/index'\r\n\r\nasync function gGetUserGruposExcel (payload = {}, params = null) {\r\n  if (process.env.VUE_APP_ENVIRONMENT === 'test') {\r\n    return new Promise((resolve, reject) => {\r\n      setTimeout(() => {\r\n        resolve(mock.getLanguages.data)\r\n      }, 500)\r\n    })\r\n  } else {\r\n    const req = {\r\n      url: '/api/grupos/getusergruposexcel',\r\n      method: 'POST',\r\n      headers: {\r\n        'Content-type': 'application/json',\r\n        'access-control-allow-origin': '*'\r\n      },\r\n      responseType: 'blob',\r\n      data: payload,\r\n      params\r\n    }\r\n    const res = await axiosInstance(req)\r\n    const response = {\r\n      data: res.data,\r\n      headers: res.headers\r\n    }\r\n    return response\r\n  }\r\n}\r\n\r\nexport { gGetUserGruposExcel }\r\n","import axiosInstance from '@/services/axiosInstance'\r\n\r\nasync function linkUserToGroups (data) {\r\n  if (process.env.VUE_APP_ENVIRONMENT === 'test') {\r\n    return new Promise((resolve, reject) => {\r\n      resolve()\r\n    })\r\n  } else {\r\n    const req = {\r\n      url: 'api/grupos/linkusergrupos',\r\n      method: 'PUT',\r\n      headers: {\r\n        'Content-type': 'application/json',\r\n        'access-control-allow-origin': '*'\r\n      },\r\n      data\r\n    }\r\n    const res = await axiosInstance(req)\r\n    return res.data\r\n  }\r\n}\r\n\r\nexport { linkUserToGroups }\r\n","import axiosInstance from '@/services/axiosInstance'\r\n\r\nasync function unlinkUserGroups (data) {\r\n  if (process.env.VUE_APP_ENVIRONMENT === 'test') {\r\n    return new Promise((resolve, reject) => {\r\n      resolve()\r\n    })\r\n  } else {\r\n    const req = {\r\n      url: 'api/grupos/unlinkusergrupos',\r\n      method: 'PUT',\r\n      headers: {\r\n        'Content-type': 'application/json',\r\n        'access-control-allow-origin': '*'\r\n      },\r\n      data\r\n    }\r\n    const res = await axiosInstance(req)\r\n    return res.data\r\n  }\r\n}\r\n\r\nexport { unlinkUserGroups }\r\n","import axiosInstance from '@/services/axiosInstance'\r\n\r\nasync function removeTemporalesGroups (params) {\r\n  if (process.env.VUE_APP_ENVIRONMENT === 'test') {\r\n    return new Promise((resolve, reject) => {\r\n      resolve()\r\n    })\r\n  } else {\r\n    const req = {\r\n      url: '/api/usuarios/eliminargrupostemporalesusuario',\r\n      method: 'DELETE',\r\n      headers: {\r\n        'Content-type': 'application/json',\r\n        'access-control-allow-origin': '*'\r\n      },\r\n      params,\r\n    }\r\n    const res = await axiosInstance(req)\r\n    return res.data\r\n  }\r\n}\r\n\r\nexport { removeTemporalesGroups }\r\n","import axiosInstance from '@/services/axiosInstance'\r\n\r\nasync function addTraspasoGroups (payload, params = null) {\r\n  if (process.env.VUE_APP_ENVIRONMENT === 'test') {\r\n    return new Promise((resolve, reject) => {\r\n      resolve()\r\n    })\r\n  } else {\r\n    const req = {\r\n      url: '/api/usuarios/traspasargruposusuarios',\r\n      method: 'PUT',\r\n      headers: {\r\n        'Content-type': 'application/json',\r\n        'access-control-allow-origin': '*'\r\n      },\r\n      data: payload,\r\n      params,\r\n    }\r\n    const res = await axiosInstance(req)\r\n    return res.data\r\n  }\r\n}\r\n\r\nexport { addTraspasoGroups }\r\n","<template>\r\n  <list-layout :tableTools=\"toggleTableTools\">\r\n    <template slot=\"header\">\r\n      <BaseHeader :content=\"header\" />\r\n    </template>\r\n    <template slot=\"table-core\">\r\n      <base-table-pagination\r\n        :total=\"pagination.total\"\r\n        :currentPage=\"pagination.currentPage\"\r\n        :perPage=\"pagination.pageSize\"\r\n        @changeCurrentPage=\"changeCurrentPage\"\r\n        @changePerPage=\"changePerPage\"\r\n      ></base-table-pagination>\r\n      <div class=\"flex flex-row w-100\">\r\n        <base-table-searches @toggleSearchesDialog=\"toggleSearchesDialog\" />\r\n        <base-table-search @toggleFilters=\"toggleFilters\" />\r\n      </div>\r\n    </template>\r\n    <template slot=\"table-tags\">\r\n      <base-table-filter-tags  :tags=\"tags\" @removeTag=\"removeFilterTagHanlder\" @removeAllTags=\"removeAllTagsHandler\" @saveTags=\"saveTagsHandler\"/>\r\n    </template>\r\n    <template slot=\"table-component\">\r\n      <kendo-grid-component class=\"kendo-pointer-default\"\r\n        :spanish=\"spanish\"\r\n        :dataResult='kendo.dataResult'\r\n        :kendo=\"kendo\"\r\n        :loading='isGeneralLoading'\r\n        :selectedField=\"selectedField\"\r\n        @datastatechange='dataStateChange'\r\n        @columnreorder='columnReorder'\r\n        @rowclick='openPath'\r\n        @columnssubmit='onColumnsSubmit'\r\n        @sortchange='sortChange'\r\n        @filterchange='filterChange'\r\n        @selectionchange=\"onSelectionChange\"\r\n        @headerselectionchange=\"onHeaderSelectionChange\">\r\n      </kendo-grid-component>\r\n    </template>\r\n    <template slot=\"layout-extend\">\r\n      <base-footer>\r\n        <template slot=\"actions\">\r\n          <base-button-responsive mode='primary' :text=\"labelBtnExcel\" icon='excelxls' @click='exportExcel' \r\n            :loading='isGeneralLoading || loadingExcel' :disabled=\"loadingExcel\"/>\r\n          <base-button-responsive mode='primary' :text=\"$t('configurations.delete_temporal')\" icon='unlink' @click='deleteTemporal' \r\n            :loading='isGeneralLoading' :disabled=\"isGeneralLoading\"/>\r\n          <base-button-responsive mode='primary' :text=\"$t('configurations.add_temporal_groups')\" icon='link' @click='toggleAddTemporal' \r\n            :loading='isGeneralLoading' :disabled=\"isGeneralLoading\"/>\r\n          <base-button-responsive mode=\"primary\" :text=\"$t('groups.link')\" icon=\"plus\" @click=\"golinkTagToUser\" \r\n            :loading=\"isGeneralLoading\"/>\r\n        </template>\r\n      </base-footer>\r\n      <base-table-select-actions-expand\r\n        :visibility=\"hasSelected\"\r\n        :selected=\"rowsSelected\"\r\n        :total=\"rowsTotal\"\r\n      >\r\n        <template slot=\"commons\">\r\n          <base-button size=\"xs\" mode=\"tools\" @click=\"unselect\">\r\n            <base-icon name=\"vall\" size=\"sm\" class=\"mr-1\" />\r\n            Deseleccionar\r\n          </base-button>\r\n        </template>\r\n        <template slot=\"more\">\r\n          <base-button-item-list theme=\"dark\" @click=\"unlink\">\r\n            <base-icon name=\"unlink\" class=\"mr-2\" />\r\n              Desvincular\r\n          </base-button-item-list>\r\n        </template>\r\n      </base-table-select-actions-expand>\r\n      <user-link-groups-dialog \r\n        :dialogOpen=\"linkGroupToUserDialog\" \r\n        :userId=\"this.$route.params.id\" \r\n        @toggleDialog=\"toggleDialogs\" \r\n        @applyDialog=\"applyLinkHandler\" \r\n        />\r\n      <user-link-users-dialog\r\n        :dialogOpen=\"addTemporalDialog\"\r\n        :idUsuario=\"this.$route.params.id\"\r\n        @toggleDialog=\"toggleAddTemporal\"\r\n        @applyDialog=\"applyAddTemporal\"\r\n        :labelOrigen=\"$t('app.origen_groups')\"\r\n        :labelDestino=\"$t('app.destino_groups')\"\r\n        :title=\"$t('configurations.add_temporal_groups')\"\r\n        />\r\n      <filter-panel :panelOpen=\"filterPanel\" @togglePanel=\"toggleFilters\" @applyFilters=\"applyFiltersHandler\" />\r\n      <create-search-dialog \r\n        :numberSearches=\"numberSearches\"\r\n        :idVista=\"idVista\" \r\n        :dialogOpen=\"saveSearchDialog\" \r\n        :tags=\"tags\" \r\n        @toggleDialog=\"toggleDialogSearches\" \r\n        @applyDialog=\"applySearchHandler\" />\r\n      <filter-panel-searches \r\n        ref=\"filterPanelSearches\" \r\n        :idVista=\"idVista\" \r\n        :vuexnamespace=\"vuexnamespace\" \r\n        :panelOpen=\"searchesPanel\" \r\n        @togglePanel=\"toggleSearchesDialog\" \r\n        @applyFilters=\"applyFiltersHandler\" \r\n        @updateNumberSearches=\"updateNumberSearches\"/>\r\n    </template>\r\n  </list-layout>\r\n</template>\r\n\r\n<script>\r\nimport { bus } from '@/main'\r\nimport ListLayout from '@/components/layout/ListLayout.vue'\r\nimport FilterPanel from '@/components/filters/GroupsFilterByUser.vue'\r\nimport FilterPanelSearches from '@/components/searches/SearchesPanel.vue'\r\nimport CreateSearchDialog from '@/components/searches/CreateSearchDialog.vue'\r\nimport { i18n } from '@/i18n'\r\nimport { process } from '@progress/kendo-data-query'\r\nimport KendoGridComponent from '../../components/KendoGridComponent.vue'\r\nimport UserLinkGroupsDialog from '@/components/UserLinkGroupsDialog.vue'\r\nimport UserLinkUsersDialog from '@/components/UserLinkUsersDialog.vue'\r\n\r\nimport { getUser } from '@/services/configurations/getUser'\r\n\r\nimport { gGetUserGruposPag } from '@/services/configurations/groups/gGetUserGruposPag'\r\nimport { gGetUserGruposExcel } from '@/services/configurations/groups/gGetUserGruposExcel'\r\n\r\nimport { linkUserToGroups } from '@/services/configurations/groups/linkUserToGroups'\r\nimport { unlinkUserGroups } from '@/services/configurations/groups/unlinkUserGroups'\r\nimport { removeTemporalesGroups } from '@/services/configurations/groups/removeTemporalesGroups'\r\nimport { addTraspasoGroups } from '@/services/configurations/groups/addTraspasoGroups'\r\n\r\nexport default {\r\n  name: 'groups-by-user',\r\n  components: {\r\n    ListLayout,\r\n    FilterPanel,\r\n    FilterPanelSearches,\r\n    CreateSearchDialog,\r\n    KendoGridComponent,\r\n    UserLinkGroupsDialog,\r\n    UserLinkUsersDialog\r\n  },\r\n  data: function () {\r\n    return {\r\n      idVista: 52,\r\n      // Searches\r\n      numberSearches: 0,\r\n      saveSearchDialog: false,\r\n      searchesPanel: false,\r\n      // All\r\n      loadingExcel: false,\r\n      showModal: false,\r\n      linkGroupToUserDialog: false,\r\n      addTemporalDialog: false,\r\n      spanish: true,\r\n      header: {\r\n        title: i18n.t('app.groups_link'),\r\n        icon: 'config',\r\n        breadcrumb: null,\r\n        url: 'configurations/users/details'\r\n      },\r\n      vuexnamespace: 'usergroups',\r\n      selectedField: 'selected',\r\n      filterPanel: false,\r\n      showAllRows: true,\r\n      loadingDataTable: false,\r\n      data: null,\r\n      selected: [],\r\n    }\r\n  },\r\n  computed: {\r\n    labelBtnExcel: function () {\r\n      if (this.hasSelected) return this.$i18n.t('app.export_excel') + ' (Seleccionados)'\r\n      return this.$i18n.t('app.export_excel')\r\n    },\r\n    kendo: function () {\r\n      return this.$store.getters[this.vuexnamespace + '/getKendo']\r\n    },\r\n    isHeadCoreReady: function () {\r\n      return this.$store.getters.isHeadCoreReady\r\n    },\r\n    toggleTableTools: function () {\r\n      return this.selected.length > 0\r\n    },\r\n    rowsSelected: function () {\r\n      return this.selected.length\r\n    },\r\n    rowsTotal: function () {\r\n      return this.selected.length\r\n    },\r\n    setLabelTowShow: function () {\r\n      return this.showAllRows ? 'Solo Seleccionadas' : 'Ver Todas'\r\n    },\r\n    masterFilters: function () {\r\n      return this.$store.getters[this.vuexnamespace + '/getMasterFilters']\r\n    },\r\n    isGeneralLoading: function () {\r\n      return this.$store.getters.isLoading\r\n    },\r\n    headerCoreFilters: function () {\r\n      return this.$store.getters['auth/queryHeaders']\r\n    },\r\n    tags: function () {\r\n      return this.$store.getters[this.vuexnamespace + '/getTags']\r\n    },\r\n    pagination: function () {\r\n      return this.$store.getters[this.vuexnamespace + '/getPaginationInfo']\r\n    },\r\n    columns () {\r\n      return [\r\n        { field: 'selected', width: '50px', headerSelectionValue: this.areAllSelected, reorderable: false, groupable: false },\r\n        ...this.kendo.columns\r\n      ]\r\n    },\r\n    areAllSelected () {\r\n      return this.data.length === this.selected.length\r\n    },\r\n    hasSelected () {\r\n      return this.selected.length > 0\r\n    },\r\n    role: function () {\r\n      return this.$store.getters['auth/role']\r\n    }\r\n  },\r\n  watch: {\r\n    headerCoreFilters: {\r\n      // immediate: true,\r\n      deep: true,\r\n      handler: 'headerCoreFiltersHandler'\r\n    },\r\n    data (val, oldVal) {\r\n      const dataState = {\r\n        skip: this.kendo.skip,\r\n        take: this.kendo.take,\r\n        sort: this.kendo.sort,\r\n        group: this.kendo.group\r\n      }\r\n      this.kendo.dataResult = process(val, dataState)\r\n      this.unselect()\r\n    }\r\n  },\r\n  created: function () {\r\n    // console.log('created: ')\r\n  },\r\n  mounted: async function () {\r\n    const userId = this.$route.params.id\r\n\r\n    // this.$store.commit(this.vuexnamespace + '/setCurrentPage', 1)\r\n    // this.$store.commit(this.vuexnamespace + '/resetMasterFilters')\r\n    this.$store.commit(this.vuexnamespace + '/setPageSize', this.kendo.take)\r\n\r\n    const breadcrumbs = []\r\n    if (this.role === 'AdminDistribuidor' || this.role === 'SuperAdminDistribuidor' || this.role === 'SuperAdministrador') {\r\n      breadcrumbs.push({\r\n        path: this.role === 'SuperAdministrador' ? 'configurationssa' : 'configurations',\r\n        name: this.$i18n.t('app.configurations')\r\n      })\r\n    } else {\r\n      breadcrumbs.push({\r\n        path: 'configurations',\r\n        name: this.$i18n.t('app.configurations')\r\n      })\r\n    }\r\n    breadcrumbs.push({ path: 'configurations/users', name: this.$i18n.t('app.users') })\r\n    \r\n    const user = await this.downloadData(userId)\r\n    breadcrumbs.push({ path: '', name: user.Usuario })\r\n    this.$store.commit('app/setheaderBreadCrumb', user.Usuario)\r\n    this.disableRoutes(user)\r\n\r\n    this.header.breadcrumb = breadcrumbs\r\n\r\n    this.data = await this.applyFilters()\r\n  },\r\n  methods: {\r\n    toggleAddTemporal () {\r\n      this.addTemporalDialog = !this.addTemporalDialog\r\n    },\r\n    applyAddTemporal: async function ({ users, radioOrigen, radioDestino }) {\r\n      try {\r\n        this.$store.commit('setIsLoading', true)\r\n        const idUsuario = this.$route.params.id\r\n        const payload = {\r\n          idUsuario: idUsuario,\r\n          idUsuarios: users,\r\n          TemporalOrigen: radioOrigen,\r\n          TemporalDestino: radioDestino,\r\n        }\r\n        const response = await addTraspasoGroups(payload)\r\n        if (response.blnError === true) {\r\n          this.doFeedback(response.msgError + ' [' + response.codError + ']')\r\n        } else {\r\n          this.applyFilters()\r\n          this.doFeedback('Traspaso realizado correctamente', 'success')\r\n        }\r\n      } catch (error) {\r\n        this.doFeedback()\r\n      } finally {\r\n        this.toggleAddTemporal()\r\n        this.$store.commit('setIsLoading', false)\r\n      }\r\n    },\r\n    deleteTemporal: async function () {\r\n      try {\r\n        this.$store.commit('setIsLoading', true)\r\n        const idUsuario = this.$route.params.id\r\n        const response = await removeTemporalesGroups({ idUsuario: idUsuario })\r\n        if (response.blnError === true) {\r\n          this.doFeedback(response.msgError + ' [' + response.codError + ']')\r\n        } else {\r\n          this.applyFilters()\r\n          this.doFeedback('Temporales eliminados correctamente', 'success')\r\n        }\r\n      } catch (error) {\r\n        this.doFeedback()\r\n      } finally {\r\n        this.$store.commit('setIsLoading', false)\r\n      }\r\n    },\r\n    disableRoutes: function (user) {\r\n      const isDisabledByRol = (user.Rol === 'AdminDistribuidor' || user.Rol === 'SuperAdminDistribuidor' || user.Rol === 'SuperAdministrador')\r\n      const isDisabledByProvider = user.Rol === 'Proveedor'\r\n      const objDisableRoutes = {\r\n        disableGroups: isDisabledByRol || isDisabledByProvider,\r\n        disableStatuses: user.VerTodoEstados || isDisabledByRol || isDisabledByProvider,\r\n        disableCompanies: user.verTodoCompanies || isDisabledByRol || isDisabledByProvider,\r\n        disableProviderCompanies: !isDisabledByProvider\r\n      }\r\n      bus.$emit('disableOptionsUser', objDisableRoutes)\r\n    },\r\n    updateAllSelectedHeader: function () {\r\n      if (!this.hasSelected) {\r\n        this.kendo.columns[0].headerSelectionValue = false\r\n      } else {\r\n        this.kendo.columns[0].headerSelectionValue = this.areAllSelected\r\n      }\r\n    },\r\n    openPath: function (event) {\r\n      // console.log('Ir a registro con ID: ', event.dataItem.id)\r\n      // this.$router.push({ name: 'configurations/tags/details', params: { id: event.dataItem.IdUsuario } })\r\n    },\r\n    toggleFilters: function () {\r\n      this.filterPanel = !this.filterPanel\r\n    },\r\n    toggleDialogs: function () {\r\n      this.linkGroupToUserDialog = !this.linkGroupToUserDialog\r\n    },\r\n    removeFilterTag: function (tag) {\r\n      this.tags.splice(this.tags.indexOf(tag), 1)\r\n    },\r\n    createAppState: function (dataState) {\r\n      this.kendo.take = dataState.take\r\n      this.kendo.skip = dataState.skip\r\n      if (dataState.group) {\r\n        // eslint-disable-next-line no-return-assign\r\n        // dataState.group.map(group => group.aggregates = this.aggregates)\r\n      }\r\n      this.kendo.group = dataState.group\r\n      this.kendo.filter = dataState.filter\r\n      this.kendo.sort = dataState.sort\r\n    },\r\n    dataStateChange: async function (event) {\r\n      this.createAppState(event.data)\r\n      this.data = await this.applyFilters()\r\n    },\r\n    columnReorder: function (options) {      \r\n      this.sendUpdatedColumns(options.columns)\r\n      this.kendo.columns.forEach((column, index) => {\r\n        if (options.columns.filter(x => x.field === column.field).length === 0) {\r\n          column.orderIndex = index + this.kendo.columns.length\r\n          options.columns.push(column)\r\n        }\r\n      })\r\n      this.kendo.columns = options.columns\r\n    },\r\n    exportExcel: async function () {\r\n      this.$store.commit('app/setLoading', true)\r\n      this.loadingExcel = true\r\n      const data = this.$store.getters[this.vuexnamespace + '/getAppliedFilters']\r\n      const params = {\r\n        idUsuario: this.$route.params.id,\r\n        temporal: data.temporal ? data.temporal.value : null,\r\n        nombre: data.name ? data.name.value : null,\r\n        tipo: data.tipoGrupo ? data.tipoGrupo.value : null,\r\n        VerTodoGrupos: data.verTodoGroups ? data.verTodoGroups.value : null,\r\n        VerTodoEstados: data.verTodoStatuses ? data.verTodoStatuses.value : null,\r\n        VerTodoEmpresas: data.verTodoCompanies ? data.verTodoCompanies.value : null,\r\n        email: data.email ? data.email.value : null,\r\n        numeroSMSGenerico: data.phone ? data.phone.value : null,\r\n        enviarAvisos: data.send_alerts ? data.send_alerts.value : null,\r\n        enviarAvisosUsuarios: data.enviarAvisosUsuarios ? data.enviarAvisosUsuarios.value : null,\r\n      }\r\n      const objOrder = this.getObjOrderMixin(this.kendo.group, this.kendo.sort)\r\n      const objColumnas = this.getColumnsGroupExcelMixin(this.kendo.columns, this.kendo.group)\r\n      const payload = { order: objOrder.order, grupos: objColumnas }\r\n      if (this.hasSelected) {\r\n        const selectedIDs = this.selected.map(x => x.IdGrupo)\r\n        payload.listaIDs = selectedIDs\r\n      }\r\n      try {\r\n        const response = await gGetUserGruposExcel(payload, params)\r\n        const blob = new Blob([response.data], { type: response.data.type, encoding: 'UTF-8' })\r\n        const link = document.createElement('a')\r\n        link.href = window.URL.createObjectURL(blob)\r\n        let filename = 'usuario-grupos.xlsx'\r\n        filename = decodeURI(filename)\r\n        link.download = filename\r\n        link.click()\r\n      } catch (error) {\r\n        console.error(error)\r\n        if (error.response?.data) {\r\n          const errorText = await error.response.data.text()\r\n          this.doFeedback(errorText)\r\n        } else {\r\n          this.doFeedback()\r\n        }\r\n      } finally {\r\n        this.$store.commit('app/setLoading', false)\r\n        this.loadingExcel = false\r\n      }\r\n    },\r\n    onColumnsSubmit: function (columnsState) {\r\n      this.sendUpdatedColumns(columnsState)\r\n      this.kendo.columns = columnsState\r\n    },\r\n    sortChange: function (e) {\r\n      let sort = e.sort\r\n      if (Array.isArray(e)) {\r\n        sort = e\r\n      }\r\n      const dataState = {\r\n        skip: this.kendo.skip,\r\n        take: this.kendo.take,\r\n        sort: sort,\r\n        group: this.kendo.group,\r\n        filter: this.kendo.filter\r\n      }\r\n      this.dataStateChange({ data: dataState })\r\n    },\r\n    filterChange: function (filter) {\r\n      const dataState = {\r\n        skip: this.kendo.skip,\r\n        take: this.kendo.take,\r\n        sort: this.kendo.sort,\r\n        group: this.kendo.group,\r\n        filter: filter\r\n      }\r\n\r\n      this.dataStateChange({ data: dataState })\r\n    },\r\n    expandChange: function (event) {\r\n      event.dataItem[event.target.$props.expandField] = !event.dataItem[event.target.$props.expandField]\r\n    },\r\n    applyFilters: async function (eventData) {\r\n      this.loadingDataTable = true\r\n      const data = this.$store.getters[this.vuexnamespace + '/getAppliedFilters']\r\n      const params = {\r\n        idUsuario: this.$route.params.id,\r\n        temporal: data.temporal ? data.temporal.value : null,\r\n        nombre: data.name ? data.name.value : null,\r\n        tipo: data.tipoGrupo ? data.tipoGrupo.value : null,\r\n        VerTodoGrupos: data.verTodoGroups ? data.verTodoGroups.value : null,\r\n        VerTodoEstados: data.verTodoStatuses ? data.verTodoStatuses.value : null,\r\n        VerTodoEmpresas: data.verTodoCompanies ? data.verTodoCompanies.value : null,\r\n        email: data.email ? data.email.value : null,\r\n        numeroSMSGenerico: data.phone ? data.phone.value : null,\r\n        enviarAvisos: data.send_alerts ? data.send_alerts.value : null,\r\n        enviarAvisosUsuarios: data.enviarAvisosUsuarios ? data.enviarAvisosUsuarios.value : null,\r\n      }\r\n      const objOrder = this.getObjOrderMixin(this.kendo.group, this.kendo.sort)\r\n      try {\r\n        this.data = await this.getItemsData(objOrder, params)\r\n      } catch (error) {\r\n        // console.log('error', error)\r\n        this.$store.commit('setIsLoading', false)\r\n        this.doFeedback(this.$i18n.t('feedback.error.general ' + error))\r\n      }\r\n      this.updateAllSelectedHeader()\r\n      return this.data\r\n    },\r\n    getItemsData: async function (objOrder, filters) {\r\n      this.$store.commit('setAjaxRequestPending', true)\r\n      this.$store.commit('setIsLoading', true)\r\n      const params = {\r\n        paginate: true,\r\n        results: this.pagination.pageSize,\r\n        page: this.pagination.currentPage,\r\n        ...filters\r\n      }\r\n      const res = await this.getMainData(objOrder, params)\r\n      this.data = res.Respuesta\r\n      const pagination = {\r\n        total: res.meta?.total,\r\n        currentPage: res.meta?.currentPage,\r\n        totalPages: res.meta?.lastPage,\r\n        pageSize: res.meta?.perPage\r\n      }\r\n      this.$store.commit(this.vuexnamespace + '/setPaginationInfo', pagination)\r\n      this.$store.commit('setIsLoading', false)\r\n      this.loadingDataTable = false\r\n      return this.data\r\n    },\r\n    async getMainData (objOrder, filters) {\r\n      const params = {\r\n        paginate: true,\r\n        results: this.pagination.pageSize,\r\n        page: this.pagination.currentPage,\r\n        ...filters\r\n      }\r\n      const data = await gGetUserGruposPag(objOrder, params)\r\n      if (data.blnError === true) {\r\n        this.doFeedback(data.msgError + ' [' + data.codError + ']')\r\n      }\r\n      return data\r\n    },\r\n    applyFiltersHandler: async function (eventData) {\r\n      this.$store.commit(this.vuexnamespace + '/setCurrentPage', 1)\r\n      this.data = await this.applyFilters(eventData)\r\n    },\r\n    changeCurrentPage: async function (event) {\r\n      this.$store.commit(this.vuexnamespace + '/setCurrentPage', event)\r\n      this.data = await this.applyFilters(null)\r\n    },\r\n    changePerPage: async function (event) {\r\n      this.$store.commit(this.vuexnamespace + '/setCurrentPage', 1)\r\n      this.$store.commit(this.vuexnamespace + '/setPageSize', event)\r\n      this.kendo.take = event\r\n      this.data = await this.applyFilters(null)\r\n    },\r\n    removeFilterTagHanlder: function (tag) {\r\n      // this.$store.commit(this.vuexnamespace + '/removeTag', tag)\r\n      this.$store.commit(this.vuexnamespace + '/setCurrentPage', 1)\r\n      const filter = this.$store.getters[this.vuexnamespace + '/getAppliedFilters']\r\n      delete filter[tag[0]]\r\n      this.$store.commit(this.vuexnamespace + '/setMasterFilters', filter)\r\n      this.applyFiltersHandler(null)\r\n    },\r\n    headerCoreFiltersHandler: function (obs) {\r\n      if (this.isHeadCoreReady) {\r\n        this.applyFilters(null)\r\n      }\r\n    },\r\n    removeAllTagsHandler: function () {\r\n      this.$store.commit(this.vuexnamespace + '/setCurrentPage', 1)\r\n      this.$store.commit(this.vuexnamespace + '/resetMasterFilters')\r\n      this.applyFiltersHandler(null)\r\n    },\r\n    tableSortByChangeHandler: function ({ prop, order }) {\r\n      this.$store.commit(this.vuexnamespace + '/setSort', prop)\r\n      this.$store.commit(this.vuexnamespace + '/setSortOrder', order)\r\n      this.$store.commit(this.vuexnamespace + '/setCurrentPage', 1)\r\n      this.applyFilters(null)\r\n    },\r\n    downloadData: async function (id) {\r\n      let user = null\r\n      try {\r\n        this.$store.commit('setIsLoading', true)\r\n\r\n        const params = {\r\n          idUsuario: id\r\n        }\r\n        user = await getUser(params)\r\n        if (user.blnError === true) {\r\n          this.doFeedback(user.msgError + ' [' + user.codError + ']')\r\n        } else {\r\n          user = user.respuesta\r\n        }\r\n      } catch (error) {\r\n        this.doFeedback()\r\n      } finally {\r\n        this.$store.commit('setIsLoading', false)\r\n      }\r\n      return user\r\n    },\r\n    unselect: function () {\r\n      const checked = false\r\n      this.mapSelectionKendoGrouping(checked)\r\n      this.updateAllSelectedHeader()\r\n    },\r\n    unlink: async function () {\r\n      const selected = this.selected\r\n      await this.unlinkHandler(selected)\r\n      // for await (const element of selected) {\r\n      //   await this.unlinkHandler(element.IdTag)\r\n      // }\r\n      this.data = await this.applyFilters()\r\n    },\r\n    unlinkHandler: async function (grupos) {\r\n      // console.log('unlinkHandler', tags)\r\n      try {\r\n        this.$store.commit('setIsLoading', true)\r\n        const idUsuario = this.$route.params.id\r\n        const payload = { idUsuario: idUsuario, idGrupos: [] }\r\n        grupos.forEach(element => {\r\n          payload.idGrupos.push(element.IdGrupo)\r\n        })\r\n        const response = await unlinkUserGroups(payload)\r\n        if (response.blnError === true) {\r\n          this.doFeedback(response.msgError + ' [' + response.codError + ']')\r\n        } else {\r\n          this.doFeedback('Desvinculado correctamente', 'success')\r\n        }\r\n      } catch (error) {\r\n        this.doFeedback()\r\n      } finally {\r\n        this.$store.commit('setIsLoading', false)\r\n      }\r\n    },\r\n    golinkTagToUser: function () {\r\n      this.linkGroupToUserDialog = !this.linkGroupToUserDialog\r\n    },\r\n    onHeaderSelectionChange: function (event) {\r\n      const checked = event.event.target.checked\r\n      this.mapSelectionKendoGrouping(checked)\r\n      this.updateAllSelectedHeader()\r\n    },\r\n    onSelectionChange: function (event) {\r\n      event.dataItem[this.selectedField] = !event.dataItem[this.selectedField]\r\n      this.selected = event.dataItems.filter(d => d.selected === true)\r\n      this.updateAllSelectedHeader()\r\n    },\r\n    applyLinkHandler: async function (tags) {\r\n      this.linkTagToUser = false\r\n      // console.log('applyLinkHandler', tags)\r\n      await this.linkHandler(tags)\r\n      this.applyFilters()\r\n    },\r\n    linkHandler: async function (idGrupos) {\r\n      try {\r\n        this.$store.commit('setIsLoading', true)\r\n        const idUsuario = this.$route.params.id\r\n        const payload = { idUsuario: idUsuario, idGrupos: idGrupos }\r\n        const response = await linkUserToGroups(payload)\r\n        if (response.blnError === true) {\r\n          this.doFeedback(response.msgError + ' [' + response.codError + ']')\r\n        } else {\r\n          this.doFeedback('Vinculado correctamente', 'success')\r\n          this.toggleDialogs()\r\n        }\r\n      } catch (error) {\r\n        this.doFeedback()\r\n      } finally {\r\n        this.$store.commit('setIsLoading', false)\r\n      }\r\n    },\r\n    toggleSearchesDialog: function () {\r\n      this.searchesPanel = !this.searchesPanel\r\n    },\r\n    saveTagsHandler: function () {\r\n      this.saveSearchDialog = !this.saveSearchDialog\r\n    },\r\n    toggleDialogSearches: function () {\r\n      this.saveSearchDialog = !this.saveSearchDialog\r\n    },\r\n    applySearchHandler: async function () {\r\n      this.toggleDialogSearches()\r\n      // Manda actualizar lista de búsquedas\r\n      this.$refs.filterPanelSearches.updateData()\r\n    },\r\n    updateNumberSearches: async function (number) {\r\n      this.numberSearches = number\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!./GroupsByUser.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!./GroupsByUser.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./GroupsByUser.vue?vue&type=template&id=30978b75\"\nimport script from \"./GroupsByUser.vue?vue&type=script&lang=js\"\nexport * from \"./GroupsByUser.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","import axiosInstance from '@/services/axiosInstance'\r\nimport mock from '@/services/mock/index'\r\n\r\nasync function getUser (params = null) {\r\n  if (process.env.VUE_APP_ENVIRONMENT === 'test') {\r\n    return new Promise((resolve, reject) => {\r\n      resolve(mock.getUser)\r\n    })\r\n  } else {\r\n    const req = {\r\n      url: '/api/usuarios/getusuariodetalle',\r\n      method: 'GET',\r\n      headers: {\r\n        'Content-type': 'application/json',\r\n        'access-control-allow-origin': '*'\r\n      },\r\n      params\r\n    }\r\n    const res = await axiosInstance(req)\r\n    return res.data\r\n  }\r\n}\r\n\r\nexport { getUser }\r\n","import axiosInstance from '@/services/axiosInstance'\r\nimport mock from '@/services/mock/index'\r\n\r\nasync function getGroupsSimple (params = null) {\r\n  if (process.env.VUE_APP_ENVIRONMENT === 'test') {\r\n    return new Promise((resolve, reject) => {\r\n      const data = mock.getUsers\r\n      const pages = data.data.length\r\n\r\n      const clone = JSON.parse(JSON.stringify(data))\r\n      if (params !== null) {\r\n        console.log(clone.data)\r\n        clone.data = clone.data.slice(0, params.limit)\r\n      }\r\n\r\n      clone.meta.total = pages\r\n\r\n      resolve(clone)\r\n    })\r\n  } else {\r\n    const req = {\r\n      url: '/api/grupos/getgrupos',\r\n      method: 'GET',\r\n      headers: {\r\n        'Content-type': 'application/json',\r\n        'access-control-allow-origin': '*'\r\n      },\r\n      params\r\n    }\r\n    const res = await axiosInstance(req)\r\n    return res.data\r\n  }\r\n}\r\n\r\nexport { getGroupsSimple }\r\n","import axiosInstance from '@/services/axiosInstance'\r\nimport mock from '@/services/mock/index'\r\n\r\nasync function getAllUsers (params = null) {\r\n  if (process.env.VUE_APP_ENVIRONMENT === 'test') {\r\n    return new Promise((resolve, reject) => {\r\n      const data = mock.getUsers\r\n      const pages = data.data.length\r\n\r\n      const clone = JSON.parse(JSON.stringify(data))\r\n      if (params !== null) {\r\n        console.log(clone.data)\r\n        clone.data = clone.data.slice(0, params.limit)\r\n      }\r\n\r\n      clone.meta.total = pages\r\n\r\n      resolve(clone)\r\n    })\r\n  } else {\r\n    const req = {\r\n      url: '/api/usuarios/getusuariossimple',\r\n      method: 'GET',\r\n      headers: {\r\n        'Content-type': 'application/json',\r\n        'access-control-allow-origin': '*'\r\n      },\r\n      params\r\n    }\r\n    const res = await axiosInstance(req)\r\n    return res.data\r\n  }\r\n}\r\n\r\nexport { getAllUsers }\r\n"],"sourceRoot":""}