@genexus/genexus-ide-ui 1.0.19 → 1.0.20

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 (175) hide show
  1. package/dist/cjs/{form-validation-df39cabb.js → form-validation-0019e158.js} +2 -2
  2. package/dist/cjs/form-validation-0019e158.js.map +1 -0
  3. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  4. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js +1 -1
  5. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +1 -1
  6. package/dist/cjs/{gx-ide-empty-state_2.cjs.entry.js → gx-ide-empty-state.cjs.entry.js} +3 -56
  7. package/dist/cjs/gx-ide-empty-state.cjs.entry.js.map +1 -0
  8. package/dist/cjs/gx-ide-loader.cjs.entry.js +61 -0
  9. package/dist/cjs/gx-ide-loader.cjs.entry.js.map +1 -0
  10. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
  11. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
  12. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
  13. package/dist/cjs/gx-ide-splash.cjs.entry.js +76 -0
  14. package/dist/cjs/gx-ide-splash.cjs.entry.js.map +1 -0
  15. package/dist/cjs/gx-ide-start-page.cjs.entry.js +2644 -104
  16. package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
  17. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js +257 -0
  18. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js.map +1 -0
  19. package/dist/cjs/loader.cjs.js +1 -1
  20. package/dist/collection/collection-manifest.json +3 -2
  21. package/dist/collection/common/form-validation.js +1 -1
  22. package/dist/collection/common/form-validation.js.map +1 -1
  23. package/dist/collection/components/_helpers/ide-loader/ide-loader.css +4 -1
  24. package/dist/collection/components/_helpers/ide-loader/ide-loader.js +2 -2
  25. package/dist/collection/components/_helpers/ide-loader/ide-loader.js.map +1 -1
  26. package/dist/collection/components/splash/gx-ide-assets/splash/images/copyrights-illustration.png +0 -0
  27. package/dist/collection/components/splash/gx-ide-assets/splash/images/icon-next.svg +4 -0
  28. package/dist/collection/components/splash/gx-ide-assets/splash/langs/splash.lang.en.json +14 -0
  29. package/dist/collection/components/splash/gx-ide-assets/splash/langs/splash.lang.ja.json +13 -0
  30. package/dist/collection/components/splash/gx-ide-assets/splash/langs/splash.lang.zh.json +13 -0
  31. package/dist/collection/components/splash/splash.css +56 -0
  32. package/dist/collection/components/splash/splash.js +125 -0
  33. package/dist/collection/components/splash/splash.js.map +1 -0
  34. package/dist/collection/components/start-page/gx-ide-assets/start-page/langs/start-page.lang.en.json +19 -27
  35. package/dist/collection/components/start-page/gx-ide-assets/start-page/langs/start-page.lang.ja.json +18 -26
  36. package/dist/collection/components/start-page/gx-ide-assets/start-page/langs/start-page.lang.zh.json +23 -1
  37. package/dist/collection/components/start-page/start-page.css +142 -624
  38. package/dist/collection/components/start-page/start-page.js +198 -181
  39. package/dist/collection/components/start-page/start-page.js.map +1 -1
  40. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/arrow-next.svg +3 -0
  41. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/copyrights-base.svg +61 -0
  42. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/copyrights-illustration.png +0 -0
  43. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/fig-ellipse-blurred.svg +21 -0
  44. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/fig-ellipse-bottom-left.svg +14 -0
  45. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/fig-ellipse-top-left.svg +14 -0
  46. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/fig-polygon.svg +14 -0
  47. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/icon-next.svg +4 -0
  48. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/slide-1.svg +115 -0
  49. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/slide-2.svg +67 -0
  50. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/slide-3.svg +138 -0
  51. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/slide-4.svg +97 -0
  52. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/slide-5.svg +83 -0
  53. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/langs/welcome-page.lang.en.json +13 -0
  54. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/langs/welcome-page.lang.ja.json +13 -0
  55. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/langs/welcome-page.lang.zh.json +13 -0
  56. package/dist/collection/components/welcome-page/welcome-page.css +264 -0
  57. package/dist/collection/components/welcome-page/welcome-page.js +360 -0
  58. package/dist/collection/components/welcome-page/welcome-page.js.map +1 -0
  59. package/dist/collection/pages/assets/images/welcome-page/slide-1.svg +115 -0
  60. package/dist/collection/pages/assets/images/welcome-page/slide-2.svg +67 -0
  61. package/dist/collection/pages/assets/images/welcome-page/slide-3.svg +138 -0
  62. package/dist/collection/pages/assets/images/welcome-page/slide-4.svg +97 -0
  63. package/dist/collection/pages/assets/images/welcome-page/slide-5.svg +83 -0
  64. package/dist/components/form-validation.js +1 -1
  65. package/dist/components/form-validation.js.map +1 -1
  66. package/dist/components/{gx-ide-recent-news.d.ts → gx-ide-splash.d.ts} +4 -4
  67. package/dist/components/gx-ide-splash.js +96 -0
  68. package/dist/components/gx-ide-splash.js.map +1 -0
  69. package/dist/components/gx-ide-start-page.js +2654 -126
  70. package/dist/components/gx-ide-start-page.js.map +1 -1
  71. package/dist/components/gx-ide-welcome-page.d.ts +11 -0
  72. package/dist/components/gx-ide-welcome-page.js +283 -0
  73. package/dist/components/gx-ide-welcome-page.js.map +1 -0
  74. package/dist/components/ide-loader.js +3 -3
  75. package/dist/components/ide-loader.js.map +1 -1
  76. package/dist/esm/{form-validation-8b3f527c.js → form-validation-44b2c2a8.js} +2 -2
  77. package/dist/esm/form-validation-44b2c2a8.js.map +1 -0
  78. package/dist/esm/genexus-ide-ui.js +1 -1
  79. package/dist/esm/gx-ide-connect-gx-server.entry.js +1 -1
  80. package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -1
  81. package/dist/esm/{gx-ide-empty-state_2.entry.js → gx-ide-empty-state.entry.js} +5 -57
  82. package/dist/esm/gx-ide-empty-state.entry.js.map +1 -0
  83. package/dist/esm/gx-ide-loader.entry.js +57 -0
  84. package/dist/esm/gx-ide-loader.entry.js.map +1 -0
  85. package/dist/esm/gx-ide-new-environment.entry.js +1 -1
  86. package/dist/esm/gx-ide-new-kb.entry.js +1 -1
  87. package/dist/esm/gx-ide-share-kb.entry.js +1 -1
  88. package/dist/esm/gx-ide-splash.entry.js +72 -0
  89. package/dist/esm/gx-ide-splash.entry.js.map +1 -0
  90. package/dist/esm/gx-ide-start-page.entry.js +2644 -104
  91. package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
  92. package/dist/esm/gx-ide-welcome-page.entry.js +253 -0
  93. package/dist/esm/gx-ide-welcome-page.entry.js.map +1 -0
  94. package/dist/esm/loader.js +1 -1
  95. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  96. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  97. package/dist/genexus-ide-ui/gx-ide-assets/splash/images/copyrights-illustration.png +0 -0
  98. package/dist/genexus-ide-ui/gx-ide-assets/splash/images/icon-next.svg +4 -0
  99. package/dist/genexus-ide-ui/gx-ide-assets/splash/langs/splash.lang.en.json +14 -0
  100. package/dist/genexus-ide-ui/gx-ide-assets/splash/langs/splash.lang.ja.json +13 -0
  101. package/dist/genexus-ide-ui/gx-ide-assets/splash/langs/splash.lang.zh.json +13 -0
  102. package/dist/genexus-ide-ui/gx-ide-assets/start-page/langs/start-page.lang.en.json +19 -27
  103. package/dist/genexus-ide-ui/gx-ide-assets/start-page/langs/start-page.lang.ja.json +18 -26
  104. package/dist/genexus-ide-ui/gx-ide-assets/start-page/langs/start-page.lang.zh.json +23 -1
  105. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/arrow-next.svg +3 -0
  106. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/copyrights-base.svg +61 -0
  107. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/copyrights-illustration.png +0 -0
  108. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/fig-ellipse-blurred.svg +21 -0
  109. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/fig-ellipse-bottom-left.svg +14 -0
  110. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/fig-ellipse-top-left.svg +14 -0
  111. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/fig-polygon.svg +14 -0
  112. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/icon-next.svg +4 -0
  113. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/slide-1.svg +115 -0
  114. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/slide-2.svg +67 -0
  115. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/slide-3.svg +138 -0
  116. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/slide-4.svg +97 -0
  117. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/slide-5.svg +83 -0
  118. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/langs/welcome-page.lang.en.json +13 -0
  119. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/langs/welcome-page.lang.ja.json +13 -0
  120. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/langs/welcome-page.lang.zh.json +13 -0
  121. package/dist/genexus-ide-ui/{p-d5d0ed5e.entry.js → p-02bc66c1.entry.js} +2 -2
  122. package/dist/genexus-ide-ui/p-120d283a.entry.js +2419 -0
  123. package/dist/genexus-ide-ui/p-120d283a.entry.js.map +1 -0
  124. package/dist/genexus-ide-ui/{p-fc64d088.entry.js → p-58e13823.entry.js} +2 -2
  125. package/dist/genexus-ide-ui/{p-98b5b178.entry.js → p-658755d5.entry.js} +18 -87
  126. package/dist/genexus-ide-ui/p-658755d5.entry.js.map +1 -0
  127. package/dist/genexus-ide-ui/p-7a2d3f1c.entry.js +304 -0
  128. package/dist/genexus-ide-ui/p-7a2d3f1c.entry.js.map +1 -0
  129. package/dist/genexus-ide-ui/p-7ec19ed6.entry.js +73 -0
  130. package/dist/genexus-ide-ui/p-7ec19ed6.entry.js.map +1 -0
  131. package/dist/genexus-ide-ui/{p-c36effd2.entry.js → p-806fc181.entry.js} +2 -2
  132. package/dist/genexus-ide-ui/{p-352d4aad.entry.js → p-8c986256.entry.js} +2 -2
  133. package/dist/genexus-ide-ui/{p-41ea711a.js → p-b8624c0b.js} +2 -2
  134. package/dist/genexus-ide-ui/p-b8624c0b.js.map +1 -0
  135. package/dist/genexus-ide-ui/p-c8b4f34c.entry.js +113 -0
  136. package/dist/genexus-ide-ui/p-c8b4f34c.entry.js.map +1 -0
  137. package/dist/genexus-ide-ui/{p-b1f6fdd6.entry.js → p-cf2c8b3c.entry.js} +2 -2
  138. package/dist/types/components/splash/splash.d.ts +20 -0
  139. package/dist/types/components/start-page/start-page.d.ts +31 -53
  140. package/dist/types/components/welcome-page/welcome-page.d.ts +63 -0
  141. package/dist/types/components.d.ts +94 -65
  142. package/package.json +6 -3
  143. package/dist/cjs/form-validation-df39cabb.js.map +0 -1
  144. package/dist/cjs/gx-ide-empty-state_2.cjs.entry.js.map +0 -1
  145. package/dist/cjs/gx-ide-recent-news.cjs.entry.js +0 -163
  146. package/dist/cjs/gx-ide-recent-news.cjs.entry.js.map +0 -1
  147. package/dist/collection/components/start-page/gx-ide-assets/recent-news/langs/recent-news.lang.en.json +0 -24
  148. package/dist/collection/components/start-page/gx-ide-assets/recent-news/langs/recent-news.lang.ja.json +0 -24
  149. package/dist/collection/components/start-page/gx-ide-assets/recent-news/langs/recent-news.lang.zh.json +0 -3
  150. package/dist/collection/components/start-page/recent-news.css +0 -641
  151. package/dist/collection/components/start-page/recent-news.js +0 -240
  152. package/dist/collection/components/start-page/recent-news.js.map +0 -1
  153. package/dist/components/gx-ide-recent-news.js +0 -8
  154. package/dist/components/gx-ide-recent-news.js.map +0 -1
  155. package/dist/components/recent-news.js +0 -197
  156. package/dist/components/recent-news.js.map +0 -1
  157. package/dist/esm/form-validation-8b3f527c.js.map +0 -1
  158. package/dist/esm/gx-ide-empty-state_2.entry.js.map +0 -1
  159. package/dist/esm/gx-ide-recent-news.entry.js +0 -159
  160. package/dist/esm/gx-ide-recent-news.entry.js.map +0 -1
  161. package/dist/genexus-ide-ui/gx-ide-assets/recent-news/langs/recent-news.lang.en.json +0 -24
  162. package/dist/genexus-ide-ui/gx-ide-assets/recent-news/langs/recent-news.lang.ja.json +0 -24
  163. package/dist/genexus-ide-ui/gx-ide-assets/recent-news/langs/recent-news.lang.zh.json +0 -3
  164. package/dist/genexus-ide-ui/p-0576a392.entry.js +0 -233
  165. package/dist/genexus-ide-ui/p-0576a392.entry.js.map +0 -1
  166. package/dist/genexus-ide-ui/p-20389960.entry.js +0 -211
  167. package/dist/genexus-ide-ui/p-20389960.entry.js.map +0 -1
  168. package/dist/genexus-ide-ui/p-41ea711a.js.map +0 -1
  169. package/dist/genexus-ide-ui/p-98b5b178.entry.js.map +0 -1
  170. package/dist/types/components/start-page/recent-news.d.ts +0 -43
  171. /package/dist/genexus-ide-ui/{p-d5d0ed5e.entry.js.map → p-02bc66c1.entry.js.map} +0 -0
  172. /package/dist/genexus-ide-ui/{p-fc64d088.entry.js.map → p-58e13823.entry.js.map} +0 -0
  173. /package/dist/genexus-ide-ui/{p-c36effd2.entry.js.map → p-806fc181.entry.js.map} +0 -0
  174. /package/dist/genexus-ide-ui/{p-352d4aad.entry.js.map → p-8c986256.entry.js.map} +0 -0
  175. /package/dist/genexus-ide-ui/{p-b1f6fdd6.entry.js.map → p-cf2c8b3c.entry.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["splashCss","COPYRIGHTS_ILLUSTRATION","getAssetPath","ICON_NEXT","SLIDE_FADE_DURATION","CSS_BUNDLES","GxIdeUiSplash","_GxIdeUiSplash_componentLocale","set","this","removeSplashChanged","removeSplash","splashVisible","setTimeout","el","remove","componentWillLoad","__classPrivateFieldSet","Locale","getComponentStrings","componentDidLoad","render","currentYear","Date","getFullYear","h","Host","model","class","slide","style","role","__classPrivateFieldGet","copyright","illustrationAriaLabel","src","alt","illustrationFigureAriaLabel","illustrationAlternativeText","title","version","c1988","allRightsReserved","description"],"sources":["src/components/splash/splash.scss?tag=gx-ide-splash&encapsulation=shadow","src/components/splash/splash.tsx"],"sourcesContent":[":host {\n display: grid;\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 max-inline-size: 1100px;\n grid-template-columns: 1fr 550px;\n background-color: var(--mer-surface__elevation--01);\n border-radius: var(--mer-spacing--md);\n overflow: hidden;\n opacity: 0;\n transition: var(--slide-fade-duration) opacity;\n\n &--visible {\n opacity: 1;\n }\n\n &__illustration {\n overflow: hidden;\n max-block-size: 700px;\n }\n\n &__copy {\n display: grid;\n block-size: 100%;\n inline-size: 100%;\n padding: var(--mer-spacing--3xl);\n }\n\n &__copy-container {\n display: grid;\n gap: var(--mer-spacing--md);\n max-inline-size: 480px;\n place-self: center;\n }\n\n &__copy-header {\n display: grid;\n gap: var(--mer-spacing--md);\n }\n\n &__copy-title {\n font-size: var(--mer-font__size--xl);\n color: var(--mer-text__on-surface);\n letter-spacing: 0.02em;\n font-weight: var(--mer-font__weight--semi-bold);\n }\n\n &__copy-description {\n display: grid;\n color: var(--mer-text__complementary);\n gap: var(--mer-spacing--md);\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 }\n}\n","// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Watch,\n getAssetPath\n} from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles } from \"@genexus/mercury\";\n// Custom Imports\nimport { Locale } from \"../../common/locale\";\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 SLIDE_FADE_DURATION = 300;\nconst CSS_BUNDLES: MercuryBundles = [\"resets/box-sizing\", \"utils/typography\"];\n\n@Component({\n tag: \"gx-ide-splash\",\n styleUrl: \"splash.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/splash\"]\n})\nexport class GxIdeUiSplash {\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: HTMLGxIdeSplashElement;\n\n /**\n * When true the slider will be visible. Used to display and hide the slide with a smooth transition.\n */\n @State() splashVisible: boolean = false;\n\n /**\n * The copyright version. ie.: \"Salto 103300\"\n */\n @Prop() readonly version!: string;\n\n /**\n * If true, the splash with first disappear with a fade-out subtle effect, and then it will automatically be removed from the DOM.\n */\n @Prop() readonly removeSplash: boolean = false;\n @Watch(\"removeSplash\")\n removeSplashChanged(removeSplash: boolean) {\n if (removeSplash) {\n this.splashVisible = false;\n setTimeout(() => {\n // wait until the slide disappears, then remove.\n this.el.remove();\n }, SLIDE_FADE_DURATION);\n }\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidLoad() {\n this.splashVisible = true;\n }\n\n render() {\n const currentYear = new Date().getFullYear();\n\n return (\n <Host>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section\n class={{ \"slide\": true, \"slide--visible\": this.splashVisible }}\n style={{ \"--slide-fade-duration\": `${SLIDE_FADE_DURATION}ms` }}\n >\n <div\n class=\"slide__illustration\"\n role=\"img\"\n aria-label={this.#componentLocale.copyright.illustrationAriaLabel}\n >\n <img\n // base image (acts like a background)\n src={COPYRIGHTS_ILLUSTRATION}\n class=\"slide__illustration\"\n alt={this.#componentLocale.copyright.illustrationFigureAriaLabel}\n />\n </div>\n <section class=\"slide__copy\">\n <div class=\"slide__copy-container\">\n <header class=\"slide__copy-header\">\n <img\n src={ICON_NEXT}\n alt={\n this.#componentLocale.copyright.illustrationAlternativeText\n }\n />\n <h2 class=\"slide__copy-title\">\n {this.#componentLocale.copyright.title}\n </h2>\n </header>\n <div class=\"slide__copy-description\">\n <p>\n <span class=\"version\">\n {this.#componentLocale.copyright.version}\n <span>{this.version}</span>\n </span>\n <span>{this.#componentLocale.copyright.c1988}</span>\n <span> — {currentYear} </span>\n <span>\n {this.#componentLocale.copyright.allRightsReserved}\n </span>\n </p>\n <p>{this.#componentLocale.copyright.description}</p>\n </div>\n </div>\n </section>\n </section>\n </Host>\n );\n }\n}\n"],"mappings":";;;;AAAA,MAAMA,IAAY;;;;;;;;;;;;;;;;;ACgBlB,MAAMC,IAA0BC,EAC9B;;AAEF,MAAMC,IAAYD,EAChB;;AAEF,MAAME,IAAsB;;AAC5B,MAAMC,IAA8B,EAAC,qBAAqB;;MAQ7CC,IAAa;;;;;;;QAKxBC,EAAAC,IAAAC,WAAA;yBAOkC;;wBAUO;;EAEzC,mBAAAC,CAAoBC;IAClB,IAAIA,GAAc;MAChBF,KAAKG,gBAAgB;MACrBC,YAAW;;QAETJ,KAAKK,GAAGC;AAAQ,UACfX;;;EAIP,uBAAMY;IACJC,EAAAR,MAAIF,SAA0BW,EAAOC,oBAAoBV,KAAKK,KAAG;;EAGnE,gBAAAM;IACEX,KAAKG,gBAAgB;;EAGvB,MAAAS;IACE,MAAMC,KAAc,IAAIC,MAAOC;IAE/B,OACEC,EAACC,GAAI,MACHD,EAAA;MAAUE,OAAOtB;QACjBoB,EAAA;MACEG,OAAO;QAAEC,OAAS;QAAM,kBAAkBpB,KAAKG;;MAC/CkB,OAAO;QAAE,yBAAyB,GAAG1B;;OAErCqB,EAAA;MACEG,OAAM;MACNG,MAAK;MAAK,cACEC,EAAAvB,MAAIF,GAAA,KAAkB0B,UAAUC;OAE5CT,EAAA;;MAEEU,KAAKlC;MACL2B,OAAM;MACNQ,KAAKJ,EAAAvB,MAAIF,GAAA,KAAkB0B,UAAUI;SAGzCZ,EAAA;MAASG,OAAM;OACbH,EAAA;MAAKG,OAAM;OACTH,EAAA;MAAQG,OAAM;OACZH,EAAA;MACEU,KAAKhC;MACLiC,KACEJ,EAAAvB,MAAIF,GAAA,KAAkB0B,UAAUK;QAGpCb,EAAA;MAAIG,OAAM;OACPI,EAAAvB,MAAIF,GAAA,KAAkB0B,UAAUM,SAGrCd,EAAA;MAAKG,OAAM;OACTH,EAAA,WACEA,EAAA;MAAMG,OAAM;OACTI,EAAAvB,MAAIF,GAAA,KAAkB0B,UAAUO,SACjCf,EAAA,cAAOhB,KAAK+B,WAEdf,EAAA,cAAOO,EAAAvB,MAAIF,GAAA,KAAkB0B,UAAUQ,QACvChB,EAAA,qBAAUH,GAAW,MACrBG,EAAA,cACGO,EAAAvB,MAAIF,GAAA,KAAkB0B,UAAUS,qBAGrCjB,EAAA,WAAIO,EAAAvB,MAAIF,GAAA,KAAkB0B,UAAUU"}
@@ -4,7 +4,7 @@ import { L as s } from "./p-74d59062.js";
4
4
 
5
5
  import { r as l } from "./p-3ef5a5a6.js";
6
6
 
7
- import { f as n } from "./p-41ea711a.js";
7
+ import { f as n } from "./p-b8624c0b.js";
8
8
 
9
9
  const g = ":root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-01--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-02{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-02--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--color-on-primary)}.gxg-title-03{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-03--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-04{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-04--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-05{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-05--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable)}.gxg-text--negative{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text--gray{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--dimmed)}.gxg-quote{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);font-style:italic}.gxg-quote--negative{color:var(--ds-base-font-color--negative)}.gxg-link{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--ds-base-font-color--link-hover)}.gxg-link:active{color:var(--ds-base-font-color--link-active)}.gxg-link-gray{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed)}.gxg-link-gray:hover{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed);filter:brightness(1.4)}.gxg-alert-error{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--error);display:inline-block}.gxg-alert-warning{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--warning);display:inline-block}.gxg-alert-success{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--success);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--ds-base-font-family-primary);font-weight:var(--gxg-label-font-weight);font-size:var(--gxg-label-font-size);color:var(--gxg-label-color);text-align:center;line-height:1.455em;display:flex;align-items:center}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gxg-scrollbar::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}:host{display:grid;block-size:100%}.card-regular{background-color:var(--mer-surface__elevation--01);border:var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);border-radius:var(--mer-border__radius--md);padding:var(--mer-spacing--md) var(--mer-spacing--md);display:grid}.card-small{background-color:var(--mer-surface__elevation--02);border-radius:var(--mer-border__radius--sm);padding:var(--mer-spacing--sm) var(--mer-spacing--sm)}.card-small--actionable:hover{background-color:var(--mer-color__neutral-gray--600)}.card-small--actionable:active{background-color:var(--mer-color__neutral-gray--650)}.card-small:focus-visible{outline:var(--focus__outline-width) var(--focus__outline-style) var(--focus__outline-color);outline-offset:var(--focus__outline-offset)}.empty-state{block-size:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--mer-spacing--sm);text-align:center}.empty-state__title,.empty-state__button,.empty-state__link{max-inline-size:300px}.opacity-0{opacity:0}.opacity-1{opacity:1}.display-contents{display:contents}.gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.justify-start{display:flex;justify-content:start}.justify-center{display:flex;justify-content:center}.justify-end{display:flex;justify-content:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--mer-color__neutral-gray--800)}ch-grid-column:first-child{padding-inline-start:var(--gx-ide-container__padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gx-ide-container__padding) !important}ch-grid-cell{--mer-spacing--xs:var(--gx-ide-container__padding)}.layout{display:grid;gap:var(--mer-spacing--lg);box-sizing:border-box}.layout--two-cols{grid-template-columns:1fr 1fr}.layout--space-above{padding-block-start:var(--mer-spacing--lg)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--mer-font__weight--regular);font-size:var(--mer-font__size--xs);font-family:var(--mer-font-family--primary);height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-main::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-main::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-main::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-overflow::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.tree-view-primary{font-size:var(--mer-font__size--2xs)}p{margin:0;font-size:var(--mer-font__size--xxs)}.buttons-container{display:flex;gap:var(--mer-spacing--xs)}:host{display:block;border:1px solid var(--gxg-border-color--regular);background-color:var(--mer-color__surface)}.grid-data{grid-template-columns:repeat(2, 1fr)}.grid-data-account{grid-template-columns:auto 1fr}.grid-data-account>:nth-child(1){grid-area:1/1/2/3}.grid-data-account>:nth-child(6){grid-area:4/2/5/3}.grid-data-kbs{display:flex;flex-direction:column;gap:var(--gx-ide-grid-row-gap)}.grid-data-kbs .search-kbs{width:100%;display:flex}.grid-data-kbs .box-kbs{height:150px}.grid-data-kbs-footer{display:flex}.flex{display:flex}.flex>:nth-child(2){flex:1}";
10
10
 
@@ -238,4 +238,4 @@ const d = class {
238
238
  d.style = g;
239
239
 
240
240
  export { d as gx_ide_create_kb_from_server };
241
- //# sourceMappingURL=p-b1f6fdd6.entry.js.map
241
+ //# sourceMappingURL=p-cf2c8b3c.entry.js.map
@@ -0,0 +1,20 @@
1
+ export declare class GxIdeUiSplash {
2
+ #private;
3
+ el: HTMLGxIdeSplashElement;
4
+ /**
5
+ * When true the slider will be visible. Used to display and hide the slide with a smooth transition.
6
+ */
7
+ splashVisible: boolean;
8
+ /**
9
+ * The copyright version. ie.: "Salto 103300"
10
+ */
11
+ readonly version: string;
12
+ /**
13
+ * If true, the splash with first disappear with a fade-out subtle effect, and then it will automatically be removed from the DOM.
14
+ */
15
+ readonly removeSplash: boolean;
16
+ removeSplashChanged(removeSplash: boolean): void;
17
+ componentWillLoad(): Promise<void>;
18
+ componentDidLoad(): void;
19
+ render(): any;
20
+ }
@@ -1,82 +1,60 @@
1
1
  export declare class GxIdeStartPage {
2
2
  #private;
3
- /**
4
- * The component hard-coded strings translations.
5
- */
6
- private _componentLocale;
7
3
  el: HTMLGxIdeStartPageElement;
4
+ kbFilterValue: string;
5
+ kbFilterValueChanged(newKbFilterValue: string): void;
8
6
  /**
9
- * The condition required to display the kbs filter
10
- */
11
- displayKbsFilter: boolean;
12
- /**
13
- * The condition required to display the news filter
14
- */
15
- displayNewsFilter: boolean;
16
- /**
17
- * The filtered KBs after user input
7
+ * The kbs after the filter value.
18
8
  */
19
9
  filteredKbs: RecentKBData[];
20
10
  /**
21
- * The filtered news after user input
22
- */
23
- filteredNews: NewsData[];
24
- /**
25
- * True if kbs have been not loaded yet.
26
- */
27
- loadingKbs: boolean;
28
- /**
29
- * A list of recent news
11
+ * True if the start page is waiting, either for the kb's list or the secondary section.
30
12
  */
31
- news: NewsData[];
32
- watchNews(news: NewsData[]): void;
13
+ loading: boolean;
33
14
  /**
34
- * The filter value for the recent news set by the user input
15
+ * Callback invoked to create a new KB. It must be specified whether this create is create from server or not, through the parameter 'fromServer'.
35
16
  */
36
- newsFilterValue: string;
17
+ readonly createKBCallback: (fromServer: boolean) => Promise<void>;
37
18
  /**
38
- * True if the component has been rendered for the first time.
19
+ * Callback invoked to open a KB when the user clicks on a KB card.
39
20
  */
40
- renderedFirstTime: boolean;
21
+ readonly openKbCallback: (id: string) => Promise<void>;
41
22
  /**
42
- * Callback invoked to load the news feed (right panel "Recent News").
23
+ * The secondary section that will appear below the "Create a new Knowledge Base" main section. This section will be displayed if there are no recent kbs.
43
24
  */
44
- readonly getNewsCallback: GetNewsCallback;
25
+ readonly secondarySection?: SecondarySection;
45
26
  /**
46
- * Ann array of the user's KB's
27
+ * User's kbs array
47
28
  */
48
29
  readonly kbs: RecentKBData[];
49
- kbsChanged(kbs: RecentKBData[]): void;
30
+ kbsChanged(newKbs: RecentKBData[]): void;
50
31
  /**
51
- * The minimum number of "kbs" that is required to display the kb's filter.
32
+ * The minimum required of kbs to display a filter.
52
33
  */
53
34
  readonly kbsFilterThreshold: number;
54
- /**
55
- * The minimum number of "news" that is required to display the news's filter.
56
- */
57
- readonly newsFilterThreshold: number;
58
- /**
59
- * Callback invoked to open a knowledge base when the user clicks on a KB card.
60
- */
61
- readonly openKbCallback: OpenKbCallback;
62
- /**
63
- * Callback invoked to open a news article.
64
- */
65
- readonly openNewsCallback: OpenNewsCallback;
66
35
  componentWillLoad(): Promise<void>;
67
- componentDidLoad(): void;
68
36
  render(): any;
69
37
  }
70
- export type OpenKbCallback = (id: string) => Promise<void>;
71
- export type GetNewsCallback = () => Promise<NewsData[]>;
72
- export type OpenNewsCallback = (id: string) => Promise<void>;
73
38
  export type RecentKBData = {
74
- id: string;
39
+ id?: string;
75
40
  name: string;
76
41
  lastOpenedDate?: Date;
42
+ icon: string;
43
+ };
44
+ export type SecondarySection = {
45
+ title: string;
46
+ cards: CardInfo[];
77
47
  };
78
- export type NewsData = {
79
- id: string;
48
+ export type CardInfo = {
49
+ icon?: {
50
+ src: string;
51
+ ariaLabel: string;
52
+ };
80
53
  title: string;
81
- body: string;
54
+ description: string[];
55
+ action?: {
56
+ iconSrc: string;
57
+ caption: string;
58
+ callback?: () => void;
59
+ };
82
60
  };
@@ -0,0 +1,63 @@
1
+ export declare class GxIdeWelcomePage {
2
+ #private;
3
+ el: HTMLGxIdeWelcomePageElement;
4
+ /**
5
+ * The current active slide index from 'slides' Prop. It does not considers the very first slide "Copyright".
6
+ */
7
+ activeSlideIndex: number;
8
+ /**
9
+ * When true the slider will be visible. Used to display and hide the slide with a smooth transition.
10
+ */
11
+ displaySlider: boolean;
12
+ /**
13
+ * True if the very first slide is visible (The copyright slide)
14
+ */
15
+ copyrightsVisible: boolean;
16
+ /**
17
+ * True if the user has reached the last slide. Used to hide/disable the navigation.
18
+ */
19
+ lastSlideReached: boolean;
20
+ /**
21
+ * When true the slider will be visible. Used to display and hide the slider with a smooth transition.
22
+ */
23
+ sliderVisible: boolean;
24
+ /**
25
+ * True if a slide is transitioning, false otherwise. Used to disable the navigation arrows while transitioning.
26
+ */
27
+ slideTransitioning: boolean;
28
+ /**
29
+ * True if the user has changed slides by clicking on the navigation dots, or by using the keyboard arrows. This is used to know evaluate the slide transition setTimeOut. If the user has navigated, automatic slide transition should be turned off.
30
+ */
31
+ userHasChangedSlide: boolean;
32
+ /**
33
+ * The transition type between the slides. "static" requires the user to navigate by clicking the navigation dots. "auto" will transition automatically after a calculated amount of time.
34
+ */
35
+ readonly transitionType: TransitionType;
36
+ /**
37
+ * The estimated amount of words per minute that the user requires to read a slide. This value is used to return the time each slide is freezed before transitioning to the next one. Only evaluated when transitionType is set to "auto".
38
+ */
39
+ readonly wordsPerMinute: number;
40
+ /**
41
+ * Callback invoked when the user closes the slider by pressing the close button.
42
+ */
43
+ readonly closeCallback: CloseCallback;
44
+ /**
45
+ * An array of slides, with the information that each slide requires. This slides appear after the first slide (Copyrights) that is defined inside the component.
46
+ */
47
+ readonly slides: SlideInfo[];
48
+ componentWillLoad(): Promise<void>;
49
+ componentDidLoad(): void;
50
+ render(): any;
51
+ }
52
+ export type SlideInfo = {
53
+ illustration: {
54
+ url: string;
55
+ alt: string;
56
+ };
57
+ title: string;
58
+ description?: string[];
59
+ descriptionAsChunks?: boolean;
60
+ listItems?: string[];
61
+ };
62
+ export type CloseCallback = () => Promise<void>;
63
+ export type TransitionType = "static" | "auto";
@@ -41,10 +41,9 @@ import { CancelCallback as CancelCallback10, CreateCallback, GetDataSourcesCallb
41
41
  import { CancelCallback as CancelCallback11, CreateCallback as CreateCallback1, GetDataSourcesCallback as GetDataSourcesCallback1, GetFrontEndsCallback as GetFrontEndsCallback1, SelectLocationCallback } from "./components/new-kb/new-kb";
42
42
  import { CancelCallback as CancelCallback12, CreateCallback as CreateCallback2, NewObjectData, SelectModuleCallback as SelectModuleCallback1, TypeCategoryData, ValidateNameCallback } from "./components/new-object/new-object";
43
43
  import { CancelCallback as CancelCallback13, LoadCallback as LoadCallback2, NewObjectCallback, OpenSelectionCallback, SelectModuleCallback as SelectModuleCallback2 } from "./components/object-selector/object-selector";
44
- import { GetNewsCallback, OpenNewsCallback } from "./components/start-page/start-page";
45
44
  import { LoadReferencesCallback, ObjectData as ObjectData1, OpenObjectCallback, OpenSelectorDialogCallback, SelectorSourceCallback, SelectReferenceCallback } from "./components/references/references";
46
45
  import { CreateKBCallback } from "./components/share-kb/share-kb";
47
- import { GetNewsCallback as GetNewsCallback1, OpenKbCallback, OpenNewsCallback as OpenNewsCallback1, RecentKBData } from "./components/start-page/start-page";
46
+ import { RecentKBData, SecondarySection } from "./components/start-page/start-page";
48
47
  import { CheckedItemsInfo as CheckedItemsInfo1 } from "./components/_helpers/list-selector/list-selector";
49
48
  import { CommitCallback, CommitSelectCallback, GetRecentComment, LoadCallback as LoadCallback3, ObjectsContextMenuCallback, PendingItemsCheckedCallback } from "./components/team-dev/commit/commit";
50
49
  import { cancelCallback, confirmCallback } from "./components/team-dev/select-recent-comment/select-recent-comment";
@@ -52,6 +51,7 @@ import { ConfirmCallback as ConfirmCallback6, GridContextMenuCallback, LoadCallb
52
51
  import { AddCallback, CancelCallback as CancelCallback14, ConfirmCallback as ConfirmCallback7, ObjectData as ObjectData2 } from "./components/team-dev/update-partial-selection/update-partial-selection";
53
52
  import { cancelCallbackFn, confirmCallbackFn } from "./components/team-dev/update-to-revision/update-to-revision";
54
53
  import { TitleAlignment as TitleAlignment1, TitleType as TitleType1 } from "./components/_helpers/title/title";
54
+ import { CloseCallback as CloseCallback1, SlideInfo, TransitionType } from "./components/welcome-page/welcome-page";
55
55
  import { WFConfigData } from "./components/wf-settings/wf-settings";
56
56
  import { ContextMenuCallback, DeleteSelectionCallback, LoadCallback as LoadCallback5, LoadImageItemsCallback, NewObjectCallback as NewObjectCallback1, OpenSelectionCallback as OpenSelectionCallback1, SelectionObjectCallback, SelectModuleCallback as SelectModuleCallback3 } from "./components/ww-images/ww-images";
57
57
  export { AiStatus, Message, UserMessageCallback } from "./components/ai-assistant/ai-assistant";
@@ -90,10 +90,9 @@ export { CancelCallback as CancelCallback10, CreateCallback, GetDataSourcesCallb
90
90
  export { CancelCallback as CancelCallback11, CreateCallback as CreateCallback1, GetDataSourcesCallback as GetDataSourcesCallback1, GetFrontEndsCallback as GetFrontEndsCallback1, SelectLocationCallback } from "./components/new-kb/new-kb";
91
91
  export { CancelCallback as CancelCallback12, CreateCallback as CreateCallback2, NewObjectData, SelectModuleCallback as SelectModuleCallback1, TypeCategoryData, ValidateNameCallback } from "./components/new-object/new-object";
92
92
  export { CancelCallback as CancelCallback13, LoadCallback as LoadCallback2, NewObjectCallback, OpenSelectionCallback, SelectModuleCallback as SelectModuleCallback2 } from "./components/object-selector/object-selector";
93
- export { GetNewsCallback, OpenNewsCallback } from "./components/start-page/start-page";
94
93
  export { LoadReferencesCallback, ObjectData as ObjectData1, OpenObjectCallback, OpenSelectorDialogCallback, SelectorSourceCallback, SelectReferenceCallback } from "./components/references/references";
95
94
  export { CreateKBCallback } from "./components/share-kb/share-kb";
96
- export { GetNewsCallback as GetNewsCallback1, OpenKbCallback, OpenNewsCallback as OpenNewsCallback1, RecentKBData } from "./components/start-page/start-page";
95
+ export { RecentKBData, SecondarySection } from "./components/start-page/start-page";
97
96
  export { CheckedItemsInfo as CheckedItemsInfo1 } from "./components/_helpers/list-selector/list-selector";
98
97
  export { CommitCallback, CommitSelectCallback, GetRecentComment, LoadCallback as LoadCallback3, ObjectsContextMenuCallback, PendingItemsCheckedCallback } from "./components/team-dev/commit/commit";
99
98
  export { cancelCallback, confirmCallback } from "./components/team-dev/select-recent-comment/select-recent-comment";
@@ -101,6 +100,7 @@ export { ConfirmCallback as ConfirmCallback6, GridContextMenuCallback, LoadCallb
101
100
  export { AddCallback, CancelCallback as CancelCallback14, ConfirmCallback as ConfirmCallback7, ObjectData as ObjectData2 } from "./components/team-dev/update-partial-selection/update-partial-selection";
102
101
  export { cancelCallbackFn, confirmCallbackFn } from "./components/team-dev/update-to-revision/update-to-revision";
103
102
  export { TitleAlignment as TitleAlignment1, TitleType as TitleType1 } from "./components/_helpers/title/title";
103
+ export { CloseCallback as CloseCallback1, SlideInfo, TransitionType } from "./components/welcome-page/welcome-page";
104
104
  export { WFConfigData } from "./components/wf-settings/wf-settings";
105
105
  export { ContextMenuCallback, DeleteSelectionCallback, LoadCallback as LoadCallback5, LoadImageItemsCallback, NewObjectCallback as NewObjectCallback1, OpenSelectionCallback as OpenSelectionCallback1, SelectionObjectCallback, SelectModuleCallback as SelectModuleCallback3 } from "./components/ww-images/ww-images";
106
106
  export namespace Components {
@@ -1368,20 +1368,6 @@ export namespace Components {
1368
1368
  */
1369
1369
  "validate": () => Promise<boolean>;
1370
1370
  }
1371
- interface GxIdeRecentNews {
1372
- /**
1373
- * The news filter value inserted by the user on the news input filter
1374
- */
1375
- "filterValue": string;
1376
- /**
1377
- * Callback invoked to load the news feed (right panel "Recent News").
1378
- */
1379
- "getNewsCallback": GetNewsCallback;
1380
- /**
1381
- * Callback invoked to open a news article.
1382
- */
1383
- "openNewsCallback": OpenNewsCallback;
1384
- }
1385
1371
  interface GxIdeReferences {
1386
1372
  /**
1387
1373
  * If true it displays the component title on the header
@@ -1434,31 +1420,37 @@ export namespace Components {
1434
1420
  */
1435
1421
  "serverUrls": string[];
1436
1422
  }
1423
+ interface GxIdeSplash {
1424
+ /**
1425
+ * If true, the splash with first disappear with a fade-out subtle effect, and then it will automatically be removed from the DOM.
1426
+ */
1427
+ "removeSplash": boolean;
1428
+ /**
1429
+ * The copyright version. ie.: "Salto 103300"
1430
+ */
1431
+ "version": string;
1432
+ }
1437
1433
  interface GxIdeStartPage {
1438
1434
  /**
1439
- * Callback invoked to load the news feed (right panel "Recent News").
1435
+ * Callback invoked to create a new KB. It must be specified whether this create is create from server or not, through the parameter 'fromServer'.
1440
1436
  */
1441
- "getNewsCallback": GetNewsCallback1;
1437
+ "createKBCallback": (fromServer: boolean) => Promise<void>;
1442
1438
  /**
1443
- * Ann array of the user's KB's
1439
+ * User's kbs array
1444
1440
  */
1445
1441
  "kbs": RecentKBData[];
1446
1442
  /**
1447
- * The minimum number of "kbs" that is required to display the kb's filter.
1443
+ * The minimum required of kbs to display a filter.
1448
1444
  */
1449
1445
  "kbsFilterThreshold": number;
1450
1446
  /**
1451
- * The minimum number of "news" that is required to display the news's filter.
1447
+ * Callback invoked to open a KB when the user clicks on a KB card.
1452
1448
  */
1453
- "newsFilterThreshold": number;
1449
+ "openKbCallback": (id: string) => Promise<void>;
1454
1450
  /**
1455
- * Callback invoked to open a knowledge base when the user clicks on a KB card.
1451
+ * The secondary section that will appear below the "Create a new Knowledge Base" main section. This section will be displayed if there are no recent kbs.
1456
1452
  */
1457
- "openKbCallback": OpenKbCallback;
1458
- /**
1459
- * Callback invoked to open a news article.
1460
- */
1461
- "openNewsCallback": OpenNewsCallback1;
1453
+ "secondarySection"?: SecondarySection;
1462
1454
  }
1463
1455
  interface GxIdeStatusButtons {
1464
1456
  /**
@@ -1732,6 +1724,24 @@ export namespace Components {
1732
1724
  */
1733
1725
  "topBarTitle": string;
1734
1726
  }
1727
+ interface GxIdeWelcomePage {
1728
+ /**
1729
+ * Callback invoked when the user closes the slider by pressing the close button.
1730
+ */
1731
+ "closeCallback": CloseCallback1;
1732
+ /**
1733
+ * An array of slides, with the information that each slide requires. This slides appear after the first slide (Copyrights) that is defined inside the component.
1734
+ */
1735
+ "slides": SlideInfo[];
1736
+ /**
1737
+ * The transition type between the slides. "static" requires the user to navigate by clicking the navigation dots. "auto" will transition automatically after a calculated amount of time.
1738
+ */
1739
+ "transitionType": TransitionType;
1740
+ /**
1741
+ * The estimated amount of words per minute that the user requires to read a slide. This value is used to return the time each slide is freezed before transitioning to the next one. Only evaluated when transitionType is set to "auto".
1742
+ */
1743
+ "wordsPerMinute": number;
1744
+ }
1735
1745
  interface GxIdeWfSettings {
1736
1746
  /**
1737
1747
  * Callback invoked when the user presses the 'Cancel' button.
@@ -2441,12 +2451,6 @@ declare global {
2441
2451
  prototype: HTMLGxIdeObjectSelectorElement;
2442
2452
  new (): HTMLGxIdeObjectSelectorElement;
2443
2453
  };
2444
- interface HTMLGxIdeRecentNewsElement extends Components.GxIdeRecentNews, HTMLStencilElement {
2445
- }
2446
- var HTMLGxIdeRecentNewsElement: {
2447
- prototype: HTMLGxIdeRecentNewsElement;
2448
- new (): HTMLGxIdeRecentNewsElement;
2449
- };
2450
2454
  interface HTMLGxIdeReferencesElementEventMap {
2451
2455
  "componentDidRenderFirstTime": string;
2452
2456
  }
@@ -2481,6 +2485,12 @@ declare global {
2481
2485
  prototype: HTMLGxIdeShareKbElement;
2482
2486
  new (): HTMLGxIdeShareKbElement;
2483
2487
  };
2488
+ interface HTMLGxIdeSplashElement extends Components.GxIdeSplash, HTMLStencilElement {
2489
+ }
2490
+ var HTMLGxIdeSplashElement: {
2491
+ prototype: HTMLGxIdeSplashElement;
2492
+ new (): HTMLGxIdeSplashElement;
2493
+ };
2484
2494
  interface HTMLGxIdeStartPageElement extends Components.GxIdeStartPage, HTMLStencilElement {
2485
2495
  }
2486
2496
  var HTMLGxIdeStartPageElement: {
@@ -2641,6 +2651,12 @@ declare global {
2641
2651
  prototype: HTMLGxIdeTopBarElement;
2642
2652
  new (): HTMLGxIdeTopBarElement;
2643
2653
  };
2654
+ interface HTMLGxIdeWelcomePageElement extends Components.GxIdeWelcomePage, HTMLStencilElement {
2655
+ }
2656
+ var HTMLGxIdeWelcomePageElement: {
2657
+ prototype: HTMLGxIdeWelcomePageElement;
2658
+ new (): HTMLGxIdeWelcomePageElement;
2659
+ };
2644
2660
  interface HTMLGxIdeWfSettingsElementEventMap {
2645
2661
  "componentDidRenderFirstTime": string;
2646
2662
  }
@@ -2710,9 +2726,9 @@ declare global {
2710
2726
  "gx-ide-new-kb": HTMLGxIdeNewKbElement;
2711
2727
  "gx-ide-new-object": HTMLGxIdeNewObjectElement;
2712
2728
  "gx-ide-object-selector": HTMLGxIdeObjectSelectorElement;
2713
- "gx-ide-recent-news": HTMLGxIdeRecentNewsElement;
2714
2729
  "gx-ide-references": HTMLGxIdeReferencesElement;
2715
2730
  "gx-ide-share-kb": HTMLGxIdeShareKbElement;
2731
+ "gx-ide-splash": HTMLGxIdeSplashElement;
2716
2732
  "gx-ide-start-page": HTMLGxIdeStartPageElement;
2717
2733
  "gx-ide-status-buttons": HTMLGxIdeStatusButtonsElement;
2718
2734
  "gx-ide-switch-panel": HTMLGxIdeSwitchPanelElement;
@@ -2726,6 +2742,7 @@ declare global {
2726
2742
  "gx-ide-test": HTMLGxIdeTestElement;
2727
2743
  "gx-ide-title": HTMLGxIdeTitleElement;
2728
2744
  "gx-ide-top-bar": HTMLGxIdeTopBarElement;
2745
+ "gx-ide-welcome-page": HTMLGxIdeWelcomePageElement;
2729
2746
  "gx-ide-wf-settings": HTMLGxIdeWfSettingsElement;
2730
2747
  "gx-ide-ww-images": HTMLGxIdeWwImagesElement;
2731
2748
  }
@@ -4055,20 +4072,6 @@ declare namespace LocalJSX {
4055
4072
  */
4056
4073
  "types": ObjectType[];
4057
4074
  }
4058
- interface GxIdeRecentNews {
4059
- /**
4060
- * The news filter value inserted by the user on the news input filter
4061
- */
4062
- "filterValue"?: string;
4063
- /**
4064
- * Callback invoked to load the news feed (right panel "Recent News").
4065
- */
4066
- "getNewsCallback": GetNewsCallback;
4067
- /**
4068
- * Callback invoked to open a news article.
4069
- */
4070
- "openNewsCallback": OpenNewsCallback;
4071
- }
4072
4075
  interface GxIdeReferences {
4073
4076
  /**
4074
4077
  * If true it displays the component title on the header
@@ -4129,31 +4132,37 @@ declare namespace LocalJSX {
4129
4132
  */
4130
4133
  "serverUrls": string[];
4131
4134
  }
4135
+ interface GxIdeSplash {
4136
+ /**
4137
+ * If true, the splash with first disappear with a fade-out subtle effect, and then it will automatically be removed from the DOM.
4138
+ */
4139
+ "removeSplash"?: boolean;
4140
+ /**
4141
+ * The copyright version. ie.: "Salto 103300"
4142
+ */
4143
+ "version": string;
4144
+ }
4132
4145
  interface GxIdeStartPage {
4133
4146
  /**
4134
- * Callback invoked to load the news feed (right panel "Recent News").
4147
+ * Callback invoked to create a new KB. It must be specified whether this create is create from server or not, through the parameter 'fromServer'.
4135
4148
  */
4136
- "getNewsCallback": GetNewsCallback1;
4149
+ "createKBCallback": (fromServer: boolean) => Promise<void>;
4137
4150
  /**
4138
- * Ann array of the user's KB's
4151
+ * User's kbs array
4139
4152
  */
4140
4153
  "kbs"?: RecentKBData[];
4141
4154
  /**
4142
- * The minimum number of "kbs" that is required to display the kb's filter.
4155
+ * The minimum required of kbs to display a filter.
4143
4156
  */
4144
4157
  "kbsFilterThreshold"?: number;
4145
4158
  /**
4146
- * The minimum number of "news" that is required to display the news's filter.
4147
- */
4148
- "newsFilterThreshold"?: number;
4149
- /**
4150
- * Callback invoked to open a knowledge base when the user clicks on a KB card.
4159
+ * Callback invoked to open a KB when the user clicks on a KB card.
4151
4160
  */
4152
- "openKbCallback": OpenKbCallback;
4161
+ "openKbCallback": (id: string) => Promise<void>;
4153
4162
  /**
4154
- * Callback invoked to open a news article.
4163
+ * The secondary section that will appear below the "Create a new Knowledge Base" main section. This section will be displayed if there are no recent kbs.
4155
4164
  */
4156
- "openNewsCallback": OpenNewsCallback1;
4165
+ "secondarySection"?: SecondarySection;
4157
4166
  }
4158
4167
  interface GxIdeStatusButtons {
4159
4168
  /**
@@ -4459,6 +4468,24 @@ declare namespace LocalJSX {
4459
4468
  */
4460
4469
  "topBarTitle"?: string;
4461
4470
  }
4471
+ interface GxIdeWelcomePage {
4472
+ /**
4473
+ * Callback invoked when the user closes the slider by pressing the close button.
4474
+ */
4475
+ "closeCallback": CloseCallback1;
4476
+ /**
4477
+ * An array of slides, with the information that each slide requires. This slides appear after the first slide (Copyrights) that is defined inside the component.
4478
+ */
4479
+ "slides"?: SlideInfo[];
4480
+ /**
4481
+ * The transition type between the slides. "static" requires the user to navigate by clicking the navigation dots. "auto" will transition automatically after a calculated amount of time.
4482
+ */
4483
+ "transitionType"?: TransitionType;
4484
+ /**
4485
+ * The estimated amount of words per minute that the user requires to read a slide. This value is used to return the time each slide is freezed before transitioning to the next one. Only evaluated when transitionType is set to "auto".
4486
+ */
4487
+ "wordsPerMinute"?: number;
4488
+ }
4462
4489
  interface GxIdeWfSettings {
4463
4490
  /**
4464
4491
  * Callback invoked when the user presses the 'Cancel' button.
@@ -4601,9 +4628,9 @@ declare namespace LocalJSX {
4601
4628
  "gx-ide-new-kb": GxIdeNewKb;
4602
4629
  "gx-ide-new-object": GxIdeNewObject;
4603
4630
  "gx-ide-object-selector": GxIdeObjectSelector;
4604
- "gx-ide-recent-news": GxIdeRecentNews;
4605
4631
  "gx-ide-references": GxIdeReferences;
4606
4632
  "gx-ide-share-kb": GxIdeShareKb;
4633
+ "gx-ide-splash": GxIdeSplash;
4607
4634
  "gx-ide-start-page": GxIdeStartPage;
4608
4635
  "gx-ide-status-buttons": GxIdeStatusButtons;
4609
4636
  "gx-ide-switch-panel": GxIdeSwitchPanel;
@@ -4617,6 +4644,7 @@ declare namespace LocalJSX {
4617
4644
  "gx-ide-test": GxIdeTest;
4618
4645
  "gx-ide-title": GxIdeTitle;
4619
4646
  "gx-ide-top-bar": GxIdeTopBar;
4647
+ "gx-ide-welcome-page": GxIdeWelcomePage;
4620
4648
  "gx-ide-wf-settings": GxIdeWfSettings;
4621
4649
  "gx-ide-ww-images": GxIdeWwImages;
4622
4650
  }
@@ -4658,9 +4686,9 @@ declare module "@stencil/core" {
4658
4686
  "gx-ide-new-kb": LocalJSX.GxIdeNewKb & JSXBase.HTMLAttributes<HTMLGxIdeNewKbElement>;
4659
4687
  "gx-ide-new-object": LocalJSX.GxIdeNewObject & JSXBase.HTMLAttributes<HTMLGxIdeNewObjectElement>;
4660
4688
  "gx-ide-object-selector": LocalJSX.GxIdeObjectSelector & JSXBase.HTMLAttributes<HTMLGxIdeObjectSelectorElement>;
4661
- "gx-ide-recent-news": LocalJSX.GxIdeRecentNews & JSXBase.HTMLAttributes<HTMLGxIdeRecentNewsElement>;
4662
4689
  "gx-ide-references": LocalJSX.GxIdeReferences & JSXBase.HTMLAttributes<HTMLGxIdeReferencesElement>;
4663
4690
  "gx-ide-share-kb": LocalJSX.GxIdeShareKb & JSXBase.HTMLAttributes<HTMLGxIdeShareKbElement>;
4691
+ "gx-ide-splash": LocalJSX.GxIdeSplash & JSXBase.HTMLAttributes<HTMLGxIdeSplashElement>;
4664
4692
  "gx-ide-start-page": LocalJSX.GxIdeStartPage & JSXBase.HTMLAttributes<HTMLGxIdeStartPageElement>;
4665
4693
  "gx-ide-status-buttons": LocalJSX.GxIdeStatusButtons & JSXBase.HTMLAttributes<HTMLGxIdeStatusButtonsElement>;
4666
4694
  "gx-ide-switch-panel": LocalJSX.GxIdeSwitchPanel & JSXBase.HTMLAttributes<HTMLGxIdeSwitchPanelElement>;
@@ -4674,6 +4702,7 @@ declare module "@stencil/core" {
4674
4702
  "gx-ide-test": LocalJSX.GxIdeTest & JSXBase.HTMLAttributes<HTMLGxIdeTestElement>;
4675
4703
  "gx-ide-title": LocalJSX.GxIdeTitle & JSXBase.HTMLAttributes<HTMLGxIdeTitleElement>;
4676
4704
  "gx-ide-top-bar": LocalJSX.GxIdeTopBar & JSXBase.HTMLAttributes<HTMLGxIdeTopBarElement>;
4705
+ "gx-ide-welcome-page": LocalJSX.GxIdeWelcomePage & JSXBase.HTMLAttributes<HTMLGxIdeWelcomePageElement>;
4677
4706
  "gx-ide-wf-settings": LocalJSX.GxIdeWfSettings & JSXBase.HTMLAttributes<HTMLGxIdeWfSettingsElement>;
4678
4707
  "gx-ide-ww-images": LocalJSX.GxIdeWwImages & JSXBase.HTMLAttributes<HTMLGxIdeWwImagesElement>;
4679
4708
  }
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.0.19",
4
+ "version": "1.0.20",
5
5
  "description": "GeneXus IDE UI components",
6
6
  "main": "dist/index.cjs.js",
7
7
  "module": "dist/index.js",
@@ -33,13 +33,13 @@
33
33
  "validate.ci": "npm run build -- --max-workers 1 --debug"
34
34
  },
35
35
  "peerDependencies": {
36
- "@genexus/gemini": "*2.0.1",
37
36
  "@genexus/chameleon-controls-library": ">=6.0.0-next.50",
37
+ "@genexus/gemini": "*2.0.1",
38
38
  "@genexus/mercury": "*0.9.14"
39
39
  },
40
40
  "devDependencies": {
41
- "@genexus/gemini": "*2.0.1",
42
41
  "@genexus/chameleon-controls-library": ">=6.0.0-next.50",
42
+ "@genexus/gemini": "*2.0.1",
43
43
  "@genexus/mercury": "*0.9.14",
44
44
  "@stencil-community/eslint-plugin": "~0.7.1",
45
45
  "@stencil/core": "~4.9.0",
@@ -57,5 +57,8 @@
57
57
  "prettier": "~2.7.0",
58
58
  "puppeteer": "~15.2.0",
59
59
  "typescript": "~5.2.0"
60
+ },
61
+ "dependencies": {
62
+ "date-fns": "^4.1.0"
60
63
  }
61
64
  }
@@ -1 +0,0 @@
1
- {"file":"form-validation-df39cabb.js","mappings":";;AAGA;MACa,oBAAoB,GAAG,CAClC,MAA+C,EAC/C,GAAQ;;IAER,MAAA,MAAM,CAAC,WAAW,0CAAE,OAAO,CAAC,OAAO;QACjC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACxB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAElC,MAAM,SAAS,GAAkB,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;QACjD,IAAI,SAAS,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE;YAC3C,SAAS,CAAC,gBAAgB,GAAG,OAAO,CAAC;YACrC,SAAS,CAAC,iBAAiB,GAAG,OAAO,CAAC;SACvC;aAAM,IAAI,SAAS,IAAI,CAAC,QAAQ,EAAE;YACjC,SAAS,CAAC,gBAAgB,GAAG,eAAe,CAAC;YAC7C,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC;SACpC;KACF,CAAC,CAAC;AACL,EAAE;AAEF;AACA,MAAM,kCAAkC,GAAG;IACzC,aAAa,EAAE,gBAAgB;IAC/B,qBAAqB,EAAE,iBAAiB;IACxC,SAAS,EAAE,kBAAkB;CACrB,CAAC;AAEX,MAAM,gBAAgB,GAAG,CAAC,QAAiB,EAAE,OAAoB;IAC/D,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IACrD,MAAM,UAAU,GACd,kCAAkC,CAChC,cAAiE,CAClE,CAAC;IACJ,IAAI,QAAQ,EAAE;QACZ,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KACnC;SAAM;QACL,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KACtC;AACH,CAAC,CAAC;MAEW,gBAAgB,GAAG,CAC9B,gBAAkC,EAClC,mBAAmD;IAEnD,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAChE,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW;QAC9C,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC;QACjC,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC;QAC3C,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClE,IAAI,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,SAAS,EAAE;;YAE/B,gBAAgB,CAAC,aAAa,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC5D,0BAA0B,CAAC,GAAG,CAAC,QAAQ,kCAClC,gBAAgB,KACnB,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,WAAW,CAAC,OAAO,IAC5B,CAAC;SACJ;KACF,CAAC,CAAC;;IAEH,OAAO,0BAA0B,CAAC;AACpC;;;;;","names":[],"sources":["src/common/form-validation.ts"],"sourcesContent":["import { FormSubmitResult, ConnectionResultData } from \"../common/types\";\nimport { FormComponent } from \"@genexus/gemini/dist/types/common/interfaces\";\n\n// formSubmitValidation will be deprecated. use \"validateControls\" instead.\nexport const formSubmitValidation = (\n result: FormSubmitResult | ConnectionResultData,\n ref: any\n) => {\n result.fieldErrors?.forEach(element => {\n const key = element.key;\n const message = element.message;\n const hasError = element.hasError;\n\n const reference: FormComponent = ref[`${key}El`];\n if (reference && hasError && message.trim()) {\n reference.validationStatus = \"error\";\n reference.validationMessage = message;\n } else if (reference && !hasError) {\n reference.validationStatus = \"indeterminate\";\n reference.validationMessage = null;\n }\n });\n};\n\n// TODO: Improve the way we mark components with error. We must not use error classes.\nconst formElementsErrorClassesDictionary = {\n \"ch-checkbox\": \"checkbox-error\",\n \"ch-combo-box-render\": \"combo-box-error\",\n \"ch-edit\": \"form-input-error\"\n} as const;\n\nconst toggleErrorClass = (hasError: boolean, element: HTMLElement) => {\n const elementTagName = element.tagName.toLowerCase();\n const errorClass =\n formElementsErrorClassesDictionary[\n elementTagName as keyof typeof formElementsErrorClassesDictionary\n ];\n if (hasError) {\n element.classList.add(errorClass);\n } else {\n element.classList.remove(errorClass);\n }\n};\n\nexport const validateControls = (\n formSubmitResult: FormSubmitResult,\n validatableControls: Map<string, ControlValidation>\n): Map<string, ControlValidation> => {\n const validatableControlsUpdated = new Map(validatableControls);\n formSubmitResult.fieldErrors.forEach(fieldResult => {\n const fieldKey = fieldResult.key;\n const fieldHasError = fieldResult.hasError;\n const controlMapRecord = validatableControlsUpdated.get(fieldKey);\n if (controlMapRecord?.reference) {\n // toggle class to add or remove error style\n toggleErrorClass(fieldHasError, controlMapRecord.reference);\n validatableControlsUpdated.set(fieldKey, {\n ...controlMapRecord,\n hasError: fieldHasError,\n message: fieldResult.message\n });\n }\n });\n // return validatableControls updated.\n return validatableControlsUpdated;\n};\n\nexport type ControlValidation = {\n reference: HTMLElement;\n hasError: boolean;\n message: string;\n};\n"],"version":3}