\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Paginator.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!./Paginator.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Paginator.vue?vue&type=template&id=6f3d133a&scoped=true&\"\nimport script from \"./Paginator.vue?vue&type=script&lang=js&\"\nexport * from \"./Paginator.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Paginator.vue?vue&type=style&index=0&id=6f3d133a&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 \"6f3d133a\",\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!./List.vue?vue&type=style&index=0&id=6e59bdae&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!./List.vue?vue&type=style&index=0&id=6e59bdae&lang=sass&scoped=true&\"","import store from '@/store';\r\nimport Http from '@/services/http';\r\nimport MonitoringService from '@/domain/services/generalPanel/dashboard';\r\nimport {\r\n InstallationStatus,\r\n BasicInstallation,\r\n InstallationRequest,\r\n InstallationsPagedRequest,\r\n InstallationsPagedResponse,\r\n InstallationOptionsRequest,\r\n InstallationCompleteResponse,\r\n InstallationsBasicResponse,\r\n} from 'sigma-mappings';\r\nimport editInstallationsFieldsDefinitions\r\n from '@/domain/data/installation/editInstallationsFieldsDefinitions';\r\nimport translate from '@/services/translate';\r\n\r\nconst urls = {\r\n getInstallation: '/instalacao',\r\n getInstallationList: '/instalacao/listagem',\r\n installationData: installationId => `/instalacao/${installationId}`,\r\n getInstallationByCompany: companyId => `/empresa/${companyId}/instalacoes`,\r\n getInstallationByCompaniesOrRegional: '/usuario/empresas/instalacoes',\r\n};\r\n\r\n/* istanbul ignore next */\r\nconst error = {\r\n errorHandling: {\r\n responseMessageParams: {\r\n $MA001: (data) => {\r\n const returnedField = editInstallationsFieldsDefinitions[data.field];\r\n if (!returnedField) return null;\r\n\r\n return {\r\n NomeDoCampo: translate(returnedField.label),\r\n };\r\n },\r\n $ME055: (data) => {\r\n const returnedField = editInstallationsFieldsDefinitions[data.field];\r\n if (!returnedField) return null;\r\n const param = data.parameters[0];\r\n return {\r\n 0: param,\r\n };\r\n },\r\n $MA029: (data) => {\r\n const returnedField = editInstallationsFieldsDefinitions[data.field];\r\n if (!returnedField) return null;\r\n return {\r\n FaixaInicial: returnedField.min,\r\n FaixaFinal: returnedField.max,\r\n NomeDoCampo: translate(returnedField.label),\r\n };\r\n },\r\n $MA051: (data) => {\r\n const returnedField = editInstallationsFieldsDefinitions[data.field];\r\n if (!returnedField) return null;\r\n return {\r\n maxLength: returnedField.max,\r\n fieldName: translate(returnedField.label),\r\n };\r\n },\r\n },\r\n },\r\n};\r\n\r\nfunction reducePush(result, newGroup) {\r\n result.push(...newGroup);\r\n return result;\r\n}\r\n\r\nfunction reduceExcludeDuplicated(equalComparer) {\r\n return (result, newItem) => {\r\n if (!result.some(existing => equalComparer(existing, newItem))) {\r\n result.push(newItem);\r\n }\r\n return result;\r\n };\r\n}\r\n\r\nexport default {\r\n /**\r\n * Recupera uma lista de instalações que o usuário tem acesso, possibilita o filtro por empresa\r\n * @param {*} companyId\r\n * @returns {Promise<*>} Lista de instalacoes com id e nome\r\n * GET /instalacao - Não tem como você filtrar as instalações por empresas.\r\n * GET /instalacao/lookup - Você só consegue filtrar por UM ID de empresa ou REGIONAL\r\n * POST /usuario/empresas/instalacoes -\r\n * Você pode passar uma lista de empresas\r\n * e/ou regionais e ele irá retornar a lista de instalações.\r\n */\r\n getInstallations(companyId) {\r\n const http = new Http();\r\n if (companyId) {\r\n return http.get(urls.getInstallationByCompany(companyId))\r\n .then(({ data }) => data.map(item => new InstallationsBasicResponse(item)));\r\n }\r\n return http.get(urls.getInstallation)\r\n .then(({ data }) => data.map(item => new InstallationsBasicResponse(item)));\r\n },\r\n getInstallationList(payload) {\r\n const http = new Http();\r\n const mappedPayload = new InstallationsPagedRequest(payload);\r\n return http.post(urls.getInstallationList, mappedPayload)\r\n .then(({ data }) => new InstallationsPagedResponse(data));\r\n },\r\n getInstallationsByCompaniesOrRegional(options) {\r\n const http = new Http();\r\n const apiModel = new InstallationOptionsRequest(options);\r\n return http\r\n .post(urls.getInstallationByCompaniesOrRegional, apiModel)\r\n .then(({ data }) => data.map(item => new InstallationCompleteResponse(item)));\r\n },\r\n getAccessInstallationData(installationId) {\r\n const http = new Http();\r\n return http.get(urls.installationData(installationId))\r\n .then(({ data }) => new BasicInstallation(data));\r\n },\r\n editAccessInstallationData(installationId, payload) {\r\n const http = new Http(error);\r\n const mappedPayload = new InstallationRequest(payload);\r\n return http.put(urls.installationData(installationId), mappedPayload)\r\n .then(({ data }) => data);\r\n },\r\n async loadAccessInstallationData(installationId) {\r\n await this.loadUserAccessibleInstallations();\r\n store.dispatch('setInstallation', await this.getAccessInstallationData(installationId));\r\n },\r\n clearAccessInstallationData() {\r\n this.clearUserAccessibleInstallations();\r\n store.dispatch('setInstallation');\r\n },\r\n async loadUserAccessibleInstallations() {\r\n if (store.getters.isUserAccessibleInstallationsLoaded) {\r\n return;\r\n }\r\n\r\n const companiesData = await MonitoringService.getInstallationMenuData();\r\n const regionalData = companiesData\r\n .map(company => company.regional)\r\n .reduce(reducePush, []);\r\n const installations = regionalData\r\n .map(regional => (regional.installations ? regional.installations.filter(\r\n installation => (installation.status !== InstallationStatus.BLOCKED\r\n || installation.status !== InstallationStatus.INACTIVE),\r\n ) : []))\r\n .reduce(reducePush, [])\r\n .reduce(reduceExcludeDuplicated((existing, newItem) => existing.id === newItem.id), [])\r\n .sort((a, b) => a.name.localeCompare(b.name));\r\n\r\n store.dispatch('setUserAccessibleInstallations', installations);\r\n },\r\n clearUserAccessibleInstallations() {\r\n store.dispatch('setUserAccessibleInstallations');\r\n },\r\n};\r\n","/* eslint-disable no-param-reassign */\r\n\r\n// Cria promessa\r\nfunction createPromise(config) {\r\n config.lastPromise = new Promise(\r\n // Só preciso do resolvedor, ela sempre será resolvida ao fim do timer.\r\n (resolver) => {\r\n config.lastPromiseResolver = resolver;\r\n },\r\n )\r\n // Quando for resolvida, chame e retorne a função em cadeia.\r\n .then(() => config.fn(...config.lastParams));\r\n}\r\n\r\n// Resolve a promessa, finalizando o delay.\r\nconst resolvePromise = (config) => {\r\n // Limpe tudo, não haverá mais nada pendente.\r\n clearTimeout(config.lastTimer);\r\n config.lastTimer = null;\r\n config.lastPromise = null;\r\n const tempResolver = config.lastPromiseResolver;\r\n config.lastPromiseResolver = null;\r\n // Acione a promessa para finalmente executar o código.\r\n tempResolver();\r\n};\r\n\r\n// Aciona o timer\r\nfunction touchTimer(config) {\r\n // Se houver um timer ativo, limpe-o;\r\n if (config.lastTimer !== null) {\r\n clearTimeout(config.lastTimer);\r\n }\r\n\r\n // Cria um novo timer para resolver a promessa, renovando o delay.\r\n config.lastTimer = setTimeout(() => resolvePromise(config), 1000);\r\n}\r\n\r\n// Quando for chamado...\r\nfunction onDelayedCalled(config, params) {\r\n // Sempre mantém apenas o último parametro informado.\r\n config.lastParams = params;\r\n\r\n // Se não houver promessa pendente, crie uma.\r\n // Se já houver promessa, manter a mesma, pois já pode haver algo esperando ela.\r\n if (config.lastPromise === null) {\r\n createPromise(config);\r\n }\r\n\r\n // Atualize o timer.\r\n touchTimer(config);\r\n\r\n // Retorna a promessa pendente.\r\n return config.lastPromise;\r\n}\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport function delayed(fn) {\r\n const config = {\r\n lastTimer: null,\r\n lastParams: null,\r\n lastPromise: null,\r\n lastPromiseResolver: null,\r\n fn,\r\n };\r\n\r\n return (...params) => onDelayedCalled(config, params);\r\n}\r\n","import Http from '@/services/http';\r\nimport {\r\n AlarmActionRequest,\r\n AlarmActionResponse,\r\n AlarmSummaryRequest,\r\n AlarmSummaryResponse,\r\n LastAlarmRequest,\r\n PagedLastAlarmResponse,\r\n InstallationMenuRequest,\r\n InstallationMenuResponse,\r\n NetworkStatusSummaryRequest,\r\n NetworkStatusSummaryResponse,\r\n DashobardPeriodFilterRequest,\r\n AlarmOverviewByAssetResponse,\r\n ActedAlarmsVsRecognizedAlarmsRequest,\r\n ActedAlarmsVsRecognizedAlarmsResponse,\r\n MostActedAlarmsResponse,\r\n MostActedAlarmsFilterRequest,\r\n AlarmOverviewByClassificationResponse,\r\n} from 'sigma-mappings';\r\n\r\nconst urls = {\r\n getInstallationMenu: 'empresa/regional',\r\n getAlarmSummary: 'alarme/resumo',\r\n getAlarmsList: 'alarme/ultimos',\r\n getActedAlarmsVsRecognizedAlarms: 'alarme/atuados-vs-reconhecidos/grafico',\r\n getNetworkStatusSummary: 'alarme/statusrede',\r\n recognizeAlarm: alarmId => `alarme/${alarmId}/reconhecer`,\r\n ignoreAlarm: alarmId => `alarme/${alarmId}/ignorar`,\r\n alarmsOverviewByAsset: 'alarme/visao-geral-por-ativo/grafico',\r\n getMostActedAlarms: 'alarme/mais-atuados',\r\n generalViewByClassification: 'alarme/visao-geral-por-classificacao/grafico',\r\n};\r\n\r\nexport default {\r\n /**\r\n * Retorna uma lista de instalações agrupadas por empresa e regional (se houver)\r\n * @param {*} search busca por nome da empresa ou da instalação\r\n */\r\n getInstallationMenuData(search) {\r\n const http = new Http();\r\n const params = new InstallationMenuRequest({\r\n search,\r\n });\r\n return http\r\n .post(urls.getInstallationMenu, params)\r\n .then(({ data }) => data.map(item => new InstallationMenuResponse(item)));\r\n },\r\n /**\r\n * Retorna um resumo dos alarmes, alarme atuados e alarmes não reconhecidos\r\n * @param {*} companiesIds lista de ids de empresas para filtro\r\n * @param {*} installationsIds lista de ids de instalações para filtro\r\n */\r\n getAlarmSummary(companiesIds, installationsIds) {\r\n const http = new Http();\r\n const params = new AlarmSummaryRequest({\r\n companiesIds,\r\n installationsIds,\r\n });\r\n return http\r\n .post(urls.getAlarmSummary, params)\r\n .then(({ data }) => new AlarmSummaryResponse(data));\r\n },\r\n /**\r\n * Recupera uma lista dos ultimos alarmes ordenada de forma decrescente, paginada.\r\n * @param {*} companyId id da empresa para filtro\r\n * @param {*} installationId id da instalação para filtro\r\n * @param {*} classifications lista de classificações para filtro\r\n * @param {*} status lista de status para filtro\r\n * @param {*} fromDate data e hora enviada para resgatar registros a partir dela\r\n * @param {*} lastReturnedIds Ids da última página que possuem essa data e hora\r\n * @param {*} pageSize Quantidade de alarmes a serem retornados\r\n */\r\n getAlarmsList({\r\n companyId,\r\n classifications,\r\n status,\r\n fromDate,\r\n lastReturnedIds,\r\n installationId,\r\n pageSize,\r\n }) {\r\n const http = new Http();\r\n const parameters = new LastAlarmRequest({\r\n companyId,\r\n classifications,\r\n status,\r\n fromDate,\r\n installationId,\r\n lastReturnedIds,\r\n pageSize,\r\n });\r\n return http\r\n .post(urls.getAlarmsList, parameters)\r\n .then(response => new PagedLastAlarmResponse(response.data));\r\n },\r\n /**\r\n * Retorna um resumo de status de rede, agrupando por status.\r\n * @param {*} companiesIds lista de ids de empresas para filtro\r\n * @param {*} installationsIds lista de ids de instalações para filtro\r\n */\r\n getNetworkStatusSummary(companiesIds, installationsIds) {\r\n const http = new Http();\r\n const parameters = new NetworkStatusSummaryRequest({\r\n companiesIds,\r\n installationsIds,\r\n });\r\n return http\r\n .post(urls.getNetworkStatusSummary, parameters)\r\n .then(({ data }) => new NetworkStatusSummaryResponse(data));\r\n },\r\n /**\r\n * Requisição para reconhecer alarme\r\n * @param {*} alarmId Id do Alarme\r\n * @param {*} description comentário opcional vinculado ao reconhecimento\r\n * @param {*} ignore Opção para ignorar alarme\r\n */\r\n recognizeAlarm({ alarmId, description, ignore = false }) {\r\n const http = new Http();\r\n const parameters = new AlarmActionRequest({\r\n description,\r\n ignore,\r\n });\r\n return http\r\n .post(urls.recognizeAlarm(alarmId), parameters)\r\n .then(response => new AlarmActionResponse(response.data));\r\n },\r\n /**\r\n * Ignora um alarme previamente reconhecido\r\n * @param {*} alarmId Id do Alarme\r\n * @param {*} description comentário opcional vinculado à ação de ignorar\r\n */\r\n ignoreAlarm({ alarmId, description }) {\r\n const http = new Http();\r\n const parameters = new AlarmActionRequest({\r\n description,\r\n });\r\n return http\r\n .post(urls.ignoreAlarm(alarmId), parameters)\r\n .then(({ data }) => data);\r\n },\r\n /**\r\n * Retorna os dados do gráfico de alarmes atuados vs alarmes reconhecidos.\r\n * @param {*} companiesIds lista de ids de empresas para filtro\r\n * @param {*} regionalsIds lista de ids de regionais para filtro\r\n * @param {*} installationsIds lista de ids de instalações para filtro\r\n * @param {*} period quantidade de dias anterior ao dia atual para filtro\r\n */\r\n getActedAlarmsVsRecognizedAlarms(params) {\r\n const http = new Http();\r\n const request = new ActedAlarmsVsRecognizedAlarmsRequest(params);\r\n return http\r\n .post(urls.getActedAlarmsVsRecognizedAlarms, request)\r\n .then(\r\n ({ data }) => (data || [])\r\n .map(\r\n item => new ActedAlarmsVsRecognizedAlarmsResponse(item),\r\n ),\r\n );\r\n },\r\n getAlarmsOverviewByAsset(filter) {\r\n const http = new Http();\r\n const payload = new DashobardPeriodFilterRequest(filter);\r\n return http.post(urls.alarmsOverviewByAsset, payload)\r\n .then(({ data }) => data.map(item => new AlarmOverviewByAssetResponse(item)));\r\n },\r\n\r\n getMostActedAlarms({\r\n companiesIds, regionalsIds, installationsIds, periodDays, amountAlarms,\r\n }) {\r\n const http = new Http();\r\n const parameters = new MostActedAlarmsFilterRequest({\r\n companiesIds,\r\n regionalsIds,\r\n installationsIds,\r\n periodDays,\r\n amountAlarms,\r\n });\r\n return http.post(urls.getMostActedAlarms, parameters)\r\n .then(({ data }) => data.map(item => new MostActedAlarmsResponse(item)));\r\n },\r\n\r\n getGeneralViewByClassification(filter) {\r\n const http = new Http();\r\n const payload = new DashobardPeriodFilterRequest(filter);\r\n return http.post(urls.generalViewByClassification, payload)\r\n .then(({ data }) => data.map(item => new AlarmOverviewByClassificationResponse(item)));\r\n },\r\n};\r\n"],"sourceRoot":""}