@genexus/genexus-ide-ui 0.0.82 → 0.0.84

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 (208) hide show
  1. package/dist/cjs/{ch-checkbox_4.cjs.entry.js → ch-checkbox_3.cjs.entry.js} +0 -768
  2. package/dist/cjs/ch-tree-view-render_2.cjs.entry.js +942 -0
  3. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  4. package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js +1 -1
  5. package/dist/cjs/gx-ide-ai-message.cjs.entry.js +1 -1
  6. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +1 -1
  7. package/dist/cjs/gx-ide-card.cjs.entry.js +41 -0
  8. package/dist/cjs/gx-ide-container_3.cjs.entry.js +2 -2
  9. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +1 -1
  10. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +3 -3
  11. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +1 -1
  12. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +2 -2
  13. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +2 -2
  14. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
  15. package/dist/cjs/gx-ide-new-object.cjs.entry.js +1 -1
  16. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +2 -2
  17. package/dist/cjs/gx-ide-recent-news.cjs.entry.js +112 -0
  18. package/dist/cjs/gx-ide-references.cjs.entry.js +1 -1
  19. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
  20. package/dist/cjs/gx-ide-start-page.cjs.entry.js +111 -0
  21. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +2 -2
  22. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +1 -1
  23. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +1 -1
  24. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +1 -1
  25. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +2 -2
  26. package/dist/cjs/gx-ide-template.cjs.entry.js +1 -1
  27. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +2 -2
  28. package/dist/cjs/gxg-button-group.cjs.entry.js +190 -0
  29. package/dist/cjs/gxg-card_2.cjs.entry.js +196 -52
  30. package/dist/cjs/gxg-ide-loader.cjs.entry.js +112 -0
  31. package/dist/cjs/gxg-pill.cjs.entry.js +86 -0
  32. package/dist/cjs/gxg-tab_4.cjs.entry.js +1 -1
  33. package/dist/cjs/{helpers-8d026db9.js → helpers-cd8bd90a.js} +80 -6
  34. package/dist/cjs/loader.cjs.js +1 -1
  35. package/dist/collection/collection-manifest.json +4 -1
  36. package/dist/collection/common/helpers.js +80 -9
  37. package/dist/collection/components/_helpers/card/card.css +213 -0
  38. package/dist/collection/components/_helpers/card/card.js +120 -0
  39. package/dist/collection/components/_helpers/card/gx-ide-assets/card/langs/card.lang.en.json +10 -0
  40. package/dist/collection/components/_helpers/card/gx-ide-assets/card/langs/card.lang.ja.json +3 -0
  41. package/dist/collection/components/_helpers/card/gx-ide-assets/card/langs/card.lang.zh.json +3 -0
  42. package/dist/collection/components/_helpers/title/title.js +1 -1
  43. package/dist/collection/components/_starting-template/template.css +14 -1
  44. package/dist/collection/components/ai-assistant/ai-assistant.css +15 -3
  45. package/dist/collection/components/bpm-application-declaration/bpm-app-declaration.css +14 -1
  46. package/dist/collection/components/create-kb-from-server/create-kb-from-server.css +14 -1
  47. package/dist/collection/components/dashboard-home/dashboard-home.css +14 -1
  48. package/dist/collection/components/dashboard-home/dashboard-home.js +1 -1
  49. package/dist/collection/components/kb-manager-export/kb-manager-export.css +14 -1
  50. package/dist/collection/components/kb-manager-import/kb-manager-import.css +14 -1
  51. package/dist/collection/components/new-environment/new-environment.css +14 -1
  52. package/dist/collection/components/new-kb/new-kb.css +14 -1
  53. package/dist/collection/components/new-object/new-object.css +14 -1
  54. package/dist/collection/components/object-selector/object-selector.css +14 -1
  55. package/dist/collection/components/references/references.css +14 -1
  56. package/dist/collection/components/share-kb/share-kb.css +14 -1
  57. package/dist/collection/components/start-page/gx-ide-assets/recent-news/langs/recent-news.lang.en.json +14 -0
  58. package/dist/collection/components/start-page/gx-ide-assets/recent-news/langs/recent-news.lang.ja.json +3 -0
  59. package/dist/collection/components/start-page/gx-ide-assets/recent-news/langs/recent-news.lang.zh.json +3 -0
  60. package/dist/collection/components/start-page/gx-ide-assets/start-page/langs/start-page.lang.en.json +23 -0
  61. package/dist/collection/components/start-page/gx-ide-assets/start-page/langs/start-page.lang.ja.json +3 -0
  62. package/dist/collection/components/start-page/gx-ide-assets/start-page/langs/start-page.lang.zh.json +3 -0
  63. package/dist/collection/components/start-page/recent-news.css +270 -0
  64. package/dist/collection/components/start-page/recent-news.js +169 -0
  65. package/dist/collection/components/start-page/start-page.css +256 -0
  66. package/dist/collection/components/start-page/start-page.js +240 -0
  67. package/dist/collection/components/team-dev/commit/commit.css +14 -1
  68. package/dist/collection/components/team-dev/select-recent-comment/select-recent-comment.css +14 -1
  69. package/dist/collection/components/team-dev/update/update.css +14 -1
  70. package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.css +14 -1
  71. package/dist/collection/components/team-dev/update-to-revision/update-to-revision.css +14 -1
  72. package/dist/collection/components/ww-images/ww-images.css +14 -1
  73. package/dist/components/card.js +85 -3
  74. package/dist/components/gx-ide-ai-assistant.js +1 -1
  75. package/dist/components/gx-ide-bpm-app-declaration.js +1 -1
  76. package/dist/components/gx-ide-card.d.ts +11 -0
  77. package/dist/components/gx-ide-card.js +59 -0
  78. package/dist/components/gx-ide-create-kb-from-server.js +1 -1
  79. package/dist/components/gx-ide-dashboard-home.js +2 -2
  80. package/dist/components/gx-ide-kb-manager-export.js +1 -1
  81. package/dist/components/gx-ide-kb-manager-import.js +1 -1
  82. package/dist/components/gx-ide-new-environment.js +1 -1
  83. package/dist/components/gx-ide-new-kb.js +1 -1
  84. package/dist/components/gx-ide-new-object.js +1 -1
  85. package/dist/components/gx-ide-object-selector.js +1 -1
  86. package/dist/components/gx-ide-recent-news.d.ts +11 -0
  87. package/dist/components/gx-ide-recent-news.js +6 -0
  88. package/dist/components/gx-ide-references.js +1 -1
  89. package/dist/components/gx-ide-share-kb.js +1 -1
  90. package/dist/components/gx-ide-start-page.d.ts +11 -0
  91. package/dist/components/gx-ide-start-page.js +247 -0
  92. package/dist/components/gx-ide-team-dev-commit.js +1 -1
  93. package/dist/components/gx-ide-team-dev-select-recent-comment.js +1 -1
  94. package/dist/components/gx-ide-team-dev-update-partial-selection.js +1 -1
  95. package/dist/components/gx-ide-team-dev-update-to-revision.js +1 -1
  96. package/dist/components/gx-ide-team-dev-update.js +1 -1
  97. package/dist/components/gx-ide-template.js +1 -1
  98. package/dist/components/gx-ide-ww-images.js +1 -1
  99. package/dist/components/helpers2.js +80 -6
  100. package/dist/components/ide-loader.js +5 -4
  101. package/dist/components/index.d.ts +3 -0
  102. package/dist/components/index.js +3 -0
  103. package/dist/components/recent-news.js +194 -0
  104. package/dist/components/tab-bar.js +1 -1
  105. package/dist/components/title.js +1 -1
  106. package/dist/components/title2.js +1 -1
  107. package/dist/esm/{ch-checkbox_4.entry.js → ch-checkbox_3.entry.js} +2 -769
  108. package/dist/esm/ch-tree-view-render_2.entry.js +937 -0
  109. package/dist/esm/genexus-ide-ui.js +1 -1
  110. package/dist/esm/gx-ide-ai-assistant.entry.js +1 -1
  111. package/dist/esm/gx-ide-ai-message.entry.js +1 -1
  112. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +1 -1
  113. package/dist/esm/gx-ide-card.entry.js +37 -0
  114. package/dist/esm/gx-ide-container_3.entry.js +2 -2
  115. package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -1
  116. package/dist/esm/gx-ide-dashboard-home.entry.js +3 -3
  117. package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -1
  118. package/dist/esm/gx-ide-kb-manager-import.entry.js +2 -2
  119. package/dist/esm/gx-ide-new-environment.entry.js +2 -2
  120. package/dist/esm/gx-ide-new-kb.entry.js +1 -1
  121. package/dist/esm/gx-ide-new-object.entry.js +1 -1
  122. package/dist/esm/gx-ide-object-selector.entry.js +2 -2
  123. package/dist/esm/gx-ide-recent-news.entry.js +108 -0
  124. package/dist/esm/gx-ide-references.entry.js +1 -1
  125. package/dist/esm/gx-ide-share-kb.entry.js +1 -1
  126. package/dist/esm/gx-ide-start-page.entry.js +107 -0
  127. package/dist/esm/gx-ide-team-dev-commit.entry.js +2 -2
  128. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +1 -1
  129. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +1 -1
  130. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +1 -1
  131. package/dist/esm/gx-ide-team-dev-update.entry.js +2 -2
  132. package/dist/esm/gx-ide-template.entry.js +1 -1
  133. package/dist/esm/gx-ide-ww-images.entry.js +2 -2
  134. package/dist/esm/gxg-button-group.entry.js +186 -0
  135. package/dist/esm/gxg-card_2.entry.js +197 -53
  136. package/dist/esm/gxg-ide-loader.entry.js +108 -0
  137. package/dist/{genexus-ide-ui/p-ca28bfdf.entry.js → esm/gxg-pill.entry.js} +82 -1
  138. package/dist/esm/gxg-tab_4.entry.js +1 -1
  139. package/dist/esm/{helpers-2607df78.js → helpers-810132db.js} +80 -6
  140. package/dist/esm/loader.js +1 -1
  141. package/dist/genexus-ide-ui/genexus-ide-ui.css +3 -3
  142. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  143. package/dist/genexus-ide-ui/gx-ide-assets/card/langs/card.lang.en.json +10 -0
  144. package/dist/genexus-ide-ui/gx-ide-assets/card/langs/card.lang.ja.json +3 -0
  145. package/dist/genexus-ide-ui/gx-ide-assets/card/langs/card.lang.zh.json +3 -0
  146. package/dist/genexus-ide-ui/gx-ide-assets/recent-news/langs/recent-news.lang.en.json +14 -0
  147. package/dist/genexus-ide-ui/gx-ide-assets/recent-news/langs/recent-news.lang.ja.json +3 -0
  148. package/dist/genexus-ide-ui/gx-ide-assets/recent-news/langs/recent-news.lang.zh.json +3 -0
  149. package/dist/genexus-ide-ui/gx-ide-assets/start-page/langs/start-page.lang.en.json +23 -0
  150. package/dist/genexus-ide-ui/gx-ide-assets/start-page/langs/start-page.lang.ja.json +3 -0
  151. package/dist/genexus-ide-ui/gx-ide-assets/start-page/langs/start-page.lang.zh.json +3 -0
  152. package/dist/genexus-ide-ui/p-005970ac.entry.js +1 -0
  153. package/dist/genexus-ide-ui/{p-399217ed.entry.js → p-16b40d12.entry.js} +1 -1
  154. package/dist/genexus-ide-ui/{p-2e599385.entry.js → p-20978da8.entry.js} +1 -1
  155. package/dist/genexus-ide-ui/{p-382a461c.entry.js → p-20fab805.entry.js} +1 -1
  156. package/dist/genexus-ide-ui/{p-26c275b5.entry.js → p-37ddc5f6.entry.js} +1 -1
  157. package/dist/genexus-ide-ui/{p-cf72f115.entry.js → p-3d2a89d2.entry.js} +1 -1
  158. package/dist/genexus-ide-ui/p-49ae7773.entry.js +1 -0
  159. package/dist/genexus-ide-ui/p-4de6b0f4.entry.js +1 -0
  160. package/dist/genexus-ide-ui/p-4f631c2a.entry.js +1 -0
  161. package/dist/genexus-ide-ui/p-5757e203.entry.js +1 -0
  162. package/dist/genexus-ide-ui/p-59355863.entry.js +1 -0
  163. package/dist/genexus-ide-ui/p-5ce9c310.entry.js +1 -0
  164. package/dist/genexus-ide-ui/p-67869d00.entry.js +1 -0
  165. package/dist/genexus-ide-ui/p-67b0f211.entry.js +1 -0
  166. package/dist/genexus-ide-ui/p-76d27117.entry.js +1 -0
  167. package/dist/genexus-ide-ui/{p-16532b36.entry.js → p-7745e8fb.entry.js} +1 -1
  168. package/dist/genexus-ide-ui/{p-40cba1ef.entry.js → p-7a03aa05.entry.js} +1 -1
  169. package/dist/genexus-ide-ui/{p-31a0baf1.entry.js → p-85b78e25.entry.js} +1 -1
  170. package/dist/genexus-ide-ui/{p-7e3f439e.entry.js → p-86d30386.entry.js} +1 -1
  171. package/dist/genexus-ide-ui/p-893efb21.entry.js +1 -0
  172. package/dist/genexus-ide-ui/{p-e43f7f5f.entry.js → p-9f08b2a4.entry.js} +1 -1
  173. package/dist/genexus-ide-ui/{p-00b9fa56.entry.js → p-a1cce7b8.entry.js} +1 -1
  174. package/dist/genexus-ide-ui/p-a5d4e357.entry.js +1 -0
  175. package/dist/genexus-ide-ui/p-bf54ee78.entry.js +1 -0
  176. package/dist/genexus-ide-ui/p-bf672a51.entry.js +1 -0
  177. package/dist/genexus-ide-ui/{p-df8b9e5f.entry.js → p-d02372e0.entry.js} +1 -1
  178. package/dist/genexus-ide-ui/{p-bb842602.entry.js → p-d3428456.entry.js} +1 -1
  179. package/dist/genexus-ide-ui/{p-2c384ea8.entry.js → p-d9910218.entry.js} +1 -1
  180. package/dist/genexus-ide-ui/p-da8ad725.entry.js +1 -0
  181. package/dist/genexus-ide-ui/p-e00411a8.entry.js +1 -0
  182. package/dist/genexus-ide-ui/p-e79f34d7.js +1 -0
  183. package/dist/genexus-ide-ui/{p-a2a856d8.entry.js → p-fd18305d.entry.js} +1 -1
  184. package/dist/node_modules/@genexus/gemini/dist/collection/components/card/card.css +189 -56
  185. package/dist/node_modules/@genexus/gemini/dist/collection/components/ide-loader/ide-loader.css +1 -1
  186. package/dist/node_modules/@genexus/gemini/dist/collection/components/tab-bar/tab-bar.css +0 -1
  187. package/dist/node_modules/@genexus/gemini/dist/collection/components/title/title.css +1 -0
  188. package/dist/types/common/helpers.d.ts +1 -2
  189. package/dist/types/components/_helpers/card/card.d.ts +28 -0
  190. package/dist/types/components/start-page/recent-news.d.ts +39 -0
  191. package/dist/types/components/start-page/start-page.d.ts +59 -0
  192. package/dist/types/components.d.ts +137 -0
  193. package/package.json +3 -3
  194. package/dist/cjs/gxg-button-group_3.cjs.entry.js +0 -463
  195. package/dist/cjs/gxg-title-editable.cjs.entry.js +0 -157
  196. package/dist/esm/gxg-button-group_3.entry.js +0 -457
  197. package/dist/esm/gxg-title-editable.entry.js +0 -153
  198. package/dist/genexus-ide-ui/p-3e713453.entry.js +0 -1
  199. package/dist/genexus-ide-ui/p-4a337d35.entry.js +0 -1
  200. package/dist/genexus-ide-ui/p-68f2bdb2.entry.js +0 -1
  201. package/dist/genexus-ide-ui/p-99bdb8f7.entry.js +0 -1
  202. package/dist/genexus-ide-ui/p-acea5e0c.entry.js +0 -1
  203. package/dist/genexus-ide-ui/p-ae32c83c.entry.js +0 -1
  204. package/dist/genexus-ide-ui/p-b600039f.entry.js +0 -1
  205. package/dist/genexus-ide-ui/p-b71f6a1f.entry.js +0 -1
  206. package/dist/genexus-ide-ui/p-ce98ad84.entry.js +0 -1
  207. package/dist/genexus-ide-ui/p-d410aa15.js +0 -1
  208. package/dist/genexus-ide-ui/p-f1922c2f.entry.js +0 -1
@@ -90,6 +90,19 @@ ch-grid-cell {
90
90
  --spacing-comp-02: var(--gxg-container--padding);
91
91
  }
92
92
 
93
+ /*--- Layout ---*/
94
+ .layout {
95
+ display: grid;
96
+ gap: var(--spacing-comp-05);
97
+ box-sizing: border-box;
98
+ }
99
+ .layout--two-cols {
100
+ grid-template-columns: 1fr 1fr;
101
+ }
102
+ .layout--space-above {
103
+ padding-block-start: var(--spacing-comp-05);
104
+ }
105
+
93
106
  /*Gxg Tabs*/
94
107
  gxg-tabs {
95
108
  box-shadow: none;
@@ -97,7 +110,7 @@ gxg-tabs {
97
110
 
98
111
  /*All components Host should have this class set. !important is set on every rule, since this styles could be overridden by the host user, since they are applied on the host component*/
99
112
  :host(.gx-ide-component) {
100
- box-shadow: var(--box-shadow-01) !important;
113
+ box-shadow: var(--box-shadow-01);
101
114
  height: 100% !important;
102
115
  display: flex !important;
103
116
  flex-direction: column !important;
@@ -90,6 +90,19 @@ ch-grid-cell {
90
90
  --spacing-comp-02: var(--gxg-container--padding);
91
91
  }
92
92
 
93
+ /*--- Layout ---*/
94
+ .layout {
95
+ display: grid;
96
+ gap: var(--spacing-comp-05);
97
+ box-sizing: border-box;
98
+ }
99
+ .layout--two-cols {
100
+ grid-template-columns: 1fr 1fr;
101
+ }
102
+ .layout--space-above {
103
+ padding-block-start: var(--spacing-comp-05);
104
+ }
105
+
93
106
  /*Gxg Tabs*/
94
107
  gxg-tabs {
95
108
  box-shadow: none;
@@ -97,7 +110,7 @@ gxg-tabs {
97
110
 
98
111
  /*All components Host should have this class set. !important is set on every rule, since this styles could be overridden by the host user, since they are applied on the host component*/
99
112
  :host(.gx-ide-component) {
100
- box-shadow: var(--box-shadow-01) !important;
113
+ box-shadow: var(--box-shadow-01);
101
114
  height: 100% !important;
102
115
  display: flex !important;
103
116
  flex-direction: column !important;
@@ -90,6 +90,19 @@ ch-grid-cell {
90
90
  --spacing-comp-02: var(--gxg-container--padding);
91
91
  }
92
92
 
93
+ /*--- Layout ---*/
94
+ .layout {
95
+ display: grid;
96
+ gap: var(--spacing-comp-05);
97
+ box-sizing: border-box;
98
+ }
99
+ .layout--two-cols {
100
+ grid-template-columns: 1fr 1fr;
101
+ }
102
+ .layout--space-above {
103
+ padding-block-start: var(--spacing-comp-05);
104
+ }
105
+
93
106
  /*Gxg Tabs*/
94
107
  gxg-tabs {
95
108
  box-shadow: none;
@@ -97,7 +110,7 @@ gxg-tabs {
97
110
 
98
111
  /*All components Host should have this class set. !important is set on every rule, since this styles could be overridden by the host user, since they are applied on the host component*/
99
112
  :host(.gx-ide-component) {
100
- box-shadow: var(--box-shadow-01) !important;
113
+ box-shadow: var(--box-shadow-01);
101
114
  height: 100% !important;
102
115
  display: flex !important;
103
116
  flex-direction: column !important;
@@ -0,0 +1,14 @@
1
+ {
2
+ "componentName": "Recent News",
3
+ "recentNews": {
4
+ "title": "Recent News",
5
+ "linkLabel": "See all news",
6
+ "linkUrl": "https://www.genexus.com/en/news",
7
+ "newsNotFetched": "We are sorry, GeneXus recent news couldn't be retrieved.",
8
+ "tryAgainButtonLabel": "Try Again",
9
+ "readThemOnline": "Or read them on GeneXus.com"
10
+ },
11
+ "loader": {
12
+ "title": "Loading GeneXus Recent News..."
13
+ }
14
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "presentation": "「こんにちは、私の名前は {0} です。オレゴンに住んでいます。」"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "presentation": "你好,我的名字是 {0},我住在俄勒冈州。"
3
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "componentName": "Start Page",
3
+ "tabs": {
4
+ "home": "home",
5
+ "learn": "learn",
6
+ "samples": "samples",
7
+ "marketplace": "marketplace",
8
+ "updates": "updates"
9
+ },
10
+ "recentKbs": {
11
+ "title": "Recent KBs",
12
+ "lastOpened": "Last opened:",
13
+ "modified": "Modified:"
14
+ },
15
+ "recentNews": {
16
+ "title": "Recent News",
17
+ "linkLabel": "See all news",
18
+ "linkUrl": "https://www.genexus.com/en/news"
19
+ },
20
+ "loader": {
21
+ "title": "Loading GeneXus Recent News..."
22
+ }
23
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "presentation": "「こんにちは、私の名前は {0} です。オレゴンに住んでいます。」"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "presentation": "你好,我的名字是 {0},我住在俄勒冈州。"
3
+ }
@@ -0,0 +1,270 @@
1
+ /*Gemini*/
2
+ /*Gx Ide*/
3
+ /*@container queries*/
4
+ /* hiChar styles
5
+ Found on /common/helpers.tsx hiChar function is used to add a span/class to every character that matches a search value. It is used to help the user see why the filter results are filtered. The span/class on the characters are useless without proper styling.
6
+ */
7
+ /* Helper Classes */
8
+ .gxi-hidden {
9
+ display: none !important;
10
+ }
11
+
12
+ .gxi-full-height {
13
+ height: 100%;
14
+ }
15
+
16
+ .gxi-overflow-auto {
17
+ overflow: auto;
18
+ }
19
+
20
+ .gxi-display-flex {
21
+ display: flex;
22
+ }
23
+
24
+ .align-start {
25
+ display: flex;
26
+ align-items: start;
27
+ }
28
+
29
+ .align-center {
30
+ display: flex;
31
+ align-items: center;
32
+ }
33
+
34
+ .align-end {
35
+ display: flex;
36
+ align-items: end;
37
+ }
38
+
39
+ .overflow-auto {
40
+ overflow: auto;
41
+ }
42
+
43
+ .justify-start {
44
+ display: flex;
45
+ justify-content: start;
46
+ }
47
+
48
+ .justify-center {
49
+ display: flex;
50
+ justify-content: center;
51
+ }
52
+
53
+ .justify-end {
54
+ display: flex;
55
+ justify-content: end;
56
+ }
57
+
58
+ /* Grids */
59
+ .grid {
60
+ display: grid;
61
+ grid-row-gap: var(--gx-ide-grid-row-gap);
62
+ grid-column-gap: var(--gx-ide-grid-column-gap);
63
+ grid-template-rows: auto;
64
+ }
65
+
66
+ ch-grid-cell {
67
+ display: flex;
68
+ }
69
+
70
+ ch-grid {
71
+ overflow: auto;
72
+ height: 100%;
73
+ }
74
+
75
+ ch-grid-column {
76
+ /*to be removed when this works inside a component with shadow: true*/
77
+ z-index: 99;
78
+ border-bottom: 1px solid var(--gray-01);
79
+ }
80
+
81
+ ch-grid-column:first-child {
82
+ padding-inline-start: var(--gxg-container--padding) !important;
83
+ }
84
+
85
+ ch-grid-column:last-child {
86
+ padding-inline-end: var(--gxg-container--padding) !important;
87
+ }
88
+
89
+ ch-grid-cell {
90
+ --spacing-comp-02: var(--gxg-container--padding);
91
+ }
92
+
93
+ /*--- Layout ---*/
94
+ .layout {
95
+ display: grid;
96
+ gap: var(--spacing-comp-05);
97
+ box-sizing: border-box;
98
+ }
99
+ .layout--two-cols {
100
+ grid-template-columns: 1fr 1fr;
101
+ }
102
+ .layout--space-above {
103
+ padding-block-start: var(--spacing-comp-05);
104
+ }
105
+
106
+ /*Gxg Tabs*/
107
+ gxg-tabs {
108
+ box-shadow: none;
109
+ }
110
+
111
+ /*All components Host should have this class set. !important is set on every rule, since this styles could be overridden by the host user, since they are applied on the host component*/
112
+ :host(.gx-ide-component) {
113
+ box-shadow: var(--box-shadow-01);
114
+ height: 100% !important;
115
+ display: flex !important;
116
+ flex-direction: column !important;
117
+ }
118
+
119
+ /*stylize the top bar*/
120
+ :host(:focus-within) gx-ide-top-bar::part(wrapper) {
121
+ background-color: var(--color-secondary-enabled);
122
+ }
123
+
124
+ /* Main wrapper (should be the first element inside the host. Everything should be inside .gx-ide-main-wrapper) */
125
+ .gx-ide-main-wrapper {
126
+ color: var(--gx-ide-component-text-color);
127
+ font-weight: var(--font-weight-regular);
128
+ font-size: var(--font-size-lg);
129
+ font-family: var(--font-family-primary);
130
+ line-height: 1.6em;
131
+ height: 100%;
132
+ background-color: var(--gx-ide-component-background-color);
133
+ display: flex;
134
+ flex-direction: column;
135
+ flex-grow: 1;
136
+ box-sizing: border-box;
137
+ }
138
+
139
+ /*This is the main element. This is the one that take the remaining vertical space*/
140
+ .gx-ide-main {
141
+ flex-grow: 1;
142
+ overflow-y: auto;
143
+ /* Track */
144
+ /* Handle */
145
+ /* Handle on hover */
146
+ }
147
+ .gx-ide-main::-webkit-scrollbar {
148
+ width: 6px;
149
+ height: 6px;
150
+ }
151
+ .gx-ide-main::-webkit-scrollbar-track {
152
+ background-color: var(--gray-02);
153
+ border-radius: 10px;
154
+ }
155
+ .gx-ide-main::-webkit-scrollbar-thumb {
156
+ background: var(--gray-05);
157
+ border-radius: 10px;
158
+ }
159
+ .gx-ide-main::-webkit-scrollbar-thumb:hover {
160
+ background: var(--gray-04);
161
+ cursor: pointer;
162
+ }
163
+ .gx-ide-main .gxg-scroll {
164
+ display: block;
165
+ overflow-y: auto;
166
+ padding-inline-end: 2px;
167
+ }
168
+
169
+ .gx-ide-overflow {
170
+ overflow-y: auto;
171
+ /* Track */
172
+ /* Handle */
173
+ /* Handle on hover */
174
+ }
175
+ .gx-ide-overflow::-webkit-scrollbar {
176
+ width: 6px;
177
+ height: 6px;
178
+ }
179
+ .gx-ide-overflow::-webkit-scrollbar-track {
180
+ background-color: var(--gray-02);
181
+ border-radius: 10px;
182
+ }
183
+ .gx-ide-overflow::-webkit-scrollbar-thumb {
184
+ background: var(--gray-05);
185
+ border-radius: 10px;
186
+ }
187
+ .gx-ide-overflow::-webkit-scrollbar-thumb:hover {
188
+ background: var(--gray-04);
189
+ cursor: pointer;
190
+ }
191
+ .gx-ide-overflow .gxg-scroll {
192
+ display: block;
193
+ overflow-y: auto;
194
+ padding-inline-end: 2px;
195
+ }
196
+
197
+ /*gxg-tree-view*/
198
+ .tree-container {
199
+ display: flex;
200
+ height: 100%;
201
+ width: 100%;
202
+ box-sizing: border-box;
203
+ }
204
+
205
+ /*Gemini*/
206
+ /*Gx Ide*/
207
+ /*@container queries*/
208
+ /* hiChar styles
209
+ Found on /common/helpers.tsx hiChar function is used to add a span/class to every character that matches a search value. It is used to help the user see why the filter results are filtered. The span/class on the characters are useless without proper styling.
210
+ */
211
+ :host {
212
+ display: block;
213
+ box-shadow: none;
214
+ height: 100%;
215
+ overflow: hidden;
216
+ padding-bottom: 2px;
217
+ box-sizing: border-box;
218
+ }
219
+
220
+ .news-container {
221
+ display: flex;
222
+ flex-direction: column;
223
+ gap: var(--gx-ide-articles-gap);
224
+ }
225
+ .news-container p:first-child {
226
+ margin-top: 0;
227
+ }
228
+ .news-container p:last-child {
229
+ margin-bottom: 0;
230
+ }
231
+
232
+ gxg-card.section {
233
+ height: 100% !important;
234
+ overflow: auto;
235
+ border-bottom: 2px solid var(--gray-00);
236
+ }
237
+
238
+ gxg-ide-loader::part(loader-wrapper) {
239
+ border-radius: 8px;
240
+ overflow: hidden;
241
+ }
242
+
243
+ .gxg-card-container {
244
+ height: 100%;
245
+ overflow: auto;
246
+ }
247
+
248
+ .gx-ide-message {
249
+ height: 100%;
250
+ display: flex;
251
+ align-items: center;
252
+ justify-content: center;
253
+ flex-direction: column;
254
+ gap: var(--spacing-comp-03);
255
+ }
256
+ .gx-ide-message--hidden {
257
+ display: none;
258
+ }
259
+
260
+ gx-ide-title {
261
+ max-width: 250px;
262
+ }
263
+
264
+ .news-article {
265
+ transition: 200ms opacity;
266
+ opacity: 0;
267
+ }
268
+ .news-article.visible {
269
+ opacity: 1;
270
+ }
@@ -0,0 +1,169 @@
1
+ /* STENCIL IMPORTS */
2
+ import { Host, h } from "@stencil/core";
3
+ /* OTHER LIBRARIES IMPORTS */
4
+ /* CUSTOM IMPORTS */
5
+ import { Locale } from "../../common/locale";
6
+ export class GxIdeRecentNews {
7
+ constructor() {
8
+ this.newsRendered = false;
9
+ this.setTimeOutNewsDelay = 75;
10
+ // 7.LISTENERS //
11
+ // 8.PUBLIC METHODS API //
12
+ // 9.LOCAL METHODS //
13
+ this.evaluateNewsDisplay = () => {
14
+ if (!this.newsRendered &&
15
+ this.news.length > 0 &&
16
+ this.newsContainerEl !== undefined) {
17
+ this.displayNews();
18
+ this.newsRendered = true;
19
+ }
20
+ };
21
+ this.displayNews = () => {
22
+ if (this.newsContainerEl !== undefined) {
23
+ const news = Array.from(this.newsContainerEl.querySelectorAll("gxg-card"));
24
+ news.forEach(news => {
25
+ setTimeout(() => {
26
+ news.classList.add("visible");
27
+ }, this.setTimeOutNewsDelay);
28
+ this.setTimeOutNewsDelay += 75;
29
+ });
30
+ }
31
+ };
32
+ this.attachLoaderEvents = () => {
33
+ this.loaderEl.addEventListener("loaderFinished", () => {
34
+ if (this.news.length === 0) {
35
+ this.newsLoadFailed = true;
36
+ }
37
+ else {
38
+ this.newsLoadFailed = false;
39
+ }
40
+ });
41
+ };
42
+ this.getNews = async () => {
43
+ this.loaderEl.show = true;
44
+ if (this.getNewsCallback) {
45
+ const newsResult = await this.getNewsCallback();
46
+ this.loaderEl.show = false;
47
+ if (newsResult && newsResult.length > 0) {
48
+ this.news = newsResult;
49
+ this.newsLoadFailed = false;
50
+ }
51
+ else {
52
+ this.newsLoadFailed = true;
53
+ }
54
+ }
55
+ };
56
+ this.NewsClickHandler = async (e) => {
57
+ const newsId = e.target.id;
58
+ if (this.openNewsCallback) {
59
+ await this.openNewsCallback(newsId);
60
+ }
61
+ };
62
+ // 9.LOCAL METHODS -> RENDERS //
63
+ this.renderNews = (news) => {
64
+ if (news.id && news.title) {
65
+ return (h("gxg-card", { id: news.id, key: news.id, cardType: "article", cardTitle: news.title, icon: "gx-test/test-results", iconColor: "auto", actionable: true, onClick: this.NewsClickHandler, titleSemibold: true, noHeaderBorder: true, class: "news-article" }, news.body ? h("p", null, news.body) : null));
66
+ }
67
+ return null;
68
+ };
69
+ this.news = [];
70
+ this.newsLoadFailed = false;
71
+ this.getNewsCallback = undefined;
72
+ this.openNewsCallback = undefined;
73
+ }
74
+ watchNewsHandler() {
75
+ this.displayNews();
76
+ }
77
+ // 5.EVENTS (EMIT) //
78
+ // 6.COMPONENT LIFECYCLE METHODS //
79
+ async componentWillLoad() {
80
+ this._componentLocale = await Locale.getComponentStrings(this.el);
81
+ }
82
+ componentDidLoad() {
83
+ this.getNews();
84
+ this.attachLoaderEvents();
85
+ }
86
+ componentDidRender() {
87
+ this.evaluateNewsDisplay();
88
+ }
89
+ // 10.RENDER() FUNCTION //
90
+ render() {
91
+ var _a;
92
+ return (h(Host, null, h("gxg-card", { class: "section", cardType: "section", cardTitle: this._componentLocale.recentNews.title }, this.news.length > 0 ? (h("div", { class: "news-container", ref: el => (this.newsContainerEl = el) }, (_a = this.news) === null || _a === void 0 ? void 0 : _a.map(singleNews => {
93
+ return this.renderNews(singleNews);
94
+ }))) : (h("div", { class: {
95
+ "gx-ide-message": true,
96
+ "gx-ide-message--hidden": !this.newsLoadFailed
97
+ } }, h("gx-ide-title", { alignment: "center" }, this._componentLocale.recentNews.newsNotFetched), h("gxg-button", { onClick: this.getNews }, this._componentLocale.recentNews.tryAgainButtonLabel), h("gxg-text", { type: "text-link", href: "https://www.genexus.com/en/news", target: "_blank" }, this._componentLocale.recentNews.readThemOnline)))), h("gxg-ide-loader", { abortTime: 8000, container: this.el, loaderTitle: this._componentLocale.loader.title, description: "Hang on please", ref: el => (this.loaderEl = el) })));
98
+ }
99
+ static get is() { return "gx-ide-recent-news"; }
100
+ static get encapsulation() { return "shadow"; }
101
+ static get originalStyleUrls() {
102
+ return {
103
+ "$": ["recent-news.scss"]
104
+ };
105
+ }
106
+ static get styleUrls() {
107
+ return {
108
+ "$": ["recent-news.css"]
109
+ };
110
+ }
111
+ static get assetsDirs() { return ["gx-ide-assets/recent-news"]; }
112
+ static get properties() {
113
+ return {
114
+ "getNewsCallback": {
115
+ "type": "unknown",
116
+ "mutable": false,
117
+ "complexType": {
118
+ "original": "GetNewsCallback",
119
+ "resolved": "() => Promise<NewsData[]>",
120
+ "references": {
121
+ "GetNewsCallback": {
122
+ "location": "import",
123
+ "path": "./start-page"
124
+ }
125
+ }
126
+ },
127
+ "required": false,
128
+ "optional": false,
129
+ "docs": {
130
+ "tags": [],
131
+ "text": "Callback invoked to load the news feed (right panel \"Recent News\")."
132
+ }
133
+ },
134
+ "openNewsCallback": {
135
+ "type": "unknown",
136
+ "mutable": false,
137
+ "complexType": {
138
+ "original": "OpenNewsCallback",
139
+ "resolved": "(id: string) => Promise<void>",
140
+ "references": {
141
+ "OpenNewsCallback": {
142
+ "location": "import",
143
+ "path": "./start-page"
144
+ }
145
+ }
146
+ },
147
+ "required": false,
148
+ "optional": false,
149
+ "docs": {
150
+ "tags": [],
151
+ "text": "Callback invoked to open a news article."
152
+ }
153
+ }
154
+ };
155
+ }
156
+ static get states() {
157
+ return {
158
+ "news": {},
159
+ "newsLoadFailed": {}
160
+ };
161
+ }
162
+ static get elementRef() { return "el"; }
163
+ static get watchers() {
164
+ return [{
165
+ "propName": "news",
166
+ "methodName": "watchNewsHandler"
167
+ }];
168
+ }
169
+ }