types-nora-api 0.0.478 → 0.0.485

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist/api/graphql/core/index.d.ts +19 -1
  2. package/dist/api/graphql/core/index.js +21 -21
  3. package/dist/api/graphql/leituras/Arquivo/index.d.ts +33 -4
  4. package/dist/api/graphql/leituras/Arquivo/index.js +29 -0
  5. package/dist/api/graphql/leituras/ArquivoTipadoArte/index.d.ts +11 -5
  6. package/dist/api/graphql/leituras/ArquivoTipadoArte/index.js +6 -0
  7. package/dist/api/graphql/leituras/ArquivoTipadoInsignia/index.d.ts +45 -0
  8. package/dist/api/graphql/leituras/ArquivoTipadoInsignia/index.js +68 -0
  9. package/dist/api/graphql/leituras/ArquivoTipadoMusica/index.d.ts +46 -0
  10. package/dist/api/graphql/leituras/ArquivoTipadoMusica/index.js +70 -0
  11. package/dist/api/graphql/leituras/Aventura/index.d.ts +10 -4
  12. package/dist/api/graphql/leituras/Aventura/index.js +6 -0
  13. package/dist/api/graphql/leituras/CapacidadeInata/index.d.ts +41 -0
  14. package/dist/api/graphql/leituras/CapacidadeInata/index.js +61 -0
  15. package/dist/api/graphql/leituras/ChaveNovoAvatar/index.d.ts +13 -4
  16. package/dist/api/graphql/leituras/ChaveNovoAvatar/index.js +9 -0
  17. package/dist/api/graphql/leituras/CustomizacaoUsuario/index.d.ts +41 -0
  18. package/dist/api/graphql/leituras/CustomizacaoUsuario/index.js +56 -0
  19. package/dist/api/graphql/leituras/DetalheArquivoInterno/index.d.ts +9 -4
  20. package/dist/api/graphql/leituras/DetalheArquivoInterno/index.js +5 -0
  21. package/dist/api/graphql/leituras/Emblema/index.d.ts +19 -4
  22. package/dist/api/graphql/leituras/Emblema/index.js +15 -0
  23. package/dist/api/graphql/leituras/EventoUsuario/index.d.ts +61 -0
  24. package/dist/api/graphql/leituras/EventoUsuario/index.js +76 -0
  25. package/dist/api/graphql/leituras/GrupoAventura/index.d.ts +26 -4
  26. package/dist/api/graphql/leituras/GrupoAventura/index.js +22 -0
  27. package/dist/api/graphql/leituras/Habilidade/index.d.ts +49 -0
  28. package/dist/api/graphql/leituras/Habilidade/index.js +73 -0
  29. package/dist/api/graphql/leituras/HabilidadeEspecial/index.d.ts +56 -0
  30. package/dist/api/graphql/leituras/HabilidadeEspecial/index.js +79 -0
  31. package/dist/api/graphql/leituras/HabilidadePericia/index.d.ts +67 -0
  32. package/dist/api/graphql/leituras/HabilidadePericia/index.js +101 -0
  33. package/dist/api/graphql/leituras/PatentePericia/index.d.ts +40 -0
  34. package/dist/api/graphql/leituras/PatentePericia/index.js +58 -0
  35. package/dist/api/graphql/leituras/Pericia/index.d.ts +40 -0
  36. package/dist/api/graphql/leituras/Pericia/index.js +58 -0
  37. package/dist/api/graphql/leituras/Personagem/index.d.ts +30 -4
  38. package/dist/api/graphql/leituras/Personagem/index.js +26 -0
  39. package/dist/api/graphql/leituras/SerDetalhe/index.d.ts +63 -0
  40. package/dist/api/graphql/leituras/SerDetalhe/index.js +97 -0
  41. package/dist/api/graphql/leituras/SerRegistro/index.d.ts +50 -0
  42. package/dist/api/graphql/leituras/SerRegistro/index.js +76 -0
  43. package/dist/api/graphql/leituras/SerTipadoJogavel/index.d.ts +50 -0
  44. package/dist/api/graphql/leituras/SerTipadoJogavel/index.js +77 -0
  45. package/dist/api/graphql/leituras/SerTipadoNaoJogavel/index.d.ts +47 -0
  46. package/dist/api/graphql/leituras/SerTipadoNaoJogavel/index.js +72 -0
  47. package/dist/api/graphql/leituras/Sessao/index.d.ts +12 -4
  48. package/dist/api/graphql/leituras/Sessao/index.js +8 -0
  49. package/dist/api/graphql/leituras/TipoArquivo/index.d.ts +11 -4
  50. package/dist/api/graphql/leituras/TipoArquivo/index.js +7 -0
  51. package/dist/api/graphql/leituras/TipoHabilidade/index.d.ts +37 -0
  52. package/dist/api/graphql/leituras/TipoHabilidade/index.js +55 -0
  53. package/dist/api/graphql/leituras/TipoPersonagem/index.d.ts +12 -4
  54. package/dist/api/graphql/leituras/TipoPersonagem/index.js +8 -0
  55. package/dist/api/graphql/leituras/TipoSer/index.d.ts +37 -0
  56. package/dist/api/graphql/leituras/TipoSer/index.js +55 -0
  57. package/dist/api/graphql/leituras/Tutorial/index.d.ts +70 -0
  58. package/dist/api/graphql/leituras/Tutorial/index.js +94 -0
  59. package/dist/api/graphql/leituras/Usuario/index.d.ts +26 -4
  60. package/dist/api/graphql/leituras/Usuario/index.js +27 -1
  61. package/dist/api/graphql/leituras/UsuarioTutorial/index.d.ts +62 -0
  62. package/dist/api/graphql/leituras/UsuarioTutorial/index.js +89 -0
  63. package/dist/api/graphql/leituras/index.d.ts +72 -0
  64. package/dist/api/graphql/leituras/index.js +72 -0
  65. package/dist/api/rest/index.d.ts +82 -3
  66. package/dist/api/rest/index.js +104 -2
  67. package/dist/dominio/index.d.ts +110 -37
  68. package/dist/dominio/index.js +33 -11
  69. package/dist/dtos/index.d.ts +819 -60
  70. package/dist/dtos/index.js +32 -1
  71. package/dist/menus/index.d.ts +53 -20
  72. package/dist/menus/index.js +54 -2
  73. package/dist/paginas/index.d.ts +56 -2
  74. package/dist/paginas/index.js +78 -48
  75. package/dist/shared/index.d.ts +164 -2
  76. package/dist/shared/index.js +167 -1
  77. package/dist/uploads/index.d.ts +3 -2
  78. package/dist/uploads/index.js +11 -3
  79. package/dist/ws/index.d.ts +925 -6
  80. package/dist/ws/index.js +164 -2
  81. package/package.json +1 -1
@@ -110,82 +110,112 @@ const PAGINAS = {
110
110
  dicas: pagina('/dicas/[[...slug]]', { label: 'Dicas', comCabecalho: true }),
111
111
  jogo: {
112
112
  admin: {
113
- gerenciarSalas: paginaComLayoutContextualizado('/jogo/admin/gerenciar-salas', { label: 'Admin - Gerenciar Salas', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__ACOMPANHAMENTO__SESSAO_DE_JOGO] } }, { titulo: 'Gerenciar Salas', proporcaoConteudo: 84 }),
113
+ gerenciarSalas: paginaComLayoutContextualizado('/jogo/admin/gerenciar-salas', { label: 'Admin - Gerenciar Salas', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__ACOMPANHAMENTO__SESSAO_DE_JOGO] }, prioridadePresenca: 2 }, { titulo: 'Gerenciar Salas', proporcaoConteudo: 84 }),
114
+ auditoriaSalaDeJogo: paginaComLayoutContextualizado('/jogo/admin/auditoria-sala-de-jogo', { label: 'Admin - Auditoria de Acoes da Sala de Jogo', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__ACOMPANHAMENTO__SESSAO_DE_JOGO] }, prioridadePresenca: 2 }, { titulo: 'Auditoria de Acoes da Sala de Jogo', proporcaoConteudo: 84 }),
114
115
  },
115
116
  mestre: {
116
- sessoesMestre: paginaComLayoutContextualizado('/jogo/mestre/sessoes-mestre', { label: 'Mestre - Sessões', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__SESSAO_DE_JOGO] } }, { titulo: 'Criação de Sala', proporcaoConteudo: 84 }),
117
+ sessoesMestre: paginaComLayoutContextualizado('/jogo/mestre/sessoes-mestre', { label: 'Mestre - Sessões', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__SESSAO_DE_JOGO] }, prioridadePresenca: 1 }, { titulo: 'Criação de Sala', proporcaoConteudo: 84 }),
117
118
  },
118
- jogador: paginaComLayoutContextualizado('/jogo/jogador', { label: 'Jogo - Jogador', acesso: { autenticado: true } }, { titulo: null, proporcaoConteudo: 84 }),
119
- emJogo: pagina('/jogo/em-jogo', { label: 'Em Jogo', acesso: { autenticado: true } }),
119
+ jogador: {
120
+ ...paginaComLayoutContextualizado('/jogo/jogador', { label: 'Jogo - Jogador', acesso: { autenticado: true }, prioridadePresenca: 1 }, { titulo: null, proporcaoConteudo: 84 }),
121
+ solo: pagina('/jogo/jogador/solo', { label: 'Modo Solo', acesso: { autenticado: true }, prioridadePresenca: 1 }),
122
+ },
123
+ emJogo: pagina('/jogo/em-jogo', { label: 'Em Jogo', acesso: { autenticado: true }, prioridadePresenca: 1 }),
120
124
  },
121
- linhaDoTempo: pagina('/linha-do-tempo', { label: 'Linha do Tempo' }),
122
- minhaPagina: pagina('/minha-pagina', { label: 'Minha Página', acesso: { autenticado: true } }),
125
+ linhaDoTempo: pagina('/linha-do-tempo', { label: 'Linha do Tempo', prioridadePresenca: 3 }),
126
+ minhaPagina: pagina('/minha-pagina', { label: 'Minha Página', acesso: { autenticado: true }, prioridadePresenca: 3 }),
123
127
  minhasPaginas: {
124
- ...paginaComLayoutContextualizado('/minhas-paginas', { label: 'Minhas Paginas', acesso: { autenticado: true } }, { titulo: 'Minhas Paginas', proporcaoConteudo: 84 }),
128
+ ...paginaComLayoutContextualizado('/minhas-paginas', { label: 'Minhas Paginas', acesso: { autenticado: true }, prioridadePresenca: 3 }, { titulo: 'Minhas Paginas', proporcaoConteudo: 84 }),
125
129
  admin: {
126
- ...paginaComLayoutContextualizado('/minhas-paginas/admin', { label: 'Administração', acesso: { autenticado: true }, acessoPorMenuInterno: true }, { titulo: 'Página de Administrador', proporcaoConteudo: 84 }),
127
- aventura: paginaComLayoutContextualizado('/minhas-paginas/admin/aventura/[id]', { label: 'Admin - Aventura', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__GERENCIAMENTO__AVENTURAS_E_SESSOES] } }, { titulo: 'TROCA', proporcaoConteudo: 84 }),
128
- aventuras: paginaComLayoutContextualizado('/minhas-paginas/admin/aventuras', { label: 'Admin - Aventuras', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__GERENCIAMENTO__AVENTURAS_E_SESSOES] } }, { titulo: 'Gerenciamento de Aventuras', proporcaoConteudo: 84 }),
129
- dashboardWs: paginaComLayoutContextualizado('/minhas-paginas/admin/dashboard-ws', { label: 'Admin - Dashboard WS', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__ACOMPANHAMENTO__WEBSOCKET] } }, { titulo: 'Dashboard: WebSocket', proporcaoConteudo: 84 }),
130
- sessao: paginaComLayoutContextualizado('/minhas-paginas/admin/sessao/[id]', { label: 'Admin - Sessão', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__GERENCIAMENTO__AVENTURAS_E_SESSOES] } }, { titulo: 'Gerenciamento de Sessão', proporcaoConteudo: 84 }),
131
- variaveisAmbiente: paginaComLayoutContextualizado('/minhas-paginas/admin/variaveis-ambiente', { label: 'Admin - Variáveis de Ambiente', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__GERENCIAMENTO__VARIAVEIS_DE_AMBIENTE] } }, { titulo: 'Variáveis de Ambiente', proporcaoConteudo: 84 }),
132
- dashboardPermissoes: paginaComLayoutContextualizado('/minhas-paginas/admin/permissoes', { label: 'Admin - Permissões', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__PERMISSOES__CRIACAO_CAPACIDADES] } }, { titulo: 'Gerenciamento de Permissões', proporcaoConteudo: 84 }),
133
- dashboardPermissoesUsuarios: paginaComLayoutContextualizado('/minhas-paginas/admin/permissoes-usuarios', { label: 'Admin - Permissões de Usuários', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__PERMISSOES__ALTERACAO_CAPACIDADES_GERAIS_USUARIOS] } }, { titulo: 'Permissões de Usuário', proporcaoConteudo: 84 }),
134
- deletarArquivosAbsoluto: paginaComLayoutContextualizado('/minhas-paginas/admin/deletar-arquivos-absoluto', { label: 'Admin - Deletar Arquivos SUDO', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__SUDO__DELETAR_ARQUIVOS_FILE_SERVER] } }, { titulo: 'Deletar Arquivos', proporcaoConteudo: 84 }),
135
- deletarArquivosFileServer: paginaComLayoutContextualizado('/minhas-paginas/admin/deletar-arquivos-file-server', { label: 'Admin - Deletar Arquivos', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__SUDO__DELETAR_ARQUIVOS_FILE_SERVER] } }, { titulo: 'Deletar Arquivos', proporcaoConteudo: 84 }),
136
- uploadRecursosInternos: paginaComLayoutContextualizado('/minhas-paginas/admin/uploads-recursos-internos', { label: 'Admin - Uploads', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__GERENCIAMENTO__UPLOAD_RECURSOS_INTERNOS] } }, { titulo: 'Upload de Recursos Internos', proporcaoConteudo: 84 }),
130
+ ...paginaComLayoutContextualizado('/minhas-paginas/admin', { label: 'Administração', acesso: { autenticado: true }, acessoPorMenuInterno: true, prioridadePresenca: 2 }, { titulo: 'Página de Administrador', proporcaoConteudo: 84 }),
131
+ aventura: paginaComLayoutContextualizado('/minhas-paginas/admin/aventura/[id]', { label: 'Admin - Aventura', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__GERENCIAMENTO__AVENTURAS_E_SESSOES] }, prioridadePresenca: 2 }, { titulo: 'TROCA', proporcaoConteudo: 84 }),
132
+ aventuras: paginaComLayoutContextualizado('/minhas-paginas/admin/aventuras', { label: 'Admin - Aventuras', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__GERENCIAMENTO__AVENTURAS_E_SESSOES] }, prioridadePresenca: 2 }, { titulo: 'Gerenciamento de Aventuras', proporcaoConteudo: 84 }),
133
+ dashboardWs: paginaComLayoutContextualizado('/minhas-paginas/admin/dashboard-ws', { label: 'Admin - Dashboard WS', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__ACOMPANHAMENTO__WEBSOCKET] }, prioridadePresenca: 2 }, { titulo: 'Dashboard: WebSocket', proporcaoConteudo: 84 }),
134
+ sessao: paginaComLayoutContextualizado('/minhas-paginas/admin/sessao/[id]', { label: 'Admin - Sessão', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__GERENCIAMENTO__AVENTURAS_E_SESSOES] }, prioridadePresenca: 2 }, { titulo: 'Gerenciamento de Sessão', proporcaoConteudo: 84 }),
135
+ variaveisAmbiente: paginaComLayoutContextualizado('/minhas-paginas/admin/variaveis-ambiente', { label: 'Admin - Variáveis de Ambiente', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__GERENCIAMENTO__VARIAVEIS_DE_AMBIENTE] }, prioridadePresenca: 2 }, { titulo: 'Variáveis de Ambiente', proporcaoConteudo: 84 }),
136
+ dashboardPermissoes: paginaComLayoutContextualizado('/minhas-paginas/admin/permissoes', { label: 'Admin - Permissões', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__PERMISSOES__CRIACAO_CAPACIDADES] }, prioridadePresenca: 2 }, { titulo: 'Gerenciamento de Permissões', proporcaoConteudo: 84 }),
137
+ dashboardPermissoesUsuarios: paginaComLayoutContextualizado('/minhas-paginas/admin/permissoes-usuarios', { label: 'Admin - Permissões de Usuários', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__PERMISSOES__ALTERACAO_CAPACIDADES_GERAIS_USUARIOS] }, prioridadePresenca: 2 }, { titulo: 'Permissões de Usuário', proporcaoConteudo: 84 }),
138
+ deletarArquivosAbsoluto: paginaComLayoutContextualizado('/minhas-paginas/admin/deletar-arquivos-absoluto', { label: 'Admin - Deletar Arquivos SUDO', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__SUDO__DELETAR_ARQUIVOS_FILE_SERVER] }, prioridadePresenca: 2 }, { titulo: 'Deletar Arquivos', proporcaoConteudo: 84 }),
139
+ deletarArquivosFileServer: paginaComLayoutContextualizado('/minhas-paginas/admin/deletar-arquivos-file-server', { label: 'Admin - Deletar Arquivos', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__SUDO__DELETAR_ARQUIVOS_FILE_SERVER] }, prioridadePresenca: 2 }, { titulo: 'Deletar Arquivos', proporcaoConteudo: 84 }),
140
+ uploadRecursosInternos: paginaComLayoutContextualizado('/minhas-paginas/admin/uploads-recursos-internos', { label: 'Admin - Uploads', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__GERENCIAMENTO__UPLOAD_RECURSOS_INTERNOS] }, prioridadePresenca: 2 }, { titulo: 'Upload de Recursos Internos', proporcaoConteudo: 84 }),
141
+ uploadMusica: paginaComLayoutContextualizado('/minhas-paginas/admin/upload-musica', { label: 'Admin - Upload de Música', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__SUDO__BURLAR_CAPACIDADES] }, prioridadePresenca: 2 }, { titulo: 'Upload de Música', proporcaoConteudo: 84 }),
142
+ tutoriais: paginaComLayoutContextualizado('/minhas-paginas/admin/tutoriais', { label: 'Admin - Tutoriais', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__SUDO__BURLAR_CAPACIDADES] }, prioridadePresenca: 2 }, { titulo: 'Gerenciamento de Tutoriais', proporcaoConteudo: 84 }),
143
+ disparosEventosUsuario: paginaComLayoutContextualizado('/minhas-paginas/admin/disparos-eventos-usuario', { label: 'Admin - Disparos de Eventos de Usuário', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__SUDO__BURLAR_CAPACIDADES] }, prioridadePresenca: 2 }, { titulo: 'Disparos de Eventos de Usuário (Dev)', proporcaoConteudo: 84 }),
137
144
  },
138
145
  moderador: {
139
- ...paginaComLayoutContextualizado('/minhas-paginas/moderador', { label: 'Área do Moderador', acesso: { autenticado: true }, acessoPorMenuInterno: true }, { titulo: 'Página de Moderador', proporcaoConteudo: 84 }),
140
- dashboardAprovacaoImagensArtista: paginaComLayoutContextualizado('/minhas-paginas/moderador/aprovar-imagens-artista', { label: 'Aprovar Imagens de Artistas', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MODERADOR__IMAGENS] } }, { titulo: 'Aprovar Imagens de Artistas', proporcaoConteudo: 84 }),
141
- gerenciarEmblemas: paginaComLayoutContextualizado('/minhas-paginas/moderador/emblemas', { label: 'Gerenciar Emblemas', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MODERADOR__CADASTROS__EMBLEMAS] } }, { titulo: 'Gerenciar Emblemas', proporcaoConteudo: 84 }),
142
- gerenciarConquistas: paginaComLayoutContextualizado('/minhas-paginas/moderador/conquistas', { label: 'Gerenciar Conquistas', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MODERADOR__CADASTROS__CONQUISTAS] } }, { titulo: 'Gerenciar Conquistas', proporcaoConteudo: 84 }),
146
+ ...paginaComLayoutContextualizado('/minhas-paginas/moderador', { label: 'Área do Moderador', acesso: { autenticado: true }, acessoPorMenuInterno: true, prioridadePresenca: 2 }, { titulo: 'Página de Moderador', proporcaoConteudo: 84 }),
147
+ dashboardAprovacaoImagensArtista: paginaComLayoutContextualizado('/minhas-paginas/moderador/aprovar-imagens-artista', { label: 'Aprovar Imagens de Artistas', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MODERADOR__IMAGENS] }, prioridadePresenca: 2 }, { titulo: 'Aprovar Imagens de Artistas', proporcaoConteudo: 84 }),
148
+ gerenciarEmblemas: paginaComLayoutContextualizado('/minhas-paginas/moderador/emblemas', { label: 'Gerenciar Emblemas', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MODERADOR__CADASTROS__EMBLEMAS] }, prioridadePresenca: 2 }, { titulo: 'Gerenciar Emblemas', proporcaoConteudo: 84 }),
149
+ gerenciarConquistas: paginaComLayoutContextualizado('/minhas-paginas/moderador/conquistas', { label: 'Gerenciar Conquistas', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MODERADOR__CADASTROS__CONQUISTAS] }, prioridadePresenca: 2 }, { titulo: 'Gerenciar Conquistas', proporcaoConteudo: 84 }),
150
+ },
151
+ gameDesigner: {
152
+ ...paginaComLayoutContextualizado('/minhas-paginas/game-designer', { label: 'Área do Game Designer', acesso: { autenticado: true }, acessoPorMenuInterno: true, prioridadePresenca: 3 }, { titulo: 'Página de Game Designer', proporcaoConteudo: 84 }),
153
+ criar: {
154
+ seres: paginaComLayoutContextualizado('/minhas-paginas/game-designer/criar/seres', { label: 'Criando Ser', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.GAME_DESIGNER__CRIACAO__SER] }, prioridadePresenca: 3 }, { titulo: 'Criando Ser', proporcaoConteudo: 84 }),
155
+ capacidadesInatas: paginaComLayoutContextualizado('/minhas-paginas/game-designer/criar/capacidades-inatas', { label: 'Capacidades Inatas', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.GAME_DESIGNER__CRIACAO__CAPACIDADES_INATAS] }, prioridadePresenca: 2 }, { titulo: 'Capacidades Inatas', proporcaoConteudo: 84 }),
156
+ habilidadesPericia: paginaComLayoutContextualizado('/minhas-paginas/game-designer/criar/habilidades-pericia', { label: 'Habilidades de Perícia', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.GAME_DESIGNER__CRIACAO__HABILIDADES_PERICIA] }, prioridadePresenca: 2 }, { titulo: 'Habilidades de Perícia', proporcaoConteudo: 84 }),
157
+ habilidadesEspeciais: paginaComLayoutContextualizado('/minhas-paginas/game-designer/criar/habilidades-especiais', { label: 'Habilidades Especiais', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.GAME_DESIGNER__CRIACAO__HABILIDADES_ESPECIAIS] }, prioridadePresenca: 2 }, { titulo: 'Habilidades Especiais', proporcaoConteudo: 84 }),
158
+ configuracaoHabilidades: paginaComLayoutContextualizado('/minhas-paginas/game-designer/criar/configuracao-habilidades', { label: 'Configuração de Habilidades', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.GAME_DESIGNER__CRIACAO__HABILIDADES_ESPECIAIS] }, prioridadePresenca: 2 }, { titulo: 'Configuração de Habilidades', proporcaoConteudo: 84 }),
159
+ },
160
+ configurar: {
161
+ configuracaoTestePericia: paginaComLayoutContextualizado('/minhas-paginas/game-designer/configurar/configuracao-teste-pericia', { label: 'Configuração de Teste de Perícia - Atributo', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.GAME_DESIGNER__GAME_BALANCE__TESTE_DE_PERICIA] }, prioridadePresenca: 2 }, { titulo: 'Configuração de Teste de Perícia - Atributo', proporcaoConteudo: 84 }),
162
+ configuracaoPatentesTestePericia: paginaComLayoutContextualizado('/minhas-paginas/game-designer/configurar/configuracao-patentes-teste-pericia', { label: 'Configuração de Teste de Perícia - Patente de Perícia', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.GAME_DESIGNER__GAME_BALANCE__TESTE_DE_PERICIA] }, prioridadePresenca: 2 }, { titulo: 'Configuração de Teste de Perícia - Patente de Perícia', proporcaoConteudo: 84 }),
163
+ },
164
+ analisar: {
165
+ simuladorDistribuicoesTeste: paginaComLayoutContextualizado('/minhas-paginas/game-designer/analisar/distribuicoes-testes', { label: 'Simulador de Distribuições de Teste', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.GAME_DESIGNER__GAME_BALANCE__TESTE_DE_PERICIA] }, prioridadePresenca: 2 }, { titulo: 'Simulador de Distribuições de Teste', proporcaoConteudo: 100 }),
166
+ simuladorTestePericiaUdm: paginaComLayoutContextualizado('/minhas-paginas/game-designer/analisar/testes-pericia-udm', { label: 'Simulador de Teste de Perícia UDM', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.GAME_DESIGNER__GAME_BALANCE__TESTE_DE_PERICIA] }, prioridadePresenca: 2 }, { titulo: 'Simulador de Teste de Perícia UDM', proporcaoConteudo: 100 }),
167
+ },
143
168
  },
144
169
  mestre: {
145
- ...paginaComLayoutContextualizado('/minhas-paginas/mestre', { label: 'Área do Mestre', acessoPorMenuInterno: true }, { titulo: 'Página de Mestre', proporcaoConteudo: 84 }),
146
- aventuras: paginaComLayoutContextualizado('/minhas-paginas/mestre/aventuras', { label: 'Mestre - Aventuras', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__AVENTURA] } }, { titulo: 'Minhas Aventuras', proporcaoConteudo: 84 }),
147
- sessoesUnicas: paginaComLayoutContextualizado('/minhas-paginas/mestre/sessoes-unicas', { label: 'Mestre - Sessões Únicas', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__SESSAO_DE_JOGO] } }, { titulo: 'Minhas Sessões Únicas', proporcaoConteudo: 84 }),
148
- personagens: paginaComLayoutContextualizado('/minhas-paginas/mestre/personagens', { label: 'Mestre - Personagens', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__AVENTURA] } }, { titulo: 'Meus Personagens de Mestre', proporcaoConteudo: 84 }),
170
+ ...paginaComLayoutContextualizado('/minhas-paginas/mestre', { label: 'Área do Mestre', acessoPorMenuInterno: true, prioridadePresenca: 3 }, { titulo: 'Página de Mestre', proporcaoConteudo: 84 }),
171
+ aventuras: paginaComLayoutContextualizado('/minhas-paginas/mestre/aventuras', { label: 'Mestre - Aventuras', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__AVENTURA] }, prioridadePresenca: 3 }, { titulo: 'Minhas Aventuras', proporcaoConteudo: 84 }),
172
+ sessoesUnicas: paginaComLayoutContextualizado('/minhas-paginas/mestre/sessoes-unicas', { label: 'Mestre - Sessões Únicas', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__SESSAO_DE_JOGO] }, prioridadePresenca: 3 }, { titulo: 'Minhas Sessões Únicas', proporcaoConteudo: 84 }),
173
+ personagens: paginaComLayoutContextualizado('/minhas-paginas/mestre/personagens', { label: 'Mestre - Personagens', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__AVENTURA] }, prioridadePresenca: 3 }, { titulo: 'Meus Personagens de Mestre', proporcaoConteudo: 84 }),
149
174
  rascunhos: {
150
- aventuras: paginaComLayoutContextualizado('/minhas-paginas/mestre/rascunhos/aventuras', { label: 'Rascunhos - Aventuras', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__RASCUNHO_AVENTURA] } }, { titulo: 'Meus Rascunhos de Aventuras', proporcaoConteudo: 84 }),
151
- sessoesUnicas: paginaComLayoutContextualizado('/minhas-paginas/mestre/rascunhos/sessoes-unicas', { label: 'Rascunhos - Sessões Únicas', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__RASCUNHO_SESSAO_UNICA] } }, { titulo: 'Meus Rascunhos de Sessões Únicas', proporcaoConteudo: 84 }),
175
+ aventuras: paginaComLayoutContextualizado('/minhas-paginas/mestre/rascunhos/aventuras', { label: 'Rascunhos - Aventuras', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__RASCUNHO_AVENTURA] }, prioridadePresenca: 3 }, { titulo: 'Meus Rascunhos de Aventuras', proporcaoConteudo: 84 }),
176
+ sessoesUnicas: paginaComLayoutContextualizado('/minhas-paginas/mestre/rascunhos/sessoes-unicas', { label: 'Rascunhos - Sessões Únicas', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__RASCUNHO_SESSAO_UNICA] }, prioridadePresenca: 3 }, { titulo: 'Meus Rascunhos de Sessões Únicas', proporcaoConteudo: 84 }),
152
177
  },
153
178
  temporario: {
154
- consultarDisponibilidades: paginaComLayoutContextualizado('/minhas-paginas/mestre/consultar-disponibilidades', { label: 'Consultando Disponibilidades', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__SESSAO_DE_JOGO] } }, { titulo: 'Consultando Disponibilidades', proporcaoConteudo: 100 }),
155
- criarSessaoUnica: paginaComLayoutContextualizado('/minhas-paginas/mestre/criar-sessao-unica', { label: 'Criando Sessão Única', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__SESSAO_DE_JOGO] } }, { titulo: 'Criando Sessão Única', proporcaoConteudo: 100 }),
179
+ consultarDisponibilidades: paginaComLayoutContextualizado('/minhas-paginas/mestre/consultar-disponibilidades', { label: 'Consultando Disponibilidades', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__SESSAO_DE_JOGO] }, prioridadePresenca: 3 }, { titulo: 'Consultando Disponibilidades', proporcaoConteudo: 100 }),
180
+ criarSessaoUnica: paginaComLayoutContextualizado('/minhas-paginas/mestre/criar-sessao-unica', { label: 'Criando Sessão Única', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__SESSAO_DE_JOGO] }, prioridadePresenca: 3 }, { titulo: 'Criando Sessão Única', proporcaoConteudo: 100 }),
156
181
  },
157
- sessao: paginaComLayoutContextualizado('/minhas-paginas/mestre/sessao/[id]', { label: 'Mestre - Sessão', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__SESSAO_DE_JOGO] } }, { titulo: 'TROCAR', proporcaoConteudo: 84 }),
182
+ sessao: paginaComLayoutContextualizado('/minhas-paginas/mestre/sessao/[id]', { label: 'Mestre - Sessão', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__SESSAO_DE_JOGO] }, prioridadePresenca: 3 }, { titulo: 'TROCAR', proporcaoConteudo: 84 }),
158
183
  },
159
184
  artista: {
160
- ...paginaComLayoutContextualizado('/minhas-paginas/artista', { label: 'Área do Artista', acesso: { autenticado: true }, acessoPorMenuInterno: true }, { titulo: 'Página de Artista', proporcaoConteudo: 84 }),
161
- minhasImagens: paginaComLayoutContextualizado('/minhas-paginas/artista/minhas-imagens', { label: 'Minhas Imagens', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ARTISTA__CRIACAO__UPLOAD_IMAGEM] } }, { titulo: 'Minhas Imagens', proporcaoConteudo: 84 }),
162
- adicionarImagem: paginaComLayoutContextualizado('/minhas-paginas/artista/adicionar-imagem', { label: 'Adicionar Imagem', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ARTISTA__CRIACAO__UPLOAD_IMAGEM] } }, { titulo: 'Adicionar Nova Imagem', proporcaoConteudo: 84 }),
185
+ ...paginaComLayoutContextualizado('/minhas-paginas/artista', { label: 'Área do Artista', acesso: { autenticado: true }, acessoPorMenuInterno: true, prioridadePresenca: 3 }, { titulo: 'Página de Artista', proporcaoConteudo: 84 }),
186
+ minhasImagens: paginaComLayoutContextualizado('/minhas-paginas/artista/minhas-imagens', { label: 'Minhas Imagens', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ARTISTA__CRIACAO__UPLOAD_IMAGEM] }, prioridadePresenca: 3 }, { titulo: 'Minhas Imagens', proporcaoConteudo: 84 }),
187
+ adicionarImagem: paginaComLayoutContextualizado('/minhas-paginas/artista/adicionar-imagem', { label: 'Adicionar Imagem', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ARTISTA__CRIACAO__UPLOAD_IMAGEM] }, prioridadePresenca: 3 }, { titulo: 'Adicionar Nova Imagem', proporcaoConteudo: 84 }),
163
188
  avatares: {
164
- gerenciarAvatares: paginaComLayoutContextualizado('/minhas-paginas/artista/avatares', { label: 'Gerenciar Avatares', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ARTISTA__CRIACAO__RESPONSABILIDADES__AVATARES] } }, { titulo: 'Gerenciar Avatares', proporcaoConteudo: 84 }),
189
+ gerenciarAvatares: paginaComLayoutContextualizado('/minhas-paginas/artista/avatares', { label: 'Gerenciar Avatares', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ARTISTA__CRIACAO__RESPONSABILIDADES__AVATARES] }, prioridadePresenca: 3 }, { titulo: 'Gerenciar Avatares', proporcaoConteudo: 84 }),
165
190
  },
166
191
  emblemas: {
167
- gerenciarEmblemas: paginaComLayoutContextualizado('/minhas-paginas/artista/emblemas', { label: 'Gerenciar Emblemas', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ARTISTA__CRIACAO__RESPONSABILIDADES__EMBLEMAS] } }, { titulo: 'Gerenciar Emblemas', proporcaoConteudo: 84 }),
192
+ uploadRecursosEmblemas: paginaComLayoutContextualizado('/minhas-paginas/artista/emblemas', { label: 'Upload de Emblemas', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ARTISTA__CRIACAO__RESPONSABILIDADES__EMBLEMAS] }, prioridadePresenca: 3 }, { titulo: 'Upload de Emblemas', proporcaoConteudo: 84 }),
193
+ },
194
+ insignias: {
195
+ uploadRecursosInsignias: paginaComLayoutContextualizado('/minhas-paginas/artista/insignias', { label: 'Upload de Insígnias', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ARTISTA__CRIACAO__RESPONSABILIDADES__EMBLEMAS] }, prioridadePresenca: 3 }, { titulo: 'Upload de Insígnias', proporcaoConteudo: 84 }),
168
196
  },
169
197
  },
170
198
  jogador: {
171
- ...paginaComLayoutContextualizado('/minhas-paginas/jogador', { label: 'Área do Jogador', acesso: { autenticado: true }, acessoPorMenuInterno: true }, { titulo: 'Página de Jogador', proporcaoConteudo: 84 }),
172
- meusPersonagens: paginaComLayoutContextualizado('/minhas-paginas/jogador/meus-personagens', { label: 'Meus Personagens', acesso: { autenticado: true } }, { titulo: 'Meus Personagens', proporcaoConteudo: 84 }),
173
- minhasFichas: paginaComLayoutContextualizado('/minhas-paginas/jogador/minhas-fichas', { label: 'Minhas Fichas', acesso: { autenticado: true } }, { titulo: 'Minhas Fichas', proporcaoConteudo: 84 }),
199
+ ...paginaComLayoutContextualizado('/minhas-paginas/jogador', { label: 'Área do Jogador', acesso: { autenticado: true }, acessoPorMenuInterno: true, prioridadePresenca: 3 }, { titulo: 'Página de Jogador', proporcaoConteudo: 84 }),
200
+ meusPersonagens: paginaComLayoutContextualizado('/minhas-paginas/jogador/meus-personagens', { label: 'Meus Personagens', acesso: { autenticado: true }, prioridadePresenca: 3 }, { titulo: 'Meus Personagens', proporcaoConteudo: 84 }),
201
+ minhasFichas: paginaComLayoutContextualizado('/minhas-paginas/jogador/minhas-fichas', { label: 'Minhas Fichas', acesso: { autenticado: true }, prioridadePresenca: 3 }, { titulo: 'Minhas Fichas', proporcaoConteudo: 84 }),
174
202
  criar: {
175
- ficha: paginaComLayoutContextualizado('/minhas-paginas/jogador/criar/ficha', { label: 'Criando Ficha', acesso: { autenticado: true } }, { titulo: 'Criando Ficha', proporcaoConteudo: 100 }),
176
- personagem: paginaComLayoutContextualizado('/minhas-paginas/jogador/criar/personagem', { label: 'Criando Personagem', acesso: { autenticado: true } }, { titulo: 'Criando Personagem', proporcaoConteudo: 100 }),
203
+ ficha: paginaComLayoutContextualizado('/minhas-paginas/jogador/criar/ficha', { label: 'Criando Ficha', acesso: { autenticado: true }, prioridadePresenca: 3 }, { titulo: 'Criando Ficha', proporcaoConteudo: 100 }),
204
+ personagem: paginaComLayoutContextualizado('/minhas-paginas/jogador/criar/personagem', { label: 'Criando Personagem', acesso: { autenticado: true }, prioridadePresenca: 3 }, { titulo: 'Criando Personagem', proporcaoConteudo: 100 }),
177
205
  },
178
206
  },
179
- minhasDisponibilidades: paginaComLayoutContextualizado('/minhas-paginas/minhas-disponibilidades', { label: 'Minhas Disponibilidades', acesso: { autenticado: true } }, { titulo: 'Minhas Disponibilidades', proporcaoConteudo: 100 }),
207
+ minhasDisponibilidades: paginaComLayoutContextualizado('/minhas-paginas/minhas-disponibilidades', { label: 'Minhas Disponibilidades', acesso: { autenticado: true }, prioridadePresenca: 3 }, { titulo: 'Minhas Disponibilidades', proporcaoConteudo: 100 }),
180
208
  minhasConfiguracoes: {
181
- ...paginaComLayoutContextualizado('/minhas-paginas/minhas-configuracoes', { label: 'Minhas Configurações', acesso: { autenticado: true } }, { titulo: 'Minhas Configurações', proporcaoConteudo: 84 }),
182
- passeDeJogador: paginaComLayoutContextualizado('/minhas-paginas/minhas-configuracoes/passe-de-jogador', { label: 'Meu Passe de Jogador', acesso: { autenticado: true } }, { titulo: 'Meu Passe de Jogador', proporcaoConteudo: 84 }),
209
+ ...paginaComLayoutContextualizado('/minhas-paginas/minhas-configuracoes', { label: 'Minhas Configurações', acesso: { autenticado: true }, prioridadePresenca: 3 }, { titulo: 'Minhas Configurações', proporcaoConteudo: 84 }),
210
+ passeDeJogador: paginaComLayoutContextualizado('/minhas-paginas/minhas-configuracoes/passe-de-jogador', { label: 'Meu Passe de Jogador', acesso: { autenticado: true }, prioridadePresenca: 3 }, { titulo: 'Meu Passe de Jogador', proporcaoConteudo: 84 }),
183
211
  }
184
212
  },
185
- fichas: paginaComLayoutContextualizado('/fichas', { label: 'Fichas', acesso: { autenticado: true } }, { titulo: 'Minhas Fichas', proporcaoConteudo: 84 }),
186
- personagens: paginaComLayoutContextualizado('/personagens', { label: 'Personagens', acesso: { autenticado: true } }, { titulo: 'Meus Personagens', proporcaoConteudo: 84 }),
213
+ palco: paginaComLayoutContextualizado('/palco', { label: 'Palco', acesso: { autenticado: true }, prioridadePresenca: 1 }, { titulo: 'Palco', proporcaoConteudo: 84 }),
214
+ fichas: paginaComLayoutContextualizado('/fichas', { label: 'Fichas', acesso: { autenticado: true }, prioridadePresenca: 3 }, { titulo: 'Minhas Fichas', proporcaoConteudo: 84 }),
215
+ personagens: paginaComLayoutContextualizado('/personagens', { label: 'Personagens', acesso: { autenticado: true }, prioridadePresenca: 3 }, { titulo: 'Meus Personagens', proporcaoConteudo: 84 }),
187
216
  sessoes: paginaComLayoutContextualizado('/sessoes', { label: 'Sessões' }, { titulo: 'TROCA', proporcaoConteudo: 100 }),
188
- sessaoAovivo: pagina('/sessao-aovivo', { label: 'Sessão Ao Vivo', acesso: { autenticado: true } }),
189
- assistir: paginaComLayoutContextualizado('/assistir', { label: 'Assistir' }, { titulo: 'Assistir', proporcaoConteudo: 80 }),
217
+ sessaoAovivo: pagina('/sessao-aovivo', { label: 'Sessão Ao Vivo', acesso: { autenticado: true }, prioridadePresenca: 1 }),
218
+ assistir: paginaComLayoutContextualizado('/assistir', { label: 'Assistir', prioridadePresenca: 1 }, { titulo: 'Assistir', proporcaoConteudo: 80 }),
219
+ perfilUsuario: pagina('perfil-usuario', { label: 'Página de Visualização do Perfil de Usuário', acesso: { autenticado: true } }),
190
220
  };
191
221
  export { PAGINAS, decidirAcessoPagina, decidirAcessoPagina_Rec, limparUndefined, montarHref, pagina, paginaComLayoutContextualizado, toParamsRecord };
@@ -1,10 +1,116 @@
1
1
  import type { CapacidadeDef } from '../dominio';
2
- import type { AtributoCompletaDto, ClasseDto, DificuldadeSessaoCompletaDto, EstatisticaDanificavelCompletaDto, FichaEmProcessoDeEvolucaoDto, GanhoNivelClasseCompletaDto, NivelDto, PatentePericiaCompletaDto, PericiaCompletaDto, TipoGanhoNivelCompletaDto, TipoSessaoDto, UsuarioParaObjetoAutenticacaoDto, VariavelAmbienteCompletaDto } from '../dtos';
2
+ import type { AtributoCompletaDto, ClasseDto, DadosEvolucaoFicha, DificuldadeSessaoCompletaDto, EstatisticaDanificavelCompletaDto, FichaEmProcessoDeEvolucaoDto, GanhoNivelClasseCompletaDto, NivelDto, PatentePericiaCompletaDto, PericiaCompletaDto, TipoGanhoNivelCompletaDto, TipoSessaoDto, UsuarioParaObjetoAutenticacaoDto, VariavelAmbienteCompletaDto } from '../dtos';
3
3
  interface PaletaCores {
4
4
  corPrimaria: string;
5
5
  corSecundaria?: string;
6
6
  corTerciaria?: string;
7
7
  }
8
+ type Vetor3CenaCanonicaEditor3D = readonly [number, number, number];
9
+ type TipoMalhaCenaCanonicaEditor3D = 'VERTICE' | 'PLANO_2D' | 'CIRCULO_2D' | 'CUBO_3D' | 'CILINDRO_3D' | 'ESFERA_3D';
10
+ type MaterialVisualCenaCanonicaEditor3D = 'OURO';
11
+ type ShaderCenaCanonicaEditor3D = 'PADRAO' | 'SEM_ILUMINACAO' | 'NORMALS';
12
+ interface FaceMalhaEditavelCenaCanonicaEditor3D {
13
+ readonly id: string;
14
+ readonly nome: string;
15
+ readonly indicesVertices: readonly number[];
16
+ }
17
+ interface MalhaEditavelCenaCanonicaEditor3D {
18
+ readonly vertices: readonly Vetor3CenaCanonicaEditor3D[];
19
+ readonly faces: readonly FaceMalhaEditavelCenaCanonicaEditor3D[];
20
+ readonly proximoIdFace: number;
21
+ }
22
+ interface ObjetoCenaCanonicaEditor3D {
23
+ readonly idLocal: string;
24
+ readonly nome: string;
25
+ readonly tipo: TipoMalhaCenaCanonicaEditor3D;
26
+ readonly quantidadeVertices: number;
27
+ readonly posicao: Vetor3CenaCanonicaEditor3D;
28
+ readonly rotacao: Vetor3CenaCanonicaEditor3D;
29
+ readonly escala: Vetor3CenaCanonicaEditor3D;
30
+ readonly matrizBase: readonly number[];
31
+ readonly corBase: Vetor3CenaCanonicaEditor3D;
32
+ readonly corLuz: Vetor3CenaCanonicaEditor3D;
33
+ readonly materialVisual: MaterialVisualCenaCanonicaEditor3D | null;
34
+ readonly shader: ShaderCenaCanonicaEditor3D;
35
+ readonly visivel: boolean;
36
+ readonly malhaEditavel?: MalhaEditavelCenaCanonicaEditor3D;
37
+ }
38
+ interface CenaCanonicaEditor3D {
39
+ readonly versao: 1;
40
+ readonly objetos: readonly ObjetoCenaCanonicaEditor3D[];
41
+ }
42
+ interface Projeto3DMinimoPersistido {
43
+ readonly id: number;
44
+ readonly nome: string;
45
+ readonly idUsuarioCriador: number;
46
+ readonly dataAtualizacao: string;
47
+ readonly cenaCanonica: CenaCanonicaEditor3D;
48
+ }
49
+ type PAYLOAD__SalvarCasoSimplesProjeto3D = {
50
+ readonly nome?: string;
51
+ readonly cenaCanonica: CenaCanonicaEditor3D;
52
+ };
53
+ interface Projeto3DResumoPersistido {
54
+ readonly id: number;
55
+ readonly nome: string;
56
+ readonly dataAtualizacao: string;
57
+ }
58
+ type PAYLOAD__SalvarProjeto3D = {
59
+ readonly idProjeto?: number;
60
+ readonly nome: string;
61
+ readonly cenaCanonica: CenaCanonicaEditor3D;
62
+ };
63
+ type PAYLOAD__CriarSerRegistroComDetalhe = {
64
+ readonly idTipoSer: number;
65
+ readonly nome: string;
66
+ readonly serJogavel?: boolean;
67
+ readonly idNivel?: number;
68
+ };
69
+ type SerRegistroCriado = {
70
+ readonly id: number;
71
+ };
72
+ type ParametrosAcaoMembroSerJogavel = {
73
+ readonly dano?: number;
74
+ };
75
+ type AcaoMembroSerJogavel = {
76
+ readonly id: number;
77
+ readonly nome: string;
78
+ readonly idCapacidadeInata: number;
79
+ readonly parametros: ParametrosAcaoMembroSerJogavel;
80
+ };
81
+ type AcaoMembroSerJogavelInput = {
82
+ readonly id?: number;
83
+ readonly nome: string;
84
+ readonly idCapacidadeInata: number;
85
+ readonly parametros?: ParametrosAcaoMembroSerJogavel;
86
+ };
87
+ type MembroSerJogavel = {
88
+ readonly id: number;
89
+ readonly nome: string;
90
+ readonly idsCapacidadesInatas: readonly number[];
91
+ readonly acoes: readonly AcaoMembroSerJogavel[];
92
+ };
93
+ type MembroSerJogavelInput = {
94
+ readonly id?: number;
95
+ readonly nome: string;
96
+ readonly idsCapacidadesInatas: readonly number[];
97
+ readonly acoes?: readonly AcaoMembroSerJogavelInput[];
98
+ };
99
+ type PAYLOAD__SalvarMembrosSerJogavel = {
100
+ readonly fkSerId: number;
101
+ readonly membros: readonly MembroSerJogavelInput[];
102
+ };
103
+ type SerJogavelMembrosPersistido = {
104
+ readonly fkSerId: number;
105
+ readonly membros: readonly MembroSerJogavel[];
106
+ };
107
+ type PAYLOAD__CriarFichaDoSer = {
108
+ readonly fkSerId: number;
109
+ readonly dadosEvolucaoFicha: DadosEvolucaoFicha;
110
+ };
111
+ type FichaDoSerCriada = {
112
+ readonly idFicha: number;
113
+ };
8
114
  type EstruturaPaginaDefinicao = {
9
115
  titulo: string;
10
116
  subtitulo?: string;
@@ -93,6 +199,60 @@ type ObjetoAutenticacao = {
93
199
  capacidadesConcedidas: Record<string, true>;
94
200
  cadastroPermitido: boolean;
95
201
  };
202
+ type ConfiguracaoIntervaloTestePericia = {
203
+ valorAtributo: number;
204
+ valorConfigurado: number;
205
+ };
206
+ type ConfiguracaoTestePericia = {
207
+ intervalos: ConfiguracaoIntervaloTestePericia[];
208
+ };
209
+ type LinhaPreviewConfiguracaoTestePericia = {
210
+ valorAtributo: number;
211
+ valorConfigurado: number;
212
+ valorMinimo: number;
213
+ configurado: boolean;
214
+ obrigatorio: boolean;
215
+ };
216
+ type ConfiguracaoTestePericiaProjetada = {
217
+ configuracao: ConfiguracaoTestePericia;
218
+ linhas: LinhaPreviewConfiguracaoTestePericia[];
219
+ valorAtributoMinimoConfigurado: number;
220
+ valorAtributoMaximoConfigurado: number;
221
+ };
222
+ type PAYLOAD__SalvarConfiguracaoTestePericia = {
223
+ configuracao: ConfiguracaoTestePericia;
224
+ };
225
+ type ConfiguracaoPatenteTestePericia = {
226
+ idPatentePericia: number;
227
+ incrementoValorMinimo: number;
228
+ incrementoValorMaximo: number;
229
+ };
230
+ type ConfiguracaoPatentesTestePericia = {
231
+ patentes: ConfiguracaoPatenteTestePericia[];
232
+ };
233
+ type LinhaPreviewConfiguracaoPatenteTestePericia = ConfiguracaoPatenteTestePericia & {
234
+ incrementoValorMinimoAcumulado: number;
235
+ incrementoValorMaximoAcumulado: number;
236
+ };
237
+ type ConfiguracaoPatentesTestePericiaProjetada = {
238
+ configuracao: ConfiguracaoPatentesTestePericia;
239
+ linhas: LinhaPreviewConfiguracaoPatenteTestePericia[];
240
+ };
241
+ type PAYLOAD__SalvarConfiguracaoPatentesTestePericia = {
242
+ configuracao: ConfiguracaoPatentesTestePericia;
243
+ };
244
+ declare const CONFIGURACAO_DEFAULT_TESTE_PERICIA: ConfiguracaoTestePericia;
245
+ declare const CONFIGURACAO_DEFAULT_PATENTES_TESTE_PERICIA: ConfiguracaoPatentesTestePericia;
246
+ declare const VALORES_ATRIBUTOS_OBRIGATORIOS_CONFIGURACAO_TESTE_PERICIA: number[];
247
+ declare function validaConfiguracaoTestePericia(configuracao: ConfiguracaoTestePericia): ConfiguracaoTestePericia;
248
+ declare function obtemIntervaloConfiguradoTestePericia(configuracao: ConfiguracaoTestePericia, valorAtributo: number): ConfiguracaoIntervaloTestePericia;
249
+ declare function calculaValorMinimoTestePericia(configuracao: ConfiguracaoTestePericia, valorAtributo: number): number;
250
+ declare function projetaConfiguracaoTestePericia(configuracao: ConfiguracaoTestePericia): ConfiguracaoTestePericiaProjetada;
251
+ declare function adicionaProximoIntervaloConfiguracaoTestePericia(configuracao: ConfiguracaoTestePericia): ConfiguracaoTestePericia;
252
+ declare function removeUltimoIntervaloOpcionalConfiguracaoTestePericia(configuracao: ConfiguracaoTestePericia): ConfiguracaoTestePericia;
253
+ declare function validaConfiguracaoPatentesTestePericia(configuracao: ConfiguracaoPatentesTestePericia): ConfiguracaoPatentesTestePericia;
254
+ declare function projetaConfiguracaoPatentesTestePericia(configuracao: ConfiguracaoPatentesTestePericia): ConfiguracaoPatentesTestePericiaProjetada;
255
+ declare function calculaIncrementosAcumuladosPatenteTestePericia(configuracao: ConfiguracaoPatentesTestePericia, idPatentePericia: number): LinhaPreviewConfiguracaoPatenteTestePericia;
96
256
  type ObjetoCache = {
97
257
  atributos: AtributoCompletaDto[];
98
258
  pericias: PericiaCompletaDto[];
@@ -103,6 +263,8 @@ type ObjetoCache = {
103
263
  niveis: NivelDto[];
104
264
  dificuldadesSessao: DificuldadeSessaoCompletaDto[];
105
265
  tiposSessao: TipoSessaoDto[];
266
+ configuracaoTestePericia: ConfiguracaoTestePericiaProjetada;
267
+ configuracaoPatentesTestePericia: ConfiguracaoPatentesTestePericiaProjetada;
106
268
  };
107
269
  type ObjetoPendeciaPersonagem = {
108
270
  pendeciaUsuario: EstadoPendenciaPersonagem;
@@ -172,4 +334,4 @@ declare function concatenarDataEHoraEmNovaData(data: Date | string, hora: string
172
334
  declare const pluralize: (count: number, singular: string, plural?: string) => string;
173
335
  declare function minutosParaMs(minutos: number): number;
174
336
  declare function formataDataCompacta(data?: Date): string;
175
- export { AcessoPagina, AventuraEstado, CargoExibicaoUsuario, CargosUsuario, ConteudoItem, DefinicaoElemento, DetalheUtilizacaoRascunho, DiaDaSemana, EstadoOcupacaoPersonagem, EstadoPendenciaAdministrativaPersonagem, EstadoPendenciaPersonagem, EstadoSessao, EstruturaPaginaDefinicao, FormatoMomento, GanhoEstatistica, ListaCapacidadesNecessarias, ListaItem, MomentoFormatado, MomentoFormatado24, NumeroHora24, NumeroMomento, ObjetoAutenticacao, ObjetoCache, ObjetoEvolucao, ObjetoEvolucaoCompleto, ObjetoGanhosEvolucao, ObjetoPendeciaPersonagem, PaletaCores, PathArteCapaPadrao, PathAvatarPadrao, PermissaoItemMinimo, TipoVariavelAmbiente, TituloSessaoInteligente, concatenarDataEHoraEmNovaData, formataDataCompacta, minutosParaMs, momentoParaMinutos, obtemDiaDaSemanaPorExtensoPorDDS, pluralize };
337
+ export { AcaoMembroSerJogavel, AcaoMembroSerJogavelInput, AcessoPagina, AventuraEstado, CONFIGURACAO_DEFAULT_PATENTES_TESTE_PERICIA, CONFIGURACAO_DEFAULT_TESTE_PERICIA, CargoExibicaoUsuario, CargosUsuario, CenaCanonicaEditor3D, ConfiguracaoIntervaloTestePericia, ConfiguracaoPatenteTestePericia, ConfiguracaoPatentesTestePericia, ConfiguracaoPatentesTestePericiaProjetada, ConfiguracaoTestePericia, ConfiguracaoTestePericiaProjetada, ConteudoItem, DefinicaoElemento, DetalheUtilizacaoRascunho, DiaDaSemana, EstadoOcupacaoPersonagem, EstadoPendenciaAdministrativaPersonagem, EstadoPendenciaPersonagem, EstadoSessao, EstruturaPaginaDefinicao, FaceMalhaEditavelCenaCanonicaEditor3D, FichaDoSerCriada, FormatoMomento, GanhoEstatistica, LinhaPreviewConfiguracaoPatenteTestePericia, LinhaPreviewConfiguracaoTestePericia, ListaCapacidadesNecessarias, ListaItem, MalhaEditavelCenaCanonicaEditor3D, MaterialVisualCenaCanonicaEditor3D, MembroSerJogavel, MembroSerJogavelInput, MomentoFormatado, MomentoFormatado24, NumeroHora24, NumeroMomento, ObjetoAutenticacao, ObjetoCache, ObjetoCenaCanonicaEditor3D, ObjetoEvolucao, ObjetoEvolucaoCompleto, ObjetoGanhosEvolucao, ObjetoPendeciaPersonagem, PAYLOAD__CriarFichaDoSer, PAYLOAD__CriarSerRegistroComDetalhe, PAYLOAD__SalvarCasoSimplesProjeto3D, PAYLOAD__SalvarConfiguracaoPatentesTestePericia, PAYLOAD__SalvarConfiguracaoTestePericia, PAYLOAD__SalvarMembrosSerJogavel, PAYLOAD__SalvarProjeto3D, PaletaCores, ParametrosAcaoMembroSerJogavel, PathArteCapaPadrao, PathAvatarPadrao, PermissaoItemMinimo, Projeto3DMinimoPersistido, Projeto3DResumoPersistido, SerJogavelMembrosPersistido, SerRegistroCriado, ShaderCenaCanonicaEditor3D, TipoMalhaCenaCanonicaEditor3D, TipoVariavelAmbiente, TituloSessaoInteligente, VALORES_ATRIBUTOS_OBRIGATORIOS_CONFIGURACAO_TESTE_PERICIA, Vetor3CenaCanonicaEditor3D, adicionaProximoIntervaloConfiguracaoTestePericia, calculaIncrementosAcumuladosPatenteTestePericia, calculaValorMinimoTestePericia, concatenarDataEHoraEmNovaData, formataDataCompacta, minutosParaMs, momentoParaMinutos, obtemDiaDaSemanaPorExtensoPorDDS, obtemIntervaloConfiguradoTestePericia, pluralize, projetaConfiguracaoPatentesTestePericia, projetaConfiguracaoTestePericia, removeUltimoIntervaloOpcionalConfiguracaoTestePericia, validaConfiguracaoPatentesTestePericia, validaConfiguracaoTestePericia };
@@ -79,6 +79,172 @@ var CargoExibicaoUsuario;
79
79
  CargoExibicaoUsuario[CargoExibicaoUsuario["ESPECTADOR"] = 3] = "ESPECTADOR";
80
80
  })(CargoExibicaoUsuario || (CargoExibicaoUsuario = {}));
81
81
  // @tipoCompartilhadoFront
82
+ const CONFIGURACAO_DEFAULT_TESTE_PERICIA = {
83
+ intervalos: [
84
+ { valorAtributo: 0, valorConfigurado: 3 },
85
+ { valorAtributo: 1, valorConfigurado: 1 },
86
+ { valorAtributo: 2, valorConfigurado: 1 },
87
+ { valorAtributo: 3, valorConfigurado: 2 },
88
+ { valorAtributo: 4, valorConfigurado: 2 },
89
+ ],
90
+ };
91
+ // @tipoCompartilhadoFront
92
+ const CONFIGURACAO_DEFAULT_PATENTES_TESTE_PERICIA = {
93
+ patentes: [
94
+ { idPatentePericia: 1, incrementoValorMinimo: 0, incrementoValorMaximo: 0 },
95
+ { idPatentePericia: 2, incrementoValorMinimo: 0, incrementoValorMaximo: 5 },
96
+ { idPatentePericia: 3, incrementoValorMinimo: 3, incrementoValorMaximo: 7 },
97
+ { idPatentePericia: 4, incrementoValorMinimo: 0, incrementoValorMaximo: 0 },
98
+ { idPatentePericia: 5, incrementoValorMinimo: 0, incrementoValorMaximo: 0 },
99
+ ],
100
+ };
101
+ // @tipoCompartilhadoFront
102
+ const VALORES_ATRIBUTOS_OBRIGATORIOS_CONFIGURACAO_TESTE_PERICIA = [0, 1, 2];
103
+ // @tipoCompartilhadoFront
104
+ function validaConfiguracaoTestePericia(configuracao) {
105
+ if (!Array.isArray(configuracao.intervalos))
106
+ throw new Error('Configuracao de teste de pericia invalida: intervalos ausentes');
107
+ const intervalos = configuracao.intervalos.slice().sort((a, b) => a.valorAtributo - b.valorAtributo);
108
+ const valoresAtributos = new Set();
109
+ for (const intervalo of intervalos) {
110
+ if (!Number.isInteger(intervalo.valorAtributo))
111
+ throw new Error('Configuracao de teste de pericia invalida: valor de atributo deve ser inteiro');
112
+ if (!Number.isInteger(intervalo.valorConfigurado))
113
+ throw new Error('Configuracao de teste de pericia invalida: valor configurado deve ser inteiro');
114
+ if (intervalo.valorAtributo !== 1 && intervalo.valorConfigurado <= 0)
115
+ throw new Error('Configuracao de teste de pericia invalida: intervalos devem ser positivos');
116
+ if (valoresAtributos.has(intervalo.valorAtributo))
117
+ throw new Error(`Configuracao de teste de pericia invalida: atributo [${intervalo.valorAtributo}] duplicado`);
118
+ valoresAtributos.add(intervalo.valorAtributo);
119
+ }
120
+ for (const valorObrigatorio of VALORES_ATRIBUTOS_OBRIGATORIOS_CONFIGURACAO_TESTE_PERICIA) {
121
+ if (!valoresAtributos.has(valorObrigatorio))
122
+ throw new Error(`Configuracao de teste de pericia invalida: atributo obrigatorio [${valorObrigatorio}] ausente`);
123
+ }
124
+ if (intervalos[0]?.valorAtributo > 0)
125
+ throw new Error('Configuracao de teste de pericia invalida: o range configurado deve incluir atributos inferiores a base');
126
+ for (let i = 1; i < intervalos.length; i++) {
127
+ if (intervalos[i].valorAtributo !== intervalos[i - 1].valorAtributo + 1)
128
+ throw new Error('Configuracao de teste de pericia invalida: o range configurado deve ser continuo');
129
+ }
130
+ return { intervalos };
131
+ }
132
+ // @tipoCompartilhadoFront
133
+ function obtemIntervaloConfiguradoTestePericia(configuracao, valorAtributo) {
134
+ const configuracaoValidada = validaConfiguracaoTestePericia(configuracao);
135
+ const intervalo = configuracaoValidada.intervalos.find(item => item.valorAtributo === valorAtributo);
136
+ if (!intervalo)
137
+ throw new Error(`Configuracao de teste de pericia sem valor configurado para atributo [${valorAtributo}]`);
138
+ return intervalo;
139
+ }
140
+ // @tipoCompartilhadoFront
141
+ function calculaValorMinimoTestePericia(configuracao, valorAtributo) {
142
+ if (!Number.isInteger(valorAtributo))
143
+ throw new Error('Valor de atributo para teste de pericia deve ser inteiro');
144
+ const configuracaoValidada = validaConfiguracaoTestePericia(configuracao);
145
+ const baseAtributo1 = obtemIntervaloConfiguradoTestePericia(configuracaoValidada, 1).valorConfigurado;
146
+ if (valorAtributo === 1)
147
+ return baseAtributo1;
148
+ if (valorAtributo < 1) {
149
+ const menorAtributoConfigurado = configuracaoValidada.intervalos[0].valorAtributo;
150
+ const intervaloInferior = obtemIntervaloConfiguradoTestePericia(configuracaoValidada, menorAtributoConfigurado).valorConfigurado;
151
+ let valorMinimo = baseAtributo1;
152
+ for (let atributoAtual = 0; atributoAtual >= valorAtributo; atributoAtual--) {
153
+ const intervaloConfigurado = configuracaoValidada.intervalos.find(intervalo => intervalo.valorAtributo === atributoAtual);
154
+ valorMinimo -= intervaloConfigurado?.valorConfigurado ?? intervaloInferior;
155
+ }
156
+ return valorMinimo;
157
+ }
158
+ const maiorAtributoConfigurado = configuracaoValidada.intervalos[configuracaoValidada.intervalos.length - 1].valorAtributo;
159
+ const intervaloSuperior = obtemIntervaloConfiguradoTestePericia(configuracaoValidada, maiorAtributoConfigurado).valorConfigurado;
160
+ let valorMinimo = baseAtributo1;
161
+ for (let atributoAtual = 2; atributoAtual <= valorAtributo; atributoAtual++) {
162
+ const intervaloConfigurado = configuracaoValidada.intervalos.find(intervalo => intervalo.valorAtributo === atributoAtual);
163
+ valorMinimo += intervaloConfigurado?.valorConfigurado ?? intervaloSuperior;
164
+ }
165
+ return valorMinimo;
166
+ }
167
+ // @tipoCompartilhadoFront
168
+ function projetaConfiguracaoTestePericia(configuracao) {
169
+ const configuracaoValidada = validaConfiguracaoTestePericia(configuracao);
170
+ const menorAtributoConfigurado = configuracaoValidada.intervalos[0].valorAtributo;
171
+ const maiorAtributoConfigurado = configuracaoValidada.intervalos[configuracaoValidada.intervalos.length - 1].valorAtributo;
172
+ const intervaloInferior = obtemIntervaloConfiguradoTestePericia(configuracaoValidada, menorAtributoConfigurado).valorConfigurado;
173
+ const intervaloSuperior = obtemIntervaloConfiguradoTestePericia(configuracaoValidada, maiorAtributoConfigurado).valorConfigurado;
174
+ const linhas = [];
175
+ for (let valorAtributo = menorAtributoConfigurado - 2; valorAtributo <= maiorAtributoConfigurado + 2; valorAtributo++) {
176
+ const intervaloConfigurado = configuracaoValidada.intervalos.find(intervalo => intervalo.valorAtributo === valorAtributo);
177
+ const configurado = intervaloConfigurado !== undefined;
178
+ const valorConfigurado = intervaloConfigurado?.valorConfigurado ?? (valorAtributo < menorAtributoConfigurado ? intervaloInferior : intervaloSuperior);
179
+ linhas.push({
180
+ valorAtributo,
181
+ valorConfigurado,
182
+ valorMinimo: calculaValorMinimoTestePericia(configuracaoValidada, valorAtributo),
183
+ configurado,
184
+ obrigatorio: VALORES_ATRIBUTOS_OBRIGATORIOS_CONFIGURACAO_TESTE_PERICIA.includes(valorAtributo),
185
+ });
186
+ }
187
+ return {
188
+ configuracao: configuracaoValidada,
189
+ linhas,
190
+ valorAtributoMinimoConfigurado: menorAtributoConfigurado,
191
+ valorAtributoMaximoConfigurado: maiorAtributoConfigurado,
192
+ };
193
+ }
194
+ // @tipoCompartilhadoFront
195
+ function adicionaProximoIntervaloConfiguracaoTestePericia(configuracao) {
196
+ const configuracaoProjetada = projetaConfiguracaoTestePericia(configuracao);
197
+ const ultimoIntervalo = obtemIntervaloConfiguradoTestePericia(configuracaoProjetada.configuracao, configuracaoProjetada.valorAtributoMaximoConfigurado);
198
+ return { intervalos: [...configuracaoProjetada.configuracao.intervalos, { valorAtributo: configuracaoProjetada.valorAtributoMaximoConfigurado + 1, valorConfigurado: ultimoIntervalo.valorConfigurado }] };
199
+ }
200
+ // @tipoCompartilhadoFront
201
+ function removeUltimoIntervaloOpcionalConfiguracaoTestePericia(configuracao) {
202
+ const configuracaoProjetada = projetaConfiguracaoTestePericia(configuracao);
203
+ if (configuracaoProjetada.valorAtributoMaximoConfigurado <= 2)
204
+ return configuracaoProjetada.configuracao;
205
+ return { intervalos: configuracaoProjetada.configuracao.intervalos.filter(intervalo => intervalo.valorAtributo !== configuracaoProjetada.valorAtributoMaximoConfigurado) };
206
+ }
207
+ // @tipoCompartilhadoFront
208
+ function validaConfiguracaoPatentesTestePericia(configuracao) {
209
+ if (!Array.isArray(configuracao.patentes) || configuracao.patentes.length === 0)
210
+ throw new Error('Configuracao de patentes para teste de pericia invalida: patentes ausentes');
211
+ const patentes = configuracao.patentes.slice().sort((a, b) => a.idPatentePericia - b.idPatentePericia);
212
+ const idsPatentes = new Set();
213
+ for (const patente of patentes) {
214
+ if (!Number.isInteger(patente.idPatentePericia) || patente.idPatentePericia <= 0)
215
+ throw new Error('Configuracao de patentes para teste de pericia invalida: id de patente deve ser inteiro positivo');
216
+ if (!Number.isInteger(patente.incrementoValorMinimo))
217
+ throw new Error('Configuracao de patentes para teste de pericia invalida: incremento de valor minimo deve ser inteiro');
218
+ if (!Number.isInteger(patente.incrementoValorMaximo))
219
+ throw new Error('Configuracao de patentes para teste de pericia invalida: incremento de valor maximo deve ser inteiro');
220
+ if (idsPatentes.has(patente.idPatentePericia))
221
+ throw new Error(`Configuracao de patentes para teste de pericia invalida: patente [${patente.idPatentePericia}] duplicada`);
222
+ idsPatentes.add(patente.idPatentePericia);
223
+ }
224
+ return { patentes };
225
+ }
226
+ // @tipoCompartilhadoFront
227
+ function projetaConfiguracaoPatentesTestePericia(configuracao) {
228
+ const configuracaoValidada = validaConfiguracaoPatentesTestePericia(configuracao);
229
+ let incrementoValorMinimoAcumulado = 0;
230
+ let incrementoValorMaximoAcumulado = 0;
231
+ const linhas = configuracaoValidada.patentes.map(patente => {
232
+ incrementoValorMinimoAcumulado += patente.incrementoValorMinimo;
233
+ incrementoValorMaximoAcumulado += patente.incrementoValorMaximo;
234
+ return { ...patente, incrementoValorMinimoAcumulado, incrementoValorMaximoAcumulado };
235
+ });
236
+ return { configuracao: configuracaoValidada, linhas };
237
+ }
238
+ // @tipoCompartilhadoFront
239
+ function calculaIncrementosAcumuladosPatenteTestePericia(configuracao, idPatentePericia) {
240
+ if (!Number.isInteger(idPatentePericia) || idPatentePericia <= 0)
241
+ throw new Error('Patente para teste de pericia deve possuir id inteiro positivo');
242
+ const linha = projetaConfiguracaoPatentesTestePericia(configuracao).linhas.find(patente => patente.idPatentePericia === idPatentePericia);
243
+ if (!linha)
244
+ throw new Error(`Configuracao de teste de pericia sem impacto configurado para patente [${idPatentePericia}]`);
245
+ return linha;
246
+ }
247
+ // @tipoCompartilhadoFront
82
248
  var FormatoMomento;
83
249
  (function (FormatoMomento) {
84
250
  FormatoMomento[FormatoMomento["HMS"] = 0] = "HMS";
@@ -135,4 +301,4 @@ function formataDataCompacta(data = new Date()) {
135
301
  const milesimo = String(data.getMilliseconds()).padStart(3, '0');
136
302
  return `${ano}${mes}${dia}_${hora}${minuto}${segundo}${milesimo}`;
137
303
  }
138
- export { AventuraEstado, CargoExibicaoUsuario, DiaDaSemana, EstadoOcupacaoPersonagem, EstadoPendenciaAdministrativaPersonagem, EstadoPendenciaPersonagem, EstadoSessao, FormatoMomento, PathArteCapaPadrao, PathAvatarPadrao, concatenarDataEHoraEmNovaData, formataDataCompacta, minutosParaMs, momentoParaMinutos, obtemDiaDaSemanaPorExtensoPorDDS, pluralize };
304
+ export { AventuraEstado, CONFIGURACAO_DEFAULT_PATENTES_TESTE_PERICIA, CONFIGURACAO_DEFAULT_TESTE_PERICIA, CargoExibicaoUsuario, DiaDaSemana, EstadoOcupacaoPersonagem, EstadoPendenciaAdministrativaPersonagem, EstadoPendenciaPersonagem, EstadoSessao, FormatoMomento, PathArteCapaPadrao, PathAvatarPadrao, VALORES_ATRIBUTOS_OBRIGATORIOS_CONFIGURACAO_TESTE_PERICIA, adicionaProximoIntervaloConfiguracaoTestePericia, calculaIncrementosAcumuladosPatenteTestePericia, calculaValorMinimoTestePericia, concatenarDataEHoraEmNovaData, formataDataCompacta, minutosParaMs, momentoParaMinutos, obtemDiaDaSemanaPorExtensoPorDDS, obtemIntervaloConfiguradoTestePericia, pluralize, projetaConfiguracaoPatentesTestePericia, projetaConfiguracaoTestePericia, removeUltimoIntervaloOpcionalConfiguracaoTestePericia, validaConfiguracaoPatentesTestePericia, validaConfiguracaoTestePericia };
@@ -1,4 +1,4 @@
1
- type FormatoUploadArquivo = 'png' | 'webp' | 'svg';
1
+ type FormatoUploadArquivo = 'png' | 'webp' | 'svg' | 'opus';
2
2
  type DimensoesImagem = {
3
3
  largura: number;
4
4
  altura: number;
@@ -90,6 +90,7 @@ declare function validarImagem(regras: RegrasUploadArquivo, erros: string[]): vo
90
90
  declare function validarRegrasUploadArquivo(regras: RegrasUploadArquivo): ResultadoValidacao;
91
91
  declare function isRegrasUploadArquivoValidas(regras: RegrasUploadArquivo): regras is RegrasUploadArquivo;
92
92
  declare function mimeFromFormato(formato: FormatoUploadArquivo): string | null;
93
+ declare function acceptFromFormato(formato: FormatoUploadArquivo): string[];
93
94
  declare function acceptFromFormatos(formatos: FormatoUploadArquivo[]): string;
94
95
  declare function isFormatoImagemBitmap(formato: FormatoUploadArquivo): formato is "png" | "webp";
95
- export { DimensoesImagem, FormatoUploadArquivo, RegraDimensoesImagem, RegraProporcaoImagem, RegraTamanhoArquivo, RegrasUploadArquivo, RegrasUploadBase, RegrasUploadImagem, RequireAtLeastOne, ResultadoSaveFile, ResultadoValidacao, acceptFromFormatos, isFormatoImagemBitmap, isNumeroInteiroPositivo, isNumeroPositivo, isRegrasUploadArquivoValidas, mimeFromFormato, pushErro, validarDimensoesDim, validarDimensoesRegra, validarFormatos, validarImagem, validarMaxPixels, validarProporcao, validarRegrasUploadArquivo, validarTamanho };
96
+ export { DimensoesImagem, FormatoUploadArquivo, RegraDimensoesImagem, RegraProporcaoImagem, RegraTamanhoArquivo, RegrasUploadArquivo, RegrasUploadBase, RegrasUploadImagem, RequireAtLeastOne, ResultadoSaveFile, ResultadoValidacao, acceptFromFormato, acceptFromFormatos, isFormatoImagemBitmap, isNumeroInteiroPositivo, isNumeroPositivo, isRegrasUploadArquivoValidas, mimeFromFormato, pushErro, validarDimensoesDim, validarDimensoesRegra, validarFormatos, validarImagem, validarMaxPixels, validarProporcao, validarRegrasUploadArquivo, validarTamanho };
@@ -10,7 +10,7 @@ function validarFormatos(formatos, erros) {
10
10
  }
11
11
  const set = new Set();
12
12
  for (const f of formatos) {
13
- if (f !== 'png' && f !== 'webp' && f !== 'svg')
13
+ if (f !== 'png' && f !== 'webp' && f !== 'svg' && f !== 'opus')
14
14
  pushErro(erros, `Formato inválido em formatosPermitidos: ${String(f)}`);
15
15
  if (set.has(f))
16
16
  pushErro(erros, `Formato duplicado em formatosPermitidos: ${f}`);
@@ -105,8 +105,16 @@ function mimeFromFormato(formato) {
105
105
  return 'image/svg+xml';
106
106
  if (formato === 'png')
107
107
  return 'image/png';
108
+ if (formato === 'opus')
109
+ return 'audio/ogg';
108
110
  return null;
109
111
  }
110
- function acceptFromFormatos(formatos) { return Array.from(new Set(formatos.map(mimeFromFormato).filter((v) => v !== null))).join(','); }
112
+ function acceptFromFormato(formato) {
113
+ const mime = mimeFromFormato(formato);
114
+ if (formato === 'opus')
115
+ return mime ? [mime, '.opus'] : ['.opus'];
116
+ return mime ? [mime] : [];
117
+ }
118
+ function acceptFromFormatos(formatos) { return Array.from(new Set(formatos.flatMap(acceptFromFormato))).join(','); }
111
119
  function isFormatoImagemBitmap(formato) { return formato === 'webp' || formato === 'png'; }
112
- export { acceptFromFormatos, isFormatoImagemBitmap, isNumeroInteiroPositivo, isNumeroPositivo, isRegrasUploadArquivoValidas, mimeFromFormato, pushErro, validarDimensoesDim, validarDimensoesRegra, validarFormatos, validarImagem, validarMaxPixels, validarProporcao, validarRegrasUploadArquivo, validarTamanho };
120
+ export { acceptFromFormato, acceptFromFormatos, isFormatoImagemBitmap, isNumeroInteiroPositivo, isNumeroPositivo, isRegrasUploadArquivoValidas, mimeFromFormato, pushErro, validarDimensoesDim, validarDimensoesRegra, validarFormatos, validarImagem, validarMaxPixels, validarProporcao, validarRegrasUploadArquivo, validarTamanho };