@trismegisto/spine 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/LICENSE +56 -0
  2. package/README.md +207 -0
  3. package/fesm2022/trismegisto-spine-audit.mjs +1299 -0
  4. package/fesm2022/trismegisto-spine-audit.mjs.map +1 -0
  5. package/fesm2022/trismegisto-spine-auto-service-auto-service-audit.component-CCiz-q8o.mjs +37 -0
  6. package/fesm2022/trismegisto-spine-auto-service-auto-service-audit.component-CCiz-q8o.mjs.map +1 -0
  7. package/fesm2022/trismegisto-spine-auto-service-auto-service-client-picker.component-Z0wCANF6.mjs +51 -0
  8. package/fesm2022/trismegisto-spine-auto-service-auto-service-client-picker.component-Z0wCANF6.mjs.map +1 -0
  9. package/fesm2022/trismegisto-spine-auto-service-auto-service-client.component-BYkUOwWL.mjs +595 -0
  10. package/fesm2022/trismegisto-spine-auto-service-auto-service-client.component-BYkUOwWL.mjs.map +1 -0
  11. package/fesm2022/trismegisto-spine-auto-service-auto-service-groups.component-CqIVe2LU.mjs +357 -0
  12. package/fesm2022/trismegisto-spine-auto-service-auto-service-groups.component-CqIVe2LU.mjs.map +1 -0
  13. package/fesm2022/trismegisto-spine-auto-service-auto-service.component-B5tyJ2zY.mjs +477 -0
  14. package/fesm2022/trismegisto-spine-auto-service-auto-service.component-B5tyJ2zY.mjs.map +1 -0
  15. package/fesm2022/trismegisto-spine-auto-service-home.component-vl3BPFnk.mjs +238 -0
  16. package/fesm2022/trismegisto-spine-auto-service-home.component-vl3BPFnk.mjs.map +1 -0
  17. package/fesm2022/trismegisto-spine-auto-service.mjs +154 -0
  18. package/fesm2022/trismegisto-spine-auto-service.mjs.map +1 -0
  19. package/fesm2022/trismegisto-spine-graphql.mjs +347 -0
  20. package/fesm2022/trismegisto-spine-graphql.mjs.map +1 -0
  21. package/fesm2022/trismegisto-spine-layout.mjs +2848 -0
  22. package/fesm2022/trismegisto-spine-layout.mjs.map +1 -0
  23. package/fesm2022/trismegisto-spine-modal.mjs +141 -0
  24. package/fesm2022/trismegisto-spine-modal.mjs.map +1 -0
  25. package/fesm2022/trismegisto-spine-notification.mjs +122 -0
  26. package/fesm2022/trismegisto-spine-notification.mjs.map +1 -0
  27. package/fesm2022/trismegisto-spine-routing.mjs +398 -0
  28. package/fesm2022/trismegisto-spine-routing.mjs.map +1 -0
  29. package/fesm2022/trismegisto-spine-shell.mjs +409 -0
  30. package/fesm2022/trismegisto-spine-shell.mjs.map +1 -0
  31. package/fesm2022/trismegisto-spine-side-panel.mjs +142 -0
  32. package/fesm2022/trismegisto-spine-side-panel.mjs.map +1 -0
  33. package/fesm2022/trismegisto-spine.mjs +2574 -0
  34. package/fesm2022/trismegisto-spine.mjs.map +1 -0
  35. package/package.json +94 -0
  36. package/types/trismegisto-spine-audit.d.ts +948 -0
  37. package/types/trismegisto-spine-audit.d.ts.map +1 -0
  38. package/types/trismegisto-spine-auto-service.d.ts +110 -0
  39. package/types/trismegisto-spine-auto-service.d.ts.map +1 -0
  40. package/types/trismegisto-spine-graphql.d.ts +72 -0
  41. package/types/trismegisto-spine-graphql.d.ts.map +1 -0
  42. package/types/trismegisto-spine-layout.d.ts +1054 -0
  43. package/types/trismegisto-spine-layout.d.ts.map +1 -0
  44. package/types/trismegisto-spine-modal.d.ts +68 -0
  45. package/types/trismegisto-spine-modal.d.ts.map +1 -0
  46. package/types/trismegisto-spine-notification.d.ts +62 -0
  47. package/types/trismegisto-spine-notification.d.ts.map +1 -0
  48. package/types/trismegisto-spine-routing.d.ts +205 -0
  49. package/types/trismegisto-spine-routing.d.ts.map +1 -0
  50. package/types/trismegisto-spine-shell.d.ts +143 -0
  51. package/types/trismegisto-spine-shell.d.ts.map +1 -0
  52. package/types/trismegisto-spine-side-panel.d.ts +66 -0
  53. package/types/trismegisto-spine-side-panel.d.ts.map +1 -0
  54. package/types/trismegisto-spine.d.ts +1161 -0
  55. package/types/trismegisto-spine.d.ts.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trismegisto-spine-layout.d.ts","sources":["../../../projects/ui/layout/src/onboarding/onboarding.service.ts","../../../projects/ui/layout/src/news/news.service.ts","../../../projects/ui/layout/src/shortcuts/shortcut.service.ts","../../../projects/ui/layout/src/workspace/spine-workspace-nav.service.ts","../../../projects/ui/layout/src/layout.component.ts","../../../projects/ui/layout/src/header/header.component.ts","../../../projects/ui/layout/src/header/app-launcher.component.ts","../../../projects/ui/layout/src/header/brand.component.ts","../../../projects/ui/layout/src/brand.token.ts","../../../projects/ui/layout/src/sidebar/sidebar.component.ts","../../../projects/ui/layout/src/connection/connection-banner.component.ts","../../../projects/ui/layout/src/onboarding/onboarding-overlay.component.ts","../../../projects/ui/layout/src/shortcuts/shortcuts-cheatsheet.component.ts","../../../projects/ui/layout/src/settings/settings.service.ts","../../../projects/ui/layout/src/settings/settings-panel.component.ts","../../../projects/ui/layout/src/settings/app-tokens.service.ts","../../../projects/ui/layout/src/docs/docs.service.ts","../../../projects/ui/layout/src/news/news.component.ts","../../../projects/ui/layout/src/docs/docs-modal.component.ts","../../../projects/ui/layout/src/docs/markdown.component.ts"],"mappings":"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","names":[]}
@@ -0,0 +1,68 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Type, OnInit, ChangeDetectorRef } from '@angular/core';
3
+ import { HermesLoadingState, ModalSize } from '@trismegisto/angular';
4
+ import { Observable } from 'rxjs';
5
+
6
+ interface ModalConfig<TData = any> {
7
+ title?: string;
8
+ size?: 'sm' | 'md' | 'lg' | 'xl';
9
+ closable?: boolean;
10
+ text?: string;
11
+ component?: Type<ModalContent>;
12
+ data?: TData;
13
+ showActions?: boolean;
14
+ }
15
+ interface ModalContent<TResult = any> {
16
+ getResult(): TResult;
17
+ isValid?(): boolean;
18
+ }
19
+
20
+ declare class ModalService {
21
+ private _visible;
22
+ readonly visible$: Observable<boolean>;
23
+ private _state;
24
+ readonly state$: Observable<HermesLoadingState>;
25
+ private _config;
26
+ get config(): ModalConfig | null;
27
+ private _result$;
28
+ open<TResult = any, TData = any>(config: ModalConfig<TData>): Observable<TResult | null>;
29
+ confirm(result: any): void;
30
+ close(): void;
31
+ setState(state: HermesLoadingState): void;
32
+ private dismiss;
33
+ static ɵfac: i0.ɵɵFactoryDeclaration<ModalService, never>;
34
+ static ɵprov: i0.ɵɵInjectableDeclaration<ModalService>;
35
+ }
36
+
37
+ /** `ModalConfig.size` manteve os valores do spine antigo (sm/md/lg/xl) por compatibilidade
38
+ * de API com quem já chama `modalService.open(...)`; o DS novo só tem 3 tamanhos. */
39
+ declare function toHermesSize(size: ModalConfig['size']): ModalSize;
40
+ declare class ModalComponent implements OnInit {
41
+ private modalService;
42
+ private cdr;
43
+ /** Rótulos dos botões padrão, do catálogo do Hermes (pt-BR/en/es). */
44
+ protected readonly dialogText: {
45
+ confirm: string;
46
+ cancel: string;
47
+ };
48
+ private content;
49
+ visible: boolean;
50
+ config: ModalConfig | null;
51
+ state: HermesLoadingState;
52
+ protected readonly HermesLoadingState: typeof HermesLoadingState;
53
+ protected readonly toHermesSize: typeof toHermesSize;
54
+ private contentRef;
55
+ constructor(modalService: ModalService, cdr: ChangeDetectorRef);
56
+ ngOnInit(): void;
57
+ get canConfirm(): boolean;
58
+ private loadComponent;
59
+ confirm(): void;
60
+ dismiss(): void;
61
+ onLoadingStateChange(state: HermesLoadingState): void;
62
+ static ɵfac: i0.ɵɵFactoryDeclaration<ModalComponent, never>;
63
+ static ɵcmp: i0.ɵɵComponentDeclaration<ModalComponent, "spine-modal", never, {}, {}, never, never, true, never>;
64
+ }
65
+
66
+ export { ModalComponent, ModalService };
67
+ export type { ModalConfig, ModalContent };
68
+ //# sourceMappingURL=trismegisto-spine-modal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trismegisto-spine-modal.d.ts","sources":["../../../projects/ui/modal/src/modal.types.ts","../../../projects/ui/modal/src/modal.service.ts","../../../projects/ui/modal/src/modal.component.ts"],"mappings":";;;;;AAEM,UAAW,WAAW;;;;;AAK1B,gBAAY,IAAI,CAAC,YAAY;;;AAG9B;AAEK,UAAW,YAAY;;;AAG5B;;ACTD,cACa,YAAY;;AAEvB,uBAA0B,UAAU;;AAGpC,qBAAwB,UAAU,CAAC,kBAAkB;;AAGrD,kBAAqB,WAAW;;6CAMS,WAAW,UAAU,UAAU;AAYxE;AAMA;AAMA,oBAAgB,kBAAkB;AAIlC;yCA1CW,YAAY;6CAAZ,YAAY;AAgDxB;;ACjDD;AACqF;AACrF,iBAAS,YAAY,OAAO,WAAW,WAAW,SAAS;AAS3D,cAMa,cAAe,YAAW,MAAM;AAe/B;AAAoC;;;;;AAbe;;AAI/D;AACA,YAAQ,WAAW;WACZ,kBAAkB;AAEzB,kDAAqC,kBAAA;AACrC,4CAA+B,YAAA;;AAIX,8BAAc,YAAY,OAAe,iBAAiB;AAE9E;;AAwBA;AAUA;AAMA;AAIA,gCAA4B,kBAAkB;yCA7DnC,cAAc;2CAAd,cAAc;AAgE1B;;","names":[]}
@@ -0,0 +1,62 @@
1
+ import { Observable } from 'rxjs';
2
+ import * as i0 from '@angular/core';
3
+ import { OnInit, ChangeDetectorRef } from '@angular/core';
4
+ import { AlertVariant } from '@trismegisto/angular';
5
+
6
+ declare enum AlertType {
7
+ INFO = "info",
8
+ WARNING = "warning",
9
+ SUCCESS = "success",
10
+ DANGER = "danger"
11
+ }
12
+ interface Notification {
13
+ timer: number;
14
+ expirer?: number;
15
+ hermesAlertType: AlertType;
16
+ message: string;
17
+ hermesAlertAppLevel?: boolean;
18
+ hermesAlertClosable?: boolean;
19
+ }
20
+
21
+ type NotificationInput = Omit<Notification, 'hermesAlertType' | 'expirer'> & {
22
+ hermesAlertType: AlertType | number;
23
+ };
24
+ declare class NotificationService {
25
+ private readonly text;
26
+ private _notifications;
27
+ readonly notifications$: Observable<Notification[]>;
28
+ /** Relógio da expiração: só corre enquanto há notificação na tela (antes era um `setInterval` eterno,
29
+ * nunca limpo — acordava a página a cada segundo e sobrevivia ao injetor). */
30
+ private timer;
31
+ constructor();
32
+ /**
33
+ * O `status` do envelope `{ status, message, data }` dos GraphQL decide o tipo do toast — o mesmo
34
+ * contrato em todo app: 2xx sucesso, 3xx atenção (concluiu com ressalva), 4xx/5xx erro, o resto
35
+ * informação. Por faixa (antes era só 200/300/400/500 exatos — continuam dando o mesmo resultado).
36
+ */
37
+ resolveAlertType(status: number): AlertType;
38
+ addNotification(notification: NotificationInput): void;
39
+ processErrorNotification(): void;
40
+ private expireNotifications;
41
+ private stopClock;
42
+ static ɵfac: i0.ɵɵFactoryDeclaration<NotificationService, never>;
43
+ static ɵprov: i0.ɵɵInjectableDeclaration<NotificationService>;
44
+ }
45
+
46
+ /** `AlertType.DANGER` (nome do spine antigo, preservado na API pública) mapeia pra `'error'`
47
+ * no `AlertVariant` do DS novo — os outros 3 valores já coincidem 1:1. */
48
+ declare function toAlertVariant(type: AlertType): AlertVariant;
49
+ declare class NotificationComponent implements OnInit {
50
+ notificationService: NotificationService;
51
+ private cdr;
52
+ notifications: Notification[];
53
+ protected readonly toAlertVariant: typeof toAlertVariant;
54
+ constructor(notificationService: NotificationService, cdr: ChangeDetectorRef);
55
+ ngOnInit(): void;
56
+ static ɵfac: i0.ɵɵFactoryDeclaration<NotificationComponent, never>;
57
+ static ɵcmp: i0.ɵɵComponentDeclaration<NotificationComponent, "spine-notification", never, {}, {}, never, never, true, never>;
58
+ }
59
+
60
+ export { AlertType, NotificationComponent, NotificationService };
61
+ export type { Notification, NotificationInput };
62
+ //# sourceMappingURL=trismegisto-spine-notification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trismegisto-spine-notification.d.ts","sources":["../../../projects/ui/notification/src/notification.types.ts","../../../projects/ui/notification/src/notification.service.ts","../../../projects/ui/notification/src/notification.component.ts"],"mappings":";;;;;AAAA,aAAY,SAAS;AACnB;AACA;AACA;AACA;AACD;UAEgB,YAAY;;;qBAGV,SAAS;;;;AAI3B;;ACRK,KAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY;AAC/C,qBAAiB,SAAS;;AAG5B,cACa,mBAAmB;AAC9B;;AAEA,6BAAgC,UAAU,CAAC,YAAY;AAEvD;AAC+E;;;AAO/E;;;;AAIG;AACH,sCAAkC,SAAS;AAO3C,kCAA8B,iBAAiB;AAa/C;AASA;AASA;yCAxDW,mBAAmB;6CAAnB,mBAAmB;AA4D/B;;ACjED;AAC0E;AAC1E,iBAAS,cAAc,OAAO,SAAS,GAAG,YAAY;AAItD,cAOa,qBAAsB,YAAW,MAAM;AAK/B,yBAAqB,mBAAmB;AAAE;mBAJ9C,YAAY;AAE3B,8CAAiC,cAAA;AAEd,qCAAqB,mBAAmB,OAAe,iBAAiB;AAE3F;yCAPW,qBAAqB;2CAArB,qBAAqB;AAajC;;","names":[]}
@@ -0,0 +1,205 @@
1
+ import { Route } from '@trismegisto/spine';
2
+ import * as i0 from '@angular/core';
3
+ import { InjectionToken, Type } from '@angular/core';
4
+ import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';
5
+ import { Observable } from 'rxjs';
6
+ import { CanActivate, Router, ActivatedRouteSnapshot, RouterStateSnapshot, Route as Route$1 } from '@angular/router';
7
+ import { ViewService, AuthorizationService } from '@orfeu/angular/core';
8
+
9
+ declare class LoggerService {
10
+ private _logger;
11
+ get logger(): Route[];
12
+ setLogger(logger: Route[]): void;
13
+ /** A página atual (último nó da cadeia do painel focado). */
14
+ get page(): Route | null;
15
+ /** `router_id` da página atual -- a identidade da TELA no spine (componente, documento, descrição). */
16
+ get routerId(): string | null;
17
+ /**
18
+ * A ROTA da página atual (`web.routes.route_id`, o `routed_id` do nó) -- o que vai em `x-route-id`
19
+ * e vira `audit.events.route_id`/`route_name`. Só quando o último nó é uma página de verdade (tem
20
+ * router): grupo puramente organizacional não é tela. Antes de 2026-10-05 ia o router_id aqui, e a
21
+ * auditoria não achava o nome (o argos-auth-server ainda traduz router_id → rota, por compatibilidade).
22
+ */
23
+ get routeId(): string | null;
24
+ static ɵfac: i0.ɵɵFactoryDeclaration<LoggerService, never>;
25
+ static ɵprov: i0.ɵɵInjectableDeclaration<LoggerService>;
26
+ }
27
+
28
+ /** Must match `@orfeu/node`/`orfeu` (Python)'s `ROUTE_ID_HEADER` (`x-route-id`). */
29
+ declare const ROUTE_ID_HEADER = "X-Route-Id";
30
+ /** Must match `@orfeu/node`/`orfeu` (Python)'s `CLIENT_ID_HEADER` (`x-client-id`): which app (client) the action came from. */
31
+ declare const CLIENT_ID_HEADER = "X-Client-Id";
32
+ /**
33
+ * Attaches the current screen's ROUTE id — `web.routes.route_id` of the page node (`routed_id`), NOT the
34
+ * `router_id` the spine uses to identify the screen (see `LoggerService.routeId`) — and the app's `clientId`
35
+ * from `SpineConfig` as headers on every outgoing HTTP
36
+ * request, read from `LoggerService` (updated by `ViewGuard` on every
37
+ * navigation — see view.guard.ts). This is a caller-supplied correlation tag
38
+ * consumed by Orfeu's structured operation logs to correlate an
39
+ * operation_id with the route that triggered it; it is never verified
40
+ * server-side and never used for permission checks.
41
+ *
42
+ * Applied globally (registered once by `provideShell`, not per-service) so
43
+ * every app gets the correlation for free — an extra header a third-party
44
+ * API doesn't recognize is harmless, so there's no need to scope this to
45
+ * only Orfeu-guarded backends.
46
+ */
47
+ declare class RouteIdInterceptor implements HttpInterceptor {
48
+ private loggerService;
49
+ private readonly clientId;
50
+ constructor(loggerService: LoggerService);
51
+ intercept(req: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>>;
52
+ static ɵfac: i0.ɵɵFactoryDeclaration<RouteIdInterceptor, never>;
53
+ static ɵprov: i0.ɵɵInjectableDeclaration<RouteIdInterceptor>;
54
+ }
55
+
56
+ /**
57
+ * Gate de navegação REAL (deep link, F5, `router.navigateByUrl` do painel focado — ver
58
+ * `SpineWorkspaceNavService`). Não desenha mais nada nem alimenta breadcrumb/sidebar: isso agora
59
+ * é responsabilidade de cada painel do workspace (`resolveSpineRoute`, chamado direto por quem
60
+ * precisa da cadeia). O guard só confirma que a URL resolve contra a view atual — senão redireciona
61
+ * pro fallback navegável ou pra `/no-permission` — e existe numa única rota coringa (ver
62
+ * `private.routes.ts`), não mais em 6 níveis de rota aninhada.
63
+ *
64
+ * Duas saídas de acesso, nesta ordem:
65
+ * - **`/blocked`** — autenticado, mas sem nenhum grupo vinculado a esta aplicação (o token sai
66
+ * com `badges` vazio: o argos só dá crachá por grupo do project do client). Vale mesmo que o
67
+ * app tenha rotas públicas: quem não é de nenhum grupo do app não entra nele;
68
+ * - **`/no-permission`** — tem grupo, mas a view não trouxe rota nenhuma (os grupos não têm
69
+ * permissão e o app não tem rota pública).
70
+ */
71
+ declare class ViewGuard implements CanActivate {
72
+ private router;
73
+ private viewService;
74
+ private auth;
75
+ constructor(router: Router, viewService: ViewService, auth: AuthorizationService);
76
+ canActivate(_route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean;
77
+ canActivateChild(_route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean;
78
+ canLoad(route: Route$1): boolean;
79
+ private checkRoute;
80
+ static ɵfac: i0.ɵɵFactoryDeclaration<ViewGuard, never>;
81
+ static ɵprov: i0.ɵɵInjectableDeclaration<ViewGuard>;
82
+ }
83
+
84
+ /**
85
+ * Manual de uma tela, declarado no `document` da própria `ComponentRoute` (mesma chave, o router_id).
86
+ * Os textos são Markdown buscado só quando alguém abre a documentação: nos apps, um `import()` do `.md`
87
+ * com o loader `text`, de modo que o conteúdo vai no chunk lazy da tela e não no carregamento inicial.
88
+ */
89
+ interface RouteDocument {
90
+ /** Nome da tela no índice da documentação; se faltar, usa-se o rótulo da rota na árvore do usuário. */
91
+ title?: string;
92
+ /** Seção do índice em que a tela aparece; se faltar, usa-se o módulo de topo que a contém. */
93
+ group?: string;
94
+ /** Texto para quem usa a tela no dia a dia (normalmente o `README.md` dela). */
95
+ load: () => Promise<string>;
96
+ /**
97
+ * Especificação técnica, para desenvolvimento (normalmente o `ESPECIFICACAO.md`). Só aparece com
98
+ * `SpineConfig.technicalDocs` ativo — por padrão, apenas em `isDevMode()`.
99
+ */
100
+ loadTechnical?: () => Promise<string>;
101
+ }
102
+ /**
103
+ * Uma tela do app. A chave é o ROUTER (`web.router.router_id` do client -- a posição da tela na
104
+ * navegação, o `router_id` do nó 'page' da view), nunca o `web.routes.route_id` (a rota é só
105
+ * nome/ícone/path, reaproveitável em vários routers). Tela de template (ex.: auto-serviço) usa
106
+ * `source_template_router_id` -- o router do TEMPLATE, igual em todos os clients vinculados.
107
+ */
108
+ interface ComponentRoute {
109
+ /** `router_id` (web.router do client) da tela. */
110
+ id?: string;
111
+ /** Componente da tela, via `import()` dinâmico (code-splitting por tela). */
112
+ load?: () => Promise<Type<any>>;
113
+ /** Documentação da tela, exibida pelo botão de documentação da barra da página. */
114
+ document?: RouteDocument;
115
+ /** @deprecated use `id`. Mantido para os mapas antigos (o valor sempre foi o router_id); `id` vence
116
+ * quando os dois vêm. */
117
+ route_id?: string;
118
+ /** @deprecated use `load`. */
119
+ component?: () => Promise<Type<any>>;
120
+ source_template_router_id?: string;
121
+ }
122
+ /** `id` (router_id) da entrada, aceitando o formato antigo (`route_id`). */
123
+ declare function componentRouterId(route: ComponentRoute): string | undefined;
124
+ /** @deprecated use `componentRouterId` (o id da entrada é o router_id da tela). */
125
+ declare const componentRouteId: typeof componentRouterId;
126
+ /** Carregador da entrada, aceitando o formato antigo (`component`). */
127
+ declare function componentRouteLoader(route: ComponentRoute): (() => Promise<Type<any>>) | undefined;
128
+ declare const COMPONENT_ROUTES: InjectionToken<ComponentRoute[]>;
129
+
130
+ /**
131
+ * O import dinâmico falhou porque o arquivo da tela não existe mais no servidor — saiu um build novo
132
+ * enquanto a aba estava aberta e os chunks antigos foram trocados. Mensagens dos navegadores:
133
+ * Chrome/Edge "Failed to fetch dynamically imported module", Firefox "error loading dynamically
134
+ * imported module", Safari "Importing a module script failed", webpack "Loading chunk N failed" /
135
+ * `ChunkLoadError`.
136
+ */
137
+ declare function isChunkLoadError(err: unknown): boolean;
138
+ declare class ComponentDistributorService {
139
+ private components;
140
+ /**
141
+ * `router_id` da última falha (sem entrada registrada ou import quebrado) — lido por
142
+ * `NoContentComponent` pra montar a descrição (ver comentário dela). Sinal só, não por
143
+ * instância: se dois painéis erram ao mesmo tempo, o texto de um pode piscar o código do
144
+ * outro por um instante — aceitável, é só o que a mensagem de suporte mostra, nenhuma decisão
145
+ * de roteamento depende disto.
146
+ */
147
+ readonly lastMissingRouterId: i0.WritableSignal<string>;
148
+ /** @deprecated use `lastMissingRouterId` (sempre foi o router_id). */
149
+ get lastMissingRouteId(): i0.WritableSignal<string>;
150
+ constructor(routes: ComponentRoute[][] | null);
151
+ /** Todas as entradas registradas (app + pacotes plugáveis) -- lidas pela documentação. */
152
+ get entries(): readonly ComponentRoute[];
153
+ getComponent(routerId: string, source_template_router_id?: string | null): Promise<Type<any>>;
154
+ static ɵfac: i0.ɵɵFactoryDeclaration<ComponentDistributorService, [{ optional: true; }]>;
155
+ static ɵprov: i0.ɵɵInjectableDeclaration<ComponentDistributorService>;
156
+ }
157
+
158
+ /**
159
+ * Lógica pura de resolução da árvore de rotas vinda do backend (`ViewService.currentView`) —
160
+ * compartilhada entre `ViewGuard` (gate de navegação real) e `resolveSpineRoute` (resolução por
161
+ * painel do workspace, sem depender do `Router`). Extraída daqui porque as duas precisavam do
162
+ * mesmo algoritmo de busca e tinham cópias divergentes antes desta reescrita.
163
+ */
164
+ /** Acha uma rota cujo `route_redirect` bate com `urlAtLevel`, atravessando ancestrais
165
+ * "transparentes" (sem `route_redirect` próprio — só agrupam os filhos). */
166
+ declare function findRouteThrough(routes: Route[], urlAtLevel: string): Route | null;
167
+ /** Primeira rota navegável (DFS), atravessando grupos transparentes — usada como fallback
168
+ * quando a URL alvo não bate com nada na view atual. */
169
+ declare function findFirstNavigable(routes: Route[]): string | null;
170
+ /**
171
+ * Resolve a cadeia INTEIRA de rotas (header→navigation→menu→item→submenu→page, até onde a URL
172
+ * for funda) pra uma URL qualquer, lendo só `currentRoutes`/`getLevel`/`getUrlAtLevel` — as
173
+ * mesmas três primitivas que `ViewGuard` já usava, sem tocar no `Router`. `chain[0]` é o nível 1
174
+ * (header), não existe nível 0 — mantém a mesma convenção 1-based do `ViewGuard` original.
175
+ */
176
+ declare function resolveRouteChain(currentRoutes: Route[], getLevel: (url: string) => number, getUrlAtLevel: (url: string, level: number) => string, url: string): Route[] | null;
177
+ /**
178
+ * `resolveRouteChain`, mas descendo sozinho quando o nó final tem filhos e nenhum conteúdo
179
+ * próprio — o mesmo comportamento que o `RouterComponent` antigo tinha (cada nível, ao pousar
180
+ * numa rota com `routes.length > 0`, `router.navigate([routes[0].route_redirect])`), perdido na
181
+ * reescrita porque não existe mais uma cadeia de guardas por nível. Sem isto, clicar num nó
182
+ * puramente organizacional (ex.: "Solicitações", que só agrupa Configuração/Inventário/etc. e não
183
+ * tem `route_id` de página nenhuma) cai em "Nenhum conteúdo disponível" — achado real, 2026-09-28.
184
+ */
185
+ declare function resolveEffectiveRouteChain(currentRoutes: Route[], getLevel: (url: string) => number, getUrlAtLevel: (url: string, level: number) => string, url: string): Route[] | null;
186
+
187
+ /**
188
+ * Traduz uma URL na cadeia de rotas do backend (header→navigation→menu→item→submenu→page) e no
189
+ * componente da folha — sem passar pelo `Router` do Angular. É o que torna o painel do workspace
190
+ * possível — o `Router` tem uma URL só; um painel não-focado precisa resolver a dele de forma
191
+ * independente. Anda-se na árvore `Route[]` que o backend manda (`ViewService.currentView`), a
192
+ * mesma que `ViewGuard` lia.
193
+ */
194
+ interface ResolvedSpineRoute {
195
+ /** A cadeia inteira, nível 1 (header) até onde a URL alcançar. `chain.at(-1)` é sempre o nível
196
+ * 'page' — é dele que `component` vem. Níveis intermediários (`item`/`submenu`) com mais de um
197
+ * irmão são o que vira aba de submenu/multipágina no painel. */
198
+ readonly chain: Route[];
199
+ readonly component: Type<unknown>;
200
+ }
201
+ declare function resolveSpineRoute(currentRoutes: Route[], getLevel: (url: string) => number, getUrlAtLevel: (url: string, level: number) => string, distributor: ComponentDistributorService, url: string): Promise<ResolvedSpineRoute | null>;
202
+
203
+ export { CLIENT_ID_HEADER, COMPONENT_ROUTES, ComponentDistributorService, LoggerService, ROUTE_ID_HEADER, RouteIdInterceptor, ViewGuard, componentRouteId, componentRouteLoader, componentRouterId, findFirstNavigable, findRouteThrough, isChunkLoadError, resolveEffectiveRouteChain, resolveRouteChain, resolveSpineRoute };
204
+ export type { ComponentRoute, ResolvedSpineRoute, RouteDocument };
205
+ //# sourceMappingURL=trismegisto-spine-routing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trismegisto-spine-routing.d.ts","sources":["../../../projects/ui/routing/src/logger.service.ts","../../../projects/ui/routing/src/route-id.interceptor.ts","../../../projects/ui/routing/src/view.guard.ts","../../../projects/ui/routing/src/component-routes.token.ts","../../../projects/ui/routing/src/component-distributor.service.ts","../../../projects/ui/routing/src/route-chain.ts","../../../projects/ui/routing/src/resolve-route.ts"],"mappings":";;;;;;;;AAIA,cACa,aAAa;;AAIxB,kBAAc,KAAK;AAEnB,sBAAkB,KAAK;;AAGvB,gBAAY,KAAK;;AAMjB;AAIA;;;;;AAKG;AACH;yCAzBW,aAAa;6CAAb,aAAa;AA6BzB;;AC5BD;AACA,cAAa,eAAe;AAC5B;AACA,cAAa,gBAAgB;AAE7B;;;;;;;;;;;;;;AAcG;AACH,cACa,kBAAmB,YAAW,eAAe;AAG5C;AAFZ;AAEoB,+BAAe,aAAa;AAEhD,mBAAe,WAAW,iBAAiB,WAAW,GAAG,UAAU,CAAC,SAAS;yCALlE,kBAAkB;6CAAlB,kBAAkB;AAe9B;;ACpCD;;;;;;;;;;;;;;AAcG;AACH,cACa,SAAU,YAAW,WAAW;AAEzC;AACA;AACA;wBAFgB,MAAM,eACD,WAAW,QAClB,oBAAoB;wBAGhB,sBAAsB,SAAS,mBAAmB;6BAI7C,sBAAsB,SAAS,mBAAmB;AAI3E,mBAAeA,OAAO;AAItB;yCAnBW,SAAS;6CAAT,SAAS;AAgErB;;ACpFD;;;;AAIG;UACc,aAAa;;;;;;AAM5B,gBAAY,OAAO;AACnB;;;AAGG;AACH,0BAAsB,OAAO;AAC9B;AAED;;;;;AAKG;UACc,cAAc;;;;iBAIhB,OAAO,CAAC,IAAI;;eAEd,aAAa;AAExB;AAC0B;;;sBAGR,OAAO,CAAC,IAAI;;AAO/B;AAED;AACA,iBAAgB,iBAAiB,QAAQ,cAAc;AAIvD;AACA,cAAa,gBAAgB,SAAA,iBAAoB;AAEjD;AACA,iBAAgB,oBAAoB,QAAQ,cAAc,UAAU,OAAO,CAAC,IAAI;AAOhF,cAAa,gBAAgB,EAAA,cAAA,CAAA,cAAA;;ACpB7B;;;;;;AAMG;AACH,iBAAgB,gBAAgB;AAyBhC,cACa,2BAA2B;;AAItC;;;;;;AAMG;kCACyBC,EAAA,CAAA,cAAA;;AAG5B,8BAAsBA,EAAA,CAAA,cAAA;AAO4B,wBAAQ,cAAc;;AAKxE,4BAAwB,cAAc;AAShC,+EAA2E,OAAO,CAAC,IAAI;yCAnClF,2BAA2B;6CAA3B,2BAA2B;AA2DvC;;ACtID;;;;;AAKG;AAEH;AAC6E;AAC7E,iBAAgB,gBAAgB,SAAS,KAAK,yBAAyB,KAAK;AAY5E;AACyD;AACzD,iBAAgB,kBAAkB,SAAS,KAAK;AAYhD;;;;;AAKG;AACH,iBAAgB,iBAAiB,gBAChB,KAAK,4GAInB,KAAK;AAqBR;;;;;;;AAOG;AACH,iBAAgB,0BAA0B,gBACzB,KAAK,4GAInB,KAAK;;AC7ER;;;;;;AAMG;UACc,kBAAkB;AACjC;;AAEiE;AACjE,oBAAgB,KAAK;AACrB,wBAAoB,IAAI;AACzB;AAED,iBAAsB,iBAAiB,gBACtB,KAAK,2GAGP,2BAA2B,gBAEvC,OAAO,CAAC,kBAAkB;;","names":["NgRoute","_angular_core"]}
@@ -0,0 +1,143 @@
1
+ import { PackageInfo } from '@trismegisto/spine';
2
+ export { APP_PACKAGE_INFO, PackageInfo } from '@trismegisto/spine';
3
+ import { Routes, Router } from '@angular/router';
4
+ import { ComponentRoute } from '@trismegisto/spine/routing';
5
+ import * as i0 from '@angular/core';
6
+ import { EnvironmentProviders, OnInit } from '@angular/core';
7
+ import { AuthorizationService, ViewService } from '@orfeu/angular/core';
8
+
9
+ declare const APP_ROUTES: Routes;
10
+
11
+ declare const PUBLIC_ROUTES: Routes;
12
+
13
+ /**
14
+ * Quem desenha o conteúdo agora é o `hm-workspace` (ver `LayoutComponent`/
15
+ * `layout/src/workspace/`), nunca um `<router-outlet>` aninhado — a árvore de 6 níveis
16
+ * (header/navigation/menu/item/submenu/page) que existia aqui foi substituída por
17
+ * `resolveSpineRoute`, chamada por painel. Estas rotas só precisam existir pro `Router` real
18
+ * "reconhecer" a URL (deep link, F5, `router.navigateByUrl` do painel focado) e pro `ViewGuard`
19
+ * confirmar que ela resolve contra a view atual antes do painel tentar renderizá-la — `component`
20
+ * é só `EmptyRouteComponent` (o Angular exige um dos cinco em toda rota, `NG04014` senão; o
21
+ * `<router-outlet>` que o recebe fica escondido, ver `LayoutComponent`).
22
+ */
23
+ declare const PRIVATE_ROUTES: Routes;
24
+
25
+ /**
26
+ * Componentes que o próprio shell traz, ligados pelo `router_id` (web.router) da árvore de rotas do argos.
27
+ *
28
+ * As telas do antigo módulo "Sistema" (Sobre › Recursos/Informações; Preferências › Geral,
29
+ * Autenticação, Exibição, Notificações) saíram em 2026-09-29: viraram o painel de configurações
30
+ * (`@trismegisto/spine/layout` › `SettingsPanelComponent`, menu do perfil ou Ctrl+,). Os router_ids delas
31
+ * (d6a30f9c, 86b87583, 2d71fb9b, 48ebca20, 662a7a61, e7d9982b, bf8a9f69) não têm mais componente —
32
+ * o módulo precisa sair da árvore de rotas no seed do argos.
33
+ *
34
+ * O Início (`HomeComponent`) mudou pra `@trismegisto/spine/auto-service` -- ver a entrada legada abaixo.
35
+ */
36
+ declare const BASE_COMPONENTS: ComponentRoute[];
37
+
38
+ interface ShellOptions {
39
+ appComponents?: ComponentRoute[];
40
+ packageInfo?: PackageInfo;
41
+ }
42
+ declare function provideShell(options?: ShellOptions): EnvironmentProviders;
43
+
44
+ /**
45
+ * Rota de retorno do Argos (`/callback?code&state` ou `?error`). Tudo passa pelo `handleCallback()` do
46
+ * `@orfeu/angular`, que confere state e verifier, troca o code e navega para a URL pedida antes do login
47
+ * (ou para a 1ª rota do `/view`).
48
+ *
49
+ * - `?error=login_required` (e afins) da reautorização silenciosa (`prompt=none`): o próprio
50
+ * `handleCallback()` segue para o login interativo, mantendo a URL de retorno — a pessoa não fica parada aqui.
51
+ * - Callback inválido (state/nonce divergente, `?error`, sem code): NUNCA desloga. Com uma sessão viva
52
+ * (callback repetido, voltar do navegador), segue para a URL de retorno; sem sessão, mostra a página de
53
+ * erro com "Entrar novamente".
54
+ */
55
+ declare class CallbackComponent {
56
+ protected readonly text: {
57
+ offline: string;
58
+ reconnecting: string;
59
+ reauthorizing: string;
60
+ reauthorizationRequired: string;
61
+ signInAgain: string;
62
+ callbackFailedHeading: string;
63
+ callbackFailedText: string;
64
+ };
65
+ private readonly route;
66
+ private readonly router;
67
+ private readonly auth;
68
+ /** `true` quando o callback falhou e não há sessão para onde voltar. */
69
+ protected readonly failed: i0.WritableSignal<boolean>;
70
+ /** Promessa do tratamento em andamento (exposta para os testes aguardarem). */
71
+ readonly done: Promise<void>;
72
+ constructor();
73
+ private handle;
74
+ protected signIn(): void;
75
+ static ɵfac: i0.ɵɵFactoryDeclaration<CallbackComponent, never>;
76
+ static ɵcmp: i0.ɵɵComponentDeclaration<CallbackComponent, "app-callback", never, {}, {}, never, never, true, never>;
77
+ }
78
+
79
+ declare class LoginComponent implements OnInit {
80
+ private router;
81
+ private auth;
82
+ private view;
83
+ constructor(router: Router, auth: AuthorizationService, view: ViewService);
84
+ ngOnInit(): void;
85
+ bootstrap(): Promise<void>;
86
+ /** Primeira rota navegável (DFS), atravessando grupos "transparentes" sem route_redirect. */
87
+ private findFirstNavigable;
88
+ static ɵfac: i0.ɵɵFactoryDeclaration<LoginComponent, never>;
89
+ static ɵcmp: i0.ɵɵComponentDeclaration<LoginComponent, "app-login", never, {}, {}, never, never, true, never>;
90
+ }
91
+
92
+ declare class LoggedOutComponent {
93
+ private authorizationService;
94
+ constructor(authorizationService: AuthorizationService);
95
+ goToLogin(): void;
96
+ static ɵfac: i0.ɵɵFactoryDeclaration<LoggedOutComponent, never>;
97
+ static ɵcmp: i0.ɵɵComponentDeclaration<LoggedOutComponent, "loggedout", never, {}, {}, never, never, true, never>;
98
+ }
99
+
100
+ declare class NoRightsComponent implements OnInit {
101
+ private viewService;
102
+ protected readonly text: {
103
+ blockedText: string;
104
+ blockedAction: string;
105
+ noRightsText: string;
106
+ };
107
+ constructor(viewService: ViewService);
108
+ ngOnInit(): void;
109
+ static ɵfac: i0.ɵɵFactoryDeclaration<NoRightsComponent, never>;
110
+ static ɵcmp: i0.ɵɵComponentDeclaration<NoRightsComponent, "no-rights", never, {}, {}, never, never, true, never>;
111
+ }
112
+
113
+ /**
114
+ * "Acesso bloqueado" (`/blocked`): a pessoa entrou, mas não faz parte de nenhum grupo vinculado a
115
+ * esta aplicação — o `ViewGuard` manda pra cá quando o token vem sem nenhum crachá (`badges`
116
+ * vazio), mesmo que o app tenha rotas públicas.
117
+ *
118
+ * Diferente de `/no-permission` (tem grupo, mas nenhuma rota liberada). A única ação útil aqui é
119
+ * sair — pra entrar com outra conta, ou depois que o administrador incluir a pessoa num grupo.
120
+ */
121
+ declare class BlockedComponent implements OnInit {
122
+ protected readonly text: {
123
+ blockedText: string;
124
+ blockedAction: string;
125
+ noRightsText: string;
126
+ };
127
+ private readonly auth;
128
+ private readonly viewService;
129
+ constructor();
130
+ ngOnInit(): void;
131
+ protected logout(): void;
132
+ static ɵfac: i0.ɵɵFactoryDeclaration<BlockedComponent, never>;
133
+ static ɵcmp: i0.ɵɵComponentDeclaration<BlockedComponent, "blocked", never, {}, {}, never, never, true, never>;
134
+ }
135
+
136
+ declare class LoadingPageComponent {
137
+ static ɵfac: i0.ɵɵFactoryDeclaration<LoadingPageComponent, never>;
138
+ static ɵcmp: i0.ɵɵComponentDeclaration<LoadingPageComponent, "loading-page", never, {}, {}, never, never, true, never>;
139
+ }
140
+
141
+ export { APP_ROUTES, BASE_COMPONENTS, BlockedComponent, CallbackComponent, LoadingPageComponent, LoggedOutComponent, LoginComponent, NoRightsComponent, PRIVATE_ROUTES, PUBLIC_ROUTES, provideShell };
142
+ export type { ShellOptions };
143
+ //# sourceMappingURL=trismegisto-spine-shell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trismegisto-spine-shell.d.ts","sources":["../../../projects/ui/shell/src/app.routes.ts","../../../projects/ui/shell/src/public.routes.ts","../../../projects/ui/shell/src/private.routes.ts","../../../projects/ui/shell/src/base-components.ts","../../../projects/ui/shell/src/provide-shell.ts","../../../projects/ui/shell/src/public/callback.component.ts","../../../projects/ui/shell/src/public/login.component.ts","../../../projects/ui/shell/src/public/loggedout/loggedout.component.ts","../../../projects/ui/shell/src/templates/no-rights/no-rights.component.ts","../../../projects/ui/shell/src/templates/blocked/blocked.component.ts","../../../projects/ui/shell/src/templates/loading-page/loading-page.component.ts"],"mappings":";;;;;;;;AAMA,cAAa,UAAU,EAAE,MAUxB;;ACVD,cAAa,aAAa,EAAE,MAa3B;;ACfD;;;;;;;;;AASG;AACH,cAAa,cAAc,EAAE,MAO5B;;ACnBD;;;;;;;;;;AAUG;AACH,cAAa,eAAe,EAAE,cAAc;;UCP3B,YAAY;AAC3B,oBAAgB,cAAc;kBAChB,WAAW;AAC1B;AAED,iBAAgB,YAAY,WAAU,YAAiB,GAAG,oBAAoB;;ACF9E;;;;;;;;;;AAUG;AACH,cAoBa,iBAAiB;;;;;;;;;AAC6B;AACzD;AACA;AACA;;AAGA,+BAAyBA,EAAA,CAAA,cAAA;;AAEzB,mBAAe,OAAO;;;;yCATX,iBAAiB;2CAAjB,iBAAiB;AAuC7B;;AC3ED,cAMa,cAAe,YAAW,MAAM;AAEzC;AACA;AACA;wBAFgB,MAAM,QACR,oBAAoB,QACpB,WAAW;AAG3B;iBAEe,OAAA;;AAYf;yCArBW,cAAc;2CAAd,cAAc;AAgC1B;;ACtCD,cAOa,kBAAkB;AACjB;AAAQ,sCAAsB,oBAAoB;;yCADnD,kBAAkB;2CAAlB,kBAAkB;AAG9B;;ACRD,cAOa,iBAAkB,YAAW,MAAM;AAGlC;;;;;AAF4C;AAEpC,6BAAa,WAAW;AAK5C;yCARW,iBAAiB;2CAAjB,iBAAiB;AAe7B;;ACtBD;;;;;;;AAOG;AACH,cAkBa,gBAAiB,YAAW,MAAM;;;;;AACW;AACxD;AACA;;AAOA;;yCAVW,gBAAgB;2CAAhB,gBAAgB;AAmB5B;;ACjDD,cAOa,oBAAoB;yCAApB,oBAAoB;2CAApB,oBAAoB;AAAG;;","names":["_angular_core"]}
@@ -0,0 +1,66 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Type, OnInit, ChangeDetectorRef } from '@angular/core';
3
+ import { ModalContent } from '@trismegisto/spine/modal';
4
+ export { ModalContent as SidePanelContent } from '@trismegisto/spine/modal';
5
+ import { HermesLoadingState, ModalSize } from '@trismegisto/angular';
6
+ import { Observable } from 'rxjs';
7
+
8
+ interface SidePanelConfig<TData = any> {
9
+ title?: string;
10
+ size?: 'sm' | 'md' | 'lg' | 'xl' | 'full';
11
+ closable?: boolean;
12
+ text?: string;
13
+ component?: Type<ModalContent>;
14
+ data?: TData;
15
+ showActions?: boolean;
16
+ }
17
+
18
+ declare class SidePanelService {
19
+ private _visible;
20
+ readonly visible$: Observable<boolean>;
21
+ private _state;
22
+ readonly state$: Observable<HermesLoadingState>;
23
+ private _config;
24
+ get config(): SidePanelConfig | null;
25
+ private _result$;
26
+ open<TResult = any, TData = any>(config: SidePanelConfig<TData>): Observable<TResult | null>;
27
+ confirm(result: any): void;
28
+ close(): void;
29
+ setState(state: HermesLoadingState): void;
30
+ private dismiss;
31
+ static ɵfac: i0.ɵɵFactoryDeclaration<SidePanelService, never>;
32
+ static ɵprov: i0.ɵɵInjectableDeclaration<SidePanelService>;
33
+ }
34
+
35
+ /** `SidePanelConfig.size` manteve os valores do spine antigo (sm/md/lg/xl/full) por
36
+ * compatibilidade de API; o `hm-drawer` novo só tem 3 tamanhos. */
37
+ declare function toHermesSize(size: SidePanelConfig['size']): ModalSize;
38
+ declare class SidePanelComponent implements OnInit {
39
+ private sidePanelService;
40
+ private cdr;
41
+ /** Rótulos dos botões padrão, do catálogo do Hermes (pt-BR/en/es). */
42
+ protected readonly dialogText: {
43
+ confirm: string;
44
+ cancel: string;
45
+ };
46
+ private content;
47
+ visible: boolean;
48
+ config: SidePanelConfig | null;
49
+ state: HermesLoadingState;
50
+ protected readonly HermesLoadingState: typeof HermesLoadingState;
51
+ protected readonly toHermesSize: typeof toHermesSize;
52
+ private contentRef;
53
+ constructor(sidePanelService: SidePanelService, cdr: ChangeDetectorRef);
54
+ ngOnInit(): void;
55
+ get canConfirm(): boolean;
56
+ private loadComponent;
57
+ confirm(): void;
58
+ dismiss(): void;
59
+ onLoadingStateChange(state: HermesLoadingState): void;
60
+ static ɵfac: i0.ɵɵFactoryDeclaration<SidePanelComponent, never>;
61
+ static ɵcmp: i0.ɵɵComponentDeclaration<SidePanelComponent, "spine-side-panel", never, {}, {}, never, never, true, never>;
62
+ }
63
+
64
+ export { SidePanelComponent, SidePanelService };
65
+ export type { SidePanelConfig };
66
+ //# sourceMappingURL=trismegisto-spine-side-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trismegisto-spine-side-panel.d.ts","sources":["../../../projects/ui/side-panel/src/side-panel.types.ts","../../../projects/ui/side-panel/src/side-panel.service.ts","../../../projects/ui/side-panel/src/side-panel.component.ts"],"mappings":";;;;;;;AAGM,UAAW,eAAe;;;;;AAK9B,gBAAY,IAAI,CAAC,YAAY;;;AAG9B;;ACLD,cACa,gBAAgB;;AAE3B,uBAA0B,UAAU;;AAGpC,qBAAwB,UAAU,CAAC,kBAAkB;;AAGrD,kBAAqB,eAAe;;6CAMK,eAAe,UAAU,UAAU;AAY5E;AAMA;AAMA,oBAAgB,kBAAkB;AAIlC;yCA1CW,gBAAgB;6CAAhB,gBAAgB;AAgD5B;;AChDD;AACmE;AACnE,iBAAS,YAAY,OAAO,eAAe,WAAW,SAAS;AAU/D,cAMa,kBAAmB,YAAW,MAAM;AAenC;AAA4C;;;;;AAbO;;AAI/D;AACA,YAAQ,eAAe;WAChB,kBAAkB;AAEzB,kDAAqC,kBAAA;AACrC,4CAA+B,YAAA;;AAIX,kCAAkB,gBAAgB,OAAe,iBAAiB;AAEtF;;AAwBA;AAUA;AAMA;AAIA,gCAA4B,kBAAkB;yCA7DnC,kBAAkB;2CAAlB,kBAAkB;AAgE9B;;","names":[]}