@aslaluroba/help-center 3.0.7 → 3.0.8

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.
@@ -1829,7 +1829,7 @@ class HelpCenterWidgetComponent {
1829
1829
  window.open(url, '_blank');
1830
1830
  }
1831
1831
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HelpCenterWidgetComponent, deps: [{ token: ApiService }, { token: TranslationService }, { token: ThemeService }], target: i0.ɵɵFactoryTarget.Component });
1832
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.1", type: HelpCenterWidgetComponent, isStandalone: true, selector: "app-help-center-widget", inputs: { getToken: "getToken", helpScreenId: "helpScreenId", showArrow: "showArrow", messageLabel: "messageLabel", currentLang: "currentLang", isIntroScreenEnabled: "isIntroScreenEnabled", primaryColor: "primaryColor", logoUrl: "logoUrl" }, viewQueries: [{ propertyName: "chatMessagesContainer", first: true, predicate: ["chatMessagesContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"help-center-container\" [dir]=\"getDirection()\">\n <!-- TEST: Version mismatch fixed - Arrow Animation - SUCCESS! -->\n <app-arrow-animation\n [showArrowAnimation]=\"showArrowAnimation\"\n [isPopupOpen]=\"isPopupOpen\"\n [messageLabel]=\"messageLabel\"\n (closeArrowAnimation)=\"handleCloseArrowAnimation()\"\n ></app-arrow-animation>\n\n <!-- Help Button -->\n <app-help-button (togglePopup)=\"handleTogglePopup()\"></app-help-button>\n\n <!-- Help Popup -->\n <app-help-popup\n [isPopupOpen]=\"isPopupOpen\"\n [showHelpScreenData]=\"showHelpScreenData\"\n [showChat]=\"showChat\"\n [status]=\"status\"\n [error]=\"error\"\n [helpScreenData]=\"helpScreenData\"\n [messages]=\"messages\"\n [needsAgent]=\"needsAgent\"\n [assistantStatus]=\"assistantStatus\"\n [isAblyConnected]=\"isAblyConnected\"\n [isChatClosed]=\"isChatClosed\"\n [currentLang]=\"currentLang\"\n [chatIsLoading]=\"chatIsLoading\"\n [sessionId]=\"sessionId\"\n [isIntroScreenEnabled]=\"isIntroScreenEnabled\"\n [selectedOption]=\"selectedOption\"\n [selectedNestedOption]=\"selectedNestedOption\"\n [showEndChatConfirmation]=\"showEndChatConfirmation\"\n (closePopup)=\"handleClosePopup()\"\n (back)=\"handleBack()\"\n (showChatEvent)=\"handleShowChat()\"\n (endChat)=\"handleEndChat()\"\n (confirmEndChat)=\"confirmEndChat()\"\n (cancelEndChat)=\"cancelEndChat()\"\n (sendMessageEvent)=\"sendMessage($event)\"\n (startNewChat)=\"handleStartNewChat($event)\"\n (showHelpScreenDataEvent)=\"handleShowHelpScreenData()\"\n (hideHelpScreenData)=\"handleHideHelpScreenData()\"\n (navigateToUrl)=\"navigateToUrl($event)\"\n ></app-help-popup>\n</div>\n", styles: [".help-center-container{position:fixed;bottom:1.25rem;right:1.25rem;z-index:1000;width:auto;height:auto;display:flex;flex-direction:column;align-items:flex-end}::ng-deep .babylai-p-6{padding:1.5rem!important}::ng-deep .babylai-p-8{padding:2rem!important}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}\n", "@import\"https://fonts.googleapis.com/css2?family=Cairo:wght@200..1000&display=swap\";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd,ul,ol{margin:0;padding:0}ul,ol{list-style:none}html{scroll-behavior:smooth}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5;font-family:Cairo,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}button{background:none;border:none;padding:0;cursor:pointer;font:inherit;color:inherit}a{color:inherit;text-decoration:none}table{border-collapse:collapse;border-spacing:0}:root{--black-white-50: #ffffff;--black-white-100: #f3f3f3;--black-white-200: #e2e2e2;--black-white-300: #919191;--black-white-400: #606060;--black-white-500: #333333;--black-white-600: #1f1f1f;--black-white-700: #171717;--black-white-800: #0a0a0a;--black-white-900: #050505;--black-white-950: #000000;--black-white-default: #333333;--babylai-storm-dust: #3d3d3d;--babylai-storm-dust-950: #262626;--babylai-primary-color: #ad49e1;--babylai-primary-color-100: #f6ecfc;--babylai-primary-color-200: #deb6f3;--babylai-primary-color-300: #d49cee;--babylai-primary-color-400: #c57fea;--babylai-primary-color-500: #ad49e1;--babylai-primary-color-600: #672b87;--babylai-primary-color-700: #451d5a;--babylai-primary-color-800: #220e2d;--babylai-primary-color-900: #110716;--babylai-primary-color-950: #0a0310}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-accordion-down{animation:accordion-down .2s ease-out}.animate-accordion-up{animation:accordion-up .2s ease-out}.animate-float{animation:float 3s infinite ease-in-out}html,body{font-family:Cairo,sans-serif}div#wave{position:relative}div#wave .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:3px;background:#ad49e1;animation:wave 1.3s linear infinite}div#wave .dot:nth-child(2){animation-delay:-1.1s}div#wave .dot:nth-child(3){animation-delay:-.9s}@keyframes wave{0%,60%,to{transform:initial}30%{transform:translateY(-10px)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: ArrowAnimationComponent, selector: "app-arrow-animation", inputs: ["showArrowAnimation", "isPopupOpen", "messageLabel"], outputs: ["closeArrowAnimation"] }, { kind: "component", type: HelpButtonComponent, selector: "app-help-button", outputs: ["togglePopup"] }, { kind: "component", type: HelpPopupComponent, selector: "app-help-popup", inputs: ["isPopupOpen", "showHelpScreenData", "showChat", "status", "error", "helpScreenData", "messages", "needsAgent", "assistantStatus", "isAblyConnected", "isChatClosed", "currentLang", "chatIsLoading", "sessionId", "isIntroScreenEnabled", "selectedOption", "selectedNestedOption", "showEndChatConfirmation"], outputs: ["closePopup", "back", "showChatEvent", "endChat", "confirmEndChat", "cancelEndChat", "sendMessageEvent", "startNewChat", "showHelpScreenDataEvent", "hideHelpScreenData", "navigateToUrl"] }] });
1832
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.1", type: HelpCenterWidgetComponent, isStandalone: true, selector: "app-help-center-widget", inputs: { getToken: "getToken", helpScreenId: "helpScreenId", showArrow: "showArrow", messageLabel: "messageLabel", currentLang: "currentLang", isIntroScreenEnabled: "isIntroScreenEnabled", primaryColor: "primaryColor", logoUrl: "logoUrl" }, viewQueries: [{ propertyName: "chatMessagesContainer", first: true, predicate: ["chatMessagesContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"help-center-container\" [dir]=\"getDirection()\">\n <!-- TEST: Version mismatch fixed - Arrow Animation - SUCCESS! -->\n <app-arrow-animation\n [showArrowAnimation]=\"showArrowAnimation\"\n [isPopupOpen]=\"isPopupOpen\"\n [messageLabel]=\"messageLabel\"\n (closeArrowAnimation)=\"handleCloseArrowAnimation()\"\n ></app-arrow-animation>\n\n <!-- Help Button -->\n <app-help-button (togglePopup)=\"handleTogglePopup()\"></app-help-button>\n\n <!-- Help Popup -->\n <app-help-popup\n [isPopupOpen]=\"isPopupOpen\"\n [showHelpScreenData]=\"showHelpScreenData\"\n [showChat]=\"showChat\"\n [status]=\"status\"\n [error]=\"error\"\n [helpScreenData]=\"helpScreenData\"\n [messages]=\"messages\"\n [needsAgent]=\"needsAgent\"\n [assistantStatus]=\"assistantStatus\"\n [isAblyConnected]=\"isAblyConnected\"\n [isChatClosed]=\"isChatClosed\"\n [currentLang]=\"currentLang\"\n [chatIsLoading]=\"chatIsLoading\"\n [sessionId]=\"sessionId\"\n [isIntroScreenEnabled]=\"isIntroScreenEnabled\"\n [selectedOption]=\"selectedOption\"\n [selectedNestedOption]=\"selectedNestedOption\"\n [showEndChatConfirmation]=\"showEndChatConfirmation\"\n (closePopup)=\"handleClosePopup()\"\n (back)=\"handleBack()\"\n (showChatEvent)=\"handleShowChat()\"\n (endChat)=\"handleEndChat()\"\n (confirmEndChat)=\"confirmEndChat()\"\n (cancelEndChat)=\"cancelEndChat()\"\n (sendMessageEvent)=\"sendMessage($event)\"\n (startNewChat)=\"handleStartNewChat($event)\"\n (showHelpScreenDataEvent)=\"handleShowHelpScreenData()\"\n (hideHelpScreenData)=\"handleHideHelpScreenData()\"\n (navigateToUrl)=\"navigateToUrl($event)\"\n ></app-help-popup>\n</div>\n", styles: [".help-center-container{position:fixed;bottom:1.25rem;right:1.25rem;z-index:1000;width:auto;height:auto;display:flex;flex-direction:column;align-items:flex-end}::ng-deep .babylai-p-6{padding:1.5rem!important}::ng-deep .babylai-p-8{padding:2rem!important}::ng-deep *,::ng-deep *:before,::ng-deep *:after{box-sizing:border-box;margin:0;padding:0}\n", "@import\"https://fonts.googleapis.com/css2?family=Cairo:wght@200..1000&display=swap\";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd,ul,ol{margin:0;padding:0}ul,ol{list-style:none}html{scroll-behavior:smooth}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5;font-family:Cairo,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}button{background:none;border:none;padding:0;cursor:pointer;font:inherit;color:inherit}a{color:inherit;text-decoration:none}table{border-collapse:collapse;border-spacing:0}:root{--black-white-50: #ffffff;--black-white-100: #f3f3f3;--black-white-200: #e2e2e2;--black-white-300: #919191;--black-white-400: #606060;--black-white-500: #333333;--black-white-600: #1f1f1f;--black-white-700: #171717;--black-white-800: #0a0a0a;--black-white-900: #050505;--black-white-950: #000000;--black-white-default: #333333;--babylai-storm-dust: #3d3d3d;--babylai-storm-dust-950: #262626;--babylai-primary-color: #ad49e1;--babylai-primary-color-100: #f6ecfc;--babylai-primary-color-200: #deb6f3;--babylai-primary-color-300: #d49cee;--babylai-primary-color-400: #c57fea;--babylai-primary-color-500: #ad49e1;--babylai-primary-color-600: #672b87;--babylai-primary-color-700: #451d5a;--babylai-primary-color-800: #220e2d;--babylai-primary-color-900: #110716;--babylai-primary-color-950: #0a0310}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-accordion-down{animation:accordion-down .2s ease-out}.animate-accordion-up{animation:accordion-up .2s ease-out}.animate-float{animation:float 3s infinite ease-in-out}html,body{font-family:Cairo,sans-serif}div#wave{position:relative}div#wave .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:3px;background:#ad49e1;animation:wave 1.3s linear infinite}div#wave .dot:nth-child(2){animation-delay:-1.1s}div#wave .dot:nth-child(3){animation-delay:-.9s}@keyframes wave{0%,60%,to{transform:initial}30%{transform:translateY(-10px)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: ArrowAnimationComponent, selector: "app-arrow-animation", inputs: ["showArrowAnimation", "isPopupOpen", "messageLabel"], outputs: ["closeArrowAnimation"] }, { kind: "component", type: HelpButtonComponent, selector: "app-help-button", outputs: ["togglePopup"] }, { kind: "component", type: HelpPopupComponent, selector: "app-help-popup", inputs: ["isPopupOpen", "showHelpScreenData", "showChat", "status", "error", "helpScreenData", "messages", "needsAgent", "assistantStatus", "isAblyConnected", "isChatClosed", "currentLang", "chatIsLoading", "sessionId", "isIntroScreenEnabled", "selectedOption", "selectedNestedOption", "showEndChatConfirmation"], outputs: ["closePopup", "back", "showChatEvent", "endChat", "confirmEndChat", "cancelEndChat", "sendMessageEvent", "startNewChat", "showHelpScreenDataEvent", "hideHelpScreenData", "navigateToUrl"] }] });
1833
1833
  }
1834
1834
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HelpCenterWidgetComponent, decorators: [{
1835
1835
  type: Component,
@@ -1839,7 +1839,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
1839
1839
  ArrowAnimationComponent,
1840
1840
  HelpButtonComponent,
1841
1841
  HelpPopupComponent,
1842
- ], template: "<div class=\"help-center-container\" [dir]=\"getDirection()\">\n <!-- TEST: Version mismatch fixed - Arrow Animation - SUCCESS! -->\n <app-arrow-animation\n [showArrowAnimation]=\"showArrowAnimation\"\n [isPopupOpen]=\"isPopupOpen\"\n [messageLabel]=\"messageLabel\"\n (closeArrowAnimation)=\"handleCloseArrowAnimation()\"\n ></app-arrow-animation>\n\n <!-- Help Button -->\n <app-help-button (togglePopup)=\"handleTogglePopup()\"></app-help-button>\n\n <!-- Help Popup -->\n <app-help-popup\n [isPopupOpen]=\"isPopupOpen\"\n [showHelpScreenData]=\"showHelpScreenData\"\n [showChat]=\"showChat\"\n [status]=\"status\"\n [error]=\"error\"\n [helpScreenData]=\"helpScreenData\"\n [messages]=\"messages\"\n [needsAgent]=\"needsAgent\"\n [assistantStatus]=\"assistantStatus\"\n [isAblyConnected]=\"isAblyConnected\"\n [isChatClosed]=\"isChatClosed\"\n [currentLang]=\"currentLang\"\n [chatIsLoading]=\"chatIsLoading\"\n [sessionId]=\"sessionId\"\n [isIntroScreenEnabled]=\"isIntroScreenEnabled\"\n [selectedOption]=\"selectedOption\"\n [selectedNestedOption]=\"selectedNestedOption\"\n [showEndChatConfirmation]=\"showEndChatConfirmation\"\n (closePopup)=\"handleClosePopup()\"\n (back)=\"handleBack()\"\n (showChatEvent)=\"handleShowChat()\"\n (endChat)=\"handleEndChat()\"\n (confirmEndChat)=\"confirmEndChat()\"\n (cancelEndChat)=\"cancelEndChat()\"\n (sendMessageEvent)=\"sendMessage($event)\"\n (startNewChat)=\"handleStartNewChat($event)\"\n (showHelpScreenDataEvent)=\"handleShowHelpScreenData()\"\n (hideHelpScreenData)=\"handleHideHelpScreenData()\"\n (navigateToUrl)=\"navigateToUrl($event)\"\n ></app-help-popup>\n</div>\n", styles: [".help-center-container{position:fixed;bottom:1.25rem;right:1.25rem;z-index:1000;width:auto;height:auto;display:flex;flex-direction:column;align-items:flex-end}::ng-deep .babylai-p-6{padding:1.5rem!important}::ng-deep .babylai-p-8{padding:2rem!important}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}\n", "@import\"https://fonts.googleapis.com/css2?family=Cairo:wght@200..1000&display=swap\";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd,ul,ol{margin:0;padding:0}ul,ol{list-style:none}html{scroll-behavior:smooth}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5;font-family:Cairo,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}button{background:none;border:none;padding:0;cursor:pointer;font:inherit;color:inherit}a{color:inherit;text-decoration:none}table{border-collapse:collapse;border-spacing:0}:root{--black-white-50: #ffffff;--black-white-100: #f3f3f3;--black-white-200: #e2e2e2;--black-white-300: #919191;--black-white-400: #606060;--black-white-500: #333333;--black-white-600: #1f1f1f;--black-white-700: #171717;--black-white-800: #0a0a0a;--black-white-900: #050505;--black-white-950: #000000;--black-white-default: #333333;--babylai-storm-dust: #3d3d3d;--babylai-storm-dust-950: #262626;--babylai-primary-color: #ad49e1;--babylai-primary-color-100: #f6ecfc;--babylai-primary-color-200: #deb6f3;--babylai-primary-color-300: #d49cee;--babylai-primary-color-400: #c57fea;--babylai-primary-color-500: #ad49e1;--babylai-primary-color-600: #672b87;--babylai-primary-color-700: #451d5a;--babylai-primary-color-800: #220e2d;--babylai-primary-color-900: #110716;--babylai-primary-color-950: #0a0310}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-accordion-down{animation:accordion-down .2s ease-out}.animate-accordion-up{animation:accordion-up .2s ease-out}.animate-float{animation:float 3s infinite ease-in-out}html,body{font-family:Cairo,sans-serif}div#wave{position:relative}div#wave .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:3px;background:#ad49e1;animation:wave 1.3s linear infinite}div#wave .dot:nth-child(2){animation-delay:-1.1s}div#wave .dot:nth-child(3){animation-delay:-.9s}@keyframes wave{0%,60%,to{transform:initial}30%{transform:translateY(-10px)}}\n"] }]
1842
+ ], template: "<div class=\"help-center-container\" [dir]=\"getDirection()\">\n <!-- TEST: Version mismatch fixed - Arrow Animation - SUCCESS! -->\n <app-arrow-animation\n [showArrowAnimation]=\"showArrowAnimation\"\n [isPopupOpen]=\"isPopupOpen\"\n [messageLabel]=\"messageLabel\"\n (closeArrowAnimation)=\"handleCloseArrowAnimation()\"\n ></app-arrow-animation>\n\n <!-- Help Button -->\n <app-help-button (togglePopup)=\"handleTogglePopup()\"></app-help-button>\n\n <!-- Help Popup -->\n <app-help-popup\n [isPopupOpen]=\"isPopupOpen\"\n [showHelpScreenData]=\"showHelpScreenData\"\n [showChat]=\"showChat\"\n [status]=\"status\"\n [error]=\"error\"\n [helpScreenData]=\"helpScreenData\"\n [messages]=\"messages\"\n [needsAgent]=\"needsAgent\"\n [assistantStatus]=\"assistantStatus\"\n [isAblyConnected]=\"isAblyConnected\"\n [isChatClosed]=\"isChatClosed\"\n [currentLang]=\"currentLang\"\n [chatIsLoading]=\"chatIsLoading\"\n [sessionId]=\"sessionId\"\n [isIntroScreenEnabled]=\"isIntroScreenEnabled\"\n [selectedOption]=\"selectedOption\"\n [selectedNestedOption]=\"selectedNestedOption\"\n [showEndChatConfirmation]=\"showEndChatConfirmation\"\n (closePopup)=\"handleClosePopup()\"\n (back)=\"handleBack()\"\n (showChatEvent)=\"handleShowChat()\"\n (endChat)=\"handleEndChat()\"\n (confirmEndChat)=\"confirmEndChat()\"\n (cancelEndChat)=\"cancelEndChat()\"\n (sendMessageEvent)=\"sendMessage($event)\"\n (startNewChat)=\"handleStartNewChat($event)\"\n (showHelpScreenDataEvent)=\"handleShowHelpScreenData()\"\n (hideHelpScreenData)=\"handleHideHelpScreenData()\"\n (navigateToUrl)=\"navigateToUrl($event)\"\n ></app-help-popup>\n</div>\n", styles: [".help-center-container{position:fixed;bottom:1.25rem;right:1.25rem;z-index:1000;width:auto;height:auto;display:flex;flex-direction:column;align-items:flex-end}::ng-deep .babylai-p-6{padding:1.5rem!important}::ng-deep .babylai-p-8{padding:2rem!important}::ng-deep *,::ng-deep *:before,::ng-deep *:after{box-sizing:border-box;margin:0;padding:0}\n", "@import\"https://fonts.googleapis.com/css2?family=Cairo:wght@200..1000&display=swap\";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd,ul,ol{margin:0;padding:0}ul,ol{list-style:none}html{scroll-behavior:smooth}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5;font-family:Cairo,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}button{background:none;border:none;padding:0;cursor:pointer;font:inherit;color:inherit}a{color:inherit;text-decoration:none}table{border-collapse:collapse;border-spacing:0}:root{--black-white-50: #ffffff;--black-white-100: #f3f3f3;--black-white-200: #e2e2e2;--black-white-300: #919191;--black-white-400: #606060;--black-white-500: #333333;--black-white-600: #1f1f1f;--black-white-700: #171717;--black-white-800: #0a0a0a;--black-white-900: #050505;--black-white-950: #000000;--black-white-default: #333333;--babylai-storm-dust: #3d3d3d;--babylai-storm-dust-950: #262626;--babylai-primary-color: #ad49e1;--babylai-primary-color-100: #f6ecfc;--babylai-primary-color-200: #deb6f3;--babylai-primary-color-300: #d49cee;--babylai-primary-color-400: #c57fea;--babylai-primary-color-500: #ad49e1;--babylai-primary-color-600: #672b87;--babylai-primary-color-700: #451d5a;--babylai-primary-color-800: #220e2d;--babylai-primary-color-900: #110716;--babylai-primary-color-950: #0a0310}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-accordion-down{animation:accordion-down .2s ease-out}.animate-accordion-up{animation:accordion-up .2s ease-out}.animate-float{animation:float 3s infinite ease-in-out}html,body{font-family:Cairo,sans-serif}div#wave{position:relative}div#wave .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:3px;background:#ad49e1;animation:wave 1.3s linear infinite}div#wave .dot:nth-child(2){animation-delay:-1.1s}div#wave .dot:nth-child(3){animation-delay:-.9s}@keyframes wave{0%,60%,to{transform:initial}30%{transform:translateY(-10px)}}\n"] }]
1843
1843
  }], ctorParameters: () => [{ type: ApiService }, { type: TranslationService }, { type: ThemeService }], propDecorators: { getToken: [{
1844
1844
  type: Input
1845
1845
  }], helpScreenId: [{
@@ -1 +1 @@
1
- {"version":3,"file":"aslaluroba-help-center.mjs","sources":["../../../src/app/services/ably.service.ts","../../../src/app/help-center-widget/components/arrow-animation/arrow-animation.component.ts","../../../src/app/help-center-widget/components/arrow-animation/arrow-animation.component.html","../../../src/app/help-center-widget/components/help-button/help-button.component.ts","../../../src/app/help-center-widget/components/help-button/help-button.component.html","../../../src/app/services/translation.service.ts","../../../src/app/pipes/translate.pipe.ts","../../../src/app/shared/components/button/button.component.ts","../../../src/app/shared/components/card/card.component.ts","../../../src/app/help-screen-data/help-screen-data.component.ts","../../../src/app/help-screen-data/help-screen-data.component.html","../../../src/app/shared/components/loading/loading.component.ts","../../../src/app/shared/components/markdown-renderer/markdown-renderer.component.ts","../../../src/app/chat/components/chat-avatar/chat-avatar.component.ts","../../../src/app/chat/components/chat-avatar/chat-avatar.component.html","../../../src/app/chat/components/chat-message/chat-message.component.ts","../../../src/app/chat/components/chat-message/chat-message.component.html","../../../src/app/chat/components/chat-separator/chat-separator.component.ts","../../../src/app/chat/components/chat-separator/chat-separator.component.html","../../../src/app/chat/components/chat-typing-indicator/chat-typing-indicator.component.ts","../../../src/app/chat/components/chat-typing-indicator/chat-typing-indicator.component.html","../../../src/app/chat/components/chat-input/chat-input.component.ts","../../../src/app/chat/components/chat-input/chat-input.component.html","../../../src/app/chat/chat.component.ts","../../../src/app/chat/chat.component.html","../../../src/app/shared/components/confirmation-dialog/confirmation-dialog.component.ts","../../../src/app/help-center-widget/components/intro-section/intro-section.component.ts","../../../src/app/help-center-widget/components/intro-section/intro-section.component.html","../../../src/app/help-center-widget/components/footer/footer.component.ts","../../../src/app/help-center-widget/components/footer/footer.component.html","../../../src/app/shared/components/back-button/back-button.component.ts","../../../src/app/shared/components/back-button/back-button.component.html","../../../src/app/shared/components/close-button/close-button.component.ts","../../../src/app/shared/components/close-button/close-button.component.html","../../../src/app/shared/components/simple-close-button/simple-close-button.component.ts","../../../src/app/shared/components/simple-close-button/simple-close-button.component.html","../../../src/app/services/theme.service.ts","../../../src/app/shared/components/logo/logo.component.ts","../../../src/app/shared/components/logo/logo.component.html","../../../src/app/shared/components/header/header.component.ts","../../../src/app/shared/components/header/header.component.html","../../../src/app/shared/components/menu-dropdown/menu-dropdown.component.ts","../../../src/app/shared/components/menu-dropdown/menu-dropdown.component.html","../../../src/app/shared/components/chat-header/chat-header.component.ts","../../../src/app/shared/components/chat-header/chat-header.component.html","../../../src/app/shared/components/index.ts","../../../src/app/help-center-widget/components/help-popup/help-popup.component.ts","../../../src/app/help-center-widget/components/help-popup/help-popup.component.html","../../../src/app/services/api.service.ts","../../../src/app/help-center-widget/help-center-widget.component.ts","../../../src/app/help-center-widget/help-center-widget.component.html","../../../src/app/services/help-center-config.service.ts","../../../src/app/services/token.service.ts","../../../src/app/language.service.ts","../../../public_api.ts","../../../aslaluroba-help-center.ts"],"sourcesContent":["import * as Ably from 'ably';\n\nexport class ClientAblyService {\n private static client: Ably.Realtime | null = null;\n private static channel: Ably.RealtimeChannel | null = null;\n private static isConnected: boolean = false;\n private static sessionId: string | null = null;\n private static messageUnsubscribe: (() => void) | null = null;\n\n static async startConnection(\n sessionId: string,\n ablyToken: string,\n onMessageReceived: Function,\n tenantId: string\n ) {\n // Prevent multiple connections\n if (this.isConnected && this.sessionId === sessionId) {\n return;\n }\n\n // Close existing connection if connecting to a different session\n if (this.isConnected && this.sessionId !== sessionId) {\n await this.stopConnection();\n }\n\n try {\n // Initialize Ably client with the token\n this.client = new Ably.Realtime({\n authUrl: undefined,\n token: ablyToken,\n autoConnect: true,\n });\n\n // Wait for connection to be established\n await new Promise<void>((resolve, reject) => {\n if (!this.client) {\n reject(new Error('Failed to initialize Ably client'));\n return;\n }\n\n this.client.connection.once('connected', () => {\n this.isConnected = true;\n this.sessionId = sessionId;\n resolve();\n });\n\n this.client.connection.once('failed', (stateChange) => {\n console.error('Ably connection failed:', stateChange);\n reject(\n new Error(\n `Ably connection failed: ${\n stateChange.reason?.message || 'Unknown error'\n }`\n )\n );\n });\n\n this.client.connection.once('disconnected', (stateChange) => {\n console.error('Ably connection disconnected:', stateChange);\n reject(\n new Error(\n `Ably connection disconnected: ${\n stateChange.reason?.message || 'Unknown error'\n }`\n )\n );\n });\n\n // Set a timeout for connection\n setTimeout(() => {\n if (!this.isConnected) {\n reject(new Error('Ably connection timeout'));\n }\n }, 10000);\n });\n\n // Subscribe to the session room\n await this.joinChannel(sessionId, onMessageReceived, tenantId);\n } catch (error) {\n console.error('Error during Ably connection setup:', error);\n this.isConnected = false;\n this.sessionId = null;\n throw error;\n }\n }\n\n private static async joinChannel(\n sessionId: string,\n onMessageReceived: Function,\n tenantId: string\n ) {\n if (!this.client) {\n throw new Error('Chat client not initialized');\n }\n\n const roomName = `session:${tenantId}:${sessionId}`;\n\n // Set up raw channel subscription for server messages\n if (this.client) {\n this.channel = this.client.channels.get(roomName);\n\n // Subscribe to assistant/system responses\n this.channel.subscribe('ReceiveMessage', (message) => {\n try {\n const messageContent =\n typeof message.data === 'string'\n ? message.data\n : message.data?.content || message.data?.message;\n const senderType = message.data?.senderType || 3; // Assistant\n const needsAgent = message.data?.needsAgent || false;\n\n onMessageReceived(messageContent, senderType, needsAgent);\n } catch (error) {\n console.error('Error processing ReceiveMessage:', error);\n }\n });\n\n await this.channel.attach();\n }\n }\n\n static async stopConnection() {\n try {\n // Unsubscribe from room messages\n if (this.messageUnsubscribe) {\n this.messageUnsubscribe();\n this.messageUnsubscribe = null;\n }\n\n // Unsubscribe and detach from raw channel\n if (this.channel) {\n this.channel.unsubscribe();\n await this.channel.detach();\n this.channel = null;\n }\n\n // Close Ably connection\n if (this.client) {\n this.client.close();\n this.client = null;\n }\n\n this.isConnected = false;\n this.sessionId = null;\n } catch (error) {\n console.error('Error stopping Ably connection:', error);\n // Reset state even if there's an error\n this.isConnected = false;\n this.sessionId = null;\n this.client = null;\n this.channel = null;\n this.messageUnsubscribe = null;\n }\n }\n\n static isConnectionActive(): boolean {\n return this.isConnected && this.client?.connection.state === 'connected';\n }\n\n static getConnectionState(): string {\n return this.client?.connection.state || 'disconnected';\n }\n\n // Method to manually send a message (if needed for debugging or direct messaging)\n static async sendMessage(messageContent: string, senderType: number = 1) {\n if (!this.channel || !this.isConnected) {\n throw new Error('Connection not active');\n }\n\n try {\n const messageData = {\n text: messageContent,\n metadata: {\n senderType,\n sentAt: new Date().toISOString(),\n },\n };\n\n await this.channel.publish('message', messageData);\n } catch (error) {\n console.error('Error sending message:', error);\n throw error;\n }\n }\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-arrow-animation',\n templateUrl: './arrow-animation.component.html',\n styleUrls: ['./arrow-animation.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class ArrowAnimationComponent {\n @Input() showArrowAnimation: boolean = false;\n @Input() isPopupOpen: boolean = false;\n @Input() messageLabel: string | null = null;\n @Output() closeArrowAnimation = new EventEmitter<void>();\n\n handleCloseArrowAnimation() {\n this.closeArrowAnimation.emit();\n }\n}\n","@if (showArrowAnimation && !isPopupOpen) {\n<div class=\"arrow-animation\">\n <div class=\"message-box\">\n <p>\n {{\n messageLabel ||\n \"Need assistance Or You want to try the Product? Click here\"\n }}\n </p>\n <button class=\"close-button\" (click)=\"handleCloseArrowAnimation()\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\">\n <path\n d=\"M1 1L11 11M1 11L11 1\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n />\n </svg>\n </button>\n <div class=\"arrow-tip\"></div>\n </div>\n</div>\n}\n","import { Component, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-help-button',\n templateUrl: './help-button.component.html',\n styleUrls: ['./help-button.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class HelpButtonComponent {\n @Output() togglePopup = new EventEmitter<void>();\n\n handleTogglePopup() {\n this.togglePopup.emit();\n }\n}\n","<button class=\"help-button\" (click)=\"handleTogglePopup()\">\n <span class=\"help-button-content\">\n <svg\n class=\"help-button-logo\"\n viewBox=\"0 0 55 53\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.53125 19.1353C8.53125 12.2804 14.0883 6.72339 20.9432 6.72339H41.6298C48.4847 6.72339 54.0418 12.2804 54.0418 19.1353V52.2339H20.9432C14.0883 52.2339 8.53125 46.6769 8.53125 39.8219V19.1353Z\"\n fill=\"#E5E5E5\"\n />\n <path\n d=\"M0 12.412C0 5.55702 5.55702 0 12.412 0H33.0985C39.9535 0 45.5105 5.55702 45.5105 12.412V33.0985C45.5105 39.9535 39.9535 45.5105 33.0985 45.5105H0V12.412Z\"\n fill=\"white\"\n />\n <path\n d=\"M14.3684 15.2203C14.3696 15.2162 14.3701 15.2142 14.3704 15.2132C14.5505 14.5816 15.4457 14.5816 15.6258 15.2132C15.6261 15.2142 15.6267 15.2162 15.6278 15.2203C15.6309 15.2311 15.6324 15.2365 15.6338 15.2416C16.4708 18.1971 18.7808 20.5071 21.7364 21.3441C21.7414 21.3455 21.7468 21.3471 21.7576 21.3501C21.7617 21.3512 21.7637 21.3518 21.7647 21.3521C22.3963 21.5322 22.3963 22.4274 21.7647 22.6075C21.7637 22.6078 21.7617 22.6084 21.7576 22.6095C21.7468 22.6126 21.7414 22.6141 21.7364 22.6155C18.7808 23.4525 16.4708 25.7625 15.6338 28.7181C15.6324 28.7231 15.6309 28.7285 15.6278 28.7393C15.6267 28.7434 15.6261 28.7454 15.6258 28.7464C15.4457 29.378 14.5505 29.378 14.3704 28.7464C14.3701 28.7454 14.3696 28.7434 14.3684 28.7393C14.3654 28.7285 14.3638 28.7231 14.3624 28.7181C13.5254 25.7625 11.2154 23.4525 8.25988 22.6155C8.25481 22.6141 8.24942 22.6126 8.23864 22.6095C8.23454 22.6084 8.2325 22.6078 8.23155 22.6075C7.5999 22.4274 7.5999 21.5322 8.23155 21.3521C8.2325 21.3518 8.23454 21.3512 8.23864 21.3501C8.24942 21.3471 8.25481 21.3455 8.25988 21.3441C11.2154 20.5071 13.5254 18.1971 14.3624 15.2416C14.3638 15.2365 14.3654 15.2311 14.3684 15.2203Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M36.7198 21.8503C36.7198 24.9207 34.2886 27.4098 31.2896 27.4098C28.2906 27.4098 25.8594 24.9207 25.8594 21.8503C25.8594 18.7799 28.2906 16.2908 31.2896 16.2908C34.2886 16.2908 36.7198 18.7799 36.7198 21.8503Z\"\n fill=\"currentColor\"\n />\n </svg>\n </span>\n</button>\n","// src/app/services/translation.service.ts\nimport { Injectable } from '@angular/core'\nimport { BehaviorSubject, Observable } from 'rxjs'\nimport { Language } from '../types'\n\nexport type TranslationKey = \n | 'ChatIntroMessage'\n | 'BabylaiTitle'\n | 'BabylaiDescription'\n | 'ChatNow'\n | 'TryBableAI'\n | 'ContactUs'\n | 'PickTopicTitle'\n | 'BabylAI'\n | 'ChatPlaceholder'\n | 'PoweredByBabylAI'\n | 'EndChat'\n | 'LeavingDialogTitle'\n | 'LeavingDialogBody'\n | 'Confirm'\n | 'Cancel'\n | 'title'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TranslationService {\n private translations = {\n en: {\n ChatIntroMessage: 'Chat with BabylAI 🚀',\n BabylaiTitle: 'BabylAI',\n BabylaiDescription: \"Hey there! 👋 I'm BabylAI, here to assist you.\",\n ChatNow: 'Chat Now',\n TryBableAI: 'Try BabylAI for Free 🎉',\n ContactUs: \"Contact us, Let's Talk! 💬\",\n PickTopicTitle: 'Pick a Topic to Get Started',\n BabylAI: 'BabylAI',\n ChatPlaceholder: 'Type your message...',\n PoweredByBabylAI: 'Powered by BabylAI © 2025',\n EndChat: 'End Chat',\n LeavingDialogTitle: 'Leaving so soon? 👋',\n LeavingDialogBody: \"Don't worry, you can come back anytime. We're always here if you need help or have questions.\",\n Confirm: 'Confirm',\n Cancel: 'Cancel',\n title: 'Help Center'\n },\n ar: {\n ChatIntroMessage: 'دردش مع BabylAI 🚀',\n BabylaiTitle: 'BabylAI',\n BabylaiDescription: 'مرحبا! 👋 أنا BabylAI، هنا لتساعدك.',\n ChatNow: 'دردش الآن',\n TryBableAI: 'جرب BabylAI مجانا 🎉',\n ContactUs: 'تواصل معنا, دعنا نتحدث! 💬',\n PickTopicTitle: 'اختر موضوع للبدء',\n BabylAI: 'BabylAI',\n ChatPlaceholder: 'اكتب رسالتك...',\n PoweredByBabylAI: 'مدعوم من BabylAI © 2025',\n EndChat: 'إنهاء الدردشة',\n LeavingDialogTitle: 'هل تغادر بالفعل؟ 👋',\n LeavingDialogBody: 'لا تقلق، يمكنك العودة في أي وقت. نحن دائماً هنا إذا كنت بحاجة إلى مساعدة أو لديك أسئلة.',\n Confirm: 'تأكيد',\n Cancel: 'إلغاء',\n title: 'مركز المساعدة'\n }\n }\n\n private _currentLang = new BehaviorSubject<Language>('en')\n public readonly currentLang: Observable<Language> = this._currentLang.asObservable()\n\n constructor() {}\n\n translate(key: TranslationKey): string {\n const lang = this._currentLang.value as Language\n return this.translations[lang][key] || key\n }\n\n setLanguage(lang: Language) {\n this._currentLang.next(lang)\n }\n\n getCurrentLang(): Language {\n return this._currentLang.value\n }\n}\n","// src/app/pipes/translate.pipe.ts\nimport { Pipe, PipeTransform, inject } from '@angular/core'\nimport { TranslationService, TranslationKey } from '../services/translation.service'\n\n@Pipe({\n name: 'translate',\n standalone: true\n})\nexport class TranslatePipe implements PipeTransform {\n private translationService = inject(TranslationService) as TranslationService\n\n transform(key: TranslationKey): string {\n return this.translationService.translate(key)\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\n\ntype ButtonVariant = 'default' | 'icon-bg' | 'icon-only' | 'outline';\ntype ButtonType = 'button' | 'submit' | 'reset';\n\n@Component({\n selector: 'app-button',\n standalone: true,\n imports: [CommonModule],\n styleUrls: ['./button.component.scss'],\n template: `\n <button\n [type]=\"type\"\n [disabled]=\"disabled\"\n [class]=\"getButtonClasses()\"\n (click)=\"onClick.emit($event)\"\n [dir]=\"direction\"\n >\n <ng-content></ng-content>\n </button>\n `,\n})\nexport class ButtonComponent {\n @Input() variant: ButtonVariant = 'default';\n @Input() type: ButtonType = 'button';\n @Input() disabled = false;\n @Input() fullWidth = false;\n @Input() className = '';\n @Input() size: 'default' | 'small' | 'medium' = 'default';\n @Input() direction: 'ltr' | 'rtl' = 'ltr';\n @Output() onClick = new EventEmitter<MouseEvent>();\n\n getButtonClasses(): string {\n const classes = ['button'];\n\n // Add variant class\n classes.push(`button--${this.variant}`);\n\n // Add full width class if needed\n if (this.fullWidth) {\n classes.push('button--full-width');\n }\n\n // Add size class if needed\n if (this.size) {\n classes.push(`button--${this.size}`);\n }\n\n // Add direction class\n classes.push(`button--${this.direction}`);\n\n // Add custom classes\n if (this.className) {\n classes.push(this.className);\n }\n\n return classes.join(' ');\n }\n}\n\n@Component({\n selector: 'app-button-content',\n standalone: true,\n imports: [CommonModule],\n template: ` <ng-content></ng-content> `,\n})\nexport class ButtonContentComponent {}\n\n@Component({\n selector: 'app-icon-button',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n template: `\n <app-button\n variant=\"icon-bg\"\n [className]=\"className\"\n [disabled]=\"disabled\"\n (onClick)=\"onClick.emit($event)\"\n >\n <ng-content></ng-content>\n </app-button>\n `,\n})\nexport class IconButtonComponent {\n @Input() className = '';\n @Input() disabled = false;\n @Output() onClick = new EventEmitter<MouseEvent>();\n}\n\n@Component({\n selector: 'app-transparent-icon-button',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n template: `\n <app-button\n variant=\"icon-only\"\n [className]=\"className\"\n [disabled]=\"disabled\"\n (onClick)=\"onClick.emit($event)\"\n >\n <ng-content></ng-content>\n </app-button>\n `,\n})\nexport class TransparentIconButtonComponent {\n @Input() className = '';\n @Input() disabled = false;\n @Output() onClick = new EventEmitter<MouseEvent>();\n}\n","import { Component, Input, HostBinding, ViewEncapsulation } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\n@Component({\n selector: 'app-card',\n standalone: true,\n imports: [CommonModule],\n styleUrls: ['./card.component.scss'],\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None\n})\nexport class CardComponent {\n @Input() variant: 'default' | 'rounded' | 'shadowed' = 'default'\n @Input() class = ''\n\n @HostBinding('class')\n get hostClasses(): string {\n const classes = ['card']\n classes.push(`card--${this.variant}`)\n if (this.class) {\n classes.push(this.class)\n }\n return classes.join(' ')\n }\n}\n\n@Component({\n selector: 'app-card-header',\n standalone: true,\n imports: [CommonModule],\n styleUrls: ['./card.component.scss'],\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None\n})\nexport class CardHeaderComponent {\n @Input() class = ''\n\n @HostBinding('class')\n get hostClasses(): string {\n const classes = ['card__header']\n if (this.class) {\n classes.push(this.class)\n }\n return classes.join(' ')\n }\n}\n\n@Component({\n selector: 'app-card-title',\n standalone: true,\n imports: [CommonModule],\n styleUrls: ['./card.component.scss'],\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None\n})\nexport class CardTitleComponent {\n @Input() class = ''\n\n @HostBinding('class')\n get hostClasses(): string {\n const classes = ['card__title']\n if (this.class) {\n classes.push(this.class)\n }\n return classes.join(' ')\n }\n}\n\n@Component({\n selector: 'app-card-description',\n standalone: true,\n imports: [CommonModule],\n styleUrls: ['./card.component.scss'],\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None\n})\nexport class CardDescriptionComponent {\n @Input() class = ''\n\n @HostBinding('class')\n get hostClasses(): string {\n const classes = ['card__description']\n if (this.class) {\n classes.push(this.class)\n }\n return classes.join(' ')\n }\n}\n\n@Component({\n selector: 'app-card-content',\n standalone: true,\n imports: [CommonModule],\n styleUrls: ['./card.component.scss'],\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None\n})\nexport class CardContentComponent {\n @Input() class = ''\n\n @HostBinding('class')\n get hostClasses(): string {\n const classes = ['card__content']\n if (this.class) {\n classes.push(this.class)\n }\n return classes.join(' ')\n }\n}\n\n@Component({\n selector: 'app-card-footer',\n standalone: true,\n imports: [CommonModule],\n styleUrls: ['./card.component.scss'],\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None\n})\nexport class CardFooterComponent {\n @Input() class = ''\n\n @HostBinding('class')\n get hostClasses(): string {\n const classes = ['card__footer']\n if (this.class) {\n classes.push(this.class)\n }\n return classes.join(' ')\n }\n}\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { CardComponent, CardContentComponent } from '../shared/components/card/card.component'\nimport { ButtonComponent } from '../shared/components/button/button.component'\nimport { TranslatePipe } from '../pipes/translate.pipe'\n\ninterface Tenant {\n id: string\n name: string\n key: string\n}\n\ninterface Assistant {\n id: string\n tenantId: string\n tenant: Tenant\n name: string\n openAIAssistantId: string\n greeting: string\n closing: string\n}\n\ninterface HelpScreenOption {\n id: string\n helpScreenId: string\n parentOptionId: string | null\n parentOption: HelpScreenOption | null\n nestedOptions: HelpScreenOption[]\n assistantId: string\n assistant: Assistant\n title: string\n paragraphs: string[]\n files: any[]\n chatWithUs: boolean\n hasNestedOptions: boolean\n order: number\n}\n\ninterface HelpScreenData {\n id: string\n tenantId: string\n tenant: Tenant\n title: string\n description: string\n options: HelpScreenOption[]\n chatWithUs: boolean\n}\n\n@Component({\n selector: 'app-help-screen-data',\n standalone: true,\n imports: [CommonModule, CardComponent, CardContentComponent, ButtonComponent, TranslatePipe],\n templateUrl: './help-screen-data.component.html',\n styleUrls: ['./help-screen-data.component.scss']\n})\nexport class HelpScreenDataComponent implements OnInit {\n @Input() helpScreenData: HelpScreenData | null = null\n @Input() title: string = ''\n @Output() handleStartNewChat = new EventEmitter<HelpScreenOption>()\n\n expandedItemId: string | null = null\n\n get helpScreenDataList() {\n if (!this.helpScreenData?.options) return []\n // Transform options to the format expected by HelpScreenDataComponent\n return this.helpScreenData.options.map((option: any) => ({\n icon: option.icon || 'assets/icons/default.svg',\n title: option.title,\n description: option.paragraphs?.[0] || '',\n actionLabel: option.chatWithUs ? 'Chat Now' : '',\n action: option.chatWithUs ? () => this.handleStartChat(option) : null\n }))\n }\n\n ngOnInit() {}\n\n toggleExpand(itemId: string): void {\n if (this.expandedItemId === itemId) {\n this.expandedItemId = null\n } else {\n this.expandedItemId = itemId\n setTimeout(() => {\n const element = document.getElementById(itemId)\n if (element) {\n element.scrollIntoView({ behavior: 'smooth', block: 'nearest' })\n }\n }, 100)\n }\n }\n\n handleStartChat(option: HelpScreenOption): void {\n this.handleStartNewChat.emit(option)\n }\n}\n","<div class=\"help-screen\">\n <h1 class=\"help-screen__title\">\n {{ 'PickTopicTitle' | translate }}\n </h1>\n @for (item of helpScreenData?.options; track item.id) {\n <app-card [id]=\"item.id\" variant=\"rounded\" class=\"help-screen__card\" (click)=\"toggleExpand(item.id)\">\n <app-card-content>\n <!-- Header section (always visible) -->\n <div class=\"help-screen__header\">\n <h4 class=\"help-screen__title-text\">{{ item.title }}</h4>\n <div class=\"help-screen__arrow-container\" [ngClass]=\"{\n 'help-screen__arrow-container--expanded': expandedItemId === item.id,\n 'help-screen__arrow-container--collapsed': expandedItemId !== item.id\n }\">\n <!-- <img src=\"/icons/arrow-stripped-colored.svg\" alt=\"arrow-down\" /> -->\n <svg class=\"help-screen__header__back-button-icon\" fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 15L1 8L2.5 6.25M7 1L5 3.333\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </div>\n </div>\n\n <!-- Expanded content (visible only when expanded) -->\n @if (expandedItemId === item.id) {\n <div class=\"help-screen__content\">\n @for (paragraph of item.paragraphs; track paragraph) {\n <div class=\"help-screen__paragraph\">\n {{ paragraph }}\n </div>\n }\n </div>\n @if (item?.chatWithUs) {\n <footer class=\"help-screen__footer\">\n <app-button variant=\"default\" [fullWidth]=\"true\" (click)=\"handleStartChat(item)\">\n {{ 'ChatNow' | translate }}\n </app-button>\n </footer>\n }\n }\n </app-card-content>\n </app-card>\n }\n</div>","import { Component, Input } from '@angular/core'\n\n@Component({\n selector: 'app-loading',\n styleUrls: ['./loading.component.scss'],\n template: `\n <div class=\"loading\">\n <div class=\"loader\" [class.loader--primary]=\"variant === 'primary'\"></div>\n </div>\n `,\n standalone: true\n})\nexport class LoadingComponent {\n @Input() variant: 'default' | 'primary' = 'default'\n}\n","import { Component, Input, OnInit, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { marked } from 'marked';\n\n@Component({\n selector: 'app-markdown-renderer',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div \n #markdownContainer\n [class]=\"cssClass\"\n [dir]=\"dir\"\n [innerHTML]=\"renderedContent\"\n ></div>\n `,\n styles: []\n})\nexport class MarkdownRendererComponent implements OnInit, AfterViewInit {\n @Input() content: string = '';\n @Input() inline: boolean = false;\n @Input() cssClass: string = '';\n @Input() dir: string = 'ltr';\n @ViewChild('markdownContainer') markdownContainer!: ElementRef;\n\n renderedContent: string = '';\n\n ngOnInit(): void {\n this.renderContent();\n }\n\n ngAfterViewInit(): void {\n this.highlightCode();\n }\n\n private renderContent(): void {\n if (this.content) {\n try {\n this.renderedContent = marked.parse(this.content) as string;\n } catch (e) {\n console.warn('Error parsing markdown:', e);\n this.renderedContent = this.content;\n }\n } else {\n this.renderedContent = this.content;\n }\n }\n\n private highlightCode(): void {\n if (typeof window !== 'undefined' && (window as any).Prism) {\n const Prism = (window as any).Prism;\n if (this.markdownContainer?.nativeElement) {\n Prism.highlightAllUnder(this.markdownContainer.nativeElement);\n }\n }\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-chat-avatar',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './chat-avatar.component.html',\n styleUrls: ['./chat-avatar.component.scss']\n})\nexport class ChatAvatarComponent {\n @Input() senderType: number = 1;\n @Input() needsAgent: boolean = false;\n @Input() isHidden: boolean = false;\n}\n","<div\n class=\"chat__avatar\"\n [class.chat__avatar--hidden]=\"isHidden\"\n>\n @if (senderType === 3) {\n <span class=\"chat__avatar-wrapper chat__avatar-wrapper--assistant\">\n <svg\n class=\"chat__avatar-image\"\n viewBox=\"0 0 55 53\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.53125 19.1353C8.53125 12.2804 14.0883 6.72339 20.9432 6.72339H41.6298C48.4847 6.72339 54.0418 12.2804 54.0418 19.1353V52.2339H20.9432C14.0883 52.2339 8.53125 46.6769 8.53125 39.8219V19.1353Z\"\n fill=\"#E5E5E5\"\n />\n <path\n d=\"M0 12.412C0 5.55702 5.55702 0 12.412 0H33.0985C39.9535 0 45.5105 5.55702 45.5105 12.412V33.0985C45.5105 39.9535 39.9535 45.5105 33.0985 45.5105H0V12.412Z\"\n fill=\"white\"\n />\n <path\n d=\"M14.3684 15.2203C14.3696 15.2162 14.3701 15.2142 14.3704 15.2132C14.5505 14.5816 15.4457 14.5816 15.6258 15.2132C15.6261 15.2142 15.6267 15.2162 15.6278 15.2203C15.6309 15.2311 15.6324 15.2365 15.6338 15.2416C16.4708 18.1971 18.7808 20.5071 21.7364 21.3441C21.7414 21.3455 21.7468 21.3471 21.7576 21.3501C21.7617 21.3512 21.7637 21.3518 21.7647 21.3521C22.3963 21.5322 22.3963 22.4274 21.7647 22.6075C21.7637 22.6078 21.7617 22.6084 21.7576 22.6095C21.7468 22.6126 21.7414 22.6141 21.7364 22.6155C18.7808 23.4525 16.4708 25.7625 15.6338 28.7181C15.6324 28.7231 15.6309 28.7285 15.6278 28.7393C15.6267 28.7434 15.6261 28.7454 15.6258 28.7464C15.4457 29.378 14.5505 29.378 14.3704 28.7464C14.3701 28.7454 14.3696 28.7434 14.3684 28.7393C14.3654 28.7285 14.3638 28.7231 14.3624 28.7181C13.5254 25.7625 11.2154 23.4525 8.25988 22.6155C8.25481 22.6141 8.24942 22.6126 8.23864 22.6095C8.23454 22.6084 8.2325 22.6078 8.23155 22.6075C7.5999 22.4274 7.5999 21.5322 8.23155 21.3521C8.2325 21.3518 8.23454 21.3512 8.23864 21.3501C8.24942 21.3471 8.25481 21.3455 8.25988 21.3441C11.2154 20.5071 13.5254 18.1971 14.3624 15.2416C14.3638 15.2365 14.3654 15.2311 14.3684 15.2203Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M36.7198 21.8503C36.7198 24.9207 34.2886 27.4098 31.2896 27.4098C28.2906 27.4098 25.8594 24.9207 25.8594 21.8503C25.8594 18.7799 28.2906 16.2908 31.2896 16.2908C34.2886 16.2908 36.7198 18.7799 36.7198 21.8503Z\"\n fill=\"currentColor\"\n />\n </svg>\n </span>\n } @else if (needsAgent || senderType === 2) {\n <span class=\"chat__avatar-wrapper chat__avatar-wrapper--agent\">\n <svg\n class=\"chat__avatar-image\"\n viewBox=\"0 0 12 14\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.99479 5.66658C7.46755 5.66658 8.66146 4.47268 8.66146 2.99992C8.66146 1.52716 7.46755 0.333252 5.99479 0.333252C4.52203 0.333252 3.32812 1.52716 3.32812 2.99992C3.32812 4.47268 4.52203 5.66658 5.99479 5.66658Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M11.3307 10.6665C11.3307 12.3232 11.3307 13.6665 5.9974 13.6665C0.664062 13.6665 0.664062 12.3232 0.664062 10.6665C0.664062 9.00984 3.05206 7.6665 5.9974 7.6665C8.94273 7.6665 11.3307 9.00984 11.3307 10.6665Z\"\n fill=\"currentColor\"\n />\n </svg>\n </span>\n }\n</div>\n","import { Message } from './../../../types';\nimport { MarkdownRendererComponent } from './../../../shared/components/markdown-renderer/markdown-renderer.component';\nimport {\n CardComponent,\n CardContentComponent,\n} from './../../../shared/components/card';\nimport { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ChatAvatarComponent } from '../chat-avatar/chat-avatar.component';\n\n@Component({\n selector: 'app-chat-message',\n standalone: true,\n imports: [\n CommonModule,\n CardComponent,\n CardContentComponent,\n MarkdownRendererComponent,\n ChatAvatarComponent,\n ],\n templateUrl: './chat-message.component.html',\n styleUrls: ['./chat-message.component.scss'],\n})\nexport class ChatMessageComponent {\n @Input() message!: Message;\n @Input() needsAgent: boolean = false;\n @Input() currentLang: string = 'en';\n @Input() isHidden: boolean = false;\n\n cleanMessageContent(content: string): string {\n return content.replace(/```/g, '\\\\`\\\\`\\\\`');\n }\n}\n","<div\n class=\"chat__message-container\"\n [class.chat__message-container--user]=\"message.senderType === 1\"\n>\n <app-chat-avatar\n [senderType]=\"message.senderType\"\n [needsAgent]=\"needsAgent\"\n [isHidden]=\"isHidden\"\n />\n <app-card\n variant=\"rounded\"\n [class]=\"\n 'chat__message ' +\n (message.senderType === 1\n ? 'chat__message--user'\n : 'chat__message--assistant')\n \"\n >\n <app-card-content>\n <div class=\"chat__message-content\">\n <app-markdown-renderer\n [content]=\"cleanMessageContent(message.messageContent)\"\n [inline]=\"false\"\n [cssClass]=\"'prose' + (message.senderType === 1 ? ' prose-invert' : '')\"\n [dir]=\"currentLang === 'ar' ? 'rtl' : 'ltr'\"\n >\n </app-markdown-renderer>\n </div>\n </app-card-content>\n </app-card>\n</div>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-chat-separator',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './chat-separator.component.html',\n styleUrls: ['./chat-separator.component.scss']\n})\nexport class ChatSeparatorComponent {}\n","<div class=\"chat__separator\">\n <svg\n width=\"100%\"\n height=\"14\"\n viewBox=\"0 0 327 14\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <line x1=\"132.5\" y1=\"7.5\" y2=\"7.5\" stroke=\"currentColor\" />\n <path\n d=\"M162.891 0.464864C162.892 0.460907 162.893 0.458928 162.893 0.458012C163.067 -0.152671 163.933 -0.152671 164.107 0.458012C164.107 0.458928 164.108 0.460907 164.109 0.464864C164.112 0.475291 164.113 0.480505 164.115 0.4854C164.924 3.34287 167.157 5.57619 170.015 6.38539C170.019 6.38678 170.025 6.38825 170.035 6.39119C170.039 6.3923 170.041 6.39286 170.042 6.39312C170.653 6.56727 170.653 7.43274 170.042 7.60688C170.041 7.60714 170.039 7.6077 170.035 7.60881C170.025 7.61175 170.019 7.61322 170.015 7.61461C167.157 8.42381 164.924 10.6571 164.115 13.5146C164.113 13.5195 164.112 13.5247 164.109 13.5351C164.108 13.5391 164.107 13.5411 164.107 13.542C163.933 14.1527 163.067 14.1527 162.893 13.542C162.893 13.5411 162.892 13.5391 162.891 13.5351C162.888 13.5247 162.887 13.5195 162.885 13.5146C162.076 10.6571 159.843 8.42381 156.985 7.61461C156.981 7.61322 156.975 7.61175 156.965 7.60881C156.961 7.6077 156.959 7.60714 156.958 7.60688C156.347 7.43274 156.347 6.56727 156.958 6.39312C156.959 6.39286 156.961 6.3923 156.965 6.39119C156.975 6.38825 156.981 6.38678 156.985 6.38539C159.843 5.57619 162.076 3.34287 162.885 0.4854C162.887 0.480505 162.888 0.475291 162.891 0.464864Z\"\n fill=\"currentColor\"\n />\n <line x1=\"327\" y1=\"7.5\" x2=\"194.5\" y2=\"7.5\" stroke=\"currentColor\" />\n </svg>\n</div>\n","import { CardComponent, CardContentComponent } from './../../../shared/components/card/card.component';\nimport { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ChatAvatarComponent } from '../chat-avatar/chat-avatar.component';\n\n@Component({\n selector: 'app-chat-typing-indicator',\n standalone: true,\n imports: [CommonModule, CardComponent, CardContentComponent, ChatAvatarComponent],\n templateUrl: './chat-typing-indicator.component.html',\n styleUrls: ['./chat-typing-indicator.component.scss']\n})\nexport class ChatTypingIndicatorComponent {}\n","<div class=\"chat__typing\">\n <app-chat-avatar [senderType]=\"3\" [needsAgent]=\"false\" [isHidden]=\"false\" />\n <app-card\n variant=\"rounded\"\n class=\"chat__typing_indicator\"\n >\n <app-card-content>\n <div id=\"wave\">\n <span class=\"dot\"></span>\n <span class=\"dot\"></span>\n <span class=\"dot\"></span>\n </div>\n </app-card-content>\n </app-card>\n</div>\n","import { Component, Input, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '../../../pipes/translate.pipe';\n\n@Component({\n selector: 'app-chat-input',\n standalone: true,\n imports: [CommonModule, FormsModule, TranslatePipe],\n templateUrl: './chat-input.component.html',\n styleUrls: ['./chat-input.component.scss']\n})\nexport class ChatInputComponent {\n @Input() isChatClosed: boolean = false;\n @Input() assistantStatus: string = '';\n @Input() currentLang: string = 'en';\n @Output() sendMessage = new EventEmitter<string>();\n @ViewChild('messageInput') messageInput!: ElementRef;\n\n messageContent = '';\n\n handleSendMessage(): void {\n if (!this.messageContent.trim() || this.assistantStatus === 'typing') return;\n this.sendMessage.emit(this.messageContent);\n this.messageContent = '';\n this.adjustTextareaHeight();\n }\n\n adjustTextareaHeight(): void {\n const textarea = this.messageInput?.nativeElement;\n if (textarea) {\n textarea.style.height = 'auto';\n textarea.style.height = textarea.scrollHeight + 'px';\n }\n }\n}\n","<form (ngSubmit)=\"handleSendMessage()\" class=\"chat__input-container\">\n <div class=\"chat__input-wrapper\">\n <input\n type=\"text\"\n [(ngModel)]=\"messageContent\"\n name=\"messageContent\"\n [placeholder]=\"'ChatPlaceholder' | translate\"\n [disabled]=\"isChatClosed\"\n class=\"chat__input\"\n #messageInput\n />\n <button\n type=\"submit\"\n [disabled]=\"\n !messageContent.trim() || isChatClosed || assistantStatus === 'typing'\n \"\n class=\"chat__send-button\"\n >\n <svg\n class=\"chat__send-button-icon\"\n [class.chat__send-button-icon--rtl]=\"currentLang === 'ar'\"\n viewBox=\"0 0 19 19\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M18.2346 2.68609C18.6666 1.49109 17.5086 0.33309 16.3136 0.76609L1.70855 6.04809C0.509554 6.48209 0.364554 8.11809 1.46755 8.75709L6.12955 11.4561L10.2926 7.29309C10.4812 7.11093 10.7338 7.01014 10.996 7.01242C11.2582 7.01469 11.509 7.11986 11.6944 7.30527C11.8798 7.49068 11.9849 7.74149 11.9872 8.00369C11.9895 8.26589 11.8887 8.51849 11.7066 8.70709L7.54355 12.8701L10.2436 17.5321C10.8816 18.6351 12.5176 18.4891 12.9516 17.2911L18.2346 2.68609Z\"\n fill=\"white\"\n />\n </svg>\n </button>\n </div>\n</form>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n OnInit,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LoadingComponent } from '../shared/components/loading/loading.component';\nimport { ChatMessageComponent } from './components/chat-message/chat-message.component';\nimport { ChatSeparatorComponent } from './components/chat-separator/chat-separator.component';\nimport { ChatTypingIndicatorComponent } from './components/chat-typing-indicator/chat-typing-indicator.component';\nimport { ChatInputComponent } from './components/chat-input/chat-input.component';\nimport { Message } from '../types';\n\n// Import Prism.js components\nimport 'prismjs';\nimport 'prismjs/components/prism-typescript';\nimport 'prismjs/components/prism-javascript';\nimport 'prismjs/components/prism-css';\nimport 'prismjs/components/prism-json';\n\n@Component({\n selector: 'app-chat',\n standalone: true,\n imports: [\n CommonModule,\n LoadingComponent,\n ChatMessageComponent,\n ChatSeparatorComponent,\n ChatTypingIndicatorComponent,\n ChatInputComponent,\n ],\n templateUrl: './chat.component.html',\n styleUrls: ['./chat.component.scss'],\n})\nexport class ChatComponent implements OnInit, OnChanges {\n @Input() messages: Message[] = [];\n @Input() needsAgent: boolean = false;\n @Input() assistantStatus: string = '';\n @Input() isAblyConnected: boolean = false;\n @Input() isChatClosed: boolean = false;\n @Input() currentLang: string = 'en';\n @Input() loading: boolean = false;\n @Output() sendMessageEvent = new EventEmitter<string>();\n @ViewChild('chatMessagesContainer') chatMessagesContainer!: ElementRef;\n\n firstAgentMessageIndex = -1;\n\n ngOnInit(): void {\n this.findFirstAgentMessageIndex();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['messages']) {\n this.findFirstAgentMessageIndex();\n }\n }\n\n findFirstAgentMessageIndex(): void {\n // Only set firstAgentMessageIndex if we haven't found it yet\n if (this.firstAgentMessageIndex === -1) {\n this.firstAgentMessageIndex = this.messages.findIndex(\n (message) => message.senderType === 2\n );\n }\n }\n\n handleSendMessage(message: string): void {\n this.sendMessageEvent.emit(message);\n }\n\n ngAfterViewChecked(): void {\n this.scrollToBottom();\n }\n\n scrollToBottom(): void {\n try {\n this.chatMessagesContainer.nativeElement.scrollTop =\n this.chatMessagesContainer.nativeElement.scrollHeight;\n } catch (err) {\n console.error('Error scrolling to bottom:', err);\n }\n }\n\n hasAgentMessageBeenSent(messages: any[]): boolean {\n return messages.some(\n (message) => message.senderType === 2 || message.senderType === 3\n );\n }\n\n}\n","<div class=\"chat\">\n <div class=\"chat__messages\" #chatMessagesContainer>\n @for (message of messages; track message.id; let i = $index) {\n <div class=\"chat__message-group\">\n @if (i === firstAgentMessageIndex && message.senderType === 2) {\n <app-chat-separator />\n }\n <app-chat-message [message]=\"message\" [needsAgent]=\"needsAgent\" [currentLang]=\"currentLang\"\n [isHidden]=\"i > 0 && messages[i - 1].senderType === message.senderType\" />\n </div>\n }\n\n @if (assistantStatus === 'typing' && firstAgentMessageIndex === -1) {\n <app-chat-typing-indicator />\n }\n @if (loading) {\n <div class=\"chat__loading\">\n <app-loading variant=\"primary\" />\n </div>\n }\n </div>\n\n <app-chat-input [isChatClosed]=\"isChatClosed\" [assistantStatus]=\"assistantStatus\" [currentLang]=\"currentLang\"\n (sendMessage)=\"handleSendMessage($event)\" />\n</div>\n","import { Component, Input, Output, EventEmitter } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { ButtonComponent } from '../button'\n\n@Component({\n selector: 'app-confirmation-dialog',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n styleUrls: ['./confirmation-dialog.component.scss'],\n template: `\n <div class=\"dialog\">\n <div class=\"dialog__content\">\n <h3 class=\"dialog__title\">{{ title }}</h3>\n <p class=\"dialog__body\">{{ body }}</p>\n <div class=\"dialog__actions\">\n <app-button variant=\"outline\" [fullWidth]=\"true\" (click)=\"onCancel.emit()\">\n {{ cancelText }}\n </app-button>\n <app-button variant=\"default\" [fullWidth]=\"true\" (click)=\"onConfirm.emit()\">\n {{ confirmText }}\n </app-button>\n </div>\n </div>\n </div>\n `\n})\nexport class ConfirmationDialogComponent {\n @Input() title: string = ''\n @Input() body: string = ''\n @Input() confirmText: string = 'Confirm'\n @Input() cancelText: string = 'Cancel'\n @Output() onConfirm = new EventEmitter<void>()\n @Output() onCancel = new EventEmitter<void>()\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslatePipe } from '../../../pipes/translate.pipe';\nimport {\n CardComponent,\n CardContentComponent,\n} from '../../../shared/components/card';\nimport { ButtonComponent } from '../../../shared/components/button';\n\n@Component({\n selector: 'app-intro-section',\n templateUrl: './intro-section.component.html',\n styleUrls: ['./intro-section.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n TranslatePipe,\n CardComponent,\n CardContentComponent,\n ButtonComponent,\n ],\n})\nexport class IntroSectionComponent {\n @Input() currentLang: string = 'en';\n @Output() showHelpScreenData = new EventEmitter<void>();\n @Output() navigateToUrl = new EventEmitter<string>();\n\n handleShowHelpScreenData() {\n this.showHelpScreenData.emit();\n }\n\n handleNavigateToUrl(url: string) {\n this.navigateToUrl.emit(url);\n }\n}\n","<div class=\"intro-section\">\n <h1 class=\"intro-title\">{{ \"ChatIntroMessage\" | translate }}</h1>\n</div>\n\n<div class=\"cards-section\">\n <app-card variant=\"rounded\" [class]=\"'babylai-p-8'\">\n <app-card-content>\n <div class=\"card-content\">\n <div class=\"babylai-info\">\n <div class=\"logo-container\">\n <svg\n class=\"logo\"\n viewBox=\"0 0 55 53\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.53125 19.1353C8.53125 12.2804 14.0883 6.72339 20.9432 6.72339H41.6298C48.4847 6.72339 54.0418 12.2804 54.0418 19.1353V52.2339H20.9432C14.0883 52.2339 8.53125 46.6769 8.53125 39.8219V19.1353Z\"\n fill=\"#E5E5E5\"\n />\n <path\n d=\"M0 12.412C0 5.55702 5.55702 0 12.412 0H33.0985C39.9535 0 45.5105 5.55702 45.5105 12.412V33.0985C45.5105 39.9535 39.9535 45.5105 33.0985 45.5105H0V12.412Z\"\n fill=\"white\"\n />\n <path\n d=\"M14.3684 15.2203C14.3696 15.2162 14.3701 15.2142 14.3704 15.2132C14.5505 14.5816 15.4457 14.5816 15.6258 15.2132C15.6261 15.2142 15.6267 15.2162 15.6278 15.2203C15.6309 15.2311 15.6324 15.2365 15.6338 15.2416C16.4708 18.1971 18.7808 20.5071 21.7364 21.3441C21.7414 21.3455 21.7468 21.3471 21.7576 21.3501C21.7617 21.3512 21.7637 21.3518 21.7647 21.3521C22.3963 21.5322 22.3963 22.4274 21.7647 22.6075C21.7637 22.6078 21.7617 22.6084 21.7576 22.6095C21.7468 22.6126 21.7414 22.6141 21.7364 22.6155C18.7808 23.4525 16.4708 25.7625 15.6338 28.7181C15.6324 28.7231 15.6309 28.7285 15.6278 28.7393C15.6267 28.7434 15.6261 28.7454 15.6258 28.7464C15.4457 29.378 14.5505 29.378 14.3704 28.7464C14.3701 28.7454 14.3696 28.7434 14.3684 28.7393C14.3654 28.7285 14.3638 28.7231 14.3624 28.7181C13.5254 25.7625 11.2154 23.4525 8.25988 22.6155C8.25481 22.6141 8.24942 22.6126 8.23864 22.6095C8.23454 22.6084 8.2325 22.6078 8.23155 22.6075C7.5999 22.4274 7.5999 21.5322 8.23155 21.3521C8.2325 21.3518 8.23454 21.3512 8.23864 21.3501C8.24942 21.3471 8.25481 21.3455 8.25988 21.3441C11.2154 20.5071 13.5254 18.1971 14.3624 15.2416C14.3638 15.2365 14.3654 15.2311 14.3684 15.2203Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M36.7198 21.8503C36.7198 24.9207 34.2886 27.4098 31.2896 27.4098C28.2906 27.4098 25.8594 24.9207 25.8594 21.8503C25.8594 18.7799 28.2906 16.2908 31.2896 16.2908C34.2886 16.2908 36.7198 18.7799 36.7198 21.8503Z\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n <div class=\"info-text\">\n <h4 class=\"info-title\">\n {{ \"BabylaiTitle\" | translate }}\n </h4>\n <p class=\"info-description\">\n {{ \"BabylaiDescription\" | translate }}\n </p>\n </div>\n </div>\n <app-button\n variant=\"default\"\n [fullWidth]=\"true\"\n (click)=\"handleShowHelpScreenData()\"\n >\n {{ \"ChatNow\" | translate }}\n </app-button>\n </div>\n </app-card-content>\n </app-card>\n\n <app-card variant=\"rounded\" [class]=\"'babylai-p-6'\">\n <app-card-content>\n <div class=\"action-card\">\n <p class=\"action-text\">{{ \"TryBableAI\" | translate }}</p>\n <app-button\n variant=\"icon-bg\"\n (click)=\"handleNavigateToUrl('https://babylai.net/signup')\"\n >\n <svg\n width=\"100%\"\n height=\"100%\"\n [ngClass]=\"{\n icon: true,\n 'icon-rtl': currentLang === 'ar'\n }\"\n viewBox=\"0 0 9 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M1.5 0.999998L7.5 8L6 9.75M1.5 15L3.5 12.667\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </app-button>\n </div>\n </app-card-content>\n </app-card>\n\n <app-card variant=\"rounded\" [class]=\"'babylai-p-6'\">\n <app-card-content>\n <div class=\"action-card\">\n <p class=\"action-text\">{{ \"ContactUs\" | translate }}</p>\n <app-button\n variant=\"icon-bg\"\n (click)=\"handleNavigateToUrl('https://babylai.net')\"\n >\n <svg\n width=\"100%\"\n height=\"100%\"\n [ngClass]=\"{\n icon: true,\n 'icon-rtl': currentLang === 'ar'\n }\"\n viewBox=\"0 0 9 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M1.5 0.999998L7.5 8L6 9.75M1.5 15L3.5 12.667\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </app-button>\n </div>\n </app-card-content>\n </app-card>\n</div>\n","import { TranslatePipe } from './../../../pipes/translate.pipe';\nimport { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss'],\n standalone: true,\n imports: [CommonModule, TranslatePipe],\n})\nexport class FooterComponent {\n @Input() showHelpScreenData: boolean = false;\n @Input() showChat: boolean = false;\n}\n","<div class=\"footer\">\n <a\n href=\"https://babylai.net\"\n target=\"_blank\"\n class=\"footer-link\"\n [ngClass]=\"{ 'light-text': !showHelpScreenData && !showChat }\"\n >\n {{ \"PoweredByBabylAI\" | translate }}\n </a>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ButtonComponent } from '../button';\n\n@Component({\n selector: 'app-back-button',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './back-button.component.html',\n styleUrls: ['./back-button.component.scss'],\n})\nexport class BackButtonComponent {\n @Input() language = 'en';\n @Input() size: 'default' | 'small' | 'medium' = 'default';\n @Output() onBack = new EventEmitter<void>();\n\n get isRtl(): boolean {\n return this.language === 'ar';\n }\n}\n","<app-button\n [size]=\"size\"\n variant=\"icon-bg\"\n className=\"button--light-bg\"\n [direction]=\"isRtl ? 'rtl' : 'ltr'\"\n (click)=\"onBack.emit()\"\n>\n <svg\n [style.transform]=\"isRtl ? 'rotate(180deg)' : 'rotate(0deg)'\"\n class=\"back-button__icon\"\n width=\"8\"\n height=\"16\"\n viewBox=\"0 0 8 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M7 15L1 8L2.5 6.25M7 1L5 3.333\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n</app-button>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ButtonComponent } from '../button';\n\n@Component({\n selector: 'app-close-button',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './close-button.component.html',\n styleUrls: ['./close-button.component.scss']\n})\nexport class CloseButtonComponent {\n @Input() language = 'en';\n @Output() onClose = new EventEmitter<void>();\n\n get isRtl(): boolean {\n return this.language === 'ar';\n }\n}\n","<app-button\n variant=\"icon-bg\"\n [direction]=\"isRtl ? 'rtl' : 'ltr'\"\n className=\"button--close-button\"\n (click)=\"onClose.emit()\"\n>\n <svg\n width=\"40\"\n height=\"40\"\n viewBox=\"0 0 55 55\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M33.8568 21.1458L21.1484 33.8541M21.1484 21.1458L33.8568 33.8541M14.7943 5.48404C18.6562 3.24921 23.0407 2.07593 27.5026 2.08329C41.5402 2.08329 52.9193 13.4623 52.9193 27.5C52.9193 41.5376 41.5402 52.9166 27.5026 52.9166C13.465 52.9166 2.08594 41.5376 2.08594 27.5C2.08594 22.8716 3.32373 18.5279 5.48669 14.7916\"\n stroke=\"#fff\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n />\n </svg>\n</app-button>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Output } from '@angular/core';\nimport { ButtonComponent } from '../button';\n\n@Component({\n selector: 'app-simple-close-button',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './simple-close-button.component.html',\n styleUrls: ['./simple-close-button.component.scss']\n})\nexport class SimpleCloseButtonComponent {\n @Output() onClose = new EventEmitter<void>();\n}\n","<app-button\n variant=\"icon-only\"\n class=\"simple-close-button\"\n (click)=\"onClose.emit()\"\n>\n <svg\n width=\"40\"\n height=\"40\"\n viewBox=\"0 0 55 55\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M33.8568 21.1458L21.1484 33.8541M21.1484 21.1458L33.8568 33.8541M14.7943 5.48404C18.6562 3.24921 23.0407 2.07593 27.5026 2.08329C41.5402 2.08329 52.9193 13.4623 52.9193 27.5C52.9193 41.5376 41.5402 52.9166 27.5026 52.9166C13.465 52.9166 2.08594 41.5376 2.08594 27.5C2.08594 22.8716 3.32373 18.5279 5.48669 14.7916\"\n stroke=\"white\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n />\n </svg>\n</app-button>\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ThemeService {\n private primaryColor: string = '#ad49e1';\n private logoUrl: string = '/logo.svg';\n\n constructor() {}\n\n setPrimaryColor(color: string): void {\n this.primaryColor = color;\n this.updateCSSVariables();\n }\n\n setLogoUrl(url: string): void {\n this.logoUrl = url;\n }\n\n getPrimaryColor(): string {\n return this.primaryColor;\n }\n\n getLogoUrl(): string {\n return this.logoUrl;\n }\n\n private updateCSSVariables(): void {\n const root = document.documentElement;\n\n // Generate color variations based on the primary color\n const colorVariations = this.generateColorVariations(this.primaryColor);\n\n // Set CSS custom properties\n root.style.setProperty('--babylai-primary-color', this.primaryColor);\n root.style.setProperty('--babylai-primary-color-100', colorVariations[100]);\n root.style.setProperty('--babylai-primary-color-200', colorVariations[200]);\n root.style.setProperty('--babylai-primary-color-300', colorVariations[300]);\n root.style.setProperty('--babylai-primary-color-400', colorVariations[400]);\n root.style.setProperty('--babylai-primary-color-500', colorVariations[500]);\n root.style.setProperty('--babylai-primary-color-600', colorVariations[600]);\n root.style.setProperty('--babylai-primary-color-700', colorVariations[700]);\n root.style.setProperty('--babylai-primary-color-800', colorVariations[800]);\n root.style.setProperty('--babylai-primary-color-900', colorVariations[900]);\n root.style.setProperty('--babylai-primary-color-950', colorVariations[950]);\n }\n\n private generateColorVariations(baseColor: string): {\n [key: number]: string;\n } {\n // Generate variations by adjusting lightness\n const variations: { [key: number]: string } = {};\n\n variations[100] = this.lightenColor(baseColor, 0.85);\n variations[200] = this.lightenColor(baseColor, 0.65);\n variations[300] = this.lightenColor(baseColor, 0.45);\n variations[400] = this.lightenColor(baseColor, 0.25);\n variations[500] = baseColor; // Base color\n variations[600] = this.darkenColor(baseColor, 0.35);\n variations[700] = this.darkenColor(baseColor, 0.55);\n variations[800] = this.darkenColor(baseColor, 0.75);\n variations[900] = this.darkenColor(baseColor, 0.85);\n variations[950] = this.darkenColor(baseColor, 0.92);\n\n return variations;\n }\n\n /**\n * Lighten a color by a percentage\n */\n private lightenColor(color: string, amount: number): string {\n const hex = color.replace('#', '');\n const r = parseInt(hex.substring(0, 2), 16);\n const g = parseInt(hex.substring(2, 4), 16);\n const b = parseInt(hex.substring(4, 6), 16);\n\n // Use HSL-like approach for more natural lightening\n const newR = Math.round(r + (255 - r) * amount);\n const newG = Math.round(g + (255 - g) * amount);\n const newB = Math.round(b + (255 - b) * amount);\n\n return `#${newR.toString(16).padStart(2, '0')}${newG.toString(16).padStart(2, '0')}${newB.toString(16).padStart(2, '0')}`;\n }\n\n /**\n * Darken a color by a percentage\n */\n private darkenColor(color: string, amount: number): string {\n const hex = color.replace('#', '');\n const r = parseInt(hex.substring(0, 2), 16);\n const g = parseInt(hex.substring(2, 4), 16);\n const b = parseInt(hex.substring(4, 6), 16);\n\n // Use HSL-like approach for more natural darkening\n const newR = Math.round(r * (1 - amount));\n const newG = Math.round(g * (1 - amount));\n const newB = Math.round(b * (1 - amount));\n\n return `#${newR.toString(16).padStart(2, '0')}${newG.toString(16).padStart(2, '0')}${newB.toString(16).padStart(2, '0')}`;\n }\n\n initializeTheme(primaryColor: string, logoUrl: string): void {\n this.setPrimaryColor(primaryColor);\n this.setLogoUrl(logoUrl);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, inject } from '@angular/core';\nimport { ThemeService } from '../../../services/theme.service';\n\n@Component({\n selector: 'app-logo',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './logo.component.html',\n styleUrls: ['./logo.component.scss'],\n})\nexport class LogoComponent {\n @Input() showLogo = true;\n @Input() size: 'default' | 'small' = 'default';\n logoUrl: string = '/logo.svg';\n private themeService = inject(ThemeService);\n\n get effectiveLogoUrl(): string | undefined {\n return this.themeService.getLogoUrl();\n }\n}\n","@if (showLogo) {\n @if (effectiveLogoUrl) {\n <img\n [src]=\"effectiveLogoUrl\"\n [alt]=\"'Logo'\"\n class=\"logo\"\n [class.logo--small]=\"size === 'small'\"\n />\n } @else {\n <img\n [src]=\"logoUrl\"\n [alt]=\"'Logo'\"\n class=\"logo\"\n [class.logo--small]=\"size === 'small'\"\n />\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BackButtonComponent } from '../back-button';\nimport { CloseButtonComponent } from '../close-button';\nimport { SimpleCloseButtonComponent } from '../simple-close-button';\nimport { LogoComponent } from '../logo';\n\ntype HeaderType = 'standard' | 'minimal';\n\n@Component({\n selector: 'app-header',\n standalone: true,\n imports: [\n CommonModule,\n BackButtonComponent,\n CloseButtonComponent,\n SimpleCloseButtonComponent,\n LogoComponent,\n ],\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n})\nexport class HeaderComponent {\n @Input() headerType: HeaderType = 'standard';\n @Input() showBackButton = false;\n @Input() showLogo = true;\n @Input() language = 'en';\n @Input() showCloseButton = false;\n @Output() onBack = new EventEmitter<void>();\n @Output() onClose = new EventEmitter<void>();\n\n get isRtl(): boolean {\n return this.language === 'ar';\n }\n}\n","<div class=\"header\">\n @if (showBackButton) {\n <app-back-button\n [size]=\"'medium'\"\n [language]=\"language\"\n (onBack)=\"onBack.emit()\"\n ></app-back-button>\n }\n \n @if (showCloseButton) {\n <app-close-button\n [language]=\"language\"\n (onClose)=\"onClose.emit()\"\n ></app-close-button>\n }\n \n <app-logo [showLogo]=\"showLogo\"></app-logo>\n\n @if (!showBackButton && !showCloseButton) {\n <app-simple-close-button\n (onClose)=\"onClose.emit()\"\n ></app-simple-close-button>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { ButtonComponent } from '../button';\nimport { TranslatePipe } from '../../../pipes/translate.pipe';\n\n@Component({\n selector: 'app-menu-dropdown',\n standalone: true,\n imports: [CommonModule, ButtonComponent, TranslatePipe],\n templateUrl: './menu-dropdown.component.html',\n styleUrls: ['./menu-dropdown.component.scss']\n})\nexport class MenuDropdownComponent {\n isMenuOpen = false;\n @Input() language = 'en';\n @Output() onClose = new EventEmitter<void>();\n\n get isRtl(): boolean {\n return this.language === 'ar';\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const menuContainer = target.closest('[data-menu-container]');\n if (!menuContainer && this.isMenuOpen) {\n this.isMenuOpen = false;\n }\n }\n}\n","<div class=\"menu-dropdown\" data-menu-container>\n <app-button\n size=\"small\"\n variant=\"icon-bg\"\n className=\"menu-dropdown__button button--light-bg\"\n (click)=\"$event.stopPropagation(); isMenuOpen = !isMenuOpen\"\n >\n <svg\n width=\"14\"\n height=\"4\"\n viewBox=\"0 0 14 4\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3.25 1.8269C3.25 2.22473 3.09196 2.60626 2.81066 2.88756C2.52936 3.16887 2.14782 3.3269 1.75 3.3269C1.35218 3.3269 0.970644 3.16887 0.68934 2.88756C0.408035 2.60626 0.25 2.22473 0.25 1.8269C0.25 1.42908 0.408035 1.04755 0.68934 0.766244C0.970644 0.48494 1.35218 0.326904 1.75 0.326904C2.14782 0.326904 2.52936 0.48494 2.81066 0.766244C3.09196 1.04755 3.25 1.42908 3.25 1.8269ZM8.5 1.8269C8.5 2.22473 8.34196 2.60626 8.06066 2.88756C7.77936 3.16887 7.39782 3.3269 7 3.3269C6.60218 3.3269 6.22064 3.16887 5.93934 2.88756C5.65804 2.60626 5.5 2.22473 5.5 1.8269C5.5 1.42908 5.65804 1.04755 5.93934 0.766244C6.22064 0.48494 6.60218 0.326904 7 0.326904C7.39782 0.326904 7.77936 0.48494 8.06066 0.766244C8.34196 1.04755 8.5 1.42908 8.5 1.8269ZM13.75 1.8269C13.75 2.22473 13.592 2.60626 13.3107 2.88756C13.0294 3.16887 12.6478 3.3269 12.25 3.3269C11.8522 3.3269 11.4706 3.16887 11.1893 2.88756C10.908 2.60626 10.75 2.22473 10.75 1.8269C10.75 1.42908 10.908 1.04755 11.1893 0.766244C11.4706 0.48494 11.8522 0.326904 12.25 0.326904C12.6478 0.326904 13.0294 0.48494 13.3107 0.766244C13.592 1.04755 13.75 1.42908 13.75 1.8269Z\"\n fill=\"currentColor\"\n />\n </svg>\n </app-button>\n @if (isMenuOpen) {\n <div\n class=\"menu-dropdown__dropdown\"\n [ngClass]=\"{ rtl: isRtl, ltr: !isRtl }\"\n >\n <div class=\"menu-dropdown__content\">\n <button\n (click)=\"onClose.emit(); isMenuOpen = false\"\n class=\"menu-dropdown__button-item\"\n [ngClass]=\"{ rtl: isRtl, ltr: !isRtl }\"\n >\n {{ 'EndChat' | translate }}\n </button>\n </div>\n </div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BackButtonComponent } from '../back-button';\nimport { MenuDropdownComponent } from '../menu-dropdown';\nimport { LogoComponent } from '../logo';\n\n@Component({\n selector: 'app-chat-header',\n standalone: true,\n imports: [\n CommonModule,\n BackButtonComponent,\n MenuDropdownComponent,\n LogoComponent,\n ],\n templateUrl: './chat-header.component.html',\n styleUrls: ['./chat-header.component.scss'],\n})\nexport class ChatHeaderComponent {\n @Input() showBackButton = false;\n @Input() showLogo = true;\n @Input() language = 'en';\n @Output() onBack = new EventEmitter<void>();\n @Output() onClose = new EventEmitter<void>();\n}\n","<div class=\"chat-header\">\n <div class=\"chat-header__actions\">\n @if (showBackButton) {\n <app-back-button\n [language]=\"language\"\n (onBack)=\"onBack.emit()\"\n [size]=\"'small'\"\n ></app-back-button>\n }\n\n <app-menu-dropdown\n [language]=\"language\"\n (onClose)=\"onClose.emit()\"\n ></app-menu-dropdown>\n </div>\n\n <app-logo [showLogo]=\"showLogo\"></app-logo>\n</div>\n","// Main header components\nexport * from './header';\nexport * from './chat-header';\n\n// Header sub-components\nexport * from './back-button';\nexport * from './close-button';\nexport * from './simple-close-button';\nexport * from './logo';\nexport * from './menu-dropdown';\n\n// Other shared components\nexport * from './button';\nexport * from './card';\nexport * from './confirmation-dialog';\nexport * from './loading';\nexport * from './markdown-renderer';\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslatePipe } from '../../../pipes/translate.pipe';\nimport { ButtonComponent } from '../../../shared/components/button';\nimport { HelpScreenDataComponent } from '../../../help-screen-data/help-screen-data.component';\nimport { ChatComponent } from '../../../chat/chat.component';\nimport { LoadingComponent } from '../../../shared/components/loading/loading.component';\nimport { ConfirmationDialogComponent } from '../../../shared/components/confirmation-dialog/confirmation-dialog.component';\nimport { IntroSectionComponent } from '../intro-section/intro-section.component';\nimport { FooterComponent } from '../footer/footer.component';\nimport { ChatHeaderComponent, HeaderComponent } from '../../../shared/components';\n\ninterface Option {\n id: string;\n helpScreenId: string;\n parentOptionId: string | null;\n nestedOptions: Option[];\n title: string;\n paragraphs: string[];\n chatWithUs: boolean;\n assistantId?: string;\n assistant?: {\n id: string;\n tenantId: string;\n tenant: {\n id: string;\n name: string;\n key: string;\n };\n name: string;\n openAIAssistantId: string;\n greeting: string;\n closing: string;\n };\n hasNestedOptions: boolean;\n order: number;\n}\n\ninterface Message {\n id: string | number;\n sender: 'user' | 'assistant' | 'agent';\n senderType: number;\n messageContent: string;\n sentAt: Date;\n isSeen: boolean;\n}\n\n@Component({\n selector: 'app-help-popup',\n templateUrl: './help-popup.component.html',\n styleUrls: ['./help-popup.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n TranslatePipe,\n ButtonComponent,\n HelpScreenDataComponent,\n HeaderComponent,\n ChatHeaderComponent,\n ChatComponent,\n LoadingComponent,\n ConfirmationDialogComponent,\n IntroSectionComponent,\n FooterComponent,\n ]\n})\nexport class HelpPopupComponent {\n @Input() isPopupOpen: boolean = false;\n @Input() showHelpScreenData: boolean = false;\n @Input() showChat: boolean = false;\n @Input() status: string = 'idle';\n @Input() error: string | null = null;\n @Input() helpScreenData: any = null;\n @Input() messages: Message[] = [];\n @Input() needsAgent: boolean = false;\n @Input() assistantStatus: string = 'idle';\n @Input() isAblyConnected: boolean = false;\n @Input() isChatClosed: boolean = false;\n @Input() currentLang: string = 'en';\n @Input() chatIsLoading: boolean = false;\n @Input() sessionId: string | null = null;\n @Input() isIntroScreenEnabled: boolean = false;\n @Input() selectedOption: Option | null = null;\n @Input() selectedNestedOption: Option | null = null;\n @Input() showEndChatConfirmation: boolean = false;\n\n @Output() closePopup = new EventEmitter<void>();\n @Output() back = new EventEmitter<void>();\n @Output() showChatEvent = new EventEmitter<void>();\n @Output() endChat = new EventEmitter<void>();\n @Output() confirmEndChat = new EventEmitter<void>();\n @Output() cancelEndChat = new EventEmitter<void>();\n @Output() sendMessageEvent = new EventEmitter<string>();\n @Output() startNewChat = new EventEmitter<Option>();\n @Output() showHelpScreenDataEvent = new EventEmitter<void>();\n @Output() hideHelpScreenData = new EventEmitter<void>();\n @Output() navigateToUrl = new EventEmitter<string>();\n\n handleClosePopup() {\n this.closePopup.emit();\n }\n\n handleBack() {\n this.back.emit();\n }\n\n handleShowChat() {\n this.showChatEvent.emit();\n }\n\n handleEndChat() {\n this.endChat.emit();\n }\n\n handleConfirmEndChat() {\n this.confirmEndChat.emit();\n }\n\n handleCancelEndChat() {\n this.cancelEndChat.emit();\n }\n\n handleSendMessage(message: string) {\n this.sendMessageEvent.emit(message);\n }\n\n handleStartNewChat(option: Option) {\n this.startNewChat.emit(option);\n }\n\n handleShowHelpScreenData() {\n this.showHelpScreenDataEvent.emit();\n }\n\n handleHideHelpScreenData() {\n this.hideHelpScreenData.emit();\n }\n\n handleNavigateToUrl(url: string) {\n this.navigateToUrl.emit(url);\n }\n}\n","@if (isPopupOpen) {\n<div class=\"help-popup\" [ngClass]=\"{\n 'is-open': isPopupOpen,\n 'is-closed': !isPopupOpen,\n 'babylai-bg-linear-to-b': isPopupOpen && !showHelpScreenData && !showChat\n }\">\n @if (showEndChatConfirmation) {\n <app-confirmation-dialog [title]=\"'LeavingDialogTitle' | translate\" [body]=\"'LeavingDialogBody' | translate\"\n [confirmText]=\"'Confirm' | translate\" [cancelText]=\"'Cancel' | translate\" (onConfirm)=\"handleConfirmEndChat()\"\n (onCancel)=\"handleCancelEndChat()\"></app-confirmation-dialog>\n }\n\n <!-- Loading State -->\n @if (status === 'loading') {\n <div class=\"loading-state\">\n @if (!showHelpScreenData) {\n <app-header [showBackButton]=\"!!selectedOption || !!selectedNestedOption\" [showLogo]=\"true\" (onBack)=\"handleBack()\"\n (onClose)=\"handleClosePopup()\" [language]=\"currentLang\"></app-header>\n }\n @if (showHelpScreenData) {\n <app-header [showCloseButton]=\"!isIntroScreenEnabled\" [showLogo]=\"true\" (onClose)=\"\n isIntroScreenEnabled\n ? handleHideHelpScreenData()\n : handleClosePopup()\n \" [language]=\"currentLang\"></app-header>\n }\n <app-loading [variant]=\"!isIntroScreenEnabled ? 'primary' : 'default'\"></app-loading>\n </div>\n }\n\n <!-- Error State -->\n @if (status === 'failed') {\n <div class=\"error-message\">\n <span>Error: {{ error }}</span>\n </div>\n }\n\n <!-- Content -->\n @if (status === 'succeeded') {\n <!-- Headers -->\n @if (isIntroScreenEnabled) {\n @if (!showHelpScreenData && !showChat) {\n <app-header [showBackButton]=\"!!selectedOption || !!selectedNestedOption\" [showLogo]=\"true\" (onBack)=\"handleBack()\"\n (onClose)=\"handleClosePopup()\" [language]=\"currentLang\"></app-header>\n }\n }\n\n @if (showHelpScreenData && !showChat) {\n <app-header [showCloseButton]=\"!isIntroScreenEnabled\" [showBackButton]=\"isIntroScreenEnabled && showHelpScreenData\"\n [showLogo]=\"false\" (onClose)=\"\n isIntroScreenEnabled\n ? handleHideHelpScreenData()\n : handleClosePopup()\n \" (onBack)=\"isIntroScreenEnabled ? handleBack() : handleClosePopup()\" [language]=\"currentLang\"></app-header>\n\n @if (showHelpScreenData && sessionId) {\n <app-button variant=\"icon-bg\" (click)=\"handleShowChat()\" class=\"chat-button\" className=\"button--icon\">\n <svg class=\"icon-full\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M17.5 3.83801C15.9806 2.95874 14.2555 2.49712 12.5 2.50001C6.977 2.50001 2.5 6.97701 2.5 12.5C2.5 14.1 2.876 15.612 3.543 16.953C3.721 17.309 3.78 17.716 3.677 18.101L3.082 20.327C3.02307 20.5473 3.02312 20.7792 3.08216 20.9995C3.14119 21.2198 3.25712 21.4206 3.41831 21.5819C3.57951 21.7432 3.7803 21.8593 4.00053 21.9184C4.22075 21.9776 4.45267 21.9778 4.673 21.919L6.899 21.323C7.28538 21.2254 7.69414 21.2727 8.048 21.456C9.43095 22.1446 10.9551 22.502 12.5 22.5C18.023 22.5 22.5 18.023 22.5 12.5C22.5 10.679 22.013 8.97001 21.162 7.50001\"\n stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" />\n <path d=\"M8.5 12.5H8.509M12.491 12.5H12.5M16.491 12.5H16.5\" stroke=\"white\" stroke-width=\"2.66667\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </app-button>\n }\n }\n\n @if (showChat) {\n <app-chat-header [showBackButton]=\"showChat\" [showLogo]=\"true\" (onClose)=\"handleEndChat()\" (onBack)=\"handleBack()\"\n [language]=\"currentLang\"></app-chat-header>\n\n <app-chat class=\"chat-container\" [messages]=\"messages\" [needsAgent]=\"needsAgent\" [assistantStatus]=\"assistantStatus\"\n [isAblyConnected]=\"isAblyConnected\" [isChatClosed]=\"isChatClosed\" (sendMessageEvent)=\"handleSendMessage($event)\"\n [currentLang]=\"currentLang\" [loading]=\"chatIsLoading\"></app-chat>\n }\n\n <!-- Main Content -->\n @if (!showChat) {\n <div class=\"main-content\">\n @if (isIntroScreenEnabled) {\n @if (!showHelpScreenData) {\n <app-intro-section [currentLang]=\"currentLang\" (showHelpScreenData)=\"handleShowHelpScreenData()\"\n (navigateToUrl)=\"handleNavigateToUrl($event)\"></app-intro-section>\n }\n }\n\n @if (showHelpScreenData) {\n <svg class=\"stars\" viewBox=\"0 0 244 196\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <g opacity=\"0.15\">\n <path\n d=\"M61.0903 66.4434C61.101 66.4056 61.1063 66.3867 61.1088 66.3779C62.7734 60.5407 71.046 60.5407 72.7106 66.3779C72.7131 66.3867 72.7184 66.4056 72.7291 66.4434C72.7572 66.5431 72.7712 66.5929 72.7845 66.6397C80.5193 93.9529 101.867 115.3 129.18 123.035C129.227 123.048 129.276 123.062 129.376 123.09C129.414 123.101 129.433 123.106 129.441 123.109C135.279 124.773 135.279 133.046 129.441 134.711C129.433 134.713 129.414 134.718 129.376 134.729C129.276 134.757 129.227 134.771 129.18 134.784C101.867 142.519 80.5193 163.867 72.7845 191.18C72.7712 191.227 72.7572 191.276 72.7291 191.376C72.7184 191.414 72.7131 191.433 72.7106 191.441C71.046 197.279 62.7734 197.279 61.1088 191.441C61.1063 191.433 61.101 191.414 61.0903 191.376C61.0622 191.276 61.0482 191.227 61.035 191.18C53.3002 163.867 31.9529 142.519 4.63971 134.784C4.59292 134.771 4.54309 134.757 4.44342 134.729C4.40559 134.718 4.38668 134.713 4.37792 134.711C-1.45931 133.046 -1.45931 124.773 4.37792 123.109C4.38668 123.106 4.40559 123.101 4.44342 123.09C4.54309 123.062 4.59292 123.048 4.63971 123.035C31.9529 115.3 53.3002 93.9529 61.035 66.6397C61.0482 66.5929 61.0622 66.5431 61.0903 66.4434Z\"\n fill=\"currentColor\" />\n <path\n d=\"M188.17 50.6848C188.179 50.6534 188.183 50.6377 188.185 50.6305C189.525 45.7898 196.183 45.7898 197.523 50.6305C197.525 50.6377 197.529 50.6534 197.538 50.6848C197.561 50.7674 197.572 50.8088 197.583 50.8476C203.808 73.4975 220.99 91.2002 242.974 97.6144C243.012 97.6253 243.052 97.637 243.132 97.6603C243.162 97.6691 243.178 97.6736 243.185 97.6756C247.883 99.056 247.883 105.916 243.185 107.297C243.178 107.299 243.162 107.303 243.132 107.312C243.052 107.335 243.012 107.347 242.974 107.358C220.99 113.772 203.808 131.475 197.583 154.125C197.572 154.163 197.561 154.205 197.538 154.287C197.529 154.319 197.525 154.334 197.523 154.342C196.183 159.182 189.525 159.182 188.185 154.342C188.183 154.334 188.179 154.319 188.17 154.287C188.148 154.205 188.136 154.163 188.126 154.125C181.9 131.475 164.718 113.772 142.734 107.358C142.697 107.347 142.657 107.335 142.576 107.312C142.546 107.303 142.531 107.299 142.524 107.297C137.825 105.916 137.825 99.056 142.524 97.6756C142.531 97.6736 142.546 97.6691 142.576 97.6603C142.657 97.637 142.697 97.6253 142.734 97.6144C164.718 91.2002 181.9 73.4975 188.126 50.8476C188.136 50.8088 188.148 50.7674 188.17 50.6848Z\"\n fill=\"currentColor\" />\n <path\n d=\"M127.131 -17.2906C127.138 -17.3137 127.143 -17.3305 127.143 -17.3305C128.198 -20.8898 133.444 -20.8898 134.5 -17.3305C134.5 -17.3305 134.505 -17.3137 134.512 -17.2906C134.529 -17.2298 134.538 -17.1994 134.547 -17.1709C139.452 -0.516516 152.989 12.5001 170.309 17.2164C170.339 17.2245 170.371 17.2331 170.434 17.2502C170.458 17.2567 170.476 17.2615 170.476 17.2615C174.177 18.2765 174.177 23.3208 170.476 24.3357C170.476 24.3357 170.458 24.3405 170.434 24.347C170.371 24.3642 170.339 24.3727 170.309 24.3808C152.989 29.0971 139.452 42.1138 134.547 58.7681C134.538 58.7967 134.529 58.8271 134.512 58.8878C134.505 58.9109 134.5 58.9278 134.5 58.9278C133.444 62.4871 128.198 62.4871 127.143 58.9278C127.143 58.9278 127.138 58.9109 127.131 58.8878C127.113 58.8271 127.104 58.7967 127.096 58.7681C122.191 42.1138 108.653 29.0971 91.3329 24.3808C91.3032 24.3727 91.2716 24.3642 91.2084 24.347C91.1844 24.3405 91.1669 24.3357 91.1669 24.3357C87.4652 23.3208 87.4652 18.2765 91.1669 17.2615C91.1669 17.2615 91.1844 17.2567 91.2084 17.2502C91.2716 17.2331 91.3032 17.2245 91.3329 17.2164C108.653 12.5001 122.191 -0.516516 127.096 -17.1709C127.104 -17.1994 127.113 -17.2298 127.131 -17.2906Z\"\n fill=\"currentColor\" />\n </g>\n </svg>\n\n <app-help-screen-data [helpScreenData]=\"helpScreenData\"\n (handleStartNewChat)=\"handleStartNewChat($event)\"></app-help-screen-data>\n }\n\n </div>\n }\n\n <!-- Footer -->\n <app-footer [showHelpScreenData]=\"showHelpScreenData\" [showChat]=\"showChat\"></app-footer>\n }\n</div>\n}","import { Injectable } from '@angular/core'\nimport { ApiConfig } from '../../../public_api'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiService {\n private getTokenFunction: (() => Promise<string>) | null = null\n private baseUrl: string = 'https://babylai.net/api'\n\n /**\n * Initialize the API service with optional configuration\n * @param config Configuration object containing token function and optional base URL\n */\n initialize(config: ApiConfig) {\n if (!config.getToken) {\n throw new Error('getToken function is required for API initialization')\n }\n\n this.getTokenFunction = config.getToken\n if (config.baseUrl) {\n this.baseUrl = config.baseUrl\n }\n }\n\n async getValidToken(forceRefresh = false): Promise<string> {\n if (!this.getTokenFunction) {\n throw new Error('API service not initialized. Call initialize({ getToken }) first.')\n }\n\n let storedToken = localStorage.getItem('chatbot-token')\n let storedExpiry = localStorage.getItem('chatbot-token-expiry')\n\n const currentTime = Math.floor(Date.now() / 1000)\n\n if (!storedToken || !storedExpiry || currentTime >= Number(storedExpiry) || forceRefresh) {\n const tokenResponse = await this.getTokenFunction()\n\n if (!tokenResponse) {\n throw new Error('Invalid token response from getToken function')\n }\n\n storedToken = tokenResponse\n storedExpiry = String(currentTime + 900) // 15 minutes expiry\n\n localStorage.setItem('chatbot-token', storedToken)\n localStorage.setItem('chatbot-token-expiry', storedExpiry)\n }\n\n return storedToken\n }\n\n private async fetchWithAuth(url: string, options: RequestInit, retry = true): Promise<Response> {\n if (!options.headers) {\n options.headers = {}\n }\n\n const headers = options.headers as Record<string, string>\n headers['Authorization'] = `Bearer ${await this.getValidToken()}`\n\n let response = await fetch(url, options)\n\n if ((response.status === 401 || response.status === 403) && retry) {\n console.warn('Token expired. Fetching new token...')\n\n const newToken = await this.getValidToken(true)\n headers['Authorization'] = `Bearer ${newToken}`\n\n response = await fetch(url, options)\n }\n\n return response\n }\n\n async apiRequest(endpoint: string, method = 'GET', body: any = null, customHeaders: Record<string, string> = {}): Promise<Response> {\n const url = `${this.baseUrl}/${endpoint}`\n\n const options: RequestInit = {\n method,\n headers: {\n 'Content-Type': 'application/json',\n ...customHeaders\n },\n body: body ? JSON.stringify(body) : null\n }\n\n const response = await this.fetchWithAuth(url, options)\n\n if (!response.ok) {\n const errorData = await response.json()\n throw new Error(errorData.message || 'API request failed')\n }\n\n return response\n }\n}\n","import {\n Component,\n Input,\n OnInit,\n OnDestroy,\n OnChanges,\n SimpleChanges,\n ViewChild,\n ElementRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ApiService } from '../services/api.service';\nimport { ClientAblyService } from '../services/ably.service';\nimport {\n ArrowAnimationComponent,\n HelpButtonComponent,\n HelpPopupComponent,\n} from './components';\nimport { TranslationService } from '../services/translation.service';\nimport { ThemeService } from '../services/theme.service';\nimport { Subscription } from 'rxjs';\n\ninterface Option {\n id: string;\n helpScreenId: string;\n parentOptionId: string | null;\n nestedOptions: Option[];\n title: string;\n paragraphs: string[];\n chatWithUs: boolean;\n assistantId?: string;\n assistant?: {\n id: string;\n tenantId: string;\n tenant: {\n id: string;\n name: string;\n key: string;\n };\n name: string;\n openAIAssistantId: string;\n greeting: string;\n closing: string;\n };\n hasNestedOptions: boolean;\n order: number;\n}\n\ninterface Message {\n id: string | number;\n sender: 'user' | 'assistant' | 'agent';\n senderType: number;\n messageContent: string;\n sentAt: Date;\n isSeen: boolean;\n}\n\n@Component({\n selector: 'app-help-center-widget',\n templateUrl: './help-center-widget.component.html',\n styleUrls: ['./help-center-widget.component.scss', '../../styles.scss'],\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ArrowAnimationComponent,\n HelpButtonComponent,\n HelpPopupComponent,\n ],\n})\nexport class HelpCenterWidgetComponent implements OnInit, OnDestroy, OnChanges {\n @Input() getToken!: () => Promise<string>;\n @Input() helpScreenId!: string;\n @Input() showArrow: boolean = true;\n @Input() messageLabel: string | null = null;\n @Input() set currentLang(value: string) {\n this._currentLang = value;\n this.isRTL = value === 'ar';\n }\n get currentLang(): string {\n return this._currentLang;\n }\n @Input() isIntroScreenEnabled: boolean = false;\n @Input() primaryColor: string = '#ad49e1';\n @Input() logoUrl: string = '/logo.svg';\n @ViewChild('chatMessagesContainer') chatMessagesContainer!: ElementRef;\n\n private _currentLang: string = 'en';\n private langSubscription?: Subscription;\n isRTL: boolean = false;\n\n // State variables\n isPopupOpen = false;\n helpScreenData: any = null;\n status = 'idle';\n error: string | null = null;\n showArrowAnimation = this.showArrow;\n showTooltip = false;\n sessionId: string | null = null;\n isAblyConnected = false;\n isChatClosed = false;\n showChat = false;\n messageText: string = '';\n isTyping = false;\n messages: Message[] = [];\n showHelpScreenData = false;\n chatIsLoading = false;\n ablyToken: string | null = null;\n\n isOpen = false;\n\n needsAgent = false;\n assistantStatus = 'idle';\n\n selectedOption: Option | null = null;\n selectedNestedOption: Option | null = null;\n\n showEndChatConfirmation = false;\n\n constructor(\n private apiService: ApiService,\n private translationService: TranslationService,\n private themeService: ThemeService\n ) {}\n\n ngOnInit() {\n this.showArrowAnimation = this.showArrow;\n if (!this.isIntroScreenEnabled) {\n this.showHelpScreenData = true;\n }\n\n // Initialize theme with current inputs\n this.themeService.initializeTheme(this.primaryColor, this.logoUrl);\n\n // Subscribe to language changes\n this.langSubscription = this.translationService.currentLang.subscribe(\n (lang) => {\n this.currentLang = lang;\n }\n );\n }\n\n ngOnChanges(changes: SimpleChanges) {\n // Handle primaryColor changes\n if (changes['primaryColor'] && !changes['primaryColor'].firstChange) {\n this.themeService.setPrimaryColor(this.primaryColor);\n }\n\n // Handle logoUrl changes\n if (changes['logoUrl'] && !changes['logoUrl'].firstChange) {\n this.themeService.setLogoUrl(this.logoUrl);\n }\n }\n\n ngOnDestroy() {\n // Clean up subscription\n if (this.langSubscription) {\n this.langSubscription.unsubscribe();\n }\n\n // Clean up Ably connection\n ClientAblyService.stopConnection();\n }\n\n async handleTogglePopup() {\n this.isPopupOpen = !this.isPopupOpen;\n this.showArrowAnimation = this.isPopupOpen;\n\n if (this.isPopupOpen) {\n // Reset the state when opening the popup\n if (!this.isIntroScreenEnabled) {\n this.showHelpScreenData = true;\n }\n await this.fetchHelpScreenData();\n }\n }\n\n private async fetchHelpScreenData() {\n this.status = 'loading';\n this.error = null;\n\n try {\n const response = await this.apiService.apiRequest(\n `client/clientHelpScreen/${this.helpScreenId}`,\n 'GET'\n );\n this.helpScreenData = await response.json();\n this.status = 'succeeded';\n } catch (error: any) {\n this.error = error.message;\n this.status = 'failed';\n }\n }\n\n async createChatSession(option?: Option) {\n try {\n const selectedOpt = option || this.selectedOption;\n const chatSessionCreateDto = {\n optionId: selectedOpt?.id,\n helpScreenId: this.helpScreenId,\n };\n\n const response = await this.apiService.apiRequest(\n 'Client/ClientChatSession/create-session',\n 'POST',\n chatSessionCreateDto\n );\n const data = await response.json();\n\n const { chatSession, ablyToken } = data;\n this.sessionId = chatSession?.id;\n this.ablyToken = ablyToken;\n\n // Establish Ably connection after creating session\n if (this.sessionId && selectedOpt && !this.isAblyConnected) {\n // Use the ablyToken from response or fallback to getValidToken\n const tokenToUse =\n this.ablyToken || (await this.apiService.getValidToken());\n\n // Get tenantId from the selected option's assistant\n const tenantId =\n selectedOpt.assistant?.tenantId ||\n selectedOpt.assistant?.tenant?.id ||\n '';\n\n await ClientAblyService.startConnection(\n this.sessionId,\n tokenToUse,\n this.handleReceiveMessage.bind(this),\n tenantId\n );\n\n this.isAblyConnected = true;\n }\n\n return data;\n } catch (error) {\n console.error('Error creating chat session:', error);\n throw error;\n }\n }\n\n async sendMessage(messageText?: string) {\n const textToSend = messageText || this.messageText;\n if (!textToSend.trim() || this.isChatClosed) return;\n\n try {\n this.assistantStatus = 'typing';\n\n // Add user message\n this.messages.push({\n id: Date.now(),\n sender: 'user',\n senderType: 1,\n messageContent: textToSend,\n sentAt: new Date(),\n isSeen: false,\n });\n\n if (!this.sessionId) {\n await this.createChatSession(this.selectedOption || undefined);\n }\n\n const messageDto = { messageContent: textToSend };\n await this.apiService.apiRequest(\n `Client/ClientChatSession/${this.sessionId}/send-message`,\n 'POST',\n messageDto\n );\n\n // Clear message input\n this.messageText = '';\n\n // Update message as seen\n this.messages = this.messages.map((msg) =>\n msg.senderType === 1 && !msg.isSeen ? { ...msg, isSeen: true } : msg\n );\n } catch (error) {\n console.error('Error sending message:', error);\n this.assistantStatus = 'idle';\n this.messages.push({\n id: Date.now(),\n sender: 'assistant',\n senderType: 3,\n messageContent:\n 'Failed to send the message. Please try again.\\n لم يتم إرسال الرسالة. يرجى المحاولة مرة أخرى.',\n sentAt: new Date(),\n isSeen: true,\n });\n }\n }\n\n handleReceiveMessage(\n message: string,\n senderType: string,\n needsAgent: boolean\n ) {\n if (needsAgent) {\n this.needsAgent = true;\n }\n\n const sender = this.getSenderType(parseInt(senderType));\n\n this.messages.push({\n id: Date.now(),\n sender: sender,\n senderType: parseInt(senderType),\n messageContent: message,\n sentAt: new Date(),\n isSeen: true,\n });\n\n this.assistantStatus = 'idle';\n this.scrollToBottom();\n }\n\n private getSenderType(senderType: number): 'user' | 'assistant' | 'agent' {\n switch (senderType) {\n case 1:\n return 'user';\n case 2:\n return 'agent';\n default:\n return 'assistant';\n }\n }\n\n async handleStartNewChat(option: Option) {\n this.selectedOption = option;\n this.chatIsLoading = true;\n\n try {\n // Create chat session (includes Ably connection setup)\n // Add greeting message\n this.messages.push({\n id: Date.now(),\n sender: 'assistant',\n senderType: 3,\n messageContent:\n option.assistant?.greeting ||\n (this.currentLang === 'en'\n ? 'Hello! How can I assist you today?'\n : 'مرحباً! كيف يمكنني مساعدتك اليوم؟'),\n sentAt: new Date(),\n isSeen: true,\n });\n\n // Update UI state\n this.showChat = true;\n this.isChatClosed = false;\n this.showHelpScreenData = false;\n this.chatIsLoading = false;\n } catch (error) {\n console.error('Error starting chat:', error);\n this.chatIsLoading = false;\n\n // Show error message to user\n this.messages.push({\n id: Date.now(),\n sender: 'assistant',\n senderType: 3,\n messageContent:\n 'Failed to start chat. Please try again.\\n فشل في بدء المحادثة. يرجى المحاولة مرة أخرى.',\n sentAt: new Date(),\n isSeen: true,\n });\n }\n }\n\n private async startNewChatSession(option: any) {\n try {\n this.status = 'loading';\n this.error = '';\n this.messages = [];\n\n // Use the centralized createChatSession method\n await this.createChatSession(option);\n\n this.isChatClosed = false;\n this.status = 'succeeded';\n } catch (error: any) {\n console.error('Chat start error:', error);\n this.error = error.message || 'Failed to start chat session';\n this.status = 'failed';\n }\n }\n\n async handleStartChat(option: any) {\n this.showChat = true;\n await this.startNewChatSession(option);\n }\n\n async handleEndChat() {\n this.showEndChatConfirmation = true;\n }\n\n async confirmEndChat() {\n this.showEndChatConfirmation = false;\n if (this.sessionId) {\n await this.closeChatSession(this.sessionId);\n this.sessionId = null;\n }\n\n // Stop Ably connection\n await ClientAblyService.stopConnection();\n this.isAblyConnected = false;\n\n this.showChat = false;\n this.showHelpScreenData = true;\n this.messages = [];\n this.needsAgent = false;\n this.assistantStatus = 'idle';\n this.selectedOption = null;\n this.selectedNestedOption = null;\n }\n\n cancelEndChat() {\n this.showEndChatConfirmation = false;\n }\n\n async closeChatSession(chatSessionId: string) {\n try {\n const response = await this.apiService.apiRequest(\n `Client/ClientChatSession/${chatSessionId}/close`,\n 'POST'\n );\n return await response.json();\n } catch (error) {\n console.error('Error closing chat session:', error);\n throw error;\n }\n }\n\n handleClosePopup() {\n this.showHelpScreenData = false;\n this.showChat = false;\n this.isPopupOpen = false;\n this.selectedOption = null;\n this.selectedNestedOption = null;\n }\n\n handleCloseArrowAnimation() {\n this.showArrowAnimation = false;\n }\n\n handleBack() {\n if (this.showChat) {\n this.showChat = false;\n this.showHelpScreenData = true;\n } else if (this.selectedNestedOption) {\n this.selectedNestedOption = null;\n } else if (this.selectedOption) {\n this.selectedOption = null;\n } else if (this.showHelpScreenData) {\n this.showHelpScreenData = false;\n }\n }\n\n handleShowChat() {\n this.showChat = true;\n this.showHelpScreenData = false;\n }\n\n selectOption(option: Option) {\n this.selectedOption = option;\n this.selectedNestedOption = null;\n }\n\n selectNestedOption(nestedOption: Option) {\n this.selectedNestedOption = nestedOption;\n }\n\n handleShowHelpScreenData() {\n this.showHelpScreenData = true;\n }\n\n handleHideHelpScreenData() {\n this.showHelpScreenData = false;\n }\n\n private scrollToBottom(): void {\n setTimeout(() => {\n if (this.chatMessagesContainer) {\n const element = this.chatMessagesContainer.nativeElement;\n element.scrollTop = element.scrollHeight;\n }\n });\n }\n\n getDirection() {\n return this.currentLang === 'ar' ? 'rtl' : 'ltr';\n }\n\n get helpScreenDataList() {\n if (!this.helpScreenData?.options) return [];\n // Transform options to the format expected by HelpScreenDataComponent\n return this.helpScreenData.options.map((option: any) => ({\n icon: option.icon || '/icons/default.svg',\n title: option.title,\n description: option.paragraphs?.[0] || '',\n actionLabel: option.chatWithUs ? 'Chat Now' : '',\n action: option.chatWithUs ? () => this.handleStartChat(option) : null,\n }));\n }\n\n navigateToUrl(url: string): void {\n window.open(url, '_blank');\n }\n}\n","<div class=\"help-center-container\" [dir]=\"getDirection()\">\n <!-- TEST: Version mismatch fixed - Arrow Animation - SUCCESS! -->\n <app-arrow-animation\n [showArrowAnimation]=\"showArrowAnimation\"\n [isPopupOpen]=\"isPopupOpen\"\n [messageLabel]=\"messageLabel\"\n (closeArrowAnimation)=\"handleCloseArrowAnimation()\"\n ></app-arrow-animation>\n\n <!-- Help Button -->\n <app-help-button (togglePopup)=\"handleTogglePopup()\"></app-help-button>\n\n <!-- Help Popup -->\n <app-help-popup\n [isPopupOpen]=\"isPopupOpen\"\n [showHelpScreenData]=\"showHelpScreenData\"\n [showChat]=\"showChat\"\n [status]=\"status\"\n [error]=\"error\"\n [helpScreenData]=\"helpScreenData\"\n [messages]=\"messages\"\n [needsAgent]=\"needsAgent\"\n [assistantStatus]=\"assistantStatus\"\n [isAblyConnected]=\"isAblyConnected\"\n [isChatClosed]=\"isChatClosed\"\n [currentLang]=\"currentLang\"\n [chatIsLoading]=\"chatIsLoading\"\n [sessionId]=\"sessionId\"\n [isIntroScreenEnabled]=\"isIntroScreenEnabled\"\n [selectedOption]=\"selectedOption\"\n [selectedNestedOption]=\"selectedNestedOption\"\n [showEndChatConfirmation]=\"showEndChatConfirmation\"\n (closePopup)=\"handleClosePopup()\"\n (back)=\"handleBack()\"\n (showChatEvent)=\"handleShowChat()\"\n (endChat)=\"handleEndChat()\"\n (confirmEndChat)=\"confirmEndChat()\"\n (cancelEndChat)=\"cancelEndChat()\"\n (sendMessageEvent)=\"sendMessage($event)\"\n (startNewChat)=\"handleStartNewChat($event)\"\n (showHelpScreenDataEvent)=\"handleShowHelpScreenData()\"\n (hideHelpScreenData)=\"handleHideHelpScreenData()\"\n (navigateToUrl)=\"navigateToUrl($event)\"\n ></app-help-popup>\n</div>\n","import { Injectable } from '@angular/core'\n\nexport type GetTokenFn = () => Promise<string>\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HelpCenterConfigService {\n private _apiBaseUrl: string = 'https://babylai.net/api'\n private _getTokenFn?: GetTokenFn\n\n setApiBaseUrl(url: string) {\n this._apiBaseUrl = url\n }\n\n getApiBaseUrl(): string {\n return this._apiBaseUrl\n }\n\n setGetTokenFn(fn: GetTokenFn) {\n this._getTokenFn = fn\n }\n\n getTokenFn(): GetTokenFn | undefined {\n return this._getTokenFn\n }\n}\n","import { Injectable } from '@angular/core'\nimport { HelpCenterConfigService } from './help-center-config.service'\nimport { TokenResponse } from '../types'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TokenService {\n constructor(private config: HelpCenterConfigService) {}\n\n async getToken(): Promise<TokenResponse> {\n // If a custom token function is provided, use it\n const customGetToken = this.config.getTokenFn()\n if (customGetToken) {\n const token = await customGetToken()\n return {\n token,\n expiresIn: 3600 // Default to 1 hour\n }\n }\n\n // Otherwise, return error that getTokenFn is not provided\n throw new Error('getTokenFn is not provided')\n }\n}\n","// src/app/language.service.ts\nimport { Injectable } from '@angular/core'\nimport { TranslationService } from './services/translation.service'\nimport { Language } from './types'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LanguageService {\n constructor(private translationService: TranslationService) {}\n\n switchLanguage(language: Language) {\n this.translationService.setLanguage(language)\n }\n\n getCurrentLang(): Language {\n return this.translationService.getCurrentLang()\n }\n}\n","// Types\nexport * from './src/app/types';\n\n// API Configuration Types\nexport interface ApiConfig {\n getToken: () => Promise<string>;\n baseUrl?: string;\n}\n\n// Components and Modules\nexport * from './src/app/help-center-widget/help-center-widget.component';\n\n// Services\nexport * from './src/app/services/help-center-config.service';\nexport * from './src/app/services/api.service';\nexport * from './src/app/services/token.service';\nexport * from './src/app/services/translation.service';\nexport * from './src/app/language.service';\n\n// Pipes\nexport * from './src/app/pipes/translate.pipe';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.ApiService","i2.TranslationService","i3.ThemeService","i1.HelpCenterConfigService","i1.TranslationService"],"mappings":"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"}
1
+ {"version":3,"file":"aslaluroba-help-center.mjs","sources":["../../../src/app/services/ably.service.ts","../../../src/app/help-center-widget/components/arrow-animation/arrow-animation.component.ts","../../../src/app/help-center-widget/components/arrow-animation/arrow-animation.component.html","../../../src/app/help-center-widget/components/help-button/help-button.component.ts","../../../src/app/help-center-widget/components/help-button/help-button.component.html","../../../src/app/services/translation.service.ts","../../../src/app/pipes/translate.pipe.ts","../../../src/app/shared/components/button/button.component.ts","../../../src/app/shared/components/card/card.component.ts","../../../src/app/help-screen-data/help-screen-data.component.ts","../../../src/app/help-screen-data/help-screen-data.component.html","../../../src/app/shared/components/loading/loading.component.ts","../../../src/app/shared/components/markdown-renderer/markdown-renderer.component.ts","../../../src/app/chat/components/chat-avatar/chat-avatar.component.ts","../../../src/app/chat/components/chat-avatar/chat-avatar.component.html","../../../src/app/chat/components/chat-message/chat-message.component.ts","../../../src/app/chat/components/chat-message/chat-message.component.html","../../../src/app/chat/components/chat-separator/chat-separator.component.ts","../../../src/app/chat/components/chat-separator/chat-separator.component.html","../../../src/app/chat/components/chat-typing-indicator/chat-typing-indicator.component.ts","../../../src/app/chat/components/chat-typing-indicator/chat-typing-indicator.component.html","../../../src/app/chat/components/chat-input/chat-input.component.ts","../../../src/app/chat/components/chat-input/chat-input.component.html","../../../src/app/chat/chat.component.ts","../../../src/app/chat/chat.component.html","../../../src/app/shared/components/confirmation-dialog/confirmation-dialog.component.ts","../../../src/app/help-center-widget/components/intro-section/intro-section.component.ts","../../../src/app/help-center-widget/components/intro-section/intro-section.component.html","../../../src/app/help-center-widget/components/footer/footer.component.ts","../../../src/app/help-center-widget/components/footer/footer.component.html","../../../src/app/shared/components/back-button/back-button.component.ts","../../../src/app/shared/components/back-button/back-button.component.html","../../../src/app/shared/components/close-button/close-button.component.ts","../../../src/app/shared/components/close-button/close-button.component.html","../../../src/app/shared/components/simple-close-button/simple-close-button.component.ts","../../../src/app/shared/components/simple-close-button/simple-close-button.component.html","../../../src/app/services/theme.service.ts","../../../src/app/shared/components/logo/logo.component.ts","../../../src/app/shared/components/logo/logo.component.html","../../../src/app/shared/components/header/header.component.ts","../../../src/app/shared/components/header/header.component.html","../../../src/app/shared/components/menu-dropdown/menu-dropdown.component.ts","../../../src/app/shared/components/menu-dropdown/menu-dropdown.component.html","../../../src/app/shared/components/chat-header/chat-header.component.ts","../../../src/app/shared/components/chat-header/chat-header.component.html","../../../src/app/shared/components/index.ts","../../../src/app/help-center-widget/components/help-popup/help-popup.component.ts","../../../src/app/help-center-widget/components/help-popup/help-popup.component.html","../../../src/app/services/api.service.ts","../../../src/app/help-center-widget/help-center-widget.component.ts","../../../src/app/help-center-widget/help-center-widget.component.html","../../../src/app/services/help-center-config.service.ts","../../../src/app/services/token.service.ts","../../../src/app/language.service.ts","../../../public_api.ts","../../../aslaluroba-help-center.ts"],"sourcesContent":["import * as Ably from 'ably';\n\nexport class ClientAblyService {\n private static client: Ably.Realtime | null = null;\n private static channel: Ably.RealtimeChannel | null = null;\n private static isConnected: boolean = false;\n private static sessionId: string | null = null;\n private static messageUnsubscribe: (() => void) | null = null;\n\n static async startConnection(\n sessionId: string,\n ablyToken: string,\n onMessageReceived: Function,\n tenantId: string\n ) {\n // Prevent multiple connections\n if (this.isConnected && this.sessionId === sessionId) {\n return;\n }\n\n // Close existing connection if connecting to a different session\n if (this.isConnected && this.sessionId !== sessionId) {\n await this.stopConnection();\n }\n\n try {\n // Initialize Ably client with the token\n this.client = new Ably.Realtime({\n authUrl: undefined,\n token: ablyToken,\n autoConnect: true,\n });\n\n // Wait for connection to be established\n await new Promise<void>((resolve, reject) => {\n if (!this.client) {\n reject(new Error('Failed to initialize Ably client'));\n return;\n }\n\n this.client.connection.once('connected', () => {\n this.isConnected = true;\n this.sessionId = sessionId;\n resolve();\n });\n\n this.client.connection.once('failed', (stateChange) => {\n console.error('Ably connection failed:', stateChange);\n reject(\n new Error(\n `Ably connection failed: ${\n stateChange.reason?.message || 'Unknown error'\n }`\n )\n );\n });\n\n this.client.connection.once('disconnected', (stateChange) => {\n console.error('Ably connection disconnected:', stateChange);\n reject(\n new Error(\n `Ably connection disconnected: ${\n stateChange.reason?.message || 'Unknown error'\n }`\n )\n );\n });\n\n // Set a timeout for connection\n setTimeout(() => {\n if (!this.isConnected) {\n reject(new Error('Ably connection timeout'));\n }\n }, 10000);\n });\n\n // Subscribe to the session room\n await this.joinChannel(sessionId, onMessageReceived, tenantId);\n } catch (error) {\n console.error('Error during Ably connection setup:', error);\n this.isConnected = false;\n this.sessionId = null;\n throw error;\n }\n }\n\n private static async joinChannel(\n sessionId: string,\n onMessageReceived: Function,\n tenantId: string\n ) {\n if (!this.client) {\n throw new Error('Chat client not initialized');\n }\n\n const roomName = `session:${tenantId}:${sessionId}`;\n\n // Set up raw channel subscription for server messages\n if (this.client) {\n this.channel = this.client.channels.get(roomName);\n\n // Subscribe to assistant/system responses\n this.channel.subscribe('ReceiveMessage', (message) => {\n try {\n const messageContent =\n typeof message.data === 'string'\n ? message.data\n : message.data?.content || message.data?.message;\n const senderType = message.data?.senderType || 3; // Assistant\n const needsAgent = message.data?.needsAgent || false;\n\n onMessageReceived(messageContent, senderType, needsAgent);\n } catch (error) {\n console.error('Error processing ReceiveMessage:', error);\n }\n });\n\n await this.channel.attach();\n }\n }\n\n static async stopConnection() {\n try {\n // Unsubscribe from room messages\n if (this.messageUnsubscribe) {\n this.messageUnsubscribe();\n this.messageUnsubscribe = null;\n }\n\n // Unsubscribe and detach from raw channel\n if (this.channel) {\n this.channel.unsubscribe();\n await this.channel.detach();\n this.channel = null;\n }\n\n // Close Ably connection\n if (this.client) {\n this.client.close();\n this.client = null;\n }\n\n this.isConnected = false;\n this.sessionId = null;\n } catch (error) {\n console.error('Error stopping Ably connection:', error);\n // Reset state even if there's an error\n this.isConnected = false;\n this.sessionId = null;\n this.client = null;\n this.channel = null;\n this.messageUnsubscribe = null;\n }\n }\n\n static isConnectionActive(): boolean {\n return this.isConnected && this.client?.connection.state === 'connected';\n }\n\n static getConnectionState(): string {\n return this.client?.connection.state || 'disconnected';\n }\n\n // Method to manually send a message (if needed for debugging or direct messaging)\n static async sendMessage(messageContent: string, senderType: number = 1) {\n if (!this.channel || !this.isConnected) {\n throw new Error('Connection not active');\n }\n\n try {\n const messageData = {\n text: messageContent,\n metadata: {\n senderType,\n sentAt: new Date().toISOString(),\n },\n };\n\n await this.channel.publish('message', messageData);\n } catch (error) {\n console.error('Error sending message:', error);\n throw error;\n }\n }\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-arrow-animation',\n templateUrl: './arrow-animation.component.html',\n styleUrls: ['./arrow-animation.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class ArrowAnimationComponent {\n @Input() showArrowAnimation: boolean = false;\n @Input() isPopupOpen: boolean = false;\n @Input() messageLabel: string | null = null;\n @Output() closeArrowAnimation = new EventEmitter<void>();\n\n handleCloseArrowAnimation() {\n this.closeArrowAnimation.emit();\n }\n}\n","@if (showArrowAnimation && !isPopupOpen) {\n<div class=\"arrow-animation\">\n <div class=\"message-box\">\n <p>\n {{\n messageLabel ||\n \"Need assistance Or You want to try the Product? Click here\"\n }}\n </p>\n <button class=\"close-button\" (click)=\"handleCloseArrowAnimation()\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\">\n <path\n d=\"M1 1L11 11M1 11L11 1\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n />\n </svg>\n </button>\n <div class=\"arrow-tip\"></div>\n </div>\n</div>\n}\n","import { Component, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-help-button',\n templateUrl: './help-button.component.html',\n styleUrls: ['./help-button.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class HelpButtonComponent {\n @Output() togglePopup = new EventEmitter<void>();\n\n handleTogglePopup() {\n this.togglePopup.emit();\n }\n}\n","<button class=\"help-button\" (click)=\"handleTogglePopup()\">\n <span class=\"help-button-content\">\n <svg\n class=\"help-button-logo\"\n viewBox=\"0 0 55 53\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.53125 19.1353C8.53125 12.2804 14.0883 6.72339 20.9432 6.72339H41.6298C48.4847 6.72339 54.0418 12.2804 54.0418 19.1353V52.2339H20.9432C14.0883 52.2339 8.53125 46.6769 8.53125 39.8219V19.1353Z\"\n fill=\"#E5E5E5\"\n />\n <path\n d=\"M0 12.412C0 5.55702 5.55702 0 12.412 0H33.0985C39.9535 0 45.5105 5.55702 45.5105 12.412V33.0985C45.5105 39.9535 39.9535 45.5105 33.0985 45.5105H0V12.412Z\"\n fill=\"white\"\n />\n <path\n d=\"M14.3684 15.2203C14.3696 15.2162 14.3701 15.2142 14.3704 15.2132C14.5505 14.5816 15.4457 14.5816 15.6258 15.2132C15.6261 15.2142 15.6267 15.2162 15.6278 15.2203C15.6309 15.2311 15.6324 15.2365 15.6338 15.2416C16.4708 18.1971 18.7808 20.5071 21.7364 21.3441C21.7414 21.3455 21.7468 21.3471 21.7576 21.3501C21.7617 21.3512 21.7637 21.3518 21.7647 21.3521C22.3963 21.5322 22.3963 22.4274 21.7647 22.6075C21.7637 22.6078 21.7617 22.6084 21.7576 22.6095C21.7468 22.6126 21.7414 22.6141 21.7364 22.6155C18.7808 23.4525 16.4708 25.7625 15.6338 28.7181C15.6324 28.7231 15.6309 28.7285 15.6278 28.7393C15.6267 28.7434 15.6261 28.7454 15.6258 28.7464C15.4457 29.378 14.5505 29.378 14.3704 28.7464C14.3701 28.7454 14.3696 28.7434 14.3684 28.7393C14.3654 28.7285 14.3638 28.7231 14.3624 28.7181C13.5254 25.7625 11.2154 23.4525 8.25988 22.6155C8.25481 22.6141 8.24942 22.6126 8.23864 22.6095C8.23454 22.6084 8.2325 22.6078 8.23155 22.6075C7.5999 22.4274 7.5999 21.5322 8.23155 21.3521C8.2325 21.3518 8.23454 21.3512 8.23864 21.3501C8.24942 21.3471 8.25481 21.3455 8.25988 21.3441C11.2154 20.5071 13.5254 18.1971 14.3624 15.2416C14.3638 15.2365 14.3654 15.2311 14.3684 15.2203Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M36.7198 21.8503C36.7198 24.9207 34.2886 27.4098 31.2896 27.4098C28.2906 27.4098 25.8594 24.9207 25.8594 21.8503C25.8594 18.7799 28.2906 16.2908 31.2896 16.2908C34.2886 16.2908 36.7198 18.7799 36.7198 21.8503Z\"\n fill=\"currentColor\"\n />\n </svg>\n </span>\n</button>\n","// src/app/services/translation.service.ts\nimport { Injectable } from '@angular/core'\nimport { BehaviorSubject, Observable } from 'rxjs'\nimport { Language } from '../types'\n\nexport type TranslationKey = \n | 'ChatIntroMessage'\n | 'BabylaiTitle'\n | 'BabylaiDescription'\n | 'ChatNow'\n | 'TryBableAI'\n | 'ContactUs'\n | 'PickTopicTitle'\n | 'BabylAI'\n | 'ChatPlaceholder'\n | 'PoweredByBabylAI'\n | 'EndChat'\n | 'LeavingDialogTitle'\n | 'LeavingDialogBody'\n | 'Confirm'\n | 'Cancel'\n | 'title'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TranslationService {\n private translations = {\n en: {\n ChatIntroMessage: 'Chat with BabylAI 🚀',\n BabylaiTitle: 'BabylAI',\n BabylaiDescription: \"Hey there! 👋 I'm BabylAI, here to assist you.\",\n ChatNow: 'Chat Now',\n TryBableAI: 'Try BabylAI for Free 🎉',\n ContactUs: \"Contact us, Let's Talk! 💬\",\n PickTopicTitle: 'Pick a Topic to Get Started',\n BabylAI: 'BabylAI',\n ChatPlaceholder: 'Type your message...',\n PoweredByBabylAI: 'Powered by BabylAI © 2025',\n EndChat: 'End Chat',\n LeavingDialogTitle: 'Leaving so soon? 👋',\n LeavingDialogBody: \"Don't worry, you can come back anytime. We're always here if you need help or have questions.\",\n Confirm: 'Confirm',\n Cancel: 'Cancel',\n title: 'Help Center'\n },\n ar: {\n ChatIntroMessage: 'دردش مع BabylAI 🚀',\n BabylaiTitle: 'BabylAI',\n BabylaiDescription: 'مرحبا! 👋 أنا BabylAI، هنا لتساعدك.',\n ChatNow: 'دردش الآن',\n TryBableAI: 'جرب BabylAI مجانا 🎉',\n ContactUs: 'تواصل معنا, دعنا نتحدث! 💬',\n PickTopicTitle: 'اختر موضوع للبدء',\n BabylAI: 'BabylAI',\n ChatPlaceholder: 'اكتب رسالتك...',\n PoweredByBabylAI: 'مدعوم من BabylAI © 2025',\n EndChat: 'إنهاء الدردشة',\n LeavingDialogTitle: 'هل تغادر بالفعل؟ 👋',\n LeavingDialogBody: 'لا تقلق، يمكنك العودة في أي وقت. نحن دائماً هنا إذا كنت بحاجة إلى مساعدة أو لديك أسئلة.',\n Confirm: 'تأكيد',\n Cancel: 'إلغاء',\n title: 'مركز المساعدة'\n }\n }\n\n private _currentLang = new BehaviorSubject<Language>('en')\n public readonly currentLang: Observable<Language> = this._currentLang.asObservable()\n\n constructor() {}\n\n translate(key: TranslationKey): string {\n const lang = this._currentLang.value as Language\n return this.translations[lang][key] || key\n }\n\n setLanguage(lang: Language) {\n this._currentLang.next(lang)\n }\n\n getCurrentLang(): Language {\n return this._currentLang.value\n }\n}\n","// src/app/pipes/translate.pipe.ts\nimport { Pipe, PipeTransform, inject } from '@angular/core'\nimport { TranslationService, TranslationKey } from '../services/translation.service'\n\n@Pipe({\n name: 'translate',\n standalone: true\n})\nexport class TranslatePipe implements PipeTransform {\n private translationService = inject(TranslationService) as TranslationService\n\n transform(key: TranslationKey): string {\n return this.translationService.translate(key)\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\n\ntype ButtonVariant = 'default' | 'icon-bg' | 'icon-only' | 'outline';\ntype ButtonType = 'button' | 'submit' | 'reset';\n\n@Component({\n selector: 'app-button',\n standalone: true,\n imports: [CommonModule],\n styleUrls: ['./button.component.scss'],\n template: `\n <button\n [type]=\"type\"\n [disabled]=\"disabled\"\n [class]=\"getButtonClasses()\"\n (click)=\"onClick.emit($event)\"\n [dir]=\"direction\"\n >\n <ng-content></ng-content>\n </button>\n `,\n})\nexport class ButtonComponent {\n @Input() variant: ButtonVariant = 'default';\n @Input() type: ButtonType = 'button';\n @Input() disabled = false;\n @Input() fullWidth = false;\n @Input() className = '';\n @Input() size: 'default' | 'small' | 'medium' = 'default';\n @Input() direction: 'ltr' | 'rtl' = 'ltr';\n @Output() onClick = new EventEmitter<MouseEvent>();\n\n getButtonClasses(): string {\n const classes = ['button'];\n\n // Add variant class\n classes.push(`button--${this.variant}`);\n\n // Add full width class if needed\n if (this.fullWidth) {\n classes.push('button--full-width');\n }\n\n // Add size class if needed\n if (this.size) {\n classes.push(`button--${this.size}`);\n }\n\n // Add direction class\n classes.push(`button--${this.direction}`);\n\n // Add custom classes\n if (this.className) {\n classes.push(this.className);\n }\n\n return classes.join(' ');\n }\n}\n\n@Component({\n selector: 'app-button-content',\n standalone: true,\n imports: [CommonModule],\n template: ` <ng-content></ng-content> `,\n})\nexport class ButtonContentComponent {}\n\n@Component({\n selector: 'app-icon-button',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n template: `\n <app-button\n variant=\"icon-bg\"\n [className]=\"className\"\n [disabled]=\"disabled\"\n (onClick)=\"onClick.emit($event)\"\n >\n <ng-content></ng-content>\n </app-button>\n `,\n})\nexport class IconButtonComponent {\n @Input() className = '';\n @Input() disabled = false;\n @Output() onClick = new EventEmitter<MouseEvent>();\n}\n\n@Component({\n selector: 'app-transparent-icon-button',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n template: `\n <app-button\n variant=\"icon-only\"\n [className]=\"className\"\n [disabled]=\"disabled\"\n (onClick)=\"onClick.emit($event)\"\n >\n <ng-content></ng-content>\n </app-button>\n `,\n})\nexport class TransparentIconButtonComponent {\n @Input() className = '';\n @Input() disabled = false;\n @Output() onClick = new EventEmitter<MouseEvent>();\n}\n","import { Component, Input, HostBinding, ViewEncapsulation } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\n@Component({\n selector: 'app-card',\n standalone: true,\n imports: [CommonModule],\n styleUrls: ['./card.component.scss'],\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None\n})\nexport class CardComponent {\n @Input() variant: 'default' | 'rounded' | 'shadowed' = 'default'\n @Input() class = ''\n\n @HostBinding('class')\n get hostClasses(): string {\n const classes = ['card']\n classes.push(`card--${this.variant}`)\n if (this.class) {\n classes.push(this.class)\n }\n return classes.join(' ')\n }\n}\n\n@Component({\n selector: 'app-card-header',\n standalone: true,\n imports: [CommonModule],\n styleUrls: ['./card.component.scss'],\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None\n})\nexport class CardHeaderComponent {\n @Input() class = ''\n\n @HostBinding('class')\n get hostClasses(): string {\n const classes = ['card__header']\n if (this.class) {\n classes.push(this.class)\n }\n return classes.join(' ')\n }\n}\n\n@Component({\n selector: 'app-card-title',\n standalone: true,\n imports: [CommonModule],\n styleUrls: ['./card.component.scss'],\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None\n})\nexport class CardTitleComponent {\n @Input() class = ''\n\n @HostBinding('class')\n get hostClasses(): string {\n const classes = ['card__title']\n if (this.class) {\n classes.push(this.class)\n }\n return classes.join(' ')\n }\n}\n\n@Component({\n selector: 'app-card-description',\n standalone: true,\n imports: [CommonModule],\n styleUrls: ['./card.component.scss'],\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None\n})\nexport class CardDescriptionComponent {\n @Input() class = ''\n\n @HostBinding('class')\n get hostClasses(): string {\n const classes = ['card__description']\n if (this.class) {\n classes.push(this.class)\n }\n return classes.join(' ')\n }\n}\n\n@Component({\n selector: 'app-card-content',\n standalone: true,\n imports: [CommonModule],\n styleUrls: ['./card.component.scss'],\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None\n})\nexport class CardContentComponent {\n @Input() class = ''\n\n @HostBinding('class')\n get hostClasses(): string {\n const classes = ['card__content']\n if (this.class) {\n classes.push(this.class)\n }\n return classes.join(' ')\n }\n}\n\n@Component({\n selector: 'app-card-footer',\n standalone: true,\n imports: [CommonModule],\n styleUrls: ['./card.component.scss'],\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None\n})\nexport class CardFooterComponent {\n @Input() class = ''\n\n @HostBinding('class')\n get hostClasses(): string {\n const classes = ['card__footer']\n if (this.class) {\n classes.push(this.class)\n }\n return classes.join(' ')\n }\n}\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { CardComponent, CardContentComponent } from '../shared/components/card/card.component'\nimport { ButtonComponent } from '../shared/components/button/button.component'\nimport { TranslatePipe } from '../pipes/translate.pipe'\n\ninterface Tenant {\n id: string\n name: string\n key: string\n}\n\ninterface Assistant {\n id: string\n tenantId: string\n tenant: Tenant\n name: string\n openAIAssistantId: string\n greeting: string\n closing: string\n}\n\ninterface HelpScreenOption {\n id: string\n helpScreenId: string\n parentOptionId: string | null\n parentOption: HelpScreenOption | null\n nestedOptions: HelpScreenOption[]\n assistantId: string\n assistant: Assistant\n title: string\n paragraphs: string[]\n files: any[]\n chatWithUs: boolean\n hasNestedOptions: boolean\n order: number\n}\n\ninterface HelpScreenData {\n id: string\n tenantId: string\n tenant: Tenant\n title: string\n description: string\n options: HelpScreenOption[]\n chatWithUs: boolean\n}\n\n@Component({\n selector: 'app-help-screen-data',\n standalone: true,\n imports: [CommonModule, CardComponent, CardContentComponent, ButtonComponent, TranslatePipe],\n templateUrl: './help-screen-data.component.html',\n styleUrls: ['./help-screen-data.component.scss']\n})\nexport class HelpScreenDataComponent implements OnInit {\n @Input() helpScreenData: HelpScreenData | null = null\n @Input() title: string = ''\n @Output() handleStartNewChat = new EventEmitter<HelpScreenOption>()\n\n expandedItemId: string | null = null\n\n get helpScreenDataList() {\n if (!this.helpScreenData?.options) return []\n // Transform options to the format expected by HelpScreenDataComponent\n return this.helpScreenData.options.map((option: any) => ({\n icon: option.icon || 'assets/icons/default.svg',\n title: option.title,\n description: option.paragraphs?.[0] || '',\n actionLabel: option.chatWithUs ? 'Chat Now' : '',\n action: option.chatWithUs ? () => this.handleStartChat(option) : null\n }))\n }\n\n ngOnInit() {}\n\n toggleExpand(itemId: string): void {\n if (this.expandedItemId === itemId) {\n this.expandedItemId = null\n } else {\n this.expandedItemId = itemId\n setTimeout(() => {\n const element = document.getElementById(itemId)\n if (element) {\n element.scrollIntoView({ behavior: 'smooth', block: 'nearest' })\n }\n }, 100)\n }\n }\n\n handleStartChat(option: HelpScreenOption): void {\n this.handleStartNewChat.emit(option)\n }\n}\n","<div class=\"help-screen\">\n <h1 class=\"help-screen__title\">\n {{ 'PickTopicTitle' | translate }}\n </h1>\n @for (item of helpScreenData?.options; track item.id) {\n <app-card [id]=\"item.id\" variant=\"rounded\" class=\"help-screen__card\" (click)=\"toggleExpand(item.id)\">\n <app-card-content>\n <!-- Header section (always visible) -->\n <div class=\"help-screen__header\">\n <h4 class=\"help-screen__title-text\">{{ item.title }}</h4>\n <div class=\"help-screen__arrow-container\" [ngClass]=\"{\n 'help-screen__arrow-container--expanded': expandedItemId === item.id,\n 'help-screen__arrow-container--collapsed': expandedItemId !== item.id\n }\">\n <!-- <img src=\"/icons/arrow-stripped-colored.svg\" alt=\"arrow-down\" /> -->\n <svg class=\"help-screen__header__back-button-icon\" fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 15L1 8L2.5 6.25M7 1L5 3.333\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </div>\n </div>\n\n <!-- Expanded content (visible only when expanded) -->\n @if (expandedItemId === item.id) {\n <div class=\"help-screen__content\">\n @for (paragraph of item.paragraphs; track paragraph) {\n <div class=\"help-screen__paragraph\">\n {{ paragraph }}\n </div>\n }\n </div>\n @if (item?.chatWithUs) {\n <footer class=\"help-screen__footer\">\n <app-button variant=\"default\" [fullWidth]=\"true\" (click)=\"handleStartChat(item)\">\n {{ 'ChatNow' | translate }}\n </app-button>\n </footer>\n }\n }\n </app-card-content>\n </app-card>\n }\n</div>","import { Component, Input } from '@angular/core'\n\n@Component({\n selector: 'app-loading',\n styleUrls: ['./loading.component.scss'],\n template: `\n <div class=\"loading\">\n <div class=\"loader\" [class.loader--primary]=\"variant === 'primary'\"></div>\n </div>\n `,\n standalone: true\n})\nexport class LoadingComponent {\n @Input() variant: 'default' | 'primary' = 'default'\n}\n","import { Component, Input, OnInit, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { marked } from 'marked';\n\n@Component({\n selector: 'app-markdown-renderer',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div \n #markdownContainer\n [class]=\"cssClass\"\n [dir]=\"dir\"\n [innerHTML]=\"renderedContent\"\n ></div>\n `,\n styles: []\n})\nexport class MarkdownRendererComponent implements OnInit, AfterViewInit {\n @Input() content: string = '';\n @Input() inline: boolean = false;\n @Input() cssClass: string = '';\n @Input() dir: string = 'ltr';\n @ViewChild('markdownContainer') markdownContainer!: ElementRef;\n\n renderedContent: string = '';\n\n ngOnInit(): void {\n this.renderContent();\n }\n\n ngAfterViewInit(): void {\n this.highlightCode();\n }\n\n private renderContent(): void {\n if (this.content) {\n try {\n this.renderedContent = marked.parse(this.content) as string;\n } catch (e) {\n console.warn('Error parsing markdown:', e);\n this.renderedContent = this.content;\n }\n } else {\n this.renderedContent = this.content;\n }\n }\n\n private highlightCode(): void {\n if (typeof window !== 'undefined' && (window as any).Prism) {\n const Prism = (window as any).Prism;\n if (this.markdownContainer?.nativeElement) {\n Prism.highlightAllUnder(this.markdownContainer.nativeElement);\n }\n }\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-chat-avatar',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './chat-avatar.component.html',\n styleUrls: ['./chat-avatar.component.scss']\n})\nexport class ChatAvatarComponent {\n @Input() senderType: number = 1;\n @Input() needsAgent: boolean = false;\n @Input() isHidden: boolean = false;\n}\n","<div\n class=\"chat__avatar\"\n [class.chat__avatar--hidden]=\"isHidden\"\n>\n @if (senderType === 3) {\n <span class=\"chat__avatar-wrapper chat__avatar-wrapper--assistant\">\n <svg\n class=\"chat__avatar-image\"\n viewBox=\"0 0 55 53\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.53125 19.1353C8.53125 12.2804 14.0883 6.72339 20.9432 6.72339H41.6298C48.4847 6.72339 54.0418 12.2804 54.0418 19.1353V52.2339H20.9432C14.0883 52.2339 8.53125 46.6769 8.53125 39.8219V19.1353Z\"\n fill=\"#E5E5E5\"\n />\n <path\n d=\"M0 12.412C0 5.55702 5.55702 0 12.412 0H33.0985C39.9535 0 45.5105 5.55702 45.5105 12.412V33.0985C45.5105 39.9535 39.9535 45.5105 33.0985 45.5105H0V12.412Z\"\n fill=\"white\"\n />\n <path\n d=\"M14.3684 15.2203C14.3696 15.2162 14.3701 15.2142 14.3704 15.2132C14.5505 14.5816 15.4457 14.5816 15.6258 15.2132C15.6261 15.2142 15.6267 15.2162 15.6278 15.2203C15.6309 15.2311 15.6324 15.2365 15.6338 15.2416C16.4708 18.1971 18.7808 20.5071 21.7364 21.3441C21.7414 21.3455 21.7468 21.3471 21.7576 21.3501C21.7617 21.3512 21.7637 21.3518 21.7647 21.3521C22.3963 21.5322 22.3963 22.4274 21.7647 22.6075C21.7637 22.6078 21.7617 22.6084 21.7576 22.6095C21.7468 22.6126 21.7414 22.6141 21.7364 22.6155C18.7808 23.4525 16.4708 25.7625 15.6338 28.7181C15.6324 28.7231 15.6309 28.7285 15.6278 28.7393C15.6267 28.7434 15.6261 28.7454 15.6258 28.7464C15.4457 29.378 14.5505 29.378 14.3704 28.7464C14.3701 28.7454 14.3696 28.7434 14.3684 28.7393C14.3654 28.7285 14.3638 28.7231 14.3624 28.7181C13.5254 25.7625 11.2154 23.4525 8.25988 22.6155C8.25481 22.6141 8.24942 22.6126 8.23864 22.6095C8.23454 22.6084 8.2325 22.6078 8.23155 22.6075C7.5999 22.4274 7.5999 21.5322 8.23155 21.3521C8.2325 21.3518 8.23454 21.3512 8.23864 21.3501C8.24942 21.3471 8.25481 21.3455 8.25988 21.3441C11.2154 20.5071 13.5254 18.1971 14.3624 15.2416C14.3638 15.2365 14.3654 15.2311 14.3684 15.2203Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M36.7198 21.8503C36.7198 24.9207 34.2886 27.4098 31.2896 27.4098C28.2906 27.4098 25.8594 24.9207 25.8594 21.8503C25.8594 18.7799 28.2906 16.2908 31.2896 16.2908C34.2886 16.2908 36.7198 18.7799 36.7198 21.8503Z\"\n fill=\"currentColor\"\n />\n </svg>\n </span>\n } @else if (needsAgent || senderType === 2) {\n <span class=\"chat__avatar-wrapper chat__avatar-wrapper--agent\">\n <svg\n class=\"chat__avatar-image\"\n viewBox=\"0 0 12 14\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.99479 5.66658C7.46755 5.66658 8.66146 4.47268 8.66146 2.99992C8.66146 1.52716 7.46755 0.333252 5.99479 0.333252C4.52203 0.333252 3.32812 1.52716 3.32812 2.99992C3.32812 4.47268 4.52203 5.66658 5.99479 5.66658Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M11.3307 10.6665C11.3307 12.3232 11.3307 13.6665 5.9974 13.6665C0.664062 13.6665 0.664062 12.3232 0.664062 10.6665C0.664062 9.00984 3.05206 7.6665 5.9974 7.6665C8.94273 7.6665 11.3307 9.00984 11.3307 10.6665Z\"\n fill=\"currentColor\"\n />\n </svg>\n </span>\n }\n</div>\n","import { Message } from './../../../types';\nimport { MarkdownRendererComponent } from './../../../shared/components/markdown-renderer/markdown-renderer.component';\nimport {\n CardComponent,\n CardContentComponent,\n} from './../../../shared/components/card';\nimport { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ChatAvatarComponent } from '../chat-avatar/chat-avatar.component';\n\n@Component({\n selector: 'app-chat-message',\n standalone: true,\n imports: [\n CommonModule,\n CardComponent,\n CardContentComponent,\n MarkdownRendererComponent,\n ChatAvatarComponent,\n ],\n templateUrl: './chat-message.component.html',\n styleUrls: ['./chat-message.component.scss'],\n})\nexport class ChatMessageComponent {\n @Input() message!: Message;\n @Input() needsAgent: boolean = false;\n @Input() currentLang: string = 'en';\n @Input() isHidden: boolean = false;\n\n cleanMessageContent(content: string): string {\n return content.replace(/```/g, '\\\\`\\\\`\\\\`');\n }\n}\n","<div\n class=\"chat__message-container\"\n [class.chat__message-container--user]=\"message.senderType === 1\"\n>\n <app-chat-avatar\n [senderType]=\"message.senderType\"\n [needsAgent]=\"needsAgent\"\n [isHidden]=\"isHidden\"\n />\n <app-card\n variant=\"rounded\"\n [class]=\"\n 'chat__message ' +\n (message.senderType === 1\n ? 'chat__message--user'\n : 'chat__message--assistant')\n \"\n >\n <app-card-content>\n <div class=\"chat__message-content\">\n <app-markdown-renderer\n [content]=\"cleanMessageContent(message.messageContent)\"\n [inline]=\"false\"\n [cssClass]=\"'prose' + (message.senderType === 1 ? ' prose-invert' : '')\"\n [dir]=\"currentLang === 'ar' ? 'rtl' : 'ltr'\"\n >\n </app-markdown-renderer>\n </div>\n </app-card-content>\n </app-card>\n</div>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-chat-separator',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './chat-separator.component.html',\n styleUrls: ['./chat-separator.component.scss']\n})\nexport class ChatSeparatorComponent {}\n","<div class=\"chat__separator\">\n <svg\n width=\"100%\"\n height=\"14\"\n viewBox=\"0 0 327 14\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <line x1=\"132.5\" y1=\"7.5\" y2=\"7.5\" stroke=\"currentColor\" />\n <path\n d=\"M162.891 0.464864C162.892 0.460907 162.893 0.458928 162.893 0.458012C163.067 -0.152671 163.933 -0.152671 164.107 0.458012C164.107 0.458928 164.108 0.460907 164.109 0.464864C164.112 0.475291 164.113 0.480505 164.115 0.4854C164.924 3.34287 167.157 5.57619 170.015 6.38539C170.019 6.38678 170.025 6.38825 170.035 6.39119C170.039 6.3923 170.041 6.39286 170.042 6.39312C170.653 6.56727 170.653 7.43274 170.042 7.60688C170.041 7.60714 170.039 7.6077 170.035 7.60881C170.025 7.61175 170.019 7.61322 170.015 7.61461C167.157 8.42381 164.924 10.6571 164.115 13.5146C164.113 13.5195 164.112 13.5247 164.109 13.5351C164.108 13.5391 164.107 13.5411 164.107 13.542C163.933 14.1527 163.067 14.1527 162.893 13.542C162.893 13.5411 162.892 13.5391 162.891 13.5351C162.888 13.5247 162.887 13.5195 162.885 13.5146C162.076 10.6571 159.843 8.42381 156.985 7.61461C156.981 7.61322 156.975 7.61175 156.965 7.60881C156.961 7.6077 156.959 7.60714 156.958 7.60688C156.347 7.43274 156.347 6.56727 156.958 6.39312C156.959 6.39286 156.961 6.3923 156.965 6.39119C156.975 6.38825 156.981 6.38678 156.985 6.38539C159.843 5.57619 162.076 3.34287 162.885 0.4854C162.887 0.480505 162.888 0.475291 162.891 0.464864Z\"\n fill=\"currentColor\"\n />\n <line x1=\"327\" y1=\"7.5\" x2=\"194.5\" y2=\"7.5\" stroke=\"currentColor\" />\n </svg>\n</div>\n","import { CardComponent, CardContentComponent } from './../../../shared/components/card/card.component';\nimport { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ChatAvatarComponent } from '../chat-avatar/chat-avatar.component';\n\n@Component({\n selector: 'app-chat-typing-indicator',\n standalone: true,\n imports: [CommonModule, CardComponent, CardContentComponent, ChatAvatarComponent],\n templateUrl: './chat-typing-indicator.component.html',\n styleUrls: ['./chat-typing-indicator.component.scss']\n})\nexport class ChatTypingIndicatorComponent {}\n","<div class=\"chat__typing\">\n <app-chat-avatar [senderType]=\"3\" [needsAgent]=\"false\" [isHidden]=\"false\" />\n <app-card\n variant=\"rounded\"\n class=\"chat__typing_indicator\"\n >\n <app-card-content>\n <div id=\"wave\">\n <span class=\"dot\"></span>\n <span class=\"dot\"></span>\n <span class=\"dot\"></span>\n </div>\n </app-card-content>\n </app-card>\n</div>\n","import { Component, Input, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '../../../pipes/translate.pipe';\n\n@Component({\n selector: 'app-chat-input',\n standalone: true,\n imports: [CommonModule, FormsModule, TranslatePipe],\n templateUrl: './chat-input.component.html',\n styleUrls: ['./chat-input.component.scss']\n})\nexport class ChatInputComponent {\n @Input() isChatClosed: boolean = false;\n @Input() assistantStatus: string = '';\n @Input() currentLang: string = 'en';\n @Output() sendMessage = new EventEmitter<string>();\n @ViewChild('messageInput') messageInput!: ElementRef;\n\n messageContent = '';\n\n handleSendMessage(): void {\n if (!this.messageContent.trim() || this.assistantStatus === 'typing') return;\n this.sendMessage.emit(this.messageContent);\n this.messageContent = '';\n this.adjustTextareaHeight();\n }\n\n adjustTextareaHeight(): void {\n const textarea = this.messageInput?.nativeElement;\n if (textarea) {\n textarea.style.height = 'auto';\n textarea.style.height = textarea.scrollHeight + 'px';\n }\n }\n}\n","<form (ngSubmit)=\"handleSendMessage()\" class=\"chat__input-container\">\n <div class=\"chat__input-wrapper\">\n <input\n type=\"text\"\n [(ngModel)]=\"messageContent\"\n name=\"messageContent\"\n [placeholder]=\"'ChatPlaceholder' | translate\"\n [disabled]=\"isChatClosed\"\n class=\"chat__input\"\n #messageInput\n />\n <button\n type=\"submit\"\n [disabled]=\"\n !messageContent.trim() || isChatClosed || assistantStatus === 'typing'\n \"\n class=\"chat__send-button\"\n >\n <svg\n class=\"chat__send-button-icon\"\n [class.chat__send-button-icon--rtl]=\"currentLang === 'ar'\"\n viewBox=\"0 0 19 19\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M18.2346 2.68609C18.6666 1.49109 17.5086 0.33309 16.3136 0.76609L1.70855 6.04809C0.509554 6.48209 0.364554 8.11809 1.46755 8.75709L6.12955 11.4561L10.2926 7.29309C10.4812 7.11093 10.7338 7.01014 10.996 7.01242C11.2582 7.01469 11.509 7.11986 11.6944 7.30527C11.8798 7.49068 11.9849 7.74149 11.9872 8.00369C11.9895 8.26589 11.8887 8.51849 11.7066 8.70709L7.54355 12.8701L10.2436 17.5321C10.8816 18.6351 12.5176 18.4891 12.9516 17.2911L18.2346 2.68609Z\"\n fill=\"white\"\n />\n </svg>\n </button>\n </div>\n</form>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n OnInit,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LoadingComponent } from '../shared/components/loading/loading.component';\nimport { ChatMessageComponent } from './components/chat-message/chat-message.component';\nimport { ChatSeparatorComponent } from './components/chat-separator/chat-separator.component';\nimport { ChatTypingIndicatorComponent } from './components/chat-typing-indicator/chat-typing-indicator.component';\nimport { ChatInputComponent } from './components/chat-input/chat-input.component';\nimport { Message } from '../types';\n\n// Import Prism.js components\nimport 'prismjs';\nimport 'prismjs/components/prism-typescript';\nimport 'prismjs/components/prism-javascript';\nimport 'prismjs/components/prism-css';\nimport 'prismjs/components/prism-json';\n\n@Component({\n selector: 'app-chat',\n standalone: true,\n imports: [\n CommonModule,\n LoadingComponent,\n ChatMessageComponent,\n ChatSeparatorComponent,\n ChatTypingIndicatorComponent,\n ChatInputComponent,\n ],\n templateUrl: './chat.component.html',\n styleUrls: ['./chat.component.scss'],\n})\nexport class ChatComponent implements OnInit, OnChanges {\n @Input() messages: Message[] = [];\n @Input() needsAgent: boolean = false;\n @Input() assistantStatus: string = '';\n @Input() isAblyConnected: boolean = false;\n @Input() isChatClosed: boolean = false;\n @Input() currentLang: string = 'en';\n @Input() loading: boolean = false;\n @Output() sendMessageEvent = new EventEmitter<string>();\n @ViewChild('chatMessagesContainer') chatMessagesContainer!: ElementRef;\n\n firstAgentMessageIndex = -1;\n\n ngOnInit(): void {\n this.findFirstAgentMessageIndex();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['messages']) {\n this.findFirstAgentMessageIndex();\n }\n }\n\n findFirstAgentMessageIndex(): void {\n // Only set firstAgentMessageIndex if we haven't found it yet\n if (this.firstAgentMessageIndex === -1) {\n this.firstAgentMessageIndex = this.messages.findIndex(\n (message) => message.senderType === 2\n );\n }\n }\n\n handleSendMessage(message: string): void {\n this.sendMessageEvent.emit(message);\n }\n\n ngAfterViewChecked(): void {\n this.scrollToBottom();\n }\n\n scrollToBottom(): void {\n try {\n this.chatMessagesContainer.nativeElement.scrollTop =\n this.chatMessagesContainer.nativeElement.scrollHeight;\n } catch (err) {\n console.error('Error scrolling to bottom:', err);\n }\n }\n\n hasAgentMessageBeenSent(messages: any[]): boolean {\n return messages.some(\n (message) => message.senderType === 2 || message.senderType === 3\n );\n }\n\n}\n","<div class=\"chat\">\n <div class=\"chat__messages\" #chatMessagesContainer>\n @for (message of messages; track message.id; let i = $index) {\n <div class=\"chat__message-group\">\n @if (i === firstAgentMessageIndex && message.senderType === 2) {\n <app-chat-separator />\n }\n <app-chat-message [message]=\"message\" [needsAgent]=\"needsAgent\" [currentLang]=\"currentLang\"\n [isHidden]=\"i > 0 && messages[i - 1].senderType === message.senderType\" />\n </div>\n }\n\n @if (assistantStatus === 'typing' && firstAgentMessageIndex === -1) {\n <app-chat-typing-indicator />\n }\n @if (loading) {\n <div class=\"chat__loading\">\n <app-loading variant=\"primary\" />\n </div>\n }\n </div>\n\n <app-chat-input [isChatClosed]=\"isChatClosed\" [assistantStatus]=\"assistantStatus\" [currentLang]=\"currentLang\"\n (sendMessage)=\"handleSendMessage($event)\" />\n</div>\n","import { Component, Input, Output, EventEmitter } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { ButtonComponent } from '../button'\n\n@Component({\n selector: 'app-confirmation-dialog',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n styleUrls: ['./confirmation-dialog.component.scss'],\n template: `\n <div class=\"dialog\">\n <div class=\"dialog__content\">\n <h3 class=\"dialog__title\">{{ title }}</h3>\n <p class=\"dialog__body\">{{ body }}</p>\n <div class=\"dialog__actions\">\n <app-button variant=\"outline\" [fullWidth]=\"true\" (click)=\"onCancel.emit()\">\n {{ cancelText }}\n </app-button>\n <app-button variant=\"default\" [fullWidth]=\"true\" (click)=\"onConfirm.emit()\">\n {{ confirmText }}\n </app-button>\n </div>\n </div>\n </div>\n `\n})\nexport class ConfirmationDialogComponent {\n @Input() title: string = ''\n @Input() body: string = ''\n @Input() confirmText: string = 'Confirm'\n @Input() cancelText: string = 'Cancel'\n @Output() onConfirm = new EventEmitter<void>()\n @Output() onCancel = new EventEmitter<void>()\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslatePipe } from '../../../pipes/translate.pipe';\nimport {\n CardComponent,\n CardContentComponent,\n} from '../../../shared/components/card';\nimport { ButtonComponent } from '../../../shared/components/button';\n\n@Component({\n selector: 'app-intro-section',\n templateUrl: './intro-section.component.html',\n styleUrls: ['./intro-section.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n TranslatePipe,\n CardComponent,\n CardContentComponent,\n ButtonComponent,\n ],\n})\nexport class IntroSectionComponent {\n @Input() currentLang: string = 'en';\n @Output() showHelpScreenData = new EventEmitter<void>();\n @Output() navigateToUrl = new EventEmitter<string>();\n\n handleShowHelpScreenData() {\n this.showHelpScreenData.emit();\n }\n\n handleNavigateToUrl(url: string) {\n this.navigateToUrl.emit(url);\n }\n}\n","<div class=\"intro-section\">\n <h1 class=\"intro-title\">{{ \"ChatIntroMessage\" | translate }}</h1>\n</div>\n\n<div class=\"cards-section\">\n <app-card variant=\"rounded\" [class]=\"'babylai-p-8'\">\n <app-card-content>\n <div class=\"card-content\">\n <div class=\"babylai-info\">\n <div class=\"logo-container\">\n <svg\n class=\"logo\"\n viewBox=\"0 0 55 53\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.53125 19.1353C8.53125 12.2804 14.0883 6.72339 20.9432 6.72339H41.6298C48.4847 6.72339 54.0418 12.2804 54.0418 19.1353V52.2339H20.9432C14.0883 52.2339 8.53125 46.6769 8.53125 39.8219V19.1353Z\"\n fill=\"#E5E5E5\"\n />\n <path\n d=\"M0 12.412C0 5.55702 5.55702 0 12.412 0H33.0985C39.9535 0 45.5105 5.55702 45.5105 12.412V33.0985C45.5105 39.9535 39.9535 45.5105 33.0985 45.5105H0V12.412Z\"\n fill=\"white\"\n />\n <path\n d=\"M14.3684 15.2203C14.3696 15.2162 14.3701 15.2142 14.3704 15.2132C14.5505 14.5816 15.4457 14.5816 15.6258 15.2132C15.6261 15.2142 15.6267 15.2162 15.6278 15.2203C15.6309 15.2311 15.6324 15.2365 15.6338 15.2416C16.4708 18.1971 18.7808 20.5071 21.7364 21.3441C21.7414 21.3455 21.7468 21.3471 21.7576 21.3501C21.7617 21.3512 21.7637 21.3518 21.7647 21.3521C22.3963 21.5322 22.3963 22.4274 21.7647 22.6075C21.7637 22.6078 21.7617 22.6084 21.7576 22.6095C21.7468 22.6126 21.7414 22.6141 21.7364 22.6155C18.7808 23.4525 16.4708 25.7625 15.6338 28.7181C15.6324 28.7231 15.6309 28.7285 15.6278 28.7393C15.6267 28.7434 15.6261 28.7454 15.6258 28.7464C15.4457 29.378 14.5505 29.378 14.3704 28.7464C14.3701 28.7454 14.3696 28.7434 14.3684 28.7393C14.3654 28.7285 14.3638 28.7231 14.3624 28.7181C13.5254 25.7625 11.2154 23.4525 8.25988 22.6155C8.25481 22.6141 8.24942 22.6126 8.23864 22.6095C8.23454 22.6084 8.2325 22.6078 8.23155 22.6075C7.5999 22.4274 7.5999 21.5322 8.23155 21.3521C8.2325 21.3518 8.23454 21.3512 8.23864 21.3501C8.24942 21.3471 8.25481 21.3455 8.25988 21.3441C11.2154 20.5071 13.5254 18.1971 14.3624 15.2416C14.3638 15.2365 14.3654 15.2311 14.3684 15.2203Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M36.7198 21.8503C36.7198 24.9207 34.2886 27.4098 31.2896 27.4098C28.2906 27.4098 25.8594 24.9207 25.8594 21.8503C25.8594 18.7799 28.2906 16.2908 31.2896 16.2908C34.2886 16.2908 36.7198 18.7799 36.7198 21.8503Z\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n <div class=\"info-text\">\n <h4 class=\"info-title\">\n {{ \"BabylaiTitle\" | translate }}\n </h4>\n <p class=\"info-description\">\n {{ \"BabylaiDescription\" | translate }}\n </p>\n </div>\n </div>\n <app-button\n variant=\"default\"\n [fullWidth]=\"true\"\n (click)=\"handleShowHelpScreenData()\"\n >\n {{ \"ChatNow\" | translate }}\n </app-button>\n </div>\n </app-card-content>\n </app-card>\n\n <app-card variant=\"rounded\" [class]=\"'babylai-p-6'\">\n <app-card-content>\n <div class=\"action-card\">\n <p class=\"action-text\">{{ \"TryBableAI\" | translate }}</p>\n <app-button\n variant=\"icon-bg\"\n (click)=\"handleNavigateToUrl('https://babylai.net/signup')\"\n >\n <svg\n width=\"100%\"\n height=\"100%\"\n [ngClass]=\"{\n icon: true,\n 'icon-rtl': currentLang === 'ar'\n }\"\n viewBox=\"0 0 9 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M1.5 0.999998L7.5 8L6 9.75M1.5 15L3.5 12.667\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </app-button>\n </div>\n </app-card-content>\n </app-card>\n\n <app-card variant=\"rounded\" [class]=\"'babylai-p-6'\">\n <app-card-content>\n <div class=\"action-card\">\n <p class=\"action-text\">{{ \"ContactUs\" | translate }}</p>\n <app-button\n variant=\"icon-bg\"\n (click)=\"handleNavigateToUrl('https://babylai.net')\"\n >\n <svg\n width=\"100%\"\n height=\"100%\"\n [ngClass]=\"{\n icon: true,\n 'icon-rtl': currentLang === 'ar'\n }\"\n viewBox=\"0 0 9 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M1.5 0.999998L7.5 8L6 9.75M1.5 15L3.5 12.667\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </app-button>\n </div>\n </app-card-content>\n </app-card>\n</div>\n","import { TranslatePipe } from './../../../pipes/translate.pipe';\nimport { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss'],\n standalone: true,\n imports: [CommonModule, TranslatePipe],\n})\nexport class FooterComponent {\n @Input() showHelpScreenData: boolean = false;\n @Input() showChat: boolean = false;\n}\n","<div class=\"footer\">\n <a\n href=\"https://babylai.net\"\n target=\"_blank\"\n class=\"footer-link\"\n [ngClass]=\"{ 'light-text': !showHelpScreenData && !showChat }\"\n >\n {{ \"PoweredByBabylAI\" | translate }}\n </a>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ButtonComponent } from '../button';\n\n@Component({\n selector: 'app-back-button',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './back-button.component.html',\n styleUrls: ['./back-button.component.scss'],\n})\nexport class BackButtonComponent {\n @Input() language = 'en';\n @Input() size: 'default' | 'small' | 'medium' = 'default';\n @Output() onBack = new EventEmitter<void>();\n\n get isRtl(): boolean {\n return this.language === 'ar';\n }\n}\n","<app-button\n [size]=\"size\"\n variant=\"icon-bg\"\n className=\"button--light-bg\"\n [direction]=\"isRtl ? 'rtl' : 'ltr'\"\n (click)=\"onBack.emit()\"\n>\n <svg\n [style.transform]=\"isRtl ? 'rotate(180deg)' : 'rotate(0deg)'\"\n class=\"back-button__icon\"\n width=\"8\"\n height=\"16\"\n viewBox=\"0 0 8 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M7 15L1 8L2.5 6.25M7 1L5 3.333\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n</app-button>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ButtonComponent } from '../button';\n\n@Component({\n selector: 'app-close-button',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './close-button.component.html',\n styleUrls: ['./close-button.component.scss']\n})\nexport class CloseButtonComponent {\n @Input() language = 'en';\n @Output() onClose = new EventEmitter<void>();\n\n get isRtl(): boolean {\n return this.language === 'ar';\n }\n}\n","<app-button\n variant=\"icon-bg\"\n [direction]=\"isRtl ? 'rtl' : 'ltr'\"\n className=\"button--close-button\"\n (click)=\"onClose.emit()\"\n>\n <svg\n width=\"40\"\n height=\"40\"\n viewBox=\"0 0 55 55\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M33.8568 21.1458L21.1484 33.8541M21.1484 21.1458L33.8568 33.8541M14.7943 5.48404C18.6562 3.24921 23.0407 2.07593 27.5026 2.08329C41.5402 2.08329 52.9193 13.4623 52.9193 27.5C52.9193 41.5376 41.5402 52.9166 27.5026 52.9166C13.465 52.9166 2.08594 41.5376 2.08594 27.5C2.08594 22.8716 3.32373 18.5279 5.48669 14.7916\"\n stroke=\"#fff\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n />\n </svg>\n</app-button>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Output } from '@angular/core';\nimport { ButtonComponent } from '../button';\n\n@Component({\n selector: 'app-simple-close-button',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './simple-close-button.component.html',\n styleUrls: ['./simple-close-button.component.scss']\n})\nexport class SimpleCloseButtonComponent {\n @Output() onClose = new EventEmitter<void>();\n}\n","<app-button\n variant=\"icon-only\"\n class=\"simple-close-button\"\n (click)=\"onClose.emit()\"\n>\n <svg\n width=\"40\"\n height=\"40\"\n viewBox=\"0 0 55 55\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M33.8568 21.1458L21.1484 33.8541M21.1484 21.1458L33.8568 33.8541M14.7943 5.48404C18.6562 3.24921 23.0407 2.07593 27.5026 2.08329C41.5402 2.08329 52.9193 13.4623 52.9193 27.5C52.9193 41.5376 41.5402 52.9166 27.5026 52.9166C13.465 52.9166 2.08594 41.5376 2.08594 27.5C2.08594 22.8716 3.32373 18.5279 5.48669 14.7916\"\n stroke=\"white\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n />\n </svg>\n</app-button>\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ThemeService {\n private primaryColor: string = '#ad49e1';\n private logoUrl: string = '/logo.svg';\n\n constructor() {}\n\n setPrimaryColor(color: string): void {\n this.primaryColor = color;\n this.updateCSSVariables();\n }\n\n setLogoUrl(url: string): void {\n this.logoUrl = url;\n }\n\n getPrimaryColor(): string {\n return this.primaryColor;\n }\n\n getLogoUrl(): string {\n return this.logoUrl;\n }\n\n private updateCSSVariables(): void {\n const root = document.documentElement;\n\n // Generate color variations based on the primary color\n const colorVariations = this.generateColorVariations(this.primaryColor);\n\n // Set CSS custom properties\n root.style.setProperty('--babylai-primary-color', this.primaryColor);\n root.style.setProperty('--babylai-primary-color-100', colorVariations[100]);\n root.style.setProperty('--babylai-primary-color-200', colorVariations[200]);\n root.style.setProperty('--babylai-primary-color-300', colorVariations[300]);\n root.style.setProperty('--babylai-primary-color-400', colorVariations[400]);\n root.style.setProperty('--babylai-primary-color-500', colorVariations[500]);\n root.style.setProperty('--babylai-primary-color-600', colorVariations[600]);\n root.style.setProperty('--babylai-primary-color-700', colorVariations[700]);\n root.style.setProperty('--babylai-primary-color-800', colorVariations[800]);\n root.style.setProperty('--babylai-primary-color-900', colorVariations[900]);\n root.style.setProperty('--babylai-primary-color-950', colorVariations[950]);\n }\n\n private generateColorVariations(baseColor: string): {\n [key: number]: string;\n } {\n // Generate variations by adjusting lightness\n const variations: { [key: number]: string } = {};\n\n variations[100] = this.lightenColor(baseColor, 0.85);\n variations[200] = this.lightenColor(baseColor, 0.65);\n variations[300] = this.lightenColor(baseColor, 0.45);\n variations[400] = this.lightenColor(baseColor, 0.25);\n variations[500] = baseColor; // Base color\n variations[600] = this.darkenColor(baseColor, 0.35);\n variations[700] = this.darkenColor(baseColor, 0.55);\n variations[800] = this.darkenColor(baseColor, 0.75);\n variations[900] = this.darkenColor(baseColor, 0.85);\n variations[950] = this.darkenColor(baseColor, 0.92);\n\n return variations;\n }\n\n /**\n * Lighten a color by a percentage\n */\n private lightenColor(color: string, amount: number): string {\n const hex = color.replace('#', '');\n const r = parseInt(hex.substring(0, 2), 16);\n const g = parseInt(hex.substring(2, 4), 16);\n const b = parseInt(hex.substring(4, 6), 16);\n\n // Use HSL-like approach for more natural lightening\n const newR = Math.round(r + (255 - r) * amount);\n const newG = Math.round(g + (255 - g) * amount);\n const newB = Math.round(b + (255 - b) * amount);\n\n return `#${newR.toString(16).padStart(2, '0')}${newG.toString(16).padStart(2, '0')}${newB.toString(16).padStart(2, '0')}`;\n }\n\n /**\n * Darken a color by a percentage\n */\n private darkenColor(color: string, amount: number): string {\n const hex = color.replace('#', '');\n const r = parseInt(hex.substring(0, 2), 16);\n const g = parseInt(hex.substring(2, 4), 16);\n const b = parseInt(hex.substring(4, 6), 16);\n\n // Use HSL-like approach for more natural darkening\n const newR = Math.round(r * (1 - amount));\n const newG = Math.round(g * (1 - amount));\n const newB = Math.round(b * (1 - amount));\n\n return `#${newR.toString(16).padStart(2, '0')}${newG.toString(16).padStart(2, '0')}${newB.toString(16).padStart(2, '0')}`;\n }\n\n initializeTheme(primaryColor: string, logoUrl: string): void {\n this.setPrimaryColor(primaryColor);\n this.setLogoUrl(logoUrl);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, inject } from '@angular/core';\nimport { ThemeService } from '../../../services/theme.service';\n\n@Component({\n selector: 'app-logo',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './logo.component.html',\n styleUrls: ['./logo.component.scss'],\n})\nexport class LogoComponent {\n @Input() showLogo = true;\n @Input() size: 'default' | 'small' = 'default';\n logoUrl: string = '/logo.svg';\n private themeService = inject(ThemeService);\n\n get effectiveLogoUrl(): string | undefined {\n return this.themeService.getLogoUrl();\n }\n}\n","@if (showLogo) {\n @if (effectiveLogoUrl) {\n <img\n [src]=\"effectiveLogoUrl\"\n [alt]=\"'Logo'\"\n class=\"logo\"\n [class.logo--small]=\"size === 'small'\"\n />\n } @else {\n <img\n [src]=\"logoUrl\"\n [alt]=\"'Logo'\"\n class=\"logo\"\n [class.logo--small]=\"size === 'small'\"\n />\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BackButtonComponent } from '../back-button';\nimport { CloseButtonComponent } from '../close-button';\nimport { SimpleCloseButtonComponent } from '../simple-close-button';\nimport { LogoComponent } from '../logo';\n\ntype HeaderType = 'standard' | 'minimal';\n\n@Component({\n selector: 'app-header',\n standalone: true,\n imports: [\n CommonModule,\n BackButtonComponent,\n CloseButtonComponent,\n SimpleCloseButtonComponent,\n LogoComponent,\n ],\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n})\nexport class HeaderComponent {\n @Input() headerType: HeaderType = 'standard';\n @Input() showBackButton = false;\n @Input() showLogo = true;\n @Input() language = 'en';\n @Input() showCloseButton = false;\n @Output() onBack = new EventEmitter<void>();\n @Output() onClose = new EventEmitter<void>();\n\n get isRtl(): boolean {\n return this.language === 'ar';\n }\n}\n","<div class=\"header\">\n @if (showBackButton) {\n <app-back-button\n [size]=\"'medium'\"\n [language]=\"language\"\n (onBack)=\"onBack.emit()\"\n ></app-back-button>\n }\n \n @if (showCloseButton) {\n <app-close-button\n [language]=\"language\"\n (onClose)=\"onClose.emit()\"\n ></app-close-button>\n }\n \n <app-logo [showLogo]=\"showLogo\"></app-logo>\n\n @if (!showBackButton && !showCloseButton) {\n <app-simple-close-button\n (onClose)=\"onClose.emit()\"\n ></app-simple-close-button>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { ButtonComponent } from '../button';\nimport { TranslatePipe } from '../../../pipes/translate.pipe';\n\n@Component({\n selector: 'app-menu-dropdown',\n standalone: true,\n imports: [CommonModule, ButtonComponent, TranslatePipe],\n templateUrl: './menu-dropdown.component.html',\n styleUrls: ['./menu-dropdown.component.scss']\n})\nexport class MenuDropdownComponent {\n isMenuOpen = false;\n @Input() language = 'en';\n @Output() onClose = new EventEmitter<void>();\n\n get isRtl(): boolean {\n return this.language === 'ar';\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const menuContainer = target.closest('[data-menu-container]');\n if (!menuContainer && this.isMenuOpen) {\n this.isMenuOpen = false;\n }\n }\n}\n","<div class=\"menu-dropdown\" data-menu-container>\n <app-button\n size=\"small\"\n variant=\"icon-bg\"\n className=\"menu-dropdown__button button--light-bg\"\n (click)=\"$event.stopPropagation(); isMenuOpen = !isMenuOpen\"\n >\n <svg\n width=\"14\"\n height=\"4\"\n viewBox=\"0 0 14 4\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3.25 1.8269C3.25 2.22473 3.09196 2.60626 2.81066 2.88756C2.52936 3.16887 2.14782 3.3269 1.75 3.3269C1.35218 3.3269 0.970644 3.16887 0.68934 2.88756C0.408035 2.60626 0.25 2.22473 0.25 1.8269C0.25 1.42908 0.408035 1.04755 0.68934 0.766244C0.970644 0.48494 1.35218 0.326904 1.75 0.326904C2.14782 0.326904 2.52936 0.48494 2.81066 0.766244C3.09196 1.04755 3.25 1.42908 3.25 1.8269ZM8.5 1.8269C8.5 2.22473 8.34196 2.60626 8.06066 2.88756C7.77936 3.16887 7.39782 3.3269 7 3.3269C6.60218 3.3269 6.22064 3.16887 5.93934 2.88756C5.65804 2.60626 5.5 2.22473 5.5 1.8269C5.5 1.42908 5.65804 1.04755 5.93934 0.766244C6.22064 0.48494 6.60218 0.326904 7 0.326904C7.39782 0.326904 7.77936 0.48494 8.06066 0.766244C8.34196 1.04755 8.5 1.42908 8.5 1.8269ZM13.75 1.8269C13.75 2.22473 13.592 2.60626 13.3107 2.88756C13.0294 3.16887 12.6478 3.3269 12.25 3.3269C11.8522 3.3269 11.4706 3.16887 11.1893 2.88756C10.908 2.60626 10.75 2.22473 10.75 1.8269C10.75 1.42908 10.908 1.04755 11.1893 0.766244C11.4706 0.48494 11.8522 0.326904 12.25 0.326904C12.6478 0.326904 13.0294 0.48494 13.3107 0.766244C13.592 1.04755 13.75 1.42908 13.75 1.8269Z\"\n fill=\"currentColor\"\n />\n </svg>\n </app-button>\n @if (isMenuOpen) {\n <div\n class=\"menu-dropdown__dropdown\"\n [ngClass]=\"{ rtl: isRtl, ltr: !isRtl }\"\n >\n <div class=\"menu-dropdown__content\">\n <button\n (click)=\"onClose.emit(); isMenuOpen = false\"\n class=\"menu-dropdown__button-item\"\n [ngClass]=\"{ rtl: isRtl, ltr: !isRtl }\"\n >\n {{ 'EndChat' | translate }}\n </button>\n </div>\n </div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BackButtonComponent } from '../back-button';\nimport { MenuDropdownComponent } from '../menu-dropdown';\nimport { LogoComponent } from '../logo';\n\n@Component({\n selector: 'app-chat-header',\n standalone: true,\n imports: [\n CommonModule,\n BackButtonComponent,\n MenuDropdownComponent,\n LogoComponent,\n ],\n templateUrl: './chat-header.component.html',\n styleUrls: ['./chat-header.component.scss'],\n})\nexport class ChatHeaderComponent {\n @Input() showBackButton = false;\n @Input() showLogo = true;\n @Input() language = 'en';\n @Output() onBack = new EventEmitter<void>();\n @Output() onClose = new EventEmitter<void>();\n}\n","<div class=\"chat-header\">\n <div class=\"chat-header__actions\">\n @if (showBackButton) {\n <app-back-button\n [language]=\"language\"\n (onBack)=\"onBack.emit()\"\n [size]=\"'small'\"\n ></app-back-button>\n }\n\n <app-menu-dropdown\n [language]=\"language\"\n (onClose)=\"onClose.emit()\"\n ></app-menu-dropdown>\n </div>\n\n <app-logo [showLogo]=\"showLogo\"></app-logo>\n</div>\n","// Main header components\nexport * from './header';\nexport * from './chat-header';\n\n// Header sub-components\nexport * from './back-button';\nexport * from './close-button';\nexport * from './simple-close-button';\nexport * from './logo';\nexport * from './menu-dropdown';\n\n// Other shared components\nexport * from './button';\nexport * from './card';\nexport * from './confirmation-dialog';\nexport * from './loading';\nexport * from './markdown-renderer';\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslatePipe } from '../../../pipes/translate.pipe';\nimport { ButtonComponent } from '../../../shared/components/button';\nimport { HelpScreenDataComponent } from '../../../help-screen-data/help-screen-data.component';\nimport { ChatComponent } from '../../../chat/chat.component';\nimport { LoadingComponent } from '../../../shared/components/loading/loading.component';\nimport { ConfirmationDialogComponent } from '../../../shared/components/confirmation-dialog/confirmation-dialog.component';\nimport { IntroSectionComponent } from '../intro-section/intro-section.component';\nimport { FooterComponent } from '../footer/footer.component';\nimport { ChatHeaderComponent, HeaderComponent } from '../../../shared/components';\n\ninterface Option {\n id: string;\n helpScreenId: string;\n parentOptionId: string | null;\n nestedOptions: Option[];\n title: string;\n paragraphs: string[];\n chatWithUs: boolean;\n assistantId?: string;\n assistant?: {\n id: string;\n tenantId: string;\n tenant: {\n id: string;\n name: string;\n key: string;\n };\n name: string;\n openAIAssistantId: string;\n greeting: string;\n closing: string;\n };\n hasNestedOptions: boolean;\n order: number;\n}\n\ninterface Message {\n id: string | number;\n sender: 'user' | 'assistant' | 'agent';\n senderType: number;\n messageContent: string;\n sentAt: Date;\n isSeen: boolean;\n}\n\n@Component({\n selector: 'app-help-popup',\n templateUrl: './help-popup.component.html',\n styleUrls: ['./help-popup.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n TranslatePipe,\n ButtonComponent,\n HelpScreenDataComponent,\n HeaderComponent,\n ChatHeaderComponent,\n ChatComponent,\n LoadingComponent,\n ConfirmationDialogComponent,\n IntroSectionComponent,\n FooterComponent,\n ]\n})\nexport class HelpPopupComponent {\n @Input() isPopupOpen: boolean = false;\n @Input() showHelpScreenData: boolean = false;\n @Input() showChat: boolean = false;\n @Input() status: string = 'idle';\n @Input() error: string | null = null;\n @Input() helpScreenData: any = null;\n @Input() messages: Message[] = [];\n @Input() needsAgent: boolean = false;\n @Input() assistantStatus: string = 'idle';\n @Input() isAblyConnected: boolean = false;\n @Input() isChatClosed: boolean = false;\n @Input() currentLang: string = 'en';\n @Input() chatIsLoading: boolean = false;\n @Input() sessionId: string | null = null;\n @Input() isIntroScreenEnabled: boolean = false;\n @Input() selectedOption: Option | null = null;\n @Input() selectedNestedOption: Option | null = null;\n @Input() showEndChatConfirmation: boolean = false;\n\n @Output() closePopup = new EventEmitter<void>();\n @Output() back = new EventEmitter<void>();\n @Output() showChatEvent = new EventEmitter<void>();\n @Output() endChat = new EventEmitter<void>();\n @Output() confirmEndChat = new EventEmitter<void>();\n @Output() cancelEndChat = new EventEmitter<void>();\n @Output() sendMessageEvent = new EventEmitter<string>();\n @Output() startNewChat = new EventEmitter<Option>();\n @Output() showHelpScreenDataEvent = new EventEmitter<void>();\n @Output() hideHelpScreenData = new EventEmitter<void>();\n @Output() navigateToUrl = new EventEmitter<string>();\n\n handleClosePopup() {\n this.closePopup.emit();\n }\n\n handleBack() {\n this.back.emit();\n }\n\n handleShowChat() {\n this.showChatEvent.emit();\n }\n\n handleEndChat() {\n this.endChat.emit();\n }\n\n handleConfirmEndChat() {\n this.confirmEndChat.emit();\n }\n\n handleCancelEndChat() {\n this.cancelEndChat.emit();\n }\n\n handleSendMessage(message: string) {\n this.sendMessageEvent.emit(message);\n }\n\n handleStartNewChat(option: Option) {\n this.startNewChat.emit(option);\n }\n\n handleShowHelpScreenData() {\n this.showHelpScreenDataEvent.emit();\n }\n\n handleHideHelpScreenData() {\n this.hideHelpScreenData.emit();\n }\n\n handleNavigateToUrl(url: string) {\n this.navigateToUrl.emit(url);\n }\n}\n","@if (isPopupOpen) {\n<div class=\"help-popup\" [ngClass]=\"{\n 'is-open': isPopupOpen,\n 'is-closed': !isPopupOpen,\n 'babylai-bg-linear-to-b': isPopupOpen && !showHelpScreenData && !showChat\n }\">\n @if (showEndChatConfirmation) {\n <app-confirmation-dialog [title]=\"'LeavingDialogTitle' | translate\" [body]=\"'LeavingDialogBody' | translate\"\n [confirmText]=\"'Confirm' | translate\" [cancelText]=\"'Cancel' | translate\" (onConfirm)=\"handleConfirmEndChat()\"\n (onCancel)=\"handleCancelEndChat()\"></app-confirmation-dialog>\n }\n\n <!-- Loading State -->\n @if (status === 'loading') {\n <div class=\"loading-state\">\n @if (!showHelpScreenData) {\n <app-header [showBackButton]=\"!!selectedOption || !!selectedNestedOption\" [showLogo]=\"true\" (onBack)=\"handleBack()\"\n (onClose)=\"handleClosePopup()\" [language]=\"currentLang\"></app-header>\n }\n @if (showHelpScreenData) {\n <app-header [showCloseButton]=\"!isIntroScreenEnabled\" [showLogo]=\"true\" (onClose)=\"\n isIntroScreenEnabled\n ? handleHideHelpScreenData()\n : handleClosePopup()\n \" [language]=\"currentLang\"></app-header>\n }\n <app-loading [variant]=\"!isIntroScreenEnabled ? 'primary' : 'default'\"></app-loading>\n </div>\n }\n\n <!-- Error State -->\n @if (status === 'failed') {\n <div class=\"error-message\">\n <span>Error: {{ error }}</span>\n </div>\n }\n\n <!-- Content -->\n @if (status === 'succeeded') {\n <!-- Headers -->\n @if (isIntroScreenEnabled) {\n @if (!showHelpScreenData && !showChat) {\n <app-header [showBackButton]=\"!!selectedOption || !!selectedNestedOption\" [showLogo]=\"true\" (onBack)=\"handleBack()\"\n (onClose)=\"handleClosePopup()\" [language]=\"currentLang\"></app-header>\n }\n }\n\n @if (showHelpScreenData && !showChat) {\n <app-header [showCloseButton]=\"!isIntroScreenEnabled\" [showBackButton]=\"isIntroScreenEnabled && showHelpScreenData\"\n [showLogo]=\"false\" (onClose)=\"\n isIntroScreenEnabled\n ? handleHideHelpScreenData()\n : handleClosePopup()\n \" (onBack)=\"isIntroScreenEnabled ? handleBack() : handleClosePopup()\" [language]=\"currentLang\"></app-header>\n\n @if (showHelpScreenData && sessionId) {\n <app-button variant=\"icon-bg\" (click)=\"handleShowChat()\" class=\"chat-button\" className=\"button--icon\">\n <svg class=\"icon-full\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M17.5 3.83801C15.9806 2.95874 14.2555 2.49712 12.5 2.50001C6.977 2.50001 2.5 6.97701 2.5 12.5C2.5 14.1 2.876 15.612 3.543 16.953C3.721 17.309 3.78 17.716 3.677 18.101L3.082 20.327C3.02307 20.5473 3.02312 20.7792 3.08216 20.9995C3.14119 21.2198 3.25712 21.4206 3.41831 21.5819C3.57951 21.7432 3.7803 21.8593 4.00053 21.9184C4.22075 21.9776 4.45267 21.9778 4.673 21.919L6.899 21.323C7.28538 21.2254 7.69414 21.2727 8.048 21.456C9.43095 22.1446 10.9551 22.502 12.5 22.5C18.023 22.5 22.5 18.023 22.5 12.5C22.5 10.679 22.013 8.97001 21.162 7.50001\"\n stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" />\n <path d=\"M8.5 12.5H8.509M12.491 12.5H12.5M16.491 12.5H16.5\" stroke=\"white\" stroke-width=\"2.66667\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </app-button>\n }\n }\n\n @if (showChat) {\n <app-chat-header [showBackButton]=\"showChat\" [showLogo]=\"true\" (onClose)=\"handleEndChat()\" (onBack)=\"handleBack()\"\n [language]=\"currentLang\"></app-chat-header>\n\n <app-chat class=\"chat-container\" [messages]=\"messages\" [needsAgent]=\"needsAgent\" [assistantStatus]=\"assistantStatus\"\n [isAblyConnected]=\"isAblyConnected\" [isChatClosed]=\"isChatClosed\" (sendMessageEvent)=\"handleSendMessage($event)\"\n [currentLang]=\"currentLang\" [loading]=\"chatIsLoading\"></app-chat>\n }\n\n <!-- Main Content -->\n @if (!showChat) {\n <div class=\"main-content\">\n @if (isIntroScreenEnabled) {\n @if (!showHelpScreenData) {\n <app-intro-section [currentLang]=\"currentLang\" (showHelpScreenData)=\"handleShowHelpScreenData()\"\n (navigateToUrl)=\"handleNavigateToUrl($event)\"></app-intro-section>\n }\n }\n\n @if (showHelpScreenData) {\n <svg class=\"stars\" viewBox=\"0 0 244 196\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <g opacity=\"0.15\">\n <path\n d=\"M61.0903 66.4434C61.101 66.4056 61.1063 66.3867 61.1088 66.3779C62.7734 60.5407 71.046 60.5407 72.7106 66.3779C72.7131 66.3867 72.7184 66.4056 72.7291 66.4434C72.7572 66.5431 72.7712 66.5929 72.7845 66.6397C80.5193 93.9529 101.867 115.3 129.18 123.035C129.227 123.048 129.276 123.062 129.376 123.09C129.414 123.101 129.433 123.106 129.441 123.109C135.279 124.773 135.279 133.046 129.441 134.711C129.433 134.713 129.414 134.718 129.376 134.729C129.276 134.757 129.227 134.771 129.18 134.784C101.867 142.519 80.5193 163.867 72.7845 191.18C72.7712 191.227 72.7572 191.276 72.7291 191.376C72.7184 191.414 72.7131 191.433 72.7106 191.441C71.046 197.279 62.7734 197.279 61.1088 191.441C61.1063 191.433 61.101 191.414 61.0903 191.376C61.0622 191.276 61.0482 191.227 61.035 191.18C53.3002 163.867 31.9529 142.519 4.63971 134.784C4.59292 134.771 4.54309 134.757 4.44342 134.729C4.40559 134.718 4.38668 134.713 4.37792 134.711C-1.45931 133.046 -1.45931 124.773 4.37792 123.109C4.38668 123.106 4.40559 123.101 4.44342 123.09C4.54309 123.062 4.59292 123.048 4.63971 123.035C31.9529 115.3 53.3002 93.9529 61.035 66.6397C61.0482 66.5929 61.0622 66.5431 61.0903 66.4434Z\"\n fill=\"currentColor\" />\n <path\n d=\"M188.17 50.6848C188.179 50.6534 188.183 50.6377 188.185 50.6305C189.525 45.7898 196.183 45.7898 197.523 50.6305C197.525 50.6377 197.529 50.6534 197.538 50.6848C197.561 50.7674 197.572 50.8088 197.583 50.8476C203.808 73.4975 220.99 91.2002 242.974 97.6144C243.012 97.6253 243.052 97.637 243.132 97.6603C243.162 97.6691 243.178 97.6736 243.185 97.6756C247.883 99.056 247.883 105.916 243.185 107.297C243.178 107.299 243.162 107.303 243.132 107.312C243.052 107.335 243.012 107.347 242.974 107.358C220.99 113.772 203.808 131.475 197.583 154.125C197.572 154.163 197.561 154.205 197.538 154.287C197.529 154.319 197.525 154.334 197.523 154.342C196.183 159.182 189.525 159.182 188.185 154.342C188.183 154.334 188.179 154.319 188.17 154.287C188.148 154.205 188.136 154.163 188.126 154.125C181.9 131.475 164.718 113.772 142.734 107.358C142.697 107.347 142.657 107.335 142.576 107.312C142.546 107.303 142.531 107.299 142.524 107.297C137.825 105.916 137.825 99.056 142.524 97.6756C142.531 97.6736 142.546 97.6691 142.576 97.6603C142.657 97.637 142.697 97.6253 142.734 97.6144C164.718 91.2002 181.9 73.4975 188.126 50.8476C188.136 50.8088 188.148 50.7674 188.17 50.6848Z\"\n fill=\"currentColor\" />\n <path\n d=\"M127.131 -17.2906C127.138 -17.3137 127.143 -17.3305 127.143 -17.3305C128.198 -20.8898 133.444 -20.8898 134.5 -17.3305C134.5 -17.3305 134.505 -17.3137 134.512 -17.2906C134.529 -17.2298 134.538 -17.1994 134.547 -17.1709C139.452 -0.516516 152.989 12.5001 170.309 17.2164C170.339 17.2245 170.371 17.2331 170.434 17.2502C170.458 17.2567 170.476 17.2615 170.476 17.2615C174.177 18.2765 174.177 23.3208 170.476 24.3357C170.476 24.3357 170.458 24.3405 170.434 24.347C170.371 24.3642 170.339 24.3727 170.309 24.3808C152.989 29.0971 139.452 42.1138 134.547 58.7681C134.538 58.7967 134.529 58.8271 134.512 58.8878C134.505 58.9109 134.5 58.9278 134.5 58.9278C133.444 62.4871 128.198 62.4871 127.143 58.9278C127.143 58.9278 127.138 58.9109 127.131 58.8878C127.113 58.8271 127.104 58.7967 127.096 58.7681C122.191 42.1138 108.653 29.0971 91.3329 24.3808C91.3032 24.3727 91.2716 24.3642 91.2084 24.347C91.1844 24.3405 91.1669 24.3357 91.1669 24.3357C87.4652 23.3208 87.4652 18.2765 91.1669 17.2615C91.1669 17.2615 91.1844 17.2567 91.2084 17.2502C91.2716 17.2331 91.3032 17.2245 91.3329 17.2164C108.653 12.5001 122.191 -0.516516 127.096 -17.1709C127.104 -17.1994 127.113 -17.2298 127.131 -17.2906Z\"\n fill=\"currentColor\" />\n </g>\n </svg>\n\n <app-help-screen-data [helpScreenData]=\"helpScreenData\"\n (handleStartNewChat)=\"handleStartNewChat($event)\"></app-help-screen-data>\n }\n\n </div>\n }\n\n <!-- Footer -->\n <app-footer [showHelpScreenData]=\"showHelpScreenData\" [showChat]=\"showChat\"></app-footer>\n }\n</div>\n}","import { Injectable } from '@angular/core'\nimport { ApiConfig } from '../../../public_api'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiService {\n private getTokenFunction: (() => Promise<string>) | null = null\n private baseUrl: string = 'https://babylai.net/api'\n\n /**\n * Initialize the API service with optional configuration\n * @param config Configuration object containing token function and optional base URL\n */\n initialize(config: ApiConfig) {\n if (!config.getToken) {\n throw new Error('getToken function is required for API initialization')\n }\n\n this.getTokenFunction = config.getToken\n if (config.baseUrl) {\n this.baseUrl = config.baseUrl\n }\n }\n\n async getValidToken(forceRefresh = false): Promise<string> {\n if (!this.getTokenFunction) {\n throw new Error('API service not initialized. Call initialize({ getToken }) first.')\n }\n\n let storedToken = localStorage.getItem('chatbot-token')\n let storedExpiry = localStorage.getItem('chatbot-token-expiry')\n\n const currentTime = Math.floor(Date.now() / 1000)\n\n if (!storedToken || !storedExpiry || currentTime >= Number(storedExpiry) || forceRefresh) {\n const tokenResponse = await this.getTokenFunction()\n\n if (!tokenResponse) {\n throw new Error('Invalid token response from getToken function')\n }\n\n storedToken = tokenResponse\n storedExpiry = String(currentTime + 900) // 15 minutes expiry\n\n localStorage.setItem('chatbot-token', storedToken)\n localStorage.setItem('chatbot-token-expiry', storedExpiry)\n }\n\n return storedToken\n }\n\n private async fetchWithAuth(url: string, options: RequestInit, retry = true): Promise<Response> {\n if (!options.headers) {\n options.headers = {}\n }\n\n const headers = options.headers as Record<string, string>\n headers['Authorization'] = `Bearer ${await this.getValidToken()}`\n\n let response = await fetch(url, options)\n\n if ((response.status === 401 || response.status === 403) && retry) {\n console.warn('Token expired. Fetching new token...')\n\n const newToken = await this.getValidToken(true)\n headers['Authorization'] = `Bearer ${newToken}`\n\n response = await fetch(url, options)\n }\n\n return response\n }\n\n async apiRequest(endpoint: string, method = 'GET', body: any = null, customHeaders: Record<string, string> = {}): Promise<Response> {\n const url = `${this.baseUrl}/${endpoint}`\n\n const options: RequestInit = {\n method,\n headers: {\n 'Content-Type': 'application/json',\n ...customHeaders\n },\n body: body ? JSON.stringify(body) : null\n }\n\n const response = await this.fetchWithAuth(url, options)\n\n if (!response.ok) {\n const errorData = await response.json()\n throw new Error(errorData.message || 'API request failed')\n }\n\n return response\n }\n}\n","import {\n Component,\n Input,\n OnInit,\n OnDestroy,\n OnChanges,\n SimpleChanges,\n ViewChild,\n ElementRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ApiService } from '../services/api.service';\nimport { ClientAblyService } from '../services/ably.service';\nimport {\n ArrowAnimationComponent,\n HelpButtonComponent,\n HelpPopupComponent,\n} from './components';\nimport { TranslationService } from '../services/translation.service';\nimport { ThemeService } from '../services/theme.service';\nimport { Subscription } from 'rxjs';\n\ninterface Option {\n id: string;\n helpScreenId: string;\n parentOptionId: string | null;\n nestedOptions: Option[];\n title: string;\n paragraphs: string[];\n chatWithUs: boolean;\n assistantId?: string;\n assistant?: {\n id: string;\n tenantId: string;\n tenant: {\n id: string;\n name: string;\n key: string;\n };\n name: string;\n openAIAssistantId: string;\n greeting: string;\n closing: string;\n };\n hasNestedOptions: boolean;\n order: number;\n}\n\ninterface Message {\n id: string | number;\n sender: 'user' | 'assistant' | 'agent';\n senderType: number;\n messageContent: string;\n sentAt: Date;\n isSeen: boolean;\n}\n\n@Component({\n selector: 'app-help-center-widget',\n templateUrl: './help-center-widget.component.html',\n styleUrls: ['./help-center-widget.component.scss', '../../styles.scss'],\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ArrowAnimationComponent,\n HelpButtonComponent,\n HelpPopupComponent,\n ],\n})\nexport class HelpCenterWidgetComponent implements OnInit, OnDestroy, OnChanges {\n @Input() getToken!: () => Promise<string>;\n @Input() helpScreenId!: string;\n @Input() showArrow: boolean = true;\n @Input() messageLabel: string | null = null;\n @Input() set currentLang(value: string) {\n this._currentLang = value;\n this.isRTL = value === 'ar';\n }\n get currentLang(): string {\n return this._currentLang;\n }\n @Input() isIntroScreenEnabled: boolean = false;\n @Input() primaryColor: string = '#ad49e1';\n @Input() logoUrl: string = '/logo.svg';\n @ViewChild('chatMessagesContainer') chatMessagesContainer!: ElementRef;\n\n private _currentLang: string = 'en';\n private langSubscription?: Subscription;\n isRTL: boolean = false;\n\n // State variables\n isPopupOpen = false;\n helpScreenData: any = null;\n status = 'idle';\n error: string | null = null;\n showArrowAnimation = this.showArrow;\n showTooltip = false;\n sessionId: string | null = null;\n isAblyConnected = false;\n isChatClosed = false;\n showChat = false;\n messageText: string = '';\n isTyping = false;\n messages: Message[] = [];\n showHelpScreenData = false;\n chatIsLoading = false;\n ablyToken: string | null = null;\n\n isOpen = false;\n\n needsAgent = false;\n assistantStatus = 'idle';\n\n selectedOption: Option | null = null;\n selectedNestedOption: Option | null = null;\n\n showEndChatConfirmation = false;\n\n constructor(\n private apiService: ApiService,\n private translationService: TranslationService,\n private themeService: ThemeService\n ) {}\n\n ngOnInit() {\n this.showArrowAnimation = this.showArrow;\n if (!this.isIntroScreenEnabled) {\n this.showHelpScreenData = true;\n }\n\n // Initialize theme with current inputs\n this.themeService.initializeTheme(this.primaryColor, this.logoUrl);\n\n // Subscribe to language changes\n this.langSubscription = this.translationService.currentLang.subscribe(\n (lang) => {\n this.currentLang = lang;\n }\n );\n }\n\n ngOnChanges(changes: SimpleChanges) {\n // Handle primaryColor changes\n if (changes['primaryColor'] && !changes['primaryColor'].firstChange) {\n this.themeService.setPrimaryColor(this.primaryColor);\n }\n\n // Handle logoUrl changes\n if (changes['logoUrl'] && !changes['logoUrl'].firstChange) {\n this.themeService.setLogoUrl(this.logoUrl);\n }\n }\n\n ngOnDestroy() {\n // Clean up subscription\n if (this.langSubscription) {\n this.langSubscription.unsubscribe();\n }\n\n // Clean up Ably connection\n ClientAblyService.stopConnection();\n }\n\n async handleTogglePopup() {\n this.isPopupOpen = !this.isPopupOpen;\n this.showArrowAnimation = this.isPopupOpen;\n\n if (this.isPopupOpen) {\n // Reset the state when opening the popup\n if (!this.isIntroScreenEnabled) {\n this.showHelpScreenData = true;\n }\n await this.fetchHelpScreenData();\n }\n }\n\n private async fetchHelpScreenData() {\n this.status = 'loading';\n this.error = null;\n\n try {\n const response = await this.apiService.apiRequest(\n `client/clientHelpScreen/${this.helpScreenId}`,\n 'GET'\n );\n this.helpScreenData = await response.json();\n this.status = 'succeeded';\n } catch (error: any) {\n this.error = error.message;\n this.status = 'failed';\n }\n }\n\n async createChatSession(option?: Option) {\n try {\n const selectedOpt = option || this.selectedOption;\n const chatSessionCreateDto = {\n optionId: selectedOpt?.id,\n helpScreenId: this.helpScreenId,\n };\n\n const response = await this.apiService.apiRequest(\n 'Client/ClientChatSession/create-session',\n 'POST',\n chatSessionCreateDto\n );\n const data = await response.json();\n\n const { chatSession, ablyToken } = data;\n this.sessionId = chatSession?.id;\n this.ablyToken = ablyToken;\n\n // Establish Ably connection after creating session\n if (this.sessionId && selectedOpt && !this.isAblyConnected) {\n // Use the ablyToken from response or fallback to getValidToken\n const tokenToUse =\n this.ablyToken || (await this.apiService.getValidToken());\n\n // Get tenantId from the selected option's assistant\n const tenantId =\n selectedOpt.assistant?.tenantId ||\n selectedOpt.assistant?.tenant?.id ||\n '';\n\n await ClientAblyService.startConnection(\n this.sessionId,\n tokenToUse,\n this.handleReceiveMessage.bind(this),\n tenantId\n );\n\n this.isAblyConnected = true;\n }\n\n return data;\n } catch (error) {\n console.error('Error creating chat session:', error);\n throw error;\n }\n }\n\n async sendMessage(messageText?: string) {\n const textToSend = messageText || this.messageText;\n if (!textToSend.trim() || this.isChatClosed) return;\n\n try {\n this.assistantStatus = 'typing';\n\n // Add user message\n this.messages.push({\n id: Date.now(),\n sender: 'user',\n senderType: 1,\n messageContent: textToSend,\n sentAt: new Date(),\n isSeen: false,\n });\n\n if (!this.sessionId) {\n await this.createChatSession(this.selectedOption || undefined);\n }\n\n const messageDto = { messageContent: textToSend };\n await this.apiService.apiRequest(\n `Client/ClientChatSession/${this.sessionId}/send-message`,\n 'POST',\n messageDto\n );\n\n // Clear message input\n this.messageText = '';\n\n // Update message as seen\n this.messages = this.messages.map((msg) =>\n msg.senderType === 1 && !msg.isSeen ? { ...msg, isSeen: true } : msg\n );\n } catch (error) {\n console.error('Error sending message:', error);\n this.assistantStatus = 'idle';\n this.messages.push({\n id: Date.now(),\n sender: 'assistant',\n senderType: 3,\n messageContent:\n 'Failed to send the message. Please try again.\\n لم يتم إرسال الرسالة. يرجى المحاولة مرة أخرى.',\n sentAt: new Date(),\n isSeen: true,\n });\n }\n }\n\n handleReceiveMessage(\n message: string,\n senderType: string,\n needsAgent: boolean\n ) {\n if (needsAgent) {\n this.needsAgent = true;\n }\n\n const sender = this.getSenderType(parseInt(senderType));\n\n this.messages.push({\n id: Date.now(),\n sender: sender,\n senderType: parseInt(senderType),\n messageContent: message,\n sentAt: new Date(),\n isSeen: true,\n });\n\n this.assistantStatus = 'idle';\n this.scrollToBottom();\n }\n\n private getSenderType(senderType: number): 'user' | 'assistant' | 'agent' {\n switch (senderType) {\n case 1:\n return 'user';\n case 2:\n return 'agent';\n default:\n return 'assistant';\n }\n }\n\n async handleStartNewChat(option: Option) {\n this.selectedOption = option;\n this.chatIsLoading = true;\n\n try {\n // Create chat session (includes Ably connection setup)\n // Add greeting message\n this.messages.push({\n id: Date.now(),\n sender: 'assistant',\n senderType: 3,\n messageContent:\n option.assistant?.greeting ||\n (this.currentLang === 'en'\n ? 'Hello! How can I assist you today?'\n : 'مرحباً! كيف يمكنني مساعدتك اليوم؟'),\n sentAt: new Date(),\n isSeen: true,\n });\n\n // Update UI state\n this.showChat = true;\n this.isChatClosed = false;\n this.showHelpScreenData = false;\n this.chatIsLoading = false;\n } catch (error) {\n console.error('Error starting chat:', error);\n this.chatIsLoading = false;\n\n // Show error message to user\n this.messages.push({\n id: Date.now(),\n sender: 'assistant',\n senderType: 3,\n messageContent:\n 'Failed to start chat. Please try again.\\n فشل في بدء المحادثة. يرجى المحاولة مرة أخرى.',\n sentAt: new Date(),\n isSeen: true,\n });\n }\n }\n\n private async startNewChatSession(option: any) {\n try {\n this.status = 'loading';\n this.error = '';\n this.messages = [];\n\n // Use the centralized createChatSession method\n await this.createChatSession(option);\n\n this.isChatClosed = false;\n this.status = 'succeeded';\n } catch (error: any) {\n console.error('Chat start error:', error);\n this.error = error.message || 'Failed to start chat session';\n this.status = 'failed';\n }\n }\n\n async handleStartChat(option: any) {\n this.showChat = true;\n await this.startNewChatSession(option);\n }\n\n async handleEndChat() {\n this.showEndChatConfirmation = true;\n }\n\n async confirmEndChat() {\n this.showEndChatConfirmation = false;\n if (this.sessionId) {\n await this.closeChatSession(this.sessionId);\n this.sessionId = null;\n }\n\n // Stop Ably connection\n await ClientAblyService.stopConnection();\n this.isAblyConnected = false;\n\n this.showChat = false;\n this.showHelpScreenData = true;\n this.messages = [];\n this.needsAgent = false;\n this.assistantStatus = 'idle';\n this.selectedOption = null;\n this.selectedNestedOption = null;\n }\n\n cancelEndChat() {\n this.showEndChatConfirmation = false;\n }\n\n async closeChatSession(chatSessionId: string) {\n try {\n const response = await this.apiService.apiRequest(\n `Client/ClientChatSession/${chatSessionId}/close`,\n 'POST'\n );\n return await response.json();\n } catch (error) {\n console.error('Error closing chat session:', error);\n throw error;\n }\n }\n\n handleClosePopup() {\n this.showHelpScreenData = false;\n this.showChat = false;\n this.isPopupOpen = false;\n this.selectedOption = null;\n this.selectedNestedOption = null;\n }\n\n handleCloseArrowAnimation() {\n this.showArrowAnimation = false;\n }\n\n handleBack() {\n if (this.showChat) {\n this.showChat = false;\n this.showHelpScreenData = true;\n } else if (this.selectedNestedOption) {\n this.selectedNestedOption = null;\n } else if (this.selectedOption) {\n this.selectedOption = null;\n } else if (this.showHelpScreenData) {\n this.showHelpScreenData = false;\n }\n }\n\n handleShowChat() {\n this.showChat = true;\n this.showHelpScreenData = false;\n }\n\n selectOption(option: Option) {\n this.selectedOption = option;\n this.selectedNestedOption = null;\n }\n\n selectNestedOption(nestedOption: Option) {\n this.selectedNestedOption = nestedOption;\n }\n\n handleShowHelpScreenData() {\n this.showHelpScreenData = true;\n }\n\n handleHideHelpScreenData() {\n this.showHelpScreenData = false;\n }\n\n private scrollToBottom(): void {\n setTimeout(() => {\n if (this.chatMessagesContainer) {\n const element = this.chatMessagesContainer.nativeElement;\n element.scrollTop = element.scrollHeight;\n }\n });\n }\n\n getDirection() {\n return this.currentLang === 'ar' ? 'rtl' : 'ltr';\n }\n\n get helpScreenDataList() {\n if (!this.helpScreenData?.options) return [];\n // Transform options to the format expected by HelpScreenDataComponent\n return this.helpScreenData.options.map((option: any) => ({\n icon: option.icon || '/icons/default.svg',\n title: option.title,\n description: option.paragraphs?.[0] || '',\n actionLabel: option.chatWithUs ? 'Chat Now' : '',\n action: option.chatWithUs ? () => this.handleStartChat(option) : null,\n }));\n }\n\n navigateToUrl(url: string): void {\n window.open(url, '_blank');\n }\n}\n","<div class=\"help-center-container\" [dir]=\"getDirection()\">\n <!-- TEST: Version mismatch fixed - Arrow Animation - SUCCESS! -->\n <app-arrow-animation\n [showArrowAnimation]=\"showArrowAnimation\"\n [isPopupOpen]=\"isPopupOpen\"\n [messageLabel]=\"messageLabel\"\n (closeArrowAnimation)=\"handleCloseArrowAnimation()\"\n ></app-arrow-animation>\n\n <!-- Help Button -->\n <app-help-button (togglePopup)=\"handleTogglePopup()\"></app-help-button>\n\n <!-- Help Popup -->\n <app-help-popup\n [isPopupOpen]=\"isPopupOpen\"\n [showHelpScreenData]=\"showHelpScreenData\"\n [showChat]=\"showChat\"\n [status]=\"status\"\n [error]=\"error\"\n [helpScreenData]=\"helpScreenData\"\n [messages]=\"messages\"\n [needsAgent]=\"needsAgent\"\n [assistantStatus]=\"assistantStatus\"\n [isAblyConnected]=\"isAblyConnected\"\n [isChatClosed]=\"isChatClosed\"\n [currentLang]=\"currentLang\"\n [chatIsLoading]=\"chatIsLoading\"\n [sessionId]=\"sessionId\"\n [isIntroScreenEnabled]=\"isIntroScreenEnabled\"\n [selectedOption]=\"selectedOption\"\n [selectedNestedOption]=\"selectedNestedOption\"\n [showEndChatConfirmation]=\"showEndChatConfirmation\"\n (closePopup)=\"handleClosePopup()\"\n (back)=\"handleBack()\"\n (showChatEvent)=\"handleShowChat()\"\n (endChat)=\"handleEndChat()\"\n (confirmEndChat)=\"confirmEndChat()\"\n (cancelEndChat)=\"cancelEndChat()\"\n (sendMessageEvent)=\"sendMessage($event)\"\n (startNewChat)=\"handleStartNewChat($event)\"\n (showHelpScreenDataEvent)=\"handleShowHelpScreenData()\"\n (hideHelpScreenData)=\"handleHideHelpScreenData()\"\n (navigateToUrl)=\"navigateToUrl($event)\"\n ></app-help-popup>\n</div>\n","import { Injectable } from '@angular/core'\n\nexport type GetTokenFn = () => Promise<string>\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HelpCenterConfigService {\n private _apiBaseUrl: string = 'https://babylai.net/api'\n private _getTokenFn?: GetTokenFn\n\n setApiBaseUrl(url: string) {\n this._apiBaseUrl = url\n }\n\n getApiBaseUrl(): string {\n return this._apiBaseUrl\n }\n\n setGetTokenFn(fn: GetTokenFn) {\n this._getTokenFn = fn\n }\n\n getTokenFn(): GetTokenFn | undefined {\n return this._getTokenFn\n }\n}\n","import { Injectable } from '@angular/core'\nimport { HelpCenterConfigService } from './help-center-config.service'\nimport { TokenResponse } from '../types'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TokenService {\n constructor(private config: HelpCenterConfigService) {}\n\n async getToken(): Promise<TokenResponse> {\n // If a custom token function is provided, use it\n const customGetToken = this.config.getTokenFn()\n if (customGetToken) {\n const token = await customGetToken()\n return {\n token,\n expiresIn: 3600 // Default to 1 hour\n }\n }\n\n // Otherwise, return error that getTokenFn is not provided\n throw new Error('getTokenFn is not provided')\n }\n}\n","// src/app/language.service.ts\nimport { Injectable } from '@angular/core'\nimport { TranslationService } from './services/translation.service'\nimport { Language } from './types'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LanguageService {\n constructor(private translationService: TranslationService) {}\n\n switchLanguage(language: Language) {\n this.translationService.setLanguage(language)\n }\n\n getCurrentLang(): Language {\n return this.translationService.getCurrentLang()\n }\n}\n","// Types\nexport * from './src/app/types';\n\n// API Configuration Types\nexport interface ApiConfig {\n getToken: () => Promise<string>;\n baseUrl?: string;\n}\n\n// Components and Modules\nexport * from './src/app/help-center-widget/help-center-widget.component';\n\n// Services\nexport * from './src/app/services/help-center-config.service';\nexport * from './src/app/services/api.service';\nexport * from './src/app/services/token.service';\nexport * from './src/app/services/translation.service';\nexport * from './src/app/language.service';\n\n// Pipes\nexport * from './src/app/pipes/translate.pipe';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.ApiService","i2.TranslationService","i3.ThemeService","i1.HelpCenterConfigService","i1.TranslationService"],"mappings":";;;;;;;;;;;;;;;MAEa,iBAAiB,CAAA;AACpB,IAAA,OAAO,MAAM,GAAyB,IAAI;AAC1C,IAAA,OAAO,OAAO,GAAgC,IAAI;AAClD,IAAA,OAAO,WAAW,GAAY,KAAK;AACnC,IAAA,OAAO,SAAS,GAAkB,IAAI;AACtC,IAAA,OAAO,kBAAkB,GAAwB,IAAI;IAE7D,aAAa,eAAe,CAC1B,SAAiB,EACjB,SAAiB,EACjB,iBAA2B,EAC3B,QAAgB,EAAA;;QAGhB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YACpD;QACF;;QAGA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;AACpD,YAAA,MAAM,IAAI,CAAC,cAAc,EAAE;QAC7B;AAEA,QAAA,IAAI;;AAEF,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC;AAC9B,gBAAA,OAAO,EAAE,SAAS;AAClB,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,WAAW,EAAE,IAAI;AAClB,aAAA,CAAC;;YAGF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,KAAI;AAC1C,gBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,oBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;oBACrD;gBACF;gBAEA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,MAAK;AAC5C,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,oBAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,oBAAA,OAAO,EAAE;AACX,gBAAA,CAAC,CAAC;AAEF,gBAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,KAAI;AACpD,oBAAA,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,WAAW,CAAC;AACrD,oBAAA,MAAM,CACJ,IAAI,KAAK,CACP,2BACE,WAAW,CAAC,MAAM,EAAE,OAAO,IAAI,eACjC,CAAA,CAAE,CACH,CACF;AACH,gBAAA,CAAC,CAAC;AAEF,gBAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,WAAW,KAAI;AAC1D,oBAAA,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,WAAW,CAAC;AAC3D,oBAAA,MAAM,CACJ,IAAI,KAAK,CACP,iCACE,WAAW,CAAC,MAAM,EAAE,OAAO,IAAI,eACjC,CAAA,CAAE,CACH,CACF;AACH,gBAAA,CAAC,CAAC;;gBAGF,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,wBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;oBAC9C;gBACF,CAAC,EAAE,KAAK,CAAC;AACX,YAAA,CAAC,CAAC;;YAGF,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,iBAAiB,EAAE,QAAQ,CAAC;QAChE;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC;AAC3D,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,YAAA,MAAM,KAAK;QACb;IACF;IAEQ,aAAa,WAAW,CAC9B,SAAiB,EACjB,iBAA2B,EAC3B,QAAgB,EAAA;AAEhB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,YAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;QAChD;AAEA,QAAA,MAAM,QAAQ,GAAG,CAAA,QAAA,EAAW,QAAQ,CAAA,CAAA,EAAI,SAAS,EAAE;;AAGnD,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;;YAGjD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,OAAO,KAAI;AACnD,gBAAA,IAAI;AACF,oBAAA,MAAM,cAAc,GAClB,OAAO,OAAO,CAAC,IAAI,KAAK;0BACpB,OAAO,CAAC;AACV,0BAAE,OAAO,CAAC,IAAI,EAAE,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO;oBACpD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,UAAU,IAAI,CAAC,CAAC;oBACjD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,UAAU,IAAI,KAAK;AAEpD,oBAAA,iBAAiB,CAAC,cAAc,EAAE,UAAU,EAAE,UAAU,CAAC;gBAC3D;gBAAE,OAAO,KAAK,EAAE;AACd,oBAAA,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC;gBAC1D;AACF,YAAA,CAAC,CAAC;AAEF,YAAA,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QAC7B;IACF;IAEA,aAAa,cAAc,GAAA;AACzB,QAAA,IAAI;;AAEF,YAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBAC3B,IAAI,CAAC,kBAAkB,EAAE;AACzB,gBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;YAChC;;AAGA,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,gBAAA,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;AAC1B,gBAAA,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AAC3B,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI;YACrB;;AAGA,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACnB,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;YACpB;AAEA,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACvB;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC;;AAEvD,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;QAChC;IACF;AAEA,IAAA,OAAO,kBAAkB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,KAAK,WAAW;IAC1E;AAEA,IAAA,OAAO,kBAAkB,GAAA;QACvB,OAAO,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,IAAI,cAAc;IACxD;;IAGA,aAAa,WAAW,CAAC,cAAsB,EAAE,aAAqB,CAAC,EAAA;QACrE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACtC,YAAA,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC;QAC1C;AAEA,QAAA,IAAI;AACF,YAAA,MAAM,WAAW,GAAG;AAClB,gBAAA,IAAI,EAAE,cAAc;AACpB,gBAAA,QAAQ,EAAE;oBACR,UAAU;AACV,oBAAA,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACjC,iBAAA;aACF;YAED,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC;QACpD;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC;AAC9C,YAAA,MAAM,KAAK;QACb;IACF;;;MC7KW,uBAAuB,CAAA;IACzB,kBAAkB,GAAY,KAAK;IACnC,WAAW,GAAY,KAAK;IAC5B,YAAY,GAAkB,IAAI;AACjC,IAAA,mBAAmB,GAAG,IAAI,YAAY,EAAQ;IAExD,yBAAyB,GAAA;AACvB,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE;IACjC;uGARW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVpC,2lBAsBA,EAAA,MAAA,EAAA,CAAA,woCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDdY,YAAY,EAAA,CAAA,EAAA,CAAA;;2FAEX,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,UAAA,EAGnB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,2lBAAA,EAAA,MAAA,EAAA,CAAA,woCAAA,CAAA,EAAA;8BAGd,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACS,mBAAmB,EAAA,CAAA;sBAA5B;;;MEJU,mBAAmB,CAAA;AACpB,IAAA,WAAW,GAAG,IAAI,YAAY,EAAQ;IAEhD,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;IACzB;uGALW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVhC,uuEA2BA,EAAA,MAAA,EAAA,CAAA,koBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDnBY,YAAY,EAAA,CAAA,EAAA,CAAA;;2FAEX,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,UAAA,EAGf,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,uuEAAA,EAAA,MAAA,EAAA,CAAA,koBAAA,CAAA,EAAA;8BAGb,WAAW,EAAA,CAAA;sBAApB;;;AEXH;MA0Ba,kBAAkB,CAAA;AACrB,IAAA,YAAY,GAAG;AACrB,QAAA,EAAE,EAAE;AACF,YAAA,gBAAgB,EAAE,sBAAsB;AACxC,YAAA,YAAY,EAAE,SAAS;AACvB,YAAA,kBAAkB,EAAE,gDAAgD;AACpE,YAAA,OAAO,EAAE,UAAU;AACnB,YAAA,UAAU,EAAE,yBAAyB;AACrC,YAAA,SAAS,EAAE,4BAA4B;AACvC,YAAA,cAAc,EAAE,6BAA6B;AAC7C,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,eAAe,EAAE,sBAAsB;AACvC,YAAA,gBAAgB,EAAE,2BAA2B;AAC7C,YAAA,OAAO,EAAE,UAAU;AACnB,YAAA,kBAAkB,EAAE,qBAAqB;AACzC,YAAA,iBAAiB,EAAE,+FAA+F;AAClH,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,KAAK,EAAE;AACR,SAAA;AACD,QAAA,EAAE,EAAE;AACF,YAAA,gBAAgB,EAAE,oBAAoB;AACtC,YAAA,YAAY,EAAE,SAAS;AACvB,YAAA,kBAAkB,EAAE,qCAAqC;AACzD,YAAA,OAAO,EAAE,WAAW;AACpB,YAAA,UAAU,EAAE,sBAAsB;AAClC,YAAA,SAAS,EAAE,4BAA4B;AACvC,YAAA,cAAc,EAAE,kBAAkB;AAClC,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,eAAe,EAAE,gBAAgB;AACjC,YAAA,gBAAgB,EAAE,yBAAyB;AAC3C,YAAA,OAAO,EAAE,eAAe;AACxB,YAAA,kBAAkB,EAAE,qBAAqB;AACzC,YAAA,iBAAiB,EAAE,yFAAyF;AAC5G,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,KAAK,EAAE;AACR;KACF;AAEO,IAAA,YAAY,GAAG,IAAI,eAAe,CAAW,IAAI,CAAC;AAC1C,IAAA,WAAW,GAAyB,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;AAEpF,IAAA,WAAA,GAAA,EAAe;AAEf,IAAA,SAAS,CAAC,GAAmB,EAAA;AAC3B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,KAAiB;QAChD,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG;IAC5C;AAEA,IAAA,WAAW,CAAC,IAAc,EAAA;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B;IAEA,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK;IAChC;uGAxDW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA;;2FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACzBD;MAQa,aAAa,CAAA;AAChB,IAAA,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAuB;AAE7E,IAAA,SAAS,CAAC,GAAmB,EAAA;QAC3B,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC;IAC/C;uGALW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;qGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCgBY,eAAe,CAAA;IACjB,OAAO,GAAkB,SAAS;IAClC,IAAI,GAAe,QAAQ;IAC3B,QAAQ,GAAG,KAAK;IAChB,SAAS,GAAG,KAAK;IACjB,SAAS,GAAG,EAAE;IACd,IAAI,GAAmC,SAAS;IAChD,SAAS,GAAkB,KAAK;AAC/B,IAAA,OAAO,GAAG,IAAI,YAAY,EAAc;IAElD,gBAAgB,GAAA;AACd,QAAA,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC;;QAG1B,OAAO,CAAC,IAAI,CAAC,CAAA,QAAA,EAAW,IAAI,CAAC,OAAO,CAAA,CAAE,CAAC;;AAGvC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC;QACpC;;AAGA,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,OAAO,CAAC,IAAI,CAAC,CAAA,QAAA,EAAW,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC;QACtC;;QAGA,OAAO,CAAC,IAAI,CAAC,CAAA,QAAA,EAAW,IAAI,CAAC,SAAS,CAAA,CAAE,CAAC;;AAGzC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QAC9B;AAEA,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1B;uGAnCW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAZhB;;;;;;;;;;AAUT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,22DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAZS,YAAY,EAAA,CAAA,EAAA,CAAA;;2FAcX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAjB3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,cACV,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAEb;;;;;;;;;;AAUT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,22DAAA,CAAA,EAAA;8BAGQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACS,OAAO,EAAA,CAAA;sBAAhB;;MAoCU,sBAAsB,CAAA;uGAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAFvB,CAAA,2BAAA,CAA6B,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAD7B,YAAY,EAAA,CAAA,EAAA,CAAA;;2FAGX,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,QAAQ,EAAE,CAAA,2BAAA,CAA6B;AACxC,iBAAA;;MAkBY,mBAAmB,CAAA;IACrB,SAAS,GAAG,EAAE;IACd,QAAQ,GAAG,KAAK;AACf,IAAA,OAAO,GAAG,IAAI,YAAY,EAAc;uGAHvC,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAXpB;;;;;;;;;GAST,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAVS,YAAY,+BAjDX,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FA6Df,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAf/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC;AACxC,oBAAA,QAAQ,EAAE;;;;;;;;;AAST,EAAA,CAAA;AACF,iBAAA;8BAEU,SAAS,EAAA,CAAA;sBAAjB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACS,OAAO,EAAA,CAAA;sBAAhB;;MAkBU,8BAA8B,CAAA;IAChC,SAAS,GAAG,EAAE;IACd,QAAQ,GAAG,KAAK;AACf,IAAA,OAAO,GAAG,IAAI,YAAY,EAAc;uGAHvC,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA9B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAX/B;;;;;;;;;GAST,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAVS,YAAY,+BAtEX,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAkFf,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAf1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC;AACxC,oBAAA,QAAQ,EAAE;;;;;;;;;AAST,EAAA,CAAA;AACF,iBAAA;8BAEU,SAAS,EAAA,CAAA;sBAAjB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACS,OAAO,EAAA,CAAA;sBAAhB;;;MCjGU,aAAa,CAAA;IACf,OAAO,GAAuC,SAAS;IACvD,KAAK,GAAG,EAAE;AAEnB,IAAA,IACI,WAAW,GAAA;AACb,QAAA,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,CAAA,MAAA,EAAS,IAAI,CAAC,OAAO,CAAA,CAAE,CAAC;AACrC,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1B;AACA,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1B;uGAZW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAHd,CAAA,yBAAA,CAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,owBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAF3B,YAAY,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAKX,aAAa,EAAA,UAAA,EAAA,CAAA;kBARzB,SAAS;+BACE,UAAU,EAAA,UAAA,EACR,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAEb,CAAA,yBAAA,CAA2B,EAAA,aAAA,EACtB,iBAAiB,CAAC,IAAI,EAAA,MAAA,EAAA,CAAA,owBAAA,CAAA,EAAA;8BAG5B,OAAO,EAAA,CAAA;sBAAf;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBAGG,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,OAAO;;MAmBT,mBAAmB,CAAA;IACrB,KAAK,GAAG,EAAE;AAEnB,IAAA,IACI,WAAW,GAAA;AACb,QAAA,MAAM,OAAO,GAAG,CAAC,cAAc,CAAC;AAChC,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1B;AACA,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1B;uGAVW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAHpB,CAAA,yBAAA,CAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,owBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAF3B,YAAY,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAKX,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAR/B,SAAS;+BACE,iBAAiB,EAAA,UAAA,EACf,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAEb,CAAA,yBAAA,CAA2B,EAAA,aAAA,EACtB,iBAAiB,CAAC,IAAI,EAAA,MAAA,EAAA,CAAA,owBAAA,CAAA,EAAA;8BAG5B,KAAK,EAAA,CAAA;sBAAb;gBAGG,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,OAAO;;MAkBT,kBAAkB,CAAA;IACpB,KAAK,GAAG,EAAE;AAEnB,IAAA,IACI,WAAW,GAAA;AACb,QAAA,MAAM,OAAO,GAAG,CAAC,aAAa,CAAC;AAC/B,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1B;AACA,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1B;uGAVW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAHnB,CAAA,yBAAA,CAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,owBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAF3B,YAAY,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAKX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR9B,SAAS;+BACE,gBAAgB,EAAA,UAAA,EACd,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAEb,CAAA,yBAAA,CAA2B,EAAA,aAAA,EACtB,iBAAiB,CAAC,IAAI,EAAA,MAAA,EAAA,CAAA,owBAAA,CAAA,EAAA;8BAG5B,KAAK,EAAA,CAAA;sBAAb;gBAGG,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,OAAO;;MAkBT,wBAAwB,CAAA;IAC1B,KAAK,GAAG,EAAE;AAEnB,IAAA,IACI,WAAW,GAAA;AACb,QAAA,MAAM,OAAO,GAAG,CAAC,mBAAmB,CAAC;AACrC,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1B;AACA,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1B;uGAVW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAHzB,CAAA,yBAAA,CAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,owBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAF3B,YAAY,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAKX,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBARpC,SAAS;+BACE,sBAAsB,EAAA,UAAA,EACpB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAEb,CAAA,yBAAA,CAA2B,EAAA,aAAA,EACtB,iBAAiB,CAAC,IAAI,EAAA,MAAA,EAAA,CAAA,owBAAA,CAAA,EAAA;8BAG5B,KAAK,EAAA,CAAA;sBAAb;gBAGG,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,OAAO;;MAkBT,oBAAoB,CAAA;IACtB,KAAK,GAAG,EAAE;AAEnB,IAAA,IACI,WAAW,GAAA;AACb,QAAA,MAAM,OAAO,GAAG,CAAC,eAAe,CAAC;AACjC,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1B;AACA,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1B;uGAVW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAHrB,CAAA,yBAAA,CAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,owBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAF3B,YAAY,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAKX,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBARhC,SAAS;+BACE,kBAAkB,EAAA,UAAA,EAChB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAEb,CAAA,yBAAA,CAA2B,EAAA,aAAA,EACtB,iBAAiB,CAAC,IAAI,EAAA,MAAA,EAAA,CAAA,owBAAA,CAAA,EAAA;8BAG5B,KAAK,EAAA,CAAA;sBAAb;gBAGG,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,OAAO;;MAkBT,mBAAmB,CAAA;IACrB,KAAK,GAAG,EAAE;AAEnB,IAAA,IACI,WAAW,GAAA;AACb,QAAA,MAAM,OAAO,GAAG,CAAC,cAAc,CAAC;AAChC,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1B;AACA,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1B;uGAVW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAHpB,CAAA,yBAAA,CAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,owBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAF3B,YAAY,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAKX,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAR/B,SAAS;+BACE,iBAAiB,EAAA,UAAA,EACf,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAEb,CAAA,yBAAA,CAA2B,EAAA,aAAA,EACtB,iBAAiB,CAAC,IAAI,EAAA,MAAA,EAAA,CAAA,owBAAA,CAAA,EAAA;8BAG5B,KAAK,EAAA,CAAA;sBAAb;gBAGG,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,OAAO;;;MClET,uBAAuB,CAAA;IACzB,cAAc,GAA0B,IAAI;IAC5C,KAAK,GAAW,EAAE;AACjB,IAAA,kBAAkB,GAAG,IAAI,YAAY,EAAoB;IAEnE,cAAc,GAAkB,IAAI;AAEpC,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO;AAAE,YAAA,OAAO,EAAE;;AAE5C,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAW,MAAM;AACvD,YAAA,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,0BAA0B;YAC/C,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,EAAE;YACzC,WAAW,EAAE,MAAM,CAAC,UAAU,GAAG,UAAU,GAAG,EAAE;AAChD,YAAA,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG;AAClE,SAAA,CAAC,CAAC;IACL;AAEA,IAAA,QAAQ,KAAI;AAEZ,IAAA,YAAY,CAAC,MAAc,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,cAAc,KAAK,MAAM,EAAE;AAClC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;QAC5B;aAAO;AACL,YAAA,IAAI,CAAC,cAAc,GAAG,MAAM;YAC5B,UAAU,CAAC,MAAK;gBACd,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC;gBAC/C,IAAI,OAAO,EAAE;AACX,oBAAA,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBAClE;YACF,CAAC,EAAE,GAAG,CAAC;QACT;IACF;AAEA,IAAA,eAAe,CAAC,MAAwB,EAAA;AACtC,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;IACtC;uGArCW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvDpC,iyDA2CM,EAAA,MAAA,EAAA,CAAA,wiDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDQM,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAIhF,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAAA,UAAA,EACpB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,iyDAAA,EAAA,MAAA,EAAA,CAAA,wiDAAA,CAAA,EAAA;8BAKnF,cAAc,EAAA,CAAA;sBAAtB;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACS,kBAAkB,EAAA,CAAA;sBAA3B;;;ME9CU,gBAAgB,CAAA;IAClB,OAAO,GAA0B,SAAS;uGADxC,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAPjB;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,ywBAAA,CAAA,EAAA,CAAA;;2FAGU,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAV5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAAA,QAAA,EAEb;;;;AAIT,EAAA,CAAA,EAAA,UAAA,EACW,IAAI,EAAA,MAAA,EAAA,CAAA,ywBAAA,CAAA,EAAA;8BAGP,OAAO,EAAA,CAAA;sBAAf;;;MCKU,yBAAyB,CAAA;IAC3B,OAAO,GAAW,EAAE;IACpB,MAAM,GAAY,KAAK;IACvB,QAAQ,GAAW,EAAE;IACrB,GAAG,GAAW,KAAK;AACI,IAAA,iBAAiB;IAEjD,eAAe,GAAW,EAAE;IAE5B,QAAQ,GAAA;QACN,IAAI,CAAC,aAAa,EAAE;IACtB;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,aAAa,EAAE;IACtB;IAEQ,aAAa,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI;gBACF,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAW;YAC7D;YAAE,OAAO,CAAC,EAAE;AACV,gBAAA,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC;AAC1C,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO;YACrC;QACF;aAAO;AACL,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO;QACrC;IACF;IAEQ,aAAa,GAAA;QACnB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAK,MAAc,CAAC,KAAK,EAAE;AAC1D,YAAA,MAAM,KAAK,GAAI,MAAc,CAAC,KAAK;AACnC,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,aAAa,EAAE;gBACzC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC;YAC/D;QACF;IACF;uGArCW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAV1B;;;;;;;AAOT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EARS,YAAY,EAAA,CAAA,EAAA,CAAA;;2FAWX,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAdrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,cACrB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EACb;;;;;;;AAOT,EAAA,CAAA,EAAA;8BAIQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,GAAG,EAAA,CAAA;sBAAX;gBAC+B,iBAAiB,EAAA,CAAA;sBAAhD,SAAS;uBAAC,mBAAmB;;;MCbnB,mBAAmB,CAAA;IACrB,UAAU,GAAW,CAAC;IACtB,UAAU,GAAY,KAAK;IAC3B,QAAQ,GAAY,KAAK;uGAHvB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVhC,gpGAkDA,EAAA,MAAA,EAAA,CAAA,6YAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED5CY,YAAY,EAAA,CAAA,EAAA,CAAA;;2FAIX,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,UAAA,EACf,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,gpGAAA,EAAA,MAAA,EAAA,CAAA,6YAAA,CAAA,EAAA;8BAKd,UAAU,EAAA,CAAA;sBAAlB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;;;MEUU,oBAAoB,CAAA;AACtB,IAAA,OAAO;IACP,UAAU,GAAY,KAAK;IAC3B,WAAW,GAAW,IAAI;IAC1B,QAAQ,GAAY,KAAK;AAElC,IAAA,mBAAmB,CAAC,OAAe,EAAA;QACjC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7C;uGARW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvBjC,g4BA+BA,EAAA,MAAA,EAAA,CAAA,m5BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDjBI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACpB,yBAAyB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACzB,mBAAmB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKV,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAbhC,SAAS;+BACE,kBAAkB,EAAA,UAAA,EAChB,IAAI,EAAA,OAAA,EACP;wBACP,YAAY;wBACZ,aAAa;wBACb,oBAAoB;wBACpB,yBAAyB;wBACzB,mBAAmB;AACpB,qBAAA,EAAA,QAAA,EAAA,g4BAAA,EAAA,MAAA,EAAA,CAAA,m5BAAA,CAAA,EAAA;8BAKQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;;;MEjBU,sBAAsB,CAAA;uGAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVnC,+jDAgBA,EAAA,MAAA,EAAA,CAAA,4GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDVY,YAAY,EAAA,CAAA,EAAA,CAAA;;2FAIX,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAAA,UAAA,EAClB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,+jDAAA,EAAA,MAAA,EAAA,CAAA,4GAAA,CAAA,EAAA;;;MEMZ,4BAA4B,CAAA;uGAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZzC,qaAeA,EAAA,MAAA,EAAA,CAAA,ggBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDPY,YAAY,+BAAE,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIrE,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;+BACE,2BAA2B,EAAA,UAAA,EACzB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,qaAAA,EAAA,MAAA,EAAA,CAAA,ggBAAA,CAAA,EAAA;;;MEItE,kBAAkB,CAAA;IACpB,YAAY,GAAY,KAAK;IAC7B,eAAe,GAAW,EAAE;IAC5B,WAAW,GAAW,IAAI;AACzB,IAAA,WAAW,GAAG,IAAI,YAAY,EAAU;AACvB,IAAA,YAAY;IAEvC,cAAc,GAAG,EAAE;IAEnB,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,eAAe,KAAK,QAAQ;YAAE;QACtE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;AAC1C,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;QACxB,IAAI,CAAC,oBAAoB,EAAE;IAC7B;IAEA,oBAAoB,GAAA;AAClB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa;QACjD,IAAI,QAAQ,EAAE;AACZ,YAAA,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;YAC9B,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,YAAY,GAAG,IAAI;QACtD;IACF;uGAtBW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,2UCZ/B,40CAiCA,EAAA,MAAA,EAAA,CAAA,umCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDzBY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,+iCAAE,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAIvC,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;+BACE,gBAAgB,EAAA,UAAA,EACd,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,WAAW,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,40CAAA,EAAA,MAAA,EAAA,CAAA,umCAAA,CAAA,EAAA;8BAK1C,YAAY,EAAA,CAAA;sBAApB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACS,WAAW,EAAA,CAAA;sBAApB;gBAC0B,YAAY,EAAA,CAAA;sBAAtC,SAAS;uBAAC,cAAc;;;MEuBd,aAAa,CAAA;IACf,QAAQ,GAAc,EAAE;IACxB,UAAU,GAAY,KAAK;IAC3B,eAAe,GAAW,EAAE;IAC5B,eAAe,GAAY,KAAK;IAChC,YAAY,GAAY,KAAK;IAC7B,WAAW,GAAW,IAAI;IAC1B,OAAO,GAAY,KAAK;AACvB,IAAA,gBAAgB,GAAG,IAAI,YAAY,EAAU;AACnB,IAAA,qBAAqB;IAEzD,sBAAsB,GAAG,CAAC,CAAC;IAE3B,QAAQ,GAAA;QACN,IAAI,CAAC,0BAA0B,EAAE;IACnC;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;YACvB,IAAI,CAAC,0BAA0B,EAAE;QACnC;IACF;IAEA,0BAA0B,GAAA;;AAExB,QAAA,IAAI,IAAI,CAAC,sBAAsB,KAAK,CAAC,CAAC,EAAE;YACtC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CACnD,CAAC,OAAO,KAAK,OAAO,CAAC,UAAU,KAAK,CAAC,CACtC;QACH;IACF;AAEA,IAAA,iBAAiB,CAAC,OAAe,EAAA;AAC/B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;IACrC;IAEA,kBAAkB,GAAA;QAChB,IAAI,CAAC,cAAc,EAAE;IACvB;IAEA,cAAc,GAAA;AACZ,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,SAAS;AAChD,gBAAA,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,YAAY;QACzD;QAAE,OAAO,GAAG,EAAE;AACZ,YAAA,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC;QAClD;IACF;AAEA,IAAA,uBAAuB,CAAC,QAAe,EAAA;QACrC,OAAO,QAAQ,CAAC,IAAI,CAClB,CAAC,OAAO,KAAK,OAAO,CAAC,UAAU,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,KAAK,CAAC,CAClE;IACH;uGArDW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxC1B,26BAyBA,EAAA,MAAA,EAAA,CAAA,oUAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDKI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,gBAAgB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACpB,sBAAsB,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,4BAA4B,sEAC5B,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKT,aAAa,EAAA,UAAA,EAAA,CAAA;kBAdzB,SAAS;+BACE,UAAU,EAAA,UAAA,EACR,IAAI,EAAA,OAAA,EACP;wBACP,YAAY;wBACZ,gBAAgB;wBAChB,oBAAoB;wBACpB,sBAAsB;wBACtB,4BAA4B;wBAC5B,kBAAkB;AACnB,qBAAA,EAAA,QAAA,EAAA,26BAAA,EAAA,MAAA,EAAA,CAAA,oUAAA,CAAA,EAAA;8BAKQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACS,gBAAgB,EAAA,CAAA;sBAAzB;gBACmC,qBAAqB,EAAA,CAAA;sBAAxD,SAAS;uBAAC,uBAAuB;;;MEvBvB,2BAA2B,CAAA;IAC7B,KAAK,GAAW,EAAE;IAClB,IAAI,GAAW,EAAE;IACjB,WAAW,GAAW,SAAS;IAC/B,UAAU,GAAW,QAAQ;AAC5B,IAAA,SAAS,GAAG,IAAI,YAAY,EAAQ;AACpC,IAAA,QAAQ,GAAG,IAAI,YAAY,EAAQ;uGANlC,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAjB5B;;;;;;;;;;;;;;;GAeT,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,o4BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAjBS,YAAY,+BAAE,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAmB5B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAtBvC,SAAS;+BACE,yBAAyB,EAAA,UAAA,EACvB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,eAAe,CAAC,EAAA,QAAA,EAE9B;;;;;;;;;;;;;;;AAeT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,o4BAAA,CAAA,EAAA;8BAGQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACS,SAAS,EAAA,CAAA;sBAAlB;gBACS,QAAQ,EAAA,CAAA;sBAAjB;;;MCVU,qBAAqB,CAAA;IACvB,WAAW,GAAW,IAAI;AACzB,IAAA,kBAAkB,GAAG,IAAI,YAAY,EAAQ;AAC7C,IAAA,aAAa,GAAG,IAAI,YAAY,EAAU;IAEpD,wBAAwB,GAAA;AACtB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;IAChC;AAEA,IAAA,mBAAmB,CAAC,GAAW,EAAA;AAC7B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;IAC9B;uGAXW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtBlC,0mKAsHA,EAAA,MAAA,EAAA,CAAA,y6CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDvGI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAEZ,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACpB,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAHf,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAMJ,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAbjC,SAAS;+BACE,mBAAmB,EAAA,UAAA,EAGjB,IAAI,EAAA,OAAA,EACP;wBACP,YAAY;wBACZ,aAAa;wBACb,aAAa;wBACb,oBAAoB;wBACpB,eAAe;AAChB,qBAAA,EAAA,QAAA,EAAA,0mKAAA,EAAA,MAAA,EAAA,CAAA,y6CAAA,CAAA,EAAA;8BAGQ,WAAW,EAAA,CAAA;sBAAnB;gBACS,kBAAkB,EAAA,CAAA;sBAA3B;gBACS,aAAa,EAAA,CAAA;sBAAtB;;;MEdU,eAAe,CAAA;IACjB,kBAAkB,GAAY,KAAK;IACnC,QAAQ,GAAY,KAAK;uGAFvB,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECX5B,2PAUA,EAAA,MAAA,EAAA,CAAA,yOAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDDY,YAAY,wHAAE,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAE1B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,cAGV,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,2PAAA,EAAA,MAAA,EAAA,CAAA,yOAAA,CAAA,EAAA;8BAG7B,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;;;MEFU,mBAAmB,CAAA;IACrB,QAAQ,GAAG,IAAI;IACf,IAAI,GAAmC,SAAS;AAC/C,IAAA,MAAM,GAAG,IAAI,YAAY,EAAQ;AAE3C,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI;IAC/B;uGAPW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXhC,8mBAyBA,EAAA,MAAA,EAAA,CAAA,8FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDlBY,YAAY,+BAAE,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAI5B,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,cACf,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,8mBAAA,EAAA,MAAA,EAAA,CAAA,8FAAA,CAAA,EAAA;8BAK/B,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACS,MAAM,EAAA,CAAA;sBAAf;;;MEHU,oBAAoB,CAAA;IACtB,QAAQ,GAAG,IAAI;AACd,IAAA,OAAO,GAAG,IAAI,YAAY,EAAQ;AAE5C,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI;IAC/B;uGANW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXjC,4uBAqBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDdY,YAAY,+BAAE,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAI5B,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,cAChB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,4uBAAA,EAAA;8BAK/B,QAAQ,EAAA,CAAA;sBAAhB;gBACS,OAAO,EAAA,CAAA;sBAAhB;;;MEFU,0BAA0B,CAAA;AAC3B,IAAA,OAAO,GAAG,IAAI,YAAY,EAAQ;uGADjC,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXvC,yrBAoBA,EAAA,MAAA,EAAA,CAAA,wDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDbY,YAAY,+BAAE,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAI5B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,cACvB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,yrBAAA,EAAA,MAAA,EAAA,CAAA,wDAAA,CAAA,EAAA;8BAK9B,OAAO,EAAA,CAAA;sBAAhB;;;MEPU,YAAY,CAAA;IACf,YAAY,GAAW,SAAS;IAChC,OAAO,GAAW,WAAW;AAErC,IAAA,WAAA,GAAA,EAAe;AAEf,IAAA,eAAe,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QACzB,IAAI,CAAC,kBAAkB,EAAE;IAC3B;AAEA,IAAA,UAAU,CAAC,GAAW,EAAA;AACpB,QAAA,IAAI,CAAC,OAAO,GAAG,GAAG;IACpB;IAEA,eAAe,GAAA;QACb,OAAO,IAAI,CAAC,YAAY;IAC1B;IAEA,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,OAAO;IACrB;IAEQ,kBAAkB,GAAA;AACxB,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe;;QAGrC,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC;;QAGvE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,yBAAyB,EAAE,IAAI,CAAC,YAAY,CAAC;AACpE,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,6BAA6B,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;AAC3E,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,6BAA6B,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;AAC3E,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,6BAA6B,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;AAC3E,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,6BAA6B,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;AAC3E,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,6BAA6B,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;AAC3E,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,6BAA6B,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;AAC3E,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,6BAA6B,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;AAC3E,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,6BAA6B,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;AAC3E,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,6BAA6B,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;AAC3E,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,6BAA6B,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;IAC7E;AAEQ,IAAA,uBAAuB,CAAC,SAAiB,EAAA;;QAI/C,MAAM,UAAU,GAA8B,EAAE;AAEhD,QAAA,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC;AACpD,QAAA,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC;AACpD,QAAA,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC;AACpD,QAAA,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC;AACpD,QAAA,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;AAC5B,QAAA,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC;AACnD,QAAA,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC;AACnD,QAAA,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC;AACnD,QAAA,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC;AACnD,QAAA,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC;AAEnD,QAAA,OAAO,UAAU;IACnB;AAEA;;AAEG;IACK,YAAY,CAAC,KAAa,EAAE,MAAc,EAAA;QAChD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;AAClC,QAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAC3C,QAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAC3C,QAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;;AAG3C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC;AAC/C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC;AAC/C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC;AAE/C,QAAA,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;IAC3H;AAEA;;AAEG;IACK,WAAW,CAAC,KAAa,EAAE,MAAc,EAAA;QAC/C,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;AAClC,QAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAC3C,QAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAC3C,QAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;;AAG3C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;AACzC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;AACzC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;AAEzC,QAAA,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;IAC3H;IAEA,eAAe,CAAC,YAAoB,EAAE,OAAe,EAAA;AACnD,QAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;AAClC,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;IAC1B;uGApGW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA;;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCOY,aAAa,CAAA;IACf,QAAQ,GAAG,IAAI;IACf,IAAI,GAAwB,SAAS;IAC9C,OAAO,GAAW,WAAW;AACrB,IAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AAE3C,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;IACvC;uGARW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECX1B,gWAiBA,EAAA,MAAA,EAAA,CAAA,4FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDVY,YAAY,EAAA,CAAA,EAAA,CAAA;;2FAIX,aAAa,EAAA,UAAA,EAAA,CAAA;kBAPzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAAA,UAAA,EACR,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,gWAAA,EAAA,MAAA,EAAA,CAAA,4FAAA,CAAA,EAAA;8BAKd,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;;;MESU,eAAe,CAAA;IACjB,UAAU,GAAe,UAAU;IACnC,cAAc,GAAG,KAAK;IACtB,QAAQ,GAAG,IAAI;IACf,QAAQ,GAAG,IAAI;IACf,eAAe,GAAG,KAAK;AACtB,IAAA,MAAM,GAAG,IAAI,YAAY,EAAQ;AACjC,IAAA,OAAO,GAAG,IAAI,YAAY,EAAQ;AAE5C,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI;IAC/B;uGAXW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtB5B,kjBAwBA,EAAA,MAAA,EAAA,CAAA,wUAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDXI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,mBAAmB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACpB,0BAA0B,EAAA,QAAA,EAAA,yBAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC1B,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKJ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAb3B,SAAS;+BACE,YAAY,EAAA,UAAA,EACV,IAAI,EAAA,OAAA,EACP;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,oBAAoB;wBACpB,0BAA0B;wBAC1B,aAAa;AACd,qBAAA,EAAA,QAAA,EAAA,kjBAAA,EAAA,MAAA,EAAA,CAAA,wUAAA,CAAA,EAAA;8BAKQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACS,MAAM,EAAA,CAAA;sBAAf;gBACS,OAAO,EAAA,CAAA;sBAAhB;;;MEjBU,qBAAqB,CAAA;IAChC,UAAU,GAAG,KAAK;IACT,QAAQ,GAAG,IAAI;AACd,IAAA,OAAO,GAAG,IAAI,YAAY,EAAQ;AAE5C,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI;IAC/B;AAGA,IAAA,eAAe,CAAC,KAAiB,EAAA;AAC/B,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB;QAC1C,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC;AAC7D,QAAA,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,EAAE;AACrC,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;QACzB;IACF;uGAhBW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,sNCZlC,2hEAqCA,EAAA,MAAA,EAAA,CAAA,yrBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED7BY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,gKAAE,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAI3C,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;+BACE,mBAAmB,EAAA,UAAA,EACjB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,2hEAAA,EAAA,MAAA,EAAA,CAAA,yrBAAA,CAAA,EAAA;8BAM9C,QAAQ,EAAA,CAAA;sBAAhB;gBACS,OAAO,EAAA,CAAA;sBAAhB;gBAOD,eAAe,EAAA,CAAA;sBADd,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;;MEH/B,mBAAmB,CAAA;IACrB,cAAc,GAAG,KAAK;IACtB,QAAQ,GAAG,IAAI;IACf,QAAQ,GAAG,IAAI;AACd,IAAA,MAAM,GAAG,IAAI,YAAY,EAAQ;AACjC,IAAA,OAAO,GAAG,IAAI,YAAY,EAAQ;uGALjC,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClBhC,ibAkBA,EAAA,MAAA,EAAA,CAAA,k6CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDRI,YAAY,+BACZ,mBAAmB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,qBAAqB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKJ,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAZ/B,SAAS;+BACE,iBAAiB,EAAA,UAAA,EACf,IAAI,EAAA,OAAA,EACP;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,qBAAqB;wBACrB,aAAa;AACd,qBAAA,EAAA,QAAA,EAAA,ibAAA,EAAA,MAAA,EAAA,CAAA,k6CAAA,CAAA,EAAA;8BAKQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACS,MAAM,EAAA,CAAA;sBAAf;gBACS,OAAO,EAAA,CAAA;sBAAhB;;;AEvBH;;MCkEa,kBAAkB,CAAA;IACpB,WAAW,GAAY,KAAK;IAC5B,kBAAkB,GAAY,KAAK;IACnC,QAAQ,GAAY,KAAK;IACzB,MAAM,GAAW,MAAM;IACvB,KAAK,GAAkB,IAAI;IAC3B,cAAc,GAAQ,IAAI;IAC1B,QAAQ,GAAc,EAAE;IACxB,UAAU,GAAY,KAAK;IAC3B,eAAe,GAAW,MAAM;IAChC,eAAe,GAAY,KAAK;IAChC,YAAY,GAAY,KAAK;IAC7B,WAAW,GAAW,IAAI;IAC1B,aAAa,GAAY,KAAK;IAC9B,SAAS,GAAkB,IAAI;IAC/B,oBAAoB,GAAY,KAAK;IACrC,cAAc,GAAkB,IAAI;IACpC,oBAAoB,GAAkB,IAAI;IAC1C,uBAAuB,GAAY,KAAK;AAEvC,IAAA,UAAU,GAAG,IAAI,YAAY,EAAQ;AACrC,IAAA,IAAI,GAAG,IAAI,YAAY,EAAQ;AAC/B,IAAA,aAAa,GAAG,IAAI,YAAY,EAAQ;AACxC,IAAA,OAAO,GAAG,IAAI,YAAY,EAAQ;AAClC,IAAA,cAAc,GAAG,IAAI,YAAY,EAAQ;AACzC,IAAA,aAAa,GAAG,IAAI,YAAY,EAAQ;AACxC,IAAA,gBAAgB,GAAG,IAAI,YAAY,EAAU;AAC7C,IAAA,YAAY,GAAG,IAAI,YAAY,EAAU;AACzC,IAAA,uBAAuB,GAAG,IAAI,YAAY,EAAQ;AAClD,IAAA,kBAAkB,GAAG,IAAI,YAAY,EAAQ;AAC7C,IAAA,aAAa,GAAG,IAAI,YAAY,EAAU;IAEpD,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;IACxB;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IAClB;IAEA,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;IAC3B;IAEA,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;IACrB;IAEA,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;IAC5B;IAEA,mBAAmB,GAAA;AACjB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;IAC3B;AAEA,IAAA,iBAAiB,CAAC,OAAe,EAAA;AAC/B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;IACrC;AAEA,IAAA,kBAAkB,CAAC,MAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;IAChC;IAEA,wBAAwB,GAAA;AACtB,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE;IACrC;IAEA,wBAAwB,GAAA;AACtB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;IAChC;AAEA,IAAA,mBAAmB,CAAC,GAAW,EAAA;AAC7B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;IAC9B;uGA1EW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,SAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,aAAA,EAAA,eAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClE/B,0vQAiHC,EAAA,MAAA,EAAA,CAAA,y4CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED5DG,YAAY,6HAEZ,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,uBAAuB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,mBAAmB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,gBAAgB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,2BAA2B,gKAC3B,qBAAqB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EATf,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAYJ,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAnB9B,SAAS;+BACE,gBAAgB,EAAA,UAAA,EAGd,IAAI,EAAA,OAAA,EACP;wBACP,YAAY;wBACZ,aAAa;wBACb,eAAe;wBACf,uBAAuB;wBACvB,eAAe;wBACf,mBAAmB;wBACnB,aAAa;wBACb,gBAAgB;wBAChB,2BAA2B;wBAC3B,qBAAqB;wBACrB,eAAe;AAChB,qBAAA,EAAA,QAAA,EAAA,0vQAAA,EAAA,MAAA,EAAA,CAAA,y4CAAA,CAAA,EAAA;8BAGQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,oBAAoB,EAAA,CAAA;sBAA5B;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,oBAAoB,EAAA,CAAA;sBAA5B;gBACQ,uBAAuB,EAAA,CAAA;sBAA/B;gBAES,UAAU,EAAA,CAAA;sBAAnB;gBACS,IAAI,EAAA,CAAA;sBAAb;gBACS,aAAa,EAAA,CAAA;sBAAtB;gBACS,OAAO,EAAA,CAAA;sBAAhB;gBACS,cAAc,EAAA,CAAA;sBAAvB;gBACS,aAAa,EAAA,CAAA;sBAAtB;gBACS,gBAAgB,EAAA,CAAA;sBAAzB;gBACS,YAAY,EAAA,CAAA;sBAArB;gBACS,uBAAuB,EAAA,CAAA;sBAAhC;gBACS,kBAAkB,EAAA,CAAA;sBAA3B;gBACS,aAAa,EAAA,CAAA;sBAAtB;;;ME1FU,UAAU,CAAA;IACb,gBAAgB,GAAmC,IAAI;IACvD,OAAO,GAAW,yBAAyB;AAEnD;;;AAGG;AACH,IAAA,UAAU,CAAC,MAAiB,EAAA;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AACpB,YAAA,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC;QACzE;AAEA,QAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,QAAQ;AACvC,QAAA,IAAI,MAAM,CAAC,OAAO,EAAE;AAClB,YAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;QAC/B;IACF;AAEA,IAAA,MAAM,aAAa,CAAC,YAAY,GAAG,KAAK,EAAA;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC1B,YAAA,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC;QACtF;QAEA,IAAI,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC;QACvD,IAAI,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,sBAAsB,CAAC;AAE/D,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAEjD,QAAA,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,IAAI,WAAW,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,YAAY,EAAE;AACxF,YAAA,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE;YAEnD,IAAI,CAAC,aAAa,EAAE;AAClB,gBAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;YAClE;YAEA,WAAW,GAAG,aAAa;YAC3B,YAAY,GAAG,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,CAAA;AAExC,YAAA,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,WAAW,CAAC;AAClD,YAAA,YAAY,CAAC,OAAO,CAAC,sBAAsB,EAAE,YAAY,CAAC;QAC5D;AAEA,QAAA,OAAO,WAAW;IACpB;IAEQ,MAAM,aAAa,CAAC,GAAW,EAAE,OAAoB,EAAE,KAAK,GAAG,IAAI,EAAA;AACzE,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACpB,YAAA,OAAO,CAAC,OAAO,GAAG,EAAE;QACtB;AAEA,QAAA,MAAM,OAAO,GAAG,OAAO,CAAC,OAAiC;QACzD,OAAO,CAAC,eAAe,CAAC,GAAG,CAAA,OAAA,EAAU,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA,CAAE;QAEjE,IAAI,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC;AAExC,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,KAAK,KAAK,EAAE;AACjE,YAAA,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC;YAEpD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AAC/C,YAAA,OAAO,CAAC,eAAe,CAAC,GAAG,CAAA,OAAA,EAAU,QAAQ,EAAE;YAE/C,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC;QACtC;AAEA,QAAA,OAAO,QAAQ;IACjB;AAEA,IAAA,MAAM,UAAU,CAAC,QAAgB,EAAE,MAAM,GAAG,KAAK,EAAE,IAAA,GAAY,IAAI,EAAE,gBAAwC,EAAE,EAAA;QAC7G,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAE;AAEzC,QAAA,MAAM,OAAO,GAAgB;YAC3B,MAAM;AACN,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,kBAAkB;AAClC,gBAAA,GAAG;AACJ,aAAA;AACD,YAAA,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG;SACrC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC;AAEvD,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAChB,YAAA,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;YACvC,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,IAAI,oBAAoB,CAAC;QAC5D;AAEA,QAAA,OAAO,QAAQ;IACjB;uGAxFW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAV,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cAFT,MAAM,EAAA,CAAA;;2FAEP,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCkEY,yBAAyB,CAAA;AAkD1B,IAAA,UAAA;AACA,IAAA,kBAAA;AACA,IAAA,YAAA;AAnDD,IAAA,QAAQ;AACR,IAAA,YAAY;IACZ,SAAS,GAAY,IAAI;IACzB,YAAY,GAAkB,IAAI;IAC3C,IAAa,WAAW,CAAC,KAAa,EAAA;AACpC,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,IAAI;IAC7B;AACA,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,YAAY;IAC1B;IACS,oBAAoB,GAAY,KAAK;IACrC,YAAY,GAAW,SAAS;IAChC,OAAO,GAAW,WAAW;AACF,IAAA,qBAAqB;IAEjD,YAAY,GAAW,IAAI;AAC3B,IAAA,gBAAgB;IACxB,KAAK,GAAY,KAAK;;IAGtB,WAAW,GAAG,KAAK;IACnB,cAAc,GAAQ,IAAI;IAC1B,MAAM,GAAG,MAAM;IACf,KAAK,GAAkB,IAAI;AAC3B,IAAA,kBAAkB,GAAG,IAAI,CAAC,SAAS;IACnC,WAAW,GAAG,KAAK;IACnB,SAAS,GAAkB,IAAI;IAC/B,eAAe,GAAG,KAAK;IACvB,YAAY,GAAG,KAAK;IACpB,QAAQ,GAAG,KAAK;IAChB,WAAW,GAAW,EAAE;IACxB,QAAQ,GAAG,KAAK;IAChB,QAAQ,GAAc,EAAE;IACxB,kBAAkB,GAAG,KAAK;IAC1B,aAAa,GAAG,KAAK;IACrB,SAAS,GAAkB,IAAI;IAE/B,MAAM,GAAG,KAAK;IAEd,UAAU,GAAG,KAAK;IAClB,eAAe,GAAG,MAAM;IAExB,cAAc,GAAkB,IAAI;IACpC,oBAAoB,GAAkB,IAAI;IAE1C,uBAAuB,GAAG,KAAK;AAE/B,IAAA,WAAA,CACU,UAAsB,EACtB,kBAAsC,EACtC,YAA0B,EAAA;QAF1B,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,kBAAkB,GAAlB,kBAAkB;QAClB,IAAA,CAAA,YAAY,GAAZ,YAAY;IACnB;IAEH,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS;AACxC,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAC9B,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;QAChC;;AAGA,QAAA,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC;;AAGlE,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,SAAS,CACnE,CAAC,IAAI,KAAI;AACP,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACzB,QAAA,CAAC,CACF;IACH;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;;AAEhC,QAAA,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE;YACnE,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;QACtD;;AAGA,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;YACzD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5C;IACF;IAEA,WAAW,GAAA;;AAET,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;QACrC;;QAGA,iBAAiB,CAAC,cAAc,EAAE;IACpC;AAEA,IAAA,MAAM,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW;AACpC,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW;AAE1C,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;;AAEpB,YAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAC9B,gBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;YAChC;AACA,YAAA,MAAM,IAAI,CAAC,mBAAmB,EAAE;QAClC;IACF;AAEQ,IAAA,MAAM,mBAAmB,GAAA;AAC/B,QAAA,IAAI,CAAC,MAAM,GAAG,SAAS;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AAEjB,QAAA,IAAI;AACF,YAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAC/C,CAAA,wBAAA,EAA2B,IAAI,CAAC,YAAY,EAAE,EAC9C,KAAK,CACN;YACD,IAAI,CAAC,cAAc,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAC3C,YAAA,IAAI,CAAC,MAAM,GAAG,WAAW;QAC3B;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO;AAC1B,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ;QACxB;IACF;IAEA,MAAM,iBAAiB,CAAC,MAAe,EAAA;AACrC,QAAA,IAAI;AACF,YAAA,MAAM,WAAW,GAAG,MAAM,IAAI,IAAI,CAAC,cAAc;AACjD,YAAA,MAAM,oBAAoB,GAAG;gBAC3B,QAAQ,EAAE,WAAW,EAAE,EAAE;gBACzB,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC;AAED,YAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAC/C,yCAAyC,EACzC,MAAM,EACN,oBAAoB,CACrB;AACD,YAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAElC,YAAA,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,IAAI;AACvC,YAAA,IAAI,CAAC,SAAS,GAAG,WAAW,EAAE,EAAE;AAChC,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;YAG1B,IAAI,IAAI,CAAC,SAAS,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;;AAE1D,gBAAA,MAAM,UAAU,GACd,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;;AAG3D,gBAAA,MAAM,QAAQ,GACZ,WAAW,CAAC,SAAS,EAAE,QAAQ;AAC/B,oBAAA,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE;AACjC,oBAAA,EAAE;gBAEJ,MAAM,iBAAiB,CAAC,eAAe,CACrC,IAAI,CAAC,SAAS,EACd,UAAU,EACV,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EACpC,QAAQ,CACT;AAED,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI;YAC7B;AAEA,YAAA,OAAO,IAAI;QACb;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC;AACpD,YAAA,MAAM,KAAK;QACb;IACF;IAEA,MAAM,WAAW,CAAC,WAAoB,EAAA;AACpC,QAAA,MAAM,UAAU,GAAG,WAAW,IAAI,IAAI,CAAC,WAAW;QAClD,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY;YAAE;AAE7C,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,eAAe,GAAG,QAAQ;;AAG/B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,gBAAA,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,UAAU,EAAE,CAAC;AACb,gBAAA,cAAc,EAAE,UAAU;gBAC1B,MAAM,EAAE,IAAI,IAAI,EAAE;AAClB,gBAAA,MAAM,EAAE,KAAK;AACd,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACnB,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,IAAI,SAAS,CAAC;YAChE;AAEA,YAAA,MAAM,UAAU,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE;AACjD,YAAA,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAC9B,CAAA,yBAAA,EAA4B,IAAI,CAAC,SAAS,eAAe,EACzD,MAAM,EACN,UAAU,CACX;;AAGD,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE;;AAGrB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,KACpC,GAAG,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CACrE;QACH;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC;AAC9C,YAAA,IAAI,CAAC,eAAe,GAAG,MAAM;AAC7B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,gBAAA,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,gBAAA,MAAM,EAAE,WAAW;AACnB,gBAAA,UAAU,EAAE,CAAC;AACb,gBAAA,cAAc,EACZ,+FAA+F;gBACjG,MAAM,EAAE,IAAI,IAAI,EAAE;AAClB,gBAAA,MAAM,EAAE,IAAI;AACb,aAAA,CAAC;QACJ;IACF;AAEA,IAAA,oBAAoB,CAClB,OAAe,EACf,UAAkB,EAClB,UAAmB,EAAA;QAEnB,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;QACxB;QAEA,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAEvD,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,YAAA,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;AAChC,YAAA,cAAc,EAAE,OAAO;YACvB,MAAM,EAAE,IAAI,IAAI,EAAE;AAClB,YAAA,MAAM,EAAE,IAAI;AACb,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,eAAe,GAAG,MAAM;QAC7B,IAAI,CAAC,cAAc,EAAE;IACvB;AAEQ,IAAA,aAAa,CAAC,UAAkB,EAAA;QACtC,QAAQ,UAAU;AAChB,YAAA,KAAK,CAAC;AACJ,gBAAA,OAAO,MAAM;AACf,YAAA,KAAK,CAAC;AACJ,gBAAA,OAAO,OAAO;AAChB,YAAA;AACE,gBAAA,OAAO,WAAW;;IAExB;IAEA,MAAM,kBAAkB,CAAC,MAAc,EAAA;AACrC,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM;AAC5B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AAEzB,QAAA,IAAI;;;AAGF,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,gBAAA,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,gBAAA,MAAM,EAAE,WAAW;AACnB,gBAAA,UAAU,EAAE,CAAC;AACb,gBAAA,cAAc,EACZ,MAAM,CAAC,SAAS,EAAE,QAAQ;AAC1B,qBAAC,IAAI,CAAC,WAAW,KAAK;AACpB,0BAAE;0BACA,mCAAmC,CAAC;gBAC1C,MAAM,EAAE,IAAI,IAAI,EAAE;AAClB,gBAAA,MAAM,EAAE,IAAI;AACb,aAAA,CAAC;;AAGF,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;AAC/B,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK;QAC5B;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC;AAC5C,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK;;AAG1B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,gBAAA,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,gBAAA,MAAM,EAAE,WAAW;AACnB,gBAAA,UAAU,EAAE,CAAC;AACb,gBAAA,cAAc,EACZ,wFAAwF;gBAC1F,MAAM,EAAE,IAAI,IAAI,EAAE;AAClB,gBAAA,MAAM,EAAE,IAAI;AACb,aAAA,CAAC;QACJ;IACF;IAEQ,MAAM,mBAAmB,CAAC,MAAW,EAAA;AAC3C,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,MAAM,GAAG,SAAS;AACvB,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGlB,YAAA,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;AAEpC,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,YAAA,IAAI,CAAC,MAAM,GAAG,WAAW;QAC3B;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC;YACzC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,IAAI,8BAA8B;AAC5D,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ;QACxB;IACF;IAEA,MAAM,eAAe,CAAC,MAAW,EAAA;AAC/B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;IACxC;AAEA,IAAA,MAAM,aAAa,GAAA;AACjB,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI;IACrC;AAEA,IAAA,MAAM,cAAc,GAAA;AAClB,QAAA,IAAI,CAAC,uBAAuB,GAAG,KAAK;AACpC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;AAC3C,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACvB;;AAGA,QAAA,MAAM,iBAAiB,CAAC,cAAc,EAAE;AACxC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAE5B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;AAC9B,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;AAClB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,QAAA,IAAI,CAAC,eAAe,GAAG,MAAM;AAC7B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;IAClC;IAEA,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,uBAAuB,GAAG,KAAK;IACtC;IAEA,MAAM,gBAAgB,CAAC,aAAqB,EAAA;AAC1C,QAAA,IAAI;AACF,YAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAC/C,4BAA4B,aAAa,CAAA,MAAA,CAAQ,EACjD,MAAM,CACP;AACD,YAAA,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE;QAC9B;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC;AACnD,YAAA,MAAM,KAAK;QACb;IACF;IAEA,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;AAC/B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;IAClC;IAEA,yBAAyB,GAAA;AACvB,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;IACjC;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;QAChC;AAAO,aAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;AACpC,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;QAClC;AAAO,aAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;QAC5B;AAAO,aAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAClC,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;QACjC;IACF;IAEA,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;IACjC;AAEA,IAAA,YAAY,CAAC,MAAc,EAAA;AACzB,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM;AAC5B,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;IAClC;AAEA,IAAA,kBAAkB,CAAC,YAAoB,EAAA;AACrC,QAAA,IAAI,CAAC,oBAAoB,GAAG,YAAY;IAC1C;IAEA,wBAAwB,GAAA;AACtB,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;IAChC;IAEA,wBAAwB,GAAA;AACtB,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;IACjC;IAEQ,cAAc,GAAA;QACpB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC9B,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAa;AACxD,gBAAA,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,YAAY;YAC1C;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,WAAW,KAAK,IAAI,GAAG,KAAK,GAAG,KAAK;IAClD;AAEA,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO;AAAE,YAAA,OAAO,EAAE;;AAE5C,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAW,MAAM;AACvD,YAAA,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,oBAAoB;YACzC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,EAAE;YACzC,WAAW,EAAE,MAAM,CAAC,UAAU,GAAG,UAAU,GAAG,EAAE;AAChD,YAAA,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI;AACtE,SAAA,CAAC,CAAC;IACL;AAEA,IAAA,aAAa,CAAC,GAAW,EAAA;AACvB,QAAA,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC5B;uGArbW,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvEtC,0sDA6CA,EAAA,MAAA,EAAA,CAAA,2VAAA,EAAA,28EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDmBI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,uBAAuB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,aAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,mBAAmB,EAAA,QAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,yBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,eAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,oBAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAGT,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAbrC,SAAS;+BACE,wBAAwB,EAAA,UAAA,EAGtB,IAAI,EAAA,OAAA,EACP;wBACP,YAAY;wBACZ,WAAW;wBACX,uBAAuB;wBACvB,mBAAmB;wBACnB,kBAAkB;AACnB,qBAAA,EAAA,QAAA,EAAA,0sDAAA,EAAA,MAAA,EAAA,CAAA,2VAAA,EAAA,28EAAA,CAAA,EAAA;kIAGQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACY,WAAW,EAAA,CAAA;sBAAvB;gBAOQ,oBAAoB,EAAA,CAAA;sBAA5B;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACmC,qBAAqB,EAAA,CAAA;sBAAxD,SAAS;uBAAC,uBAAuB;;;ME/EvB,uBAAuB,CAAA;IAC1B,WAAW,GAAW,yBAAyB;AAC/C,IAAA,WAAW;AAEnB,IAAA,aAAa,CAAC,GAAW,EAAA;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,GAAG;IACxB;IAEA,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,WAAW;IACzB;AAEA,IAAA,aAAa,CAAC,EAAc,EAAA;AAC1B,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;IACvB;IAEA,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,WAAW;IACzB;uGAlBW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA;;2FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCCY,YAAY,CAAA;AACH,IAAA,MAAA;AAApB,IAAA,WAAA,CAAoB,MAA+B,EAAA;QAA/B,IAAA,CAAA,MAAM,GAAN,MAAM;IAA4B;AAEtD,IAAA,MAAM,QAAQ,GAAA;;QAEZ,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;QAC/C,IAAI,cAAc,EAAE;AAClB,YAAA,MAAM,KAAK,GAAG,MAAM,cAAc,EAAE;YACpC,OAAO;gBACL,KAAK;gBACL,SAAS,EAAE,IAAI;aAChB;QACH;;AAGA,QAAA,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;IAC/C;uGAhBW,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,uBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA;;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACND;MAQa,eAAe,CAAA;AACN,IAAA,kBAAA;AAApB,IAAA,WAAA,CAAoB,kBAAsC,EAAA;QAAtC,IAAA,CAAA,kBAAkB,GAAlB,kBAAkB;IAAuB;AAE7D,IAAA,cAAc,CAAC,QAAkB,EAAA;AAC/B,QAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,QAAQ,CAAC;IAC/C;IAEA,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE;IACjD;uGATW,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAf,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA;;2FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACPD;;ACAA;;AAEG;;;;"}
package/index.d.ts CHANGED
@@ -190,7 +190,7 @@ declare class HelpCenterWidgetComponent implements OnInit, OnDestroy, OnChanges
190
190
  handleShowHelpScreenData(): void;
191
191
  handleHideHelpScreenData(): void;
192
192
  private scrollToBottom;
193
- getDirection(): "rtl" | "ltr";
193
+ getDirection(): "ltr" | "rtl";
194
194
  get helpScreenDataList(): any;
195
195
  navigateToUrl(url: string): void;
196
196
  static ɵfac: i0.ɵɵFactoryDeclaration<HelpCenterWidgetComponent, never>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aslaluroba/help-center",
3
- "version": "3.0.7",
3
+ "version": "3.0.8",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "peerDependencies": {