@genexus/genexus-ide-ui 1.0.34 → 1.0.36

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 (128) hide show
  1. package/dist/cjs/MERCURY_ASSETS-b23e31e2.js +9 -0
  2. package/dist/cjs/MERCURY_ASSETS-b23e31e2.js.map +1 -0
  3. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  4. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +1 -1
  5. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js +8 -8
  6. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js.map +1 -1
  7. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +1 -1
  8. package/dist/cjs/gx-ide-data-selector.cjs.entry.js +1 -1
  9. package/dist/cjs/gx-ide-design-import.cjs.entry.js +48 -35
  10. package/dist/cjs/gx-ide-design-import.cjs.entry.js.map +1 -1
  11. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +1 -1
  12. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +1 -1
  13. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +1 -1
  14. package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +1 -1
  15. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +1 -1
  16. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
  17. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
  18. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
  19. package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js +8 -7
  20. package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js.map +1 -1
  21. package/dist/cjs/gx-ide-start-page.cjs.entry.js +1 -1
  22. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js +15 -10
  23. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js.map +1 -1
  24. package/dist/cjs/loader.cjs.js +1 -1
  25. package/dist/collection/components/current-user-info/current-user-info.css +7 -5
  26. package/dist/collection/components/current-user-info/current-user-info.js +6 -6
  27. package/dist/collection/components/current-user-info/current-user-info.js.map +1 -1
  28. package/dist/collection/components/current-user-info/gx-ide-assets/current-user-info/langs/current-user-info.lang.en.json +1 -1
  29. package/dist/collection/components/current-user-info/gx-ide-assets/current-user-info/langs/current-user-info.lang.ja.json +1 -1
  30. package/dist/collection/components/current-user-info/gx-ide-assets/current-user-info/langs/current-user-info.lang.zh.json +1 -1
  31. package/dist/collection/components/design-import/design-import.css +8 -0
  32. package/dist/collection/components/design-import/design-import.js +46 -33
  33. package/dist/collection/components/design-import/design-import.js.map +1 -1
  34. package/dist/collection/components/design-import/gx-ide-assets/design-import/langs/design-import.lang.en.json +2 -1
  35. package/dist/collection/components/design-import/gx-ide-assets/design-import/langs/design-import.lang.ja.json +2 -1
  36. package/dist/collection/components/design-import/gx-ide-assets/design-import/langs/design-import.lang.zh.json +2 -1
  37. package/dist/collection/components/sign-in-team/sign-in-team.js +9 -6
  38. package/dist/collection/components/sign-in-team/sign-in-team.js.map +1 -1
  39. package/dist/collection/components/welcome-page/welcome-page.css +1 -1
  40. package/dist/collection/components/welcome-page/welcome-page.js +13 -8
  41. package/dist/collection/components/welcome-page/welcome-page.js.map +1 -1
  42. package/dist/components/MERCURY_ASSETS.js +1 -1
  43. package/dist/components/MERCURY_ASSETS.js.map +1 -1
  44. package/dist/components/gx-ide-current-user-info.js +7 -7
  45. package/dist/components/gx-ide-current-user-info.js.map +1 -1
  46. package/dist/components/gx-ide-design-import.js +47 -34
  47. package/dist/components/gx-ide-design-import.js.map +1 -1
  48. package/dist/components/gx-ide-sign-in-team.js +10 -8
  49. package/dist/components/gx-ide-sign-in-team.js.map +1 -1
  50. package/dist/components/gx-ide-welcome-page.js +14 -9
  51. package/dist/components/gx-ide-welcome-page.js.map +1 -1
  52. package/dist/esm/MERCURY_ASSETS-7a7c1795.js +7 -0
  53. package/dist/esm/MERCURY_ASSETS-7a7c1795.js.map +1 -0
  54. package/dist/esm/genexus-ide-ui.js +1 -1
  55. package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -1
  56. package/dist/esm/gx-ide-current-user-info.entry.js +8 -8
  57. package/dist/esm/gx-ide-current-user-info.entry.js.map +1 -1
  58. package/dist/esm/gx-ide-dashboard-home.entry.js +1 -1
  59. package/dist/esm/gx-ide-data-selector.entry.js +1 -1
  60. package/dist/esm/gx-ide-design-import.entry.js +48 -35
  61. package/dist/esm/gx-ide-design-import.entry.js.map +1 -1
  62. package/dist/esm/gx-ide-entity-selector.entry.js +1 -1
  63. package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -1
  64. package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -1
  65. package/dist/esm/gx-ide-manage-module-references-v2.entry.js +1 -1
  66. package/dist/esm/gx-ide-manage-module-references.entry.js +1 -1
  67. package/dist/esm/gx-ide-new-kb.entry.js +1 -1
  68. package/dist/esm/gx-ide-object-selector.entry.js +1 -1
  69. package/dist/esm/gx-ide-share-kb.entry.js +1 -1
  70. package/dist/esm/gx-ide-sign-in-team.entry.js +8 -7
  71. package/dist/esm/gx-ide-sign-in-team.entry.js.map +1 -1
  72. package/dist/esm/gx-ide-start-page.entry.js +1 -1
  73. package/dist/esm/gx-ide-welcome-page.entry.js +15 -10
  74. package/dist/esm/gx-ide-welcome-page.entry.js.map +1 -1
  75. package/dist/esm/loader.js +1 -1
  76. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  77. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  78. package/dist/genexus-ide-ui/gx-ide-assets/current-user-info/langs/current-user-info.lang.en.json +1 -1
  79. package/dist/genexus-ide-ui/gx-ide-assets/current-user-info/langs/current-user-info.lang.ja.json +1 -1
  80. package/dist/genexus-ide-ui/gx-ide-assets/current-user-info/langs/current-user-info.lang.zh.json +1 -1
  81. package/dist/genexus-ide-ui/gx-ide-assets/design-import/langs/design-import.lang.en.json +2 -1
  82. package/dist/genexus-ide-ui/gx-ide-assets/design-import/langs/design-import.lang.ja.json +2 -1
  83. package/dist/genexus-ide-ui/gx-ide-assets/design-import/langs/design-import.lang.zh.json +2 -1
  84. package/dist/genexus-ide-ui/{p-70a8edd9.entry.js → p-05775d0c.entry.js} +2 -2
  85. package/dist/genexus-ide-ui/{p-fe063c9e.entry.js → p-0b33d2f9.entry.js} +42 -41
  86. package/dist/genexus-ide-ui/p-0b33d2f9.entry.js.map +1 -0
  87. package/dist/genexus-ide-ui/{p-ecd748ba.entry.js → p-0f196406.entry.js} +2 -2
  88. package/dist/genexus-ide-ui/{p-a1e8b380.entry.js → p-32bd11fa.entry.js} +247 -234
  89. package/dist/genexus-ide-ui/p-32bd11fa.entry.js.map +1 -0
  90. package/dist/genexus-ide-ui/{p-390498e4.entry.js → p-764540b3.entry.js} +2 -2
  91. package/dist/genexus-ide-ui/{p-33a1c48f.entry.js → p-7ba9fb6d.entry.js} +2 -2
  92. package/dist/genexus-ide-ui/{p-b42dfccc.entry.js → p-7cde7e4f.entry.js} +26 -23
  93. package/dist/genexus-ide-ui/p-7cde7e4f.entry.js.map +1 -0
  94. package/dist/genexus-ide-ui/{p-6f3f4f54.entry.js → p-88e16a83.entry.js} +2 -2
  95. package/dist/genexus-ide-ui/{p-e774109a.entry.js → p-993819d4.entry.js} +2 -2
  96. package/dist/genexus-ide-ui/{p-ad521974.entry.js → p-a8e43d8e.entry.js} +2 -2
  97. package/dist/genexus-ide-ui/{p-7d4c5a43.js → p-b81d21d5.js} +8050 -966
  98. package/dist/genexus-ide-ui/p-b81d21d5.js.map +1 -0
  99. package/dist/genexus-ide-ui/{p-a0724750.entry.js → p-bd5316a2.entry.js} +11 -11
  100. package/dist/genexus-ide-ui/{p-fa69428e.entry.js → p-bf1682ff.entry.js} +20 -20
  101. package/dist/genexus-ide-ui/{p-31511545.entry.js → p-cadec045.entry.js} +2 -2
  102. package/dist/genexus-ide-ui/{p-edd6ebef.entry.js → p-dd890eed.entry.js} +15 -15
  103. package/dist/genexus-ide-ui/p-dd890eed.entry.js.map +1 -0
  104. package/dist/genexus-ide-ui/{p-cc0fbef2.entry.js → p-de6112f9.entry.js} +2 -2
  105. package/dist/genexus-ide-ui/{p-be0c10de.entry.js → p-f36f9a6d.entry.js} +2 -2
  106. package/dist/types/components/sign-in-team/sign-in-team.d.ts +1 -0
  107. package/package.json +3 -3
  108. package/dist/cjs/MERCURY_ASSETS-56ba4d5e.js +0 -9
  109. package/dist/cjs/MERCURY_ASSETS-56ba4d5e.js.map +0 -1
  110. package/dist/esm/MERCURY_ASSETS-827056e0.js +0 -7
  111. package/dist/esm/MERCURY_ASSETS-827056e0.js.map +0 -1
  112. package/dist/genexus-ide-ui/p-7d4c5a43.js.map +0 -1
  113. package/dist/genexus-ide-ui/p-a1e8b380.entry.js.map +0 -1
  114. package/dist/genexus-ide-ui/p-b42dfccc.entry.js.map +0 -1
  115. package/dist/genexus-ide-ui/p-edd6ebef.entry.js.map +0 -1
  116. package/dist/genexus-ide-ui/p-fe063c9e.entry.js.map +0 -1
  117. /package/dist/genexus-ide-ui/{p-70a8edd9.entry.js.map → p-05775d0c.entry.js.map} +0 -0
  118. /package/dist/genexus-ide-ui/{p-ecd748ba.entry.js.map → p-0f196406.entry.js.map} +0 -0
  119. /package/dist/genexus-ide-ui/{p-390498e4.entry.js.map → p-764540b3.entry.js.map} +0 -0
  120. /package/dist/genexus-ide-ui/{p-33a1c48f.entry.js.map → p-7ba9fb6d.entry.js.map} +0 -0
  121. /package/dist/genexus-ide-ui/{p-6f3f4f54.entry.js.map → p-88e16a83.entry.js.map} +0 -0
  122. /package/dist/genexus-ide-ui/{p-e774109a.entry.js.map → p-993819d4.entry.js.map} +0 -0
  123. /package/dist/genexus-ide-ui/{p-ad521974.entry.js.map → p-a8e43d8e.entry.js.map} +0 -0
  124. /package/dist/genexus-ide-ui/{p-a0724750.entry.js.map → p-bd5316a2.entry.js.map} +0 -0
  125. /package/dist/genexus-ide-ui/{p-fa69428e.entry.js.map → p-bf1682ff.entry.js.map} +0 -0
  126. /package/dist/genexus-ide-ui/{p-31511545.entry.js.map → p-cadec045.entry.js.map} +0 -0
  127. /package/dist/genexus-ide-ui/{p-cc0fbef2.entry.js.map → p-de6112f9.entry.js.map} +0 -0
  128. /package/dist/genexus-ide-ui/{p-be0c10de.entry.js.map → p-f36f9a6d.entry.js.map} +0 -0
@@ -33,7 +33,8 @@
33
33
  },
34
34
  "messages": {
35
35
  "noDesignSelected": "No Design Selected",
36
- "selectDesign": "Begin by Selecting One"
36
+ "selectDesign": "Begin by Selecting One",
37
+ "noPanelPreviewAvailable": "No Panel preview available"
37
38
  },
38
39
  "footer": {
39
40
  "btnOk": "OK",
@@ -33,7 +33,8 @@
33
33
  },
34
34
  "messages": {
35
35
  "noDesignSelected": "デザインが選択されていません",
36
- "selectDesign": "デザインを選択して開始"
36
+ "selectDesign": "デザインを選択して開始",
37
+ "noPanelPreviewAvailable": ""
37
38
  },
38
39
  "footer": {
39
40
  "btnOk": "OK",
@@ -33,7 +33,8 @@
33
33
  },
34
34
  "messages": {
35
35
  "noDesignSelected": "",
36
- "selectDesign": ""
36
+ "selectDesign": "",
37
+ "noPanelPreviewAvailable": ""
37
38
  },
38
39
  "footer": {
39
40
  "btnOk": "",
@@ -40,7 +40,6 @@ export class GxIdeUiSplash {
40
40
  _GxIdeUiSplash_chSelectTeamEl.set(this, void 0);
41
41
  _GxIdeUiSplash_switchStepTransitionTime.set(this, 100);
42
42
  _GxIdeUiSplash_authStepCallback.set(this, () => {
43
- console.log("authStepCallback called");
44
43
  if (this.authStep === "signIn") {
45
44
  this.signInCallback();
46
45
  }
@@ -49,7 +48,6 @@ export class GxIdeUiSplash {
49
48
  }
50
49
  });
51
50
  _GxIdeUiSplash_continueHandler.set(this, async () => {
52
- console.log("continueHandler called");
53
51
  await this.continueCallback(__classPrivateFieldGet(this, _GxIdeUiSplash_chSelectTeamEl, "f").value);
54
52
  });
55
53
  this.authStepInternal = undefined;
@@ -61,7 +59,6 @@ export class GxIdeUiSplash {
61
59
  this.termsCallback = undefined;
62
60
  }
63
61
  authStepChanged(newAuthStep) {
64
- console.log("authStep changed");
65
62
  this.slideIsVisible = false;
66
63
  // switch step
67
64
  setTimeout(() => {
@@ -72,15 +69,18 @@ export class GxIdeUiSplash {
72
69
  this.slideIsVisible = true;
73
70
  }, __classPrivateFieldGet(this, _GxIdeUiSplash_switchStepTransitionTime, "f") * 2);
74
71
  }
72
+ teamsChanged(newTeams) {
73
+ __classPrivateFieldSet(this, _GxIdeUiSplash_userTeamsModel, mapTeamsToComboBoxItemModel(newTeams), "f");
74
+ }
75
75
  async componentWillLoad() {
76
76
  __classPrivateFieldSet(this, _GxIdeUiSplash_componentLocale, await Locale.getComponentStrings(this.el), "f");
77
- this.authStepInternal = this.authStep;
78
- __classPrivateFieldSet(this, _GxIdeUiSplash_userTeamsModel, mapTeamsToComboBoxItemModel(this.teams), "f");
79
77
  this.el.style.setProperty("--switch-step-transtion-time", __classPrivateFieldGet(this, _GxIdeUiSplash_switchStepTransitionTime, "f").toString() + "ms");
78
+ // Initialize values
79
+ this.authStepInternal = this.authStep;
80
+ this.teamsChanged(this.teams);
80
81
  }
81
82
  render() {
82
83
  var _a;
83
- console.log("userTeams comboBox model", __classPrivateFieldGet(this, _GxIdeUiSplash_userTeamsModel, "f"));
84
84
  return (h(Host, null, h("ch-theme", { model: CSS_BUNDLES }), h("section", { class: "slide" }, h("img", { src: COPYRIGHTS_ILLUSTRATION, class: "slide__illustration", alt: "" // decorative
85
85
  }), h("div", { class: {
86
86
  "slide__main": true,
@@ -227,6 +227,9 @@ export class GxIdeUiSplash {
227
227
  return [{
228
228
  "propName": "authStep",
229
229
  "methodName": "authStepChanged"
230
+ }, {
231
+ "propName": "teams",
232
+ "methodName": "teamsChanged"
230
233
  }];
231
234
  }
232
235
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sign-in-team.js","sourceRoot":"","sources":["../../../src/components/sign-in-team/sign-in-team.tsx"],"names":[],"mappings":"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","sourcesContent":["// 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];\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 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 // Select User Team References :\n #userTeamsModel: ComboBoxItemModel[] = [];\n #chSelectTeamEl: HTMLChComboBoxRenderElement;\n #switchStepTransitionTime: number = 100;\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 * The authentication step to display\n */\n @Prop() readonly authStep: AuthStep = \"signIn\";\n @Watch(\"authStep\")\n authStepChanged(newAuthStep: AuthStep) {\n console.log(\"authStep changed\");\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 * Array that contains the user's teams\n */\n @Prop() readonly teams!: TeamData[];\n\n /**\n * Callback executed when the user clicks on the \"term and conditions\" link\n */\n @Prop() readonly termsCallback: () => Promise<void>;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.authStepInternal = this.authStep;\n this.#userTeamsModel = mapTeamsToComboBoxItemModel(this.teams);\n this.el.style.setProperty(\n \"--switch-step-transtion-time\",\n this.#switchStepTransitionTime.toString() + \"ms\"\n );\n }\n\n #authStepCallback = () => {\n console.log(\"authStepCallback called\");\n if (this.authStep === \"signIn\") {\n this.signInCallback();\n } else if (this.authStep === \"selectUserTeam\") {\n this.#continueHandler();\n }\n };\n\n #continueHandler = async () => {\n console.log(\"continueHandler called\");\n await this.continueCallback(this.#chSelectTeamEl.value);\n };\n\n render() {\n console.log(\"userTeams comboBox model\", this.#userTeamsModel);\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 <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>\n {this.#componentLocale[this.authStepInternal].titlePart1}\n </span>\n <span>\n {this.#componentLocale[this.authStepInternal].titlePart2}\n </span>\n </h2>\n </header>\n\n {this.authStepInternal === \"signIn\" ? (\n <div class=\"slide__main-description\">\n <p hidden>\n <span>{this.#componentLocale.descriptionText}</span>\n </p>\n <span>\n {this.#componentLocale.signIn.byContinuingText}\n <a class=\"terms-conditions\" onClick={this.termsCallback}>\n {this.#componentLocale.signIn.byContinuingCallBackText}\n </a>\n </span>\n </div>\n ) : (\n [\n <div class=\"slide__select-team-description\">\n <p class=\"text-body-highlighted-l\">\n {this.#componentLocale.selectUserTeam.infoMessage}\n </p>\n </div>,\n\n <div class=\"field-group\">\n <div class=\"field field-block\">\n <label htmlFor=\"teams\">\n {this.#componentLocale.teams}\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 =\n el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n </div>\n ]\n )}\n\n <div>\n <button\n class=\"button-primary main-btn\"\n onClick={this.#authStepCallback}\n >\n {this.#componentLocale[this.authStepInternal].buttonCaption}\n </button>\n </div>\n </div>\n </div>\n </section>\n </Host>\n );\n }\n}\n\nexport type AuthStep = \"signIn\" | \"selectUserTeam\";\n\nexport type TeamData = {\n id: string;\n name: string;\n};\n"]}
1
+ {"version":3,"file":"sign-in-team.js","sourceRoot":"","sources":["../../../src/components/sign-in-team/sign-in-team.tsx"],"names":[],"mappings":"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","sourcesContent":["// 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];\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 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 // Select User Team References :\n #userTeamsModel: ComboBoxItemModel[] = [];\n #chSelectTeamEl: HTMLChComboBoxRenderElement;\n #switchStepTransitionTime: number = 100;\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 * 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 * 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 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 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 <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>\n {this.#componentLocale[this.authStepInternal].titlePart1}\n </span>\n <span>\n {this.#componentLocale[this.authStepInternal].titlePart2}\n </span>\n </h2>\n </header>\n\n {this.authStepInternal === \"signIn\" ? (\n <div class=\"slide__main-description\">\n <p hidden>\n <span>{this.#componentLocale.descriptionText}</span>\n </p>\n <span>\n {this.#componentLocale.signIn.byContinuingText}\n <a class=\"terms-conditions\" onClick={this.termsCallback}>\n {this.#componentLocale.signIn.byContinuingCallBackText}\n </a>\n </span>\n </div>\n ) : (\n [\n <div class=\"slide__select-team-description\">\n <p class=\"text-body-highlighted-l\">\n {this.#componentLocale.selectUserTeam.infoMessage}\n </p>\n </div>,\n\n <div class=\"field-group\">\n <div class=\"field field-block\">\n <label htmlFor=\"teams\">\n {this.#componentLocale.teams}\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 =\n el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n </div>\n ]\n )}\n\n <div>\n <button\n class=\"button-primary main-btn\"\n onClick={this.#authStepCallback}\n >\n {this.#componentLocale[this.authStepInternal].buttonCaption}\n </button>\n </div>\n </div>\n </div>\n </section>\n </Host>\n );\n }\n}\n\nexport type AuthStep = \"signIn\" | \"selectUserTeam\";\n\nexport type TeamData = {\n id: string;\n name: string;\n};\n"]}
@@ -55,7 +55,7 @@
55
55
  column-gap: var(--mer-spacing--3xl);
56
56
  grid-template-areas: "header header" "illustration copy" "footer footer";
57
57
  grid-template-rows: max-content 1fr max-content;
58
- grid-template-columns: 1fr 520px;
58
+ grid-template-columns: 1fr 1fr;
59
59
  grid-area: slide-wrapper;
60
60
  transition: var(--slide-fade-duration) opacity;
61
61
  transition: opacity 200ms;
@@ -125,9 +125,19 @@ export class GxIdeWelcomePage {
125
125
  if (!autoChangeSlide) {
126
126
  return;
127
127
  }
128
+ let itemsWordsCount = 0;
129
+ if (this.slides[this.activeSlideIndex].listItems) {
130
+ const itemsWords = this.slides[this.activeSlideIndex].listItems.map(item => {
131
+ return item.title + item.description;
132
+ });
133
+ if (itemsWords.length) {
134
+ const mergedItemsWords = itemsWords.join("");
135
+ itemsWordsCount = mergedItemsWords.split(" ").length;
136
+ }
137
+ }
128
138
  const mergedDescription = this.slides[this.activeSlideIndex].description.join("");
129
139
  const words = mergedDescription.split(" ").length;
130
- const timeBeforeNextSlide = __classPrivateFieldGet(this, _GxIdeWelcomePage_secondsToRead, "f").call(this, words);
140
+ const timeBeforeNextSlide = __classPrivateFieldGet(this, _GxIdeWelcomePage_secondsToRead, "f").call(this, words + itemsWordsCount);
131
141
  // Set a fresh timeout
132
142
  if (timeBeforeNextSlide) {
133
143
  __classPrivateFieldSet(this, _GxIdeWelcomePage_slideTimeOutId, setTimeout(() => {
@@ -161,9 +171,6 @@ export class GxIdeWelcomePage {
161
171
  });
162
172
  });
163
173
  _GxIdeWelcomePage_updateActiveSlide.set(this, (newSlideIndex) => {
164
- if (this.lastSlideReached) {
165
- return;
166
- }
167
174
  this.slideTransitioning = true;
168
175
  // unset current active slide
169
176
  const activeSlide = __classPrivateFieldGet(this, _GxIdeWelcomePage_slidesElementsRef, "f")[this.activeSlideIndex];
@@ -227,12 +234,10 @@ export class GxIdeWelcomePage {
227
234
  }, style: { "--slide-fade-duration": `${SLIDE_FADE_DURATION}ms` } }, h("section", { class: "slide" }, h("header", { class: "slide__header" }, h("button", { class: "button-tertiary button-icon-only close-icon", "aria-label": "close presentation", onClick: __classPrivateFieldGet(this, _GxIdeWelcomePage_closeSlider, "f") }, h("ch-image", { class: "icon-md", src: CLOSE_ICON }))), h("div", { class: "slide__container" }, __classPrivateFieldGet(this, _GxIdeWelcomePage_slidesElements, "f")), h("footer", {
228
235
  // slide common footer
229
236
  class: {
230
- "slide__footer": true,
231
- "slide__footer-last-slide": this.lastSlideReached
237
+ slide__footer: true
232
238
  }
233
239
  }, h("div", { class: {
234
- "slide__footer-wrapper": true,
235
- "slide__footer-wrapper-hidden": this.lastSlideReached
240
+ "slide__footer-wrapper": true
236
241
  } }, h("ul", { class: "slide__dots", "aria-label": "Slide indicators" }, this.slides.map((_, index) => {
237
242
  return (h("li", { class: {
238
243
  "slide__dot": true,
@@ -1 +1 @@
1
- {"version":3,"file":"welcome-page.js","sourceRoot":"","sources":["../../../src/components/welcome-page/welcome-page.tsx"],"names":[],"mappings":"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","sourcesContent":["// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n getAssetPath\n} from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n\n// Custom Imports\nimport { Locale } from \"../../common/locale\";\n\nconst ACTIVE_SLIDE_SELECTOR = \"active\";\nconst ARROW_LEFT_KEY = \"ArrowLeft\";\nconst ARROW_RIGHT_KEY = \"ArrowRight\";\nconst ESCAPE_KEY = \"Escape\";\nconst SLIDE_FADE_DURATION = 300;\nconst SLIDE_WORD_SELECTOR = \".slide__word\";\nconst SLIDE_WORD_SELECTOR_TIMEOUT = 70;\nconst SLIDE_WORD_SELECTOR_VISIBLE = \"slide__word--visible\";\n\n// icons\nconst ICON_NEXT = getAssetPath(\n `./gx-ide-assets/welcome-page/images/icon-next.svg`\n);\nconst CLOSE_ICON = getIconPath({\n category: \"system\",\n name: \"close\",\n colorType: \"on-elevation\"\n});\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"components/icon\",\n \"components/button\"\n];\n\n@Component({\n tag: \"gx-ide-welcome-page\",\n styleUrl: \"welcome-page.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/welcome-page\"]\n})\nexport class GxIdeWelcomePage {\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 #slidesDescriptionAsChunksAlreadyDisplayed: Map<number, boolean> = new Map();\n #slidesElements: HTMLElement[] = [];\n #slidesElementsRef: HTMLElement[] = [];\n // #slidesDescriptionAsChunksAlreadyDisplayed is used to know if the description of a slide\n // that is set to be displayed as chunks, has already been displayed. Used to not display\n // as chunks after the first time.\n #slideTimeOutId: NodeJS.Timeout;\n\n @Element() el: HTMLGxIdeWelcomePageElement;\n\n /**\n * The current active slide index from 'slides' Prop. It does not considers the very first slide \"Copyright\".\n */\n @State() activeSlideIndex: number = 0;\n\n /**\n * When true the slider will be visible. Used to display and hide the slide with a smooth transition.\n */\n @State() displaySlider: boolean = false;\n\n /**\n * True if the very first slide is visible (The copyright slide)\n */\n @State() copyrightsVisible: boolean = true;\n\n /**\n * True if the user has reached the last slide. Used to hide/disable the navigation.\n */\n @State() lastSlideReached: boolean = false;\n\n /**\n * When true the slider will be visible. Used to display and hide the slider with a smooth transition.\n */\n @State() sliderVisible: boolean = false;\n\n /**\n * True if a slide is transitioning, false otherwise. Used to disable the navigation arrows while transitioning.\n */\n @State() slideTransitioning: boolean = false;\n\n /**\n * 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.\n */\n @State() userHasChangedSlide: boolean = false;\n\n /**\n * 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.\n */\n @Prop() readonly transitionType: TransitionType = \"auto\";\n\n /**\n * 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\".\n */\n @Prop() readonly wordsPerMinute: number = 250;\n\n /**\n * Callback invoked when the user closes the slider by pressing the close button.\n */\n @Prop() readonly closeCallback!: CloseCallback;\n\n /**\n * 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.\n */\n @Prop() readonly slides: SlideInfo[] = [];\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#renderSlides();\n }\n\n componentDidLoad() {\n this.#slidesElementsRef[this.activeSlideIndex].classList.add(\n ACTIVE_SLIDE_SELECTOR\n );\n this.sliderVisible = true;\n this.#initiateSlidesTransition();\n }\n\n #closeSlider = () => {\n this.sliderVisible = false;\n setTimeout(() => {\n // wait until the slide disappears, then remove.\n this.el.remove();\n this.closeCallback();\n document.removeEventListener(\"keydown\", this.#keyboardEventHandler);\n }, SLIDE_FADE_DURATION);\n };\n\n #initiateSlidesTransition = () => {\n this.#slideTimeOut();\n // listen to keydown events to navigate the slides with the arrows\n document.addEventListener(\"keydown\", this.#keyboardEventHandler);\n };\n\n #displayWords = (wordsNodeList: NodeListOf<HTMLElement>) => {\n wordsNodeList.forEach((word, index) => {\n setTimeout(() => {\n word.classList.add(SLIDE_WORD_SELECTOR_VISIBLE);\n }, index * SLIDE_WORD_SELECTOR_TIMEOUT);\n });\n };\n\n #dotClickedHandler = (event: MouseEvent) => {\n this.userHasChangedSlide = true;\n const itemClicked = event.currentTarget as HTMLElement;\n const index = parseInt(itemClicked.getAttribute(\"data-index\"), 10);\n this.#updateActiveSlide(index);\n };\n\n #keyboardEventHandler = (event: KeyboardEvent) => {\n this.userHasChangedSlide = true;\n const goToPrevSlide =\n event.key === ARROW_LEFT_KEY &&\n !this.slideTransitioning &&\n !this.lastSlideReached &&\n this.activeSlideIndex !== 0;\n\n const goToNextSlide =\n event.key === ARROW_RIGHT_KEY &&\n !this.slideTransitioning &&\n !this.lastSlideReached;\n\n const closeSlider =\n event.key === ESCAPE_KEY ||\n (event.key === ARROW_RIGHT_KEY &&\n !this.slideTransitioning &&\n this.lastSlideReached);\n\n if (goToNextSlide) {\n this.#nextSlideHandler();\n } else if (goToPrevSlide) {\n this.#prevSlideHandler();\n } else if (closeSlider) {\n this.#closeSlider();\n }\n };\n\n #nextSlideHandler = () => {\n const newIndex = this.activeSlideIndex + 1;\n this.#updateActiveSlide(newIndex);\n };\n\n #prevSlideHandler = () => {\n const newIndex = this.activeSlideIndex - 1;\n this.#updateActiveSlide(newIndex);\n };\n\n #slideTimeOut = () => {\n // Clear any existing timeout\n if (this.#slideTimeOutId) {\n clearTimeout(this.#slideTimeOutId);\n }\n\n const autoChangeSlide =\n this.transitionType === \"auto\" &&\n !this.lastSlideReached &&\n !this.userHasChangedSlide;\n\n if (!autoChangeSlide) {\n return;\n }\n\n const mergedDescription =\n this.slides[this.activeSlideIndex].description.join(\"\");\n const words = mergedDescription.split(\" \").length;\n const timeBeforeNextSlide: number = this.#secondsToRead(words);\n\n // Set a fresh timeout\n if (timeBeforeNextSlide) {\n this.#slideTimeOutId = setTimeout(() => {\n this.#nextSlideHandler();\n }, timeBeforeNextSlide);\n }\n };\n\n #secondsToRead = (\n wordsCount: number,\n wordsPerMinute = this.wordsPerMinute\n ): number => {\n const minutes = wordsCount / wordsPerMinute;\n const milliseconds = minutes * 60000; // Convert minutes to milliseconds\n return milliseconds;\n };\n\n #renderSlides = () => {\n this.#slidesElements = this.slides.map((slide, index) => {\n const isLastSlide = index === this.slides.length - 1;\n return (\n <section\n class=\"slide__wrapper\"\n ref={(el: HTMLElement) =>\n (this.#slidesElementsRef[index] = el as HTMLElement)\n }\n >\n <div\n class=\"slide__illustration\"\n role=\"img\"\n aria-label={this.#componentLocale.copyright.illustrationAriaLabel}\n >\n <img\n class=\"slide__illustration-img\"\n src={slide.illustration.url}\n alt={slide.illustration.alt}\n />\n </div>\n <section class=\"slide__copy\">\n <div class=\"slide__copy-container\">\n <header class=\"slide__copy-header\">\n <img src={ICON_NEXT} alt=\"GeneXus Next isologotype\" />\n <h2 class=\"slide__copy-title\">{slide.title}</h2>\n </header>\n <div class=\"slide__copy-description\">\n {slide.description?.map(paragraph => {\n return (\n <p>\n {slide.descriptionAsChunks\n ? this.#splitWords(paragraph)\n : paragraph}\n </p>\n );\n })}\n {slide.listItems?.length && (\n <ul class=\"slide__list\">\n {slide.listItems.map(item => {\n return (\n <li class=\"slide__list-item\">\n <strong class=\"slide__list-item-title\">\n {item.title}\n </strong>{\" \"}\n {item.description}\n </li>\n );\n })}\n </ul>\n )}\n </div>\n {isLastSlide && (\n <button\n class=\"button-primary start-button\"\n onClick={this.#closeSlider}\n >\n {this.#componentLocale.startButtonCaption}\n </button>\n )}\n </div>\n </section>\n </section>\n );\n });\n };\n\n #splitWords = (paragraph: string): HTMLSpanElement[] => {\n return paragraph.split(\" \").map(word => {\n // keep the space after {word} !\n return <span class=\"slide__word\">{word} </span>;\n });\n };\n\n #updateActiveSlide = (newSlideIndex: number) => {\n if (this.lastSlideReached) {\n return;\n }\n this.slideTransitioning = true;\n\n // unset current active slide\n const activeSlide = this.#slidesElementsRef[this.activeSlideIndex];\n activeSlide.classList.remove(ACTIVE_SLIDE_SELECTOR);\n\n const nextSlideReference = this.#slidesElementsRef[newSlideIndex];\n const displayDescriptionAsChunks =\n this.slides[newSlideIndex].descriptionAsChunks;\n const descriptionAsChunksDisplayedAlready =\n this.#slidesDescriptionAsChunksAlreadyDisplayed.get(newSlideIndex);\n let wordsCount;\n let wordsNodeList: NodeListOf<HTMLElement>;\n let slideTimeOut = 0;\n if (displayDescriptionAsChunks) {\n wordsNodeList = nextSlideReference.querySelectorAll(SLIDE_WORD_SELECTOR);\n wordsCount = wordsNodeList.length;\n slideTimeOut = wordsCount * SLIDE_WORD_SELECTOR_TIMEOUT;\n }\n\n this.lastSlideReached = newSlideIndex === this.slides.length - 1;\n\n // set new slide as active after fade out\n setTimeout(() => {\n nextSlideReference.classList.add(ACTIVE_SLIDE_SELECTOR);\n\n if (displayDescriptionAsChunks && !descriptionAsChunksDisplayedAlready) {\n this.#slidesDescriptionAsChunksAlreadyDisplayed.set(\n newSlideIndex,\n true\n );\n this.#displayWords(wordsNodeList);\n setTimeout(() => {\n this.slideTransitioning = false;\n }, slideTimeOut);\n } else {\n this.slideTransitioning = false;\n }\n }, SLIDE_FADE_DURATION);\n\n // update active slide index\n this.activeSlideIndex = newSlideIndex;\n this.#slideTimeOut(); // this has to be after this.#updateActiveSlide.\n };\n\n render() {\n return (\n <Host>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div\n class={{\n \"main\": true,\n \"main--visible\": this.sliderVisible,\n \"main--border-glow\": this.lastSlideReached\n }}\n style={{ \"--slide-fade-duration\": `${SLIDE_FADE_DURATION}ms` }}\n >\n <section class=\"slide\">\n <header class=\"slide__header\">\n <button\n class=\"button-tertiary button-icon-only close-icon\"\n aria-label=\"close presentation\"\n onClick={this.#closeSlider}\n >\n <ch-image class=\"icon-md\" src={CLOSE_ICON}></ch-image>\n </button>\n </header>\n <div class=\"slide__container\">{this.#slidesElements}</div>\n <footer\n // slide common footer\n class={{\n \"slide__footer\": true,\n \"slide__footer-last-slide\": this.lastSlideReached\n }}\n >\n <div\n class={{\n \"slide__footer-wrapper\": true,\n \"slide__footer-wrapper-hidden\": this.lastSlideReached\n }}\n >\n <ul class=\"slide__dots\" aria-label=\"Slide indicators\">\n {this.slides.map((_, index) => {\n return (\n <li\n class={{\n \"slide__dot\": true,\n \"slide__dot-inactive\": this.slideTransitioning,\n [ACTIVE_SLIDE_SELECTOR]:\n index === this.activeSlideIndex\n }}\n data-index={index}\n onClick={\n !this.slideTransitioning && this.#dotClickedHandler\n }\n ></li>\n );\n })}\n </ul>\n </div>\n </footer>\n </section>\n </div>\n </Host>\n );\n }\n}\n\nexport type SlideInfo = {\n illustration: {\n url: string;\n alt: string;\n };\n title: string;\n description?: string[];\n descriptionAsChunks?: boolean;\n listItems?: Array<{\n title: string;\n description: string;\n }>;\n};\n\nexport type CloseCallback = () => Promise<void>;\nexport type TransitionType = \"static\" | \"auto\";\n"]}
1
+ {"version":3,"file":"welcome-page.js","sourceRoot":"","sources":["../../../src/components/welcome-page/welcome-page.tsx"],"names":[],"mappings":"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","sourcesContent":["// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n getAssetPath\n} from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n\n// Custom Imports\nimport { Locale } from \"../../common/locale\";\n\nconst ACTIVE_SLIDE_SELECTOR = \"active\";\nconst ARROW_LEFT_KEY = \"ArrowLeft\";\nconst ARROW_RIGHT_KEY = \"ArrowRight\";\nconst ESCAPE_KEY = \"Escape\";\nconst SLIDE_FADE_DURATION = 300;\nconst SLIDE_WORD_SELECTOR = \".slide__word\";\nconst SLIDE_WORD_SELECTOR_TIMEOUT = 70;\nconst SLIDE_WORD_SELECTOR_VISIBLE = \"slide__word--visible\";\n\n// icons\nconst ICON_NEXT = getAssetPath(\n `./gx-ide-assets/welcome-page/images/icon-next.svg`\n);\nconst CLOSE_ICON = getIconPath({\n category: \"system\",\n name: \"close\",\n colorType: \"on-elevation\"\n});\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"components/icon\",\n \"components/button\"\n];\n\n@Component({\n tag: \"gx-ide-welcome-page\",\n styleUrl: \"welcome-page.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/welcome-page\"]\n})\nexport class GxIdeWelcomePage {\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 #slidesDescriptionAsChunksAlreadyDisplayed: Map<number, boolean> = new Map();\n #slidesElements: HTMLElement[] = [];\n #slidesElementsRef: HTMLElement[] = [];\n // #slidesDescriptionAsChunksAlreadyDisplayed is used to know if the description of a slide\n // that is set to be displayed as chunks, has already been displayed. Used to not display\n // as chunks after the first time.\n #slideTimeOutId: NodeJS.Timeout;\n\n @Element() el: HTMLGxIdeWelcomePageElement;\n\n /**\n * The current active slide index from 'slides' Prop. It does not considers the very first slide \"Copyright\".\n */\n @State() activeSlideIndex: number = 0;\n\n /**\n * When true the slider will be visible. Used to display and hide the slide with a smooth transition.\n */\n @State() displaySlider: boolean = false;\n\n /**\n * True if the very first slide is visible (The copyright slide)\n */\n @State() copyrightsVisible: boolean = true;\n\n /**\n * True if the user has reached the last slide. Used to hide/disable the navigation.\n */\n @State() lastSlideReached: boolean = false;\n\n /**\n * When true the slider will be visible. Used to display and hide the slider with a smooth transition.\n */\n @State() sliderVisible: boolean = false;\n\n /**\n * True if a slide is transitioning, false otherwise. Used to disable the navigation arrows while transitioning.\n */\n @State() slideTransitioning: boolean = false;\n\n /**\n * 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.\n */\n @State() userHasChangedSlide: boolean = false;\n\n /**\n * 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.\n */\n @Prop() readonly transitionType: TransitionType = \"auto\";\n\n /**\n * 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\".\n */\n @Prop() readonly wordsPerMinute: number = 250;\n\n /**\n * Callback invoked when the user closes the slider by pressing the close button.\n */\n @Prop() readonly closeCallback!: CloseCallback;\n\n /**\n * 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.\n */\n @Prop() readonly slides: SlideInfo[] = [];\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#renderSlides();\n }\n\n componentDidLoad() {\n this.#slidesElementsRef[this.activeSlideIndex].classList.add(\n ACTIVE_SLIDE_SELECTOR\n );\n this.sliderVisible = true;\n this.#initiateSlidesTransition();\n }\n\n #closeSlider = () => {\n this.sliderVisible = false;\n setTimeout(() => {\n // wait until the slide disappears, then remove.\n this.el.remove();\n this.closeCallback();\n document.removeEventListener(\"keydown\", this.#keyboardEventHandler);\n }, SLIDE_FADE_DURATION);\n };\n\n #initiateSlidesTransition = () => {\n this.#slideTimeOut();\n // listen to keydown events to navigate the slides with the arrows\n document.addEventListener(\"keydown\", this.#keyboardEventHandler);\n };\n\n #displayWords = (wordsNodeList: NodeListOf<HTMLElement>) => {\n wordsNodeList.forEach((word, index) => {\n setTimeout(() => {\n word.classList.add(SLIDE_WORD_SELECTOR_VISIBLE);\n }, index * SLIDE_WORD_SELECTOR_TIMEOUT);\n });\n };\n\n #dotClickedHandler = (event: MouseEvent) => {\n this.userHasChangedSlide = true;\n const itemClicked = event.currentTarget as HTMLElement;\n const index = parseInt(itemClicked.getAttribute(\"data-index\"), 10);\n this.#updateActiveSlide(index);\n };\n\n #keyboardEventHandler = (event: KeyboardEvent) => {\n this.userHasChangedSlide = true;\n const goToPrevSlide =\n event.key === ARROW_LEFT_KEY &&\n !this.slideTransitioning &&\n !this.lastSlideReached &&\n this.activeSlideIndex !== 0;\n\n const goToNextSlide =\n event.key === ARROW_RIGHT_KEY &&\n !this.slideTransitioning &&\n !this.lastSlideReached;\n\n const closeSlider =\n event.key === ESCAPE_KEY ||\n (event.key === ARROW_RIGHT_KEY &&\n !this.slideTransitioning &&\n this.lastSlideReached);\n\n if (goToNextSlide) {\n this.#nextSlideHandler();\n } else if (goToPrevSlide) {\n this.#prevSlideHandler();\n } else if (closeSlider) {\n this.#closeSlider();\n }\n };\n\n #nextSlideHandler = () => {\n const newIndex = this.activeSlideIndex + 1;\n this.#updateActiveSlide(newIndex);\n };\n\n #prevSlideHandler = () => {\n const newIndex = this.activeSlideIndex - 1;\n this.#updateActiveSlide(newIndex);\n };\n\n #slideTimeOut = () => {\n // Clear any existing timeout\n if (this.#slideTimeOutId) {\n clearTimeout(this.#slideTimeOutId);\n }\n\n const autoChangeSlide =\n this.transitionType === \"auto\" &&\n !this.lastSlideReached &&\n !this.userHasChangedSlide;\n\n if (!autoChangeSlide) {\n return;\n }\n\n let itemsWordsCount = 0;\n if (this.slides[this.activeSlideIndex].listItems) {\n const itemsWords = this.slides[this.activeSlideIndex].listItems.map(\n item => {\n return item.title + item.description;\n }\n );\n if (itemsWords.length) {\n const mergedItemsWords = itemsWords.join(\"\");\n itemsWordsCount = mergedItemsWords.split(\" \").length;\n }\n }\n\n const mergedDescription =\n this.slides[this.activeSlideIndex].description.join(\"\");\n const words = mergedDescription.split(\" \").length;\n const timeBeforeNextSlide: number = this.#secondsToRead(\n words + itemsWordsCount\n );\n\n // Set a fresh timeout\n if (timeBeforeNextSlide) {\n this.#slideTimeOutId = setTimeout(() => {\n this.#nextSlideHandler();\n }, timeBeforeNextSlide);\n }\n };\n\n #secondsToRead = (\n wordsCount: number,\n wordsPerMinute = this.wordsPerMinute\n ): number => {\n const minutes = wordsCount / wordsPerMinute;\n const milliseconds = minutes * 60000; // Convert minutes to milliseconds\n return milliseconds;\n };\n\n #renderSlides = () => {\n this.#slidesElements = this.slides.map((slide, index) => {\n const isLastSlide = index === this.slides.length - 1;\n return (\n <section\n class=\"slide__wrapper\"\n ref={(el: HTMLElement) =>\n (this.#slidesElementsRef[index] = el as HTMLElement)\n }\n >\n <div\n class=\"slide__illustration\"\n role=\"img\"\n aria-label={this.#componentLocale.copyright.illustrationAriaLabel}\n >\n <img\n class=\"slide__illustration-img\"\n src={slide.illustration.url}\n alt={slide.illustration.alt}\n />\n </div>\n <section class=\"slide__copy\">\n <div class=\"slide__copy-container\">\n <header class=\"slide__copy-header\">\n <img src={ICON_NEXT} alt=\"GeneXus Next isologotype\" />\n <h2 class=\"slide__copy-title\">{slide.title}</h2>\n </header>\n <div class=\"slide__copy-description\">\n {slide.description?.map(paragraph => {\n return (\n <p>\n {slide.descriptionAsChunks\n ? this.#splitWords(paragraph)\n : paragraph}\n </p>\n );\n })}\n {slide.listItems?.length && (\n <ul class=\"slide__list\">\n {slide.listItems.map(item => {\n return (\n <li class=\"slide__list-item\">\n <strong class=\"slide__list-item-title\">\n {item.title}\n </strong>{\" \"}\n {item.description}\n </li>\n );\n })}\n </ul>\n )}\n </div>\n {isLastSlide && (\n <button\n class=\"button-primary start-button\"\n onClick={this.#closeSlider}\n >\n {this.#componentLocale.startButtonCaption}\n </button>\n )}\n </div>\n </section>\n </section>\n );\n });\n };\n\n #splitWords = (paragraph: string): HTMLSpanElement[] => {\n return paragraph.split(\" \").map(word => {\n // keep the space after {word} !\n return <span class=\"slide__word\">{word} </span>;\n });\n };\n\n #updateActiveSlide = (newSlideIndex: number) => {\n this.slideTransitioning = true;\n\n // unset current active slide\n const activeSlide = this.#slidesElementsRef[this.activeSlideIndex];\n activeSlide.classList.remove(ACTIVE_SLIDE_SELECTOR);\n\n const nextSlideReference = this.#slidesElementsRef[newSlideIndex];\n const displayDescriptionAsChunks =\n this.slides[newSlideIndex].descriptionAsChunks;\n const descriptionAsChunksDisplayedAlready =\n this.#slidesDescriptionAsChunksAlreadyDisplayed.get(newSlideIndex);\n let wordsCount;\n let wordsNodeList: NodeListOf<HTMLElement>;\n let slideTimeOut = 0;\n if (displayDescriptionAsChunks) {\n wordsNodeList = nextSlideReference.querySelectorAll(SLIDE_WORD_SELECTOR);\n wordsCount = wordsNodeList.length;\n slideTimeOut = wordsCount * SLIDE_WORD_SELECTOR_TIMEOUT;\n }\n\n this.lastSlideReached = newSlideIndex === this.slides.length - 1;\n\n // set new slide as active after fade out\n setTimeout(() => {\n nextSlideReference.classList.add(ACTIVE_SLIDE_SELECTOR);\n\n if (displayDescriptionAsChunks && !descriptionAsChunksDisplayedAlready) {\n this.#slidesDescriptionAsChunksAlreadyDisplayed.set(\n newSlideIndex,\n true\n );\n this.#displayWords(wordsNodeList);\n setTimeout(() => {\n this.slideTransitioning = false;\n }, slideTimeOut);\n } else {\n this.slideTransitioning = false;\n }\n }, SLIDE_FADE_DURATION);\n\n // update active slide index\n this.activeSlideIndex = newSlideIndex;\n this.#slideTimeOut(); // this has to be after this.#updateActiveSlide.\n };\n\n render() {\n return (\n <Host>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div\n class={{\n \"main\": true,\n \"main--visible\": this.sliderVisible,\n \"main--border-glow\": this.lastSlideReached\n }}\n style={{ \"--slide-fade-duration\": `${SLIDE_FADE_DURATION}ms` }}\n >\n <section class=\"slide\">\n <header class=\"slide__header\">\n <button\n class=\"button-tertiary button-icon-only close-icon\"\n aria-label=\"close presentation\"\n onClick={this.#closeSlider}\n >\n <ch-image class=\"icon-md\" src={CLOSE_ICON}></ch-image>\n </button>\n </header>\n <div class=\"slide__container\">{this.#slidesElements}</div>\n <footer\n // slide common footer\n class={{\n slide__footer: true\n }}\n >\n <div\n class={{\n \"slide__footer-wrapper\": true\n }}\n >\n <ul class=\"slide__dots\" aria-label=\"Slide indicators\">\n {this.slides.map((_, index) => {\n return (\n <li\n class={{\n \"slide__dot\": true,\n \"slide__dot-inactive\": this.slideTransitioning,\n [ACTIVE_SLIDE_SELECTOR]:\n index === this.activeSlideIndex\n }}\n data-index={index}\n onClick={\n !this.slideTransitioning && this.#dotClickedHandler\n }\n ></li>\n );\n })}\n </ul>\n </div>\n </footer>\n </section>\n </div>\n </Host>\n );\n }\n}\n\nexport type SlideInfo = {\n illustration: {\n url: string;\n alt: string;\n };\n title: string;\n description?: string[];\n descriptionAsChunks?: boolean;\n listItems?: Array<{\n title: string;\n description: string;\n }>;\n};\n\nexport type CloseCallback = () => Promise<void>;\nexport type TransitionType = \"static\" | \"auto\";\n"]}