@genexus/genexus-ide-ui 1.1.32 → 1.1.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js +9 -2
  2. package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js +2 -1
  4. package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js.map +1 -1
  5. package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js +1 -1
  6. package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js.map +1 -1
  7. package/dist/collection/components/chat/chat-container/chat-container.js +10 -2
  8. package/dist/collection/components/chat/chat-container/chat-container.js.map +1 -1
  9. package/dist/collection/components/chat/chat-container/gx-ide-assets/chat-container/chat-lit.css +376 -0
  10. package/dist/collection/components/chat/chat-welcome/chat-welcome.js +0 -1
  11. package/dist/collection/components/chat/chat-welcome/chat-welcome.js.map +1 -1
  12. package/dist/collection/components/sign-in-team/sign-in-team.css +1 -2
  13. package/dist/collection/showcase/chat-container/chat.showcase.js +2 -1
  14. package/dist/collection/showcase/chat-container/chat.showcase.js.map +1 -1
  15. package/dist/components/chat-container.js +10 -2
  16. package/dist/components/chat-container.js.map +1 -1
  17. package/dist/components/chat-welcome.js +0 -1
  18. package/dist/components/chat-welcome.js.map +1 -1
  19. package/dist/components/gx-ide-sc-chat-container.js +2 -1
  20. package/dist/components/gx-ide-sc-chat-container.js.map +1 -1
  21. package/dist/components/gx-ide-sign-in-team.js +1 -1
  22. package/dist/components/gx-ide-sign-in-team.js.map +1 -1
  23. package/dist/esm/gx-ide-chat-container_2.entry.js +10 -3
  24. package/dist/esm/gx-ide-chat-container_2.entry.js.map +1 -1
  25. package/dist/esm/gx-ide-sc-chat-container.entry.js +2 -1
  26. package/dist/esm/gx-ide-sc-chat-container.entry.js.map +1 -1
  27. package/dist/esm/gx-ide-sign-in-team.entry.js +1 -1
  28. package/dist/esm/gx-ide-sign-in-team.entry.js.map +1 -1
  29. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  30. package/dist/genexus-ide-ui/gx-ide-assets/chat-container/chat-lit.css +376 -0
  31. package/dist/genexus-ide-ui/{p-61343e93.entry.js → p-203f0417.entry.js} +8 -8
  32. package/dist/genexus-ide-ui/p-203f0417.entry.js.map +1 -0
  33. package/dist/genexus-ide-ui/{p-137130ad.entry.js → p-8d6f2b4f.entry.js} +4 -2
  34. package/dist/genexus-ide-ui/{p-137130ad.entry.js.map → p-8d6f2b4f.entry.js.map} +1 -1
  35. package/dist/genexus-ide-ui/{p-1477d49a.entry.js → p-9270c80f.entry.js} +102 -90
  36. package/dist/genexus-ide-ui/p-9270c80f.entry.js.map +1 -0
  37. package/package.json +3 -3
  38. package/dist/genexus-ide-ui/p-1477d49a.entry.js.map +0 -1
  39. package/dist/genexus-ide-ui/p-61343e93.entry.js.map +0 -1
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genexus/genexus-ide-ui",
3
3
  "license": "Apache-2.0",
4
- "version": "1.1.32",
4
+ "version": "1.1.33",
5
5
  "description": "GeneXus IDE UI components",
6
6
  "main": "dist/index.cjs.js",
7
7
  "module": "dist/index.js",
@@ -37,12 +37,12 @@
37
37
  "peerDependencies": {
38
38
  "@genexus/chameleon-controls-library": "~6.17.1",
39
39
  "@genexus/gemini": "*2.0.1",
40
- "@genexus/mercury": "0.26.1-next.0"
40
+ "@genexus/mercury": "0.28.6"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@genexus/chameleon-controls-library": "~6.17.1",
44
44
  "@genexus/gemini": "*2.0.1",
45
- "@genexus/mercury": "0.26.1-next.0",
45
+ "@genexus/mercury": "0.28.6",
46
46
  "@stencil-community/eslint-plugin": "~0.7.1",
47
47
  "@stencil/core": "~4.9.0",
48
48
  "@stencil/sass": "~1.4.0",
@@ -1 +0,0 @@
1
- {"version":3,"names":["chatContainerCss","CSS_BUNDLES","COPY_ICON","getIconPath","category","name","colorType","DELETE_ICON","CONVERSATION_ICON","MORE_HORIZONTAL_ICON","GxIdeChatContainer","_GxIdeChatContainer_menuItems","set","this","type","id","_GxIdeChatContainer_componentLocale","_GxIdeChatContainer_showMenuHandler","menuIsExpanded","_GxIdeChatContainer_menuExpandedChangeHandler","event","detail","_GxIdeChatContainer_copyConversationHandler","copyConversationCallback","_GxIdeChatContainer_deleteConversationHandler","deleteConversationCallback","componentWillLoad","__classPrivateFieldSet","Locale","getComponentStrings","el","showCopyConversationMessage","displayConversationCopiedMessage","setTimeout","render","renderHeader","chatTitle","renderButtonsGroup","h","Host","class","model","blockAlign","inlineAlign","__classPrivateFieldGet","expanded","onExpandedChange","onClick","showMenuAriaLabel","title","src","slot","copyConversationAriaLabel","copyConversationLabel","deleteConversationAriaLabel","clearConversationLabel","chatWelcomeCss","HEADER_ILLUSTRATION","getAssetPath","AI_AVATAR","HEADER_TRANSITION_DELAY","HEADER_TRANSITION_DURATION","SUGGESTED_PROMPT_BUTTON_INTERVAL","SUGGESTED_PROMPT_BUTTONS_DELAY","WELCOME_EXIT_DURATION","AI_ICON","ARROW_RIGHT_ICON","GxIdeChatWelcome","_GxIdeChatWelcome_componentLocale","_GxIdeChatWelcome_animationEntrance","showHeader","showSuggestedPrompts","_GxIdeChatWelcome_sendPromptToChat","async","e","prompt","currentTarget","dataset","_GxIdeChatWelcome_animationExit","call","suggestedPrompRequestedCallback","hideWelcome","Promise","resolve","welcomeTitle","welcomeGreeting","suggestedPrompts","componentDidRender","exitWelcome","hidden","style","backgroundImage","header","map","i"],"sources":["src/components/chat/chat-container/chat-container.scss?tag=gx-ide-chat-container","src/components/chat/chat-container/chat-container.tsx","src/components/chat/chat-welcome/chat-welcome.scss?tag=gx-ide-chat-welcome&encapsulation=shadow","src/components/chat/chat-welcome/chat-welcome.tsx"],"sourcesContent":[".chat-container {\n background-color: var(\n --elevation-background-color,\n --mer-surface__elevation--01\n );\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: 1fr;\n position: relative;\n --chat-common-border-radius: var(--mer-spacing--2xs);\n}\n\n.chat-container.with-header {\n grid-template-rows: max-content 1fr;\n}\n\n.section {\n display: contents;\n}\n\n.header {\n padding: var(--mer-spacing--2xs) var(--mer-spacing--2xs)\n var(--mer-spacing--2xs) var(--mer-spacing--sm);\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mer-spacing--sm);\n color: var(--mer-text__bright);\n border-block-end: var(--mer-border__width--sm) solid\n var(--color-border-surface-on-elevation-01, #333d47);\n\n .button-copy-chat,\n .button-delete-chat {\n --control__border-color: transparent !important;\n }\n\n .button-delete-chat {\n &:hover {\n filter: brightness(1.3);\n }\n &:active {\n filter: brightness(0.8);\n }\n }\n}\n\n.ch-chat-container {\n overflow: auto;\n position: relative;\n display: grid;\n}\n\n// - - - - - - - - - - - - - -\n// other\n// - - - - - - - - - - - - - -\n\n.chat-container__conversation-copied {\n position: absolute;\n z-index: 1;\n inline-size: 100%;\n block-size: 100%;\n background: rgba(22, 22, 23, 0.75);\n backdrop-filter: saturate(180%) blur(20px);\n display: grid;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 32px;\n --mer-icon__box--md: 18px;\n pointer-events: none;\n overflow: hidden;\n animation: fadeIn 100ms ease-in-out forwards;\n opacity: 0;\n}\n\n.chat-container__conversation-copied-wrapper {\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--sm);\n position: relative;\n inset-block-start: 4px;\n opacity: 0;\n animation: liftUp var(--mer-timing--fast) ease-in-out forwards;\n animation-delay: var(--mer-timing--fast);\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes liftUp {\n from {\n opacity: 0;\n inset-block-start: 4px;\n }\n to {\n opacity: 1;\n inset-block-start: 0;\n }\n}\n\n// The following styles shoul be moved over to Mercury\n\n.chat::part(code-block-header__copy) {\n --copy-text-opacity: 0;\n --copy-text-translate-x: 6px;\n opacity: var(--copy-text-opacity);\n pointer-events: none;\n transform: translateX(var(--copy-text-translate-x));\n transition:\n opacity 100ms ease-in-out,\n transform 100ms ease-in-out;\n font-size: 12px;\n}\n.chat::part(code-block-header__copy-copied) {\n --copy-button-pointer-events: none !important;\n --copy-text-opacity: 1;\n --copy-text-translate-x: 0;\n}\n.chat::part(code-block-header) {\n align-items: center;\n display: flex;\n gap: 8px;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Method,\n State\n} from \"@stencil/core\";\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport { ActionMenuModel } from \"@genexus/chameleon-controls-library\";\n\nimport { Locale } from \"../../../common/locale\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"chameleon/scrollbar\",\n \"components/button\",\n \"components/dropdown\",\n \"components/icon\",\n \"utils/elevation\"\n];\n\nconst COPY_ICON = getIconPath({\n category: \"system\",\n name: \"copy\",\n colorType: \"primary\"\n});\nconst DELETE_ICON = getIconPath({\n category: \"system\",\n name: \"delete-outlined\",\n colorType: \"primary\"\n});\nconst CONVERSATION_ICON = getIconPath({\n category: \"objects\",\n name: \"conversational-flows\"\n});\nconst MORE_HORIZONTAL_ICON = getIconPath({\n category: \"system\",\n name: \"more-horizontal\",\n colorType: \"neutral\"\n});\n\n@Component({\n tag: \"gx-ide-chat-container\",\n styleUrl: \"chat-container.scss\",\n shadow: false,\n assetsDirs: [\"gx-ide-assets/chat-container\"]\n})\nexport class GxIdeChatContainer {\n #menuItems: ActionMenuModel = [\n { type: \"slot\", id: \"delete-chat-button\" },\n { type: \"slot\", id: \"copy-chat-button\" }\n ];\n\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n @Element() el: HTMLGxIdeChatContainerElement;\n\n /**\n * Coneration Copied\n */\n @State() displayConversationCopiedMessage: boolean = false;\n\n /**\n * Displays or hides the menu\n */\n @State() menuIsExpanded: boolean = false;\n\n /**\n * The chat title\n */\n @Prop() readonly chatTitle?: string;\n\n /**\n * If true a button for copying the conversation will be render on the header\n */\n @Prop() readonly copyConversationCallback: () => void;\n\n /**\n * If true a button for deleting the conversation will be render on the header\n */\n @Prop() readonly deleteConversationCallback: () => void;\n\n /**\n * If true a the welcome screen will be rendered\n */\n @Prop() readonly displayWelcomeScreen: boolean = false;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n /**\n * It will display a feedback message that the conversation has been copied\n */\n @Method()\n async showCopyConversationMessage() {\n this.displayConversationCopiedMessage = true;\n setTimeout(() => {\n this.displayConversationCopiedMessage = false;\n }, 2000);\n }\n\n #showMenuHandler = () => {\n this.menuIsExpanded = true;\n };\n\n #menuExpandedChangeHandler = (event: CustomEvent<boolean>) => {\n this.menuIsExpanded = event.detail;\n };\n\n #copyConversationHandler = () => {\n if (this.copyConversationCallback) {\n this.copyConversationCallback();\n this.menuIsExpanded = false;\n }\n };\n #deleteConversationHandler = () => {\n if (this.deleteConversationCallback) {\n this.deleteConversationCallback();\n this.menuIsExpanded = false;\n }\n };\n\n render() {\n const renderHeader =\n this.chatTitle ||\n this.copyConversationCallback ||\n this.deleteConversationCallback;\n\n const renderButtonsGroup =\n this.copyConversationCallback || this.deleteConversationCallback;\n return (\n <Host\n class={{\n \"chat-container\": true,\n \"with-header\": !!renderHeader\n }}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n {renderHeader && (\n <header class=\"header tiny-semi-bold-l\">\n {this.chatTitle && this.chatTitle}\n {renderButtonsGroup && (\n <ch-action-menu-render\n class=\"dropdown\"\n blockAlign=\"inside-start\"\n inlineAlign=\"inside-end\"\n model={this.#menuItems}\n expanded={this.menuIsExpanded}\n onExpandedChange={this.#menuExpandedChangeHandler}\n >\n <button\n class=\"button-tertiary button-icon-only\"\n onClick={this.#showMenuHandler}\n type=\"button\"\n aria-label={this.#componentLocale.showMenuAriaLabel}\n title={this.#componentLocale.showMenuAriaLabel}\n >\n <ch-image\n class=\"icon-md\"\n src={MORE_HORIZONTAL_ICON}\n ></ch-image>\n </button>\n {this.copyConversationCallback && (\n <button\n class=\"button-tertiary button-icon-and-text button-copy-chat\"\n slot=\"copy-chat-button\"\n onClick={this.#copyConversationHandler}\n type=\"button\"\n aria-label={\n this.#componentLocale.copyConversationAriaLabel\n }\n title={this.#componentLocale.copyConversationAriaLabel}\n >\n <ch-image class=\"icon-md\" src={COPY_ICON}></ch-image>\n {this.#componentLocale.copyConversationLabel}\n </button>\n )}\n {this.deleteConversationCallback && (\n <button\n class=\"button-tertiary button-icon-and-text button-delete-chat\"\n slot=\"delete-chat-button\"\n onClick={this.#deleteConversationHandler}\n type=\"button\"\n aria-label={\n this.#componentLocale.deleteConversationAriaLabel\n }\n title={this.#componentLocale.deleteConversationAriaLabel}\n >\n <ch-image class=\"icon-md\" src={DELETE_ICON}></ch-image>\n {this.#componentLocale.clearConversationLabel}\n </button>\n )}\n </ch-action-menu-render>\n )}\n </header>\n )}\n <section class=\"ch-chat-container\">\n <slot></slot>\n {this.displayConversationCopiedMessage && (\n <div class=\"chat-container__conversation-copied\">\n <div class=\"chat-container__conversation-copied-wrapper\">\n <ch-image class=\"icon-md\" src={CONVERSATION_ICON}></ch-image>\n <p class=\"body-regular-l\">conversation copied</p>\n </div>\n </div>\n )}\n </section>\n {/* <footer class=\"footer elevation-1\">footer</footer> */}\n </section>\n </Host>\n );\n }\n}\n",":host {\n block-size: 100%;\n}\n\n$sharedPadding: var(--mer-spacing--md);\n\n.welcome-container {\n --opacity: 1;\n --translate-y: 0;\n opacity: var(--opacity);\n transform: translateY(var(--translate-y));\n transition: all var(--transition-duration);\n display: flex;\n block-size: 100%;\n grid-template-rows: max-content max-content;\n flex-direction: column;\n justify-content: space-between;\n background-repeat: no-repeat;\n background-size: cover;\n background-size: contain;\n\n &.hidden {\n --opacity: 0;\n --translate-y: 4px;\n }\n}\n\n%absolute-centered {\n position: absolute;\n inset-inline-start: 50%;\n inset-block-start: 50%;\n transform: translate(-50%, -50%);\n}\n\n.header {\n --opacity: 0;\n --translate-y: 3px;\n transition: all var(--transition-duration) var(--transition-delay)\n cubic-bezier(0.4, 0, 0.2, 1);\n transform: translateY(var(--translate-y));\n opacity: var(--opacity);\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--md);\n align-items: center;\n padding: $sharedPadding;\n\n &--visible {\n --opacity: 1;\n --translate-y: 0;\n }\n\n &__circle {\n $circleSize: 55px;\n inline-size: $circleSize;\n block-size: $circleSize;\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center center;\n margin-block-end: -6px;\n }\n\n &__title {\n display: grid;\n text-align: center;\n margin: 0;\n text-align: center;\n white-space: pre-line;\n line-height: 1.3;\n font-weight: 600;\n font-size: var(--font-size-header-h3);\n }\n\n &__greeting {\n line-height: 1.4;\n text-align: center;\n font-weight: 300;\n }\n}\n\n.suggested-prompts {\n --opacity: 1;\n opacity: var(--opacity);\n transition: opacity var(--transition-duration);\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--md);\n list-style: none;\n margin: 0;\n padding: $sharedPadding;\n\n &.hidden {\n --opacity: 0;\n }\n\n &__item {\n }\n\n &__button {\n opacity: 0;\n transform: translateX(-3px);\n animation: fadeInSuggestedPromptButton var(--mer-timing--regular) ease\n forwards;\n animation-delay: var(--delay, 0s);\n\n border: 0;\n padding: var(--mer-spacing--sm);\n border-radius: 44px; // Works with up to a a four lines button\n font-size: 14px; // TODO : Use a token when available\n font-style: oblique;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--xs);\n background-color: #22334a; // TODO : Use a token when available\n font-weight: 100;\n max-inline-size: 300px;\n\n &:hover {\n background-color: #1a2b42;\n }\n }\n\n &__icon {\n flex-shrink: 0;\n }\n}\n\n@keyframes fadeInSuggestedPromptButton {\n from {\n opacity: 0;\n transform: translateX(-3px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n","/* eslint-disable @stencil-community/strict-mutable */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n getAssetPath,\n Method\n} from \"@stencil/core\";\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../../common/locale\";\n\nconst HEADER_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/chat-welcome/images/header-illustration.svg`\n);\nconst AI_AVATAR = getAssetPath(\n `./gx-ide-assets/chat-welcome/images/ai-avatar-welcome.svg`\n);\n\nconst HEADER_TRANSITION_DELAY: number = 100;\nconst HEADER_TRANSITION_DURATION: number = 500;\nconst SUGGESTED_PROMPT_BUTTON_INTERVAL: number = 200;\nconst SUGGESTED_PROMPT_BUTTONS_DELAY: number = 500;\nconst WELCOME_EXIT_DURATION: number = 100;\n\nconst AI_ICON = getIconPath({\n category: \"system\",\n name: \"assistant\",\n colorType: \"primary\"\n});\nconst ARROW_RIGHT_ICON = getIconPath({\n category: \"system\",\n name: \"arrow-right\",\n colorType: \"primary\"\n});\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/chat\",\n \"components/icon\",\n \"utils/typography\"\n];\n\n@Component({\n tag: \"gx-ide-chat-welcome\",\n styleUrl: \"chat-welcome.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/chat-welcome\"]\n})\nexport class GxIdeChatWelcome {\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n @Element() el: HTMLGxIdeChatWelcomeElement;\n\n /**\n * When true, it will display the welcome elements (title, greeting, and buttons)\n */\n @State() showHeader: boolean = false;\n\n /**\n * When true, it will display the suggested prompts buttons\n */\n @State() showSuggestedPrompts: boolean = false;\n\n /**\n * When true, it will hide entire welcome layout\n */\n @State() hideWelcome: boolean = false;\n\n /**\n * The welcome title, if not provided, the default title will be used.\n */\n @Prop({ mutable: true }) welcomeTitle?: string;\n\n /**\n * The welcome greeting description, if not provided, the default title will be used.\n */\n @Prop({ mutable: true }) welcomeGreeting?: string;\n\n /**\n * The suggested prompts, if not provided, the default title will be used.\n */\n @Prop({ mutable: true }) suggestedPrompts?: string[];\n\n /**\n * Fired when the user clicks on a suggested prompt button\n */\n @Prop() readonly suggestedPrompRequestedCallback: (\n prompt: string\n ) => Promise<void>;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n\n // Set defaults\n if (!this.welcomeTitle) {\n this.welcomeTitle = this.#componentLocale.welcomeTitle;\n }\n if (!this.welcomeGreeting) {\n this.welcomeGreeting = this.#componentLocale.welcomeGreeting;\n }\n if (!this.suggestedPrompts) {\n this.suggestedPrompts = this.#componentLocale.suggestedPrompts;\n }\n }\n\n componentDidRender() {\n if (!this.hideWelcome) {\n this.#animationEntrance();\n }\n }\n\n /**\n * It will exit the wellcome screen and remove it from the dom.\n */\n @Method()\n async exitWelcome() {\n this.#animationExit();\n }\n\n #animationEntrance = () => {\n setTimeout(() => {\n this.showHeader = true;\n setTimeout(() => {\n this.showSuggestedPrompts = true;\n }, SUGGESTED_PROMPT_BUTTONS_DELAY);\n }, HEADER_TRANSITION_DELAY + HEADER_TRANSITION_DURATION);\n };\n\n #sendPromptToChat = async (e: MouseEvent) => {\n const prompt = (e.currentTarget as HTMLButtonElement).dataset[\"prommpt\"];\n await this.#animationExit();\n this.suggestedPrompRequestedCallback(prompt);\n };\n\n #animationExit = async (): Promise<void> => {\n this.hideWelcome = true;\n await new Promise(resolve => setTimeout(resolve, WELCOME_EXIT_DURATION));\n };\n\n render() {\n return (\n <Host>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div\n class={{ \"welcome-container\": true, \"hidden\": this.hideWelcome }}\n style={{\n \"backgroundImage\": `url(${HEADER_ILLUSTRATION})`,\n \"--transition-duration\": `${WELCOME_EXIT_DURATION}ms`\n }}\n >\n <header\n class={{ \"header\": true, \"header--visible\": this.showHeader }}\n style={{\n \"--transition-delay\": `${HEADER_TRANSITION_DELAY}ms`,\n \"--transition-duration\": `${HEADER_TRANSITION_DURATION}ms`\n }}\n >\n <span\n class=\"header__circle\"\n style={{ backgroundImage: `url(${AI_AVATAR})` }}\n ></span>\n <h2 class=\"header__title\">{this.welcomeTitle}</h2>\n <p class=\"header__greeting\">{this.welcomeGreeting}</p>\n </header>\n\n {this.suggestedPrompts && this.showSuggestedPrompts && (\n <ul class=\"suggested-prompts\">\n {this.suggestedPrompts.map((prompt, i) => (\n <li class=\"suggested-prompts__item\">\n <button\n class={{\n \"suggested-prompts__button\": true\n }}\n onClick={this.#sendPromptToChat}\n style={{\n \"--delay\": `${SUGGESTED_PROMPT_BUTTON_INTERVAL * i}ms`\n }}\n data-prommpt={prompt}\n >\n <ch-image\n src={AI_ICON}\n class=\"icon-md suggested-prompts__icon\"\n ></ch-image>\n {prompt}\n <ch-image\n src={ARROW_RIGHT_ICON}\n class=\"icon-md suggested-prompts__icon\"\n ></ch-image>\n </button>\n </li>\n ))}\n </ul>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["mapTeamsToComboBoxItemModel","teams","map","team","value","id","caption","name","signInTeamCss","COPYRIGHTS_ILLUSTRATION","getAssetPath","ICON_NEXT","CSS_BUNDLES","CHECKED_VALUE","GxIdeSignInTeam","_GxIdeSignInTeam_componentLocale","set","this","_GxIdeSignInTeam_userTeamsModel","_GxIdeSignInTeam_chSelectTeamEl","_GxIdeSignInTeam_switchStepTransitionTime","_GxIdeSignInTeam_termsAndConditionsCheckboxEl","_GxIdeSignInTeam_privacyPolicyCheckboxEl","_GxIdeSignInTeam_authStepCallback","authStep","signInCallback","__classPrivateFieldGet","_GxIdeSignInTeam_continueHandler","call","async","continueCallback","_GxIdeSignInTeam_renderStepHeader","h","class","src","alt","authStepInternal","titlePart1","titlePart2","_GxIdeSignInTeam_renderStepFooter","signInDisabled","termsConfirmationRequired","termsAndConditionsAccepted","onClick","disabled","buttonCaption","_GxIdeSignInTeam_evaluateTermsConditionsAndPrivacyAccepted","privacyPolicyAccepted","_GxIdeSignInTeam_termsAndConditionsClickedHandler","event","preventDefault","termsCallback","_GxIdeSignInTeam_privacyPolicyClickedHandler","privacyCallback","_GxIdeSignInTeam_evaluateStepRender","signIn","description","checkedValue","ref","el","__classPrivateFieldSet","onInput","htmlFor","agreement","termsAndConditionsLabel","hyperlink","termsAndConditionsLink","privacyAndPolicyLabel","privacyAndPolicyLink","loaderTitle","loader","fetchingTeamsTitle","settingUpSessionTitle","loaderDescription","fetchingTeamsDescription","settingUpDescription","show","selectUserTeam","infoMessage","label","accessibleName","model","_a","authStepChanged","newAuthStep","slideIsVisible","setTimeout","teamsChanged","newTeams","componentWillLoad","Locale","getComponentStrings","style","setProperty","toString","render","Host","slide__main"],"sources":["src/components/sign-in-team/helpers.ts","src/components/sign-in-team/sign-in-team.scss?tag=gx-ide-sign-in-team&encapsulation=shadow","src/components/sign-in-team/sign-in-team.tsx"],"sourcesContent":["import { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { TeamData } from \"./sign-in-team\";\n\nexport const mapTeamsToComboBoxItemModel = (\n teams?: TeamData[]\n): ComboBoxItemModel[] | undefined => {\n if (!teams) {\n return [];\n }\n return teams.map(team => ({\n value: team.id,\n caption: team.name\n }));\n};\n",":host {\n display: grid;\n container-type: inline-size;\n container-name: host-container;\n block-size: 100%;\n inline-size: 100%;\n align-items: center;\n justify-content: center;\n padding: var(--mer-spacing--xl);\n}\n\n.slide {\n display: grid;\n grid-template-columns: 1fr 1fr;\n block-size: 100%;\n max-block-size: 700px;\n max-inline-size: 1100px;\n background-color: var(--mer-surface__elevation--01);\n border-radius: var(--mer-spacing--md);\n overflow: hidden;\n\n &__illustration {\n overflow: hidden;\n object-fit: cover;\n object-position: left;\n block-size: 100%;\n inline-size: 100%;\n }\n\n &__main {\n display: grid;\n block-size: 100%;\n inline-size: 100%;\n padding: var(--mer-spacing--3xl);\n transform: translateY(var(--mer-spacing--2xs));\n transition: var(--switch-step-transtion-time) all;\n opacity: 0;\n\n &--visible {\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n &__main-container {\n display: grid;\n place-self: center;\n gap: var(--mer-spacing--lg);\n max-inline-size: 480px;\n }\n\n &__main-header {\n display: grid;\n gap: var(--mer-spacing--lg);\n }\n\n &__main-title {\n display: flex;\n flex-direction: column;\n font-size: var(--mer-font__size--xl);\n font-weight: var(--mer-font__weight--semi-bold);\n letter-spacing: 0.02em;\n color: var(--mer-text__on-surface);\n }\n\n &__main-description {\n display: grid;\n gap: var(--mer-spacing--2xl);\n font-size: var(--mer-font__size--sm);\n font-weight: var(--mer-font__weight--light);\n line-height: var(--mer-line-height--spaced);\n color: var(--mer-text__complementary);\n max-inline-size: 370px;\n }\n}\n\n.teams-list {\n inline-size: 100%;\n max-inline-size: 400px;\n}\n\n.main-btn {\n inline-size: 100%;\n max-inline-size: 124px;\n}\n\n@container host-container (max-width: 768px) {\n .slide {\n grid-template-columns: 1fr 2fr;\n }\n}\n\n@container host-container (max-width: 640px) {\n .slide {\n grid-template-columns: 1fr 5fr;\n }\n}\n\n// WA (this class should be defined on Mercury\n.hyperlink {\n text-decoration: underline;\n cursor: pointer;\n}\n// WA checkboxes labels should not include margin-block-start when\n// placed inside a field-inline.\n.field-inline > .label-agreement {\n margin-block-start: 0 !important;\n}\n","// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n State,\n Watch,\n Element,\n getAssetPath\n} from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\n// Custom Imports\nimport { Locale } from \"../../common/locale\";\nimport { mapTeamsToComboBoxItemModel } from \"./helpers\";\n\nconst COPYRIGHTS_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/welcome-page/images/copyrights-illustration.png`\n);\nconst ICON_NEXT = getAssetPath(\n `./gx-ide-assets/welcome-page/images/icon-next.svg`\n);\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"components/button\",\n \"components/combo-box\",\n \"components/checkbox\",\n \"utils/form\"\n];\n\nconst CHECKED_VALUE = \"on\";\n\n@Component({\n tag: \"gx-ide-sign-in-team\",\n styleUrl: \"sign-in-team.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/sign-in-team\"]\n})\nexport class GxIdeSignInTeam {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n // Select User Team References :\n #userTeamsModel: ComboBoxItemModel[] = [];\n #chSelectTeamEl: HTMLChComboBoxRenderElement;\n #switchStepTransitionTime: number = 100;\n #termsAndConditionsCheckboxEl!: HTMLChCheckboxElement;\n #privacyPolicyCheckboxEl!: HTMLChCheckboxElement;\n\n @Element() el: HTMLGxIdeSignInTeamElement;\n\n /**\n * This is a handover from \"authStep\" that allows updating descriptions once\n * the slide is hidden. This enables a smooth transition between descriptions.\n */\n\n @State() authStepInternal: AuthStep;\n\n /**\n * Defines if the main slide is visible or not. Used for smooth transitions\n * between slides.\n */\n @State() slideIsVisible: boolean = true;\n\n /**\n * True if terms and conditions are accepted.\n */\n @State() termsAndConditionsAccepted: boolean = false;\n\n /**\n * The authentication step to display\n */\n @Prop() readonly authStep: AuthStep = \"signIn\";\n @Watch(\"authStep\")\n authStepChanged(newAuthStep: AuthStep) {\n this.slideIsVisible = false;\n // switch step\n setTimeout(() => {\n this.authStepInternal = newAuthStep;\n }, this.#switchStepTransitionTime);\n // show slide\n setTimeout(() => {\n this.slideIsVisible = true;\n }, this.#switchStepTransitionTime * 2);\n }\n\n /**\n * Callback executed when the user clicks the 'Continue' button\n */\n @Prop() readonly continueCallback!: (teamId: string) => Promise<void>;\n\n /**\n * Callback executed when the user click the \"Sign In\" button\n */\n @Prop() readonly signInCallback!: () => Promise<void>;\n\n /**\n * When true, it will diplay checkboxes for the user to confirm terms and conditions\n */\n @Prop() readonly termsConfirmationRequired: boolean = false;\n\n /**\n * Array that contains the user's teams\n */\n @Prop() readonly teams!: TeamData[];\n @Watch(\"teams\")\n teamsChanged(newTeams: TeamData[]) {\n this.#userTeamsModel = mapTeamsToComboBoxItemModel(newTeams);\n }\n\n /**\n * Callback executed when the user clicks on the \"term and conditions\" link\n */\n @Prop() readonly termsCallback: () => Promise<void>;\n\n /**\n * Callback executed when the user clicks on the \"privacy policy\" link\n */\n @Prop() readonly privacyCallback: () => Promise<void>;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.el.style.setProperty(\n \"--switch-step-transtion-time\",\n this.#switchStepTransitionTime.toString() + \"ms\"\n );\n // Initialize values\n this.authStepInternal = this.authStep;\n this.teamsChanged(this.teams);\n }\n\n #authStepCallback = () => {\n if (this.authStep === \"signIn\") {\n this.signInCallback();\n } else if (this.authStep === \"selectUserTeam\") {\n this.#continueHandler();\n }\n };\n\n #continueHandler = async () => {\n await this.continueCallback(this.#chSelectTeamEl.value);\n };\n\n #renderStepHeader = (): HTMLElement => {\n return (\n <header class=\"slide__main-header\">\n <img\n src={ICON_NEXT}\n alt=\"\" // decorative\n />\n <h2\n // Split the title into two spans for better styling\n class=\"slide__main-title\"\n >\n <span>{this.#componentLocale[this.authStepInternal].titlePart1}</span>\n <span>{this.#componentLocale[this.authStepInternal].titlePart2}</span>\n </h2>\n </header>\n );\n };\n\n #renderStepFooter = (): HTMLElement => {\n const signInDisabled =\n this.authStep === \"signIn\" &&\n this.termsConfirmationRequired &&\n !this.termsAndConditionsAccepted;\n return (\n <div>\n <button\n class=\"button-primary main-btn\"\n onClick={this.#authStepCallback}\n disabled={signInDisabled}\n >\n {this.#componentLocale[this.authStepInternal].buttonCaption}\n </button>\n </div>\n );\n };\n\n #evaluateTermsConditionsAndPrivacyAccepted = () => {\n const termsAndConditionsAccepted =\n this.#termsAndConditionsCheckboxEl.value === CHECKED_VALUE;\n const privacyPolicyAccepted =\n this.#privacyPolicyCheckboxEl.value === CHECKED_VALUE;\n this.termsAndConditionsAccepted =\n termsAndConditionsAccepted && privacyPolicyAccepted;\n };\n\n #termsAndConditionsClickedHandler = (event: MouseEvent) => {\n event.preventDefault();\n this.termsCallback();\n };\n\n #privacyPolicyClickedHandler = (event: MouseEvent) => {\n event.preventDefault();\n this.privacyCallback();\n };\n\n #evaluateStepRender = () => {\n if (this.authStepInternal === \"signIn\") {\n return [\n this.#renderStepHeader(),\n <p class=\"body-regular-l\">\n {this.#componentLocale.signIn.description}\n </p>,\n this.termsConfirmationRequired && (\n <div class=\"field-group\">\n <div\n // terms and conditions\n class=\"field field-inline\"\n >\n <ch-checkbox\n checkedValue={CHECKED_VALUE}\n id=\"terms-and-conditions\"\n class=\"checkbox\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#termsAndConditionsCheckboxEl =\n el as HTMLChCheckboxElement)\n }\n onInput={this.#evaluateTermsConditionsAndPrivacyAccepted}\n ></ch-checkbox>\n <label\n htmlFor=\"terms-and-conditions\"\n class=\"label label-agreement\"\n >\n {this.#componentLocale.agreement.termsAndConditionsLabel}\n <span\n class={{ hyperlink: !!this.termsCallback }}\n onClick={\n this.termsCallback && this.#termsAndConditionsClickedHandler\n }\n >\n {this.#componentLocale.agreement.termsAndConditionsLink}\n </span>\n </label>\n </div>\n <div\n // privacy policy\n class=\"field field-inline\"\n >\n <ch-checkbox\n checkedValue={CHECKED_VALUE}\n id=\"privacy-policy\"\n class=\"checkbox\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#privacyPolicyCheckboxEl = el as HTMLChCheckboxElement)\n }\n onInput={this.#evaluateTermsConditionsAndPrivacyAccepted}\n ></ch-checkbox>\n <label htmlFor=\"privacy-policy\" class=\"label label-agreement\">\n {this.#componentLocale.agreement.privacyAndPolicyLabel}\n <span\n class={{ hyperlink: !!this.privacyCallback }}\n onClick={\n this.privacyCallback && this.#privacyPolicyClickedHandler\n }\n >\n {this.#componentLocale.agreement.privacyAndPolicyLink}\n </span>\n </label>\n </div>\n </div>\n ),\n\n this.#renderStepFooter()\n ];\n } else if (\n this.authStepInternal === \"fetchUserTeams\" ||\n this.authStepInternal === \"settingUpSession\"\n ) {\n const loaderTitle =\n this.authStepInternal === \"fetchUserTeams\"\n ? this.#componentLocale.loader.fetchingTeamsTitle\n : this.#componentLocale.loader.settingUpSessionTitle;\n const loaderDescription =\n this.authStepInternal === \"fetchUserTeams\"\n ? this.#componentLocale.loader.fetchingTeamsDescription\n : this.#componentLocale.loader.settingUpDescription;\n return (\n <gx-ide-loader\n show\n loaderTitle={loaderTitle}\n description={loaderDescription}\n ></gx-ide-loader>\n );\n } else if (this.authStepInternal === \"selectUserTeam\") {\n return [\n this.#renderStepHeader(),\n <div class=\"slide__select-team-description\">\n <p class=\"body-semi-bold-l\">\n {this.#componentLocale.selectUserTeam.infoMessage}\n </p>\n </div>,\n <div class=\"field-group\">\n <div class=\"field field-block\">\n <label htmlFor=\"teams\">\n {this.#componentLocale.selectUserTeam.label}\n </label>\n <ch-combo-box-render\n id=\"teams\"\n accessibleName=\"Teams\"\n class=\"combo-box teams-list\"\n model={this.#userTeamsModel}\n value={this.#userTeamsModel[0]?.value}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#chSelectTeamEl = el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n </div>,\n this.#renderStepFooter()\n ];\n }\n };\n\n render() {\n return (\n <Host>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"slide\">\n <img\n src={COPYRIGHTS_ILLUSTRATION}\n class=\"slide__illustration\"\n alt=\"\" // decorative\n />\n\n <div\n class={{\n \"slide__main\": true,\n \"slide__main--visible\": this.slideIsVisible\n }}\n >\n <div class=\"slide__main-container\">\n {this.#evaluateStepRender()}\n </div>\n </div>\n </section>\n </Host>\n );\n }\n}\n\nexport type AuthStep =\n | \"signIn\"\n | \"fetchUserTeams\"\n | \"selectUserTeam\"\n | \"settingUpSession\";\n\nexport type TeamData = {\n id: string;\n name: string;\n};\n"],"mappings":";;;;AAGO,MAAMA,8BACXC;EAEA,KAAKA,GAAO;IACV,OAAO;;EAET,OAAOA,EAAMC,KAAIC,MAAI;IACnBC,OAAOD,EAAKE;IACZC,SAASH,EAAKI;;AACb;;ACZL,MAAMC,IAAgB;;;;;;;;;;;;;;;;;ACkBtB,MAAMC,IAA0BC,EAC9B;;AAEF,MAAMC,IAAYD,EAChB;;AAEF,MAAME,IAA8B,EAClC,qBACA,oBACA,qBACA,wBACA,uBACA;;AAGF,MAAMC,IAAgB;;MAQTC,IAAe;;;;;;;QAK1BC,EAAAC,IAAAC,WAAA;;QAEAC,EAAAF,IAAAC,MAAuC;IACvCE,EAAAH,IAAAC,WAAA;IACAG,EAAAJ,IAAAC,MAAoC;IACpCI,EAAAL,IAAAC,WAAA;IACAK,EAAAN,IAAAC,WAAA;IAoFAM,EAAAP,IAAAC,OAAoB;MAClB,IAAIA,KAAKO,aAAa,UAAU;QAC9BP,KAAKQ;aACA,IAAIR,KAAKO,aAAa,kBAAkB;QAC7CE,EAAAT,MAAIU,GAAA,KAAiBC,KAArBX;;;IAIJU,EAAAX,IAAAC,OAAmBY;YACXZ,KAAKa,iBAAiBJ,EAAAT,MAAIE,GAAA,KAAiBf;AAAM;IAGzD2B,EAAAf,IAAAC,OAAoB,MAEhBe,EAAA;MAAQC,OAAM;OACZD,EAAA;MACEE,KAAKvB;MACLwB,KAAI;QAENH,EAAA;;MAEEC,OAAM;OAEND,EAAA,cAAON,EAAAT,MAAIF,GAAA,KAAkBE,KAAKmB,kBAAkBC,aACpDL,EAAA,cAAON,EAAAT,MAAIF,GAAA,KAAkBE,KAAKmB,kBAAkBE;IAM5DC,EAAAvB,IAAAC,OAAoB;MAClB,MAAMuB,IACJvB,KAAKO,aAAa,YAClBP,KAAKwB,8BACJxB,KAAKyB;MACR,OACEV,EAAA,aACEA,EAAA;QACEC,OAAM;QACNU,SAASjB,EAAAT,MAAIM,GAAA;QACbqB,UAAUJ;SAETd,EAAAT,MAAIF,GAAA,KAAkBE,KAAKmB,kBAAkBS;AAE5C;IAIVC,EAAA9B,IAAAC,OAA6C;MAC3C,MAAMyB,IACJhB,EAAAT,MAAII,GAAA,KAA+BjB,UAAUS;MAC/C,MAAMkC,IACJrB,EAAAT,MAAIK,GAAA,KAA0BlB,UAAUS;MAC1CI,KAAKyB,6BACHA,KAA8BK;AAAqB;IAGvDC,EAAAhC,IAAAC,OAAqCgC;MACnCA,EAAMC;MACNjC,KAAKkC;AAAe;IAGtBC,EAAApC,IAAAC,OAAgCgC;MAC9BA,EAAMC;MACNjC,KAAKoC;AAAiB;IAGxBC,EAAAtC,IAAAC,OAAsB;;MACpB,IAAIA,KAAKmB,qBAAqB,UAAU;QACtC,OAAO,EACLV,EAAAT,MAAIc,GAAA,KAAkBH,KAAtBX,OACAe,EAAA;UAAGC,OAAM;WACNP,EAAAT,MAAIF,GAAA,KAAkBwC,OAAOC,cAEhCvC,KAAKwB,6BACHT,EAAA;UAAKC,OAAM;WACTD,EAAA;;UAEEC,OAAM;WAEND,EAAA;UACEyB,cAAc5C;UACdR,IAAG;UACH4B,OAAM;UACNyB,KAAMC,KACHC,EAAA3C,MAAII,GACHsC,GAA2B;UAE/BE,SAASnC,EAAAT,MAAI6B,GAAA;YAEfd,EAAA;UACE8B,SAAQ;UACR7B,OAAM;WAELP,EAAAT,MAAIF,GAAA,KAAkBgD,UAAUC,yBACjChC,EAAA;UACEC,OAAO;YAAEgC,aAAahD,KAAKkC;;UAC3BR,SACE1B,KAAKkC,iBAAiBzB,EAAAT,MAAI+B,GAAA;WAG3BtB,EAAAT,MAAIF,GAAA,KAAkBgD,UAAUG,2BAIvClC,EAAA;;UAEEC,OAAM;WAEND,EAAA;UACEyB,cAAc5C;UACdR,IAAG;UACH4B,OAAM;UACNyB,KAAMC,KACHC,EAAA3C,MAAIK,GAA4BqC,GAA2B;UAE9DE,SAASnC,EAAAT,MAAI6B,GAAA;YAEfd,EAAA;UAAO8B,SAAQ;UAAiB7B,OAAM;WACnCP,EAAAT,MAAIF,GAAA,KAAkBgD,UAAUI,uBACjCnC,EAAA;UACEC,OAAO;YAAEgC,aAAahD,KAAKoC;;UAC3BV,SACE1B,KAAKoC,mBAAmB3B,EAAAT,MAAImC,GAAA;WAG7B1B,EAAAT,MAAIF,GAAA,KAAkBgD,UAAUK,0BAO3C1C,EAAAT,MAAIsB,GAAA,KAAkBX,KAAtBX;aAEG,IACLA,KAAKmB,qBAAqB,oBAC1BnB,KAAKmB,qBAAqB,oBAC1B;QACA,MAAMiC,IACJpD,KAAKmB,qBAAqB,mBACtBV,EAAAT,MAAIF,GAAA,KAAkBuD,OAAOC,qBAC7B7C,EAAAT,MAAIF,GAAA,KAAkBuD,OAAOE;QACnC,MAAMC,IACJxD,KAAKmB,qBAAqB,mBACtBV,EAAAT,MAAIF,GAAA,KAAkBuD,OAAOI,2BAC7BhD,EAAAT,MAAIF,GAAA,KAAkBuD,OAAOK;QACnC,OACE3C,EAAA;UACE4C,MAAI;UACJP,aAAaA;UACbb,aAAaiB;;aAGZ,IAAIxD,KAAKmB,qBAAqB,kBAAkB;QACrD,OAAO,EACLV,EAAAT,MAAIc,GAAA,KAAkBH,KAAtBX,OACAe,EAAA;UAAKC,OAAM;WACTD,EAAA;UAAGC,OAAM;WACNP,EAAAT,MAAIF,GAAA,KAAkB8D,eAAeC,eAG1C9C,EAAA;UAAKC,OAAM;WACTD,EAAA;UAAKC,OAAM;WACTD,EAAA;UAAO8B,SAAQ;WACZpC,EAAAT,MAAIF,GAAA,KAAkB8D,eAAeE,QAExC/C,EAAA;UACE3B,IAAG;UACH2E,gBAAe;UACf/C,OAAM;UACNgD,OAAOvD,EAAAT,MAAIC,GAAA;UACXd,QAAO8E,IAAAxD,EAAAT,MAAIC,GAAA,KAAiB,QAAE,QAAAgE,WAAA,aAAAA,EAAE9E;UAChCsD,KAAMC,KACHC,EAAA3C,MAAIE,GAAmBwC,GAAiC;cAKjEjC,EAAAT,MAAIsB,GAAA,KAAkBX,KAAtBX;;;;0BAxP6B;sCAKY;oBAKT;;;qCA2BgB;;;;;EAzBtD,eAAAkE,CAAgBC;IACdnE,KAAKoE,iBAAiB;;QAEtBC,YAAW;MACTrE,KAAKmB,mBAAmBgD;AAAW,QAClC1D,EAAAT,MAAIG,GAAA;;QAEPkE,YAAW;MACTrE,KAAKoE,iBAAiB;AAAI,QACzB3D,EAAAT,MAAIG,GAAA,OAA6B;;EAuBtC,YAAAmE,CAAaC;IACX5B,EAAA3C,MAAIC,GAAmBlB,4BAA4BwF,IAAS;;EAa9D,uBAAMC;IACJ7B,EAAA3C,MAAIF,SAA0B2E,EAAOC,oBAAoB1E,KAAK0C,KAAG;IACjE1C,KAAK0C,GAAGiC,MAAMC,YACZ,gCACAnE,EAAAT,MAAIG,GAAA,KAA2B0E,aAAa;;QAG9C7E,KAAKmB,mBAAmBnB,KAAKO;IAC7BP,KAAKsE,aAAatE,KAAKhB;;EA2LzB,MAAA8F;IACE,OACE/D,EAACgE,GAAI,MACHhE,EAAA;MAAUiD,OAAOrE;QACjBoB,EAAA;MAASC,OAAM;OACbD,EAAA;MACEE,KAAKzB;MACLwB,OAAM;MACNE,KAAI;QAGNH,EAAA;MACEC,OAAO;QACLgE,aAAe;QACf,wBAAwBhF,KAAKoE;;OAG/BrD,EAAA;MAAKC,OAAM;OACRP,EAAAT,MAAIqC,GAAA,KAAoB1B,KAAxBX"}