types-nora-api 0.0.248 → 0.0.251
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/classes.d.ts +180 -59
- package/dist/classes.js +178 -104
- package/package.json +1 -1
package/dist/classes.d.ts
CHANGED
|
@@ -802,6 +802,11 @@ interface IUsuario {
|
|
|
802
802
|
listaCargos: CargosUsuario;
|
|
803
803
|
}
|
|
804
804
|
type UsuarioDto = IUsuario;
|
|
805
|
+
type LayoutContextualizadoInicial = {
|
|
806
|
+
readonly titulo?: string;
|
|
807
|
+
readonly escondeFundo?: boolean;
|
|
808
|
+
readonly proporcaoConteudo?: number;
|
|
809
|
+
};
|
|
805
810
|
type SalaDeJogo_Codigo = `${number}_${string}`;
|
|
806
811
|
type SalaDeJogoParams = {
|
|
807
812
|
tipo: "sessao";
|
|
@@ -875,19 +880,55 @@ type MenuNode = MenuItemNode | MenuGrupoNode;
|
|
|
875
880
|
declare function menuItem(titulo: string, destino: PaginaDestino): MenuItemNode;
|
|
876
881
|
declare function menuGrupo(titulo: string, itens: readonly MenuNode[]): MenuGrupoNode;
|
|
877
882
|
type PaginaLike = {
|
|
878
|
-
readonly template:
|
|
883
|
+
readonly template: object;
|
|
879
884
|
readonly hrefTemplate: string;
|
|
885
|
+
readonly href: string;
|
|
886
|
+
readonly label: string;
|
|
880
887
|
};
|
|
881
|
-
type MenuInternoTree<P> = P extends PaginaLike ? readonly MenuNode[] : P extends Record<string,
|
|
888
|
+
type MenuInternoTree<P> = P extends PaginaLike ? readonly MenuNode[] : P extends Record<string, object | string | number | boolean | null | undefined> ? {
|
|
882
889
|
readonly [K in keyof P]?: MenuInternoTree<P[K]>;
|
|
883
890
|
} : never;
|
|
884
891
|
type MenusInternos<P> = {
|
|
885
892
|
readonly PAGINAS: MenuInternoTree<P>;
|
|
886
893
|
};
|
|
894
|
+
type PaginaComLayout = PaginaLike & {
|
|
895
|
+
readonly layoutContextualizadoInicial: object;
|
|
896
|
+
};
|
|
897
|
+
type HasLayout<T> = T extends PaginaComLayout ? true : T extends object ? (true extends {
|
|
898
|
+
[K in keyof T]-?: HasLayout<T[K]>;
|
|
899
|
+
}[keyof T] ? true : false) : false;
|
|
900
|
+
type ChildKeysByHasLayout<T> = {
|
|
901
|
+
[K in keyof T]-?: HasLayout<T[K]> extends true ? K : never;
|
|
902
|
+
}[keyof T];
|
|
903
|
+
type TemFilhos<T> = ChildKeysByHasLayout<T> extends never ? false : true;
|
|
904
|
+
type FilhosDePagina<T> = Pick<T, ChildKeysByHasLayout<T>>;
|
|
905
|
+
type MenuLayoutLeaf = readonly MenuNode[] | {
|
|
906
|
+
readonly tipo: 'vazio';
|
|
907
|
+
} | {
|
|
908
|
+
readonly tipo: 'dinamico';
|
|
909
|
+
};
|
|
910
|
+
declare function menuVazio(): {
|
|
911
|
+
readonly tipo: 'vazio';
|
|
912
|
+
};
|
|
913
|
+
declare function menuDinamico(): {
|
|
914
|
+
readonly tipo: 'dinamico';
|
|
915
|
+
};
|
|
916
|
+
type MenuLayoutChildren<T> = {
|
|
917
|
+
readonly [K in keyof T]: MenuLayoutNode<T[K]>;
|
|
918
|
+
};
|
|
919
|
+
type MenuLayoutNode<T> = T extends PaginaComLayout ? (TemFilhos<T> extends true ? {
|
|
920
|
+
readonly menu: MenuLayoutLeaf;
|
|
921
|
+
} & MenuLayoutChildren<FilhosDePagina<T>> : MenuLayoutLeaf) : T extends object ? (HasLayout<T> extends true ? MenuLayoutChildren<Pick<T, ChildKeysByHasLayout<T>>> : never) : never;
|
|
922
|
+
type RootMenuLayout<P> = HasLayout<P> extends true ? MenuLayoutNode<P> : {};
|
|
923
|
+
type MenusInternosLayoutContexto<P> = {
|
|
924
|
+
readonly PAGINAS: RootMenuLayout<P>;
|
|
925
|
+
};
|
|
887
926
|
type Brand<T, B extends string> = T & {
|
|
888
927
|
readonly __brand: B;
|
|
889
928
|
};
|
|
890
|
-
type
|
|
929
|
+
type ParamValue = string | string[] | undefined;
|
|
930
|
+
type ParamsRecord = Record<string, ParamValue>;
|
|
931
|
+
type ExtrairParamsDoTemplate<S extends string, Acc extends ParamsRecord = {}> = S extends `${infer _A}[[...${infer P}]]${infer Rest}` ? ExtrairParamsDoTemplate<Rest, Acc & {
|
|
891
932
|
[K in P]?: string[];
|
|
892
933
|
}> : S extends `${infer _A}[...${infer P}]${infer Rest}` ? ExtrairParamsDoTemplate<Rest, Acc & {
|
|
893
934
|
[K in P]: string[];
|
|
@@ -895,14 +936,18 @@ type ExtrairParamsDoTemplate<S extends string, Acc extends Record<string, unknow
|
|
|
895
936
|
[K in P]: string;
|
|
896
937
|
}> : Acc;
|
|
897
938
|
type PaginaParamsDoTemplate<T extends string> = ExtrairParamsDoTemplate<T>;
|
|
898
|
-
type
|
|
939
|
+
type PaginaInfoBase = {
|
|
899
940
|
readonly label: string;
|
|
900
941
|
readonly comCabecalho?: true;
|
|
901
942
|
readonly acesso?: AcessoPagina;
|
|
902
943
|
readonly acessoPorMenuInterno?: true;
|
|
903
944
|
};
|
|
945
|
+
type PaginaInfoComLayoutContextualizado = PaginaInfoBase & {
|
|
946
|
+
readonly layoutContextualizadoInicial: LayoutContextualizadoInicial;
|
|
947
|
+
};
|
|
948
|
+
type PaginaInfo = PaginaInfoBase | PaginaInfoComLayoutContextualizado;
|
|
904
949
|
type PaginaTemplate<T extends string = string> = Brand<T, 'PaginaTemplate'>;
|
|
905
|
-
type PaginaDef<T extends string
|
|
950
|
+
type PaginaDef<T extends string, I extends PaginaInfo = PaginaInfo> = I & {
|
|
906
951
|
readonly template: PaginaTemplate<T>;
|
|
907
952
|
readonly hrefTemplate: T;
|
|
908
953
|
readonly href: T;
|
|
@@ -910,8 +955,12 @@ type PaginaDef<T extends string> = PaginaInfo & {
|
|
|
910
955
|
type PaginaParams<P extends {
|
|
911
956
|
hrefTemplate: string;
|
|
912
957
|
}> = PaginaParamsDoTemplate<P['hrefTemplate']>;
|
|
913
|
-
declare function montarHref(template: string, params:
|
|
914
|
-
|
|
958
|
+
declare function montarHref(template: string, params: ParamsRecord): string;
|
|
959
|
+
type LimparUndefinedValue = string | number | boolean | object | null | undefined;
|
|
960
|
+
type LimparUndefinedRecord = Record<string, LimparUndefinedValue>;
|
|
961
|
+
declare function limparUndefined<T extends LimparUndefinedRecord>(obj: T): T;
|
|
962
|
+
declare function pagina<const T extends string>(hrefTemplate: T, info: PaginaInfoBase): PaginaDef<T, PaginaInfoBase>;
|
|
963
|
+
declare function paginaComLayoutContextualizado<const T extends string>(hrefTemplate: T, info: PaginaInfoBase, layoutContextualizadoInicial: LayoutContextualizadoInicial): PaginaDef<T, PaginaInfoComLayoutContextualizado>;
|
|
915
964
|
type RequiredKeys<T> = {
|
|
916
965
|
[K in keyof T]-?: {} extends Pick<T, K> ? never : K;
|
|
917
966
|
}[keyof T];
|
|
@@ -967,6 +1016,7 @@ type RegrasUploadImagem = RegrasUploadBase & {
|
|
|
967
1016
|
};
|
|
968
1017
|
};
|
|
969
1018
|
type RegrasUploadArquivo = RegrasUploadBase | RegrasUploadImagem;
|
|
1019
|
+
type TipoUpload = 'RecursosInternos' | 'ImagensArtista';
|
|
970
1020
|
interface MensagemChatRecebida {
|
|
971
1021
|
salaId: string;
|
|
972
1022
|
idUsuario: number;
|
|
@@ -1539,97 +1589,102 @@ type Opts = {
|
|
|
1539
1589
|
declare function decidirAcessoPagina(pagina: PaginaFolha, ctx: CtxAcesso, opts: Opts): DecisaoAcessoPagina;
|
|
1540
1590
|
declare function decidirAcessoPagina_Rec(pagina: PaginaFolha, ctx: CtxAcesso, opts: Opts, visitados: Set<string>): DecisaoAcessoPagina;
|
|
1541
1591
|
declare const PAGINAS: {
|
|
1542
|
-
readonly home: PaginaDef<"/">;
|
|
1543
|
-
readonly acessar: PaginaDef<"/acessar">;
|
|
1544
|
-
readonly cadastrar: PaginaDef<"/cadastrar">;
|
|
1545
|
-
readonly aventura: PaginaDef<"/aventura/[id]">;
|
|
1546
|
-
readonly aventuras: PaginaDef<"/aventuras">;
|
|
1547
|
-
readonly definicoes: PaginaDef<"/definicoes/[[...slug]]">;
|
|
1548
|
-
readonly dicas: PaginaDef<"/dicas/[[...slug]]">;
|
|
1592
|
+
readonly home: PaginaDef<"/", PaginaInfoBase>;
|
|
1593
|
+
readonly acessar: PaginaDef<"/acessar", PaginaInfoBase>;
|
|
1594
|
+
readonly cadastrar: PaginaDef<"/cadastrar", PaginaInfoBase>;
|
|
1595
|
+
readonly aventura: PaginaDef<"/aventura/[id]", PaginaInfoComLayoutContextualizado>;
|
|
1596
|
+
readonly aventuras: PaginaDef<"/aventuras", PaginaInfoComLayoutContextualizado>;
|
|
1597
|
+
readonly definicoes: PaginaDef<"/definicoes/[[...slug]]", PaginaInfoBase>;
|
|
1598
|
+
readonly dicas: PaginaDef<"/dicas/[[...slug]]", PaginaInfoBase>;
|
|
1549
1599
|
readonly jogo: {
|
|
1550
|
-
readonly jogador: PaginaDef<"/jogo/jogador">;
|
|
1551
|
-
readonly mestre: {
|
|
1552
|
-
readonly sessoesMestre: PaginaDef<"/jogo/mestre/sessoes-mestre">;
|
|
1553
|
-
};
|
|
1554
1600
|
readonly admin: {
|
|
1555
|
-
readonly gerenciarSalas: PaginaDef<"/jogo/admin/gerenciar-salas">;
|
|
1601
|
+
readonly gerenciarSalas: PaginaDef<"/jogo/admin/gerenciar-salas", PaginaInfoComLayoutContextualizado>;
|
|
1556
1602
|
};
|
|
1557
|
-
readonly
|
|
1603
|
+
readonly mestre: {
|
|
1604
|
+
readonly sessoesMestre: PaginaDef<"/jogo/mestre/sessoes-mestre", PaginaInfoComLayoutContextualizado>;
|
|
1605
|
+
};
|
|
1606
|
+
readonly jogador: PaginaDef<"/jogo/jogador", PaginaInfoComLayoutContextualizado>;
|
|
1607
|
+
readonly emJogo: PaginaDef<"/jogo/em-jogo", PaginaInfoBase>;
|
|
1558
1608
|
readonly label: string;
|
|
1559
1609
|
readonly comCabecalho?: true;
|
|
1560
1610
|
readonly acesso?: AcessoPagina;
|
|
1561
1611
|
readonly acessoPorMenuInterno?: true;
|
|
1612
|
+
readonly layoutContextualizadoInicial: LayoutContextualizadoInicial;
|
|
1562
1613
|
readonly template: PaginaTemplate<"/jogo">;
|
|
1563
1614
|
readonly hrefTemplate: "/jogo";
|
|
1564
1615
|
readonly href: "/jogo";
|
|
1565
1616
|
};
|
|
1566
|
-
readonly linhaDoTempo: PaginaDef<"/linha-do-tempo">;
|
|
1567
|
-
readonly minhaPagina: PaginaDef<"/minha-pagina">;
|
|
1617
|
+
readonly linhaDoTempo: PaginaDef<"/linha-do-tempo", PaginaInfoBase>;
|
|
1618
|
+
readonly minhaPagina: PaginaDef<"/minha-pagina", PaginaInfoBase>;
|
|
1568
1619
|
readonly minhasPaginas: {
|
|
1569
1620
|
readonly admin: {
|
|
1570
|
-
readonly aventura: PaginaDef<"/minhas-paginas/admin/aventura/[id]">;
|
|
1571
|
-
readonly aventuras: PaginaDef<"/minhas-paginas/admin/aventuras">;
|
|
1572
|
-
readonly dashboardWs: PaginaDef<"/minhas-paginas/admin/dashboard-ws">;
|
|
1573
|
-
readonly sessao: PaginaDef<"/minhas-paginas/admin/sessao/[id]">;
|
|
1574
|
-
readonly
|
|
1575
|
-
readonly variaveisAmbiente: PaginaDef<"/minhas-paginas/admin/variaveis-ambiente">;
|
|
1576
|
-
readonly dashboardPermissoes: PaginaDef<"/minhas-paginas/admin/permissoes">;
|
|
1577
|
-
readonly dashboardPermissoesUsuarios: PaginaDef<"/minhas-paginas/admin/permissoes-usuarios">;
|
|
1621
|
+
readonly aventura: PaginaDef<"/minhas-paginas/admin/aventura/[id]", PaginaInfoComLayoutContextualizado>;
|
|
1622
|
+
readonly aventuras: PaginaDef<"/minhas-paginas/admin/aventuras", PaginaInfoComLayoutContextualizado>;
|
|
1623
|
+
readonly dashboardWs: PaginaDef<"/minhas-paginas/admin/dashboard-ws", PaginaInfoComLayoutContextualizado>;
|
|
1624
|
+
readonly sessao: PaginaDef<"/minhas-paginas/admin/sessao/[id]", PaginaInfoComLayoutContextualizado>;
|
|
1625
|
+
readonly uploadRecursosInternos: PaginaDef<"/minhas-paginas/admin/uploads", PaginaInfoComLayoutContextualizado>;
|
|
1626
|
+
readonly variaveisAmbiente: PaginaDef<"/minhas-paginas/admin/variaveis-ambiente", PaginaInfoComLayoutContextualizado>;
|
|
1627
|
+
readonly dashboardPermissoes: PaginaDef<"/minhas-paginas/admin/permissoes", PaginaInfoComLayoutContextualizado>;
|
|
1628
|
+
readonly dashboardPermissoesUsuarios: PaginaDef<"/minhas-paginas/admin/permissoes-usuarios", PaginaInfoComLayoutContextualizado>;
|
|
1578
1629
|
readonly label: string;
|
|
1579
1630
|
readonly comCabecalho?: true;
|
|
1580
1631
|
readonly acesso?: AcessoPagina;
|
|
1581
1632
|
readonly acessoPorMenuInterno?: true;
|
|
1633
|
+
readonly layoutContextualizadoInicial: LayoutContextualizadoInicial;
|
|
1582
1634
|
readonly template: PaginaTemplate<"/minhas-paginas/admin">;
|
|
1583
1635
|
readonly hrefTemplate: "/minhas-paginas/admin";
|
|
1584
1636
|
readonly href: "/minhas-paginas/admin";
|
|
1585
1637
|
};
|
|
1586
|
-
readonly jogador: {
|
|
1587
|
-
readonly meusPersonagens: PaginaDef<"/minhas-paginas/jogador/meus-personagens">;
|
|
1588
|
-
readonly label: string;
|
|
1589
|
-
readonly comCabecalho?: true;
|
|
1590
|
-
readonly acesso?: AcessoPagina;
|
|
1591
|
-
readonly acessoPorMenuInterno?: true;
|
|
1592
|
-
readonly template: PaginaTemplate<"/minhas-paginas/jogador">;
|
|
1593
|
-
readonly hrefTemplate: "/minhas-paginas/jogador";
|
|
1594
|
-
readonly href: "/minhas-paginas/jogador";
|
|
1595
|
-
};
|
|
1596
1638
|
readonly mestre: {
|
|
1597
|
-
readonly aventura: PaginaDef<"/minhas-paginas/mestre/aventura/[id]">;
|
|
1598
|
-
readonly aventuras: PaginaDef<"/minhas-paginas/mestre/aventuras">;
|
|
1599
|
-
readonly sessoesUnicas: PaginaDef<"/minhas-paginas/mestre/sessoes-unicas">;
|
|
1600
|
-
readonly personagens: PaginaDef<"/minhas-paginas/mestre/personagens">;
|
|
1639
|
+
readonly aventura: PaginaDef<"/minhas-paginas/mestre/aventura/[id]", PaginaInfoComLayoutContextualizado>;
|
|
1640
|
+
readonly aventuras: PaginaDef<"/minhas-paginas/mestre/aventuras", PaginaInfoComLayoutContextualizado>;
|
|
1641
|
+
readonly sessoesUnicas: PaginaDef<"/minhas-paginas/mestre/sessoes-unicas", PaginaInfoComLayoutContextualizado>;
|
|
1642
|
+
readonly personagens: PaginaDef<"/minhas-paginas/mestre/personagens", PaginaInfoComLayoutContextualizado>;
|
|
1601
1643
|
readonly rascunhos: {
|
|
1602
|
-
readonly aventuras: PaginaDef<"/minhas-paginas/mestre/rascunhos/aventuras">;
|
|
1603
|
-
readonly sessoesUnicas: PaginaDef<"/minhas-paginas/mestre/rascunhos/sessoes-unicas">;
|
|
1644
|
+
readonly aventuras: PaginaDef<"/minhas-paginas/mestre/rascunhos/aventuras", PaginaInfoComLayoutContextualizado>;
|
|
1645
|
+
readonly sessoesUnicas: PaginaDef<"/minhas-paginas/mestre/rascunhos/sessoes-unicas", PaginaInfoComLayoutContextualizado>;
|
|
1604
1646
|
};
|
|
1605
|
-
readonly sessao: PaginaDef<"/minhas-paginas/mestre/sessao/[id]">;
|
|
1647
|
+
readonly sessao: PaginaDef<"/minhas-paginas/mestre/sessao/[id]", PaginaInfoComLayoutContextualizado>;
|
|
1606
1648
|
readonly label: string;
|
|
1607
1649
|
readonly comCabecalho?: true;
|
|
1608
1650
|
readonly acesso?: AcessoPagina;
|
|
1609
1651
|
readonly acessoPorMenuInterno?: true;
|
|
1652
|
+
readonly layoutContextualizadoInicial: LayoutContextualizadoInicial;
|
|
1610
1653
|
readonly template: PaginaTemplate<"/minhas-paginas/mestre">;
|
|
1611
1654
|
readonly hrefTemplate: "/minhas-paginas/mestre";
|
|
1612
1655
|
readonly href: "/minhas-paginas/mestre";
|
|
1613
1656
|
};
|
|
1614
1657
|
readonly artista: {
|
|
1615
|
-
readonly minhasImagens: PaginaDef<"/minhas-paginas/artista/minhas-imagens">;
|
|
1616
|
-
readonly adicionarImagem: PaginaDef<"/minhas-paginas/artista/adicionar-imagem">;
|
|
1658
|
+
readonly minhasImagens: PaginaDef<"/minhas-paginas/artista/minhas-imagens", PaginaInfoComLayoutContextualizado>;
|
|
1659
|
+
readonly adicionarImagem: PaginaDef<"/minhas-paginas/artista/adicionar-imagem", PaginaInfoComLayoutContextualizado>;
|
|
1617
1660
|
readonly label: string;
|
|
1618
1661
|
readonly comCabecalho?: true;
|
|
1619
1662
|
readonly acesso?: AcessoPagina;
|
|
1620
1663
|
readonly acessoPorMenuInterno?: true;
|
|
1664
|
+
readonly layoutContextualizadoInicial: LayoutContextualizadoInicial;
|
|
1621
1665
|
readonly template: PaginaTemplate<"/minhas-paginas/artista">;
|
|
1622
1666
|
readonly hrefTemplate: "/minhas-paginas/artista";
|
|
1623
1667
|
readonly href: "/minhas-paginas/artista";
|
|
1624
1668
|
};
|
|
1625
|
-
readonly
|
|
1669
|
+
readonly jogador: {
|
|
1670
|
+
readonly meusPersonagens: PaginaDef<"/minhas-paginas/jogador/meus-personagens", PaginaInfoComLayoutContextualizado>;
|
|
1671
|
+
readonly label: string;
|
|
1672
|
+
readonly comCabecalho?: true;
|
|
1673
|
+
readonly acesso?: AcessoPagina;
|
|
1674
|
+
readonly acessoPorMenuInterno?: true;
|
|
1675
|
+
readonly layoutContextualizadoInicial: LayoutContextualizadoInicial;
|
|
1676
|
+
readonly template: PaginaTemplate<"/minhas-paginas/jogador">;
|
|
1677
|
+
readonly hrefTemplate: "/minhas-paginas/jogador";
|
|
1678
|
+
readonly href: "/minhas-paginas/jogador";
|
|
1679
|
+
};
|
|
1680
|
+
readonly minhasDisponibilidades: PaginaDef<"/minhas-paginas/minhas-disponibilidades", PaginaInfoComLayoutContextualizado>;
|
|
1626
1681
|
};
|
|
1627
|
-
readonly personagens: PaginaDef<"/personagens">;
|
|
1628
|
-
readonly sessoes: PaginaDef<"/sessoes">;
|
|
1629
|
-
readonly sessaoAovivo: PaginaDef<"/sessao-aovivo">;
|
|
1630
|
-
readonly sessao: PaginaDef<"/sessao/[id]">;
|
|
1682
|
+
readonly personagens: PaginaDef<"/personagens", PaginaInfoComLayoutContextualizado>;
|
|
1683
|
+
readonly sessoes: PaginaDef<"/sessoes", PaginaInfoBase>;
|
|
1684
|
+
readonly sessaoAovivo: PaginaDef<"/sessao-aovivo", PaginaInfoBase>;
|
|
1685
|
+
readonly sessao: PaginaDef<"/sessao/[id]", PaginaInfoBase>;
|
|
1631
1686
|
};
|
|
1632
|
-
type Folhas<T> = T extends PaginaDef<
|
|
1687
|
+
type Folhas<T> = T extends PaginaDef<string> ? T | Folhas<Omit<T, keyof PaginaDef<string>>> : T extends readonly (infer U)[] ? Folhas<U> : T extends object ? {
|
|
1633
1688
|
[K in keyof T]-?: Folhas<NonNullable<T[K]>>;
|
|
1634
1689
|
}[keyof T] : never;
|
|
1635
1690
|
type PaginaFolha = Folhas<typeof PAGINAS>;
|
|
@@ -1645,18 +1700,84 @@ type PaginaHref = PaginaFolha['href'];
|
|
|
1645
1700
|
type PaginaDefAny = PaginaDef<string>;
|
|
1646
1701
|
type PaginaTemplateAny = PaginaTemplate<string>;
|
|
1647
1702
|
declare function filtrarMenuPorAcesso(nodes: readonly MenuNode[], ctx: CtxAcesso): MenuNode[];
|
|
1648
|
-
declare const MENU_PRINCIPAL: readonly MenuNode[];
|
|
1649
1703
|
declare const MENUS_INTERNOS: {
|
|
1650
1704
|
readonly PAGINAS: {
|
|
1705
|
+
readonly jogo: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
1651
1706
|
readonly minhasPaginas: {
|
|
1652
1707
|
readonly admin: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode];
|
|
1653
1708
|
readonly mestre: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
1654
|
-
readonly jogador: readonly [MenuGrupoNode];
|
|
1655
1709
|
readonly artista: readonly [MenuItemNode, MenuItemNode];
|
|
1710
|
+
readonly jogador: readonly [MenuGrupoNode];
|
|
1711
|
+
};
|
|
1712
|
+
};
|
|
1713
|
+
};
|
|
1714
|
+
declare const MENUS_INTERNOS_LAYOUTCONTEXTO: {
|
|
1715
|
+
readonly PAGINAS: {
|
|
1716
|
+
readonly aventura: {
|
|
1717
|
+
readonly tipo: "dinamico";
|
|
1718
|
+
};
|
|
1719
|
+
readonly aventuras: {
|
|
1720
|
+
readonly tipo: "dinamico";
|
|
1721
|
+
};
|
|
1722
|
+
readonly jogo: {
|
|
1723
|
+
readonly menu: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
1724
|
+
readonly admin: {
|
|
1725
|
+
readonly gerenciarSalas: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
1726
|
+
};
|
|
1727
|
+
readonly mestre: {
|
|
1728
|
+
readonly sessoesMestre: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
1729
|
+
};
|
|
1730
|
+
readonly jogador: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
1731
|
+
};
|
|
1732
|
+
readonly minhasPaginas: {
|
|
1733
|
+
readonly admin: {
|
|
1734
|
+
readonly menu: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode];
|
|
1735
|
+
readonly aventura: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode];
|
|
1736
|
+
readonly aventuras: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode];
|
|
1737
|
+
readonly dashboardWs: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode];
|
|
1738
|
+
readonly sessao: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode];
|
|
1739
|
+
readonly uploadRecursosInternos: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode];
|
|
1740
|
+
readonly variaveisAmbiente: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode];
|
|
1741
|
+
readonly dashboardPermissoes: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode];
|
|
1742
|
+
readonly dashboardPermissoesUsuarios: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode];
|
|
1743
|
+
};
|
|
1744
|
+
readonly jogador: {
|
|
1745
|
+
readonly menu: readonly [MenuGrupoNode];
|
|
1746
|
+
readonly meusPersonagens: readonly [MenuGrupoNode];
|
|
1747
|
+
};
|
|
1748
|
+
readonly mestre: {
|
|
1749
|
+
readonly menu: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
1750
|
+
readonly aventura: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
1751
|
+
readonly aventuras: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
1752
|
+
readonly sessoesUnicas: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
1753
|
+
readonly personagens: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
1754
|
+
readonly rascunhos: {
|
|
1755
|
+
readonly aventuras: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
1756
|
+
readonly sessoesUnicas: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
1757
|
+
};
|
|
1758
|
+
readonly sessao: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
1759
|
+
};
|
|
1760
|
+
readonly artista: {
|
|
1761
|
+
readonly menu: readonly [MenuItemNode, MenuItemNode];
|
|
1762
|
+
readonly minhasImagens: readonly [MenuItemNode, MenuItemNode];
|
|
1763
|
+
readonly adicionarImagem: readonly [MenuItemNode, MenuItemNode];
|
|
1764
|
+
};
|
|
1765
|
+
readonly minhasDisponibilidades: {
|
|
1766
|
+
readonly tipo: "vazio";
|
|
1767
|
+
};
|
|
1768
|
+
};
|
|
1769
|
+
readonly personagens: {
|
|
1770
|
+
readonly tipo: "dinamico";
|
|
1656
1771
|
};
|
|
1657
|
-
readonly jogo: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
|
|
1658
1772
|
};
|
|
1659
1773
|
};
|
|
1774
|
+
type PaginasNodeValue = object | string | number | boolean | null | undefined;
|
|
1775
|
+
type PaginasNodeRecord = Record<string, PaginasNodeValue>;
|
|
1776
|
+
type MenusNodeRecord = Record<string, object | undefined>;
|
|
1777
|
+
declare function isPaginaComLayout(node: object): node is PaginaFolha;
|
|
1778
|
+
declare function isMenuLeaf(node: object): node is MenuLayoutLeaf;
|
|
1779
|
+
declare const MENUS_LAYOUTCONTEXTO_POR_PAGINA: ReadonlyMap<PaginaFolha, MenuLayoutLeaf>;
|
|
1780
|
+
declare function obterMenuInternoLayoutContexto(pagina: PaginaFolha): MenuLayoutLeaf | undefined;
|
|
1660
1781
|
declare const MENUS_INTERNOS_POR_PAGINA: ReadonlyMap<PaginaFolha, readonly MenuNode[]>;
|
|
1661
1782
|
declare function obterMenuInterno(pagina: PaginaFolha): readonly MenuNode[] | undefined;
|
|
1662
1783
|
declare function resolverMenuInterno(pagina: PaginaFolha): readonly PaginaFolha[] | undefined;
|
|
@@ -1705,4 +1826,4 @@ declare function isRegrasUploadArquivoValidas(regras: RegrasUploadArquivo): regr
|
|
|
1705
1826
|
declare function mimeFromFormato(formato: FormatoUploadArquivo): "image/png" | "image/jpeg" | "image/svg+xml";
|
|
1706
1827
|
declare function acceptFromFormatos(formatos: FormatoUploadArquivo[]): string;
|
|
1707
1828
|
declare function isFormatoImagemBitmap(formato: FormatoUploadArquivo): formato is "png" | "jpg";
|
|
1708
|
-
export { CAPACIDADES, PERMISSOES_ESTADOS, TIPOS_IMAGEM, CtxAcesso, temSudoBurlarCapacidades, IPermissoesEstado, PermissoesEstadoDto, IPermissoesItem, PermissoesItemDto, ItemPermissaoDto, ArvoreItensPermissaoDto, IPermissoesUsuario, PermissoesUsuarioDto, IPermissoesUsuariosHistorico, PermissoesUsuariosHistoricoDto, IArcoAventura, ArcoAventuraDto, IAventura, AventuraDto, IConviteGrupoAventuraPersonagem, ConviteGrupoAventuraPersonagemDto, IGrupoAventura, GrupoAventuraDto, IGrupoAventuraPersonagem, GrupoAventuraPersonagemDto, IRespostaConvite, RespostaConviteDto, IVariavelAmbiente, VariavelAmbienteDto, IConquista, ConquistaDto, ITipoConquista, TipoConquistaDto, IDetalheSessaoAventura, DetalheSessaoAventuraDto, IDetalheSessaoCanonica, DetalheSessaoCanonicaDto, CapituloSessaoCanonica, IDetalheSessaoUnica, DetalheSessaoUnicaDto, IParticipanteSessaoUnica, ParticipanteSessaoUnicaDto, ICoeficienteGanhoEstatisticaClasse, CoeficienteGanhoEstatisticaClasseDto, IGanhoNivelClasse, GanhoNivelClasseDto, DadosDoTipoGanho, DadosGanho_Atributos, DadosGanho_Pericias, DadosGanho_Estatisticas, DadosGanho_Classes, DadosGanho_ValorMaximoAtributo, DadosGanho_PontosHabilidadesEspeciais, DadosGanho_PontosHabilidadesParanormais, DadosGanho_PontosHabilidadeElemental, IGanhoRelativoCoeficienteAtributo, GanhoRelativoCoeficienteAtributoDto, ITipoGanhoNivel, TipoGanhoNivelDto, IGeracao, GeracaoDto, IImagem, ImagemDto, ITipoImagem, TipoImagemDto, IAlcance, AlcanceDto, IAtributo, AtributoDto, ICategoriaRitual, CategoriaRitualDto, ICirculoRitual, CirculoRitualDto, IClasse, ClasseDto, IDuracao, DuracaoDto, IElemento, ElementoDto, IEstatisticaDanificavel, EstatisticaDanificavelDto, IExecucao, ExecucaoDto, IFormatoAlcance, FormatoAlcanceDto, ILinhaEfeito, LinhaEfeitoDto, INivel, NivelDto, INivelComponente, NivelComponenteDto, INivelProficiencia, NivelProficienciaDto, INivelRitual, NivelRitualDto, IPatentePericia, PatentePericiaDto, IPericia, PericiaDto, IProficiencia, ProficienciaDto, ITipoAlvo, TipoAlvoDto, ITipoCategoria, TipoCategoriaDto, ITipoDano, TipoDanoDto, ITipoEfeito, TipoEfeitoDto, ITipoItem, TipoItemDto, ITipoProficiencia, TipoProficienciaDto, ILink, LinkDto, ITipoLink, TipoLinkDto, IDificuldadeSessao, DificuldadeSessaoDto, IEstiloSessaoMestrada, EstiloSessaoMestradaDto, ITipoSessao, TipoSessaoDto, IPerfilAdmin, PerfilAdminDto, IPerfilJogador, PerfilJogadorDto, IPerfilMestre, PerfilMestreDto, IFichaPersonagem, FichaPersonagemDto, ObjetoFicha, DetalheEvolucao, DetalhesExtras, FichaDeJogo, AtributoFicha, PericiaFicha, EstatisticaDanificavelFicha, DetalheFicha, RegistroPericiaLivre, IInformacaoPersonagem, InformacaoPersonagemDto, IPersonagem, PersonagemDto, PersonagemSalaJogoDto, IResumoPersonagemAventura, ResumoPersonagemAventuraDto, ITipoPersonagem, TipoPersonagemDto, IDetalheRascunhoAventura, DetalheRascunhoAventuraDto, IDetalheRascunhoSessaoUnicaCanonica, DetalheRascunhoSessaoUnicaCanonicaDto, IDetalheRascunhoSessaoUnicaNaoCanonica, DetalheRascunhoSessaoUnicaNaoCanonicaDto, IRascunho, RascunhoDto, IEstudo, EstudoDto, IRegistroSessao, RegistroSessaoDto, ISessao, SessaoDto, SessaoDadosGerais, ParticipanteSessao, AuthSession, ICustomizacaoUsuario, CustomizacaoUsuarioDto, IDisponibilidadeUsuario, DisponibilidadeUsuarioDto, ListaDisponibilidadesUsuario, DisponibilidadesDDS, JanelaDisponibilidade, IUsuario, UsuarioDto, SalaDeJogo_Codigo, SalaDeJogoParams, SalaDeJogo_Tipo, SalaDeJogo_Estado, SalaDeJogo_TipoMestre, SalaDeJogo_Mestre, SalaDeJogo_Mestre_Mestrada, SalaDeJogo_Mestre_Inteligente, SalaDeJogo_TipoParticipante, SalaDeJogo_Participante, SalaDeJogo_Participante_Narrador, SalaDeJogo_Participante_Jogador, SalaDeJogo_FUNC_AtualizaParticipanteParams, SalaDeJogoDto, MenuItemNode, MenuGrupoNode, MenuNode, menuItem, menuGrupo, PaginaLike, MenuInternoTree, MenusInternos, Brand, ExtrairParamsDoTemplate, PaginaParamsDoTemplate, PaginaInfo, PaginaTemplate, PaginaDef, PaginaParams, montarHref, pagina, RequiredKeys, ParamsProps, FormatoUploadArquivo, DimensoesImagem, RequireAtLeastOne, RegraTamanhoArquivo, RegraDimensoesImagem, RegraProporcaoImagem, RegrasUploadBase, RegrasUploadImagem, RegrasUploadArquivo, MensagemChatRecebida, SalaChat, SalaChatFront, MensagemChatPayload, SOCKET_AcessoUsuario, SOCKET_UsuarioExistente, TelemetryConnectionInfo, WsEventAudienceUnico, WsEventAudienceMultiplo, WsEventAudience, TelemetryEventLog, TelemetrySnapshot, WsErrorResponse, WsUnauthorizedErrorResponse, WsResult, isWsErrorResponse, isWsUnauthorizedErrorResponse, wsErro, wsUnauthorized, wsMap, wsChain, EventoTipo, EmitDelivery, EventoAuthDefault, EventoEnvia, EventoEmite, EventoEnviaERecebe, EventoSchema, GatewayDef, createGateway, EventosWebSocket, isRecord, getEmitDelivery, WsEmitTarget, WsEmitParams, EventosEmiteMap, EventoEmiteAny, PaletaCores, EstruturaPaginaDefinicao, ConteudoItem, DefinicaoElemento, ListaItem, AventuraEstado, EstadoPendenciaPersonagem, EstadoPendenciaAdministrativaPersonagem, EstadoOcupacaoPersonagem, EstadoSessao, DiaDaSemana, obtemDiaDaSemanaPorExtensoPorDDS, NumeroHora24, NumeroMomento, MomentoFormatado24, MomentoFormatado, CargoExibicaoUsuario, CargosUsuario, ObjetoAutenticacao, ObjetoCache, ObjetoPendeciaPersonagem, TipoVariavelAmbiente, ObjetoEvolucaoCompleto, ObjetoEvolucao, ObjetoGanhosEvolucao, GanhoEstatistica, FormatoMomento, DetalheUtilizacaoRascunho, EstiloSessao, PathTokenPadrao, TituloSessaoInteligente, Capacidade, LISTA_CAPACIDADES, PermissaoItemMinimo, ListaCapacidadesNecessarias, AcessoPagina, Gateways, EventoTipoLiteral, FiltraEventosPorTipo, criarEventosFiltrados, Eventos_Envia, Eventos_Emite, Eventos_EnviaERecebe, DecisaoAcessoPagina, ResolverMenuInterno, Opts, decidirAcessoPagina, decidirAcessoPagina_Rec, PAGINAS, Folhas, PaginaFolha, PaginaTemplateFolha, PaginaDestino, PaginaDestinoPagina, PaginaHrefTemplate, PaginaHref, PaginaDefAny, PaginaTemplateAny, filtrarMenuPorAcesso,
|
|
1829
|
+
export { CAPACIDADES, PERMISSOES_ESTADOS, TIPOS_IMAGEM, CtxAcesso, temSudoBurlarCapacidades, IPermissoesEstado, PermissoesEstadoDto, IPermissoesItem, PermissoesItemDto, ItemPermissaoDto, ArvoreItensPermissaoDto, IPermissoesUsuario, PermissoesUsuarioDto, IPermissoesUsuariosHistorico, PermissoesUsuariosHistoricoDto, IArcoAventura, ArcoAventuraDto, IAventura, AventuraDto, IConviteGrupoAventuraPersonagem, ConviteGrupoAventuraPersonagemDto, IGrupoAventura, GrupoAventuraDto, IGrupoAventuraPersonagem, GrupoAventuraPersonagemDto, IRespostaConvite, RespostaConviteDto, IVariavelAmbiente, VariavelAmbienteDto, IConquista, ConquistaDto, ITipoConquista, TipoConquistaDto, IDetalheSessaoAventura, DetalheSessaoAventuraDto, IDetalheSessaoCanonica, DetalheSessaoCanonicaDto, CapituloSessaoCanonica, IDetalheSessaoUnica, DetalheSessaoUnicaDto, IParticipanteSessaoUnica, ParticipanteSessaoUnicaDto, ICoeficienteGanhoEstatisticaClasse, CoeficienteGanhoEstatisticaClasseDto, IGanhoNivelClasse, GanhoNivelClasseDto, DadosDoTipoGanho, DadosGanho_Atributos, DadosGanho_Pericias, DadosGanho_Estatisticas, DadosGanho_Classes, DadosGanho_ValorMaximoAtributo, DadosGanho_PontosHabilidadesEspeciais, DadosGanho_PontosHabilidadesParanormais, DadosGanho_PontosHabilidadeElemental, IGanhoRelativoCoeficienteAtributo, GanhoRelativoCoeficienteAtributoDto, ITipoGanhoNivel, TipoGanhoNivelDto, IGeracao, GeracaoDto, IImagem, ImagemDto, ITipoImagem, TipoImagemDto, IAlcance, AlcanceDto, IAtributo, AtributoDto, ICategoriaRitual, CategoriaRitualDto, ICirculoRitual, CirculoRitualDto, IClasse, ClasseDto, IDuracao, DuracaoDto, IElemento, ElementoDto, IEstatisticaDanificavel, EstatisticaDanificavelDto, IExecucao, ExecucaoDto, IFormatoAlcance, FormatoAlcanceDto, ILinhaEfeito, LinhaEfeitoDto, INivel, NivelDto, INivelComponente, NivelComponenteDto, INivelProficiencia, NivelProficienciaDto, INivelRitual, NivelRitualDto, IPatentePericia, PatentePericiaDto, IPericia, PericiaDto, IProficiencia, ProficienciaDto, ITipoAlvo, TipoAlvoDto, ITipoCategoria, TipoCategoriaDto, ITipoDano, TipoDanoDto, ITipoEfeito, TipoEfeitoDto, ITipoItem, TipoItemDto, ITipoProficiencia, TipoProficienciaDto, ILink, LinkDto, ITipoLink, TipoLinkDto, IDificuldadeSessao, DificuldadeSessaoDto, IEstiloSessaoMestrada, EstiloSessaoMestradaDto, ITipoSessao, TipoSessaoDto, IPerfilAdmin, PerfilAdminDto, IPerfilJogador, PerfilJogadorDto, IPerfilMestre, PerfilMestreDto, IFichaPersonagem, FichaPersonagemDto, ObjetoFicha, DetalheEvolucao, DetalhesExtras, FichaDeJogo, AtributoFicha, PericiaFicha, EstatisticaDanificavelFicha, DetalheFicha, RegistroPericiaLivre, IInformacaoPersonagem, InformacaoPersonagemDto, IPersonagem, PersonagemDto, PersonagemSalaJogoDto, IResumoPersonagemAventura, ResumoPersonagemAventuraDto, ITipoPersonagem, TipoPersonagemDto, IDetalheRascunhoAventura, DetalheRascunhoAventuraDto, IDetalheRascunhoSessaoUnicaCanonica, DetalheRascunhoSessaoUnicaCanonicaDto, IDetalheRascunhoSessaoUnicaNaoCanonica, DetalheRascunhoSessaoUnicaNaoCanonicaDto, IRascunho, RascunhoDto, IEstudo, EstudoDto, IRegistroSessao, RegistroSessaoDto, ISessao, SessaoDto, SessaoDadosGerais, ParticipanteSessao, AuthSession, ICustomizacaoUsuario, CustomizacaoUsuarioDto, IDisponibilidadeUsuario, DisponibilidadeUsuarioDto, ListaDisponibilidadesUsuario, DisponibilidadesDDS, JanelaDisponibilidade, IUsuario, UsuarioDto, LayoutContextualizadoInicial, SalaDeJogo_Codigo, SalaDeJogoParams, SalaDeJogo_Tipo, SalaDeJogo_Estado, SalaDeJogo_TipoMestre, SalaDeJogo_Mestre, SalaDeJogo_Mestre_Mestrada, SalaDeJogo_Mestre_Inteligente, SalaDeJogo_TipoParticipante, SalaDeJogo_Participante, SalaDeJogo_Participante_Narrador, SalaDeJogo_Participante_Jogador, SalaDeJogo_FUNC_AtualizaParticipanteParams, SalaDeJogoDto, MenuItemNode, MenuGrupoNode, MenuNode, menuItem, menuGrupo, PaginaLike, MenuInternoTree, MenusInternos, PaginaComLayout, HasLayout, ChildKeysByHasLayout, TemFilhos, FilhosDePagina, MenuLayoutLeaf, menuVazio, menuDinamico, MenuLayoutChildren, MenuLayoutNode, RootMenuLayout, MenusInternosLayoutContexto, Brand, ParamValue, ParamsRecord, ExtrairParamsDoTemplate, PaginaParamsDoTemplate, PaginaInfoBase, PaginaInfoComLayoutContextualizado, PaginaInfo, PaginaTemplate, PaginaDef, PaginaParams, montarHref, LimparUndefinedValue, LimparUndefinedRecord, limparUndefined, pagina, paginaComLayoutContextualizado, RequiredKeys, ParamsProps, FormatoUploadArquivo, DimensoesImagem, RequireAtLeastOne, RegraTamanhoArquivo, RegraDimensoesImagem, RegraProporcaoImagem, RegrasUploadBase, RegrasUploadImagem, RegrasUploadArquivo, TipoUpload, MensagemChatRecebida, SalaChat, SalaChatFront, MensagemChatPayload, SOCKET_AcessoUsuario, SOCKET_UsuarioExistente, TelemetryConnectionInfo, WsEventAudienceUnico, WsEventAudienceMultiplo, WsEventAudience, TelemetryEventLog, TelemetrySnapshot, WsErrorResponse, WsUnauthorizedErrorResponse, WsResult, isWsErrorResponse, isWsUnauthorizedErrorResponse, wsErro, wsUnauthorized, wsMap, wsChain, EventoTipo, EmitDelivery, EventoAuthDefault, EventoEnvia, EventoEmite, EventoEnviaERecebe, EventoSchema, GatewayDef, createGateway, EventosWebSocket, isRecord, getEmitDelivery, WsEmitTarget, WsEmitParams, EventosEmiteMap, EventoEmiteAny, PaletaCores, EstruturaPaginaDefinicao, ConteudoItem, DefinicaoElemento, ListaItem, AventuraEstado, EstadoPendenciaPersonagem, EstadoPendenciaAdministrativaPersonagem, EstadoOcupacaoPersonagem, EstadoSessao, DiaDaSemana, obtemDiaDaSemanaPorExtensoPorDDS, NumeroHora24, NumeroMomento, MomentoFormatado24, MomentoFormatado, CargoExibicaoUsuario, CargosUsuario, ObjetoAutenticacao, ObjetoCache, ObjetoPendeciaPersonagem, TipoVariavelAmbiente, ObjetoEvolucaoCompleto, ObjetoEvolucao, ObjetoGanhosEvolucao, GanhoEstatistica, FormatoMomento, DetalheUtilizacaoRascunho, EstiloSessao, PathTokenPadrao, TituloSessaoInteligente, Capacidade, LISTA_CAPACIDADES, PermissaoItemMinimo, ListaCapacidadesNecessarias, AcessoPagina, Gateways, EventoTipoLiteral, FiltraEventosPorTipo, criarEventosFiltrados, Eventos_Envia, Eventos_Emite, Eventos_EnviaERecebe, DecisaoAcessoPagina, ResolverMenuInterno, Opts, decidirAcessoPagina, decidirAcessoPagina_Rec, PAGINAS, Folhas, PaginaFolha, PaginaTemplateFolha, PaginaDestino, PaginaDestinoPagina, PaginaHrefTemplate, PaginaHref, PaginaDefAny, PaginaTemplateAny, filtrarMenuPorAcesso, MENUS_INTERNOS, MENUS_INTERNOS_LAYOUTCONTEXTO, PaginasNodeValue, PaginasNodeRecord, MenusNodeRecord, isPaginaComLayout, isMenuLeaf, MENUS_LAYOUTCONTEXTO_POR_PAGINA, obterMenuInternoLayoutContexto, MENUS_INTERNOS_POR_PAGINA, obterMenuInterno, resolverMenuInterno, ResultadoValidacao, isNumeroInteiroPositivo, isNumeroPositivo, pushErro, validarFormatos, validarTamanho, validarDimensoesDim, validarDimensoesRegra, validarProporcao, validarMaxPixels, validarImagem, validarRegrasUploadArquivo, isRegrasUploadArquivoValidas, mimeFromFormato, acceptFromFormatos, isFormatoImagemBitmap };
|
package/dist/classes.js
CHANGED
|
@@ -85,6 +85,8 @@ var SalaDeJogo_TipoParticipante;
|
|
|
85
85
|
})(SalaDeJogo_TipoParticipante || (SalaDeJogo_TipoParticipante = {}));
|
|
86
86
|
function menuItem(titulo, destino) { return { tipo: 'item', titulo, destino }; }
|
|
87
87
|
function menuGrupo(titulo, itens) { return { tipo: 'grupo', titulo, itens }; }
|
|
88
|
+
function menuVazio() { return { tipo: 'vazio' }; }
|
|
89
|
+
function menuDinamico() { return { tipo: 'dinamico' }; }
|
|
88
90
|
function montarHref(template, params) {
|
|
89
91
|
const out = template.replace(/\[\[\.\.\.([^\]]+)\]\]|\[\.\.\.([^\]]+)\]|\[([^\]]+)\]/g, (_m, optCatchAll, catchAll, single) => {
|
|
90
92
|
const key = (optCatchAll || catchAll || single);
|
|
@@ -103,29 +105,32 @@ function montarHref(template, params) {
|
|
|
103
105
|
}
|
|
104
106
|
if (value == null)
|
|
105
107
|
throw new Error(`PAGINAS.montarHref: "${key}" é obrigatório`);
|
|
108
|
+
if (Array.isArray(value))
|
|
109
|
+
throw new Error(`PAGINAS.montarHref: "${key}" deve ser string (single param)`);
|
|
106
110
|
return encodeURIComponent(String(value));
|
|
107
111
|
});
|
|
108
112
|
const cleaned = out.replace(/\/+/g, '/').replace(/\/$/, '');
|
|
109
113
|
return cleaned === '' ? '/' : cleaned;
|
|
110
114
|
}
|
|
115
|
+
function limparUndefined(obj) {
|
|
116
|
+
const out = {};
|
|
117
|
+
for (const k in obj) {
|
|
118
|
+
if (!Object.prototype.hasOwnProperty.call(obj, k))
|
|
119
|
+
continue;
|
|
120
|
+
const key = k;
|
|
121
|
+
const v = obj[key];
|
|
122
|
+
if (v !== undefined)
|
|
123
|
+
out[key] = v;
|
|
124
|
+
}
|
|
125
|
+
return out;
|
|
126
|
+
}
|
|
111
127
|
function pagina(hrefTemplate, info) {
|
|
112
128
|
const template = hrefTemplate;
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
if (acesso == null && acessoPorMenuInterno == null)
|
|
119
|
-
return { template, hrefTemplate, href: hrefTemplate, label, comCabecalho };
|
|
120
|
-
if (comCabecalho == null && acessoPorMenuInterno == null)
|
|
121
|
-
return { template, hrefTemplate, href: hrefTemplate, label, acesso };
|
|
122
|
-
if (acesso == null)
|
|
123
|
-
return { template, hrefTemplate, href: hrefTemplate, label, comCabecalho, acessoPorMenuInterno };
|
|
124
|
-
if (comCabecalho == null)
|
|
125
|
-
return { template, hrefTemplate, href: hrefTemplate, label, acesso, acessoPorMenuInterno };
|
|
126
|
-
if (acessoPorMenuInterno == null)
|
|
127
|
-
return { template, hrefTemplate, href: hrefTemplate, label, comCabecalho, acesso };
|
|
128
|
-
return { template, hrefTemplate, href: hrefTemplate, label, comCabecalho, acesso, acessoPorMenuInterno };
|
|
129
|
+
return limparUndefined({ template, hrefTemplate, href: hrefTemplate, ...info });
|
|
130
|
+
}
|
|
131
|
+
function paginaComLayoutContextualizado(hrefTemplate, info, layoutContextualizadoInicial) {
|
|
132
|
+
const template = hrefTemplate;
|
|
133
|
+
return limparUndefined({ template, hrefTemplate, href: hrefTemplate, ...info, layoutContextualizadoInicial });
|
|
129
134
|
}
|
|
130
135
|
function isWsErrorResponse(payload) { return !!payload && typeof payload === "object" && payload._wsErro === true; }
|
|
131
136
|
function isWsUnauthorizedErrorResponse(payload) { return isWsErrorResponse(payload) && payload.code === "UNAUTHORIZED"; }
|
|
@@ -381,55 +386,59 @@ const PAGINAS = {
|
|
|
381
386
|
home: pagina('/', { label: 'Página Inicial', comCabecalho: true }),
|
|
382
387
|
acessar: pagina('/acessar', { label: 'Acessar' }),
|
|
383
388
|
cadastrar: pagina('/cadastrar', { label: 'Cadastrar' }),
|
|
384
|
-
aventura:
|
|
385
|
-
aventuras:
|
|
389
|
+
aventura: paginaComLayoutContextualizado('/aventura/[id]', { label: 'Aventura' }, { titulo: 'TROCAR', proporcaoConteudo: 87 }),
|
|
390
|
+
aventuras: paginaComLayoutContextualizado('/aventuras', { label: 'Aventuras' }, { titulo: 'Assistir Aventuras', proporcaoConteudo: 80 }),
|
|
386
391
|
definicoes: pagina('/definicoes/[[...slug]]', { label: 'Definições', comCabecalho: true }),
|
|
387
392
|
dicas: pagina('/dicas/[[...slug]]', { label: 'Dicas', comCabecalho: true }),
|
|
388
393
|
jogo: {
|
|
389
|
-
...
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
394
|
+
...paginaComLayoutContextualizado('/jogo', { label: 'Jogo', acesso: { autenticado: true }, acessoPorMenuInterno: true }, { titulo: 'Página de Jogo', proporcaoConteudo: 84 }),
|
|
395
|
+
admin: {
|
|
396
|
+
gerenciarSalas: paginaComLayoutContextualizado('/jogo/admin/gerenciar-salas', { label: 'Admin - Gerenciar Salas', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__ACOMPANHAMENTO__SESSAO_DE_JOGO] } }, { titulo: 'Gerenciar Salas', proporcaoConteudo: 84 }),
|
|
397
|
+
},
|
|
398
|
+
mestre: {
|
|
399
|
+
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 }),
|
|
400
|
+
},
|
|
401
|
+
jogador: paginaComLayoutContextualizado('/jogo/jogador', { label: 'Jogo - Jogador', acesso: { autenticado: true } }, { titulo: 'Buscando Salas', proporcaoConteudo: 84 }),
|
|
393
402
|
emJogo: pagina('/jogo/em-jogo', { label: 'Em Jogo', acesso: { autenticado: true } }),
|
|
394
403
|
},
|
|
395
404
|
linhaDoTempo: pagina('/linha-do-tempo', { label: 'Linha do Tempo' }),
|
|
396
405
|
minhaPagina: pagina('/minha-pagina', { label: 'Minha Página', acesso: { autenticado: true } }),
|
|
397
406
|
minhasPaginas: {
|
|
398
407
|
admin: {
|
|
399
|
-
...
|
|
400
|
-
aventura:
|
|
401
|
-
aventuras:
|
|
402
|
-
dashboardWs:
|
|
403
|
-
sessao:
|
|
404
|
-
|
|
405
|
-
variaveisAmbiente:
|
|
406
|
-
dashboardPermissoes:
|
|
407
|
-
dashboardPermissoesUsuarios:
|
|
408
|
-
},
|
|
409
|
-
jogador: {
|
|
410
|
-
...pagina('/minhas-paginas/jogador', { label: 'Área do Jogador', acesso: { autenticado: true }, acessoPorMenuInterno: true }),
|
|
411
|
-
meusPersonagens: pagina('/minhas-paginas/jogador/meus-personagens', { label: 'Meus Personagens', acesso: { autenticado: true } }),
|
|
408
|
+
...paginaComLayoutContextualizado('/minhas-paginas/admin', { label: 'Administração', acesso: { autenticado: true }, acessoPorMenuInterno: true }, { titulo: 'Página de Administrador', proporcaoConteudo: 84 }),
|
|
409
|
+
aventura: paginaComLayoutContextualizado('/minhas-paginas/admin/aventura/[id]', { label: 'Admin - Aventura', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__GERENCIAMENTO__AVENTURAS_E_SESSOES] } }, { titulo: 'Gerenciamento de Aventura', proporcaoConteudo: 84 }),
|
|
410
|
+
aventuras: paginaComLayoutContextualizado('/minhas-paginas/admin/aventuras', { label: 'Admin - Aventuras', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__GERENCIAMENTO__AVENTURAS_E_SESSOES] } }, { titulo: 'Gerenciamento de Aventuras', proporcaoConteudo: 84 }),
|
|
411
|
+
dashboardWs: paginaComLayoutContextualizado('/minhas-paginas/admin/dashboard-ws', { label: 'Admin - Dashboard WS', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__ACOMPANHAMENTO__WEBSOCKET] } }, { titulo: 'Dashboard: WebSocket', proporcaoConteudo: 84 }),
|
|
412
|
+
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 }),
|
|
413
|
+
uploadRecursosInternos: paginaComLayoutContextualizado('/minhas-paginas/admin/uploads', { label: 'Admin - Uploads', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__GERENCIAMENTO__UPLOAD_RECURSOS_INTERNOS] } }, { titulo: 'Upload de Recursos Internos', proporcaoConteudo: 84 }),
|
|
414
|
+
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 }),
|
|
415
|
+
dashboardPermissoes: paginaComLayoutContextualizado('/minhas-paginas/admin/permissoes', { label: 'Admin - Permissões', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__PERMISSOES__CRIACAO_CAPACIDADES] } }, { titulo: 'Gerenciamento de Permissões', proporcaoConteudo: 84 }),
|
|
416
|
+
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 }),
|
|
412
417
|
},
|
|
413
418
|
mestre: {
|
|
414
|
-
...
|
|
415
|
-
aventura:
|
|
416
|
-
aventuras:
|
|
417
|
-
sessoesUnicas:
|
|
418
|
-
personagens:
|
|
419
|
+
...paginaComLayoutContextualizado('/minhas-paginas/mestre', { label: 'Área do Mestre', acesso: { autenticado: true }, acessoPorMenuInterno: true }, { titulo: 'Página de Mestre', proporcaoConteudo: 84 }),
|
|
420
|
+
aventura: paginaComLayoutContextualizado('/minhas-paginas/mestre/aventura/[id]', { label: 'Mestre - Aventura', acesso: { autenticado: true } }, { titulo: 'TROCAR', proporcaoConteudo: 84 }),
|
|
421
|
+
aventuras: paginaComLayoutContextualizado('/minhas-paginas/mestre/aventuras', { label: 'Mestre - Aventuras', acesso: { autenticado: true } }, { titulo: 'Minhas Aventuras', proporcaoConteudo: 84 }),
|
|
422
|
+
sessoesUnicas: paginaComLayoutContextualizado('/minhas-paginas/mestre/sessoes-unicas', { label: 'Mestre - Sessões Únicas', acesso: { autenticado: true } }, { titulo: 'Minhas Sessões Únicas', proporcaoConteudo: 84 }),
|
|
423
|
+
personagens: paginaComLayoutContextualizado('/minhas-paginas/mestre/personagens', { label: 'Mestre - Personagens', acesso: { autenticado: true } }, { titulo: 'Meus Personagens de Mestre', proporcaoConteudo: 84 }),
|
|
419
424
|
rascunhos: {
|
|
420
|
-
aventuras:
|
|
421
|
-
sessoesUnicas:
|
|
425
|
+
aventuras: paginaComLayoutContextualizado('/minhas-paginas/mestre/rascunhos/aventuras', { label: 'Rascunhos - Aventuras', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__RASCUNHO_AVENTURA] } }, { titulo: 'Meus Rascunhos de Aventuras', proporcaoConteudo: 84 }),
|
|
426
|
+
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 }),
|
|
422
427
|
},
|
|
423
|
-
sessao:
|
|
428
|
+
sessao: paginaComLayoutContextualizado('/minhas-paginas/mestre/sessao/[id]', { label: 'Mestre - Sessão', acesso: { autenticado: true } }, { titulo: 'TROCAR', proporcaoConteudo: 84 }),
|
|
424
429
|
},
|
|
425
430
|
artista: {
|
|
426
|
-
...
|
|
427
|
-
minhasImagens:
|
|
428
|
-
adicionarImagem:
|
|
431
|
+
...paginaComLayoutContextualizado('/minhas-paginas/artista', { label: 'Área do Artista', acesso: { autenticado: true }, acessoPorMenuInterno: true }, { titulo: 'Página de Artista', proporcaoConteudo: 84 }),
|
|
432
|
+
minhasImagens: paginaComLayoutContextualizado('/minhas-paginas/artista/minhas-imagens', { label: 'Minhas Imagens', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ARTISTA__CRIACAO__UPLOAD_IMAGEM] } }, { titulo: 'Minhas Imagens', proporcaoConteudo: 84 }),
|
|
433
|
+
adicionarImagem: paginaComLayoutContextualizado('/minhas-paginas/artista/adicionar-imagem', { label: 'Adicionar Imagem', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ARTISTA__CRIACAO__UPLOAD_IMAGEM] } }, { titulo: 'Adicionar Nova Imagem', proporcaoConteudo: 84 }),
|
|
429
434
|
},
|
|
430
|
-
|
|
435
|
+
jogador: {
|
|
436
|
+
...paginaComLayoutContextualizado('/minhas-paginas/jogador', { label: 'Área do Jogador', acesso: { autenticado: true }, acessoPorMenuInterno: true }, { titulo: 'Página de Jogador', proporcaoConteudo: 84 }),
|
|
437
|
+
meusPersonagens: paginaComLayoutContextualizado('/minhas-paginas/jogador/meus-personagens', { label: 'Meus Personagens', acesso: { autenticado: true } }, { titulo: 'Meus Personagens', proporcaoConteudo: 84 }),
|
|
438
|
+
},
|
|
439
|
+
minhasDisponibilidades: paginaComLayoutContextualizado('/minhas-paginas/minhas-disponibilidades', { label: 'Minhas Disponibilidades', acesso: { autenticado: true } }, { titulo: 'Minhas Disponibilidades', proporcaoConteudo: 100 }),
|
|
431
440
|
},
|
|
432
|
-
personagens:
|
|
441
|
+
personagens: paginaComLayoutContextualizado('/personagens', { label: 'Personagens', acesso: { autenticado: true } }, { titulo: 'Meus Personagens', proporcaoConteudo: 84 }),
|
|
433
442
|
sessoes: pagina('/sessoes', { label: 'Sessões' }),
|
|
434
443
|
sessaoAovivo: pagina('/sessao-aovivo', { label: 'Sessão Ao Vivo', acesso: { autenticado: true } }),
|
|
435
444
|
sessao: pagina('/sessao/[id]', { label: 'Sessão' }),
|
|
@@ -449,34 +458,22 @@ function filtrarMenuPorAcesso(nodes, ctx) {
|
|
|
449
458
|
}
|
|
450
459
|
return out;
|
|
451
460
|
}
|
|
452
|
-
/*
|
|
453
|
-
MENU_PRINCIPAL é o menu “final” (view-model) já pronto pra ser filtrado + renderizado.
|
|
454
|
-
*/
|
|
455
|
-
const MENU_PRINCIPAL = [
|
|
456
|
-
menuGrupo('Minhas Páginas', [
|
|
457
|
-
menuItem('Administrador', { pagina: PAGINAS.minhasPaginas.admin }),
|
|
458
|
-
menuItem('Jogador', { pagina: PAGINAS.minhasPaginas.jogador }),
|
|
459
|
-
menuItem('Disponibilidades', { pagina: PAGINAS.minhasPaginas.minhasDisponibilidades }),
|
|
460
|
-
menuItem('Mestre', { pagina: PAGINAS.minhasPaginas.mestre }),
|
|
461
|
-
menuItem('Artista', { pagina: PAGINAS.minhasPaginas.artista }),
|
|
462
|
-
]),
|
|
463
|
-
menuItem('Personagens', { pagina: PAGINAS.personagens }),
|
|
464
|
-
menuItem('Jogue Agora!', { pagina: PAGINAS.jogo }),
|
|
465
|
-
menuItem('Assistir', { pagina: PAGINAS.aventuras }),
|
|
466
|
-
menuItem('Sessão Ao Vivo', { pagina: PAGINAS.sessaoAovivo }),
|
|
467
|
-
menuItem('Hall', { pagina: PAGINAS.minhaPagina }),
|
|
468
|
-
menuItem('Definições', { pagina: PAGINAS.definicoes, params: { slug: [] } }),
|
|
469
|
-
menuItem('Dicas', { pagina: PAGINAS.dicas, params: { slug: [] } }),
|
|
470
|
-
];
|
|
471
|
-
/*
|
|
472
|
-
MENUS_INTERNOS: árvore tipada e “descobrível” (DX).
|
|
473
|
-
Note que isso NÃO é “páginas /admin/*”, e sim o menu interno “da página admin”.
|
|
474
|
-
*/
|
|
475
461
|
const MENUS_INTERNOS = {
|
|
476
462
|
PAGINAS: {
|
|
463
|
+
jogo: [
|
|
464
|
+
menuGrupo('Administrador', [
|
|
465
|
+
menuItem('Salas', { pagina: PAGINAS.jogo.admin.gerenciarSalas }),
|
|
466
|
+
]),
|
|
467
|
+
menuGrupo('Mestre', [
|
|
468
|
+
menuItem('Sessões', { pagina: PAGINAS.jogo.mestre.sessoesMestre }),
|
|
469
|
+
]),
|
|
470
|
+
menuGrupo('Jogador', [
|
|
471
|
+
menuItem('Início', { pagina: PAGINAS.jogo.jogador }),
|
|
472
|
+
]),
|
|
473
|
+
],
|
|
477
474
|
minhasPaginas: {
|
|
478
475
|
admin: [
|
|
479
|
-
menuItem('Upload de Recursos Internos', { pagina: PAGINAS.minhasPaginas.admin.
|
|
476
|
+
menuItem('Upload de Recursos Internos', { pagina: PAGINAS.minhasPaginas.admin.uploadRecursosInternos }),
|
|
480
477
|
menuItem('Variáveis de Ambiente', { pagina: PAGINAS.minhasPaginas.admin.variaveisAmbiente }),
|
|
481
478
|
menuItem('Aventuras', { pagina: PAGINAS.minhasPaginas.admin.aventuras }),
|
|
482
479
|
menuItem('Dashboard WebSocket', { pagina: PAGINAS.minhasPaginas.admin.dashboardWs }),
|
|
@@ -503,59 +500,136 @@ const MENUS_INTERNOS = {
|
|
|
503
500
|
]),
|
|
504
501
|
]),
|
|
505
502
|
],
|
|
503
|
+
artista: [
|
|
504
|
+
menuItem('Minhas Imagens', { pagina: PAGINAS.minhasPaginas.artista.minhasImagens }),
|
|
505
|
+
menuItem('Adicionar Nova Imagem', { pagina: PAGINAS.minhasPaginas.artista.adicionarImagem }),
|
|
506
|
+
],
|
|
506
507
|
jogador: [
|
|
507
508
|
menuGrupo('Jogador', [
|
|
508
509
|
menuItem('Início', { pagina: PAGINAS.minhasPaginas.jogador }),
|
|
509
510
|
menuItem('Meus Personagens', { pagina: PAGINAS.minhasPaginas.jogador.meusPersonagens }),
|
|
510
|
-
])
|
|
511
|
-
],
|
|
512
|
-
artista: [
|
|
513
|
-
menuItem('Minhas Imagens', { pagina: PAGINAS.minhasPaginas.artista.minhasImagens }),
|
|
514
|
-
menuItem('Adicionar Nova Imagem', { pagina: PAGINAS.minhasPaginas.artista.adicionarImagem }),
|
|
511
|
+
]),
|
|
515
512
|
],
|
|
516
513
|
},
|
|
517
|
-
jogo: [
|
|
518
|
-
menuGrupo('Administrador', [
|
|
519
|
-
menuItem('Salas', { pagina: PAGINAS.jogo.admin.gerenciarSalas }),
|
|
520
|
-
]),
|
|
521
|
-
menuGrupo('Mestre', [
|
|
522
|
-
menuItem('Sessões', { pagina: PAGINAS.jogo.mestre.sessoesMestre }),
|
|
523
|
-
]),
|
|
524
|
-
menuGrupo('Jogador', [
|
|
525
|
-
// aqui você aponta para páginas reais do Next que existam no PAGINAS
|
|
526
|
-
menuItem('Início', { pagina: PAGINAS.jogo.jogador }),
|
|
527
|
-
// se você realmente tem essas rotas, elas precisam existir em PAGINAS também:
|
|
528
|
-
// menuItem('Minhas Sessões', { pagina: PAGINAS.jogo.jogador.sessoesJogador }),
|
|
529
|
-
// menuItem('Modo Individual', { pagina: PAGINAS.jogo.jogador.individual }),
|
|
530
|
-
// menuItem('Teste', { pagina: PAGINAS.jogo.jogador.teste }),
|
|
531
|
-
]),
|
|
532
|
-
],
|
|
533
514
|
},
|
|
534
515
|
};
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
516
|
+
const MENUS_INTERNOS_LAYOUTCONTEXTO = {
|
|
517
|
+
PAGINAS: {
|
|
518
|
+
aventura: menuDinamico(),
|
|
519
|
+
aventuras: menuDinamico(),
|
|
520
|
+
jogo: {
|
|
521
|
+
menu: MENUS_INTERNOS.PAGINAS.jogo,
|
|
522
|
+
admin: {
|
|
523
|
+
gerenciarSalas: MENUS_INTERNOS.PAGINAS.jogo,
|
|
524
|
+
},
|
|
525
|
+
mestre: {
|
|
526
|
+
sessoesMestre: MENUS_INTERNOS.PAGINAS.jogo,
|
|
527
|
+
},
|
|
528
|
+
jogador: MENUS_INTERNOS.PAGINAS.jogo,
|
|
529
|
+
},
|
|
530
|
+
minhasPaginas: {
|
|
531
|
+
admin: {
|
|
532
|
+
menu: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
533
|
+
aventura: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
534
|
+
aventuras: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
535
|
+
dashboardWs: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
536
|
+
sessao: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
537
|
+
uploadRecursosInternos: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
538
|
+
variaveisAmbiente: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
539
|
+
dashboardPermissoes: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
540
|
+
dashboardPermissoesUsuarios: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
541
|
+
},
|
|
542
|
+
jogador: {
|
|
543
|
+
menu: MENUS_INTERNOS.PAGINAS.minhasPaginas.jogador,
|
|
544
|
+
meusPersonagens: MENUS_INTERNOS.PAGINAS.minhasPaginas.jogador,
|
|
545
|
+
},
|
|
546
|
+
mestre: {
|
|
547
|
+
menu: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
|
|
548
|
+
aventura: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
|
|
549
|
+
aventuras: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
|
|
550
|
+
sessoesUnicas: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
|
|
551
|
+
personagens: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
|
|
552
|
+
rascunhos: {
|
|
553
|
+
aventuras: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
|
|
554
|
+
sessoesUnicas: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
|
|
555
|
+
},
|
|
556
|
+
sessao: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
|
|
557
|
+
},
|
|
558
|
+
artista: {
|
|
559
|
+
menu: MENUS_INTERNOS.PAGINAS.minhasPaginas.artista,
|
|
560
|
+
minhasImagens: MENUS_INTERNOS.PAGINAS.minhasPaginas.artista,
|
|
561
|
+
adicionarImagem: MENUS_INTERNOS.PAGINAS.minhasPaginas.artista,
|
|
562
|
+
},
|
|
563
|
+
minhasDisponibilidades: menuVazio(),
|
|
564
|
+
},
|
|
565
|
+
personagens: menuDinamico(),
|
|
566
|
+
},
|
|
567
|
+
};
|
|
568
|
+
function isPaginaComLayout(node) { return 'layoutContextualizadoInicial' in node && 'template' in node; }
|
|
569
|
+
function isMenuLeaf(node) {
|
|
570
|
+
if (Array.isArray(node))
|
|
571
|
+
return true;
|
|
572
|
+
if ('tipo' in node)
|
|
573
|
+
return true;
|
|
574
|
+
return false;
|
|
575
|
+
}
|
|
576
|
+
const MENUS_LAYOUTCONTEXTO_POR_PAGINA = (() => {
|
|
577
|
+
const out = new Map();
|
|
578
|
+
const rec = (paginasNode, menusNode) => {
|
|
579
|
+
if (isMenuLeaf(menusNode)) {
|
|
580
|
+
if (isPaginaComLayout(paginasNode))
|
|
581
|
+
out.set(paginasNode, menusNode);
|
|
582
|
+
return;
|
|
583
|
+
}
|
|
584
|
+
const menusObj = menusNode;
|
|
585
|
+
const paginasObj = paginasNode;
|
|
586
|
+
for (const k of Object.keys(menusObj)) {
|
|
587
|
+
if (k === 'menu')
|
|
588
|
+
continue;
|
|
589
|
+
const nextMenus = menusObj[k];
|
|
590
|
+
if (!nextMenus)
|
|
591
|
+
continue;
|
|
592
|
+
const nextPaginas = paginasObj[k];
|
|
593
|
+
if (!nextPaginas || typeof nextPaginas !== 'object')
|
|
594
|
+
continue;
|
|
595
|
+
rec(nextPaginas, nextMenus);
|
|
596
|
+
}
|
|
597
|
+
};
|
|
598
|
+
rec(PAGINAS, MENUS_INTERNOS_LAYOUTCONTEXTO.PAGINAS);
|
|
599
|
+
return out;
|
|
600
|
+
})();
|
|
601
|
+
function obterMenuInternoLayoutContexto(pagina) {
|
|
602
|
+
return MENUS_LAYOUTCONTEXTO_POR_PAGINA.get(pagina);
|
|
603
|
+
}
|
|
539
604
|
const MENUS_INTERNOS_POR_PAGINA = (() => {
|
|
540
605
|
const out = new Map();
|
|
606
|
+
function isObject(v) { return typeof v === 'object' && v !== null; }
|
|
607
|
+
function hasTemplate(v) { return isObject(v) && 'template' in v; }
|
|
608
|
+
function getKey(v, k) {
|
|
609
|
+
if (!isObject(v))
|
|
610
|
+
return undefined;
|
|
611
|
+
return v[k];
|
|
612
|
+
}
|
|
541
613
|
const rec = (paginasNode, menusNode) => {
|
|
542
614
|
if (Array.isArray(menusNode)) {
|
|
543
|
-
if (paginasNode
|
|
615
|
+
if (hasTemplate(paginasNode))
|
|
544
616
|
out.set(paginasNode, menusNode);
|
|
545
617
|
return;
|
|
546
618
|
}
|
|
547
|
-
if (!menusNode
|
|
619
|
+
if (!isObject(menusNode))
|
|
548
620
|
return;
|
|
549
621
|
for (const k of Object.keys(menusNode)) {
|
|
550
|
-
const nextPaginas = paginasNode
|
|
551
|
-
const nextMenus = menusNode
|
|
552
|
-
rec(nextPaginas, nextMenus);
|
|
622
|
+
const nextPaginas = getKey(paginasNode, k);
|
|
623
|
+
const nextMenus = getKey(menusNode, k);
|
|
624
|
+
rec(nextPaginas ?? undefined, nextMenus ?? undefined);
|
|
553
625
|
}
|
|
554
626
|
};
|
|
555
627
|
rec(PAGINAS, MENUS_INTERNOS.PAGINAS);
|
|
556
628
|
return out;
|
|
557
629
|
})();
|
|
558
|
-
function obterMenuInterno(pagina) {
|
|
630
|
+
function obterMenuInterno(pagina) {
|
|
631
|
+
return MENUS_INTERNOS_POR_PAGINA.get(pagina);
|
|
632
|
+
}
|
|
559
633
|
function resolverMenuInterno(pagina) {
|
|
560
634
|
const nodes = obterMenuInterno(pagina);
|
|
561
635
|
if (!nodes)
|
|
@@ -681,4 +755,4 @@ function acceptFromFormatos(formatos) {
|
|
|
681
755
|
return Array.from(new Set(mimes)).join(',');
|
|
682
756
|
}
|
|
683
757
|
function isFormatoImagemBitmap(formato) { return formato === 'png' || formato === 'jpg'; }
|
|
684
|
-
export { CAPACIDADES, PERMISSOES_ESTADOS, TIPOS_IMAGEM, temSudoBurlarCapacidades, AuthSession, SalaDeJogo_Tipo, SalaDeJogo_Estado, SalaDeJogo_TipoMestre, SalaDeJogo_TipoParticipante, menuItem, menuGrupo, montarHref, pagina, isWsErrorResponse, isWsUnauthorizedErrorResponse, wsErro, wsUnauthorized, wsMap, wsChain, createGateway, EventosWebSocket, isRecord, getEmitDelivery, AventuraEstado, EstadoPendenciaPersonagem, EstadoPendenciaAdministrativaPersonagem, EstadoOcupacaoPersonagem, EstadoSessao, DiaDaSemana, obtemDiaDaSemanaPorExtensoPorDDS, CargoExibicaoUsuario, FormatoMomento, EstiloSessao, PathTokenPadrao, LISTA_CAPACIDADES, criarEventosFiltrados, Eventos_Envia, Eventos_Emite, Eventos_EnviaERecebe, decidirAcessoPagina, decidirAcessoPagina_Rec, PAGINAS, filtrarMenuPorAcesso,
|
|
758
|
+
export { CAPACIDADES, PERMISSOES_ESTADOS, TIPOS_IMAGEM, temSudoBurlarCapacidades, AuthSession, SalaDeJogo_Tipo, SalaDeJogo_Estado, SalaDeJogo_TipoMestre, SalaDeJogo_TipoParticipante, menuItem, menuGrupo, menuVazio, menuDinamico, montarHref, limparUndefined, pagina, paginaComLayoutContextualizado, isWsErrorResponse, isWsUnauthorizedErrorResponse, wsErro, wsUnauthorized, wsMap, wsChain, createGateway, EventosWebSocket, isRecord, getEmitDelivery, AventuraEstado, EstadoPendenciaPersonagem, EstadoPendenciaAdministrativaPersonagem, EstadoOcupacaoPersonagem, EstadoSessao, DiaDaSemana, obtemDiaDaSemanaPorExtensoPorDDS, CargoExibicaoUsuario, FormatoMomento, EstiloSessao, PathTokenPadrao, LISTA_CAPACIDADES, criarEventosFiltrados, Eventos_Envia, Eventos_Emite, Eventos_EnviaERecebe, decidirAcessoPagina, decidirAcessoPagina_Rec, PAGINAS, filtrarMenuPorAcesso, MENUS_INTERNOS, MENUS_INTERNOS_LAYOUTCONTEXTO, isPaginaComLayout, isMenuLeaf, MENUS_LAYOUTCONTEXTO_POR_PAGINA, obterMenuInternoLayoutContexto, MENUS_INTERNOS_POR_PAGINA, obterMenuInterno, resolverMenuInterno, isNumeroInteiroPositivo, isNumeroPositivo, pushErro, validarFormatos, validarTamanho, validarDimensoesDim, validarDimensoesRegra, validarProporcao, validarMaxPixels, validarImagem, validarRegrasUploadArquivo, isRegrasUploadArquivoValidas, mimeFromFormato, acceptFromFormatos, isFormatoImagemBitmap };
|