{"version":3,"sources":["webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/AccessData.vue?5153","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/PersonalData.vue?a344","webpack:///./src/app/generalPanel/adminPanel/user/editing/index.vue?34e4","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/PersonalData.vue?5d39","webpack:///src/domain/components/generalPanel/adminPanel/user/editing/PersonalData.vue","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/PersonalData.vue?c854","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/PersonalData.vue","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/AccessData.vue?0b11","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/AccessListDataGrid.vue?b126","webpack:///src/domain/components/generalPanel/adminPanel/user/editing/AccessListDataGrid.vue","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/AccessListDataGrid.vue?2f50","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/AccessListDataGrid.vue","webpack:///src/domain/components/generalPanel/adminPanel/user/editing/AccessData.vue","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/AccessData.vue?f6af","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/AccessData.vue","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/Permissions.vue?cd86","webpack:///./src/domain/services/generalPanel/adminPanel/userPermissionsService.js","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/PermissionGroups.vue?ab47","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/PermissionItems.vue?9e8f","webpack:///./src/domain/events/userPermissions.js","webpack:///src/domain/components/generalPanel/adminPanel/user/editing/PermissionItems.vue","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/PermissionItems.vue?6661","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/PermissionItems.vue","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/PermissionSubGroups.vue?507b","webpack:///src/domain/components/generalPanel/adminPanel/user/editing/PermissionSubGroups.vue","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/PermissionSubGroups.vue?833f","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/PermissionSubGroups.vue","webpack:///src/domain/components/generalPanel/adminPanel/user/editing/PermissionGroups.vue","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/PermissionGroups.vue?003d","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/PermissionGroups.vue","webpack:///src/domain/components/generalPanel/adminPanel/user/editing/Permissions.vue","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/Permissions.vue?6224","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/Permissions.vue","webpack:///src/app/generalPanel/adminPanel/user/editing/index.vue","webpack:///./src/app/generalPanel/adminPanel/user/editing/index.vue?36e8","webpack:///./src/app/generalPanel/adminPanel/user/editing/index.vue","webpack:///./src/app/generalPanel/adminPanel/user/editing/index.vue?dc56","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/Permissions.vue?eea4","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/PermissionGroups.vue?c2ac","webpack:///C:/agent/_work/77/s/node_modules/lodash/isEqual.js","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/PermissionItems.vue?56f0","webpack:///./src/services/globalEventBus.js","webpack:///./src/domain/components/generalPanel/adminPanel/user/editing/AccessListDataGrid.vue?ee23"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","ref","attrs","steps","loading","step","$t","on","$event","save","user","currentUserEmail","personalDataCanForward","slot","_v","accessDataCanForward","cancel","_s","_e","goToUserList","openPasswordModal","sendPasswordEmail","staticRenderFns","$bsStateValidator","$v","name","$error","nativeOn","$touch","model","value","callback","$$v","$set","trim","expression","showNameSurnameTooltip","NroCaracteres","surname","directives","rawName","email","emailChanged","emailErrors","dddPhoneLabel","phone","canChanceReceiveEmailAlerts","canChanceReceiveSmsAlerts","username","isInserting","usernameChanged","userNameErrors","uniqueEmailValidationLoading","uniqueEmail","uniqueUserNameValidationLoading","uniqueUserName","components","PhoneInput","CountryDdiSelect","LanguageSelect","TimezoneSelect","InfoBadge","props","Object","String","data","showEmailErrors","uniqueEmailAlreadyVerified","showUserNameErrors","uniqueUsernameAlreadyVerified","validations","required","minLength","maxLength","mustBeUnique","uniqueEmailValidator","countryCode","validChars","uniqueUserNameValidator","methods","onEmailLostFocus","validateEmail","newUserName","setTimeout","onUserNameLostFocus","validateUsername","showUsernameValidationError","toLowerCase","validationModel","computed","isSuperAdmin","loggedUser","receiveEmailAlerts","receiveSmsAlerts","id","isLostFocus","isInvalidFill","showEmailValidationError","label","disableNextButton","$invalid","canForward","watch","$emit","newValue","component","modifiers","query","items","fields","effectiveQuery","filterTable","scopedSlots","_u","key","fn","allChange","stopPropagation","all","proxy","item","accessibleByCurrentUser","selected","itemChanged","fromItemChange","created","loadProfiles","length","hasItems","clearValueToFind","applySelected","forEach","profile","isAllSelected","every","hasChangedItems","$forceUpdate","refreshAll","updateUserProfilesArray","allSelected","profiles","filter","type","default","AccessGrid","AccessListDataGrid","canForwardChanged","copyChanged","copyUserPermissions","usersToCopy","tryApplySelectedUserPermissions","selectedUserToCopy","selectedLevelChanged","_l","levelKey","canSelectLevel","permissionGroups","canDisableGroup","urls","getUsersToCopy","getUserPermissions","getPermissionLevels","applyPermissions","permissionsToApply","targetPermissions","allApplied","allPermissions","permission","condition","includes","UserService","hasPermission","http","Http","get","then","response","map","usuario","nome","getGroupedPermissions","Promise","resolve","level","Admin","permissoes","administrador","Operator","operador","Viewer","visualizador","Custom","applyUserPermissions","sourceUserId","replace","applyLevelPermissions","sourceLevelPermissions","getLevelByPermissions","permissionsFlag","permissionLevelsList","permissionsArray","toPermissionArray","keys","find","levelName","hasSamePermissions","a","b","isEqual","sort","permissionObject","toPermissionObject","permissionArray","permissionArrayUpper","p","toUpperCase","group","index","collapsedPanels","permissions","isDisabled","children","class","permissionItemClass","shouldDisablelItem","onChangeSelectionHandler","onChangePermissionItem","Array","superiorPermission","Boolean","isSubLevelItem","updatePermissionsSelection","event","permissionName","permissionChildren","subGroup","PermissionItems","subGroups","PermissionSubGroups","AccordionPanel","groups","PermissionGroups","permissionLevels","changingPermissions","selectedPermissionLevel","permissionLevelKeys","initializeValues","getUsers","tryTakePermissionsToChange","copyChangedCallback","canChangePermission","clearUserToCopy","selectedLevelChangedCallback","userIdForEdit","StepByStep","PersonalData","AccessData","Permissions","PasswordReset","canCancel","$router","push","$confirmMessage","code","onForwardPersonalData","$pushAlert","messageParams","NomeDoCampo","showNewPassword","$refs","passwordResetModal","show","newPassword","eMail","showEmailSentModal","showEmailSent","checkTemporaryPassword","newUser","userPasswordData","passwordData","userEmail","saveUser","setUser","showPasswordConfirmationModal","beforeRouteEnter","to","params","userId","next","vm","baseIsEqual","other","module","exports","validateNamespaceOneDepthLevel","term","split","Error","emptyEventNameValidator","EventBus","eventNameValidator","listenersCollection","eventName","scope","getListeners","events","listeners","findIndex","listener","splice","clearListeners","args","hasListenersConfig","call","onEach","off","emit"],"mappings":"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","file":"js/generalPanelUser.0bec0617.js","sourcesContent":["import mod 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--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccessData.vue?vue&type=style&index=0&id=39da99fa&lang=sass&scoped=true&\"; export default mod; 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--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccessData.vue?vue&type=style&index=0&id=39da99fa&lang=sass&scoped=true&\"","import mod 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--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PersonalData.vue?vue&type=style&index=0&id=76892098&lang=sass&scoped=true&\"; export default mod; 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--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PersonalData.vue?vue&type=style&index=0&id=76892098&lang=sass&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('app-content',{staticClass:\"user-edit\"},[_c('step-by-step',{ref:\"stepcmp\",staticClass:\"user-edit__step-by-step\",attrs:{\"steps\":_vm.steps,\"loading\":_vm.loading,\"current-step\":_vm.step,\"conclude-button-text\":_vm.$t('general.save')},on:{\"update:currentStep\":function($event){_vm.step=$event},\"update:current-step\":function($event){_vm.step=$event},\"conclude\":function($event){return _vm.save()}}},[_c('personal-data',{attrs:{\"slot\":\"content:personal-data\",\"user\":_vm.user,\"current-user-email\":_vm.currentUserEmail},on:{\"can-forward-changed\":function($event){_vm.personalDataCanForward = $event}},slot:\"content:personal-data\"}),_vm._v(\" \"),_c('access-data',{attrs:{\"slot\":\"content:access-data\",\"user\":_vm.user},on:{\"can-forward-changed\":function($event){_vm.accessDataCanForward = $event}},slot:\"content:access-data\"}),_vm._v(\" \"),_c('permissions',{attrs:{\"slot\":\"content:permissions\",\"user\":_vm.user},slot:\"content:permissions\"}),_vm._v(\" \"),_c('template',{slot:\"bottomPreviousPanel\"},[(_vm.canCancel)?_c('b-button',{attrs:{\"variant\":\"secondary\"},on:{\"click\":function($event){return _vm.cancel()}}},[_vm._v(\"\\n        \"+_vm._s(_vm.$t('general.cancel'))+\"\\n      \")]):_vm._e()],1)],2),_vm._v(\" \"),_c('password-reset',{ref:\"passwordResetModal\",on:{\"ok\":_vm.goToUserList,\"send-email\":_vm.openPasswordModal,\"send-email-submit\":_vm.sendPasswordEmail}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"personal-data\"},[_c('div',[_c('h4',{staticClass:\"form-section-title\"},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('user-manager.editing.personal-data.general-data'))+\"\\n    \")]),_vm._v(\" \"),_c('b-row',[_c('b-col',{attrs:{\"sm\":\"\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{staticClass:\"personal-data__form-field\",attrs:{\"label\":_vm.$t('user-manager.editing.personal-data.name') + ' *',\"label-for\":\"name\"}},[_c('b-form-input',{attrs:{\"id\":\"name\",\"maxlength\":\"100\",\"state\":_vm.$bsStateValidator(_vm.$v.user.name.$error)},nativeOn:{\"blur\":function($event){return _vm.$v.user.name.$touch()}},model:{value:(_vm.user.name),callback:function ($$v) {_vm.$set(_vm.user, \"name\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"user.name\"}}),_vm._v(\" \"),(_vm.showNameSurnameTooltip(_vm.$v.user.name))?_c('b-form-invalid-feedback',{attrs:{\"state\":_vm.$bsStateValidator(_vm.$v.user.name.$error)}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('messages.MG001.message', {\n                NroCaracteres: 2,\n              }))+\"\\n          \")]):_vm._e()],1)],1)],1),_vm._v(\" \"),_c('b-row',[_c('b-col',{attrs:{\"sm\":\"\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label-for\":\"surname\",\"label\":_vm.$t('user-manager.editing.personal-data.lastname') + ' *'}},[_c('b-form-input',{attrs:{\"id\":\"surname\",\"maxlength\":\"200\",\"state\":_vm.$bsStateValidator(_vm.$v.user.surname.$error)},nativeOn:{\"blur\":function($event){return _vm.$v.user.surname.$touch()}},model:{value:(_vm.user.surname),callback:function ($$v) {_vm.$set(_vm.user, \"surname\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"user.surname\"}}),_vm._v(\" \"),(_vm.showNameSurnameTooltip(_vm.$v.user.surname))?_c('b-form-invalid-feedback',{attrs:{\"state\":_vm.$bsStateValidator(_vm.$v.user.surname.$error)}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('messages.MG001.message', {\n                NroCaracteres: 2,\n              }))+\"\\n          \")]):_vm._e()],1)],1)],1),_vm._v(\" \"),_c('b-row',[_c('b-col',{attrs:{\"sm\":\"\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label-for\":\"language\",\"label\":_vm.$t('user-manager.editing.personal-data.language') + ' *'}},[_c('language-select',{attrs:{\"id\":\"language\"},model:{value:(_vm.user.language),callback:function ($$v) {_vm.$set(_vm.user, \"language\", $$v)},expression:\"user.language\"}})],1)],1)],1),_vm._v(\" \"),_c('b-row',[_c('b-col',{attrs:{\"sm\":\"\",\"md\":\"6\",\"lg\":\"4\"}},[_c('label',{attrs:{\"for\":\"timezone\"}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('my-data.timezone'))+\"\\n          \"),_c('info-badge',{staticClass:\"personal-data__field-tooltip\",attrs:{\"translation-key\":\"messages.MI086.message\"}})],1),_vm._v(\" \"),_c('timezone-select',{attrs:{\"id\":\"timezone\"},model:{value:(_vm.user.timezoneId),callback:function ($$v) {_vm.$set(_vm.user, \"timezoneId\", $$v)},expression:\"user.timezoneId\"}})],1)],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"mt-3\"},[_c('h4',{staticClass:\"form-section-title\"},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('user-manager.editing.personal-data.contact'))+\"\\n    \")]),_vm._v(\" \"),_c('b-row',[_c('b-col',{attrs:{\"sm\":\"\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{staticClass:\"personal-data__form-field\",attrs:{\"label-for\":\"email\",\"label\":_vm.$t('user-manager.editing.personal-data.email') + ' *'}},[_c('b-form-input',{directives:[{name:\"s-trigger\",rawName:\"v-s-trigger\",value:(_vm.onEmailLostFocus),expression:\"onEmailLostFocus\"}],attrs:{\"id\":\"email\",\"type\":\"email\",\"maxlength\":\"250\",\"state\":_vm.$bsStateValidator(_vm.$v.user.email.$error)},on:{\"input\":_vm.emailChanged},model:{value:(_vm.user.email),callback:function ($$v) {_vm.$set(_vm.user, \"email\", $$v)},expression:\"user.email\"}}),_vm._v(\" \"),(_vm.showEmailValidationError)?_c('b-form-invalid-feedback',{attrs:{\"state\":_vm.$bsStateValidator(_vm.$v.user.email.$error)}},[_vm._v(\"\\n            \"+_vm._s(_vm.emailErrors)+\"\\n          \")]):_vm._e()],1)],1)],1),_vm._v(\" \"),_c('b-row',[_c('b-col',{attrs:{\"sm\":\"\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label-for\":\"country-code\",\"label\":_vm.$t('user-manager.editing.personal-data.country-ddi') + ' *'}},[_c('country-ddi-select',{attrs:{\"id\":\"country-code\"},model:{value:(_vm.user.countryCode),callback:function ($$v) {_vm.$set(_vm.user, \"countryCode\", $$v)},expression:\"user.countryCode\"}})],1)],1),_vm._v(\" \"),_c('b-col',{attrs:{\"sm\":\"\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{attrs:{\"label-for\":\"phone\",\"label\":_vm.dddPhoneLabel}},[_c('phone-input',{attrs:{\"id\":\"phone\",\"state\":_vm.$bsStateValidator(_vm.$v.user.phone.$error)},nativeOn:{\"blur\":function($event){return _vm.$v.user.phone.$touch()}},model:{value:(_vm.user.phone),callback:function ($$v) {_vm.$set(_vm.user, \"phone\", $$v)},expression:\"user.phone\"}}),_vm._v(\" \"),(_vm.$v.user.phone.$error)?_c('b-form-invalid-feedback',{attrs:{\"state\":_vm.$bsStateValidator(_vm.$v.user.phone.$error)}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('messages.MA111.message'))+\"\\n          \")]):_vm._e()],1)],1)],1)],1),_vm._v(\" \"),_c('div',[_c('h4',{staticClass:\"form-section-title\"},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('user-manager.editing.personal-data.notifications'))+\"\\n    \")]),_vm._v(\" \"),_c('b-row',[_c('b-col',{attrs:{\"sm\":\"\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-checkbox',{staticClass:\"personal-data__form-field\",attrs:{\"disabled\":!_vm.canChanceReceiveEmailAlerts},model:{value:(_vm.user.receiveEmailAlerts),callback:function ($$v) {_vm.$set(_vm.user, \"receiveEmailAlerts\", $$v)},expression:\"user.receiveEmailAlerts\"}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('user-manager.editing.personal-data.send-alerts-by-email'))+\"\\n        \")])],1)],1),_vm._v(\" \"),_c('b-row',[_c('b-col',{attrs:{\"sm\":\"\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-checkbox',{staticClass:\"personal-data__form-field-last-notif-check\",attrs:{\"disabled\":!_vm.canChanceReceiveSmsAlerts},model:{value:(_vm.user.receiveSmsAlerts),callback:function ($$v) {_vm.$set(_vm.user, \"receiveSmsAlerts\", $$v)},expression:\"user.receiveSmsAlerts\"}},[_vm._v(\"\\n          \"+_vm._s(_vm.$t('user-manager.editing.personal-data.send-alerts-by-sms'))+\"\\n        \")])],1)],1)],1),_vm._v(\" \"),_c('div',[_c('h4',{staticClass:\"form-section-title\"},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('user-manager.editing.personal-data.access-login'))+\"\\n    \")]),_vm._v(\" \"),_c('b-row',[_c('b-col',{attrs:{\"sm\":\"\",\"md\":\"6\",\"lg\":\"4\"}},[_c('b-form-group',{staticClass:\"personal-data__form-field\",attrs:{\"label-for\":\"username\",\"label\":_vm.$t('user-manager.editing.personal-data.username') + ' *'}},[_c('b-form-input',{directives:[{name:\"s-trigger\",rawName:\"v-s-trigger\",value:(_vm.onUserNameLostFocus),expression:\"onUserNameLostFocus\"}],staticClass:\"text-lowercase\",attrs:{\"id\":\"username\",\"maxlength\":\"20\",\"state\":_vm.$bsStateValidator(_vm.$v.user.username.$error),\"disabled\":!_vm.isInserting},on:{\"input\":_vm.usernameChanged},nativeOn:{\"blur\":function($event){return _vm.$v.user.username.$touch()}},model:{value:(_vm.$v.user.username.$model),callback:function ($$v) {_vm.$set(_vm.$v.user.username, \"$model\", $$v)},expression:\"$v.user.username.$model\"}}),_vm._v(\" \"),(_vm.showUsernameValidationError)?_c('b-form-invalid-feedback',{attrs:{\"state\":_vm.$bsStateValidator(_vm.$v.user.username.$error)}},[_vm._v(\"\\n            \"+_vm._s(_vm.userNameErrors)+\"\\n          \")]):_vm._e()],1)],1)],1)],1),_vm._v(\" \"),_c('b-alert',{staticClass:\"personal-data__info-alert\",attrs:{\"show\":\"\",\"variant\":\"info\"}},[_c('h4',{staticClass:\"personal-data__info-title alert-heading\"},[_c('strong',[_vm._v(_vm._s(_vm.$t('user-manager.editing.personal-data.temporary-password')))])]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('user-manager.editing.personal-data.auto-pass')))])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <div class=\"personal-data\">\r\n    <div>\r\n      <h4 class=\"form-section-title\">\r\n        {{ $t('user-manager.editing.personal-data.general-data') }}\r\n      </h4>\r\n      <b-row>\r\n        <b-col\r\n          sm\r\n          md=\"6\"\r\n          lg=\"4\"\r\n        >\r\n          <b-form-group\r\n            class=\"personal-data__form-field\"\r\n            :label=\"$t('user-manager.editing.personal-data.name') + ' *'\"\r\n            label-for=\"name\"\r\n          >\r\n            <b-form-input\r\n              v-model.trim=\"user.name\"\r\n              id=\"name\"\r\n              maxlength=\"100\"\r\n              :state=\"$bsStateValidator($v.user.name.$error)\"\r\n              @blur.native=\"$v.user.name.$touch()\"\r\n            ></b-form-input>\r\n            <b-form-invalid-feedback\r\n              v-if=\"showNameSurnameTooltip($v.user.name)\"\r\n              :state=\"$bsStateValidator($v.user.name.$error)\">\r\n              {{\r\n                $t('messages.MG001.message', {\r\n                  NroCaracteres: 2,\r\n                })\r\n              }}\r\n            </b-form-invalid-feedback>\r\n          </b-form-group>\r\n        </b-col>\r\n      </b-row>\r\n      <b-row>\r\n        <b-col\r\n          sm\r\n          md=\"6\"\r\n          lg=\"4\"\r\n        >\r\n          <b-form-group\r\n            label-for=\"surname\"\r\n            :label=\"$t('user-manager.editing.personal-data.lastname') + ' *'\"\r\n          >\r\n            <b-form-input\r\n              v-model.trim=\"user.surname\"\r\n              id=\"surname\"\r\n              maxlength=\"200\"\r\n              :state=\"$bsStateValidator($v.user.surname.$error)\"\r\n              @blur.native=\"$v.user.surname.$touch()\"\r\n            ></b-form-input>\r\n            <b-form-invalid-feedback\r\n              v-if=\"showNameSurnameTooltip($v.user.surname)\"\r\n              :state=\"$bsStateValidator($v.user.surname.$error)\">\r\n              {{\r\n                $t('messages.MG001.message', {\r\n                  NroCaracteres: 2,\r\n                })\r\n              }}\r\n            </b-form-invalid-feedback>\r\n          </b-form-group>\r\n        </b-col>\r\n      </b-row>\r\n      <b-row>\r\n        <b-col\r\n          sm\r\n          md=\"6\"\r\n          lg=\"4\"\r\n        >\r\n          <b-form-group\r\n            label-for=\"language\"\r\n            :label=\"$t('user-manager.editing.personal-data.language') + ' *'\"\r\n          >\r\n            <language-select\r\n              v-model=\"user.language\"\r\n              id=\"language\"\r\n            />\r\n          </b-form-group>\r\n        </b-col>\r\n      </b-row>\r\n      <b-row>\r\n        <b-col\r\n          sm\r\n          md=\"6\"\r\n          lg=\"4\"\r\n        >\r\n          <label for=\"timezone\">\r\n            {{ $t('my-data.timezone') }}\r\n            <info-badge\r\n              class=\"personal-data__field-tooltip\"\r\n              translation-key=\"messages.MI086.message\"\r\n            />\r\n          </label>\r\n          <timezone-select\r\n            id=\"timezone\"\r\n            v-model=\"user.timezoneId\"\r\n          />\r\n        </b-col>\r\n      </b-row>\r\n    </div>\r\n    <div class=\"mt-3\">\r\n      <h4 class=\"form-section-title\">\r\n        {{ $t('user-manager.editing.personal-data.contact') }}\r\n      </h4>\r\n      <b-row>\r\n        <b-col\r\n          sm\r\n          md=\"6\"\r\n          lg=\"4\"\r\n        >\r\n          <b-form-group\r\n            class=\"personal-data__form-field\"\r\n            label-for=\"email\"\r\n            :label=\"$t('user-manager.editing.personal-data.email') + ' *'\"\r\n          >\r\n            <b-form-input\r\n              v-model=\"user.email\"\r\n              v-s-trigger=\"onEmailLostFocus\"\r\n              id=\"email\"\r\n              type=\"email\"\r\n              maxlength=\"250\"\r\n              :state=\"$bsStateValidator($v.user.email.$error)\"\r\n              @input=\"emailChanged\"\r\n            ></b-form-input>\r\n            <b-form-invalid-feedback\r\n              v-if=\"showEmailValidationError\"\r\n              :state=\"$bsStateValidator($v.user.email.$error)\">\r\n              {{ emailErrors }}\r\n            </b-form-invalid-feedback>\r\n          </b-form-group>\r\n        </b-col>\r\n      </b-row>\r\n      <b-row>\r\n        <b-col\r\n          sm\r\n          md=\"6\"\r\n          lg=\"4\"\r\n        >\r\n          <b-form-group\r\n            label-for=\"country-code\"\r\n            :label=\"$t('user-manager.editing.personal-data.country-ddi') + ' *'\"\r\n          >\r\n            <country-ddi-select\r\n              v-model=\"user.countryCode\"\r\n              id=\"country-code\"\r\n            />\r\n          </b-form-group>\r\n        </b-col>\r\n        <b-col\r\n          sm\r\n          md=\"6\"\r\n          lg=\"4\"\r\n        >\r\n          <b-form-group\r\n            label-for=\"phone\"\r\n            :label=\"dddPhoneLabel\"\r\n          >\r\n            <phone-input\r\n              v-model=\"user.phone\"\r\n              id=\"phone\"\r\n              :state=\"$bsStateValidator($v.user.phone.$error)\"\r\n              @blur.native=\"$v.user.phone.$touch()\"\r\n            />\r\n            <b-form-invalid-feedback\r\n              v-if=\"$v.user.phone.$error\"\r\n              :state=\"$bsStateValidator($v.user.phone.$error)\">\r\n              {{ $t('messages.MA111.message') }}\r\n            </b-form-invalid-feedback>\r\n          </b-form-group>\r\n        </b-col>\r\n      </b-row>\r\n    </div>\r\n    <div>\r\n      <h4 class=\"form-section-title\">\r\n        {{ $t('user-manager.editing.personal-data.notifications') }}\r\n      </h4>\r\n      <b-row>\r\n        <b-col\r\n          sm\r\n          md=\"6\"\r\n          lg=\"4\"\r\n        >\r\n          <b-form-checkbox\r\n            class=\"personal-data__form-field\"\r\n            v-model=\"user.receiveEmailAlerts\"\r\n            :disabled=\"!canChanceReceiveEmailAlerts\"\r\n          >\r\n            {{ $t('user-manager.editing.personal-data.send-alerts-by-email') }}\r\n          </b-form-checkbox>\r\n        </b-col>\r\n      </b-row>\r\n      <b-row>\r\n        <b-col\r\n          sm\r\n          md=\"6\"\r\n          lg=\"4\"\r\n        >\r\n          <b-form-checkbox\r\n            class=\"personal-data__form-field-last-notif-check\"\r\n            v-model=\"user.receiveSmsAlerts\"\r\n            :disabled=\"!canChanceReceiveSmsAlerts\"\r\n          >\r\n            {{ $t('user-manager.editing.personal-data.send-alerts-by-sms') }}\r\n          </b-form-checkbox>\r\n        </b-col>\r\n      </b-row>\r\n    </div>\r\n    <div>\r\n      <h4 class=\"form-section-title\">\r\n        {{ $t('user-manager.editing.personal-data.access-login') }}\r\n      </h4>\r\n      <b-row>\r\n        <b-col\r\n          sm\r\n          md=\"6\"\r\n          lg=\"4\"\r\n        >\r\n          <b-form-group\r\n            class=\"personal-data__form-field\"\r\n            label-for=\"username\"\r\n            :label=\"$t('user-manager.editing.personal-data.username') + ' *'\"\r\n          >\r\n            <b-form-input\r\n              class=\"text-lowercase\"\r\n              v-model.lazy=\"$v.user.username.$model\"\r\n              v-s-trigger=\"onUserNameLostFocus\"\r\n              @blur.native=\"$v.user.username.$touch()\"\r\n              id=\"username\"\r\n              maxlength=\"20\"\r\n              :state=\"$bsStateValidator($v.user.username.$error)\"\r\n              :disabled=\"!isInserting\"\r\n              @input=\"usernameChanged\"\r\n            ></b-form-input>\r\n            <b-form-invalid-feedback\r\n              v-if=\"showUsernameValidationError\"\r\n              :state=\"$bsStateValidator($v.user.username.$error)\">\r\n              {{\r\n                userNameErrors\r\n              }}\r\n            </b-form-invalid-feedback>\r\n          </b-form-group>\r\n        </b-col>\r\n      </b-row>\r\n    </div>\r\n    <b-alert\r\n      class=\"personal-data__info-alert\"\r\n      show\r\n      variant=\"info\"\r\n    >\r\n      <h4 class=\"personal-data__info-title alert-heading\">\r\n        <strong>{{ $t('user-manager.editing.personal-data.temporary-password') }}</strong>\r\n      </h4>\r\n      <p>{{ $t('user-manager.editing.personal-data.auto-pass') }}</p>\r\n    </b-alert>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters } from 'vuex';\r\nimport {\r\n  required, maxLength, minLength, email,\r\n} from 'vuelidate/lib/validators';\r\nimport CountryDdiSelect from '@/domain/components/user/CountryDdiSelect';\r\nimport LanguageSelect from '@/domain/components/user/LanguageSelect';\r\nimport PhoneInput from '@/domain/components/user/PhoneInput';\r\nimport UserService from '@/domain/services/user';\r\nimport TimezoneSelect from '@/domain/components/user/TimezoneSelect';\r\nimport InfoBadge from '@/components/icon/InfoBadge';\r\n\r\nconst userNameValidChars = /^[\\w.]*$/;\r\nconst invalidCharacters = /[^a-zA-Z0-9._]+/;\r\n\r\nexport function uniqueEmailValidator() {\r\n  return !this.uniqueEmailValidationLoading && this.uniqueEmail;\r\n}\r\n\r\nexport function uniqueUserNameValidator() {\r\n  return !this.uniqueUserNameValidationLoading && this.uniqueUserName;\r\n}\r\n\r\nexport default {\r\n  components: {\r\n    PhoneInput,\r\n    CountryDdiSelect,\r\n    LanguageSelect,\r\n    TimezoneSelect,\r\n    InfoBadge,\r\n  },\r\n  props: {\r\n    user: Object,\r\n    currentUserEmail: String,\r\n  },\r\n  data() {\r\n    return {\r\n      showEmailErrors: false,\r\n      uniqueEmail: true,\r\n      uniqueEmailAlreadyVerified: true,\r\n      uniqueEmailValidationLoading: false,\r\n      showUserNameErrors: false,\r\n      uniqueUserName: true,\r\n      uniqueUsernameAlreadyVerified: true,\r\n      uniqueUserNameValidationLoading: false,\r\n    };\r\n  },\r\n  validations() {\r\n    const validChars = value => userNameValidChars.test(value);\r\n    return {\r\n      user: {\r\n        name: {\r\n          required,\r\n          minLength: minLength(2),\r\n          maxLength: maxLength(100),\r\n        },\r\n        surname: {\r\n          required,\r\n          minLength: minLength(2),\r\n          maxLength: maxLength(200),\r\n        },\r\n        email: {\r\n          required,\r\n          email,\r\n          maxLength: maxLength(250),\r\n          mustBeUnique: uniqueEmailValidator,\r\n        },\r\n        countryCode: {\r\n          required,\r\n        },\r\n        username: {\r\n          validChars,\r\n          minLength: minLength(2),\r\n          maxLength: maxLength(20),\r\n          required,\r\n          mustBeUnique: uniqueUserNameValidator,\r\n        },\r\n        phone: {\r\n          required: () => !this.user.receiveSmsAlerts || !!this.user.phone,\r\n          minLength: minLength(14),\r\n          maxLength: maxLength(15),\r\n        },\r\n      },\r\n    };\r\n  },\r\n  methods: {\r\n    onEmailLostFocus() {\r\n      this.validateEmail();\r\n      this.showEmailErrors = true;\r\n      this.$v.user.email.$touch();\r\n    },\r\n    emailChanged() {\r\n      this.uniqueEmailAlreadyVerified = false;\r\n    },\r\n    usernameChanged(newUserName) {\r\n      this.uniqueUsernameAlreadyVerified = false;\r\n      if (newUserName) {\r\n        setTimeout(() => {\r\n          this.$set(this.user, 'username', newUserName.replace(invalidCharacters, ''));\r\n        }, 0);\r\n      }\r\n      this.showUserNameErrors = true;\r\n    },\r\n    onUserNameLostFocus() {\r\n      this.validateUsername();\r\n      this.showUserNameErrors = true;\r\n      this.showUsernameValidationError = true;\r\n    },\r\n    validateEmail() {\r\n      if (!this.user.email) {\r\n        this.uniqueEmail = true;\r\n        return;\r\n      }\r\n\r\n      if (this.user.email.toLowerCase() === (this.currentUserEmail || '').toLowerCase()) {\r\n        this.uniqueEmailAlreadyVerified = true;\r\n        return;\r\n      }\r\n\r\n      this.uniqueEmailValidationLoading = true;\r\n      UserService\r\n        .isEmailAvailable(this.user.email)\r\n        .then((available) => {\r\n          this.uniqueEmail = Boolean(available);\r\n          this.uniqueEmailValidationLoading = false;\r\n          this.uniqueEmailAlreadyVerified = true;\r\n        });\r\n    },\r\n    validateUsername() {\r\n      if (!this.user.username) {\r\n        this.uniqueUserName = true;\r\n        return;\r\n      }\r\n      this.uniqueUserNameValidationLoading = true;\r\n      UserService\r\n        .isUsernameAvailable(this.user.username)\r\n        .then((available) => {\r\n          this.uniqueUserName = Boolean(available);\r\n          this.uniqueUserNameValidationLoading = false;\r\n          this.uniqueUsernameAlreadyVerified = true;\r\n        });\r\n    },\r\n    showNameSurnameTooltip(validationModel) {\r\n      return validationModel.$error\r\n        && (!validationModel.required\r\n          || !validationModel.minLength\r\n        );\r\n    },\r\n  },\r\n  computed: {\r\n    ...mapGetters({\r\n      loggedUser: 'user',\r\n      isSuperAdmin: 'isSuperAdmin',\r\n    }),\r\n    canChanceReceiveEmailAlerts() {\r\n      return this.isSuperAdmin || this.loggedUser.receiveEmailAlerts;\r\n    },\r\n    canChanceReceiveSmsAlerts() {\r\n      return this.isSuperAdmin || this.loggedUser.receiveSmsAlerts;\r\n    },\r\n    isInserting() {\r\n      return this.user.id == null;\r\n    },\r\n    showUsernameValidationError() {\r\n      const isLostFocus = this.showUserNameErrors\r\n        && (!this.user.username && !this.$v.user.username.minLength);\r\n\r\n      const isInvalidFill = this.showUserNameErrors\r\n        || !this.$v.user.username.minLength || !this.uniqueUserName;\r\n\r\n      return !isLostFocus || !isInvalidFill;\r\n    },\r\n    showEmailValidationError() {\r\n      return (!this.$v.user.email.required || !this.$v.user.email.email || !this.uniqueEmail);\r\n    },\r\n    dddPhoneLabel() {\r\n      let label = this.$t('user-manager.editing.personal-data.ddd-phone');\r\n\r\n      if (this.user.receiveSmsAlerts) {\r\n        label += ' *';\r\n      }\r\n\r\n      return label;\r\n    },\r\n    disableNextButton() {\r\n      return this.$v.$invalid\r\n        || !this.uniqueEmailAlreadyVerified\r\n        || !this.uniqueUsernameAlreadyVerified;\r\n    },\r\n    canForward() {\r\n      return !this.disableNextButton;\r\n    },\r\n    emailErrors() {\r\n      if (this.user.email && !this.uniqueEmail) {\r\n        return this.$t('messages.MA012.message');\r\n      }\r\n\r\n      return this.$t('messages.MG002.message');\r\n    },\r\n    userNameErrors() {\r\n      if (!this.$v.user.username.minLength || !this.user.username) {\r\n        return this.$t('messages.MG001.message', { NroCaracteres: '2' });\r\n      }\r\n\r\n      if (!this.uniqueUserName) {\r\n        return this.$t('messages.MG003.message');\r\n      }\r\n\r\n      return null;\r\n    },\r\n  },\r\n  watch: {\r\n    canForward(newValue) {\r\n      this.$emit('can-forward-changed', newValue);\r\n    },\r\n  },\r\n};\r\n</script>\r\n\r\n<style lang=\"sass\" scoped>\r\n.personal-data\r\n  &__field-tooltip\r\n      ::v-deep .info-badge__icon\r\n        color: var(--font-color-primary)\r\n\r\n  &__info-title\r\n    font-size: 0.9em\r\n    font-weight: bold\r\n    margin: 0 0 5px 0\r\n\r\n  &__form-field\r\n    margin: 5px 0 15px 0\r\n\r\n    &-last-notif-check\r\n      margin: 5px 0 1rem\r\n\r\n  &__info-alert\r\n    border-color: var(--color-info)\r\n\r\n    p\r\n      margin-bottom: 0\r\n</style>\r\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PersonalData.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PersonalData.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PersonalData.vue?vue&type=template&id=76892098&scoped=true&\"\nimport script from \"./PersonalData.vue?vue&type=script&lang=js&\"\nexport * from \"./PersonalData.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PersonalData.vue?vue&type=style&index=0&id=76892098&lang=sass&scoped=true&\"\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  \"76892098\",\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('div',{staticClass:\"access\"},[_c('h4',{staticClass:\"access__area-title form-section-title\"},[_vm._v(\"\\n    \"+_vm._s(_vm.$t('user-manager.editing.access-data.profile-list'))+\"\\n    \"),_c('i',{directives:[{name:\"b-popover\",rawName:\"v-b-popover.hover\",value:(_vm.$t('user-manager.editing.access-data.profile-list-help')),expression:\"$t('user-manager.editing.access-data.profile-list-help')\",modifiers:{\"hover\":true}}],staticClass:\"fas fa-info-circle text-blue\",attrs:{\"aria-hidden\":\"true\",\"title\":\"\"}})]),_vm._v(\" \"),_c('div',{staticClass:\"access__container\"},[_c('b-row',{staticClass:\"access__search-field\"},[_c('b-col',{attrs:{\"xs\":\"12\",\"sm\":\"8\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('s-search-input',{attrs:{\"placeholder\":_vm.$t('user-manager.editing.access-data.search-profile')},model:{value:(_vm.query),callback:function ($$v) {_vm.query=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"query\"}})],1)],1),_vm._v(\" \"),_c('access-grid',{attrs:{\"query\":_vm.query,\"user\":_vm.user}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('s-table',{staticClass:\"profile-list no-align\",attrs:{\"busy\":_vm.loading,\"items\":_vm.items,\"fields\":_vm.fields,\"filter\":_vm.effectiveQuery,\"filter-function\":_vm.filterTable,\"empty-filtered-text\":_vm.$t('general.empty-list')},scopedSlots:_vm._u([{key:\"head(selected)\",fn:function(){return [_c('div',[_c('b-form-checkbox',{on:{\"input\":function($event){return _vm.allChange($event)}},nativeOn:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.all),callback:function ($$v) {_vm.all=$$v},expression:\"all\"}})],1)]},proxy:true},{key:\"cell(selected)\",fn:function(data){return [_c('b-form-checkbox',{attrs:{\"disabled\":!data.item.accessibleByCurrentUser,\"checked\":data.item.selected},on:{\"input\":function($event){return _vm.itemChanged(data.item, $event)}}})]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <div>\r\n    <s-table\r\n      class=\"profile-list no-align\"\r\n      :busy=\"loading\"\r\n      :items=\"items\"\r\n      :fields=\"fields\"\r\n      :filter=\"effectiveQuery\"\r\n      :filter-function=\"filterTable\"\r\n      :empty-filtered-text=\"$t('general.empty-list')\"\r\n    >\r\n      <template #head(selected)>\r\n        <div>\r\n          <b-form-checkbox\r\n            @click.native.stop\r\n            v-model=\"all\"\r\n            @input=\"allChange($event)\"\r\n            >\r\n          </b-form-checkbox>\r\n        </div>\r\n      </template>\r\n      <template #cell(selected)=\"data\">\r\n        <b-form-checkbox\r\n          @input=\"itemChanged(data.item, $event)\"\r\n          :disabled=\"!data.item.accessibleByCurrentUser\"\r\n          :checked=\"data.item.selected\"\r\n        >\r\n        </b-form-checkbox>\r\n      </template>\r\n    </s-table>\r\n  </div>\r\n</template>\r\n\r\n<style lang=\"sass\" scoped>\r\n  @import \"src/styles/defaults/variables\"\r\n  @import \"src/styles/defaults/mobile-first\"\r\n\r\n  .profile-list\r\n    max-height: 500px\r\n    ::v-deep &__cell\r\n      &-checkbox\r\n        width: 2.2em\r\n      &-id\r\n        width: 25em\r\n    +media-min-sm()\r\n    +media-min-md()\r\n    +media-min-lg()\r\n</style>\r\n\r\n<script>\r\nimport UserService from '@/domain/services/user';\r\nimport { cleanIncludes, clearDiacritics } from '@/services/stringHelper';\r\n\r\nexport default {\r\n  props: ['query', 'user'],\r\n  data() {\r\n    return {\r\n      loading: true,\r\n      items: [],\r\n      all: false,\r\n      fromItemChange: false,\r\n    };\r\n  },\r\n  created() {\r\n    this.loadProfiles();\r\n  },\r\n  computed: {\r\n    fields() {\r\n      return [\r\n        {\r\n          key: 'selected',\r\n          label: '',\r\n          class: 'profile-list__cell-checkbox',\r\n        },\r\n        {\r\n          key: 'name',\r\n          label: this.$t('user-manager.editing.access-data.columns.profile'),\r\n          class: 'profile-list__cell-name',\r\n        },\r\n      ];\r\n    },\r\n    effectiveQuery() {\r\n      return this.query && this.query.length >= 3\r\n        ? clearDiacritics(this.query).toLowerCase()\r\n        : null;\r\n    },\r\n    hasItems() {\r\n      return !this.loading && this.items && this.items.length;\r\n    },\r\n  },\r\n  methods: {\r\n    filterTable(profile) {\r\n      return cleanIncludes(profile.name, this.effectiveQuery, {\r\n        clearValueToFind: false,\r\n      });\r\n    },\r\n    async loadProfiles() {\r\n      this.loading = true;\r\n      this.items = await UserService.getProfilesForUserEditing(this.user.id, this.user.profiles);\r\n      this.items.sort((itemA, itemB) => {\r\n        if (itemA.name > itemB.name) {\r\n          return 1;\r\n        }\r\n\r\n        if (itemA.name < itemB.name) {\r\n          return -1;\r\n        }\r\n\r\n        return 0;\r\n      });\r\n      this.applySelected();\r\n      this.refreshAll();\r\n      this.loading = false;\r\n    },\r\n    applySelected() {\r\n      this.items.forEach((profile) => {\r\n        // eslint-disable-next-line no-param-reassign\r\n        profile.selected = this.user.profiles.includes(profile.id);\r\n      });\r\n    },\r\n    isAllSelected() {\r\n      return this.items.every(i => i.selected);\r\n    },\r\n    allChange(newValue) {\r\n      if (this.fromItemChange) {\r\n        this.fromItemChange = false;\r\n        return;\r\n      }\r\n\r\n      let hasChangedItems = false;\r\n\r\n      this.items.forEach((it) => {\r\n        const item = it;\r\n        if (item.selected === newValue\r\n          || !item.accessibleByCurrentUser\r\n        ) {\r\n          return;\r\n        }\r\n        hasChangedItems = true;\r\n        item.selected = newValue;\r\n      });\r\n\r\n      if (hasChangedItems) {\r\n        this.$forceUpdate();\r\n      }\r\n    },\r\n    itemChanged(eventItem, newValue) {\r\n      const item = eventItem;\r\n      item.selected = newValue;\r\n      this.$forceUpdate();\r\n\r\n      this.fromItemChange = this.refreshAll();\r\n\r\n      this.updateUserProfilesArray();\r\n    },\r\n    refreshAll() {\r\n      const allSelected = this.isAllSelected();\r\n      if (allSelected !== this.all) {\r\n        this.all = allSelected;\r\n        return true;\r\n      }\r\n      return false;\r\n    },\r\n    updateUserProfilesArray() {\r\n      this.user.profiles = this.items.filter(p => p.selected).map(p => p.id);\r\n    },\r\n  },\r\n};\r\n</script>\r\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccessListDataGrid.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccessListDataGrid.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AccessListDataGrid.vue?vue&type=template&id=7703366c&scoped=true&\"\nimport script from \"./AccessListDataGrid.vue?vue&type=script&lang=js&\"\nexport * from \"./AccessListDataGrid.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AccessListDataGrid.vue?vue&type=style&index=0&id=7703366c&lang=sass&scoped=true&\"\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  \"7703366c\",\n  null\n  \n)\n\nexport default component.exports","<template>\r\n  <div class=\"access\" >\r\n    <h4 class=\"access__area-title form-section-title\">\r\n      {{ $t('user-manager.editing.access-data.profile-list') }}\r\n      <i\r\n        class=\"fas fa-info-circle text-blue\"\r\n        aria-hidden=\"true\"\r\n        v-b-popover.hover=\"$t('user-manager.editing.access-data.profile-list-help')\"\r\n        title=\"\"\r\n      />\r\n    </h4>\r\n    <div class=\"access__container\">\r\n      <b-row class=\"access__search-field\">\r\n        <b-col xs=\"12\" sm=\"8\" md=\"6\" lg=\"4\" xl=\"3\">\r\n          <s-search-input\r\n            v-model.trim=\"query\"\r\n            :placeholder=\"$t('user-manager.editing.access-data.search-profile')\"\r\n          />\r\n        </b-col>\r\n      </b-row>\r\n      <access-grid :query=\"query\" :user=\"user\"/>\r\n    </div>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nimport AccessListDataGrid from './AccessListDataGrid';\r\n\r\nexport default {\r\n  props: {\r\n    user: {\r\n      type: Object,\r\n      default: () => ({}),\r\n    },\r\n  },\r\n  components: {\r\n    AccessGrid: AccessListDataGrid,\r\n  },\r\n  data: () => ({\r\n    query: null,\r\n  }),\r\n  computed: {\r\n    canForward() {\r\n      return (this.user.profiles || []).length > 0;\r\n    },\r\n  },\r\n  created() {\r\n    this.canForwardChanged(this.canForward);\r\n  },\r\n  methods: {\r\n    canForwardChanged(newValue) {\r\n      this.$emit('can-forward-changed', newValue);\r\n    },\r\n  },\r\n  watch: {\r\n    canForward(newValue) {\r\n      this.canForwardChanged(newValue);\r\n    },\r\n  },\r\n};\r\n</script>\r\n\r\n<style lang=\"sass\" scoped>\r\n@import \"src/styles/defaults/variables\"\r\n@import \"src/styles/defaults/mobile-first\"\r\n\r\n.access\r\n  &__search-field\r\n    margin: 15px 5px\r\n  &__container\r\n    border: 1px solid var(--color-border-regular)\r\n    border-radius: 5px\r\n    margin-top: 15px\r\n  ::v-deep .table\r\n    margin-bottom: 0\r\n  +media-min-sm()\r\n  +media-min-md()\r\n  +media-min-lg()\r\n</style>\r\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccessData.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccessData.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AccessData.vue?vue&type=template&id=39da99fa&scoped=true&\"\nimport script from \"./AccessData.vue?vue&type=script&lang=js&\"\nexport * from \"./AccessData.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AccessData.vue?vue&type=style&index=0&id=39da99fa&lang=sass&scoped=true&\"\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  \"39da99fa\",\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('div',{staticClass:\"permissions\"},[_c('b-form-checkbox',{on:{\"input\":function($event){return _vm.copyChanged($event)}},model:{value:(_vm.copyUserPermissions),callback:function ($$v) {_vm.copyUserPermissions=$$v},expression:\"copyUserPermissions\"}},[_vm._v(\"\\n    \"+_vm._s(_vm.$t('user-manager.editing.permissions.copy-user'))+\"\\n  \")]),_vm._v(\" \"),_c('b-row',[_c('b-col',{attrs:{\"sm\":\"12\",\"md\":\"8\",\"lg\":\"4\"}},[_c('b-form-group',{staticClass:\"mt-2\",attrs:{\"id\":\"userListFieldSet\",\"label-for\":\"userList\",\"label\":_vm.$t('user-manager.editing.permissions.user'),\"label-class\":!_vm.copyUserPermissions ? 'disabled' : ''}},[_c('s-select',{attrs:{\"id\":\"userList\",\"value-field\":\"id\",\"text-field\":\"name\",\"disabled\":!_vm.copyUserPermissions,\"options\":_vm.usersToCopy},on:{\"change\":function($event){return _vm.tryApplySelectedUserPermissions()}},model:{value:(_vm.selectedUserToCopy),callback:function ($$v) {_vm.selectedUserToCopy=$$v},expression:\"selectedUserToCopy\"}})],1)],1)],1),_vm._v(\" \"),_c('b-form-group',{attrs:{\"label\":_vm.$t('user-manager.editing.permissions.select-permission-level'),\"label-for\":\"permissionLevels\"}},[_c('b-form-radio-group',{staticClass:\"permissions__levels-radios\",attrs:{\"id\":\"permissionLevels\"},on:{\"input\":function($event){return _vm.selectedLevelChanged()}},model:{value:(_vm.user.level),callback:function ($$v) {_vm.$set(_vm.user, \"level\", $$v)},expression:\"user.level\"}},_vm._l((_vm.permissionLevelKeys),function(levelKey){return _c('b-form-radio',{key:levelKey,attrs:{\"disabled\":!_vm.canSelectLevel(levelKey),\"value\":levelKey}},[_vm._v(\"\\n        \"+_vm._s(_vm.$t((\"permissions.levels.\" + levelKey)))+\"\\n      \")])}),1)],1),_vm._v(\" \"),_c('div',[_c('permission-groups',{attrs:{\"user\":_vm.user,\"groups\":_vm.permissionGroups || [],\"is-disabled\":_vm.canDisableGroup()}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import isEqual from 'lodash/isEqual';\r\nimport Http from '@/services/http';\r\nimport UserService from '@/services/user';\r\nimport { level } from '@/domain/enums/user';\r\nimport { permissionGroups, allPermissions } from 'sigma-mappings';\r\n\r\nconst urls = {\r\n  getUsersToCopy: '/usuario/lookup',\r\n  getUserPermissions: '/usuario/{userId}/permissoes',\r\n  getPermissionLevels: '/Permissao',\r\n};\r\n\r\n/**\r\n * Aplica as permissões em um destino levando em consideração se o usuário logado pode\r\n * definir aquela permissão.\r\n * @param {String[]} permissionsToApply Array de permissões que serão aplicadas.\r\n * @param {Object} targetPermissions Objeto que carrega as definições de permissões.\r\n * @return {Boolean} True se todas as permissões puderam ser aplicadas.\r\n * False se alguma permissão foi negada devido ao usuário logado não possuí-la.\r\n */\r\nfunction applyPermissions(permissionsToApply, targetPermissions) {\r\n  let allApplied = true;\r\n  allPermissions.forEach((permission) => {\r\n    let condition = permissionsToApply.includes(permission);\r\n    if (condition && !UserService.hasPermission(permission)) {\r\n      allApplied = false;\r\n      condition = false;\r\n    }\r\n    // eslint-disable-next-line no-param-reassign\r\n    targetPermissions[permission] = condition;\r\n  });\r\n  return allApplied;\r\n}\r\n\r\nexport default {\r\n  /**\r\n   * Obtem a lista de usuários que podem ser copiados.\r\n   * @returns {Promise<{id: string, name: string}[]>} Lista de usuários.\r\n   */\r\n  getUsersToCopy() {\r\n    const http = new Http();\r\n    return http.get(urls.getUsersToCopy).then(response => response.data.map(usuario => ({\r\n        id: usuario.id,\r\n        name: usuario.nome,\r\n      })));\r\n  },\r\n  /**\r\n   * Obtem as permissões agrupadas para exibição.\r\n   * @returns {Promise<{name: string, permissions: any[], children?: any[]}[]>} Lista de permissões.\r\n   */\r\n  getGroupedPermissions() {\r\n    return Promise.resolve(permissionGroups);\r\n  },\r\n  /**\r\n   * Obtem as permissões por nível.\r\n   * @returns {Promise<{nome_perfil: string[]}[]>} Lista de permissões agrupadas por nível.\r\n   */\r\n  getPermissionLevels() {\r\n    const http = new Http();\r\n    return http.get(urls.getPermissionLevels).then(({ data }) => ({\r\n      [level.Admin]: data.permissoes.administrador || [],\r\n      [level.Operator]: data.permissoes.operador || [],\r\n      [level.Viewer]: data.permissoes.visualizador || [],\r\n      [level.Custom]: [],\r\n    }));\r\n  },\r\n  /**\r\n   * Aplica as permissões de um usuário de origem.\r\n   * @param {Number} sourceUserId\r\n   * @param {Object} targetPermissions Objeto que carrega as definições de permissões.\r\n   * @return {Promise<Boolean>} True se todas as permissões puderam ser aplicadas.\r\n   * False se alguma permissão foi negada devido ao usuário logado não possuí-la.\r\n   */\r\n  applyUserPermissions(sourceUserId, targetPermissions) {\r\n    const http = new Http();\r\n    return http\r\n      .get(urls.getUserPermissions.replace(/{userId}/g, sourceUserId))\r\n      .then(response => applyPermissions(response.data, targetPermissions));\r\n  },\r\n  /**\r\n   * Aplica as permissões de um nível.\r\n   * @param {String[]} sourceLevelPermissions\r\n   * @param {Object} targetPermissions Objeto que carrega as definições de permissões.\r\n   * @return {Promise<Boolean>} True se todas as permissões puderam ser aplicadas.\r\n   * False se alguma permissão foi negada devido ao usuário logado não possuí-la.\r\n   */\r\n  applyLevelPermissions(sourceLevelPermissions, targetPermissions) {\r\n    return Promise.resolve(\r\n      applyPermissions(sourceLevelPermissions, targetPermissions),\r\n    );\r\n  },\r\n  /**\r\n   * Retorna o perfil que as permissões passadas se encaixam, ou personalizado, se não se encaixar\r\n   * em nenhuma definição.\r\n   * @param {Object} permissionsFlag\r\n   * @param {{perm: string[],}} permissionLevelsList\r\n   * @return {String} Nome do perfil que se enquadra.\r\n   */\r\n  getLevelByPermissions(permissionsFlag, permissionLevelsList) {\r\n    const permissionsArray = this.toPermissionArray(permissionsFlag);\r\n    return (\r\n      Object.keys(permissionLevelsList).find(levelName => this.hasSamePermissions(\r\n          permissionsArray,\r\n          permissionLevelsList[levelName],\r\n        )) || 'custom'\r\n    );\r\n  },\r\n  /**\r\n   * Compara se duas listas de permissões são igual, possuindo as mesmas permissões.\r\n   * @param {String[]} a Lista A\r\n   * @param {String[]} b Lista B\r\n   * @returns {Boolean} Verdadeiro se as duas listas contiverem as mesmas permissões.\r\n   */\r\n  hasSamePermissions(a, b) {\r\n    return isEqual([...a].sort(), [...b].sort());\r\n  },\r\n  /**\r\n   * Converte um objeto de permissões { PER001: true, PER002: false, ...} em uma array\r\n   * de permissões com todas as permissões ativas.\r\n   * @param {Object} permissionObject Objeto de permissões.\r\n   * @returns {String[]} Array com as permissões que estavam habilitadas no objeto.\r\n   */\r\n  toPermissionArray(permissionObject) {\r\n    return allPermissions.filter(permission => permissionObject[permission]);\r\n  },\r\n  /**\r\n   * Converte uma array de permissões em um objeto { PER001: true, PER002: false, ...}\r\n   * de permissões com as permissões de entrada ativas e as demais desativas.\r\n   * @param {String[]} permissionArray Array de permissões.\r\n   * @returns {Object} Objeto com as permissões.\r\n   */\r\n  toPermissionObject(permissionArray) {\r\n    const permissionObject = {};\r\n    const permissionArrayUpper = permissionArray.map(p => p.toUpperCase());\r\n    allPermissions.forEach((permission) => {\r\n      permissionObject[permission] = permissionArrayUpper.includes(permission);\r\n    });\r\n    return permissionObject;\r\n  },\r\n};\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._l((_vm.groups),function(group,index){return _c('accordion-panel',{key:group.name,staticClass:\"user-editing-permissions-groups avoid-break checkbox-group\",attrs:{\"id\":group.name,\"collapsed\":_vm.collapsedPanels[index]},on:{\"update:collapsed\":function($event){return _vm.$set(_vm.collapsedPanels, index, $event)}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('label',{staticClass:\"mb-0\"},[_vm._v(\"\\n        \"+_vm._s(_vm.$t((\"permissions.groups.\" + (group.name))))+\"\\n      \")])]},proxy:true}],null,true)},[_vm._v(\" \"),_c('permission-items',{attrs:{\"user\":_vm.user,\"permissions\":group.permissions,\"is-disabled\":_vm.isDisabled}}),_vm._v(\" \"),(group.children && group.children.length)?_c('div',[_c('permission-sub-groups',{attrs:{\"user\":_vm.user,\"sub-groups\":group.children,\"is-disabled\":_vm.isDisabled}})],1):_vm._e()],1)}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"sub-level-list\"},_vm._l((_vm.permissions),function(permission){return _c('li',{key:permission.name},[_c('b-form-checkbox',{class:_vm.permissionItemClass,attrs:{\"disabled\":_vm.shouldDisablelItem(permission.name)},on:{\"change\":function($event){return _vm.onChangeSelectionHandler($event, permission.name)}},model:{value:(_vm.user.permissions[permission.name]),callback:function ($$v) {_vm.$set(_vm.user.permissions, permission.name, $$v)},expression:\"user.permissions[permission.name]\"}},[_vm._v(\"\\n      \"+_vm._s(_vm.$t((\"permissions.codes.\" + (permission.name))))+\"\\n    \")]),_vm._v(\" \"),(permission.children && permission.children.length)?_c('div',[_c('permission-items',{attrs:{\"user\":_vm.user,\"permissions\":permission.children,\"superior-permission\":permission.name,\"is-disabled\":_vm.shouldDisablelItem(permission.name)}})],1):_vm._e()],1)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\r\n    onChangePermissionItem: 'userPermission.onChangePermissionItem',\r\n};\r\n","<template>\r\n  <ul class=\"sub-level-list\">\r\n    <li\r\n      v-for=\"permission in permissions\"\r\n      :key=\"permission.name\"\r\n    >\r\n      <b-form-checkbox\r\n        v-model=\"user.permissions[permission.name]\"\r\n        :class=\"permissionItemClass\"\r\n        :disabled=\"shouldDisablelItem(permission.name)\"\r\n        @change=\"onChangeSelectionHandler($event, permission.name)\"\r\n      >\r\n        {{ $t(`permissions.codes.${permission.name}`) }}\r\n      </b-form-checkbox>\r\n\r\n      <div v-if=\"permission.children && permission.children.length\">\r\n        <permission-items\r\n          :user=\"user\"\r\n          :permissions=\"permission.children\"\r\n          :superior-permission=\"permission.name\"\r\n          :is-disabled=\"shouldDisablelItem(permission.name)\"\r\n        />\r\n      </div>\r\n    </li>\r\n  </ul>\r\n</template>\r\n\r\n<script>\r\nimport eventBus from '@/services/globalEventBus';\r\nimport events from '@/domain/events/userPermissions';\r\nimport UserService from '@/services/user';\r\n\r\nexport default {\r\n  name: 'permission-items',\r\n  props: {\r\n    user: Object,\r\n    permissions: Array,\r\n    superiorPermission: {\r\n      type: String,\r\n      default: '',\r\n    },\r\n    isDisabled: {\r\n      type: Boolean,\r\n      default: null,\r\n    },\r\n  },\r\n  computed: {\r\n    isSubLevelItem() {\r\n      return !!this.superiorPermission;\r\n    },\r\n    permissionItemClass() {\r\n      return this.isSubLevelItem ? 'sub-level-item' : '';\r\n    },\r\n  },\r\n  methods: {\r\n    shouldDisablelItem(permission) {\r\n      if (this.isDisabled) {\r\n        return true;\r\n      }\r\n\r\n      if (!UserService.hasPermission(permission)) {\r\n        return true;\r\n      }\r\n\r\n      return !!(this.isSubLevelItem && !this.user.permissions[this.superiorPermission]);\r\n    },\r\n    onChangeSelectionHandler(event, permissionName) {\r\n      eventBus.emit(events.onChangePermissionItem);\r\n      this.updatePermissionsSelection(event, permissionName);\r\n    },\r\n    updatePermissionsSelection(event, permissionName) {\r\n      if (event) {\r\n        return;\r\n      }\r\n\r\n      const [permission] = this.permissions.filter(x => x.name === permissionName);\r\n      const permissionChildren = permission?.children || [];\r\n\r\n      permissionChildren.forEach((child) => {\r\n        this.user.permissions[child.name] = false;\r\n      });\r\n    },\r\n  },\r\n};\r\n</script>\r\n\r\n<style lang=\"sass\" scoped>\r\n.sub-level\r\n  &-list\r\n    list-style: none\r\n    padding-left: 0\r\n    margin-bottom: 0\r\n  &-item\r\n    padding-left: 3rem\r\n</style>\r\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionItems.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionItems.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PermissionItems.vue?vue&type=template&id=670381fe&scoped=true&\"\nimport script from \"./PermissionItems.vue?vue&type=script&lang=js&\"\nexport * from \"./PermissionItems.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PermissionItems.vue?vue&type=style&index=0&id=670381fe&lang=sass&scoped=true&\"\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  \"670381fe\",\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('div',_vm._l((_vm.subGroups),function(subGroup){return _c('b-form-group',{key:subGroup.name,staticClass:\"mt-3 mb-0\"},[_c('label',[_vm._v(\"\\n      \"+_vm._s(_vm.$t((\"permissions.groups.\" + (subGroup.name))))+\"\\n    \")]),_vm._v(\" \"),_c('permission-items',{attrs:{\"user\":_vm.user,\"permissions\":subGroup.permissions,\"is-disabled\":_vm.isDisabled}})],1)}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <div>\r\n    <b-form-group\r\n      class=\"mt-3 mb-0\"\r\n      v-for=\"subGroup in subGroups\"\r\n      :key=\"subGroup.name\"\r\n    >\r\n      <label>\r\n        {{ $t(`permissions.groups.${subGroup.name}`) }}\r\n      </label>\r\n      <permission-items\r\n        :user=\"user\"\r\n        :permissions=\"subGroup.permissions\"\r\n        :is-disabled=\"isDisabled\"\r\n      >\r\n      </permission-items>\r\n    </b-form-group>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nimport PermissionItems from '@/domain/components/generalPanel/adminPanel/user/editing/PermissionItems';\r\n\r\nexport default {\r\n  name: 'permission-sub-groups',\r\n  components: {\r\n    PermissionItems,\r\n  },\r\n  props: {\r\n    user: Object,\r\n    subGroups: Array,\r\n    isDisabled: {\r\n      type: Boolean,\r\n      default: null,\r\n    },\r\n  },\r\n  data() {\r\n    return {\r\n    };\r\n  },\r\n};\r\n</script>\r\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionSubGroups.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionSubGroups.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PermissionSubGroups.vue?vue&type=template&id=0fa9bfb0&\"\nimport script from \"./PermissionSubGroups.vue?vue&type=script&lang=js&\"\nexport * from \"./PermissionSubGroups.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","<template>\r\n  <div>\r\n    <accordion-panel\r\n      class=\"user-editing-permissions-groups avoid-break checkbox-group\"\r\n      v-for=\"(group, index) in groups\"\r\n      :key=\"group.name\"\r\n      :id=\"group.name\"\r\n      :collapsed.sync=\"collapsedPanels[index]\"\r\n    >\r\n      <template #title>\r\n        <label class=\"mb-0\">\r\n          {{ $t(`permissions.groups.${group.name}`) }}\r\n        </label>\r\n      </template>\r\n\r\n      <permission-items\r\n        :user=\"user\"\r\n        :permissions=\"group.permissions\"\r\n        :is-disabled=\"isDisabled\"\r\n      />\r\n\r\n      <div v-if=\"group.children && group.children.length\">\r\n        <permission-sub-groups\r\n          :user=\"user\"\r\n          :sub-groups=\"group.children\"\r\n          :is-disabled=\"isDisabled\"\r\n        />\r\n      </div>\r\n    </accordion-panel>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nimport PermissionItems from '@/domain/components/generalPanel/adminPanel/user/editing/PermissionItems';\r\nimport PermissionSubGroups from '@/domain/components/generalPanel/adminPanel/user/editing/PermissionSubGroups';\r\nimport AccordionPanel from '@/components/AccordionPanel';\r\n\r\nexport default {\r\n  name: 'permission-groups',\r\n  components: {\r\n    PermissionItems,\r\n    PermissionSubGroups,\r\n    AccordionPanel,\r\n  },\r\n  props: {\r\n    user: Object,\r\n    groups: Array,\r\n    isDisabled: {\r\n      type: Boolean,\r\n      default: null,\r\n    },\r\n  },\r\n  data() {\r\n    return {\r\n      collapsedPanels: [],\r\n    };\r\n  },\r\n};\r\n</script>\r\n\r\n<style lang=\"sass\" scoped>\r\n  @import \"src/styles/defaults/variables\"\r\n\r\n  .user-editing-permissions-groups\r\n    margin-top: 1rem\r\n    border: 1px solid $color-border-gray\r\n    border-radius: 5px\r\n  ::v-deep\r\n    .accordion-panel\r\n      &__header\r\n        padding: 2px 15px !important\r\n        font-weight: bold\r\n</style>\r\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionGroups.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionGroups.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PermissionGroups.vue?vue&type=template&id=071c894b&scoped=true&\"\nimport script from \"./PermissionGroups.vue?vue&type=script&lang=js&\"\nexport * from \"./PermissionGroups.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PermissionGroups.vue?vue&type=style&index=0&id=071c894b&lang=sass&scoped=true&\"\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  \"071c894b\",\n  null\n  \n)\n\nexport default component.exports","<template>\r\n  <div class=\"permissions\">\r\n    <b-form-checkbox\r\n      v-model=\"copyUserPermissions\"\r\n      @input=\"copyChanged($event)\"\r\n    >\r\n      {{ $t('user-manager.editing.permissions.copy-user') }}\r\n    </b-form-checkbox>\r\n\r\n    <b-row>\r\n      <b-col\r\n        sm=\"12\"\r\n        md=\"8\"\r\n        lg=\"4\"\r\n      >\r\n        <b-form-group\r\n          class=\"mt-2\"\r\n          id=\"userListFieldSet\"\r\n          label-for=\"userList\"\r\n          :label=\"$t('user-manager.editing.permissions.user')\"\r\n          :label-class=\"!copyUserPermissions ? 'disabled' : ''\"\r\n        >\r\n          <s-select\r\n            v-model=\"selectedUserToCopy\"\r\n            id=\"userList\"\r\n            value-field=\"id\"\r\n            text-field=\"name\"\r\n            :disabled=\"!copyUserPermissions\"\r\n            :options=\"usersToCopy\"\r\n            @change=\"tryApplySelectedUserPermissions()\"\r\n          />\r\n        </b-form-group>\r\n      </b-col>\r\n    </b-row>\r\n\r\n    <b-form-group\r\n      :label=\"$t('user-manager.editing.permissions.select-permission-level')\"\r\n      label-for=\"permissionLevels\"\r\n    >\r\n      <b-form-radio-group\r\n        id=\"permissionLevels\"\r\n        v-model=\"user.level\"\r\n        class=\"permissions__levels-radios\"\r\n        @input=\"selectedLevelChanged()\"\r\n      >\r\n        <b-form-radio\r\n          v-for=\"levelKey in permissionLevelKeys\"\r\n          :disabled=\"!canSelectLevel(levelKey)\"\r\n          :key=\"levelKey\"\r\n          :value=\"levelKey\"\r\n        >\r\n          {{ $t(`permissions.levels.${levelKey}`) }}\r\n        </b-form-radio>\r\n      </b-form-radio-group>\r\n    </b-form-group>\r\n    <div>\r\n      <permission-groups\r\n        :user=\"user\"\r\n        :groups=\"permissionGroups || []\"\r\n        :is-disabled=\"canDisableGroup()\"\r\n      />\r\n    </div>\r\n  </div>\r\n</template>\r\n<style lang=\"sass\" scoped>\r\n@import \"src/styles/defaults/variables\"\r\n@import \"src/styles/defaults/mobile-first\"\r\n\r\n.permissions\r\n  &__group\r\n    break-inside: avoid-column\r\n    > div > *\r\n      display: block\r\n    &__levels-radios > *\r\n      display: block\r\n    +media-min-sm()\r\n    +media-min-md()\r\n      &__levels-radios > *\r\n        display: inline-flex\r\n    +media-min-lg()\r\n      &__groups\r\n        column-count: 2\r\n</style>\r\n\r\n<script>\r\nimport { mapGetters } from 'vuex';\r\nimport { level } from '@/domain/enums/user';\r\nimport UserService from '@/services/user';\r\nimport PermissionService from '@/domain/services/generalPanel/adminPanel/userPermissionsService';\r\nimport PermissionGroups from '@/domain/components/generalPanel/adminPanel/user/editing/PermissionGroups';\r\n\r\nexport default {\r\n  components: {\r\n    PermissionGroups,\r\n  },\r\n  props: {\r\n    /**\r\n     * Instância do usuário.\r\n     * Interface esperada:\r\n     * {\r\n     *   level: 'string',\r\n     *   permissions: { PER001: true, PER002: false, ...},\r\n     *   ...\r\n     * }\r\n     *\r\n     * Existem métodos utilitários em PermissionsService que convertem entre\r\n     * um array de permissions e a interface de objeto de permissões\r\n     * utilizada aqui. Ver PermissionsService.toPermissionObject(...) e\r\n     * PermissionsService.toPermissionArray(...) para maiores detalhes.\r\n     */\r\n    user: Object,\r\n  },\r\n  data() {\r\n    return {\r\n      usersToCopy: [],\r\n      permissionLevels: null,\r\n      permissionGroups: null,\r\n      copyUserPermissions: false,\r\n      selectedUserToCopy: null,\r\n      changingPermissions: false,\r\n    };\r\n  },\r\n  computed: {\r\n    ...mapGetters(['isSuperAdmin']),\r\n    selectedPermissionLevel() {\r\n      if (!this.permissionLevels) {\r\n        return null;\r\n      }\r\n      return this.permissionLevels[this.user.level];\r\n    },\r\n    permissionLevelKeys() {\r\n      if (this.permissionLevels !== null) {\r\n        return Object.keys(this.permissionLevels);\r\n      }\r\n      return [];\r\n    },\r\n  },\r\n  created() {\r\n    this.initializeValues();\r\n  },\r\n  methods: {\r\n    getGroupedPermissions() {\r\n      PermissionService.getGroupedPermissions().then((groups) => {\r\n        this.permissionGroups = groups;\r\n      });\r\n    },\r\n    getPermissionLevels() {\r\n      PermissionService.getPermissionLevels().then((levels) => {\r\n        this.permissionLevels = levels;\r\n      });\r\n    },\r\n    getUsers() {\r\n      PermissionService.getUsersToCopy().then((users) => {\r\n        const nullOption = { name: this.$t('general.select'), id: null };\r\n        this.usersToCopy = [nullOption, ...users];\r\n      });\r\n    },\r\n    initializeValues() {\r\n      if (!this.user.permissions) {\r\n        this.user.permissions = {};\r\n      }\r\n      this.getGroupedPermissions();\r\n      this.getPermissionLevels();\r\n      this.getUsers();\r\n    },\r\n    copyChanged(newValue) {\r\n      if (!newValue) {\r\n        this.selectedUserToCopy = null;\r\n        return;\r\n      }\r\n      this.tryTakePermissionsToChange(this.copyChangedCallback);\r\n    },\r\n    copyChangedCallback() {\r\n      Object.keys(this.user.permissions).forEach((permission) => {\r\n        if (this.canChangePermission(permission)) {\r\n          this.$set(this.user.permissions, permission, false);\r\n        }\r\n      });\r\n      this.$set(this.user, 'level', level.Custom);\r\n    },\r\n    canChangePermission(permission) {\r\n      return UserService.hasPermission(permission);\r\n    },\r\n    tryApplySelectedUserPermissions() {\r\n      if (this.selectedUserToCopy) {\r\n        this.tryTakePermissionsToChange(\r\n          this.tryApplySelectedUserPermissionsCallback,\r\n        );\r\n      }\r\n    },\r\n    async tryApplySelectedUserPermissionsCallback() {\r\n      const allApplied = await PermissionService.applyUserPermissions(\r\n        this.selectedUserToCopy,\r\n        this.user.permissions,\r\n      );\r\n\r\n      this.$set(this.user, 'permissions', {\r\n        ...this.user.permissions,\r\n      });\r\n\r\n      this.$set(\r\n        this.user,\r\n        'level',\r\n        PermissionService.getLevelByPermissions(\r\n          this.user.permissions,\r\n          this.permissionLevels,\r\n        ),\r\n      );\r\n\r\n      if (!allApplied) {\r\n        this.clearUserToCopy();\r\n        this.$pushAlert({ code: 'ma013' });\r\n      }\r\n    },\r\n    clearUserToCopy() {\r\n      this.selectedUserToCopy = null;\r\n      this.copyUserPermissions = false;\r\n    },\r\n    selectedLevelChanged() {\r\n      this.tryTakePermissionsToChange(this.selectedLevelChangedCallback);\r\n    },\r\n    async selectedLevelChangedCallback() {\r\n      this.clearUserToCopy();\r\n      const allApplied = await PermissionService.applyLevelPermissions(\r\n        this.selectedPermissionLevel,\r\n        this.user.permissions,\r\n      );\r\n\r\n      this.$set(this.user, 'permissions', {\r\n        ...this.user.permissions,\r\n      });\r\n\r\n      if (!allApplied) {\r\n        this.$set(this.user, 'level', level.Custom);\r\n        this.$pushAlert({\r\n          message: this.$t(\r\n            'user-manager.editing.permissions.level-cant-be-applied',\r\n          ),\r\n          type: 'warning',\r\n        });\r\n      }\r\n    },\r\n    async tryTakePermissionsToChange(callback) {\r\n      if (this.changingPermissions) {\r\n        return;\r\n      }\r\n      this.changingPermissions = true;\r\n      try {\r\n        await callback();\r\n      } finally {\r\n        this.changingPermissions = false;\r\n      }\r\n    },\r\n    canSelectLevel(levelName) {\r\n      return levelName !== level.SuperAdmin || this.isSuperAdmin;\r\n    },\r\n    canDisableGroup() {\r\n      return this.user.level !== level.Custom;\r\n    },\r\n  },\r\n};\r\n</script>\r\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Permissions.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Permissions.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Permissions.vue?vue&type=template&id=09123b67&scoped=true&\"\nimport script from \"./Permissions.vue?vue&type=script&lang=js&\"\nexport * from \"./Permissions.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Permissions.vue?vue&type=style&index=0&id=09123b67&lang=sass&scoped=true&\"\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  \"09123b67\",\n  null\n  \n)\n\nexport default component.exports","<template>\r\n  <app-content class=\"user-edit\">\r\n    <step-by-step\r\n      class=\"user-edit__step-by-step\"\r\n      ref=\"stepcmp\"\r\n      :steps=\"steps\"\r\n      :loading=\"loading\"\r\n      :current-step.sync=\"step\"\r\n      :conclude-button-text=\"$t('general.save')\"\r\n      @conclude=\"save()\"\r\n    >\r\n      <personal-data\r\n        slot=\"content:personal-data\"\r\n        :user=\"user\"\r\n        :current-user-email=\"currentUserEmail\"\r\n        @can-forward-changed=\"personalDataCanForward = $event\"\r\n      >\r\n      </personal-data>\r\n      <access-data\r\n        slot=\"content:access-data\"\r\n        :user=\"user\"\r\n        @can-forward-changed=\"accessDataCanForward = $event\"\r\n      >\r\n      </access-data>\r\n      <permissions\r\n        slot=\"content:permissions\"\r\n        :user=\"user\"\r\n      >\r\n      </permissions>\r\n      <template slot=\"bottomPreviousPanel\">\r\n        <b-button\r\n          v-if=\"canCancel\"\r\n          variant=\"secondary\"\r\n          @click=\"cancel()\"\r\n        >\r\n          {{ $t('general.cancel') }}\r\n        </b-button>\r\n      </template>\r\n    </step-by-step>\r\n    <password-reset\r\n      ref=\"passwordResetModal\"\r\n      @ok=\"goToUserList\"\r\n      @send-email=\"openPasswordModal\"\r\n      @send-email-submit=\"sendPasswordEmail\"\r\n    />\r\n  </app-content>\r\n</template>\r\n\r\n<script>\r\nimport StepByStep from '@/components/stepByStep/index';\r\nimport UserService from '@/domain/services/user';\r\nimport PersonalData from '@/domain/components/generalPanel/adminPanel/user/editing/PersonalData';\r\nimport AccessData from '@/domain/components/generalPanel/adminPanel/user/editing/AccessData';\r\nimport Permissions from '@/domain/components/generalPanel/adminPanel/user/editing/Permissions';\r\nimport PasswordReset from '@/domain/components/generalPanel/adminPanel/user/editing/PasswordReset';\r\nimport { mapGetters } from 'vuex';\r\n\r\nexport default {\r\n  props: {\r\n    userIdForEdit: {\r\n      type: String,\r\n      required: false,\r\n    },\r\n  },\r\n  components: {\r\n    StepByStep,\r\n    PersonalData,\r\n    AccessData,\r\n    Permissions,\r\n    PasswordReset,\r\n  },\r\n  data() {\r\n    return {\r\n      user: {},\r\n      currentUserEmail: null,\r\n      loading: false,\r\n      step: null,\r\n      personalDataCanForward: false,\r\n      accessDataCanForward: false,\r\n      steps: [\r\n        {\r\n          labelPath: 'user-manager.editing.personal-data.title',\r\n          icon: 'fas fa-user',\r\n          name: 'personal-data',\r\n          canForward: () => this.personalDataCanForward,\r\n          onForward: () => this.onForwardPersonalData(),\r\n        },\r\n        {\r\n          name: 'access-data',\r\n          labelPath: 'user-manager.editing.access-data.title',\r\n          icon: 'fas fa-key',\r\n          canForward: () => this.accessDataCanForward,\r\n        },\r\n        {\r\n          name: 'permissions',\r\n          labelPath: 'user-manager.editing.permissions.title',\r\n          icon: 'fas fa-tasks',\r\n        },\r\n      ],\r\n    };\r\n  },\r\n  computed: {\r\n    ...mapGetters({\r\n      isOfflineMode: 'isOfflineMode',\r\n      authenticatedUser: 'user',\r\n    }),\r\n    canCancel() {\r\n      return this.step === 0;\r\n    },\r\n  },\r\n  async created() {\r\n    if (!this.userIdForEdit) {\r\n      this.user = await UserService.getNewUser();\r\n    }\r\n  },\r\n  methods: {\r\n    goToUserList() {\r\n      this.$router.push({\r\n        name: 'admin-panel',\r\n      });\r\n    },\r\n    cancel() {\r\n      this.$confirmMessage({\r\n        code: 'MC006',\r\n      }).accepted(() => this.goToUserList());\r\n    },\r\n    onForwardPersonalData() {\r\n      if (this.user.receiveSmsAlerts && !this.user.phone) {\r\n        this.$pushAlert({\r\n          code: 'MA001',\r\n          messageParams: {\r\n            NomeDoCampo: this.$t('user-manager.editing.personal-data.ddd-phone'),\r\n          },\r\n        });\r\n        return false;\r\n      }\r\n      return true;\r\n    },\r\n    showNewPassword(newPassword, eMail) {\r\n      this.$refs.passwordResetModal.show(newPassword, eMail);\r\n    },\r\n    showEmailSentModal(email) {\r\n      this.$refs.passwordResetModal.showEmailSent(email);\r\n    },\r\n    checkTemporaryPassword(newUser = {}) {\r\n      if (!newUser.userPasswordData) {\r\n        this.goToUserList();\r\n        return;\r\n      }\r\n      const passwordData = newUser.userPasswordData || {};\r\n      this.showNewPassword(passwordData.newPassword, passwordData.userEmail);\r\n    },\r\n    saveUser() {\r\n      this.loading = true;\r\n      UserService.saveUser(this.user)\r\n        .then((response) => {\r\n          this.setUser(response.userData);\r\n          this.checkTemporaryPassword(response);\r\n          this.$pushAlert({ code: 'MS006' });\r\n        });\r\n    },\r\n    save() {\r\n      this.$confirmMessage({ code: 'MC011' })\r\n        .accepted(() => {\r\n          this.saveUser();\r\n        });\r\n    },\r\n    setUser(user) {\r\n      this.user = user;\r\n      this.currentUserEmail = this.user?.email;\r\n    },\r\n    openPasswordModal() {\r\n      this.$refs.passwordResetModal.showPasswordConfirmationModal(this.user);\r\n    },\r\n    sendPasswordEmail(authenticatedUser) {\r\n      const sendEmail = true;\r\n\r\n      UserService.resetPassword(this.user.id, authenticatedUser.password, sendEmail)\r\n        .then(result => this.showEmailSentModal(result.targetEmail));\r\n    },\r\n  },\r\n  beforeRouteEnter(to, from, next) {\r\n    if (to.params.userId) {\r\n      UserService.getUser(to.params.userId).then((user) => {\r\n        next((vm) => {\r\n          vm.setUser(user);\r\n        });\r\n      });\r\n    } else {\r\n      next();\r\n    }\r\n  },\r\n};\r\n</script>\r\n\r\n<style lang=\"sass\" scoped>\r\n@import src/styles/defaults/variables\r\n@import \"src/styles/defaults/mobile-first\"\r\n\r\n.user-edit\r\n  &__step-by-step\r\n    flex: 1\r\n    +media-min-sm()\r\n    +media-min-md()\r\n    +media-min-lg()\r\n</style>\r\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=6fc9bef2&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=6fc9bef2&lang=sass&scoped=true&\"\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  \"6fc9bef2\",\n  null\n  \n)\n\nexport default component.exports","import mod 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--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=6fc9bef2&lang=sass&scoped=true&\"; export default mod; 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--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=6fc9bef2&lang=sass&scoped=true&\"","import mod 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--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Permissions.vue?vue&type=style&index=0&id=09123b67&lang=sass&scoped=true&\"; export default mod; 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--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Permissions.vue?vue&type=style&index=0&id=09123b67&lang=sass&scoped=true&\"","import mod 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--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionGroups.vue?vue&type=style&index=0&id=071c894b&lang=sass&scoped=true&\"; export default mod; 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--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionGroups.vue?vue&type=style&index=0&id=071c894b&lang=sass&scoped=true&\"","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n  return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","import mod 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--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionItems.vue?vue&type=style&index=0&id=670381fe&lang=sass&scoped=true&\"; export default mod; 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--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PermissionItems.vue?vue&type=style&index=0&id=670381fe&lang=sass&scoped=true&\"","export function validateNamespaceOneDepthLevel(term) {\r\n  if (typeof term === 'string' && term.split('.').length >= 2) {\r\n    return;\r\n  }\r\n\r\n  throw new Error('Nome de evento inválido.\\nO nome do evento deve ser uma string com namespace'\r\n  + 'com pelo 1 nível de profundidade, exemplo: \"alarms.autorefresh\", \"mySigma.nonConfiguredArea\".');\r\n}\r\n\r\nconst emptyEventNameValidator = () => null;\r\n\r\n/**\r\n * Event Bus / Barramento de eventos\r\n *\r\n * Event bus simples para ouvintes e publicadores.\r\n *\r\n * Os nome de eventos usados aqui devem ser no formato \"namespace.evento\".\r\n * O namespace deve ter pelo menos 1 nível de profundidade a fim de evitar colisão de eventos,\r\n * exemplo: \"myData.save\", \"myData.load\", \"profile.save\".\r\n *\r\n * Os ouvintes devem ser funções formato \"function(...args: any[]): void\",\r\n * podendo ter 0 ou muitos argumentos passados no evento.\r\n */\r\nexport class EventBus {\r\n  /**\r\n   * @private\r\n   * Coleção de ouvintes de todos os eventos pendurados.\r\n   */\r\n  listenersCollection = null;\r\n\r\n  /**\r\n   * Validador de nomes de eventos;\r\n   * @readonly\r\n   */\r\n  eventNameValidator\r\n\r\n  /**\r\n   * Construtor base.\r\n   * @param {Function} [eventNameValidator] Função validadora de nomes de eventos.\r\n   */\r\n  constructor({ eventNameValidator } = {}) {\r\n    this.listenersCollection = {};\r\n    this.eventNameValidator = eventNameValidator || emptyEventNameValidator;\r\n  }\r\n\r\n  /**\r\n   * Adiciona um ouvinte a um evento.\r\n   * @param {String} eventName Nome do evento.\r\n   * @param {Function} fn Função ouvinte do evento.\r\n   * @param {Any} [scope] Escopo de execução (this) para a função ouvinte.\r\n   */\r\n  on(eventName, fn, scope = null) {\r\n    this.eventNameValidator(eventName);\r\n    this.getListeners(eventName).push({\r\n      fn,\r\n      scope,\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Adiciona ouvintes a eventos em um objeto de definições.\r\n   * @param {Object} events Object de definições no formato { eventName: fn, ... }.\r\n   * @param {Any} [scope] Escopo de execução (this) para a função ouvinte.\r\n   */\r\n  onEach(events, scope = null) {\r\n    Object.keys(events).forEach(eventName => this.on(eventName, events[eventName], scope));\r\n  }\r\n\r\n  /**\r\n   * Remove um ouvinte de um evento. As referências passadas aqui devem ser as mesmas\r\n   * usadas para adicionar o ouvinte.\r\n   * @param {String} eventName Nome do evento.\r\n   * @param {Function} fn Função ouvinte do evento.\r\n   * @param {Any} [scope] Escopo de execução (this) para a função ouvinte.\r\n   */\r\n  off(eventName, fn, scope = null) {\r\n    const listeners = this.getListeners(eventName);\r\n    const index = listeners.findIndex(listener => listener.fn === fn\r\n      && listener.scope === scope);\r\n\r\n    if (index === -1) {\r\n      throw new Error(`Não é possível remover o ouvinte. Ouvinte não encontrado para o evento \"${\r\n        eventName\r\n      }\". Verifique a referência da função e do escopo.`);\r\n    }\r\n\r\n    listeners.splice(index, 1);\r\n    if (!listeners.length) {\r\n      this.clearListeners(eventName);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Emitir um evento através do barramento para todos os ouvintes.\r\n   * @param {String} eventName Nome do evento.\r\n   * @param  {...any} [args] Argumentos do evento. Podem ser omitidos para um evento sem\r\n   * parametros.\r\n   */\r\n  emit(eventName, ...args) {\r\n    if (this.hasListenersConfig(eventName)) {\r\n      this.getListeners(eventName)\r\n        .forEach(listener => listener.fn.call(listener.scope, ...args));\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Método privado para uso interno.\r\n   * Retorna os ouvintes de um evento de maneira segura, evitando retornos nulos.\r\n   * @private\r\n   * @param {String} eventName Nome do evento.\r\n   * @returns {Object[]} Array de listeners do Evento.\r\n   */\r\n  getListeners(eventName) {\r\n    if (!this.hasListenersConfig(eventName)) {\r\n      this.listenersCollection[eventName] = [];\r\n    }\r\n    return this.listenersCollection[eventName];\r\n  }\r\n\r\n  /**\r\n   * Método privado para uso interno.\r\n   * Informa se há configuração de listeners para um evento.\r\n   * @private\r\n   * @param {String} eventName Nome do evento.\r\n   */\r\n  hasListenersConfig(eventName) {\r\n    return !!this.listenersCollection[eventName];\r\n  }\r\n\r\n  /**\r\n   * Método privado para uso interno.\r\n   * Limpa todos os ouvintes de um evento.\r\n   * @private\r\n   * @param {String} eventName Nome do evento.\r\n   */\r\n  clearListeners(eventName) {\r\n    delete this.listenersCollection[eventName];\r\n  }\r\n\r\n  /**\r\n   * Cria uma interface de procurador para um eventBus, expondo apenas os métodos relacionados\r\n   * a observação, como On, Off, Emit, e etc.\r\n   * @returns {Object}\r\n   */\r\n  createObservableProxy() {\r\n    return {\r\n      on: (...args) => this.on(...args),\r\n      onEach: (...args) => this.onEach(...args),\r\n      off: (...args) => this.off(...args),\r\n      emit: (...args) => this.emit(...args),\r\n    };\r\n  }\r\n}\r\n\r\n/**\r\n * Barramento global de eventos.\r\n */\r\nexport default new EventBus({ eventNameValidator: validateNamespaceOneDepthLevel });\r\n","import mod 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--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccessListDataGrid.vue?vue&type=style&index=0&id=7703366c&lang=sass&scoped=true&\"; export default mod; 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--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccessListDataGrid.vue?vue&type=style&index=0&id=7703366c&lang=sass&scoped=true&\""],"sourceRoot":""}