@pulsetrackme/sdk 0.1.4 → 0.1.5

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.
@@ -3,7 +3,6 @@ export type AnnouncementType = 'info' | 'success' | 'warning' | 'error';
3
3
  export interface AnnouncementConfig {
4
4
  tracker: SystemTracker;
5
5
  message?: string;
6
- title?: string;
7
6
  linkUrl?: string;
8
7
  linkText?: string;
9
8
  type?: AnnouncementType;
@@ -24,11 +23,17 @@ export declare class Announcement {
24
23
  originalBodyPaddingTop: string;
25
24
  constructor(config: AnnouncementConfig);
26
25
  private init;
26
+ /**
27
+ * Normaliza valores (local + remote)
28
+ * No re-lee this.config como fuente
29
+ */
27
30
  private applyRemoteConfig;
28
31
  private createAnnouncement;
32
+ private updateAnnouncement;
33
+ private getTemplate;
29
34
  show(): void;
30
- hide(): void;
31
35
  private pushBodyDown;
36
+ hide(): void;
32
37
  private restoreBody;
33
38
  private addStyles;
34
39
  private getTypeColor;
@@ -1 +1 @@
1
- {"version":3,"file":"announcements.d.ts","sourceRoot":"","sources":["../../src/plugins/announcements.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAExE,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,YAAY;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC,GAAG;QACtD,OAAO,EAAE,aAAa,CAAC;KACxB,CAAC;IAEF,SAAS,EAAG,cAAc,CAAC;IAC3B,SAAS,UAAS;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,SAAM;gBAEhB,MAAM,EAAE,kBAAkB;YAwBxB,IAAI;IAgBlB,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,kBAAkB;IA8C1B,IAAI;IAmBJ,IAAI;IAiBJ,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,SAAS;IAwEjB,OAAO,CAAC,YAAY;CAYrB"}
1
+ {"version":3,"file":"announcements.d.ts","sourceRoot":"","sources":["../../src/plugins/announcements.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAExE,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,YAAY;IACvB,OAAO,EAAE,aAAa,CAAC;IAEvB,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC,GAAG;QACtD,OAAO,EAAE,aAAa,CAAC;KACxB,CAAC;IAEF,SAAS,EAAG,cAAc,CAAC;IAC3B,SAAS,UAAS;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,SAAM;gBAEhB,MAAM,EAAE,kBAAkB;IA0BtC,OAAO,CAAC,IAAI;IAWZ;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,WAAW;IA4BnB,IAAI;IA4BN,OAAO,CAAC,YAAY;IAUlB,IAAI;IAsBJ,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,SAAS;IAyEjB,OAAO,CAAC,YAAY;CAYrB"}
@@ -0,0 +1,31 @@
1
+ import { ChatbotConfig, ChatMessage, ChatbotInterface } from './types';
2
+ export declare class Chatbot implements ChatbotInterface {
3
+ private config;
4
+ private container;
5
+ private isVisible;
6
+ private messageCallbacks;
7
+ private fileUploadService;
8
+ private token?;
9
+ constructor(config?: Partial<ChatbotConfig>, token?: string);
10
+ show(): void;
11
+ hide(): void;
12
+ toggle(): void;
13
+ sendMessage(content: string): void;
14
+ uploadFile(file: File): Promise<string>;
15
+ addMessage(message: Omit<ChatMessage, 'id' | 'timestamp'>): void;
16
+ onMessage(callback: (message: ChatMessage) => void): void;
17
+ destroy(): void;
18
+ private emitMessage;
19
+ private generateId;
20
+ private clearInput;
21
+ private updateUploadProgress;
22
+ private renderWelcomeMessage;
23
+ private createChatbotContainer;
24
+ private getPositionStyles;
25
+ private initializeEventListeners;
26
+ private initializeFileUpload;
27
+ private addMessageToUI;
28
+ private formatTime;
29
+ private formatFileSize;
30
+ }
31
+ //# sourceMappingURL=chatbot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot.d.ts","sourceRoot":"","sources":["../../../src/plugins/chatbot/chatbot.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAuBvE,qBAAa,OAAQ,YAAW,gBAAgB;IAC9C,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,gBAAgB,CAA0C;IAClE,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,KAAK,CAAC,CAAS;gBAEX,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IAUxD,IAAI,IAAI,IAAI;IAKZ,IAAI,IAAI,IAAI;IAKZ,MAAM,IAAI,IAAI;IAId,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAgB5B,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IA0C7C,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,IAAI;IAWhE,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;IAIzD,OAAO,IAAI,IAAI;IAMtB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,sBAAsB;IA0F9B,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,wBAAwB;IA8BhC,OAAO,CAAC,oBAAoB;IA6D5B,OAAO,CAAC,cAAc;IA8GtB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,cAAc;CAOvB"}
@@ -0,0 +1,17 @@
1
+ export declare class FileUploadService {
2
+ private static instance;
3
+ private apiEndpoint;
4
+ private constructor();
5
+ static getInstance(): FileUploadService;
6
+ uploadFile(file: File, onProgress?: (progress: number) => void, token?: string): Promise<{
7
+ url: string;
8
+ mimeType: string;
9
+ fileSize: number;
10
+ }>;
11
+ getFileType(mimeType: string): 'image' | 'document' | 'audio';
12
+ validateFile(file: File, allowedTypes: string[], maxSizeMB: number): {
13
+ valid: boolean;
14
+ error?: string;
15
+ };
16
+ }
17
+ //# sourceMappingURL=FileUploadService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUploadService.d.ts","sourceRoot":"","sources":["../../../../src/plugins/chatbot/services/FileUploadService.ts"],"names":[],"mappings":"AAEA,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoB;IAC3C,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO;WAIO,WAAW,IAAI,iBAAiB;IAOjC,UAAU,CACrB,IAAI,EAAE,IAAI,EACV,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,EACvC,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAyCxD,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO;IAM7D,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;CAoB/G"}
@@ -0,0 +1,41 @@
1
+ export interface ChatMessage {
2
+ id: string;
3
+ content: string;
4
+ sender: 'user' | 'bot';
5
+ timestamp: Date;
6
+ type: 'text' | 'image' | 'document' | 'audio';
7
+ url?: string;
8
+ fileName?: string;
9
+ fileSize?: number;
10
+ mimeType?: string;
11
+ }
12
+ export interface ChatbotConfig {
13
+ position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
14
+ themeColor?: string;
15
+ title?: string;
16
+ subtitle?: string;
17
+ welcomeMessage?: string;
18
+ placeholderText?: string;
19
+ showHeader?: boolean;
20
+ showInputArea?: boolean;
21
+ allowFileUploads?: boolean;
22
+ maxFileSizeMB?: number;
23
+ allowedFileTypes?: string[];
24
+ }
25
+ export interface FileUploadOptions {
26
+ file: File;
27
+ onProgress?: (progress: number) => void;
28
+ onSuccess: (url: string) => void;
29
+ onError: (error: Error) => void;
30
+ }
31
+ export interface ChatbotInterface {
32
+ show(): void;
33
+ hide(): void;
34
+ toggle(): void;
35
+ sendMessage(content: string): void;
36
+ uploadFile(file: File): Promise<string>;
37
+ addMessage(message: Omit<ChatMessage, 'id' | 'timestamp'>): void;
38
+ onMessage(callback: (message: ChatMessage) => void): void;
39
+ destroy(): void;
40
+ }
41
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/chatbot/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,IAAI,CAAC;IACb,MAAM,IAAI,IAAI,CAAC;IACf,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;IACjE,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI,CAAC;IAC1D,OAAO,IAAI,IAAI,CAAC;CACjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../../src/plugins/feedback.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,KAAK,YAAY,GAAG,OAAO,GAAG,WAAW,GAAG,EAAE,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,eAAe,CAAC;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,cAAM,cAAc;IAClB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,aAAa,CAAA;KAAE,CAAC;IAE/E,SAAS,EAAG,WAAW,CAAC;IACxB,cAAc,EAAG,WAAW,CAAC;IAE7B,MAAM,UAAS;IACf,YAAY,UAAS;IACrB,YAAY,EAAE,YAAY,CAAM;IAChC,iBAAiB,SAAM;gBAEX,MAAM,EAAE,cAAc;IAgBlC,IAAI;IAOJ,gBAAgB;IAWhB,oBAAoB;IAOpB,eAAe,CAAC,IAAI,EAAE,YAAY;IAoB5B,iBAAiB;IAWvB,gBAAgB;IAKV,cAAc;IAKpB,OAAO;IAIP,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ5B,cAAc;IAkCpB,SAAS;IAOT,YAAY;IAUZ,oBAAoB;IAoEpB,SAAS;CAsHV;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,kBAE9C"}
1
+ {"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../../src/plugins/feedback.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,KAAK,YAAY,GAAG,OAAO,GAAG,WAAW,GAAG,EAAE,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,eAAe,CAAC;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,cAAM,cAAc;IAClB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,aAAa,CAAA;KAAE,CAAC;IAE/E,SAAS,EAAG,WAAW,CAAC;IACxB,cAAc,EAAG,WAAW,CAAC;IAE7B,MAAM,UAAS;IACf,YAAY,UAAS;IACrB,YAAY,EAAE,YAAY,CAAM;IAChC,iBAAiB,SAAM;gBAEX,MAAM,EAAE,cAAc;IAgBlC,IAAI;IAOJ,gBAAgB;IAWhB,oBAAoB;IAOpB,eAAe,CAAC,IAAI,EAAE,YAAY;IAsB5B,iBAAiB;IAiCvB,gBAAgB;IAKV,cAAc;IAKpB,OAAO;IAIP,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ5B,cAAc;IAkCpB,SAAS;IAOT,YAAY;IAWZ,oBAAoB;IAmEpB,SAAS;CAsHV;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,kBAE9C"}
@@ -2,6 +2,8 @@ import { SystemTracker } from '../core/tracker';
2
2
  export interface NpsConfig {
3
3
  tracker: SystemTracker;
4
4
  question?: string;
5
+ minLabel?: string;
6
+ maxLabel?: string;
5
7
  themeColor?: string;
6
8
  position?: 'bottom-right' | 'bottom-left' | 'bottom-center' | 'top-right' | 'top-left';
7
9
  autoShow?: boolean;
@@ -19,6 +21,8 @@ export declare class Nps {
19
21
  private init;
20
22
  private applyRemoteConfig;
21
23
  private renderWidget;
24
+ hideForScreenshot(): void;
25
+ showAfterScreenshot(): void;
22
26
  private getStep1Template;
23
27
  private attachStep1Listeners;
24
28
  private renderStep2;
@@ -1 +1 @@
1
- {"version":3,"file":"nps.d.ts","sourceRoot":"","sources":["../../src/plugins/nps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,eAAe,GAAG,WAAW,GAAG,UAAU,CAAC;IACvF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC5B;AAED,qBAAa,GAAG;IACd,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,aAAa,CAAA;KAAE,CAAC;IAE1E,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAAS;gBAEb,MAAM,EAAE,SAAS;IAiB7B,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,oBAAoB;IAkB5B,OAAO,CAAC,WAAW;YAiDL,MAAM;IA8DpB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,WAAW;IAgGnB,OAAO,CAAC,WAAW;IAYZ,IAAI;IAIJ,KAAK;CAGb"}
1
+ {"version":3,"file":"nps.d.ts","sourceRoot":"","sources":["../../src/plugins/nps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,eAAe,GAAG,WAAW,GAAG,UAAU,CAAC;IACvF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC5B;AAED,qBAAa,GAAG;IACd,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,aAAa,CAAA;KAAE,CAAC;IAE1E,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAAS;gBAEb,MAAM,EAAE,SAAS;IAmB7B,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,YAAY;IAcb,iBAAiB;IAMjB,mBAAmB;IAQ1B,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,oBAAoB;IAkB5B,OAAO,CAAC,WAAW;YAiDL,MAAM;IA8DpB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,WAAW;IAgGnB,OAAO,CAAC,WAAW;IAYZ,IAAI;IAIJ,KAAK;CAGb"}