@rubeusteam/rb-angular-components 0.0.2-dev.1 → 0.0.2-dev.3

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.
@@ -12,12 +12,18 @@ export declare class RbHeaderComponent {
12
12
  appsList: RbHeaderApp[];
13
13
  backgroundColor: string;
14
14
  profileMenu: RbHeaderProfileMenuItem[];
15
+ showBaseSwitch: boolean;
16
+ showCrmButton: boolean;
17
+ showCrmApp: boolean;
15
18
  onHelpClick: EventEmitter<void>;
16
19
  onAppsClick: EventEmitter<void>;
17
20
  onViewAllAppsClick: EventEmitter<void>;
18
21
  onProfileMenuItemClick: EventEmitter<RbHeaderProfileMenuItem>;
19
22
  onLogoutClick: EventEmitter<void>;
20
23
  onProfileMenuClick: EventEmitter<void>;
24
+ onSwitchBaseClick: EventEmitter<void>;
25
+ onGoToCrmClick: EventEmitter<void>;
26
+ onAccountClick: EventEmitter<void>;
21
27
  isAppsMenuOpen: boolean;
22
28
  isProfileMenuOpen: boolean;
23
29
  appsMenuRef?: ElementRef;
@@ -33,10 +39,14 @@ export declare class RbHeaderComponent {
33
39
  handleAppsClick(): void;
34
40
  handleAppSelect(app: RbHeaderApp): void;
35
41
  handleViewAllAppsClick(): void;
42
+ handleCrmAppClick(): void;
36
43
  handleHelpClick(): void;
37
44
  handleProfileClick(): void;
38
45
  handleProfileMenuItemClick(item: RbHeaderProfileMenuItem): void;
39
46
  handleLogoutClick(): void;
47
+ handleAccountClick(): void;
48
+ handleBaseRowClick(): void;
49
+ handleGoToCrmClick(event: Event): void;
40
50
  static ɵfac: i0.ɵɵFactoryDeclaration<RbHeaderComponent, never>;
41
- static ɵcmp: i0.ɵɵComponentDeclaration<RbHeaderComponent, "rb-header", never, { "pageTitle": { "alias": "pageTitle"; "required": false; }; "userProfile": { "alias": "userProfile"; "required": false; }; "appsList": { "alias": "appsList"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "profileMenu": { "alias": "profileMenu"; "required": false; }; }, { "onHelpClick": "onHelpClick"; "onAppsClick": "onAppsClick"; "onViewAllAppsClick": "onViewAllAppsClick"; "onProfileMenuItemClick": "onProfileMenuItemClick"; "onLogoutClick": "onLogoutClick"; "onProfileMenuClick": "onProfileMenuClick"; }, never, never, true, never>;
51
+ static ɵcmp: i0.ɵɵComponentDeclaration<RbHeaderComponent, "rb-header", never, { "pageTitle": { "alias": "pageTitle"; "required": false; }; "userProfile": { "alias": "userProfile"; "required": false; }; "appsList": { "alias": "appsList"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "profileMenu": { "alias": "profileMenu"; "required": false; }; "showBaseSwitch": { "alias": "showBaseSwitch"; "required": false; }; "showCrmButton": { "alias": "showCrmButton"; "required": false; }; "showCrmApp": { "alias": "showCrmApp"; "required": false; }; }, { "onHelpClick": "onHelpClick"; "onAppsClick": "onAppsClick"; "onViewAllAppsClick": "onViewAllAppsClick"; "onProfileMenuItemClick": "onProfileMenuItemClick"; "onLogoutClick": "onLogoutClick"; "onProfileMenuClick": "onProfileMenuClick"; "onSwitchBaseClick": "onSwitchBaseClick"; "onGoToCrmClick": "onGoToCrmClick"; "onAccountClick": "onAccountClick"; }, never, never, true, never>;
42
52
  }
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core';
2
- import { RbHelpArticle, RbHelpIntegrationProvider } from '../../interfaces/rb-help-panel.interface';
2
+ import { RbHelpArticle, RbHelpIntegrationProvider, RbHelpPanelLinks, RbHelpSupportAccess } from '../../interfaces/rb-help-panel.interface';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class RbHelpPanelComponent implements OnInit, OnChanges {
5
5
  private destroyRef;
@@ -7,6 +7,20 @@ export declare class RbHelpPanelComponent implements OnInit, OnChanges {
7
7
  panelTitle: string;
8
8
  routeContext?: string;
9
9
  integrationProvider?: RbHelpIntegrationProvider;
10
+ /**
11
+ * Sobrescreve, por chave, os destinos dos atalhos da central.
12
+ * O que não vier aqui cai em `RB_HELP_PANEL_DEFAULT_LINKS`.
13
+ */
14
+ links: Partial<RbHelpPanelLinks>;
15
+ /**
16
+ * Permissão `fullUser` ("Acesso ao suporte") do usuário logado.
17
+ * Sem ela o botão de chat fica desabilitado — é a mesma regra que o CRM
18
+ * aplica na barra de ajuda, e o backend a revalida antes de emitir o JWT
19
+ * do widget.
20
+ */
21
+ hasSupportAccess: RbHelpSupportAccess;
22
+ /** Texto do tooltip quando o chat está bloqueado por permissão. */
23
+ chatBlockedTooltip: string;
10
24
  onClose: EventEmitter<void>;
11
25
  onClickKnowledgeBase: EventEmitter<void>;
12
26
  onClickCommunity: EventEmitter<void>;
@@ -17,12 +31,30 @@ export declare class RbHelpPanelComponent implements OnInit, OnChanges {
17
31
  articles: RbHelpArticle[];
18
32
  isLoading: boolean;
19
33
  private searchSubject;
34
+ /** Destinos efetivos dos atalhos, com os defaults preenchendo o que faltar. */
35
+ get resolvedLinks(): RbHelpPanelLinks;
36
+ /**
37
+ * Libera o chat apenas com permissão afirmativa. A checagem é por valor
38
+ * permitido — e não pela ausência de `'0'` — para que valor faltante,
39
+ * nulo ou de usuário inativo negue o acesso em vez de liberá-lo.
40
+ */
41
+ get canUseChat(): boolean;
20
42
  ngOnInit(): void;
21
43
  ngOnChanges(changes: SimpleChanges): void;
22
44
  loadInitialArticles(): void;
23
45
  onSearchChange(query: string): void;
24
46
  handleClose(): void;
25
47
  openArticle(article: RbHelpArticle): void;
48
+ openKnowledgeBase(): void;
49
+ openCommunity(): void;
50
+ openNews(): void;
51
+ openMyTickets(): void;
52
+ /**
53
+ * O chat é aberto pelo SDK do provedor, que vive na aplicação consumidora —
54
+ * aqui só aplicamos a permissão e avisamos o host.
55
+ */
56
+ openChat(): void;
57
+ private openLink;
26
58
  static ɵfac: i0.ɵɵFactoryDeclaration<RbHelpPanelComponent, never>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<RbHelpPanelComponent, "rb-help-panel", never, { "isOpen": { "alias": "isOpen"; "required": false; }; "panelTitle": { "alias": "panelTitle"; "required": false; }; "routeContext": { "alias": "routeContext"; "required": false; }; "integrationProvider": { "alias": "integrationProvider"; "required": false; }; }, { "onClose": "onClose"; "onClickKnowledgeBase": "onClickKnowledgeBase"; "onClickCommunity": "onClickCommunity"; "onClickNews": "onClickNews"; "onClickMyTickets": "onClickMyTickets"; "onClickChat": "onClickChat"; }, never, never, true, never>;
59
+ static ɵcmp: i0.ɵɵComponentDeclaration<RbHelpPanelComponent, "rb-help-panel", never, { "isOpen": { "alias": "isOpen"; "required": false; }; "panelTitle": { "alias": "panelTitle"; "required": false; }; "routeContext": { "alias": "routeContext"; "required": false; }; "integrationProvider": { "alias": "integrationProvider"; "required": false; }; "links": { "alias": "links"; "required": false; }; "hasSupportAccess": { "alias": "hasSupportAccess"; "required": false; }; "chatBlockedTooltip": { "alias": "chatBlockedTooltip"; "required": false; }; }, { "onClose": "onClose"; "onClickKnowledgeBase": "onClickKnowledgeBase"; "onClickCommunity": "onClickCommunity"; "onClickNews": "onClickNews"; "onClickMyTickets": "onClickMyTickets"; "onClickChat": "onClickChat"; }, never, never, true, never>;
28
60
  }
@@ -1,10 +1,9 @@
1
- import { EventEmitter, OnInit, OnDestroy, AfterViewInit } from '@angular/core';
1
+ import { EventEmitter, OnInit, OnDestroy } from '@angular/core';
2
2
  import { RbSidebarNavigationItem } from '../../interfaces/rb-sidebar-navigation.interface';
3
3
  import * as i0 from "@angular/core";
4
- export declare class RbSidebarNavigationComponent implements OnInit, OnDestroy, AfterViewInit {
4
+ export declare class RbSidebarNavigationComponent implements OnInit, OnDestroy {
5
5
  private router;
6
6
  private elementRef;
7
- private routerSubscription?;
8
7
  logoUrl: string;
9
8
  logoTextUrl: string;
10
9
  logoName: string;
@@ -45,6 +44,10 @@ export declare class RbSidebarNavigationComponent implements OnInit, OnDestroy,
45
44
  toggleIcon: string;
46
45
  itemClick: EventEmitter<RbSidebarNavigationItem>;
47
46
  logoClick: EventEmitter<void | RbSidebarNavigationItem>;
47
+ stateChange: EventEmitter<{
48
+ isOpen: boolean;
49
+ isFixed: boolean;
50
+ }>;
48
51
  isFixed: boolean;
49
52
  isHovered: boolean;
50
53
  isOverlayActive: boolean;
@@ -52,9 +55,9 @@ export declare class RbSidebarNavigationComponent implements OnInit, OnDestroy,
52
55
  private overlayCloseTimeout?;
53
56
  get hasSecondary(): boolean;
54
57
  private closePrimaryForSecondaryMenu;
58
+ private emitStateChange;
55
59
  private sortItems;
56
60
  ngOnInit(): void;
57
- ngAfterViewInit(): void;
58
61
  get isOpen(): boolean;
59
62
  set isOpen(value: boolean);
60
63
  onMouseEnter(): void;
@@ -77,5 +80,5 @@ export declare class RbSidebarNavigationComponent implements OnInit, OnDestroy,
77
80
  scrollToActiveItem(smooth?: boolean): void;
78
81
  private performScrollToActiveItem;
79
82
  static ɵfac: i0.ɵɵFactoryDeclaration<RbSidebarNavigationComponent, never>;
80
- static ɵcmp: i0.ɵɵComponentDeclaration<RbSidebarNavigationComponent, "rb-sidebar-navigation", never, { "logoUrl": { "alias": "logoUrl"; "required": false; }; "logoTextUrl": { "alias": "logoTextUrl"; "required": false; }; "logoName": { "alias": "logoName"; "required": false; }; "items": { "alias": "items"; "required": false; }; "initiallyFixed": { "alias": "initiallyFixed"; "required": false; }; "secondaryTitle": { "alias": "secondaryTitle"; "required": false; }; "secondaryItems": { "alias": "secondaryItems"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "textColor": { "alias": "textColor"; "required": false; }; "activeTextColor": { "alias": "activeTextColor"; "required": false; }; "hoverBackgroundColor": { "alias": "hoverBackgroundColor"; "required": false; }; "width": { "alias": "width"; "required": false; }; "sidebarWidth": { "alias": "sidebarWidth"; "required": false; }; "secondaryWidth": { "alias": "secondaryWidth"; "required": false; }; "secondarySidebarWidth": { "alias": "secondarySidebarWidth"; "required": false; }; "closedWidth": { "alias": "closedWidth"; "required": false; }; "sectionGap": { "alias": "sectionGap"; "required": false; }; "toggleIcon": { "alias": "toggleIcon"; "required": false; }; }, { "itemClick": "itemClick"; "logoClick": "logoClick"; }, never, never, true, never>;
83
+ static ɵcmp: i0.ɵɵComponentDeclaration<RbSidebarNavigationComponent, "rb-sidebar-navigation", never, { "logoUrl": { "alias": "logoUrl"; "required": false; }; "logoTextUrl": { "alias": "logoTextUrl"; "required": false; }; "logoName": { "alias": "logoName"; "required": false; }; "items": { "alias": "items"; "required": false; }; "initiallyFixed": { "alias": "initiallyFixed"; "required": false; }; "secondaryTitle": { "alias": "secondaryTitle"; "required": false; }; "secondaryItems": { "alias": "secondaryItems"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "textColor": { "alias": "textColor"; "required": false; }; "activeTextColor": { "alias": "activeTextColor"; "required": false; }; "hoverBackgroundColor": { "alias": "hoverBackgroundColor"; "required": false; }; "width": { "alias": "width"; "required": false; }; "sidebarWidth": { "alias": "sidebarWidth"; "required": false; }; "secondaryWidth": { "alias": "secondaryWidth"; "required": false; }; "secondarySidebarWidth": { "alias": "secondarySidebarWidth"; "required": false; }; "closedWidth": { "alias": "closedWidth"; "required": false; }; "sectionGap": { "alias": "sectionGap"; "required": false; }; "toggleIcon": { "alias": "toggleIcon"; "required": false; }; }, { "itemClick": "itemClick"; "logoClick": "logoClick"; "stateChange": "stateChange"; }, never, never, true, never>;
81
84
  }
@@ -2,6 +2,7 @@ export interface RbHeaderUserProfile {
2
2
  name: string;
3
3
  base: string;
4
4
  avatarUrl: string;
5
+ email?: string;
5
6
  }
6
7
  export interface RbHeaderApp {
7
8
  name: string;
@@ -15,3 +15,22 @@ export interface RbHelpIntegrationProvider {
15
15
  */
16
16
  searchArticles(query: string): Observable<RbHelpArticle[]>;
17
17
  }
18
+ /**
19
+ * Destinos dos atalhos da central de atendimento.
20
+ */
21
+ export interface RbHelpPanelLinks {
22
+ knowledgeBase: string;
23
+ community: string;
24
+ news: string;
25
+ myTickets: string;
26
+ }
27
+ /**
28
+ * URLs em uso no CRM (ui/lib/BarraPrincipal). Sobrescreva pelo input `links`
29
+ * quando a aplicação consumidora apontar para outra central.
30
+ */
31
+ export declare const RB_HELP_PANEL_DEFAULT_LINKS: RbHelpPanelLinks;
32
+ /**
33
+ * Valor da permissão `fullUser` ("Acesso ao suporte") como o CRM a entrega:
34
+ * a coluna `usuario.fulluser` chega serializada como string.
35
+ */
36
+ export type RbHelpSupportAccess = boolean | string | number | null | undefined;
@@ -0,0 +1,27 @@
1
+ import { Observable } from 'rxjs';
2
+ import { RbHelpArticle, RbHelpIntegrationProvider } from '../../interfaces/rb-help-panel.interface';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Help Center consultado pelo CRM (ui/lib/BarraPrincipal/Controladores/AcoesZendesk.js).
6
+ */
7
+ export declare const RB_ZENDESK_HELP_CENTER_URL = "https://crmrubeus.zendesk.com";
8
+ /**
9
+ * Provedor de artigos do painel de ajuda apontando para o Help Center da Rubeus.
10
+ *
11
+ * Os dois endpoints são públicos e não exigem autenticação, como no CRM.
12
+ * Em caso de falha a lista volta vazia, preservando o comportamento do
13
+ * `errorGetArtigo` da barra atual — o painel não quebra por indisponibilidade
14
+ * da central.
15
+ */
16
+ export declare class RbZendeskHelpService implements RbHelpIntegrationProvider {
17
+ private http;
18
+ /**
19
+ * @param routeContext slug da rota atual, usado como label do artigo.
20
+ * No CRM equivale a `DGlobal.acaoCliente.nomeURL.split('/')[0]`.
21
+ */
22
+ fetchInitialArticles(routeContext?: string): Observable<RbHelpArticle[]>;
23
+ searchArticles(query: string): Observable<RbHelpArticle[]>;
24
+ private paraArtigos;
25
+ static ɵfac: i0.ɵɵFactoryDeclaration<RbZendeskHelpService, never>;
26
+ static ɵprov: i0.ɵɵInjectableDeclaration<RbZendeskHelpService>;
27
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rubeusteam/rb-angular-components",
3
- "version": "0.0.2-dev.1",
3
+ "version": "0.0.2-dev.3",
4
4
  "description": "Correções e adições no componente de crud",
5
5
  "license": "MIT",
6
6
  "keywords": [
package/public-api.d.ts CHANGED
@@ -24,3 +24,4 @@ export * from './lib/interfaces/rb-sidebar-navigation.interface';
24
24
  export * from './lib/interfaces/rb-header.interface';
25
25
  export * from './lib/interfaces/rb-help-panel.interface';
26
26
  export * from './lib/components/rb-help-panel/rb-help-panel.component';
27
+ export * from './lib/services/rb-zendesk-help/rb-zendesk-help.service';