types-nora-api 0.0.488 → 0.0.491
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.
- package/dist/api/graphql/leituras/ArquivoTipadoMusica/index.d.ts +16 -4
- package/dist/api/graphql/leituras/ArquivoTipadoMusica/index.js +19 -4
- package/dist/api/graphql/leituras/CoeficienteGanhoEstatisticaClasse/index.d.ts +48 -0
- package/dist/api/graphql/leituras/CoeficienteGanhoEstatisticaClasse/index.js +66 -0
- package/dist/api/graphql/leituras/DimensaoClima/index.d.ts +2 -1
- package/dist/api/graphql/leituras/DimensaoClima/index.js +2 -1
- package/dist/api/graphql/leituras/FonteMusica/index.d.ts +3 -2
- package/dist/api/graphql/leituras/FonteMusica/index.js +8 -3
- package/dist/api/graphql/leituras/Menu/index.d.ts +47 -0
- package/dist/api/graphql/leituras/Menu/index.js +67 -0
- package/dist/api/graphql/leituras/MusicaConfigurada/index.d.ts +3 -2
- package/dist/api/graphql/leituras/MusicaConfigurada/index.js +8 -3
- package/dist/api/graphql/leituras/PaginaNavegacao/index.d.ts +48 -0
- package/dist/api/graphql/leituras/PaginaNavegacao/index.js +70 -0
- package/dist/api/graphql/leituras/Partida/index.d.ts +128 -0
- package/dist/api/graphql/leituras/Partida/index.js +154 -0
- package/dist/api/graphql/leituras/SerDetalhe/index.d.ts +11 -2
- package/dist/api/graphql/leituras/SerDetalhe/index.js +17 -2
- package/dist/api/graphql/leituras/index.d.ts +16 -20
- package/dist/api/graphql/leituras/index.js +16 -20
- package/dist/api/rest/index.d.ts +171 -76
- package/dist/api/rest/index.js +264 -80
- package/dist/dominio/index.d.ts +110 -1
- package/dist/dominio/index.js +27 -1
- package/dist/dtos/index.d.ts +561 -135
- package/dist/dtos/index.js +96 -1
- package/dist/menus/index.d.ts +2 -171
- package/dist/menus/index.js +1 -348
- package/dist/paginas/index.d.ts +64 -76
- package/dist/paginas/index.js +67 -106
- package/dist/shared/index.d.ts +85 -1
- package/dist/ws/index.d.ts +61 -14
- package/dist/ws/index.js +9 -1
- package/package.json +1 -1
- package/dist/api/graphql/leituras/CatalogoMissao/index.d.ts +0 -42
- package/dist/api/graphql/leituras/CatalogoMissao/index.js +0 -60
- package/dist/api/graphql/leituras/CatalogoMissaoExibicao/index.d.ts +0 -45
- package/dist/api/graphql/leituras/CatalogoMissaoExibicao/index.js +0 -65
- package/dist/api/graphql/leituras/Missao/index.d.ts +0 -37
- package/dist/api/graphql/leituras/Missao/index.js +0 -51
- package/dist/api/graphql/leituras/MissaoDetalhe/index.d.ts +0 -44
- package/dist/api/graphql/leituras/MissaoDetalhe/index.js +0 -62
- package/dist/api/graphql/leituras/MissaoExibicao/index.d.ts +0 -48
- package/dist/api/graphql/leituras/MissaoExibicao/index.js +0 -70
package/dist/dtos/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// AUTO-GENERATED FILE - DO NOT EDIT
|
|
2
2
|
// DTOs públicos
|
|
3
|
+
import { temSudoBurlarCapacidades } from '../acessos';
|
|
3
4
|
import { TIPOS_ARQUIVO } from '../dominio';
|
|
4
5
|
const ARQUIVO_UPLOAD_DEFINICOES = {
|
|
5
6
|
[TIPOS_ARQUIVO.RECURSOS_INTERNOS.id]: {
|
|
@@ -32,6 +33,8 @@ const ARQUIVO_UPLOAD_DEFINICOES = {
|
|
|
32
33
|
camposExtras: [
|
|
33
34
|
{ nome: 'nome', tipo: 'texto', obrigatorio: true },
|
|
34
35
|
{ nome: 'fonte', tipo: 'texto', obrigatorio: true },
|
|
36
|
+
{ nome: 'loudnessLufs', tipo: 'numero', obrigatorio: false },
|
|
37
|
+
{ nome: 'picoDbfs', tipo: 'numero', obrigatorio: false },
|
|
35
38
|
],
|
|
36
39
|
arquivos: [
|
|
37
40
|
{ nome: 'arquivo', obrigatorio: true, multiplicidade: 'unico' },
|
|
@@ -54,10 +57,24 @@ function obtemDefinicaoUploadTipoArquivo(tipoArquivoId) {
|
|
|
54
57
|
}
|
|
55
58
|
const criaCaminhoArquivoArte = (caminhoArquivo) => caminhoArquivo;
|
|
56
59
|
const criaCaminhoArquivoAvatar = (caminhoArquivo) => caminhoArquivo;
|
|
60
|
+
const TIPOS_DESAFIO = ['DIARIO', 'SEMANAL', 'MENSAL', 'ELITE', 'ESPECIAL'];
|
|
61
|
+
const ROTULOS_TIPO_DESAFIO = { DIARIO: 'Diário', SEMANAL: 'Semanal', MENSAL: 'Mensal', ELITE: 'Elite', ESPECIAL: 'Especial' };
|
|
62
|
+
const TIPOS_DESAFIO_ROTATIVOS = ['DIARIO', 'SEMANAL', 'MENSAL'];
|
|
63
|
+
const DIRECOES_METRICA = ['MAIOR_MELHOR', 'MENOR_MELHOR'];
|
|
64
|
+
const RESULTADOS_PARTICIPACAO = ['VITORIA', 'DERROTA', 'ABANDONO'];
|
|
65
|
+
const ROTULOS_DIRECAO_METRICA = { MAIOR_MELHOR: 'Maior é melhor', MENOR_MELHOR: 'Menor é melhor' };
|
|
66
|
+
const ROTULOS_RESULTADO_PARTICIPACAO = { VITORIA: 'Vitória', DERROTA: 'Derrota', ABANDONO: 'Abandono' };
|
|
67
|
+
const METRICA_PADRAO = { id: 0, chave: 'PONTUACAO', rotulo: 'Pontuação', unidade: null, direcao: 'MAIOR_MELHOR', descricao: 'Métrica padrão quando o Desafio não define uma.' };
|
|
68
|
+
const MODOS_PARTICIPACAO = ['LIVRE', 'TENTATIVAS_POR_JANELA', 'COOLDOWN_POR_JANELA'];
|
|
69
|
+
const JANELAS_PARTICIPACAO = ['DIARIA', 'SEMANAL', 'MENSAL'];
|
|
70
|
+
const ROTULOS_MODO_PARTICIPACAO = { LIVRE: 'Livre', TENTATIVAS_POR_JANELA: 'Tentativas por janela', COOLDOWN_POR_JANELA: 'Cooldown por janela' };
|
|
71
|
+
const ROTULOS_JANELA_PARTICIPACAO = { DIARIA: 'Diária', SEMANAL: 'Semanal', MENSAL: 'Mensal' };
|
|
57
72
|
var RegistroPixProvedor;
|
|
58
73
|
(function (RegistroPixProvedor) {
|
|
59
74
|
RegistroPixProvedor["Efi"] = "EFI";
|
|
60
75
|
})(RegistroPixProvedor || (RegistroPixProvedor = {}));
|
|
76
|
+
const TIPOS_PARTIDA = ['MISSAO', 'DESAFIO'];
|
|
77
|
+
const TIPOS_CATALOGO_PARTIDA = ['PADRAO', 'DESAFIOS'];
|
|
61
78
|
// Outros Types //
|
|
62
79
|
var TipoSessao;
|
|
63
80
|
(function (TipoSessao) {
|
|
@@ -147,4 +164,82 @@ const LIMITES_ANALISE_TESTE_PERICIA = {
|
|
|
147
164
|
modificadorAbsolutoMaximo: 100000,
|
|
148
165
|
resultadoAlvoAbsolutoMaximo: 1000000,
|
|
149
166
|
};
|
|
150
|
-
|
|
167
|
+
function indexarNavegacao(config) {
|
|
168
|
+
return {
|
|
169
|
+
paginaPorTemplate: new Map(config.paginas.map(p => [p.template, p])),
|
|
170
|
+
leafPorTemplate: new Map(config.menusInternos.map(m => [m.paginaTemplate, m.leaf])),
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
function templatesDoLeaf(leaf) {
|
|
174
|
+
if (leaf.tipo !== 'menu')
|
|
175
|
+
return [];
|
|
176
|
+
const out = [];
|
|
177
|
+
const pilha = [...leaf.nodes];
|
|
178
|
+
while (pilha.length > 0) {
|
|
179
|
+
const cur = pilha.pop();
|
|
180
|
+
if (cur.tipo === 'item')
|
|
181
|
+
out.push(cur.paginaTemplate);
|
|
182
|
+
else
|
|
183
|
+
pilha.push(...cur.itens);
|
|
184
|
+
}
|
|
185
|
+
return out;
|
|
186
|
+
}
|
|
187
|
+
function decidirAcessoRuntime(template, indice, ctx, opts) {
|
|
188
|
+
return decidirRec(template, indice, ctx, opts, new Set());
|
|
189
|
+
}
|
|
190
|
+
function decidirRec(template, indice, ctx, opts, visitados) {
|
|
191
|
+
if (visitados.has(template))
|
|
192
|
+
return { permitido: true };
|
|
193
|
+
visitados.add(template);
|
|
194
|
+
const pagina = indice.paginaPorTemplate.get(template);
|
|
195
|
+
// Inativação lógica: página inativa é tratada como INEXISTENTE (404) — a não ser que o usuário tenha SUDO. Some do menu (filtrarMenuRuntime deriva daqui).
|
|
196
|
+
if (pagina && pagina.ativo === false && !temSudoBurlarCapacidades(ctx))
|
|
197
|
+
return { permitido: false, motivo: 'INEXISTENTE' };
|
|
198
|
+
const acesso = pagina ? pagina.acesso : null;
|
|
199
|
+
if (acesso !== null && 'cadastroPermitido' in acesso) {
|
|
200
|
+
if (!ctx.cadastroPermitido)
|
|
201
|
+
return { permitido: false, motivo: 'NAO_AUTENTICADO', redirecionarPara: opts.redirectNaoAutenticado };
|
|
202
|
+
}
|
|
203
|
+
if (acesso !== null && 'listaDeCapacidadesNecessarias' in acesso) {
|
|
204
|
+
if (!ctx.estaAutenticado)
|
|
205
|
+
return { permitido: false, motivo: 'NAO_AUTENTICADO', redirecionarPara: opts.redirectNaoAutenticado };
|
|
206
|
+
if (temSudoBurlarCapacidades(ctx))
|
|
207
|
+
return { permitido: true };
|
|
208
|
+
const lista = acesso.listaDeCapacidadesNecessarias;
|
|
209
|
+
// verificarCapacidade só usa .nome; o cast é seguro (CapacidadeDef é atribuível a { id, nome }).
|
|
210
|
+
const permitido = lista.length > 0 && lista.every(cap => ctx.verificarCapacidade(cap));
|
|
211
|
+
if (!permitido)
|
|
212
|
+
return { permitido: false, motivo: 'SEM_CAPACIDADE', redirecionarPara: opts.redirectSemCapacidade };
|
|
213
|
+
}
|
|
214
|
+
if (acesso !== null && 'autenticado' in acesso) {
|
|
215
|
+
if (!ctx.estaAutenticado)
|
|
216
|
+
return { permitido: false, motivo: 'NAO_AUTENTICADO', redirecionarPara: opts.redirectNaoAutenticado };
|
|
217
|
+
}
|
|
218
|
+
if (pagina && pagina.acessoPorMenuInterno === true) {
|
|
219
|
+
if (!ctx.estaAutenticado)
|
|
220
|
+
return { permitido: false, motivo: 'NAO_AUTENTICADO', redirecionarPara: opts.redirectNaoAutenticado };
|
|
221
|
+
if (temSudoBurlarCapacidades(ctx))
|
|
222
|
+
return { permitido: true };
|
|
223
|
+
const leaf = indice.leafPorTemplate.get(template);
|
|
224
|
+
const folhas = leaf ? templatesDoLeaf(leaf).filter(t => t !== template) : [];
|
|
225
|
+
const permitido = folhas.some(t => decidirRec(t, indice, ctx, opts, visitados).permitido);
|
|
226
|
+
if (!permitido)
|
|
227
|
+
return { permitido: false, motivo: 'SEM_CAPACIDADE', redirecionarPara: opts.redirectSemCapacidade };
|
|
228
|
+
}
|
|
229
|
+
return { permitido: true };
|
|
230
|
+
}
|
|
231
|
+
function filtrarMenuRuntime(nodes, indice, ctx, opts) {
|
|
232
|
+
const out = [];
|
|
233
|
+
for (const node of nodes) {
|
|
234
|
+
if (node.tipo === 'item') {
|
|
235
|
+
if (decidirAcessoRuntime(node.paginaTemplate, indice, ctx, opts).permitido)
|
|
236
|
+
out.push(node);
|
|
237
|
+
continue;
|
|
238
|
+
}
|
|
239
|
+
const itensFiltrados = filtrarMenuRuntime(node.itens, indice, ctx, opts);
|
|
240
|
+
if (itensFiltrados.length > 0)
|
|
241
|
+
out.push({ tipo: 'grupo', titulo: node.titulo, itens: itensFiltrados });
|
|
242
|
+
}
|
|
243
|
+
return out;
|
|
244
|
+
}
|
|
245
|
+
export { ARQUIVO_UPLOAD_DEFINICOES, AuthSession, CHAVE_TUTORIAL_BOAS_VINDAS, CHAVE_TUTORIAL_CENTRAL, DIRECOES_METRICA, JANELAS_PARTICIPACAO, LARGURA_PERCENTUAL_PADRAO_TUTORIAL, LIMITES_ANALISE_TESTE_PERICIA, LOGICA_COMPONIVEL_VAZIA, METRICA_PADRAO, MODOS_PARTICIPACAO, ORIGEM_TUTORIAL_POS_CADASTRO_DISCORD, ParticipanteSessao_Tipo, RESULTADOS_PARTICIPACAO, ROTULOS_DIRECAO_METRICA, ROTULOS_JANELA_PARTICIPACAO, ROTULOS_MODO_PARTICIPACAO, ROTULOS_RESULTADO_PARTICIPACAO, ROTULOS_TIPO_DESAFIO, RegistroPixProvedor, SalaDeJogo_Estado, SalaDeJogo_Tipo, SalaDeJogo_TipoMestre, SalaDeJogo_TipoParticipante, TIPOS_CATALOGO_PARTIDA, TIPOS_DESAFIO, TIPOS_DESAFIO_ROTATIVOS, TIPOS_PARTIDA, TIPO_SESSAO_LABEL, TUTORIAIS_USUARIO, TipoSessao, TipoVinculoSessaoJogador, criaCaminhoArquivoArte, criaCaminhoArquivoAvatar, decidirAcessoRuntime, decidirRec, filtrarMenuRuntime, indexarNavegacao, obtemDefinicaoUploadTipoArquivo, templatesDoLeaf };
|
package/dist/menus/index.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { PaginaDestino, PaginaFolha } from '../paginas';
|
|
1
|
+
import type { PaginaDestino } from '../paginas';
|
|
3
2
|
type MenuItemNode = {
|
|
4
3
|
readonly tipo: 'item';
|
|
5
4
|
readonly titulo: string;
|
|
@@ -72,172 +71,4 @@ type RootMenuLayout<P> = HasLayout<P> extends true ? MenuLayoutNode<P> : {};
|
|
|
72
71
|
type MenusInternosLayoutContexto<P> = {
|
|
73
72
|
readonly PAGINAS: RootMenuLayout<P>;
|
|
74
73
|
};
|
|
75
|
-
|
|
76
|
-
declare const MENU_PRINCIPAL: readonly MenuNode[];
|
|
77
|
-
declare const MENUS_INTERNOS: {
|
|
78
|
-
readonly PAGINAS: {
|
|
79
|
-
readonly jogo: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
80
|
-
readonly minhasPaginas: {
|
|
81
|
-
readonly menu: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode];
|
|
82
|
-
readonly admin: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
83
|
-
readonly moderador: readonly [MenuItemNode, MenuItemNode];
|
|
84
|
-
readonly colaborador: readonly [MenuItemNode];
|
|
85
|
-
readonly gameDesigner: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
86
|
-
readonly mestre: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
87
|
-
readonly artista: readonly [MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
88
|
-
readonly jogador: readonly [MenuGrupoNode];
|
|
89
|
-
readonly minhasConfiguracoes: readonly [MenuItemNode, MenuItemNode];
|
|
90
|
-
};
|
|
91
|
-
};
|
|
92
|
-
};
|
|
93
|
-
declare const MENUS_INTERNOS_LAYOUTCONTEXTO: {
|
|
94
|
-
readonly PAGINAS: {
|
|
95
|
-
readonly assistir: {
|
|
96
|
-
readonly tipo: "dinamico";
|
|
97
|
-
};
|
|
98
|
-
readonly jogo: {
|
|
99
|
-
readonly admin: {
|
|
100
|
-
readonly gerenciarSalas: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
101
|
-
readonly auditoriaSalaDeJogo: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
102
|
-
};
|
|
103
|
-
readonly mestre: {
|
|
104
|
-
readonly sessoesMestre: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
105
|
-
};
|
|
106
|
-
readonly jogador: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
107
|
-
};
|
|
108
|
-
readonly minhasPaginas: {
|
|
109
|
-
readonly menu: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode];
|
|
110
|
-
readonly admin: {
|
|
111
|
-
readonly menu: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
112
|
-
readonly aventura: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
113
|
-
readonly aventuras: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
114
|
-
readonly dashboardWs: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
115
|
-
readonly sessao: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
116
|
-
readonly variaveisAmbiente: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
117
|
-
readonly dashboardPermissoes: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
118
|
-
readonly dashboardPermissoesUsuarios: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
119
|
-
readonly deletarArquivosAbsoluto: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
120
|
-
readonly deletarArquivosFileServer: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
121
|
-
readonly uploadRecursosInternos: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
122
|
-
readonly uploadMusica: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
123
|
-
readonly mixerControl: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
124
|
-
readonly configurarMusica: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
125
|
-
readonly gerenciarDimensoes: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
126
|
-
readonly tutoriais: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
127
|
-
readonly disparosEventosUsuario: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
128
|
-
};
|
|
129
|
-
readonly moderador: {
|
|
130
|
-
readonly menu: readonly [MenuItemNode, MenuItemNode];
|
|
131
|
-
readonly dashboardAprovacaoImagensArtista: readonly [MenuItemNode, MenuItemNode];
|
|
132
|
-
readonly gerenciarEmblemas: readonly [MenuItemNode, MenuItemNode];
|
|
133
|
-
readonly gerenciarConquistas: readonly [MenuItemNode, MenuItemNode];
|
|
134
|
-
};
|
|
135
|
-
readonly colaborador: {
|
|
136
|
-
readonly menu: readonly [MenuItemNode];
|
|
137
|
-
readonly painelDoMedo: {
|
|
138
|
-
readonly tipo: "vazio";
|
|
139
|
-
};
|
|
140
|
-
};
|
|
141
|
-
readonly gameDesigner: {
|
|
142
|
-
readonly menu: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
143
|
-
readonly criar: {
|
|
144
|
-
readonly seres: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
145
|
-
readonly capacidadesInatas: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
146
|
-
readonly habilidadesPericia: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
147
|
-
readonly habilidadesEspeciais: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
148
|
-
readonly configuracaoHabilidades: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
149
|
-
};
|
|
150
|
-
readonly configurar: {
|
|
151
|
-
readonly configuracaoTestePericia: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
152
|
-
readonly configuracaoPatentesTestePericia: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
153
|
-
readonly missoesJogaveis: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
154
|
-
};
|
|
155
|
-
readonly analisar: {
|
|
156
|
-
readonly simuladorDistribuicoesTeste: {
|
|
157
|
-
readonly tipo: "vazio";
|
|
158
|
-
};
|
|
159
|
-
readonly simuladorTestePericiaUdm: {
|
|
160
|
-
readonly tipo: "vazio";
|
|
161
|
-
};
|
|
162
|
-
};
|
|
163
|
-
};
|
|
164
|
-
readonly mestre: {
|
|
165
|
-
readonly menu: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
166
|
-
readonly aventuras: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
167
|
-
readonly sessoesUnicas: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
168
|
-
readonly personagens: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
169
|
-
readonly rascunhos: {
|
|
170
|
-
readonly aventuras: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
171
|
-
readonly sessoesUnicas: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
172
|
-
};
|
|
173
|
-
readonly sessao: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
174
|
-
readonly temporario: {
|
|
175
|
-
readonly consultarDisponibilidades: {
|
|
176
|
-
readonly tipo: "vazio";
|
|
177
|
-
};
|
|
178
|
-
readonly criarSessaoUnica: {
|
|
179
|
-
readonly tipo: "vazio";
|
|
180
|
-
};
|
|
181
|
-
};
|
|
182
|
-
};
|
|
183
|
-
readonly artista: {
|
|
184
|
-
readonly menu: readonly [MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
185
|
-
readonly minhasImagens: readonly [MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
186
|
-
readonly adicionarImagem: readonly [MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
187
|
-
readonly avatares: {
|
|
188
|
-
readonly gerenciarAvatares: readonly [MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
189
|
-
};
|
|
190
|
-
readonly emblemas: {
|
|
191
|
-
readonly uploadRecursosEmblemas: readonly [MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
192
|
-
};
|
|
193
|
-
readonly insignias: {
|
|
194
|
-
readonly uploadRecursosInsignias: readonly [MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
195
|
-
};
|
|
196
|
-
};
|
|
197
|
-
readonly jogador: {
|
|
198
|
-
readonly menu: readonly [MenuGrupoNode];
|
|
199
|
-
readonly meusPersonagens: readonly [MenuGrupoNode];
|
|
200
|
-
readonly minhasFichas: readonly [MenuGrupoNode];
|
|
201
|
-
readonly criar: {
|
|
202
|
-
readonly ficha: {
|
|
203
|
-
readonly tipo: "vazio";
|
|
204
|
-
};
|
|
205
|
-
readonly personagem: {
|
|
206
|
-
readonly tipo: "vazio";
|
|
207
|
-
};
|
|
208
|
-
};
|
|
209
|
-
};
|
|
210
|
-
readonly minhasDisponibilidades: {
|
|
211
|
-
readonly tipo: "vazio";
|
|
212
|
-
};
|
|
213
|
-
readonly minhasConfiguracoes: {
|
|
214
|
-
readonly menu: readonly [MenuItemNode, MenuItemNode];
|
|
215
|
-
readonly passeDeJogador: readonly [MenuItemNode, MenuItemNode];
|
|
216
|
-
};
|
|
217
|
-
};
|
|
218
|
-
readonly palco: {
|
|
219
|
-
readonly tipo: "vazio";
|
|
220
|
-
};
|
|
221
|
-
readonly fichas: {
|
|
222
|
-
readonly tipo: "dinamico";
|
|
223
|
-
};
|
|
224
|
-
readonly personagens: {
|
|
225
|
-
readonly tipo: "dinamico";
|
|
226
|
-
};
|
|
227
|
-
readonly sessoes: {
|
|
228
|
-
readonly tipo: "vazio";
|
|
229
|
-
};
|
|
230
|
-
};
|
|
231
|
-
};
|
|
232
|
-
type PaginasNodeValue = object | string | number | boolean | null | undefined;
|
|
233
|
-
type PaginasNodeRecord = Record<string, PaginasNodeValue>;
|
|
234
|
-
type MenusNodeRecord = Record<string, object | undefined>;
|
|
235
|
-
declare function isPaginaComLayout(node: object): node is PaginaFolha;
|
|
236
|
-
declare function isMenuLeaf(node: object): node is MenuLayoutLeaf;
|
|
237
|
-
declare function getPaginaKey(pagina: PaginaFolha): string;
|
|
238
|
-
declare const MENUS_LAYOUTCONTEXTO_POR_PAGINA: ReadonlyMap<string, MenuLayoutLeaf>;
|
|
239
|
-
declare function obterMenuInternoLayoutContexto(pagina: PaginaFolha): MenuLayoutLeaf | undefined;
|
|
240
|
-
declare const MENUS_INTERNOS_POR_PAGINA: ReadonlyMap<string, readonly MenuNode[]>;
|
|
241
|
-
declare function obterMenuInterno(pagina: PaginaFolha): readonly MenuNode[] | undefined;
|
|
242
|
-
declare function resolverMenuInterno(pagina: PaginaFolha): readonly PaginaFolha[] | undefined;
|
|
243
|
-
export { ChildKeys, ChildKeysByHasLayout, FilhosDePagina, HasChildren, HasLayout, MENUS_INTERNOS, MENUS_INTERNOS_LAYOUTCONTEXTO, MENUS_INTERNOS_POR_PAGINA, MENUS_LAYOUTCONTEXTO_POR_PAGINA, MENU_PRINCIPAL, MenuAgrupadorSemPagina, MenuGrupoNode, MenuInternoChildren, MenuInternoTree, MenuItemNode, MenuLayoutChildren, MenuLayoutLeaf, MenuLayoutNode, MenuNode, MenusInternos, MenusInternosLayoutContexto, MenusNodeRecord, ObjectChildren, PaginaComLayout, PaginaLike, PaginasNodeRecord, PaginasNodeValue, RootMenuLayout, TemFilhos, filtrarMenuPorAcesso, getPaginaKey, isMenuLeaf, isPaginaComLayout, menuDinamico, menuGrupo, menuItem, menuVazio, obterMenuInterno, obterMenuInternoLayoutContexto, resolverMenuInterno };
|
|
74
|
+
export { ChildKeys, ChildKeysByHasLayout, FilhosDePagina, HasChildren, HasLayout, MenuAgrupadorSemPagina, MenuGrupoNode, MenuInternoChildren, MenuInternoTree, MenuItemNode, MenuLayoutChildren, MenuLayoutLeaf, MenuLayoutNode, MenuNode, MenusInternos, MenusInternosLayoutContexto, ObjectChildren, PaginaComLayout, PaginaLike, RootMenuLayout, TemFilhos, menuDinamico, menuGrupo, menuItem, menuVazio };
|
package/dist/menus/index.js
CHANGED
|
@@ -1,354 +1,7 @@
|
|
|
1
1
|
// AUTO-GENERATED FILE - DO NOT EDIT
|
|
2
2
|
// Contratos de menus
|
|
3
|
-
import { PAGINAS, decidirAcessoPagina } from '../paginas';
|
|
4
3
|
function menuItem(titulo, destino) { return { tipo: 'item', titulo, destino }; }
|
|
5
4
|
function menuGrupo(titulo, itens) { return { tipo: 'grupo', titulo, itens }; }
|
|
6
5
|
function menuVazio() { return { tipo: 'vazio' }; }
|
|
7
6
|
function menuDinamico() { return { tipo: 'dinamico' }; }
|
|
8
|
-
|
|
9
|
-
const out = [];
|
|
10
|
-
for (const node of nodes) {
|
|
11
|
-
if (node.tipo === 'item') {
|
|
12
|
-
const decisao = decidirAcessoPagina(node.destino.pagina, ctx, { resolverMenuInterno, redirectNaoAutenticado: PAGINAS.acessar, redirectSemCapacidade: PAGINAS.home });
|
|
13
|
-
if (decisao.permitido)
|
|
14
|
-
out.push(node);
|
|
15
|
-
continue;
|
|
16
|
-
}
|
|
17
|
-
const itensFiltrados = filtrarMenuPorAcesso(node.itens, ctx);
|
|
18
|
-
if (itensFiltrados.length > 0)
|
|
19
|
-
out.push({ tipo: 'grupo', titulo: node.titulo, itens: itensFiltrados });
|
|
20
|
-
}
|
|
21
|
-
return out;
|
|
22
|
-
}
|
|
23
|
-
const MENU_PRINCIPAL = [
|
|
24
|
-
menuItem('Minhas Páginas', { pagina: PAGINAS.minhasPaginas }),
|
|
25
|
-
menuItem('Fichas', { pagina: PAGINAS.fichas }),
|
|
26
|
-
menuItem('Personagens', { pagina: PAGINAS.personagens }),
|
|
27
|
-
menuItem('Jogue Agora!', { pagina: PAGINAS.jogo.jogador }),
|
|
28
|
-
menuItem('Assistir', { pagina: PAGINAS.assistir }),
|
|
29
|
-
menuItem('Sessão Ao Vivo', { pagina: PAGINAS.sessaoAovivo }),
|
|
30
|
-
menuItem('Hall', { pagina: PAGINAS.minhaPagina }),
|
|
31
|
-
menuItem('Definições', { pagina: PAGINAS.definicoes, params: { slug: [] } }),
|
|
32
|
-
menuItem('Dicas', { pagina: PAGINAS.dicas, params: { slug: [] } }),
|
|
33
|
-
];
|
|
34
|
-
const MENUS_INTERNOS = {
|
|
35
|
-
PAGINAS: {
|
|
36
|
-
jogo: [
|
|
37
|
-
menuGrupo('Administrador', [
|
|
38
|
-
menuItem('Salas', { pagina: PAGINAS.jogo.admin.gerenciarSalas }),
|
|
39
|
-
menuItem('Auditoria de Acoes', { pagina: PAGINAS.jogo.admin.auditoriaSalaDeJogo }),
|
|
40
|
-
]),
|
|
41
|
-
menuGrupo('Mestre', [
|
|
42
|
-
menuItem('Sessões', { pagina: PAGINAS.jogo.mestre.sessoesMestre }),
|
|
43
|
-
]),
|
|
44
|
-
menuGrupo('Jogador', [
|
|
45
|
-
menuItem('Início', { pagina: PAGINAS.jogo.jogador }),
|
|
46
|
-
menuItem('Modo Solo', { pagina: PAGINAS.jogo.jogador.solo }),
|
|
47
|
-
]),
|
|
48
|
-
],
|
|
49
|
-
minhasPaginas: {
|
|
50
|
-
menu: [
|
|
51
|
-
menuItem('Administrador', { pagina: PAGINAS.minhasPaginas.admin }),
|
|
52
|
-
menuItem('Moderador', { pagina: PAGINAS.minhasPaginas.moderador }),
|
|
53
|
-
menuItem('Game Designer', { pagina: PAGINAS.minhasPaginas.gameDesigner }),
|
|
54
|
-
menuItem('Mestre', { pagina: PAGINAS.minhasPaginas.mestre }),
|
|
55
|
-
menuItem('Artista', { pagina: PAGINAS.minhasPaginas.artista }),
|
|
56
|
-
menuItem('Jogador', { pagina: PAGINAS.minhasPaginas.jogador }),
|
|
57
|
-
menuItem('Painel do Medo', { pagina: PAGINAS.minhasPaginas.colaborador.painelDoMedo }),
|
|
58
|
-
menuItem('Disponibilidades', { pagina: PAGINAS.minhasPaginas.minhasDisponibilidades }),
|
|
59
|
-
menuItem('Configurações', { pagina: PAGINAS.minhasPaginas.minhasConfiguracoes }),
|
|
60
|
-
],
|
|
61
|
-
admin: [
|
|
62
|
-
menuItem('Variáveis de Ambiente', { pagina: PAGINAS.minhasPaginas.admin.variaveisAmbiente }),
|
|
63
|
-
menuItem('Aventuras', { pagina: PAGINAS.minhasPaginas.admin.aventuras }),
|
|
64
|
-
menuItem('Dashboard WebSocket', { pagina: PAGINAS.minhasPaginas.admin.dashboardWs }),
|
|
65
|
-
menuItem('Tutoriais', { pagina: PAGINAS.minhasPaginas.admin.tutoriais }),
|
|
66
|
-
menuItem('Disparos de Eventos de Usuário', { pagina: PAGINAS.minhasPaginas.admin.disparosEventosUsuario }),
|
|
67
|
-
menuGrupo('Permissões', [
|
|
68
|
-
menuItem('Permissões', { pagina: PAGINAS.minhasPaginas.admin.dashboardPermissoes }),
|
|
69
|
-
menuItem('Permissões de Usuários', { pagina: PAGINAS.minhasPaginas.admin.dashboardPermissoesUsuarios }),
|
|
70
|
-
]),
|
|
71
|
-
menuGrupo('File Server', [
|
|
72
|
-
menuItem('Deletar Arquivos por Caminho', { pagina: PAGINAS.minhasPaginas.admin.deletarArquivosAbsoluto }),
|
|
73
|
-
menuItem('Deletar Arquivos', { pagina: PAGINAS.minhasPaginas.admin.deletarArquivosFileServer }),
|
|
74
|
-
menuItem('Upload de Recursos Internos', { pagina: PAGINAS.minhasPaginas.admin.uploadRecursosInternos }),
|
|
75
|
-
menuItem('Upload de Música', { pagina: PAGINAS.minhasPaginas.admin.uploadMusica }),
|
|
76
|
-
]),
|
|
77
|
-
menuGrupo('Mixer', [
|
|
78
|
-
menuItem('Controle do Mixer', { pagina: PAGINAS.minhasPaginas.admin.mixerControl }),
|
|
79
|
-
menuItem('Configurar Música', { pagina: PAGINAS.minhasPaginas.admin.configurarMusica }),
|
|
80
|
-
menuItem('Gerenciar Dimensões', { pagina: PAGINAS.minhasPaginas.admin.gerenciarDimensoes }),
|
|
81
|
-
]),
|
|
82
|
-
],
|
|
83
|
-
moderador: [
|
|
84
|
-
menuItem('Imagens pendentes de Aprovação', { pagina: PAGINAS.minhasPaginas.moderador.dashboardAprovacaoImagensArtista }),
|
|
85
|
-
menuItem('Gerenciar Emblemas', { pagina: PAGINAS.minhasPaginas.moderador.gerenciarEmblemas }),
|
|
86
|
-
],
|
|
87
|
-
colaborador: [
|
|
88
|
-
menuItem('Painel do Medo', { pagina: PAGINAS.minhasPaginas.colaborador.painelDoMedo }),
|
|
89
|
-
],
|
|
90
|
-
gameDesigner: [
|
|
91
|
-
menuGrupo('Criar', [
|
|
92
|
-
menuItem('Seres', { pagina: PAGINAS.minhasPaginas.gameDesigner.criar.seres }),
|
|
93
|
-
menuItem('Capacidades Inatas', { pagina: PAGINAS.minhasPaginas.gameDesigner.criar.capacidadesInatas }),
|
|
94
|
-
menuItem('Habilidades de Perícia', { pagina: PAGINAS.minhasPaginas.gameDesigner.criar.habilidadesPericia }),
|
|
95
|
-
menuItem('Habilidades Especiais', { pagina: PAGINAS.minhasPaginas.gameDesigner.criar.habilidadesPericia }),
|
|
96
|
-
menuItem('Configuração de Habilidades', { pagina: PAGINAS.minhasPaginas.gameDesigner.criar.configuracaoHabilidades }),
|
|
97
|
-
]),
|
|
98
|
-
menuGrupo('Configurar', [
|
|
99
|
-
menuItem('Configuração de Teste de Perícia', { pagina: PAGINAS.minhasPaginas.gameDesigner.configurar.configuracaoTestePericia }),
|
|
100
|
-
menuItem('Configuração de Patentes de Perícia', { pagina: PAGINAS.minhasPaginas.gameDesigner.configurar.configuracaoPatentesTestePericia }),
|
|
101
|
-
menuItem('Missões Jogáveis', { pagina: PAGINAS.minhasPaginas.gameDesigner.configurar.missoesJogaveis }),
|
|
102
|
-
]),
|
|
103
|
-
menuGrupo('Analisar', [
|
|
104
|
-
menuItem('Simulador de Distribuições de Teste', { pagina: PAGINAS.minhasPaginas.gameDesigner.analisar.simuladorDistribuicoesTeste }),
|
|
105
|
-
menuItem('Simulador de Teste de Perícia UDM', { pagina: PAGINAS.minhasPaginas.gameDesigner.analisar.simuladorTestePericiaUdm }),
|
|
106
|
-
]),
|
|
107
|
-
],
|
|
108
|
-
mestre: [
|
|
109
|
-
menuGrupo('Mestre', [
|
|
110
|
-
menuItem('Início', { pagina: PAGINAS.minhasPaginas.mestre }),
|
|
111
|
-
]),
|
|
112
|
-
menuGrupo('Relíquia', [
|
|
113
|
-
menuGrupo('Aventuras', [
|
|
114
|
-
menuItem('Minhas Aventuras', { pagina: PAGINAS.minhasPaginas.mestre.aventuras }),
|
|
115
|
-
menuItem('Rascunhos de Aventuras', { pagina: PAGINAS.minhasPaginas.mestre.rascunhos.aventuras }),
|
|
116
|
-
]),
|
|
117
|
-
menuItem('Personagens', { pagina: PAGINAS.minhasPaginas.mestre.personagens }),
|
|
118
|
-
]),
|
|
119
|
-
menuGrupo('Criatura', [
|
|
120
|
-
menuGrupo('Sessões Únicas', [
|
|
121
|
-
menuItem('Minhas Sessões Únicas', { pagina: PAGINAS.minhasPaginas.mestre.sessoesUnicas }),
|
|
122
|
-
menuItem('Rascunhos de Sessões Únicas', { pagina: PAGINAS.minhasPaginas.mestre.rascunhos.sessoesUnicas }),
|
|
123
|
-
]),
|
|
124
|
-
]),
|
|
125
|
-
menuGrupo('Temporário', [
|
|
126
|
-
menuItem('Consultar Disponibilidades', { pagina: PAGINAS.minhasPaginas.mestre.temporario.consultarDisponibilidades }),
|
|
127
|
-
menuItem('Criar Sessões Únicas', { pagina: PAGINAS.minhasPaginas.mestre.temporario.criarSessaoUnica }),
|
|
128
|
-
]),
|
|
129
|
-
],
|
|
130
|
-
artista: [
|
|
131
|
-
menuItem('Minhas Imagens', { pagina: PAGINAS.minhasPaginas.artista.minhasImagens }),
|
|
132
|
-
menuItem('Adicionar Nova Imagem', { pagina: PAGINAS.minhasPaginas.artista.adicionarImagem }),
|
|
133
|
-
menuGrupo('Avatares', [
|
|
134
|
-
menuItem('Gerenciar Avatares', { pagina: PAGINAS.minhasPaginas.artista.avatares.gerenciarAvatares }),
|
|
135
|
-
]),
|
|
136
|
-
menuGrupo('Emblemas', [
|
|
137
|
-
menuItem('Upload de Emblemas', { pagina: PAGINAS.minhasPaginas.artista.emblemas.uploadRecursosEmblemas }),
|
|
138
|
-
]),
|
|
139
|
-
menuGrupo('Insígnias', [
|
|
140
|
-
menuItem('Upload de Insígnias', { pagina: PAGINAS.minhasPaginas.artista.insignias.uploadRecursosInsignias }),
|
|
141
|
-
]),
|
|
142
|
-
],
|
|
143
|
-
jogador: [
|
|
144
|
-
menuGrupo('Jogador', [
|
|
145
|
-
menuItem('Início', { pagina: PAGINAS.minhasPaginas.jogador }),
|
|
146
|
-
menuItem('Meus Personagens', { pagina: PAGINAS.minhasPaginas.jogador.meusPersonagens }),
|
|
147
|
-
menuItem('Minhas Fichas', { pagina: PAGINAS.minhasPaginas.jogador.minhasFichas }),
|
|
148
|
-
]),
|
|
149
|
-
],
|
|
150
|
-
minhasConfiguracoes: [
|
|
151
|
-
menuItem('Configurações', { pagina: PAGINAS.minhasPaginas.minhasConfiguracoes }),
|
|
152
|
-
menuItem('Passe de Jogador', { pagina: PAGINAS.minhasPaginas.minhasConfiguracoes.passeDeJogador }),
|
|
153
|
-
],
|
|
154
|
-
},
|
|
155
|
-
},
|
|
156
|
-
};
|
|
157
|
-
const MENUS_INTERNOS_LAYOUTCONTEXTO = {
|
|
158
|
-
PAGINAS: {
|
|
159
|
-
assistir: menuDinamico(),
|
|
160
|
-
jogo: {
|
|
161
|
-
admin: {
|
|
162
|
-
gerenciarSalas: MENUS_INTERNOS.PAGINAS.jogo,
|
|
163
|
-
auditoriaSalaDeJogo: MENUS_INTERNOS.PAGINAS.jogo,
|
|
164
|
-
},
|
|
165
|
-
mestre: {
|
|
166
|
-
sessoesMestre: MENUS_INTERNOS.PAGINAS.jogo,
|
|
167
|
-
},
|
|
168
|
-
jogador: MENUS_INTERNOS.PAGINAS.jogo,
|
|
169
|
-
},
|
|
170
|
-
minhasPaginas: {
|
|
171
|
-
menu: MENUS_INTERNOS.PAGINAS.minhasPaginas.menu,
|
|
172
|
-
admin: {
|
|
173
|
-
menu: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
174
|
-
aventura: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
175
|
-
aventuras: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
176
|
-
dashboardWs: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
177
|
-
sessao: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
178
|
-
variaveisAmbiente: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
179
|
-
dashboardPermissoes: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
180
|
-
dashboardPermissoesUsuarios: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
181
|
-
deletarArquivosAbsoluto: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
182
|
-
deletarArquivosFileServer: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
183
|
-
uploadRecursosInternos: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
184
|
-
uploadMusica: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
185
|
-
mixerControl: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
186
|
-
configurarMusica: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
187
|
-
gerenciarDimensoes: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
188
|
-
tutoriais: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
189
|
-
disparosEventosUsuario: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
190
|
-
},
|
|
191
|
-
moderador: {
|
|
192
|
-
menu: MENUS_INTERNOS.PAGINAS.minhasPaginas.moderador,
|
|
193
|
-
dashboardAprovacaoImagensArtista: MENUS_INTERNOS.PAGINAS.minhasPaginas.moderador,
|
|
194
|
-
gerenciarEmblemas: MENUS_INTERNOS.PAGINAS.minhasPaginas.moderador,
|
|
195
|
-
gerenciarConquistas: MENUS_INTERNOS.PAGINAS.minhasPaginas.moderador,
|
|
196
|
-
},
|
|
197
|
-
colaborador: {
|
|
198
|
-
menu: MENUS_INTERNOS.PAGINAS.minhasPaginas.colaborador,
|
|
199
|
-
painelDoMedo: menuVazio(),
|
|
200
|
-
},
|
|
201
|
-
gameDesigner: {
|
|
202
|
-
menu: MENUS_INTERNOS.PAGINAS.minhasPaginas.gameDesigner,
|
|
203
|
-
criar: {
|
|
204
|
-
seres: MENUS_INTERNOS.PAGINAS.minhasPaginas.gameDesigner,
|
|
205
|
-
capacidadesInatas: MENUS_INTERNOS.PAGINAS.minhasPaginas.gameDesigner,
|
|
206
|
-
habilidadesPericia: MENUS_INTERNOS.PAGINAS.minhasPaginas.gameDesigner,
|
|
207
|
-
habilidadesEspeciais: MENUS_INTERNOS.PAGINAS.minhasPaginas.gameDesigner,
|
|
208
|
-
configuracaoHabilidades: MENUS_INTERNOS.PAGINAS.minhasPaginas.gameDesigner,
|
|
209
|
-
},
|
|
210
|
-
configurar: {
|
|
211
|
-
configuracaoTestePericia: MENUS_INTERNOS.PAGINAS.minhasPaginas.gameDesigner,
|
|
212
|
-
configuracaoPatentesTestePericia: MENUS_INTERNOS.PAGINAS.minhasPaginas.gameDesigner,
|
|
213
|
-
missoesJogaveis: MENUS_INTERNOS.PAGINAS.minhasPaginas.gameDesigner,
|
|
214
|
-
},
|
|
215
|
-
analisar: {
|
|
216
|
-
simuladorDistribuicoesTeste: menuVazio(),
|
|
217
|
-
simuladorTestePericiaUdm: menuVazio(),
|
|
218
|
-
},
|
|
219
|
-
},
|
|
220
|
-
mestre: {
|
|
221
|
-
menu: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
|
|
222
|
-
aventuras: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
|
|
223
|
-
sessoesUnicas: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
|
|
224
|
-
personagens: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
|
|
225
|
-
rascunhos: {
|
|
226
|
-
aventuras: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
|
|
227
|
-
sessoesUnicas: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
|
|
228
|
-
},
|
|
229
|
-
sessao: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
|
|
230
|
-
temporario: {
|
|
231
|
-
consultarDisponibilidades: menuVazio(),
|
|
232
|
-
criarSessaoUnica: menuVazio(),
|
|
233
|
-
},
|
|
234
|
-
},
|
|
235
|
-
artista: {
|
|
236
|
-
menu: MENUS_INTERNOS.PAGINAS.minhasPaginas.artista,
|
|
237
|
-
minhasImagens: MENUS_INTERNOS.PAGINAS.minhasPaginas.artista,
|
|
238
|
-
adicionarImagem: MENUS_INTERNOS.PAGINAS.minhasPaginas.artista,
|
|
239
|
-
avatares: {
|
|
240
|
-
gerenciarAvatares: MENUS_INTERNOS.PAGINAS.minhasPaginas.artista,
|
|
241
|
-
},
|
|
242
|
-
emblemas: {
|
|
243
|
-
uploadRecursosEmblemas: MENUS_INTERNOS.PAGINAS.minhasPaginas.artista,
|
|
244
|
-
},
|
|
245
|
-
insignias: {
|
|
246
|
-
uploadRecursosInsignias: MENUS_INTERNOS.PAGINAS.minhasPaginas.artista,
|
|
247
|
-
},
|
|
248
|
-
},
|
|
249
|
-
jogador: {
|
|
250
|
-
menu: MENUS_INTERNOS.PAGINAS.minhasPaginas.jogador,
|
|
251
|
-
meusPersonagens: MENUS_INTERNOS.PAGINAS.minhasPaginas.jogador,
|
|
252
|
-
minhasFichas: MENUS_INTERNOS.PAGINAS.minhasPaginas.jogador,
|
|
253
|
-
criar: {
|
|
254
|
-
ficha: menuVazio(),
|
|
255
|
-
personagem: menuVazio(),
|
|
256
|
-
},
|
|
257
|
-
},
|
|
258
|
-
minhasDisponibilidades: menuVazio(),
|
|
259
|
-
minhasConfiguracoes: {
|
|
260
|
-
menu: MENUS_INTERNOS.PAGINAS.minhasPaginas.minhasConfiguracoes,
|
|
261
|
-
passeDeJogador: MENUS_INTERNOS.PAGINAS.minhasPaginas.minhasConfiguracoes,
|
|
262
|
-
},
|
|
263
|
-
},
|
|
264
|
-
palco: menuVazio(),
|
|
265
|
-
fichas: menuDinamico(),
|
|
266
|
-
personagens: menuDinamico(),
|
|
267
|
-
sessoes: menuVazio(),
|
|
268
|
-
},
|
|
269
|
-
};
|
|
270
|
-
function isPaginaComLayout(node) { return 'layoutContextualizadoInicial' in node && 'template' in node; }
|
|
271
|
-
function isMenuLeaf(node) {
|
|
272
|
-
if (Array.isArray(node))
|
|
273
|
-
return true;
|
|
274
|
-
if ('tipo' in node)
|
|
275
|
-
return true;
|
|
276
|
-
return false;
|
|
277
|
-
}
|
|
278
|
-
function getPaginaKey(pagina) { return String(pagina.template); }
|
|
279
|
-
const MENUS_LAYOUTCONTEXTO_POR_PAGINA = (() => {
|
|
280
|
-
const out = new Map();
|
|
281
|
-
const rec = (paginasNode, menusNode) => {
|
|
282
|
-
if (isMenuLeaf(menusNode)) {
|
|
283
|
-
if (isPaginaComLayout(paginasNode))
|
|
284
|
-
out.set(getPaginaKey(paginasNode), menusNode);
|
|
285
|
-
return;
|
|
286
|
-
}
|
|
287
|
-
const menusObj = menusNode;
|
|
288
|
-
const paginasObj = paginasNode;
|
|
289
|
-
const menuDoProprioNo = menusObj.menu;
|
|
290
|
-
if (menuDoProprioNo && isMenuLeaf(menuDoProprioNo) && isPaginaComLayout(paginasNode))
|
|
291
|
-
out.set(getPaginaKey(paginasNode), menuDoProprioNo);
|
|
292
|
-
for (const k of Object.keys(menusObj)) {
|
|
293
|
-
if (k === 'menu')
|
|
294
|
-
continue;
|
|
295
|
-
const nextMenus = menusObj[k];
|
|
296
|
-
if (!nextMenus)
|
|
297
|
-
continue;
|
|
298
|
-
const nextPaginas = paginasObj[k];
|
|
299
|
-
if (!nextPaginas || typeof nextPaginas !== 'object')
|
|
300
|
-
continue;
|
|
301
|
-
rec(nextPaginas, nextMenus);
|
|
302
|
-
}
|
|
303
|
-
};
|
|
304
|
-
rec(PAGINAS, MENUS_INTERNOS_LAYOUTCONTEXTO.PAGINAS);
|
|
305
|
-
return out;
|
|
306
|
-
})();
|
|
307
|
-
function obterMenuInternoLayoutContexto(pagina) {
|
|
308
|
-
return MENUS_LAYOUTCONTEXTO_POR_PAGINA.get(getPaginaKey(pagina));
|
|
309
|
-
}
|
|
310
|
-
const MENUS_INTERNOS_POR_PAGINA = (() => {
|
|
311
|
-
const out = new Map();
|
|
312
|
-
function isObject(v) { return typeof v === 'object' && v !== null; }
|
|
313
|
-
function hasTemplate(v) { return isObject(v) && 'template' in v; }
|
|
314
|
-
function getKey(v, k) {
|
|
315
|
-
if (!isObject(v))
|
|
316
|
-
return undefined;
|
|
317
|
-
return v[k];
|
|
318
|
-
}
|
|
319
|
-
const rec = (paginasNode, menusNode) => {
|
|
320
|
-
if (Array.isArray(menusNode)) {
|
|
321
|
-
if (hasTemplate(paginasNode))
|
|
322
|
-
out.set(String(paginasNode.template), menusNode);
|
|
323
|
-
return;
|
|
324
|
-
}
|
|
325
|
-
if (!isObject(menusNode))
|
|
326
|
-
return;
|
|
327
|
-
for (const k of Object.keys(menusNode)) {
|
|
328
|
-
const nextPaginas = getKey(paginasNode, k);
|
|
329
|
-
const nextMenus = getKey(menusNode, k);
|
|
330
|
-
rec(nextPaginas ?? undefined, nextMenus ?? undefined);
|
|
331
|
-
}
|
|
332
|
-
};
|
|
333
|
-
rec(PAGINAS, MENUS_INTERNOS.PAGINAS);
|
|
334
|
-
return out;
|
|
335
|
-
})();
|
|
336
|
-
function obterMenuInterno(pagina) {
|
|
337
|
-
return MENUS_INTERNOS_POR_PAGINA.get(getPaginaKey(pagina));
|
|
338
|
-
}
|
|
339
|
-
function resolverMenuInterno(pagina) {
|
|
340
|
-
const nodes = obterMenuInterno(pagina);
|
|
341
|
-
if (!nodes)
|
|
342
|
-
return undefined;
|
|
343
|
-
const folhas = [];
|
|
344
|
-
const stack = [...nodes];
|
|
345
|
-
while (stack.length > 0) {
|
|
346
|
-
const cur = stack.pop();
|
|
347
|
-
if (cur.tipo === 'item')
|
|
348
|
-
folhas.push(cur.destino.pagina);
|
|
349
|
-
if (cur.tipo === 'grupo')
|
|
350
|
-
stack.push(...cur.itens);
|
|
351
|
-
}
|
|
352
|
-
return folhas;
|
|
353
|
-
}
|
|
354
|
-
export { MENUS_INTERNOS, MENUS_INTERNOS_LAYOUTCONTEXTO, MENUS_INTERNOS_POR_PAGINA, MENUS_LAYOUTCONTEXTO_POR_PAGINA, MENU_PRINCIPAL, filtrarMenuPorAcesso, getPaginaKey, isMenuLeaf, isPaginaComLayout, menuDinamico, menuGrupo, menuItem, menuVazio, obterMenuInterno, obterMenuInternoLayoutContexto, resolverMenuInterno };
|
|
7
|
+
export { menuDinamico, menuGrupo, menuItem, menuVazio };
|