@trismegisto/spine 3.0.5 → 3.2.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 (20) hide show
  1. package/README.md +52 -0
  2. package/fesm2022/{trismegisto-spine-auto-service-auto-service-groups.component-2xCG_wS9.mjs → trismegisto-spine-auto-service-auto-service-groups.component-D6L0gTmd.mjs} +3 -2
  3. package/fesm2022/trismegisto-spine-auto-service-auto-service-groups.component-D6L0gTmd.mjs.map +1 -0
  4. package/fesm2022/{trismegisto-spine-auto-service-groups.technical-D05838rU.mjs → trismegisto-spine-auto-service-groups.technical-9aPPulhy.mjs} +2 -2
  5. package/fesm2022/{trismegisto-spine-auto-service-groups.technical-D05838rU.mjs.map → trismegisto-spine-auto-service-groups.technical-9aPPulhy.mjs.map} +1 -1
  6. package/fesm2022/{trismegisto-spine-auto-service-groups.usage-ChGMgYU3.mjs → trismegisto-spine-auto-service-groups.usage-CYh61LFL.mjs} +3 -3
  7. package/fesm2022/{trismegisto-spine-auto-service-groups.usage-ChGMgYU3.mjs.map → trismegisto-spine-auto-service-groups.usage-CYh61LFL.mjs.map} +1 -1
  8. package/fesm2022/trismegisto-spine-auto-service.mjs +3 -3
  9. package/fesm2022/trismegisto-spine-graphql.mjs.map +1 -1
  10. package/fesm2022/trismegisto-spine-layout.mjs +355 -14
  11. package/fesm2022/trismegisto-spine-layout.mjs.map +1 -1
  12. package/fesm2022/trismegisto-spine.mjs +124 -2
  13. package/fesm2022/trismegisto-spine.mjs.map +1 -1
  14. package/package.json +6 -6
  15. package/types/trismegisto-spine-graphql.d.ts +1 -1
  16. package/types/trismegisto-spine-layout.d.ts +85 -2
  17. package/types/trismegisto-spine-layout.d.ts.map +1 -1
  18. package/types/trismegisto-spine.d.ts +62 -3
  19. package/types/trismegisto-spine.d.ts.map +1 -1
  20. package/fesm2022/trismegisto-spine-auto-service-auto-service-groups.component-2xCG_wS9.mjs.map +0 -1
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@trismegisto/spine",
3
- "version": "3.0.5",
3
+ "version": "3.2.0",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "peerDependencies": {
6
6
  "@angular/common": ">=21.0.0",
7
7
  "@angular/core": ">=21.0.0",
8
8
  "@angular/router": ">=21.0.0",
9
9
  "@orfeu/angular": "^1.0.0",
10
- "@trismegisto/angular": "^3.0.5",
11
- "@trismegisto/core": "^3.0.5",
12
- "@trismegisto/icons": "^3.0.5",
13
- "@trismegisto/primitives": "^3.0.5",
14
- "@trismegisto/tokens": "^3.0.5",
10
+ "@trismegisto/angular": "^3.2.0",
11
+ "@trismegisto/core": "^3.2.0",
12
+ "@trismegisto/icons": "^3.2.0",
13
+ "@trismegisto/primitives": "^3.2.0",
14
+ "@trismegisto/tokens": "^3.2.0",
15
15
  "rxjs": "^7.0.0",
16
16
  "@apollo/client": "^4.2.0",
17
17
  "apollo-angular": "^14.2.0",
@@ -40,7 +40,7 @@ interface GraphqlCallOptions {
40
40
  * (`TypedDocumentNode`): o retorno é o `data` da operação, sem `<any>`. Junto com o `unwrap` do
41
41
  * envelope, é o caminho padrão dos serviços de domínio:
42
42
  *
43
- * private readonly gql = injectGraphqlClient('kalliope');
43
+ * private readonly gql = injectGraphqlClient('main');
44
44
  * async listTeams() { return unwrap((await this.gql.query(ListTeamsDocument)).teams); }
45
45
  *
46
46
  * Erro de transporte/GraphQL (`errors[]`) rejeita a Promise (o `errorPolicy` é o padrão `none`);
@@ -785,6 +785,8 @@ declare const SPINE_SETTINGS_KEYS: {
785
785
  readonly mfa: "mfa";
786
786
  /** Sessão atual, token de acesso, tokens de aplicação e sessões e dispositivos. */
787
787
  readonly sessions: "sessoes";
788
+ /** Grupos desta aplicação em que a pessoa tem função (argos-admin `/me/groups`); só aparece com algum. */
789
+ readonly groups: "grupos";
788
790
  /** @deprecated A seção "Conta e segurança" virou "MFA" e "Sessões": `seguranca` abre a de MFA (ver
789
791
  * `SPINE_SETTINGS_ALIASES`). Use `mfa` ou `sessions`. */
790
792
  readonly security: "seguranca";
@@ -1100,6 +1102,11 @@ declare class SettingsPanelComponent {
1100
1102
  appTokensDescription: string;
1101
1103
  appTokensKeywords: string;
1102
1104
  appTokensHelp: string;
1105
+ groups: string;
1106
+ groupsDescription: string;
1107
+ groupsKeywords: string;
1108
+ groupRole: string;
1109
+ groupRoleDisabled: string;
1103
1110
  logout: string;
1104
1111
  logoutDescription: string;
1105
1112
  logoutKeywords: string;
@@ -1156,6 +1163,7 @@ declare class SettingsPanelComponent {
1156
1163
  readonly account: "conta";
1157
1164
  readonly mfa: "mfa";
1158
1165
  readonly sessions: "sessoes";
1166
+ readonly groups: "grupos";
1159
1167
  readonly security: "seguranca";
1160
1168
  readonly about: "sobre";
1161
1169
  };
@@ -1365,6 +1373,9 @@ declare class SettingsPanelComponent {
1365
1373
  };
1366
1374
  /** Sem nenhuma linha visível a seção não aparece. */
1367
1375
  protected readonly hasSessionsSection: boolean;
1376
+ /** Grupos desta aplicação de que a pessoa é membro (relidos a cada abertura); sem nenhum, a seção some. */
1377
+ private readonly myGroupsService;
1378
+ protected readonly myGroups: _angular_core.WritableSignal<_trismegisto_spine_layout.ManagedGroup[]>;
1368
1379
  private readonly idle;
1369
1380
  private readonly startPageService;
1370
1381
  private readonly router;
@@ -1469,6 +1480,78 @@ declare class SpineAppTokensService {
1469
1480
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<SpineAppTokensService>;
1470
1481
  }
1471
1482
 
1483
+ /** Função da pessoa no grupo, como o Argos guarda. Sem função (null) é o membro comum, que só vê os outros. */
1484
+ type GroupRole = 'Administrador' | 'Editor';
1485
+ /** Um grupo desta aplicação de que a pessoa é membro, com o que a função dela permite (decidido pelo servidor). */
1486
+ interface ManagedGroup {
1487
+ id: string;
1488
+ name: string;
1489
+ description: string | null;
1490
+ enabled: boolean;
1491
+ type: {
1492
+ id: string;
1493
+ name: string;
1494
+ level: number;
1495
+ };
1496
+ my_role: GroupRole | null;
1497
+ /** Inclui pessoas (Administrador e Editor). */
1498
+ can_add: boolean;
1499
+ /** Funções que a pessoa pode dar a quem inclui, além de "sem função" (Administrador: as duas; Editor: nenhuma). */
1500
+ assignable_roles: GroupRole[];
1501
+ /** Só Administrador troca a função dos outros membros. */
1502
+ can_change_roles: boolean;
1503
+ }
1504
+ interface GroupMember {
1505
+ user_id: string;
1506
+ username: string;
1507
+ email: string | null;
1508
+ name: string | null;
1509
+ enabled: boolean;
1510
+ role: GroupRole | null;
1511
+ picture: string | null;
1512
+ joined_at: string | null;
1513
+ added_by_username: string | null;
1514
+ }
1515
+ interface RealmUser {
1516
+ id: string;
1517
+ username: string;
1518
+ email: string | null;
1519
+ name: string | null;
1520
+ enabled: boolean;
1521
+ }
1522
+ /**
1523
+ * Grupos de que a pessoa é membro e o que a função dela permite — `argos-admin /me/groups`. Sempre da aplicação LOGADA (o
1524
+ * servidor tira o client do access-token da sessão) e sempre com o token da sessão (o servidor recusa x-app-token).
1525
+ * A regra de quem faz o quê é do servidor; aqui só se mostra o que ele diz (`can_add`, `assignable_roles`,
1526
+ * `can_change_roles`).
1527
+ *
1528
+ * `groups` é a lista que decide se a seção "Grupos" aparece: lida a cada abertura do painel (`refresh`). Sem
1529
+ * `SPINE_ADMIN_API`, ou com um argos-admin que ainda não tem a rota, fica vazia e a seção não aparece.
1530
+ */
1531
+ declare class SpineMyGroupsService {
1532
+ private readonly http;
1533
+ private readonly auth;
1534
+ private readonly adminApi;
1535
+ readonly available: boolean;
1536
+ readonly groups: _angular_core.WritableSignal<ManagedGroup[]>;
1537
+ private get baseUrl();
1538
+ private get headers();
1539
+ /** Relê os grupos; qualquer falha deixa a lista vazia (a seção some em vez de mostrar um erro sem contexto). */
1540
+ refresh(): Promise<void>;
1541
+ members(groupId: string): Promise<{
1542
+ members: GroupMember[];
1543
+ }>;
1544
+ searchUsers(search: string, limit?: number): Promise<{
1545
+ users: RealmUser[];
1546
+ }>;
1547
+ /** `role` ausente ou null: entra sem função (o único jeito de o Editor incluir). */
1548
+ addMember(groupId: string, userId: string, role?: GroupRole | null): Promise<void>;
1549
+ updateRole(groupId: string, userId: string, role: GroupRole | null): Promise<void>;
1550
+ removeMember(groupId: string, userId: string): Promise<void>;
1551
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SpineMyGroupsService, never>;
1552
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<SpineMyGroupsService>;
1553
+ }
1554
+
1472
1555
  /** Um método de verificação em duas etapas, como o Argos devolve (nunca o segredo do TOTP). */
1473
1556
  interface AccountMethod {
1474
1557
  method_id: string;
@@ -2112,6 +2195,6 @@ declare const SPINE_MARKDOWN_PURIFY_CONFIG: Config;
2112
2195
  /** HTML limpo pelo perfil do spine, ou `null` quando não há DOM (SSR: melhor não renderizar). */
2113
2196
  declare function sanitizeSpineMarkdownHtml(html: string): string | null;
2114
2197
 
2115
- export { AiAgentComponent, AppLauncherComponent, HeaderComponent, LayoutComponent, OnboardingOverlayComponent, OnboardingService, SPINE_BRAND, SPINE_IDLE_WARNING_SECONDS, SPINE_MARKDOWN_PURIFY_CONFIG, SPINE_PREFERENCES_SAVE_DELAY_MS, SPINE_SETTINGS_ALIASES, SPINE_SETTINGS_KEYS, SPINE_SETTINGS_SECTIONS, SettingsPanelComponent, ShortcutService, ShortcutsCheatsheetComponent, SidebarComponent, SpineAccountPreferencesService, SpineAccountSecurityService, SpineAppTokensService, SpineBrandComponent, SpineConnectionBannerComponent, SpineDocsComponent, SpineDocsService, SpineIdleService, SpineIdleWarningComponent, SpineLogoutService, SpineMarkdownComponent, SpineNewsComponent, SpineNewsService, SpineNoticesService, SpineSettingsService, SpineStartPageService, accountErrorCode, argosAccountApi, buildMcpConfig, effectiveIdleMinutes, findTourTarget, idleLimits, isInternalPath, provideSettingsSection, resolveSettingsSection, sanitizeSpineMarkdownHtml, stable };
2116
- export type { AccountActivityEntry, AccountActivityPage, AccountBadges, AccountMethod, AccountOverview, AccountPreferences, AccountReauth, AccountSession, AppToken, AppTokenList, AppTokenOptions, CreatedAppToken, DocsEntry, DocsGroup, DocsView, OnboardingState, OnboardingStep, ShortcutActions, ShortcutGroup, ShortcutGroupId, ShortcutItem, SpineAccountPreferencesDoc, SpineAccountPreferencesStatus, SpineIdleLimits, SpineNotice, SpineNoticePermission, SpineSettingsSection };
2198
+ export { AiAgentComponent, AppLauncherComponent, HeaderComponent, LayoutComponent, OnboardingOverlayComponent, OnboardingService, SPINE_BRAND, SPINE_IDLE_WARNING_SECONDS, SPINE_MARKDOWN_PURIFY_CONFIG, SPINE_PREFERENCES_SAVE_DELAY_MS, SPINE_SETTINGS_ALIASES, SPINE_SETTINGS_KEYS, SPINE_SETTINGS_SECTIONS, SettingsPanelComponent, ShortcutService, ShortcutsCheatsheetComponent, SidebarComponent, SpineAccountPreferencesService, SpineAccountSecurityService, SpineAppTokensService, SpineBrandComponent, SpineConnectionBannerComponent, SpineDocsComponent, SpineDocsService, SpineIdleService, SpineIdleWarningComponent, SpineLogoutService, SpineMarkdownComponent, SpineMyGroupsService, SpineNewsComponent, SpineNewsService, SpineNoticesService, SpineSettingsService, SpineStartPageService, accountErrorCode, argosAccountApi, buildMcpConfig, effectiveIdleMinutes, findTourTarget, idleLimits, isInternalPath, provideSettingsSection, resolveSettingsSection, sanitizeSpineMarkdownHtml, stable };
2199
+ export type { AccountActivityEntry, AccountActivityPage, AccountBadges, AccountMethod, AccountOverview, AccountPreferences, AccountReauth, AccountSession, AppToken, AppTokenList, AppTokenOptions, CreatedAppToken, DocsEntry, DocsGroup, DocsView, GroupMember, GroupRole, ManagedGroup, OnboardingState, OnboardingStep, RealmUser, ShortcutActions, ShortcutGroup, ShortcutGroupId, ShortcutItem, SpineAccountPreferencesDoc, SpineAccountPreferencesStatus, SpineIdleLimits, SpineNotice, SpineNoticePermission, SpineSettingsSection };
2117
2200
  //# sourceMappingURL=trismegisto-spine-layout.d.ts.map
@@ -1 +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/logout/logout.service.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/account-preferences/account-preferences.service.ts","../../../projects/ui/layout/src/notices/notices.service.ts","../../../projects/ui/layout/src/settings/settings-panel.component.ts","../../../projects/ui/layout/src/settings/app-tokens.service.ts","../../../projects/ui/layout/src/settings/account-security.service.ts","../../../projects/ui/layout/src/settings/ai-agent.component.ts","../../../projects/ui/layout/src/features/spine-features.ts","../../../projects/ui/layout/src/idle/idle.service.ts","../../../projects/ui/layout/src/idle/idle-warning.component.ts","../../../projects/ui/layout/src/start-page/start-page.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","../../../projects/ui/layout/src/docs/markdown-sanitize.ts"],"mappings":"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","names":[]}
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/logout/logout.service.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/account-preferences/account-preferences.service.ts","../../../projects/ui/layout/src/notices/notices.service.ts","../../../projects/ui/layout/src/settings/settings-panel.component.ts","../../../projects/ui/layout/src/settings/app-tokens.service.ts","../../../projects/ui/layout/src/settings/my-groups.service.ts","../../../projects/ui/layout/src/settings/account-security.service.ts","../../../projects/ui/layout/src/settings/ai-agent.component.ts","../../../projects/ui/layout/src/features/spine-features.ts","../../../projects/ui/layout/src/idle/idle.service.ts","../../../projects/ui/layout/src/idle/idle-warning.component.ts","../../../projects/ui/layout/src/start-page/start-page.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","../../../projects/ui/layout/src/docs/markdown-sanitize.ts"],"mappings":"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","names":[]}
@@ -2,6 +2,7 @@ import * as _angular_core from '@angular/core';
2
2
  import { Type, InjectionToken, NgZone, EnvironmentProviders, Provider } from '@angular/core';
3
3
  import { HermesThemeName, HermesThemeMode, HermesFamily, HermesDensity } from '@trismegisto/angular';
4
4
  import { HermesThemeExtension, TimeHourCycle, HermesMotionPreference, Weekday, PluralMessage, CatalogOverride } from '@trismegisto/primitives';
5
+ export { LoadRuntimeConfigOptions, loadRuntimeConfig } from '@trismegisto/primitives';
5
6
 
6
7
  interface Route {
7
8
  route_display_name?: string | null;
@@ -530,7 +531,7 @@ interface RuntimeEnvironmentShape {
530
531
  interface RuntimeEnvironmentInfo {
531
532
  /** `window.location.origin`. */
532
533
  readonly origin: string;
533
- /** Prefixo do app (base href sem a barra final), ex.: `/prometeu`. Vazio na raiz. */
534
+ /** Prefixo do app (base href sem a barra final), ex.: `/app-exemplo`. Vazio na raiz. */
534
535
  readonly basePath: string;
535
536
  /** Sem porta na URL: o app está atrás do proxy (Caddy), não na porta direta do container. */
536
537
  readonly behindProxy: boolean;
@@ -539,11 +540,12 @@ interface RuntimeEnvironmentInfo {
539
540
  }
540
541
  /**
541
542
  * Ajusta o `environment` ao lugar onde o app está rodando — chamar no `main.ts`, ANTES do
542
- * `bootstrapApplication`. Antes cada app tinha a sua versão (só o Hefesto derivava as URLs); agora a
543
+ * `bootstrapApplication` e DEPOIS do `loadRuntimeConfig` (que traz o `config.json` do deploy: o que ele definir
544
+ * explicitamente não é derivado aqui). Antes cada app tinha a sua versão (só o Hefesto derivava as URLs); agora a
543
545
  * regra é uma só:
544
546
  *
545
547
  * - **Sempre:** `redirectUrl`/`postLogoutRedirectUri` = origem + prefixo atual. O servidor exige
546
- * `redirect_uri` absoluto e o app pode viver sob um prefixo (`/prometeu`); um valor fixo no
548
+ * `redirect_uri` absoluto e o app pode viver sob um prefixo (`/app-exemplo`); um valor fixo no
547
549
  * environment não bate com a rota real e o callback nunca casa.
548
550
  * - **Atrás do proxy (sem porta na URL):**
549
551
  * - `authority` = `<origem>/argos` — mesmo domínio da página, senão o cookie de sessão sai com o
@@ -871,6 +873,14 @@ interface SpineMessages {
871
873
  appTokensKeywords: string;
872
874
  /** Detalhe dos tokens de aplicação (toggletip ao lado do rótulo). */
873
875
  appTokensHelp: string;
876
+ /** Seção "Grupos" (`?settings=grupos`): os grupos desta aplicação de que a pessoa é membro. */
877
+ groups: string;
878
+ groupsDescription: string;
879
+ groupsKeywords: string;
880
+ /** Função e crachá de um grupo (na lista e no topo da tela de membros); `{role}`, `{badge}`. */
881
+ groupRole: string;
882
+ /** O mesmo, para um grupo desativado; `{role}`. */
883
+ groupRoleDisabled: string;
874
884
  logout: string;
875
885
  logoutDescription: string;
876
886
  logoutKeywords: string;
@@ -980,6 +990,55 @@ interface SpineMessages {
980
990
  revoked: string;
981
991
  revokeError: string;
982
992
  };
993
+ /** Membros de um grupo na seção "Grupos" das configurações (argos-admin `/me/groups`). */
994
+ myGroups: {
995
+ loading: string;
996
+ loadError: string;
997
+ /** Nome de cada função no grupo (o Argos guarda Administrador, Editor ou nenhuma). */
998
+ roleAdministrator: string;
999
+ roleEditor: string;
1000
+ /** Sem função: o membro comum, que só vê os outros. */
1001
+ roleMember: string;
1002
+ /** Rótulo acessível da lista de grupos. */
1003
+ listLabel: string;
1004
+ /** Botão no topo da tela de membros. */
1005
+ back: string;
1006
+ /** Marca a própria pessoa na lista. */
1007
+ you: string;
1008
+ membersCount: PluralMessage;
1009
+ empty: string;
1010
+ /** Aviso de quem é membro sem função. */
1011
+ readOnly: string;
1012
+ addMember: string;
1013
+ /** `{group}`. */
1014
+ addHeading: string;
1015
+ search: string;
1016
+ searchPlaceholder: string;
1017
+ searchHint: string;
1018
+ searching: string;
1019
+ noResults: string;
1020
+ searchError: string;
1021
+ /** Resultado da busca que já está no grupo. */
1022
+ alreadyMember: string;
1023
+ role: string;
1024
+ /** Editor não escolhe a função. */
1025
+ editorAddsMembers: string;
1026
+ add: string;
1027
+ cancel: string;
1028
+ /** `{name}`. */
1029
+ added: string;
1030
+ addError: string;
1031
+ /** Rótulo acessível do seletor de função; `{name}`. */
1032
+ roleOf: string;
1033
+ /** `{name}`, `{role}`. */
1034
+ roleChanged: string;
1035
+ roleError: string;
1036
+ remove: string;
1037
+ confirmRemove: string;
1038
+ /** `{name}`. */
1039
+ removed: string;
1040
+ removeError: string;
1041
+ };
983
1042
  accountSecurity: {
984
1043
  loading: string;
985
1044
  loadError: string;
@@ -1 +1 @@
1
- {"version":3,"file":"trismegisto-spine.d.ts","sources":["../../../projects/ui/src/route.model.ts","../../../projects/ui/src/route-tree.ts","../../../projects/ui/src/hermes.imports.ts","../../../projects/ui/src/brand.ts","../../../projects/ui/src/app-config.token.ts","../../../projects/ui/src/theme.service.ts","../../../projects/ui/src/theme-preset.service.ts","../../../projects/ui/src/density.service.ts","../../../projects/ui/src/theme.initializer.ts","../../../projects/ui/src/package-info.token.ts","../../../projects/ui/src/preferences.service.ts","../../../projects/ui/src/admin-api.token.ts","../../../projects/ui/src/quick-access.service.ts","../../../projects/ui/src/user-storage.ts","../../../projects/ui/src/runtime-environment.ts","../../../projects/ui/src/news.token.ts","../../../projects/ui/src/i18n/spine-messages.ts","../../../projects/ui/src/i18n/spine-messages.en.ts","../../../projects/ui/src/i18n/spine-messages.es.ts","../../../projects/ui/src/i18n/spine-i18n.ts"],"mappings":"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","names":[]}
1
+ {"version":3,"file":"trismegisto-spine.d.ts","sources":["../../../projects/ui/src/route.model.ts","../../../projects/ui/src/route-tree.ts","../../../projects/ui/src/hermes.imports.ts","../../../projects/ui/src/brand.ts","../../../projects/ui/src/app-config.token.ts","../../../projects/ui/src/theme.service.ts","../../../projects/ui/src/theme-preset.service.ts","../../../projects/ui/src/density.service.ts","../../../projects/ui/src/theme.initializer.ts","../../../projects/ui/src/package-info.token.ts","../../../projects/ui/src/preferences.service.ts","../../../projects/ui/src/admin-api.token.ts","../../../projects/ui/src/quick-access.service.ts","../../../projects/ui/src/user-storage.ts","../../../projects/ui/src/runtime-environment.ts","../../../projects/ui/src/news.token.ts","../../../projects/ui/src/i18n/spine-messages.ts","../../../projects/ui/src/i18n/spine-messages.en.ts","../../../projects/ui/src/i18n/spine-messages.es.ts","../../../projects/ui/src/i18n/spine-i18n.ts"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"trismegisto-spine-auto-service-auto-service-groups.component-2xCG_wS9.mjs","sources":["../../../projects/ui/auto-service/src/groups/group-modal/auto-service-group-modal.component.ts","../../../projects/ui/auto-service/src/groups/group-modal/auto-service-group-modal.component.html","../../../projects/ui/auto-service/src/groups/members/auto-service-group-members.component.ts","../../../projects/ui/auto-service/src/groups/members/auto-service-group-members.component.html","../../../projects/ui/auto-service/src/groups/members-modal/auto-service-group-members-modal.component.ts","../../../projects/ui/auto-service/src/groups/members-modal/auto-service-group-members-modal.component.html","../../../projects/ui/auto-service/src/groups/auto-service-groups.component.ts","../../../projects/ui/auto-service/src/groups/auto-service-groups.component.html"],"sourcesContent":["import { Component, Input, Output, EventEmitter, OnChanges, SimpleChanges, ChangeDetectionStrategy, inject, ChangeDetectorRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, ReactiveFormsModule, Validators } from '@angular/forms';\nimport {\n AlertComponent, ButtonComponent, CheckboxComponent, ComboboxComponent, ComboboxOption, InputComponent, ModalComponent, TextareaComponent,\n} from '@trismegisto/angular';\nimport { SPINE_MESSAGES } from '@trismegisto/spine';\nimport { autoServiceErrorText } from '../../auto-service-errors';\nimport { optionalIdBody, optionalIdValidator } from '../../optional-id.validator';\nimport { AutoServiceGroup, AutoServiceGroupType, AutoServiceService } from '../../auto-service.service';\n\n/** Limite do nome no servidor (1–100). */\nexport const GROUP_NAME_MAX = 100;\n\n/**\n * Criar/editar grupo do projeto do client. Só os tipos `assignable` são oferecidos (o Administrador nunca é: é do grupo\n * de administração, que é gerido só no painel central e não aparece no auto-serviço). Falha do servidor aparece no próprio modal, no idioma ativo.\n * Mirror de admin/ui/.../groups/modals/groups-modal (argos-admin), sem o seletor de projeto.\n */\n@Component({\n selector: 'spine-auto-service-group-modal',\n standalone: true,\n imports: [\n CommonModule, ReactiveFormsModule, AlertComponent, ButtonComponent, CheckboxComponent, ComboboxComponent, InputComponent,\n ModalComponent, TextareaComponent,\n ],\n templateUrl: './auto-service-group-modal.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n styleUrls: ['./auto-service-group-modal.component.scss'],\n})\nexport class AutoServiceGroupModalComponent implements OnChanges {\n protected readonly text = inject(SPINE_MESSAGES).autoService;\n /** Telas com estado em campo comum, preenchido depois de `await`: marca a view ao terminar (app sem zone.js). */\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly service = inject(AutoServiceService);\n /** Grupo em edição; `null` cria. */\n @Input() group: AutoServiceGroup | null = null;\n @Input() clientId = '';\n @Input() groupTypes: readonly AutoServiceGroupType[] = [];\n @Input() open = false;\n @Output() openChange = new EventEmitter<boolean>();\n /** O grupo gravado (o servidor devolve o grupo criado/alterado). */\n @Output() saved = new EventEmitter<AutoServiceGroup>();\n\n protected readonly nameMax = GROUP_NAME_MAX;\n readonly name = new FormControl('', { nonNullable: true, validators: [Validators.required, Validators.maxLength(GROUP_NAME_MAX)] });\n readonly typeId = new FormControl('', { nonNullable: true, validators: [Validators.required] });\n readonly description = new FormControl('', { nonNullable: true });\n /** Id opcional só na criação (mesmo grupo com o mesmo id em homologação e produção). */\n readonly newId = new FormControl('', { nonNullable: true, validators: [optionalIdValidator] });\n readonly enabled = new FormControl(true, { nonNullable: true });\n\n saving = false;\n saveError: string | null = null;\n\n get isEdit(): boolean { return !!this.group?.id; }\n\n /** Tipos que dá para escolher (`assignable`; o Administrador nunca). */\n typeOptions: ComboboxOption[] = [];\n\n get canSave(): boolean {\n if (this.saving) return false;\n return this.name.valid && !!this.name.value.trim() && this.typeId.valid && (this.isEdit || this.newId.valid);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['groupTypes'] || changes['group']) {\n this.typeOptions = this.groupTypes\n .filter((t) => t.assignable !== false)\n .map((t) => ({ value: t.id, label: t.name }));\n }\n if (changes['open'] && this.open) this.resetForm();\n }\n\n resetForm() {\n const g = this.isEdit ? this.group : null;\n this.saveError = null;\n this.name.reset(g?.name ?? '');\n this.typeId.reset(g?.type?.id ?? '');\n this.description.reset(g?.description ?? '');\n this.newId.reset('');\n this.enabled.reset(g ? !!g.enabled : true);\n }\n\n onModalOpenChange(value: boolean) { this.open = value; this.openChange.emit(value); }\n close() { this.onModalOpenChange(false); }\n\n async save() {\n if (!this.canSave) return;\n this.saving = true;\n this.saveError = null;\n this.cdr.markForCheck();\n // Descrição vazia vai como null na edição: o servidor só ignora campo ausente, e é assim que se apaga a descrição.\n const description = this.description.value.trim();\n try {\n let saved: AutoServiceGroup;\n if (this.isEdit && this.group) {\n saved = await this.service.updateGroup(this.clientId, this.group.id,\n { name: this.name.value.trim(), type_id: this.typeId.value, description: description || null, enabled: this.enabled.value });\n } else {\n saved = await this.service.createGroup(this.clientId, {\n ...optionalIdBody('group_id', this.newId.value),\n name: this.name.value.trim(), type_id: this.typeId.value, ...(description ? { description } : {}),\n });\n }\n this.saved.emit(saved);\n this.close();\n } catch (err) {\n this.saveError = autoServiceErrorText(err, this.text, this.text.groupSaveError);\n } finally { this.saving = false; this.cdr.markForCheck(); }\n }\n}\n","<hm-modal [open]=\"open\" (openChange)=\"onModalOpenChange($event)\" [heading]=\"isEdit ? text.editGroup : text.newGroup\" (closed)=\"close()\">\n <div class=\"form-stack\">\n <hm-alert *ngIf=\"saveError\" variant=\"error\">{{ saveError }}</hm-alert>\n @if (!isEdit) {\n <hm-input [formControl]=\"newId\" [label]=\"text.optionalId\" [placeholder]=\"text.optionalIdPlaceholder\" [hint]=\"text.optionalIdHint\" [messages]=\"{ optionalId: text.optionalIdInvalid }\" />\n }\n <hm-input [formControl]=\"name\" [label]=\"text.groupName\" [maxLength]=\"nameMax\" />\n <hm-combobox [formControl]=\"typeId\" [options]=\"typeOptions\" [label]=\"text.groupType\" [placeholder]=\"text.groupTypePlaceholder\" />\n <hm-textarea [formControl]=\"description\" [label]=\"text.groupDescription\" />\n <hm-checkbox *ngIf=\"isEdit\" [formControl]=\"enabled\" [label]=\"text.active\" />\n </div>\n\n <ng-container footer>\n <hm-button emphasis=\"medium\" (clicked)=\"close()\">{{ text.cancel }}</hm-button>\n <hm-button [disabled]=\"!canSave\" [loading]=\"saving\" (clicked)=\"save()\">{{ isEdit ? text.save : text.create }}</hm-button>\n </ng-container>\n</hm-modal>\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ChangeDetectionStrategy, inject, computed, ChangeDetectorRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AccountAvatarComponent, ButtonComponent, DataGridComponent, DataGridCellDirective, GridColumn, TagComponent } from '@trismegisto/angular';\nimport { AutoServiceService } from '../../auto-service.service';\nimport { SPINE_MESSAGES } from '@trismegisto/spine';\n\ninterface GroupMemberRow {\n user_id: string;\n username: string;\n email: string;\n name?: string | null;\n picture?: string | null;\n enabled?: boolean;\n joined_at?: string | null;\n}\n\n// Mirror de admin/ui/.../groups/members/group-members.component.ts (argos-admin),\n// adaptado pra falar com /auto-service/:clientId/groups/:groupId/members em vez de\n// /admin/groups/:groupId/members.\n@Component({\n selector: 'spine-auto-service-group-members',\n standalone: true,\n imports: [CommonModule, ButtonComponent, TagComponent, AccountAvatarComponent, DataGridComponent, DataGridCellDirective],\n templateUrl: './auto-service-group-members.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n styleUrls: ['./auto-service-group-members.component.scss'],\n})\nexport class AutoServiceGroupMembersComponent implements OnChanges {\n\n private readonly catalog = inject(SPINE_MESSAGES);\n /** Data e hora curtas no idioma ativo. */\n protected formatDate(value: string | null | undefined): string {\n return value ? new Intl.DateTimeFormat(this.catalog.meta.locale, { dateStyle: 'short', timeStyle: 'short' }).format(new Date(value)) : '';\n }\n protected readonly text = inject(SPINE_MESSAGES).autoService;\n /** Telas com estado em campo comum, preenchido depois de `await`: marca a view ao terminar (app sem zone.js). */\n private readonly cdr = inject(ChangeDetectorRef);\n @Input() clientId = '';\n @Input() groupId = '';\n @Input() refreshTrigger = 0;\n @Output() countChange = new EventEmitter<number>();\n @Output() manageMembers = new EventEmitter<void>();\n\n members: GroupMemberRow[] = [];\n loading = false;\n\n readonly rowId = (m: GroupMemberRow) => m.user_id;\n\n readonly columns = computed<GridColumn<GroupMemberRow>[]>(() => [\n { key: 'username', title: this.text.colUser, value: (m) => m.name || m.username, sortable: true },\n {\n key: 'joined_at',\n title: this.text.colMemberSince,\n value: (m) => (m.joined_at ? this.formatDate(m.joined_at) : '—'),\n sortable: true,\n },\n ]);\n\n constructor(private service: AutoServiceService) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['groupId'] || changes['refreshTrigger']) {\n this.load();\n }\n }\n\n async load() {\n if (!this.clientId || !this.groupId) {\n this.members = [];\n this.countChange.emit(0);\n return;\n }\n this.loading = true;\n try {\n const res = await this.service.getGroupMembers(this.clientId, this.groupId);\n this.members = res.members;\n this.countChange.emit(this.members.length);\n } finally { this.loading = false; this.cdr.markForCheck(); }\n }\n}\n","<hm-data-grid\n [columns]=\"columns()\"\n [rows]=\"members\"\n [rowId]=\"rowId\"\n [caption]=\"text.membersCaption\"\n [loading]=\"loading\"\n [emptyMessage]=\"text.noMembers\"\n>\n <hm-button dataGridActions icon=\"employee-group\" (clicked)=\"manageMembers.emit()\">{{ text.manageMembers }}</hm-button>\n <ng-template hmCell=\"username\" let-m>\n <div class=\"user-cell\">\n <hm-account-avatar class=\"user-cell__avatar\" [name]=\"m.name || m.username\" [imageUrl]=\"m.picture\"></hm-account-avatar>\n <div class=\"user-cell__body\">\n <div class=\"user-cell__name\">\n <b>{{ m.name || m.username }}</b>\n <hm-tag [name]=\"m.enabled ? text.active : text.inactive\" [color]=\"m.enabled ? 'success' : 'danger'\" />\n </div>\n <div class=\"user-cell__email\">\n <ng-container *ngIf=\"m.name\">{{ m.username }} · </ng-container>{{ m.email }}\n </div>\n </div>\n </div>\n </ng-template>\n</hm-data-grid>\n","import { Component, Input, Output, EventEmitter, OnChanges, SimpleChanges, ChangeDetectionStrategy, inject, computed, ChangeDetectorRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport {\n AccountAvatarComponent, AlertComponent, BadgeComponent, ButtonComponent, CardComponent, DataGridCellDirective, DataGridComponent, DividerComponent,\n EMPTY_SELECTION, GridColumn, GridSelection, IconButtonComponent, IconComponent, ModalComponent, SelectComponent, TagComponent,\n} from '@trismegisto/angular';\nimport { AutoServiceService } from '../../auto-service.service';\nimport { SPINE_MESSAGES } from '@trismegisto/spine';\nimport { formatMessage } from '@trismegisto/primitives';\nimport { autoServiceErrorText } from '../../auto-service-errors';\n\ninterface StagedMember {\n user_id: string;\n username: string;\n email: string;\n name?: string | null;\n picture?: string | null;\n enabled?: boolean;\n role?: string | null;\n joined_at?: string | null;\n added_by_username?: string | null;\n new?: boolean;\n}\n\nconst ROLE_OPTIONS = ['Administrador', 'Editor', 'Leitor'];\n\nlet searchSequence = 0;\n\n@Component({\n selector: 'spine-auto-service-group-members-modal',\n standalone: true,\n imports: [\n CommonModule, FormsModule, AccountAvatarComponent, AlertComponent, BadgeComponent, ButtonComponent, CardComponent, DataGridComponent,\n DataGridCellDirective, DividerComponent, IconButtonComponent, IconComponent, ModalComponent, SelectComponent, TagComponent,\n ],\n templateUrl: './auto-service-group-members-modal.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n styleUrls: ['./auto-service-group-members-modal.component.scss'],\n})\nexport class AutoServiceGroupMembersModalComponent implements OnChanges {\n\n private readonly catalog = inject(SPINE_MESSAGES);\n /** Data e hora curtas no idioma ativo. */\n protected formatDate(value: string | null | undefined): string {\n return value ? new Intl.DateTimeFormat(this.catalog.meta.locale, { dateStyle: 'short', timeStyle: 'short' }).format(new Date(value)) : '';\n }\n protected readonly text = inject(SPINE_MESSAGES).autoService;\n /** Telas com estado em campo comum, preenchido depois de `await`: marca a view ao terminar (app sem zone.js). */\n private readonly cdr = inject(ChangeDetectorRef);\n protected readonly fmt = formatMessage;\n @Input() clientId = '';\n @Input() groupId = '';\n @Input() groupName = '';\n @Input() open = false;\n @Output() openChange = new EventEmitter<boolean>();\n @Output() saved = new EventEmitter<void>();\n\n roleOptions = ROLE_OPTIONS;\n /** Liga o rótulo \"Adicionar usuário\" ao campo de busca. */\n protected readonly searchId = `spine-members-search-${++searchSequence}`;\n loading = false;\n saving = false;\n /** Falha ao gravar (no idioma ativo); o que já tinha sido gravado fica — a lista é recarregada. */\n saveError: string | null = null;\n members: StagedMember[] = [];\n /** Ids marcados pra remoção — o grid seleciona por id (não por objeto, ver `GridSelection`). */\n checkedForRemovalIds: GridSelection = EMPTY_SELECTION;\n private originalRoles = new Map<string, string | null>();\n addSearch = '';\n addSearchResults: any[] = [];\n selectedToAdd: any = null;\n selectedRole: string | null = null;\n private addSearchTimer: any;\n suggestions: any[] = [];\n private suggestionsPool: any[] = [];\n private suggestionsVisibleCount = 3;\n\n readonly rowId = (m: StagedMember) => m.user_id;\n\n readonly columns = computed<GridColumn<StagedMember>[]>(() => [\n {\n key: 'username',\n title: this.text.colUser,\n value: (m) => [m.name, m.username, m.email].filter(Boolean).join(' '),\n sortable: true,\n },\n { key: 'role', title: this.text.colRole, value: (m) => m.role ?? '—' },\n {\n key: 'joined_at',\n title: this.text.colAddedAt,\n value: (m) => (m.joined_at ? this.formatDate(m.joined_at) : '—'),\n sortable: true,\n },\n ]);\n\n constructor(private service: AutoServiceService) {}\n\n ngOnChanges(changes: SimpleChanges) { if (changes['open'] && this.open) { this.resetAndLoad(); } }\n\n onModalOpenChange(value: boolean) { this.open = value; this.openChange.emit(value); }\n close() { this.onModalOpenChange(false); }\n\n get checkedForRemoval(): StagedMember[] {\n return this.members.filter((m) => this.checkedForRemovalIds.has(m.user_id));\n }\n get removalCount(): number { return this.checkedForRemovalIds.size; }\n get hasMoreSuggestions(): boolean { return this.suggestionsVisibleCount < this.suggestionsPool.length; }\n\n async resetAndLoad() {\n this.addSearch = ''; this.addSearchResults = []; this.selectedToAdd = null; this.selectedRole = null;\n this.checkedForRemovalIds = EMPTY_SELECTION; this.saveError = null; this.loading = true;\n try {\n const res = await this.service.getGroupMembers(this.clientId, this.groupId);\n this.members = (res.members ?? []).map((m: any) => ({\n user_id: m.user_id, username: m.username, email: m.email, name: m.name ?? null,\n picture: m.picture ?? null, enabled: m.enabled, role: m.role ?? null,\n joined_at: m.joined_at, added_by_username: m.added_by_username ?? null,\n }));\n this.originalRoles = new Map(this.members.map(m => [m.user_id, m.role ?? null]));\n this.cdr.markForCheck();\n await this.loadSuggestions();\n } finally { this.loading = false; this.cdr.markForCheck(); }\n }\n\n async loadSuggestions() {\n if (!this.clientId) { this.suggestionsPool = []; this.suggestions = []; return; }\n const res = await this.service.searchUsers(this.clientId, { limit: 30 });\n const existingIds = new Set(this.members.map(m => m.user_id));\n this.suggestionsPool = (res.users ?? []).filter((u: any) => !existingIds.has(u.id));\n this.suggestionsVisibleCount = 3;\n this.suggestions = this.suggestionsPool.slice(0, this.suggestionsVisibleCount);\n }\n\n showMoreSuggestions() { this.suggestionsVisibleCount += 3; this.suggestions = this.suggestionsPool.slice(0, this.suggestionsVisibleCount); }\n\n onAddSearchChange(value: string) {\n this.addSearch = value; this.selectedToAdd = null; clearTimeout(this.addSearchTimer);\n if (value.trim().length < 2) { this.addSearchResults = []; return; }\n this.addSearchTimer = setTimeout(async () => {\n const res = await this.service.searchUsers(this.clientId, { search: value.trim(), limit: 10 });\n const existingIds = new Set(this.members.map(m => m.user_id));\n this.addSearchResults = (res.users ?? []).filter((u: any) => !existingIds.has(u.id));\n this.cdr.markForCheck();\n }, 300);\n }\n\n selectCandidate(user: any) { this.selectedToAdd = user; this.addSearch = user.username; this.addSearchResults = []; }\n clearSelectedToAdd() { this.selectedToAdd = null; this.addSearch = ''; this.addSearchResults = []; }\n\n addSelectedMember() {\n if (!this.selectedToAdd) return;\n const user = this.selectedToAdd;\n this.members = [{\n user_id: user.id, username: user.username, email: user.email, name: user.name ?? null, picture: user.picture ?? null, enabled: user.enabled,\n role: this.selectedRole, joined_at: null, added_by_username: null, new: true,\n }, ...this.members];\n this.suggestionsPool = this.suggestionsPool.filter(u => u.id !== user.id);\n this.suggestions = this.suggestionsPool.slice(0, this.suggestionsVisibleCount);\n this.clearSelectedToAdd(); this.selectedRole = null;\n }\n\n removeStagedNew(member: StagedMember) { this.members = this.members.filter(m => m.user_id !== member.user_id); }\n\n /** `[(selection)]` do grid: separa o que ainda é staged (nunca existiu no servidor — remove\n * na hora, não \"marca pra remover\") do que já existe (fica marcado, removido só no Salvar). */\n onSelectionChange(ids: GridSelection): void {\n const cleaned = this.members.filter((m) => ids.has(m.user_id));\n const stillNew = cleaned.filter((m) => m.new);\n for (const m of stillNew) this.removeStagedNew(m);\n this.checkedForRemovalIds = new Set([...ids].filter((id) => !stillNew.some((m) => m.user_id === id)));\n }\n\n isMarkedForRemoval(member: StagedMember): boolean { return this.checkedForRemovalIds.has(member.user_id); }\n undoRemoval(member: StagedMember): void {\n const next = new Set(this.checkedForRemovalIds);\n next.delete(member.user_id);\n this.checkedForRemovalIds = next;\n }\n\n async save() {\n this.saving = true;\n this.saveError = null;\n try {\n const toAdd = this.members.filter(m => m.new);\n for (const m of toAdd) { await this.service.addGroupMember(this.clientId, this.groupId, m.user_id, m.role ?? null); }\n for (const m of this.checkedForRemoval) { await this.service.removeGroupMember(this.clientId, this.groupId, m.user_id); }\n const removedIds = this.checkedForRemovalIds;\n const roleChanges = this.members.filter(m => !m.new && !removedIds.has(m.user_id) && (m.role ?? null) !== (this.originalRoles.get(m.user_id) ?? null));\n for (const m of roleChanges) { await this.service.updateGroupMemberRole(this.clientId, this.groupId, m.user_id, m.role ?? null); }\n this.saved.emit();\n this.close();\n } catch (err) {\n // Parte pode ter sido gravada (as chamadas são em sequência): recarrega para mostrar o estado real.\n this.saveError = autoServiceErrorText(err, this.text, this.text.membersSaveError);\n this.saved.emit();\n const error = this.saveError;\n await this.resetAndLoad().catch(() => undefined);\n this.saveError = error;\n } finally { this.saving = false; this.cdr.markForCheck(); }\n }\n}\n","<hm-modal [open]=\"open\" (openChange)=\"onModalOpenChange($event)\" [heading]=\"fmt(text.membersHeading, { group: groupName })\" size=\"large\" (closed)=\"close()\">\n <div class=\"as-stack\">\n <hm-alert *ngIf=\"saveError\" variant=\"error\">{{ saveError }}</hm-alert>\n <hm-card>\n <div class=\"add-section__row\">\n <!-- Busca com lista de candidatos própria (vem da API a cada tecla): o rótulo é o que antes era o\n título do card. -->\n <div class=\"add-field\">\n <label class=\"add-field__label\" [attr.for]=\"searchId\">{{ text.addUser }}</label>\n <div class=\"add-search\">\n <hm-icon shape=\"search\" size=\"16\"></hm-icon>\n <input type=\"text\" [id]=\"searchId\" [placeholder]=\"text.userSearch\"\n [ngModel]=\"addSearch\" (ngModelChange)=\"onAddSearchChange($event)\" />\n <hm-icon shape=\"times\" size=\"14\" *ngIf=\"addSearch\" class=\"add-search__clear\" (click)=\"clearSelectedToAdd()\"></hm-icon>\n\n <div class=\"add-search__results\" *ngIf=\"addSearchResults.length\">\n <button type=\"button\" class=\"add-search__result\" *ngFor=\"let u of addSearchResults\" (click)=\"selectCandidate(u)\">\n <b>{{ u.name || u.username }}</b>\n <span class=\"muted\"><ng-container *ngIf=\"u.name\">{{ u.username }} · </ng-container>{{ u.email }}</span>\n </button>\n </div>\n </div>\n </div>\n\n <hm-select class=\"add-section__role\" [label]=\"text.role\" [value]=\"selectedRole ?? ''\" (valueChange)=\"selectedRole = $event || null\">\n <option value=\"\">{{ text.pickRole }}</option>\n <option *ngFor=\"let r of roleOptions\" [value]=\"r\">{{ r }}</option>\n </hm-select>\n\n <hm-button [disabled]=\"!selectedToAdd\" (clicked)=\"addSelectedMember()\">\n {{ text.add }}\n </hm-button>\n </div>\n\n <div class=\"suggestions\" *ngIf=\"suggestions.length\">\n <hm-divider [label]=\"text.suggestions\" />\n <div class=\"suggestions__row\">\n <button type=\"button\" class=\"suggestion-card\" *ngFor=\"let u of suggestions\" (click)=\"selectCandidate(u)\">\n <b>{{ u.name || u.username }}</b>\n <span class=\"muted\"><ng-container *ngIf=\"u.name\">{{ u.username }} · </ng-container>{{ u.email }}</span>\n </button>\n <hm-button *ngIf=\"hasMoreSuggestions\" emphasis=\"minimal\" (clicked)=\"showMoreSuggestions()\">\n {{ text.moreSuggestions }}\n </hm-button>\n </div>\n </div>\n </hm-card>\n\n <div class=\"members-split\">\n <div class=\"members-split__grid\">\n <hm-data-grid\n [columns]=\"columns()\"\n [rows]=\"members\"\n [rowId]=\"rowId\"\n [caption]=\"fmt(text.membersOf, { group: groupName })\"\n [loading]=\"loading\"\n [selectable]=\"true\"\n [selection]=\"checkedForRemovalIds\"\n (selectionChange)=\"onSelectionChange($event)\"\n [emptyMessage]=\"text.noMembersShort\"\n >\n <ng-template hmCell=\"username\" let-m>\n <div class=\"user-cell\">\n <hm-account-avatar class=\"user-cell__avatar\" [name]=\"m.name || m.username\" [imageUrl]=\"m.picture\"></hm-account-avatar>\n <div class=\"user-cell__body\">\n <div class=\"user-cell__name\">\n <b>{{ m.name || m.username }}</b>\n <hm-tag *ngIf=\"m.new\" [name]=\"text.newMember\" color=\"info\" />\n </div>\n <div class=\"user-cell__email\">\n <ng-container *ngIf=\"m.name\">{{ m.username }} · </ng-container>{{ m.email }}\n </div>\n </div>\n </div>\n </ng-template>\n\n <ng-template hmCell=\"role\" let-m>\n <hm-select class=\"role-cell\" [label]=\"text.colRole\" labelHidden [disabled]=\"isMarkedForRemoval(m)\"\n [value]=\"m.role ?? ''\" (valueChange)=\"m.role = $event || null\">\n <option value=\"\">—</option>\n <option *ngFor=\"let r of roleOptions\" [value]=\"r\">{{ r }}</option>\n </hm-select>\n </ng-template>\n\n <ng-template hmCell=\"joined_at\" let-m>\n <ng-container *ngIf=\"m.joined_at\">\n {{ formatDate(m.joined_at) }}\n <div class=\"muted\" *ngIf=\"m.added_by_username\">{{ fmt(text.addedBy, { user: m.added_by_username }) }}</div>\n </ng-container>\n <ng-container *ngIf=\"!m.joined_at\">—</ng-container>\n </ng-template>\n </hm-data-grid>\n </div>\n\n <div class=\"members-split__removal\">\n <hm-card class=\"removal-card\">\n <div class=\"removal-header\">\n <hm-icon shape=\"trash\"></hm-icon> {{ text.removal }} <hm-badge [value]=\"removalCount\" intent=\"danger\" />\n </div>\n\n <div class=\"removal-empty\" *ngIf=\"removalCount === 0\">\n <hm-icon shape=\"employee-group\" size=\"xxl\"></hm-icon>\n <p class=\"muted\">{{ text.removalEmpty }}</p>\n </div>\n\n <div class=\"removal-item\" *ngFor=\"let m of checkedForRemoval\">\n <div class=\"user-cell\">\n <hm-account-avatar class=\"user-cell__avatar\" [name]=\"m.name || m.username\"></hm-account-avatar>\n <div class=\"user-cell__body\">\n <b>{{ m.name || m.username }}</b>\n <div class=\"user-cell__email\">\n <ng-container *ngIf=\"m.name\">{{ m.username }} · </ng-container>{{ m.email }}\n </div>\n </div>\n </div>\n <hm-icon-button emphasis=\"subtle\" icon=\"undo\" [label]=\"text.undoRemoval\" (clicked)=\"undoRemoval(m)\" />\n </div>\n </hm-card>\n </div>\n </div>\n </div>\n\n <ng-container footer>\n <hm-button emphasis=\"medium\" (clicked)=\"close()\">{{ text.cancel }}</hm-button>\n <hm-button [loading]=\"saving\" [disabled]=\"saving\" (clicked)=\"save()\" icon=\"floppy\">\n {{ text.saveChanges }}\n </hm-button>\n </ng-container>\n</hm-modal>\n","import { Component, ChangeDetectionStrategy, inject, ChangeDetectorRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n ButtonComponent, CardComponent, ComboboxComponent, ComboboxOption, HermesDialogService, TagColor, TagComponent,\n} from '@trismegisto/angular';\nimport { formatMessage } from '@trismegisto/primitives';\nimport { SPINE_MESSAGES } from '@trismegisto/spine';\nimport { AutoServiceDeleteFeedback } from '../auto-service-delete';\nimport { AutoServiceGroup, AutoServiceGroupType, AutoServiceService } from '../auto-service.service';\nimport { AutoServiceClient, AutoServiceClientPickerComponent } from '../client-picker/auto-service-client-picker.component';\nimport { AutoServiceGroupModalComponent } from './group-modal/auto-service-group-modal.component';\nimport { AutoServiceGroupMembersComponent } from './members/auto-service-group-members.component';\nimport { AutoServiceGroupMembersModalComponent } from './members-modal/auto-service-group-members-modal.component';\n\n/** Valor do seletor de nível para os grupos sem tipo (servidor antigo). */\nexport const NO_LEVEL = '__sem-nivel__';\n\n/**\n * Grupos do projeto do client: Novo grupo e um cartão com dois seletores, o nível de acesso (tipo do grupo, do mais alto\n * para o mais baixo) e o grupo daquele nível, mais Consultar; o grupo consultado mostra o resumo (Editar/Excluir) e os\n * membros. O grupo de administração do projeto (`is_admin`) é gerido só no painel central (Argos): o\n * servidor não o devolve no auto-serviço e, se um servidor antigo devolver, a tela descarta. Mirror de admin/ui/.../features/admin/groups (argos-admin), escopado em `/auto-service/:clientId`.\n */\n@Component({\n selector: 'spine-auto-service-groups',\n standalone: true,\n imports: [\n CommonModule, ButtonComponent, CardComponent, ComboboxComponent, TagComponent,\n AutoServiceClientPickerComponent, AutoServiceGroupModalComponent, AutoServiceGroupMembersComponent, AutoServiceGroupMembersModalComponent,\n ],\n templateUrl: './auto-service-groups.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n styleUrls: ['./auto-service-groups.component.scss'],\n})\nexport class AutoServiceGroupsComponent {\n protected readonly text = inject(SPINE_MESSAGES).autoService;\n /** Telas com estado em campo comum, preenchido depois de `await`: marca a view ao terminar (app sem zone.js). */\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly dialogs = inject(HermesDialogService);\n private readonly deletion = inject(AutoServiceDeleteFeedback);\n private readonly service = inject(AutoServiceService);\n client: AutoServiceClient | null = null;\n groups: AutoServiceGroup[] = [];\n groupTypes: AutoServiceGroupType[] = [];\n loading = false;\n /** Nível escolhido no primeiro seletor (id do tipo, ou `NO_LEVEL`). */\n selectedLevel = '';\n /** Grupo escolhido no segundo seletor (só abre ao Consultar). */\n selectedGroupId = '';\n /** Grupo aberto (resumo + membros embaixo do seletor). */\n group: AutoServiceGroup | null = null;\n memberCount = 0;\n showMembersModal = false;\n membersVersion = 0;\n /** Grupo do modal de criar/editar; `null` cria. */\n modalGroup: AutoServiceGroup | null = null;\n showGroupModal = false;\n\n /**\n * Níveis do primeiro seletor: os tipos de `group-types` que se pode atribuir ou que já têm grupo na lista (o\n * Administrador, só do grupo de administração, fica de fora), mais os tipos que só aparecem nos grupos (sem a rota de\n * tipos) e \"Sem nível\" se algum grupo não tiver tipo. Do nível mais alto para o mais baixo. Recalculado na carga\n * (`refreshOptions`), não a cada checagem: o `hm-combobox` recebe sempre o mesmo array.\n */\n levelOptions: ComboboxOption[] = [];\n /** Grupos do nível escolhido, em ordem alfabética. */\n groupOptions: ComboboxOption[] = [];\n\n private buildLevelOptions(): ComboboxOption[] {\n const used = new Set(this.groups.map((g) => g.type?.id).filter((id): id is string => !!id));\n const levels = new Map<string, { name: string; level: number }>();\n for (const t of this.groupTypes) {\n if (t.assignable !== false || used.has(t.id)) levels.set(t.id, { name: t.name, level: t.level ?? 0 });\n }\n for (const g of this.groups) {\n if (g.type?.id && !levels.has(g.type.id)) levels.set(g.type.id, { name: g.type.name ?? g.type.id, level: g.type.level ?? 0 });\n }\n const options: ComboboxOption[] = [...levels.entries()]\n .sort((a, b) => b[1].level - a[1].level)\n .map(([id, t]) => ({ value: id, label: t.name }));\n if (this.groups.some((g) => !g.type?.id)) options.push({ value: NO_LEVEL, label: this.text.noLevel });\n return options;\n }\n\n private buildGroupOptions(): ComboboxOption[] {\n if (!this.selectedLevel) return [];\n return this.groups\n .filter((g) => this.levelOf(g) === this.selectedLevel)\n .map((g) => ({ value: g.id, label: g.name }))\n .sort((a, b) => a.label.localeCompare(b.label));\n }\n\n onClientChange(c: AutoServiceClient | null) {\n this.client = c;\n this.group = null;\n this.selectedLevel = '';\n this.selectedGroupId = '';\n this.groups = [];\n this.refreshOptions();\n void this.load();\n }\n\n /** Cor do selo do tipo de grupo (`hm-tag`): quanto mais alto o nível, mais \"quente\". O texto do\n * selo é o nome do tipo — a cor só reforça (WCAG 1.4.1). */\n levelTagColor(level?: number): TagColor {\n if (!level) return 'neutral';\n if (level >= 50) return 'danger';\n if (level >= 40) return 'warning';\n if (level >= 30) return 'info';\n if (level >= 20) return 'success';\n return 'neutral';\n }\n\n private levelOf(g: AutoServiceGroup): string { return g.type?.id || NO_LEVEL; }\n\n private refreshOptions() {\n this.levelOptions = this.buildLevelOptions();\n this.groupOptions = this.buildGroupOptions();\n }\n\n /** Trocar de nível limpa o grupo escolhido (ele é de outro nível). */\n selectLevel(level: string) {\n if (level !== this.selectedLevel) this.selectedGroupId = '';\n this.selectedLevel = level;\n this.groupOptions = this.buildGroupOptions();\n this.cdr.markForCheck();\n }\n\n /** Consultar: abre o grupo escolhido no segundo seletor. */\n searchGroup() {\n const g = this.groups.find((x) => x.id === this.selectedGroupId);\n if (g) this.openGroup(g);\n }\n\n /** Grupos (do tipo de nível mais alto para o mais baixo) e os tipos do realm, juntos. */\n async load() {\n const client = this.client;\n if (!client) { this.groups = []; this.groupTypes = []; return; }\n this.loading = true;\n this.cdr.markForCheck();\n try {\n // Sem os tipos (admin-server sem `group-types`) a lista abre igual; só o modal fica sem tipo para escolher.\n const [groups, types] = await Promise.all([\n this.service.getGroups(client.id),\n this.service.getGroupTypes(client.id).catch(() => ({ group_types: [] as AutoServiceGroupType[] })),\n ]);\n if (this.client?.id !== client.id) return;\n // O grupo de administração não é do auto-serviço; servidor antigo ainda o devolve.\n this.groups = (groups.groups ?? []).filter((g) => !g.is_admin).sort((a, b) => (b.type?.level ?? 0) - (a.type?.level ?? 0));\n this.groupTypes = types.group_types ?? [];\n // O grupo aberto acompanha o que o servidor devolveu (nome/descrição/nível novos) ou fecha se sumiu.\n if (this.group) this.group = this.groups.find((g) => g.id === this.group!.id) ?? null;\n if (this.group) this.openGroup(this.group);\n else if (this.selectedGroupId && !this.groups.some((g) => g.id === this.selectedGroupId)) this.selectedGroupId = '';\n this.refreshOptions();\n } finally { this.loading = false; this.cdr.markForCheck(); }\n }\n\n /** Abre o grupo e deixa os dois seletores apontando para ele (nível e grupo). */\n openGroup(g: AutoServiceGroup) {\n if (this.group?.id !== g.id) this.memberCount = 0;\n this.group = g;\n this.selectedLevel = this.levelOf(g);\n this.selectedGroupId = g.id;\n this.groupOptions = this.buildGroupOptions();\n this.cdr.markForCheck();\n }\n\n openCreate() { this.modalGroup = null; this.showGroupModal = true; this.cdr.markForCheck(); }\n openEdit(g: AutoServiceGroup) { this.modalGroup = g; this.showGroupModal = true; this.cdr.markForCheck(); }\n\n async onGroupSaved(saved: AutoServiceGroup) {\n await this.load();\n // Recém-criado já abre, para incluir os membros em seguida.\n const fresh = this.groups.find((g) => g.id === saved?.id);\n if (fresh) this.openGroup(fresh);\n this.cdr.markForCheck();\n }\n\n /** Botão Excluir do resumo: confirma e exclui. */\n async confirmDelete(g: AutoServiceGroup) {\n const ok = await this.dialogs.confirm({\n heading: this.text.confirmDeleteGroupHeading,\n message: formatMessage(this.text.confirmDeleteGroup, { name: g.name }),\n confirmLabel: this.text.delete,\n danger: true,\n });\n if (ok) await this.deleteGroup(g);\n }\n\n async deleteGroup(g: AutoServiceGroup) {\n if (!this.client) return;\n if (!(await this.deletion.run(() => this.service.deleteGroup(this.client!.id, g.id)))) return;\n if (this.group?.id === g.id) this.group = null;\n if (this.selectedGroupId === g.id) this.selectedGroupId = '';\n await this.load();\n }\n\n openMembers() { this.showMembersModal = true; }\n onMembersSaved() { this.membersVersion++; }\n}\n","<!-- Título e descrição da tela vêm da barra da página (nome + description do router). -->\n<div class=\"as-stack\">\n <spine-auto-service-client-picker (clientChange)=\"onClientChange($event)\"></spine-auto-service-client-picker>\n\n <ng-container *ngIf=\"client\">\n <div class=\"as-actions\">\n <hm-button icon=\"plus\" (clicked)=\"openCreate()\">{{ text.newGroup }}</hm-button>\n </div>\n\n <!-- Primeiro o nível de acesso (tipo do grupo), depois o grupo daquele nível; Consultar abre o grupo embaixo. -->\n <hm-card>\n <div class=\"as-field-row\">\n <hm-combobox [label]=\"text.accessLevel\" [placeholder]=\"text.pickAccessLevel\" [options]=\"levelOptions\"\n [value]=\"selectedLevel\" (valueChange)=\"selectLevel($event)\" [disabled]=\"loading\">\n </hm-combobox>\n <hm-combobox [label]=\"text.group\" [placeholder]=\"text.pickGroup\" [options]=\"groupOptions\"\n [value]=\"selectedGroupId\" (valueChange)=\"selectedGroupId = $event\" [disabled]=\"loading || !selectedLevel\">\n </hm-combobox>\n <hm-button [disabled]=\"!selectedGroupId\" (clicked)=\"searchGroup()\" icon=\"search\">{{ text.search }}</hm-button>\n </div>\n <p class=\"as-empty muted\" *ngIf=\"!loading && groups.length === 0\">{{ text.noGroups }}</p>\n <p class=\"as-empty muted\" *ngIf=\"!loading && selectedLevel && groups.length > 0 && groupOptions.length === 0\">{{ text.noGroupsOfLevel }}</p>\n </hm-card>\n\n <ng-container *ngIf=\"group as g\">\n <hm-card>\n <div class=\"as-summary\">\n <div class=\"as-summary__info\">\n <p class=\"as-summary__title group-title\">\n {{ g.name }}\n <hm-tag *ngIf=\"g.type?.name\" [name]=\"g.type!.name\" [color]=\"levelTagColor(g.type?.level)\" />\n <hm-tag [name]=\"g.enabled ? text.active : text.inactive\" [color]=\"g.enabled ? 'success' : 'danger'\" />\n </p>\n <p class=\"as-summary__detail\">{{ g.description || text.noDescription }}</p>\n </div>\n <div class=\"as-actions\">\n <hm-button emphasis=\"medium\" icon=\"pencil\" (clicked)=\"openEdit(g)\">{{ text.edit }}</hm-button>\n <hm-button intent=\"danger\" emphasis=\"medium\" icon=\"trash\" (clicked)=\"confirmDelete(g)\">{{ text.delete }}</hm-button>\n </div>\n </div>\n </hm-card>\n\n <spine-auto-service-group-members [clientId]=\"client.id\" [groupId]=\"g.id\" [refreshTrigger]=\"membersVersion\"\n (countChange)=\"memberCount = $event\" (manageMembers)=\"openMembers()\"></spine-auto-service-group-members>\n\n <spine-auto-service-group-members-modal [clientId]=\"client.id\" [groupId]=\"g.id\" [groupName]=\"g.name\"\n [open]=\"showMembersModal\" (openChange)=\"showMembersModal = $event\" (saved)=\"onMembersSaved()\">\n </spine-auto-service-group-members-modal>\n </ng-container>\n\n <spine-auto-service-group-modal [clientId]=\"client.id\" [group]=\"modalGroup\" [groupTypes]=\"groupTypes\"\n [open]=\"showGroupModal\" (openChange)=\"showGroupModal = $event\" (saved)=\"onGroupSaved($event)\">\n </spine-auto-service-group-modal>\n </ng-container>\n</div>\n"],"names":["i1","i1.AutoServiceService"],"mappings":"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"}